diff --git a/.gitignore b/.gitignore index aad38d43..ab4f1d56 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.env *.pyc LocalEnv.py .DS_Store diff --git a/scripts/DevWorkshop/llm-api/agnostic_evaluator_models.py b/scripts/DevWorkshop/llm-api/agnostic_evaluator_models.py index 64fe60cf..f4f6b2d6 100644 --- a/scripts/DevWorkshop/llm-api/agnostic_evaluator_models.py +++ b/scripts/DevWorkshop/llm-api/agnostic_evaluator_models.py @@ -1,6 +1,7 @@ from functools import partial import requests import json +import time import os class API_text_to_text: @@ -12,6 +13,11 @@ def __init__(self, model_init, model_call): def gen_txt_to_txt(self, input_txt): return self.model_call(input_txt, **self.model_init_dict) +def error_handling(model_name, i, max_calls, sleep_time, e): + print(f"Failed with {model_name} (SHC) call {i}/{max_calls}, waited {i*sleep_time} seconds. Error: {e}.") + time.sleep(sleep_time) + return f"Failed to get a response from {model_name} (SHC) after {i*sleep_time} seconds. Error: {e}." + # Gemini via Vertex AI def gemini_init(model_name, credentials_path): # For HIPAA compliance, everything remains in our Google Cloud Project @@ -20,36 +26,61 @@ def gemini_init(model_name, credentials_path): from vertexai.preview.generative_models import GenerativeModel return {"ready_model": GenerativeModel(model_name), "model_name": model_name} -def gemini_call(input_txt, **kwargs): - import time +def gemini_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): ready_model = kwargs["ready_model"] model_name = kwargs["model_name"] - max_calls = 10; sleep_time = 5 for i in range (max_calls): try: response = ready_model.generate_content([input_txt]) full_response = response.candidates[0].content.parts[0].text break except Exception as e: - print(f"Failed with {model_name} call {i}/{max_calls}, waited {i*sleep_time} seconds. Error: {e}.") - time.sleep(sleep_time) - full_response = f"Failed to get a response from {model_name} after {i*sleep_time} seconds." + full_response = error_handling(model_name, i, max_calls, sleep_time, e) + return full_response + +# Gemini 2.5 Pro via SHC +def gemini_shc_init(model_name, my_key): + headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'} + url = 'https://apim.stanfordhealthcare.org/gemini-25-pro/gemini-25-pro' + return {"model_name": model_name, "url": url, "headers": headers} + +def gemini_shc_call(input_txt, max_calls=10, sleep_time=5, **kwargs): + model_name = kwargs["model_name"] + url = kwargs["url"] + headers = kwargs["headers"] + payload = json.dumps({"contents": [{"role": "user", "parts": [{ "text": input_txt }]}]}) + + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = ''.join([i['candidates'][0]['content']['parts'][0]['text'] for i in json.loads(response.text)]) + break + except Exception as e: + full_response = error_handling(model_name, i, max_calls, sleep_time, e) return full_response # Open AI models via SHC def openai_init(model_name, my_key): headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'} - url = f"https://apim.stanfordhealthcare.org/openai-eastus2/deployments/{model_name}/chat/completions?api-version=2025-01-01-preview" + url = f"https://apim.stanfordhealthcare.org/openai-eastus2/deployments/{model_name}/chat/completions?api-version=2025-01-01-preview" + if model_name == "gpt-4o": + url = "https://apim.stanfordhealthcare.org/openai20/deployments/gpt-4o/chat/completions?api-version=2023-05-15" return {"model_name": model_name, "url": url, "headers": headers} -def openai_call(input_txt, **kwargs): +def openai_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): model_name = kwargs["model_name"] url = kwargs["url"] headers = kwargs["headers"] payload = json.dumps({"model": model_name, "messages": [{"role": "user", "content": input_txt}]}) - response = requests.request("POST", url, headers=headers, data=payload) - return json.loads(response.text)['choices'][0]['message']['content'] + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = json.loads(response.text)['choices'][0]['message']['content'] + break + except Exception as e: + full_response = error_handling(model_name, i, max_calls, sleep_time, e) + return full_response # Deepseek-R1 via SHC def deepseek_init(model_name, my_key, view_thinking=False): @@ -58,18 +89,24 @@ def deepseek_init(model_name, my_key, view_thinking=False): url = "https://apim.stanfordhealthcare.org/deepseekr1/v1/chat/completions" return {"url": url, "headers": headers, "view_thinking": view_thinking} -def deepseek_call(input_txt, **kwargs): +def deepseek_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): url = kwargs["url"] headers = kwargs["headers"] payload = json.dumps({"model": "deepseek-chat", "messages": [{"role": "user", "content": input_txt}], "temperature": 0.8, "max_tokens": 4096, "top_p": 1, "stream": False}) - response = requests.request("POST", url, headers=headers, data=payload) - full_response = json.loads(response.text)['choices'][0]['message']['content'] - if kwargs["view_thinking"]: - return full_response - def _extract_after_think(text): - parts = text.split("") - return parts[1].strip() if len(parts) > 1 else text - return _extract_after_think(full_response) + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = json.loads(response.text)['choices'][0]['message']['content'] + if kwargs["view_thinking"]: + break + def _extract_after_think(text): + parts = text.split("") + return parts[1].strip() if len(parts) > 1 else text + full_response = _extract_after_think(full_response) + break + except Exception as e: + full_response = error_handling("deepseek-r1", i, max_calls, sleep_time, e) + return full_response # Microsoft model via SHC def microsoft_init(model_name, my_key): @@ -78,12 +115,18 @@ def microsoft_init(model_name, my_key): url = "https://apim.stanfordhealthcare.org/phi35mi/v1/chat/completions" return {"url": url, "headers": headers} -def microsoft_call(input_txt, **kwargs): +def microsoft_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): url = kwargs["url"] headers = kwargs["headers"] payload = json.dumps({"messages": [{"role": "user", "content": input_txt}], "max_tokens": 2048, "temperature": 0.8, "top_p": 0.1, "presence_penalty": 0, "frequency_penalty": 0, "model": "Phi-3.5-mini-instruct"}) - response = requests.request("POST", url, headers=headers, data=payload) - return json.loads(response.text)["choices"][0]["message"]["content"] + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = json.loads(response.text)["choices"][0]["message"]["content"] + break + except Exception as e: + full_response = error_handling("phi-3.5-mini-instruct", i, max_calls, sleep_time, e) + return full_response # Anthropic model via SHC def anthropic_init(model_name, my_key): @@ -96,13 +139,19 @@ def anthropic_init(model_name, my_key): headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'} return {"model_id": model_id, "url": url, "headers": headers} -def anthropic_call(input_txt, **kwargs): +def anthropic_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): model_id = kwargs["model_id"] url = kwargs["url"] headers = kwargs["headers"] payload = json.dumps({"model_id": model_id, "prompt_text": input_txt}) - response = requests.request("POST", url, headers=headers, data=payload) - return json.loads(response.text)['content'][0]['text'] + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = json.loads(response.text)['content'][0]['text'] + break + except Exception as e: + full_response = error_handling(model_id, i, max_calls, sleep_time, e) + return full_response # Meta model via SHC def meta_init(model_name, my_key): @@ -114,20 +163,35 @@ def meta_init(model_name, my_key): url = f"https://apim.stanfordhealthcare.org/{model_name}/v1/chat/completions" return {"full_model_name": full_model_name, "url": url, "headers": headers} -def meta_call(input_txt, **kwargs): +def meta_call(input_txt, max_calls = 10, sleep_time = 5, **kwargs): full_model_name = kwargs["full_model_name"] url = kwargs["url"] headers = kwargs["headers"] payload = json.dumps({"model": full_model_name, "messages": [{"role": "user", "content": input_txt}]}) - response = requests.request("POST", url, headers=headers, data=payload) - return json.loads(response.text)['choices'][0]['message']['content'] + for i in range(max_calls): + try: + response = requests.request("POST", url, headers=headers, data=payload) + full_response = json.loads(response.text)['choices'][0]['message']['content'] + break + except Exception as e: + full_response = error_handling(full_model_name, i, max_calls, sleep_time, e) + return full_response if __name__ == "main": + from dotenv import load_dotenv + load_dotenv("../../../.env") + my_question = """First, state what LLM you are based on. Please answer with the precise version of the model. Next, answer the following hard physics question. What is the difference between the cosmological constant and the vacuum energy?""" - lab_key = "enter the lab key here" + lab_key = os.getenv("LAB_KEY") # enter the lab key here + + # Using Gemini 2.5 pro via SHC + gemini_shc_init_partial = partial(gemini_shc_init, "gemini-2.5-pro-preview-05-06", lab_key) + gemini_shc_instance = API_text_to_text(gemini_shc_init_partial, gemini_shc_call) + res = gemini_shc_instance.gen_txt_to_txt(my_question) + print(res) # Using Meta via SHC llama_init = partial(meta_init, "llama4-maverick", lab_key) diff --git a/scripts/DevWorkshop/llm-api/phi-llm-api-python.md b/scripts/DevWorkshop/llm-api/phi-llm-api-python.md index 73333cac..697aaaf7 100644 --- a/scripts/DevWorkshop/llm-api/phi-llm-api-python.md +++ b/scripts/DevWorkshop/llm-api/phi-llm-api-python.md @@ -4,7 +4,7 @@ This guide demonstrates how to use Python to interact with various Large Languag *Created by François Grolleau on 02/19/2025 Contributors: Yixing Jiang -Last update April 29, 2025.* +Last update June 16, 2025.* ## Table of Contents - [Prerequisites](#prerequisites) @@ -18,8 +18,8 @@ Last update April 29, 2025.* - [Claude 3.7 Sonnet](#claude-37-sonnet-api-call) - [Claude 3.5 Sonnet v2](#claude-35-sonnet-v2-api-call) - [Google Models](#google-models) + - [Gemini 2.5 Pro](#gemini-25-pro-api-call) - [Gemini 2.0 Flash](#gemini-20-flash-api-call) - - [Gemini 1.5 Pro](#gemini-15-pro-api-call) - [Meta Models](#meta-models) - [Llama 3.3 70B](#llama-33-70b-instruct-api-call) - [Llama 4 Maverick](#llama-4-maverick-api-call) @@ -141,25 +141,22 @@ print(response.text) --- ## Google Models -### Gemini 2.0 Flash API Call +### Gemini 2.5 Pro API Call ```python -url = "https://apim.stanfordhealthcare.org/gcp-gem20flash-fa/apim-gcp-gem20flash-fa" +url = "https://apim.stanfordhealthcare.org/gemini-25-pro/gemini-25-pro" payload = json.dumps({ - "contents": {"role": "user", "parts": {"text": my_question}}, - "safety_settings": {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, - "generation_config": {"temperature": 0.2, "topP": 0.8, "topK": 40} + "contents": [{"role": "user", "parts": [{"text": my_question}]}] }) response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` - -### Gemini 1.5 Pro API Call +### Gemini 2.0 Flash API Call ```python -url = "https://apim.stanfordhealthcare.org/gcpgemini/apim-gcp-oauth-fa" +url = "https://apim.stanfordhealthcare.org/gcp-gem20flash-fa/apim-gcp-gem20flash-fa" payload = json.dumps({ "contents": {"role": "user", "parts": {"text": my_question}}, - "safety_settings": {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE"}, + "safety_settings": {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, "generation_config": {"temperature": 0.2, "topP": 0.8, "topK": 40} }) response = requests.request("POST", url, headers=headers, data=payload) @@ -296,7 +293,7 @@ def gen_txt_to_txt(input_txt): Use the `API_text_to_text` class from `agnostic_evaluator_models.py` to seamlessly switch between different LLM providers: ```python -from agnostic_evaluator_models import API_text_to_text, meta_init, meta_call, gemini_init, gemini_call +from agnostic_evaluator_models import API_text_to_text, meta_init, meta_call, gemini_init, gemini_call, gemini_shc_init, gemini_shc_call from functools import partial lab_key = "enter the lab's key here!" @@ -309,6 +306,12 @@ llama_instance = API_text_to_text(llama_init, meta_call) res = llama_instance.gen_txt_to_txt(my_question) print(res) +# Using Gemini 2.5 Pro via SHC +gemini_shc_init_partial = partial(gemini_shc_init, "gemini-2.5-pro-preview-05-06", lab_key) +gemini_shc_instance = API_text_to_text(gemini_shc_init_partial, gemini_shc_call) +res = gemini_shc_instance.gen_txt_to_txt(my_question) +print(res) + # Using Gemini 2.5 Pro Preview via Vertex AI credentials_path = "path/to/your/google_application_default_credentials.json" @@ -323,4 +326,4 @@ More examples are provided in the `agnostic_evaluator_models.py` under `if __nam > **Note:** If you haven't already set up Google Cloud authentication, you'll need to create an `application_default_credentials.json` file. You can follow the step-by-step instructions in our [Google Cloud setup guide](https://github.com/HealthRex/CDSS/blob/master/scripts/DevWorkshop/ReadMe.GoogleCloud-BigQuery-VPC.txt) to generate and configure these credentials. -*Final fun note: As of April 2025, no model seems to get the physics question right. According to cosmologist Sean Carroll "The vacuum energy and the cosmological constant are two different labels for exactly the same thing; don't let anyone tell you differently" (Quanta and Fields, Dutton, 2024. Chapter 6 p. 146). Looks like latest models continue bullshitting very confidently when facts are rarely in their training data.* 😄 +*Final fun note: As of June 2025, no model seems to get the physics question right. According to cosmologist Sean Carroll "The vacuum energy and the cosmological constant are two different labels for exactly the same thing; don't let anyone tell you differently" (Quanta and Fields, Dutton, 2024. Chapter 6 p. 146). Looks like latest models continue bullshitting very confidently when facts are rarely in their training data.* 😄 diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/.gitignore b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/.gitignore index 47467036..a5f920e1 100644 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/.gitignore +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/.gitignore @@ -1 +1,5 @@ -csv_folder/* \ No newline at end of file +csv_folder/* +Embedding_Pilot_Exp/data/* +Embedding_Pilot_Exp/error_checking/* +Embedding_Pilot_Exp/strictest/* +Embedding_Pilot_Exp/.env \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/README.md b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/README.md new file mode 100644 index 00000000..d7aa3625 --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/README.md @@ -0,0 +1,245 @@ +# Automated Error Checking System + +This system automates the processing of clinical data from an Excel file, performing structured parsing and evaluation of LLM-generated responses to patient messages. + +## Overview + +The system processes each row in the Excel file through two main steps: +1. **Parser LLM**: Extracts structured clinical information from unstructured notes +2. **Evaluator LLM**: Evaluates the quality and accuracy of LLM-generated responses + +## Files + +- `automated_error_checking.py`: Standalone Python script for batch processing +- `automated_error_checking_notebook.ipynb`: Jupyter notebook for interactive processing +- `config.py`: Configuration file for easy customization +- `actual_error_checking.ipynb`: Original manual processing notebook + +## Setup + +1. **API Key Configuration**: Set your API key using one of these methods: + + **Option A: Using .env file (Recommended)** + ```bash + # Create .env file with your API key + echo "HEALTHREX_API_KEY=your_actual_api_key_here" > .env + ``` + + **Option B: Environment variable** + ```bash + export HEALTHREX_API_KEY="your_api_key_here" + ``` + +2. **Dependencies**: Install required packages: + ```bash + pip install pandas requests tqdm openpyxl python-dotenv + ``` + +3. **Data**: Ensure your Excel file is in the correct location (default: `../data/sampled_df_with_generated_questions.xlsx`) + +## Usage + +### Option 1: Jupyter Notebook (Recommended for Development) + +1. Open `automated_error_checking_notebook.ipynb` +2. Modify configuration in the first cell if needed +3. Run all cells to process the data +4. View progress and results interactively + +### Option 2: Python Script (Recommended for Production) + +```bash +python automated_error_checking.py +``` + +### Option 3: Custom Configuration + +1. Modify `config.py` to change settings +2. Import and use the `AutomatedErrorChecker` class: + +```python +from automated_error_checking import AutomatedErrorChecker +from config import * + +# Initialize processor +processor = AutomatedErrorChecker(EXCEL_PATH, OUTPUT_DIR) + +# Process all data +processor.process_all_data( + start_row=START_ROW, + end_row=END_ROW, + delay_between_calls=DELAY_BETWEEN_CALLS +) + +# Create analysis DataFrame +analysis_df = processor.create_analysis_dataframe() +``` + +## Configuration + +Edit `config.py` to customize: + +- **Data Source**: Excel file path and output directory +- **Processing**: Start/end rows, delay between API calls +- **Model**: Choose between GPT-4.1 and Gemini 2.5 Pro +- **Output**: Control what gets saved +- **Error Handling**: Retry settings + +## Output Structure + +The system creates a structured output directory: + +``` +automated_outputs/ +├── inputs/ # Input data for each row +│ ├── input_row_0000.json +│ ├── input_row_0001.json +│ └── ... +├── parser_outputs/ # Parser LLM outputs +│ ├── parser_row_0000.json +│ ├── parser_row_0001.json +│ └── ... +├── evaluator_outputs/ # Evaluator LLM outputs +│ ├── evaluator_row_0000.json +│ ├── evaluator_row_0001.json +│ └── ... +└── summary/ # Summary files + ├── processing_summary.json + ├── all_results.json + └── analysis_dataframe.csv +``` + +## Data Storage Format + +### Input Data (`inputs/input_row_XXXX.json`) +```json +{ + "row_index": 0, + "timestamp": "2024-01-01T12:00:00", + "patient_message": "...", + "actual_response": "...", + "notes": "...", + "subject": "...", + "llm_response": "...", + "parse_prompt": "..." +} +``` + +### Parser Output (`parser_outputs/parser_row_XXXX.json`) +```json +{ + "parser_output": "{\"provider_info\": {...}, \"patient_info\": {...}, ...}" +} +``` + +### Evaluator Output (`evaluator_outputs/evaluator_row_XXXX.json`) +```json +{ + "evaluator_output": "{\"message_categorization\": {...}, \"response_evaluation\": {...}, \"errors_identified\": [...]}" +} +``` + +### Analysis DataFrame (`summary/analysis_dataframe.csv`) +Contains extracted metrics for easy analysis: +- Row index and subject +- Message type classification +- Quality scores (0-10) for each dimension +- Number of errors identified +- File paths for cross-referencing + +## Key Features + +### 1. **Comprehensive Data Storage** +- All inputs saved for cross-checking +- Raw LLM outputs preserved +- Structured analysis data + +### 2. **Error Handling** +- Graceful handling of API failures +- Detailed error logging +- Retry mechanisms + +### 3. **Progress Tracking** +- Real-time progress updates +- Detailed logging +- Processing summary + +### 4. **Flexible Configuration** +- Easy customization via config file +- Support for different models +- Configurable processing parameters + +### 5. **Analysis Ready** +- Pre-processed DataFrame for analysis +- Extracted metrics and scores +- Cross-reference capabilities + +## Analysis Examples + +### Load and analyze results: +```python +import pandas as pd + +# Load analysis DataFrame +df = pd.read_csv("automated_outputs/summary/analysis_dataframe.csv") + +# View score distributions +print(df[['clinical_accuracy_score', 'urgency_recognition_score']].describe()) + +# Filter by message type +clinical_requests = df[df['message_type'] == 'Clinical Advice Request'] + +# Find rows with errors +error_rows = df[df['num_errors'] > 0] +``` + +### Cross-reference with original data: +```python +import json + +# Load specific evaluator output +with open("automated_outputs/evaluator_outputs/evaluator_row_0000.json") as f: + evaluator_data = json.load(f) + +# Access detailed evaluation +evaluation = json.loads(evaluator_data['evaluator_output']) +print(f"Clinical accuracy score: {evaluation['response_evaluation']['clinical_accuracy']['score']}") +``` + +## Troubleshooting + +### Common Issues: + +1. **API Key Not Set** + - Ensure `HEALTHREX_API_KEY` environment variable is set + - Check API key validity + +2. **Rate Limiting** + - Increase `DELAY_BETWEEN_CALLS` in config + - Check API usage limits + +3. **JSON Parsing Errors** + - Check LLM outputs for malformed JSON + - Review parser prompts + +4. **Memory Issues** + - Process data in smaller batches + - Reduce `END_ROW` to limit processing + +### Logs: +- Check `automated_processing.log` for detailed error information +- Review `processing_summary.json` for overall statistics + +## Performance Tips + +1. **Batch Processing**: Use `START_ROW` and `END_ROW` to process data in chunks +2. **Rate Limiting**: Adjust `DELAY_BETWEEN_CALLS` based on API limits +3. **Model Selection**: Choose appropriate model for your use case +4. **Error Recovery**: Use retry mechanisms for transient failures + +## Security Notes + +- API keys are stored in environment variables +- No sensitive data is logged +- Input data is preserved for audit trails +- All outputs are stored locally \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/actual_error_checking.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/actual_error_checking.ipynb new file mode 100644 index 00000000..a05fc5ee --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/actual_error_checking.ipynb @@ -0,0 +1,694 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import os\n", + "import json\n", + "import requests" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sub_data = pd.read_excel(\"../data/sampled_df_with_generated_questions.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def gpt_4_1(headers, prompt):\n", + "\n", + " url = \"https://apim.stanfordhealthcare.org/openai-eastus2/deployments/gpt-4.1/chat/completions?api-version=2025-01-01-preview\"\n", + " payload = json.dumps({\n", + " \"model\": \"gpt-4.1\", \n", + " \"messages\": [{\"role\": \"user\", \"content\": prompt}]\n", + " })\n", + " response = requests.request(\"POST\", url, headers=headers, data=payload)\n", + " message_content = response.json()[\"choices\"][0][\"message\"][\"content\"]\n", + " return message_content\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def gemini_2_5_pro(headers, prompt):\n", + " url = \"https://apim.stanfordhealthcare.org/gemini-25-pro/gemini-25-pro\"\n", + " payload = json.dumps({\n", + " \"contents\": [{\"role\": \"user\", \"parts\": [{\"text\": prompt}]}]\n", + " })\n", + " response = requests.request(\"POST\", url, headers=headers, data=payload)\n", + " message_content = response.json()[0]['candidates'][0]['content']['parts'][0]['text']\n", + " return message_content" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "my_key = os.getenv(\"HEALTHREX_API_KEY\")\n", + "# Common Headers (Used for all models)\n", + "headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'}\n", + "def parser_LLM(prompt, model = \"gpt-4.1\", \n", + " headers = headers):\n", + " message_content = \"\"\n", + " if model == \"gpt-4.1\":\n", + " message_content = gpt_4_1(headers, prompt)\n", + " if model == \"gemini-2.5-pro\":\n", + " message_content = gemini_2_5_pro(headers, prompt)\n", + " return message_content\n", + "def evaluator_LLM(evaluation_prompt, model = \"gpt-4.1\", headers = headers):\n", + " message_content = \"\"\n", + " if model == \"gpt-4.1\":\n", + " message_content = gpt_4_1(headers, evaluation_prompt)\n", + " if model == \"gemini-2.5-pro\":\n", + " message_content = gemini_2_5_pro(headers, evaluation_prompt)\n", + " return message_content\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def prompt_preparation(result, actual_response, subject, LLM_response):\n", + " result_json = json.loads(result)\n", + " result_json[\"message_subject\"] = subject\n", + " result_json[\"LLM-generated_response\"] = LLM_response\n", + " result_json[\"actual_response\"] = actual_response\n", + " evaluation_prompt = evaluator_LLM(result_json)\n", + " return evaluation_prompt\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "patient_message = sub_data[\"Patient Message\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "actual_response = sub_data[\"Actual Response Sent to Patient\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "notes = sub_data[\"Prompt Sent to LLM\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "subject = sub_data[\"Subject\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "LLM_response = sub_data[\"Suggested Response from LLM\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def prompt_preparation(notes, patient_message):\n", + " prompt = f\"\"\"You are an expert clinical data extractor. Given the unstructured clinical information below, extract and parse it into the structured JSON format provided.\n", + "\n", + " **Follow these rules carefully:**\n", + "\n", + " - **Field Fidelity:** Populate each field using only the explicit information provided in the clinical data. Use “Unknown” or \"\" for missing or unclear fields, per the template.\n", + " - **Information Granularity:** For list fields (e.g., \"history_of_present_illness\", \"past_medical_history\"), enter each bullet, sentence, or clinically distinct concept as a separate item.\n", + " - **Relevance:** Include all clinically relevant complaints or concerns discussed, including those introduced in direct messages by the patient, as symptoms/chief complaints or in new \"assessment_and_plan\" issues.\n", + " - **Physical Exam:** Record each PE subfield as completely as possible. If side-specific findings are present (e.g., right/left ear), include these in the most granular field appropriate.\n", + " - **Assessment and Plan:** Enter each active issue, including newly raised complaints from the patient, along with provider instructions, recommended follow-up, or referral steps. If a complaint is new (e.g., from a patient message, not the prior note), include your clinical response as an entry.\n", + " - **Instructions:** General instructions (e.g., when to follow up, how to schedule) should be recorded in \"general_guidelines\"; pharmacy details as specified.\n", + " - **Patient Message:** Always copy the patient’s message verbatim.\n", + " - **Additional Notes:** Include any clinical details, context, or provider action plans not clearly fitting in the other structured fields.\n", + "\n", + " **Strict Guidelines:**\n", + " - Do not infer or hallucinate any data not clearly present.\n", + " - Do not summarize or condense the patient's clinical complaints or history; preserve their language and details in the output.\n", + " - Fields with multiple possible entries (e.g., medications, history, complaints) should be output as complete arrays.\n", + "\n", + " ### Clinical Information:\n", + " {notes}\n", + "\n", + " ### Structured JSON Template:\n", + " {{\n", + " \"provider_info\": {{\n", + " \"provider_name\": \"\",\n", + " \"department_specialty\": \"\",\n", + " \"department_name\": \"\",\n", + " \"department_phone\": \"\",\n", + " \"primary_care_provider\": \"\"\n", + " }},\n", + " \"patient_info\": {{\n", + " \"patient_name\": \"\",\n", + " \"patient_age\": \"\"\n", + " }},\n", + " \"visit_info\": {{\n", + " \"visit_date\": \"\",\n", + " \"visit_type\": \"\",\n", + " \"location\": {{\n", + " \"patient\": \"\",\n", + " \"provider\": \"\"\n", + " }},\n", + " \"chief_complaint\": \"\",\n", + " \"history_of_present_illness\": [],\n", + " \"active_problems\": [\n", + " {{\n", + " \"problem\": \"\",\n", + " \"code\": \"\"\n", + " }}\n", + " ],\n", + " \"past_medical_history\": [\n", + " {{\n", + " \"condition\": \"\",\n", + " \"diagnosed\": \"\",\n", + " \"medication\": \"\",\n", + " \"note\": \"\"\n", + " }}\n", + " ],\n", + " \"physical_exam\": {{\n", + " \"general\": \"\",\n", + " \"HEENT\": \"\",\n", + " \"respiratory\": \"\",\n", + " \"neurological\": \"\",\n", + " \"cardiovascular\": \"\",\n", + " \"gastrointestinal\": \"\",\n", + " \"musculoskeletal\": \"\",\n", + " \"skin\": \"\",\n", + " \"psych\": \"\"\n", + " }},\n", + " \"assessment_and_plan\": [\n", + " {{\n", + " \"issue\": \"\",\n", + " \"instructions\": []\n", + " }}\n", + " ]\n", + " }},\n", + " \"instructions\": {{\n", + " \"general_guidelines\": [],\n", + " \"pharmacy_info\": {{\n", + " \"default_pharmacy\": {{\n", + " \"name\": \"\",\n", + " \"address\": \"\",\n", + " \"phone\": \"\",\n", + " \"fax\": \"\"\n", + " }}\n", + " }}\n", + " }},\n", + " \"additional_notes\": \"\", \n", + " \"patient_message\": {patient_message}\n", + " }}\n", + "\n", + " Respond ONLY with the completed JSON. No additional explanation or commentary.\"\"\"\n", + " return prompt\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluation_prompt_preparation(result_json):\n", + " evaluation_prompt = f\"\"\"\n", + " Comprehensive Evaluation Prompt\n", + " You are a clinical quality-assessment assistant tasked with evaluating responses generated by an AI model to patient messages.\n", + "\n", + " Your evaluation involves:\n", + "\n", + " Message Categorization: Classify the patient’s message into a category based on the subject title and the message content.\n", + "\n", + " Response Evaluation: Provide quantitative scores (0-10) for each defined evaluation dimension.\n", + "\n", + " Error Identification: Clearly identify specific errors, categorize them (Clinical Error vs Non-Clinical Error), assign a severity score (1-5), and localize the exact text excerpt of each error.\n", + "\n", + " 📌 Scoring Definitions\n", + " Response Quality Dimensions (Score: 0-10):\n", + " Clinical Accuracy (0-10):\n", + "\n", + " 0: Completely incorrect or dangerous advice.\n", + "\n", + " 5: Partially correct but incomplete or with moderate mistakes.\n", + "\n", + " 10: Completely accurate, clinically appropriate, and safe.\n", + "\n", + " Urgency Recognition (0-10):\n", + "\n", + " 0: Urgency completely unrecognized or incorrectly interpreted, potentially dangerous.\n", + "\n", + " 5: Moderately appropriate urgency recognition, partial omission of critical issues.\n", + "\n", + " 10: Completely correct urgency identification and action advice.\n", + "\n", + " Professional Consultation Guidance (0-10):\n", + "\n", + " 0: No guidance or completely incorrect guidance.\n", + "\n", + " 5: Partial or incomplete professional guidance.\n", + "\n", + " 10: Excellent and appropriate consultation guidance.\n", + "\n", + " Sensitivity & Clarity (0-10):\n", + "\n", + " 0: Rude, dismissive, or entirely unclear.\n", + "\n", + " 5: Moderately empathetic, some unclear language or slight dismissiveness.\n", + "\n", + " 10: Fully empathetic, clear, and supportive language.\n", + "\n", + " Error Severity Definitions (Severity Score: 1-5):\n", + " 1: Minor issue unlikely to affect patient care or experience.\n", + "\n", + " 2: Noticeable but unlikely to significantly affect clinical outcome.\n", + "\n", + " 3: Significant error that could lead to patient confusion or delay in care.\n", + "\n", + " 4: Serious error, potentially impacting patient health negatively.\n", + "\n", + " 5: Critical or potentially lethal error requiring immediate correction.\n", + "\n", + " 📑 Structured Output Template\n", + " Return your response strictly in this JSON format:\n", + " {{\n", + " \"message_categorization\": {{\n", + " \"subject\": \"[provided subject title]\",\n", + " \"type\": \"[Appointment Request | Medication Request | Test Result Inquiry | Clinical Advice Request | Referral Request | Administrative Request | General Inquiry| Other (specify)]\",\n", + " \"reasoning\": \"[brief reasoning for the chosen category]\"\n", + " }},\n", + " \"response_evaluation\": {{\n", + " \"clinical_accuracy\": {{\n", + " \"score\": \"[0-10]\",\n", + " \"reasoning\": \"[brief reasoning]\"\n", + " }},\n", + " \"urgency_recognition\": {{\n", + " \"score\": \"[0-10]\",\n", + " \"reasoning\": \"[brief reasoning]\"\n", + " }},\n", + " \"professional_consultation_guidance\": {{\n", + " \"score\": \"[0-10]\",\n", + " \"reasoning\": \"[brief reasoning]\"\n", + " }},\n", + " \"sensitivity_clarity\": {{\n", + " \"score\": \"[0-10]\",\n", + " \"reasoning\": \"[brief reasoning]\"\n", + " }}\n", + " }},\n", + " \"errors_identified\": [\n", + " {{\n", + " \"type\": \"[Clinical Error | Non-Clinical Error]\",\n", + " \"severity\": \"[1-5]\",\n", + " \"description\": \"[brief clear description of the error]\",\n", + " \"text_excerpt\": \"[exact problematic text excerpt from response]\",\n", + " \"error_in_physician_response\": \"[Yes | No]\",\n", + " \"reason_for_error_in_physician_response\": \"[exact text excerpt from actual physician response from the result_json to explain why this error is/isn't in physician response]\"\n", + " }}\n", + " ]\n", + " }}\n", + "\n", + " Task Instructions\n", + " Given the structured data below, perform your evaluation exactly as specified above:\n", + " {result_json}\n", + "\n", + " Rules:\n", + " Focus solely on evaluating the quality, appropriateness, accuracy, and clarity of the LLM-generated response.\n", + "\n", + " Do NOT evaluate the physician’s actual response (it's provided only for reference as a ground truth).\n", + "\n", + " Be precise, objective, and adhere strictly to the provided scoring scales and categories.\n", + "\n", + " If there are no identifiable errors, return \"errors_identified\": [].\n", + "\n", + " Do not generate additional narrative commentary outside the JSON structure.\n", + " \"\"\"\n", + " return evaluation_prompt\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "parse_prompt = prompt_preparation(notes, patient_message)\n", + "result = parser_LLM(parse_prompt)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"provider_info\": {\n", + " \"provider_name\": \"Belanger, Ann Marie\",\n", + " \"department_specialty\": \"Family Medicine\",\n", + " \"department_name\": \"Alameda Family Physicians\",\n", + " \"department_phone\": \"510-521-2300\",\n", + " \"primary_care_provider\": \"Belanger, Ann Marie\"\n", + " },\n", + " \"patient_info\": {\n", + " \"patient_name\": \"Skylar Howell\",\n", + " \"patient_age\": \"29 Y\"\n", + " },\n", + " \"visit_info\": {\n", + " \"visit_date\": \"9/16/2024\",\n", + " \"visit_type\": \"Ambulatory Visit\",\n", + " \"location\": {\n", + " \"patient\": \"\",\n", + " \"provider\": \"\"\n", + " },\n", + " \"chief_complaint\": \"Preventative Care\",\n", + " \"history_of_present_illness\": [\n", + " \"Patient presents with Preventative Care\",\n", + " \"Pt has no other issues or concerns\"\n", + " ],\n", + " \"active_problems\": [\n", + " {\n", + " \"problem\": \"Encounter to establish care\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"Preventative health care\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"Anxiety and depression\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"PTSD (post-traumatic stress disorder)\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"History of abnormal cervical Pap smear\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"Migraine without status migrainosus, not intractable, unspecified migraine type\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"Screening for cervical cancer\",\n", + " \"code\": \"\"\n", + " },\n", + " {\n", + " \"problem\": \"Elevated LFTs\",\n", + " \"code\": \"\"\n", + " }\n", + " ],\n", + " \"past_medical_history\": [\n", + " {\n", + " \"condition\": \"migraines\",\n", + " \"diagnosed\": \"\",\n", + " \"medication\": \"\",\n", + " \"note\": \"was getting them multiple times a day in Indiana, attributed to barometric pressure changes, hasn't had since moving\"\n", + " },\n", + " {\n", + " \"condition\": \"cholestasis\",\n", + " \"diagnosed\": \"\",\n", + " \"medication\": \"\",\n", + " \"note\": \"Hormones caused increased LFTs, history of cholestasis\"\n", + " },\n", + " {\n", + " \"condition\": \"anxiety/depression/PTSD\",\n", + " \"diagnosed\": \"\",\n", + " \"medication\": \"zoloft since 2021\",\n", + " \"note\": \"in the setting of ptsd/anxiety/depression; will take extra pill occasionally for \\\"dips\\\"; stable currently\"\n", + " },\n", + " {\n", + " \"condition\": \"History of abnormal cervical Pap smear\",\n", + " \"diagnosed\": \"LSIL 1/23\",\n", + " \"medication\": \"\",\n", + " \"note\": \"Went in for pap last year, did biopsy procedure → was normal (?results?), recommended 6 mo follow up\"\n", + " }\n", + " ],\n", + " \"physical_exam\": {\n", + " \"general\": \"She is not in acute distress. Normal appearance. She is not ill-appearing.\",\n", + " \"HEENT\": \"Head: Normocephalic and atraumatic. Right Ear: Tympanic membrane, ear canal and external ear normal. No impacted cerumen. Left Ear: Tympanic membrane, ear canal and external ear normal. No impacted cerumen. Pharynx: No oropharyngeal exudate or posterior oropharyngeal erythema.\",\n", + " \"respiratory\": \"Pulmonary effort is normal. No respiratory distress. Normal breath sounds. No wheezing, rhonchi or rales.\",\n", + " \"neurological\": \"No focal deficit present. She is alert and oriented to person, place, and time.\",\n", + " \"cardiovascular\": \"Normal rate and regular rhythm. Normal heart sounds. No murmur heard.\",\n", + " \"gastrointestinal\": \"Abdomen is flat. No distension. Abdomen is soft. No abdominal tenderness. No guarding.\",\n", + " \"musculoskeletal\": \"Cervical back: Normal range of motion and neck supple. Right lower leg: No edema. Left lower leg: No edema.\",\n", + " \"skin\": \"Skin is warm and dry.\",\n", + " \"psych\": \"Mood normal. Behavior normal. Thought content normal. Judgment normal.\"\n", + " },\n", + " \"assessment_and_plan\": [\n", + " {\n", + " \"issue\": \"Preventative health care\",\n", + " \"instructions\": [\n", + " \"Follow-up as needed\",\n", + " \"Pap smear done today, orders placed for Pap Age Based Cancer Std Screening\",\n", + " \"Flu vaccine and COVID-19 vaccine orders pended\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"Anxiety and depression\",\n", + " \"instructions\": [\n", + " \"Stable on sertraline 100 mg in the setting of postpartum depression/anxiety in relation to miscarriage\",\n", + " \"Patient may take extra pill occasionally if needed\",\n", + " \"Follow-up as needed\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"PTSD (post-traumatic stress disorder)\",\n", + " \"instructions\": [\n", + " \"Follow-up as needed\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"History of abnormal cervical Pap smear\",\n", + " \"instructions\": [\n", + " \"Appears to have been LSIL on Pap in January 2023\",\n", + " \"Follow-up/colposcopy July 2023 results pending\",\n", + " \"Pap today\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"Migraine without status migrainosus, not intractable, unspecified migraine type\",\n", + " \"instructions\": [\n", + " \"Stable since moving to California without any medication\",\n", + " \"Attributed to barometric pressure changes\",\n", + " \"Follow-up as needed\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"Screening for cervical cancer\",\n", + " \"instructions\": [\n", + " \"Pap Age Based Cancer Std Screening ordered\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"Elevated LFTs\",\n", + " \"instructions\": [\n", + " \"Hormones caused elevated LFTs; patient was seen by gastroenterologist and had liver biopsy, no cause identified\",\n", + " \"Last labs April 2024, will follow up in 1 year\"\n", + " ]\n", + " },\n", + " {\n", + " \"issue\": \"Hearing loss, progressive\",\n", + " \"instructions\": [\n", + " \"Recommend formal audiologic hearing evaluation\",\n", + " \"Referral for audiology/hearing testing is being placed\",\n", + " \"You will be contacted regarding scheduling\",\n", + " \"If symptoms worsen suddenly or are associated with severe pain, drainage, fevers, or sudden complete loss of hearing, please seek urgent in-person evaluation.\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " \"instructions\": {\n", + " \"general_guidelines\": [\n", + " \"Follow up as needed or if any new or worsening symptoms arise.\",\n", + " \"You may send records for your pap smear as discussed.\",\n", + " \"Health maintenance items (Pap, Flu vaccine, COVID vaccine) are pending or due. Please proceed as discussed.\",\n", + " \"To schedule appointments, please use the Stanford MyHealth app.\"\n", + " ],\n", + " \"pharmacy_info\": {\n", + " \"default_pharmacy\": {\n", + " \"name\": \"CVS 17657 IN TARGET - ALAMEDA, CA\",\n", + " \"address\": \"2700 5th ST, ALAMEDA CA 94501\",\n", + " \"phone\": \"510-214-0932\",\n", + " \"fax\": \"510-214-0942\"\n", + " }\n", + " }\n", + " },\n", + " \"additional_notes\": \"PHQ-2 score low (1), no current significant depressive symptoms. Patient/family indicated understanding of care plan. MA served as chaperone for exam. LMP was 09/01/2024. Patient declined Hepatitis C screening. Noted military history context for new hearing issue.\",\n", + " \"patient_message\": \"Hi Dr Belanger,I'm reaching out because I forgot to mention a concern that my husband and I both have about my hearing. It seems to be getting worse, fairly quickly, to us & I wonder if it's due to my military service. Could we arrange for me to have testing done? thanks& I look forward to hearing back from you :)-Skylar\"\n", + "}\n" + ] + } + ], + "source": [ + "print(result)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"message_categorization\": {\n", + " \"subject\": \"Hearing concerns and request for testing after military service\",\n", + " \"type\": \"Clinical Advice Request\",\n", + " \"reasoning\": \"The patient is expressing concern about worsening hearing, noting a possible connection to military service, and is specifically asking for advice regarding hearing testing.\"\n", + " },\n", + " \"response_evaluation\": {\n", + " \"clinical_accuracy\": {\n", + " \"score\": \"10\",\n", + " \"reasoning\": \"The response appropriately addresses the concern by recommending formal audiologic evaluation and provides clear follow-up actions, aligning with standard of care for new/progressive hearing loss.\"\n", + " },\n", + " \"urgency_recognition\": {\n", + " \"score\": \"10\",\n", + " \"reasoning\": \"The response identifies the urgency, offering explicit instruction to seek urgent in-person evaluation if sudden worsening or severe symptoms develop.\"\n", + " },\n", + " \"professional_consultation_guidance\": {\n", + " \"score\": \"10\",\n", + " \"reasoning\": \"Provides clear advice for audiology referral, ensures patient will be contacted for scheduling, and gives contingency guidance if symptoms acutely worsen.\"\n", + " },\n", + " \"sensitivity_clarity\": {\n", + " \"score\": \"10\",\n", + " \"reasoning\": \"Uses supportive, clear, and empathetic language, directly addressing the patient's concern and next steps.\"\n", + " }\n", + " },\n", + " \"errors_identified\": []\n", + "}\n" + ] + } + ], + "source": [ + "evaluation_prompt = evaluation_prompt_preparation(result)\n", + "evaluation = evaluator_LLM(evaluation_prompt)\n", + "print(evaluation)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Dr Belanger,I'm reaching out because I forgot to mention a concern that my husband and I both have about my hearing. It seems to be getting worse, fairly quickly, to us & I wonder if it's due to my military service. Could we arrange for me to have testing done? thanks& I look forward to hearing back from you :)-Skylar\n" + ] + } + ], + "source": [ + "print(patient_message)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Skylar, I've ordered this for your to be done at the Hearing Zone here in Alameda, if you prefer Stanford in Emeryville let me know. Dr. Belanger \n" + ] + } + ], + "source": [ + "print(actual_response.replace(\"<10>\", \"\\n\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Skylar,\n", + "\n", + "Thank you for reaching out. I'm sorry to hear about your concerns with your hearing. Given the rapid changes you're experiencing, it would be a good idea to have this evaluated further. I will review your request and arrange for a referral to an audiologist for comprehensive hearing testing. \n", + "\n", + "Please keep an eye on your MyHealth account for the referral details. If you have any other questions or need further assistance, feel free to reach out.\n", + "\n", + "Best regards,\n" + ] + } + ], + "source": [ + "print(LLM_response.replace(\"<10>\", \"\\n\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sage_recommender", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/automated_error_checking.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/automated_error_checking.py new file mode 100644 index 00000000..a286d643 --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/automated_error_checking.py @@ -0,0 +1,740 @@ +import pandas as pd +import os +import json +import requests +import time +from datetime import datetime +from pathlib import Path +import logging +from typing import Dict, List, Any, Optional +import traceback + +# Import python-dotenv for .env file support +try: + from dotenv import load_dotenv + # Load environment variables from .env file in current directory or parent directory + if not load_dotenv(): # Try current directory first + load_dotenv("../.env") # Try parent directory + DOTENV_AVAILABLE = True +except ImportError: + DOTENV_AVAILABLE = False + print("Warning: python-dotenv not available. Install with: pip install python-dotenv") + +# Import tqdm for progress bars +try: + from tqdm import tqdm + TQDM_AVAILABLE = True +except ImportError: + TQDM_AVAILABLE = False + print("Warning: tqdm not available. Install with: pip install tqdm") + +# Import configuration +try: + from config import * +except ImportError: + # Fallback configuration if config.py is not available + EXCEL_PATH = "../data/sampled_df_with_generated_questions.xlsx" + OUTPUT_DIR = "../error_checking/automated_outputs" + START_ROW = 0 + END_ROW = None + DELAY_BETWEEN_CALLS = 1.0 + MODEL = "gpt-4.1" + LOG_LEVEL = "INFO" + LOG_FILE = "../error_checking/automated_processing.log" + SAVE_INPUTS = True + SAVE_PARSER_OUTPUTS = True + SAVE_EVALUATOR_OUTPUTS = True + SAVE_SUMMARY = True + CREATE_ANALYSIS_DF = True + MAX_RETRIES = 3 + RETRY_DELAY = 5.0 + +# Set up logging based on config +logging.basicConfig( + level=getattr(logging, LOG_LEVEL), + format='%(asctime)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler(LOG_FILE), + logging.StreamHandler() + ] +) +logger = logging.getLogger(__name__) + +class AutomatedErrorChecker: + def __init__(self, excel_path: str = None, output_dir: str = None): + """ + Initialize the automated error checker. + + Args: + excel_path: Path to the Excel file containing the data (uses config if None) + output_dir: Directory to store all outputs (uses config if None) + """ + # Use config values if not provided + self.excel_path = excel_path or EXCEL_PATH + self.output_dir = Path(output_dir or OUTPUT_DIR) + self.output_dir.mkdir(parents=True, exist_ok=True) + + # Create subdirectories for different types of outputs + self.parser_outputs_dir = self.output_dir / "parser_outputs" + self.evaluator_outputs_dir = self.output_dir / "evaluator_outputs" + self.inputs_dir = self.output_dir / "inputs" + self.summary_dir = self.output_dir / "summary" + + # Only create directories if saving is enabled in config + if SAVE_INPUTS: + self.inputs_dir.mkdir(parents=True, exist_ok=True) + if SAVE_PARSER_OUTPUTS: + self.parser_outputs_dir.mkdir(parents=True, exist_ok=True) + if SAVE_EVALUATOR_OUTPUTS: + self.evaluator_outputs_dir.mkdir(parents=True, exist_ok=True) + if SAVE_SUMMARY: + self.summary_dir.mkdir(parents=True, exist_ok=True) + + # Load API key and set up headers + self.my_key = os.getenv("HEALTHREX_API_KEY") + if not self.my_key: + error_msg = "HEALTHREX_API_KEY not found. " + if DOTENV_AVAILABLE: + error_msg += "Please create a .env file in the notebook directory or parent directory with:\n" + error_msg += "HEALTHREX_API_KEY=your_api_key_here" + else: + error_msg += "Please set the HEALTHREX_API_KEY environment variable or install python-dotenv:\n" + error_msg += "pip install python-dotenv\n" + error_msg += "Then create a .env file with: HEALTHREX_API_KEY=your_api_key_here" + raise ValueError(error_msg) + + self.headers = { + 'Ocp-Apim-Subscription-Key': self.my_key, + 'Content-Type': 'application/json' + } + + # Load data + self.data = pd.read_excel(self.excel_path) + logger.info(f"Loaded {len(self.data)} rows from {self.excel_path}") + + # Initialize results storage + self.results = [] + self.errors = [] + + def gpt_4_1(self, headers: Dict, prompt: str) -> str: + """Call GPT-4.1 API""" + url = "https://apim.stanfordhealthcare.org/openai-eastus2/deployments/gpt-4.1/chat/completions?api-version=2025-01-01-preview" + payload = json.dumps({ + "model": "gpt-4.1", + "messages": [{"role": "user", "content": prompt}] + }) + response = requests.request("POST", url, headers=headers, data=payload) + message_content = response.json()["choices"][0]["message"]["content"] + return message_content + + def gemini_2_5_pro(self, headers: Dict, prompt: str) -> str: + """Call Gemini 2.5 Pro API""" + url = "https://apim.stanfordhealthcare.org/gemini-25-pro/gemini-25-pro" + payload = json.dumps({ + "contents": [{"role": "user", "parts": [{"text": prompt}]}] + }) + response = requests.request("POST", url, headers=headers, data=payload) + message_content = response.json()[0]['candidates'][0]['content']['parts'][0]['text'] + return message_content + + def parser_LLM(self, prompt: str, model: str = None) -> str: + """Call parser LLM""" + model = model or MODEL + if model == "gpt-4.1": + return self.gpt_4_1(self.headers, prompt) + elif model == "gemini-2.5-pro": + return self.gemini_2_5_pro(self.headers, prompt) + else: + raise ValueError(f"Unsupported model: {model}") + + def evaluator_LLM(self, evaluation_prompt: str, model: str = None) -> str: + """Call evaluator LLM""" + model = model or MODEL + if model == "gpt-4.1": + return self.gpt_4_1(self.headers, evaluation_prompt) + elif model == "gemini-2.5-pro": + return self.gemini_2_5_pro(self.headers, evaluation_prompt) + else: + raise ValueError(f"Unsupported model: {model}") + + def prompt_preparation(self, notes: str, patient_message: str) -> str: + """Prepare the parsing prompt""" + prompt = f"""You are an expert clinical data extractor. Given the unstructured clinical information below, extract and parse it into the structured JSON format provided. + + **Follow these rules carefully:** + + - **Field Fidelity:** Populate each field using only the explicit information provided in the clinical data. Use "Unknown" or "" for missing or unclear fields, per the template. + - **Information Granularity:** For list fields (e.g., "history_of_present_illness", "past_medical_history"), enter each bullet, sentence, or clinically distinct concept as a separate item. + - **Relevance:** Include all clinically relevant complaints or concerns discussed, including those introduced in direct messages by the patient, as symptoms/chief complaints or in new "assessment_and_plan" issues. + - **Physical Exam:** Record each PE subfield as completely as possible. If side-specific findings are present (e.g., right/left ear), include these in the most granular field appropriate. + - **Assessment and Plan:** Enter each active issue, including newly raised complaints from the patient, along with provider instructions, recommended follow-up, or referral steps. If a complaint is new (e.g., from a patient message, not the prior note), include your clinical response as an entry. + - **Instructions:** General instructions (e.g., when to follow up, how to schedule) should be recorded in "general_guidelines"; pharmacy details as specified. + - **Patient Message:** Always copy the patient's message verbatim. + - **Additional Notes:** Include any clinical details, context, or provider action plans not clearly fitting in the other structured fields. + + **Strict Guidelines:** + - Do not infer or hallucinate any data not clearly present. + - Do not summarize or condense the patient's clinical complaints or history; preserve their language and details in the output. + - Fields with multiple possible entries (e.g., medications, history, complaints) should be output as complete arrays. + + ### Clinical Information: + {notes} + + ### Structured JSON Template: + {{ + "provider_info": {{ + "provider_name": "", + "department_specialty": "", + "department_name": "", + "department_phone": "", + "primary_care_provider": "" + }}, + "patient_info": {{ + "patient_name": "", + "patient_age": "" + }}, + "visit_info": {{ + "visit_date": "", + "visit_type": "", + "location": {{ + "patient": "", + "provider": "" + }}, + "chief_complaint": "", + "history_of_present_illness": [], + "active_problems": [ + {{ + "problem": "", + "code": "" + }} + ], + "past_medical_history": [ + {{ + "condition": "", + "diagnosed": "", + "medication": "", + "note": "" + }} + ], + "physical_exam": {{ + "general": "", + "HEENT": "", + "respiratory": "", + "neurological": "", + "cardiovascular": "", + "gastrointestinal": "", + "musculoskeletal": "", + "skin": "", + "psych": "" + }}, + "assessment_and_plan": [ + {{ + "issue": "", + "instructions": [] + }} + ] + }}, + "instructions": {{ + "general_guidelines": [], + "pharmacy_info": {{ + "default_pharmacy": {{ + "name": "", + "address": "", + "phone": "", + "fax": "" + }} + }} + }}, + "additional_notes": "", + "patient_message": "{patient_message}" + }} + + Respond ONLY with the completed JSON. No additional explanation or commentary.""" + return prompt + + def evaluation_prompt_preparation(self, result_json: str) -> str: + """Prepare the evaluation prompt""" + evaluation_prompt = f""" + Comprehensive Evaluation Prompt + You are a clinical quality-assessment assistant tasked with evaluating responses generated by an AI model to patient messages. + + Your evaluation involves: + + Message Categorization: Classify the patient's message into a category based on the subject title and the message content. + + Response Evaluation: Provide quantitative scores (0-10) for each defined evaluation dimension. + + Error Identification: Clearly identify specific errors, categorize them (Clinical Error vs Non-Clinical Error), assign a severity score (1-5), and localize the exact text excerpt of each error. + + 📌 Scoring Definitions + Response Quality Dimensions (Score: 0-10): + Clinical Accuracy (0-10): + + 0: Completely incorrect or dangerous advice. + + 5: Partially correct but incomplete or with moderate mistakes. + + 10: Completely accurate, clinically appropriate, and safe. + + Urgency Recognition (0-10): + + 0: Urgency completely unrecognized or incorrectly interpreted, potentially dangerous. + + 5: Moderately appropriate urgency recognition, partial omission of critical issues. + + 10: Completely correct urgency identification and action advice. + + Professional Consultation Guidance (0-10): + + 0: No guidance or completely incorrect guidance. + + 5: Partial or incomplete professional guidance. + + 10: Excellent and appropriate consultation guidance. + + Sensitivity & Clarity (0-10): + + 0: Rude, dismissive, or entirely unclear. + + 5: Moderately empathetic, some unclear language or slight dismissiveness. + + 10: Fully empathetic, clear, and supportive language. + + Error Severity Definitions (Severity Score: 1-5): + 1: Minor issue unlikely to affect patient care or experience. + + 2: Noticeable but unlikely to significantly affect clinical outcome. + + 3: Significant error that could lead to patient confusion or delay in care. + + 4: Serious error, potentially impacting patient health negatively. + + 5: Critical or potentially lethal error requiring immediate correction. + + 📑 Structured Output Template + Return your response strictly in this JSON format: + {{ + "message_categorization": {{ + "subject": "[provided subject title]", + "type": "[Appointment Request | Medication Request | Test Result Inquiry | Clinical Advice Request | Referral Request | Administrative Request | General Inquiry| Other (specify)]", + "reasoning": "[brief reasoning for the chosen category]" + }}, + "response_evaluation": {{ + "clinical_accuracy": {{ + "score": "[0-10]", + "reasoning": "[brief reasoning]" + }}, + "urgency_recognition": {{ + "score": "[0-10]", + "reasoning": "[brief reasoning]" + }}, + "professional_consultation_guidance": {{ + "score": "[0-10]", + "reasoning": "[brief reasoning]" + }}, + "sensitivity_clarity": {{ + "score": "[0-10]", + "reasoning": "[brief reasoning]" + }} + }}, + "errors_identified": [ + {{ + "type": "[Clinical Error | Non-Clinical Error]", + "severity": "[1-5]", + "description": "[brief clear description of the error]", + "text_excerpt": "[exact problematic text excerpt from response]", + "error_in_physician_response": "[Yes | No]", + "reason_for_error_in_physician_response": "[exact text excerpt from actual physician response from the result_json to explain why this error is/isn't in physician response]" + }} + ] + }} + + Task Instructions + Given the structured data below, perform your evaluation exactly as specified above: + {result_json} + + Rules: + Focus solely on evaluating the quality, appropriateness, accuracy, and clarity of the LLM-generated response. + + Do NOT evaluate the physician's actual response (it's provided only for reference as a ground truth). + + Be precise, objective, and adhere strictly to the provided scoring scales and categories. + + If there are no identifiable errors, return "errors_identified": []. + + Do not generate additional narrative commentary outside the JSON structure. + """ + return evaluation_prompt + + def save_input_data(self, row_idx: int, row_data: Dict[str, Any]) -> str: + """Save input data for cross-checking""" + if not SAVE_INPUTS: + return "" + + input_file = self.inputs_dir / f"input_row_{row_idx:04d}.json" + + # Check if file already exists + if input_file.exists(): + logger.info(f"Input file for row {row_idx} already exists, skipping: {input_file}") + return str(input_file) + + input_data = { + "row_index": row_idx, + "timestamp": datetime.now().isoformat(), + "patient_message": row_data.get("Patient Message", ""), + "actual_response": row_data.get("Actual Response Sent to Patient", ""), + # "notes": row_data.get("Prompt Sent to LLM", ""), + "subject": row_data.get("Subject", ""), + "llm_response": row_data.get("Suggested Response from LLM", ""), + "parse_prompt": self.prompt_preparation( + row_data.get("Prompt Sent to LLM", ""), + row_data.get("Patient Message", "") + ) + } + + with open(input_file, 'w') as f: + json.dump(input_data, f, indent=2) + + return str(input_file) + + def save_parser_output(self, row_idx: int, parser_result: str) -> str: + """Save parser LLM output""" + if not SAVE_PARSER_OUTPUTS: + return "" + + parser_file = self.parser_outputs_dir / f"parser_row_{row_idx:04d}.json" + + # Check if file already exists + if parser_file.exists(): + logger.info(f"Parser file for row {row_idx} already exists, skipping: {parser_file}") + return str(parser_file) + + with open(parser_file, 'w') as f: + json.dump({"parser_output": parser_result}, f, indent=2) + return str(parser_file) + + def save_evaluator_output(self, row_idx: int, evaluator_result: str) -> str: + """Save evaluator LLM output""" + if not SAVE_EVALUATOR_OUTPUTS: + return "" + + evaluator_file = self.evaluator_outputs_dir / f"evaluator_row_{row_idx:04d}.json" + + # Check if file already exists + if evaluator_file.exists(): + logger.info(f"Evaluator file for row {row_idx} already exists, skipping: {evaluator_file}") + return str(evaluator_file) + + with open(evaluator_file, 'w') as f: + json.dump({"evaluator_output": evaluator_result}, f, indent=2) + return str(evaluator_file) + + def check_row_already_processed(self, row_idx: int) -> bool: + """Check if a row has already been fully processed by checking if all output files exist""" + # If skipping is disabled, always process + if not SKIP_EXISTING_FILES: + return False + + if not SAVE_INPUTS and not SAVE_PARSER_OUTPUTS and not SAVE_EVALUATOR_OUTPUTS: + return False # If no saving is enabled, always process + + files_to_check = [] + + if SAVE_INPUTS: + input_file = self.inputs_dir / f"input_row_{row_idx:04d}.json" + files_to_check.append(input_file) + + if SAVE_PARSER_OUTPUTS: + parser_file = self.parser_outputs_dir / f"parser_row_{row_idx:04d}.json" + files_to_check.append(parser_file) + + if SAVE_EVALUATOR_OUTPUTS: + evaluator_file = self.evaluator_outputs_dir / f"evaluator_row_{row_idx:04d}.json" + files_to_check.append(evaluator_file) + + # Check if all required files exist + all_exist = all(f.exists() for f in files_to_check) + + if all_exist: + logger.info(f"Row {row_idx} already fully processed, skipping") + + return all_exist + + def process_row(self, row_idx: int, row_data: pd.Series) -> Dict[str, Any]: + """Process a single row of data""" + try: + # Check if row has already been processed + if self.check_row_already_processed(row_idx): + # Return a result indicating the row was skipped + return { + "row_index": row_idx, + "timestamp": datetime.now().isoformat(), + "status": "skipped", + "message": "Row already processed, files exist" + } + + logger.info(f"Processing row {row_idx + 1}/{len(self.data)}") + + # Extract data from row + patient_message = row_data.get("Patient Message", "") + actual_response = row_data.get("Actual Response Sent to Patient", "") + notes = row_data.get("Prompt Sent to LLM", "") + subject = row_data.get("Subject", "") + llm_response = row_data.get("Suggested Response from LLM", "") + + # Save input data + input_file = self.save_input_data(row_idx, row_data) + + # Step 1: Parse the clinical data + parse_prompt = self.prompt_preparation(notes, patient_message) + parser_result = self.parser_LLM(parse_prompt) + parser_file = self.save_parser_output(row_idx, parser_result) + + # Step 2: Prepare evaluation data + try: + result_json = json.loads(parser_result) + result_json["message_subject"] = subject + result_json["LLM-generated_response"] = llm_response + result_json["actual_response"] = actual_response + except json.JSONDecodeError as e: + logger.error(f"Failed to parse parser result for row {row_idx}: {e}") + result_json = { + "message_subject": subject, + "LLM-generated_response": llm_response, + "actual_response": actual_response, + "parse_error": str(e), + "raw_parser_output": parser_result + } + + # Step 3: Evaluate the response + evaluation_prompt = self.evaluation_prompt_preparation(json.dumps(result_json)) + evaluator_result = self.evaluator_LLM(evaluation_prompt) + evaluator_file = self.save_evaluator_output(row_idx, evaluator_result) + + # Create result record + result = { + "row_index": row_idx, + "timestamp": datetime.now().isoformat(), + "input_file": input_file, + "parser_file": parser_file, + "evaluator_file": evaluator_file, + "patient_message": patient_message, + "actual_response": actual_response, + "subject": subject, + "llm_response": llm_response, + "parser_result": parser_result, + "evaluator_result": evaluator_result, + "status": "success" + } + + logger.info(f"Successfully processed row {row_idx + 1}") + return result + + except Exception as e: + error_msg = f"Error processing row {row_idx}: {str(e)}" + logger.error(error_msg) + logger.error(traceback.format_exc()) + + return { + "row_index": row_idx, + "timestamp": datetime.now().isoformat(), + "status": "error", + "error_message": str(e), + "traceback": traceback.format_exc() + } + + def process_all_data(self, start_row: int = None, end_row: Optional[int] = None, + delay_between_calls: float = None) -> None: + """Process all data in the Excel file""" + # Use config values if not provided + start_row = start_row if start_row is not None else START_ROW + end_row = end_row if end_row is not None else END_ROW + delay_between_calls = delay_between_calls if delay_between_calls is not None else DELAY_BETWEEN_CALLS + + if end_row is None: + end_row = len(self.data) + + logger.info(f"Starting processing from row {start_row} to {end_row}") + logger.info(f"Using model: {MODEL}, delay: {delay_between_calls}s") + + # Create progress bar if tqdm is available + if TQDM_AVAILABLE: + pbar = tqdm(range(start_row, end_row), desc="Processing rows", unit="row") + else: + pbar = range(start_row, end_row) + + for row_idx in pbar: + try: + row_data = self.data.iloc[row_idx] + result = self.process_row(row_idx, row_data) + self.results.append(result) + + # Update progress bar description with current status + if TQDM_AVAILABLE: + status = result.get("status", "unknown") + pbar.set_postfix({"status": status, "row": row_idx + 1}) + + # Add delay to avoid rate limiting (only for new processing, not skipped rows) + if delay_between_calls > 0 and result.get("status") != "skipped": + time.sleep(delay_between_calls) + + except Exception as e: + logger.error(f"Unexpected error processing row {row_idx}: {e}") + self.errors.append({ + "row_index": row_idx, + "error": str(e), + "timestamp": datetime.now().isoformat() + }) + + # Update progress bar for errors + if TQDM_AVAILABLE: + pbar.set_postfix({"status": "error", "row": row_idx + 1}) + + # Close progress bar + if TQDM_AVAILABLE: + pbar.close() + + # Save summary if enabled + if SAVE_SUMMARY: + self.save_summary() + + def save_summary(self) -> None: + """Save processing summary""" + if not SAVE_SUMMARY: + return + + summary = { + "processing_timestamp": datetime.now().isoformat(), + "total_rows": len(self.data), + "processed_rows": len(self.results), + "successful_rows": len([r for r in self.results if r.get("status") == "success"]), + "error_rows": len([r for r in self.results if r.get("status") == "error"]), + "skipped_rows": len([r for r in self.results if r.get("status") == "skipped"]), + "errors": self.errors, + "output_directory": str(self.output_dir), + "configuration": { + "excel_path": self.excel_path, + "model": MODEL, + "delay_between_calls": DELAY_BETWEEN_CALLS, + "start_row": START_ROW, + "end_row": END_ROW + } + } + + summary_file = self.summary_dir / "processing_summary.json" + with open(summary_file, 'w') as f: + json.dump(summary, f, indent=2) + + # Save all results + results_file = self.summary_dir / "all_results.json" + with open(results_file, 'w') as f: + json.dump(self.results, f, indent=2) + + logger.info(f"Processing complete. Summary saved to {summary_file}") + logger.info(f"All results saved to {results_file}") + logger.info(f"Summary: {summary['successful_rows']} successful, {summary['error_rows']} errors, {summary['skipped_rows']} skipped") + + def create_analysis_dataframe(self) -> pd.DataFrame: + """Create a DataFrame for analysis with all results""" + if not CREATE_ANALYSIS_DF: + logger.info("Analysis DataFrame creation disabled in config") + return pd.DataFrame() + + analysis_data = [] + skipped_count = 0 + error_count = 0 + + # Create progress bar for analysis if tqdm is available + if TQDM_AVAILABLE: + pbar = tqdm(self.results, desc="Creating analysis DataFrame", unit="result") + else: + pbar = self.results + + for result in pbar: + status = result.get("status", "unknown") + + if status == "success": + try: + # Parse evaluator result + evaluator_json = json.loads(result["evaluator_result"]) + + # Extract key metrics + row_data = { + "row_index": result["row_index"], + "subject": result["subject"], + "message_type": evaluator_json.get("message_categorization", {}).get("type", ""), + "clinical_accuracy_score": evaluator_json.get("response_evaluation", {}).get("clinical_accuracy", {}).get("score", ""), + "urgency_recognition_score": evaluator_json.get("response_evaluation", {}).get("urgency_recognition", {}).get("score", ""), + "professional_consultation_score": evaluator_json.get("response_evaluation", {}).get("professional_consultation_guidance", {}).get("score", ""), + "sensitivity_clarity_score": evaluator_json.get("response_evaluation", {}).get("sensitivity_clarity", {}).get("score", ""), + "num_errors": len(evaluator_json.get("errors_identified", [])), + "patient_message": result["patient_message"], + "actual_response": result["actual_response"], + "llm_response": result["llm_response"], + "parser_file": result["parser_file"], + "evaluator_file": result["evaluator_file"] + } + analysis_data.append(row_data) + + except json.JSONDecodeError: + logger.warning(f"Could not parse evaluator result for row {result['row_index']}") + continue + elif status == "skipped": + skipped_count += 1 + logger.debug(f"Skipping row {result['row_index']} in analysis (already processed)") + elif status == "error": + error_count += 1 + logger.debug(f"Skipping row {result['row_index']} in analysis (processing error)") + + # Close progress bar + if TQDM_AVAILABLE: + pbar.close() + + df = pd.DataFrame(analysis_data) + + # Log summary of analysis DataFrame creation + logger.info(f"Analysis DataFrame created: {len(df)} rows included, {skipped_count} skipped, {error_count} errors") + + # Save analysis DataFrame if summary saving is enabled + if SAVE_SUMMARY: + analysis_file = self.summary_dir / "analysis_dataframe.csv" + df.to_csv(analysis_file, index=False) + logger.info(f"Analysis DataFrame saved to {analysis_file}") + + return df + +def main(): + """Main function to run the automated processing""" + # Initialize processor using config values + processor = AutomatedErrorChecker() + + # Process all data using config values + processor.process_all_data() + + # Create analysis DataFrame if enabled + if CREATE_ANALYSIS_DF: + analysis_df = processor.create_analysis_dataframe() + print(f"Analysis complete. Processed {len(analysis_df)} rows successfully.") + else: + print(f"Processing complete. Processed {len(processor.results)} rows.") + + # Display summary statistics + successful = len([r for r in processor.results if r.get("status") == "success"]) + errors = len([r for r in processor.results if r.get("status") == "error"]) + skipped = len([r for r in processor.results if r.get("status") == "skipped"]) + + print(f"\nProcessing Summary:") + print(f" Successful: {successful}") + print(f" Errors: {errors}") + print(f" Skipped (already processed): {skipped}") + print(f" Total: {len(processor.results)}") + + print(f"\nResults saved in: {processor.output_dir}") + print(f"Configuration used:") + print(f" Model: {MODEL}") + print(f" Delay: {DELAY_BETWEEN_CALLS}s") + print(f" Excel: {EXCEL_PATH}") + print(f" Output: {OUTPUT_DIR}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/config.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/config.py new file mode 100644 index 00000000..01a215ab --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/config.py @@ -0,0 +1,48 @@ +# Configuration file for automated error checking + +# Data source configuration +EXCEL_PATH = "../data/sampled_df_with_generated_questions.xlsx" +OUTPUT_DIR = "../error_checking/automated_outputs" + +# Processing configuration +START_ROW = 0 # Start from first row (0-indexed) +END_ROW = None # Process all rows (set to a number to limit processing) +DELAY_BETWEEN_CALLS = 1.0 # Seconds between API calls to avoid rate limiting +SKIP_EXISTING_FILES = True # Skip processing if output files already exist + +# Model configuration +MODEL = "gpt-4.1" # Options: "gpt-4.1", "gemini-2.5-pro" + +# Logging configuration +LOG_LEVEL = "INFO" # Options: "DEBUG", "INFO", "WARNING", "ERROR" +LOG_FILE = "../error_checking/automated_outputs/automated_processing.log" + +# Output configuration +SAVE_INPUTS = True # Save input data for cross-checking +SAVE_PARSER_OUTPUTS = True # Save parser LLM outputs +SAVE_EVALUATOR_OUTPUTS = True # Save evaluator LLM outputs +SAVE_SUMMARY = True # Save processing summary +CREATE_ANALYSIS_DF = True # Create analysis DataFrame + +# Error handling +MAX_RETRIES = 3 # Maximum number of retries for API calls +RETRY_DELAY = 5.0 # Seconds to wait between retries + +# Analysis configuration +SCORE_COLUMNS = [ + 'clinical_accuracy_score', + 'urgency_recognition_score', + 'professional_consultation_score', + 'sensitivity_clarity_score' +] + +MESSAGE_TYPES = [ + 'Appointment Request', + 'Medication Request', + 'Test Result Inquiry', + 'Clinical Advice Request', + 'Referral Request', + 'Administrative Request', + 'General Inquiry', + 'Other' +] \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore.ipynb new file mode 100644 index 00000000..cdf1847f --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore.ipynb @@ -0,0 +1,3041 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/wenyuanchen/anaconda3/envs/sage_recommender/lib/python3.13/site-packages/google/cloud/bigquery/__init__.py:237: FutureWarning: %load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from langchain_huggingface import HuggingFaceEmbeddings\n", + "import os\n", + "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\", message=\"Your application has authenticated using end user credentials\")\n", + "\n", + "\n", + "from google.cloud import bigquery;\n", + "%load_ext google.cloud.bigquery\n", + "\n", + "client = bigquery.Client(\"som-nero-phi-jonc101\")\n", + "\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "data_path = \"/Users/wenyuanchen/Library/CloudStorage/Box-Box/ART_PerMessage_1_17_Updated.xlsx\"\n", + "data_sample = pd.read_excel(data_path) # or whatever number of rows you want # take around 6 minutes to run \n", + "# data_sample[\"Patient Message\"] = data_sample[\"Patient Message\"].replace(\"<13><10>\", \"\\n\")\n", + "# data_sample[\"Actual Response Sent to Patient\"] = data_sample[\"Actual Response Sent to Patient\"].replace(\"<13><10>\", \"\\n\").fillna(\"No response\")" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Source.NameEOW IDReply to Patient EOW IDWMG IDThread IDDate SentMessage DepartmentDepartment Specialty TitleDepartment Specialty CategoryReply to Patient SenderReply to Patient User TemplateReply to Patient User LicensesReply to Patient Provider TypeMessage SenderRecipient IDsRecipient NamesRecipient LicensesLLM Viewer IDsLLM Viewer NamesLLM Viewer LicensesIs Response Valid?Prompt Sent to LLMSuggested Response from LLMResponse If Used As DraftActual Response Sent to PatientList of Strings Removed from DraftList of Strings Added to DraftTotal Length of Removed StringsTotal Length of Added StringsLength of Draft UnchangedSubjectTime Spent Responding (sec)Time Spent Reading (sec)Draft Viewed By Pilot UserDraft Used By Pilot UserCommand ExecutedQuickAction ExecutedLevenshtein DistanceResponse LengthDraft LengthPrompt LengthSubject LengthPatient Message LengthPatient MessageLLM FeedbackLLM Feedback DeficienciesLLM Feedback CommentLLM Feedback UserClinical Categories added by UserNon-Clinical Categories added by UserNon-Actionable Categories added by UserClinical Categories added by SystemNon-Clinical Categories added by SystemNon-Actionable Categories added by SystemAge at time of messageSex TitleSex CategoryGender CategoryGender TitleRace TitleRace CategoryEthnic Background TitleEthnic Background CategoryEthnic Group TitleEthnic Group CategoryFinancial Class TitleFinancial Class CategoryActive Coverages TitleActive Coverages CategoryPreferred Language TitlePreferred Language CategoryNeed Interpreter? Title EPT-840Need Interpreter? Cat EPT-840Patient Has MyChart Proxies?Completed Data ModelsMessage Position in ThreadHours Between Current and Previous Message
0LLMData_1.csv901410967NaN925868712557299422025-01-16THORACIC ONCOLOGYOncology24NaNNaNNaNNaNTRAN, TRI [ S0372371]POOL 10419CC THOR ONC MED CLINICALNaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi Judy,<10><10>It's great to hear that Adam i...NaNNaNNaNNaNNaNNaNNaNRE:LabsNaNNaN0NaNNaNNaNNaNNaNNaN100457298Hi Marilena,<13><10><13><10>I was asking more ...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN59.0Male2.0NaNNaNAsian8Chinese, except Taiwanese11Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
1LLMData_1.csv901410953NaN925866382558916862025-01-16STANFORD PRIMARY CARE SANTA CLARAPrimary Care125NaNNaNNaNNaNROGACION, JOSE ANTONIO [ S0294361]POOL 10849SANTA CLARA PRIMARY CARE TASK POOL TEAM 2NaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi Julie,<10><10>Thank you for forwarding the ...NaNNaNNaNNaNNaNNaNNaNScheduling QuestionNaNNaN0NaNNaNNaNNaNNaNNaN370019697Hi, Dr. Liz; I received the letter below regar...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN52.0Female1.0NaNNaNWhite6American53Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
2LLMData_1.csv901410929NaN925883542548457652025-01-16THORACIC ONCOLOGYOncology24NaNNaNNaNNaNTRAN, TRI [ S0372371]S0004609OJASCASTRO, LLOYDMANaNNaNNaN1Act as if you are the Healthcare Provider who ...Rosemary, <10><10>You should follow-up with yo...NaNNaNNaNNaNNaNNaNNaNRE: Test Results QuestionNaNNaN0NaNNaNNaNNaNNaNNaN311225130Great please let me know as soon as possible ....NaNNaNNaN[]NaNNaNNaNNaNNaNNaN64.0Female1.0NaNNaNBlack or African American2African American/Black21Non-Hispanic/Non-Latino2.0NaNNaNMEDI-CAL300.0English132.0No2.00NaN1.0NaN
3LLMData_1.csv901410919NaN925899282559000672025-01-16FAMILY MEDICINE SAMARITAN LOS GATOSFamily Medicine9NaNNaNNaNNaNDELGADO, NICOLE [ S0367163]S0100823SHAH, RINA BIRENMD<13><10>MDNaNNaNNaN1Act as if you are the Healthcare Provider who ...Yes, Anne. Please make an appointment to discu...NaNNaNNaNNaNNaNNaNNaNRE: ultrasound abdomenNaNNaN0NaNNaNNaNNaNNaNNaN96382248Thank you. Do you mean make an appt to discuss?NaNNaNNaN[]NaNNaNNaNNaNNaNNaN53.0Female1.0NaNNaNWhite6European50Declines to State4.0NaNNaNBlue Cross100.0English132.0No2.00NaN1.0NaN
4LLMData_1.csv901410918NaN925861892542302222025-01-16STANFORD PRIMARY CARE SANTA CLARAPrimary Care125NaNNaNNaNNaNROGACION, JOSE ANTONIO [ S0294361]POOL 11020SANTA CLARA PRIMARY CARE TASK POOL TEAM 1NaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi David,<10><10>I will review your request wi...NaNNaNNaNNaNNaNNaNNaNRE:Hypertension: Blood Pressure CheckNaNNaN0NaNNaNNaNNaNNaNNaN496937308<13><10>January 11, 2025<13><10>124/88 Pulse 8...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN63.0Male2.0NaNNaNWhite6Declines to State56Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
\n", + "
" + ], + "text/plain": [ + " Source.Name EOW ID Reply to Patient EOW ID WMG ID Thread ID \\\n", + "0 LLMData_1.csv 901410967 NaN 92586871 255729942 \n", + "1 LLMData_1.csv 901410953 NaN 92586638 255891686 \n", + "2 LLMData_1.csv 901410929 NaN 92588354 254845765 \n", + "3 LLMData_1.csv 901410919 NaN 92589928 255900067 \n", + "4 LLMData_1.csv 901410918 NaN 92586189 254230222 \n", + "\n", + " Date Sent Message Department Department Specialty Title \\\n", + "0 2025-01-16 THORACIC ONCOLOGY Oncology \n", + "1 2025-01-16 STANFORD PRIMARY CARE SANTA CLARA Primary Care \n", + "2 2025-01-16 THORACIC ONCOLOGY Oncology \n", + "3 2025-01-16 FAMILY MEDICINE SAMARITAN LOS GATOS Family Medicine \n", + "4 2025-01-16 STANFORD PRIMARY CARE SANTA CLARA Primary Care \n", + "\n", + " Department Specialty Category Reply to Patient Sender \\\n", + "0 24 NaN \n", + "1 125 NaN \n", + "2 24 NaN \n", + "3 9 NaN \n", + "4 125 NaN \n", + "\n", + " Reply to Patient User Template Reply to Patient User Licenses \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Reply to Patient Provider Type Message Sender \\\n", + "0 NaN TRAN, TRI [ S0372371] \n", + "1 NaN ROGACION, JOSE ANTONIO [ S0294361] \n", + "2 NaN TRAN, TRI [ S0372371] \n", + "3 NaN DELGADO, NICOLE [ S0367163] \n", + "4 NaN ROGACION, JOSE ANTONIO [ S0294361] \n", + "\n", + " Recipient IDs Recipient Names Recipient Licenses \\\n", + "0 POOL 10419 CC THOR ONC MED CLINICAL NaN \n", + "1 POOL 10849 SANTA CLARA PRIMARY CARE TASK POOL TEAM 2 NaN \n", + "2 S0004609 OJASCASTRO, LLOYD MA \n", + "3 S0100823 SHAH, RINA BIREN MD<13><10>MD \n", + "4 POOL 11020 SANTA CLARA PRIMARY CARE TASK POOL TEAM 1 NaN \n", + "\n", + " LLM Viewer IDs LLM Viewer Names LLM Viewer Licenses Is Response Valid? \\\n", + "0 NaN NaN NaN 1 \n", + "1 NaN NaN NaN 1 \n", + "2 NaN NaN NaN 1 \n", + "3 NaN NaN NaN 1 \n", + "4 NaN NaN NaN 1 \n", + "\n", + " Prompt Sent to LLM \\\n", + "0 Act as if you are the Healthcare Provider who ... \n", + "1 Act as if you are the Healthcare Provider who ... \n", + "2 Act as if you are the Healthcare Provider who ... \n", + "3 Act as if you are the Healthcare Provider who ... \n", + "4 Act as if you are the Healthcare Provider who ... \n", + "\n", + " Suggested Response from LLM \\\n", + "0 Hi Judy,<10><10>It's great to hear that Adam i... \n", + "1 Hi Julie,<10><10>Thank you for forwarding the ... \n", + "2 Rosemary, <10><10>You should follow-up with yo... \n", + "3 Yes, Anne. Please make an appointment to discu... \n", + "4 Hi David,<10><10>I will review your request wi... \n", + "\n", + " Response If Used As Draft Actual Response Sent to Patient \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " List of Strings Removed from Draft List of Strings Added to Draft \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Total Length of Removed Strings Total Length of Added Strings \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Length of Draft Unchanged Subject \\\n", + "0 NaN RE:Labs \n", + "1 NaN Scheduling Question \n", + "2 NaN RE: Test Results Question \n", + "3 NaN RE: ultrasound abdomen \n", + "4 NaN RE:Hypertension: Blood Pressure Check \n", + "\n", + " Time Spent Responding (sec) Time Spent Reading (sec) \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Draft Viewed By Pilot User Draft Used By Pilot User Command Executed \\\n", + "0 0 NaN NaN \n", + "1 0 NaN NaN \n", + "2 0 NaN NaN \n", + "3 0 NaN NaN \n", + "4 0 NaN NaN \n", + "\n", + " QuickAction Executed Levenshtein Distance Response Length Draft Length \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " Prompt Length Subject Length Patient Message Length \\\n", + "0 10045 7 298 \n", + "1 3700 19 697 \n", + "2 3112 25 130 \n", + "3 9638 22 48 \n", + "4 4969 37 308 \n", + "\n", + " Patient Message LLM Feedback \\\n", + "0 Hi Marilena,<13><10><13><10>I was asking more ... NaN \n", + "1 Hi, Dr. Liz; I received the letter below regar... NaN \n", + "2 Great please let me know as soon as possible .... NaN \n", + "3 Thank you. Do you mean make an appt to discuss? NaN \n", + "4 <13><10>January 11, 2025<13><10>124/88 Pulse 8... NaN \n", + "\n", + " LLM Feedback Deficiencies LLM Feedback Comment LLM Feedback User \\\n", + "0 NaN NaN [] \n", + "1 NaN NaN [] \n", + "2 NaN NaN [] \n", + "3 NaN NaN [] \n", + "4 NaN NaN [] \n", + "\n", + " Clinical Categories added by User Non-Clinical Categories added by User \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Non-Actionable Categories added by User \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Clinical Categories added by System \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Non-Clinical Categories added by System \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Non-Actionable Categories added by System Age at time of message \\\n", + "0 NaN 59.0 \n", + "1 NaN 52.0 \n", + "2 NaN 64.0 \n", + "3 NaN 53.0 \n", + "4 NaN 63.0 \n", + "\n", + " Sex Title Sex Category Gender Category Gender Title \\\n", + "0 Male 2.0 NaN NaN \n", + "1 Female 1.0 NaN NaN \n", + "2 Female 1.0 NaN NaN \n", + "3 Female 1.0 NaN NaN \n", + "4 Male 2.0 NaN NaN \n", + "\n", + " Race Title Race Category Ethnic Background Title \\\n", + "0 Asian 8 Chinese, except Taiwanese \n", + "1 White 6 American \n", + "2 Black or African American 2 African American/Black \n", + "3 White 6 European \n", + "4 White 6 Declines to State \n", + "\n", + " Ethnic Background Category Ethnic Group Title Ethnic Group Category \\\n", + "0 11 Non-Hispanic/Non-Latino 2.0 \n", + "1 53 Non-Hispanic/Non-Latino 2.0 \n", + "2 21 Non-Hispanic/Non-Latino 2.0 \n", + "3 50 Declines to State 4.0 \n", + "4 56 Non-Hispanic/Non-Latino 2.0 \n", + "\n", + " Financial Class Title Financial Class Category Active Coverages Title \\\n", + "0 NaN NaN MANAGED CARE \n", + "1 NaN NaN MANAGED CARE \n", + "2 NaN NaN MEDI-CAL \n", + "3 NaN NaN Blue Cross \n", + "4 NaN NaN MANAGED CARE \n", + "\n", + " Active Coverages Category Preferred Language Title \\\n", + "0 101.0 English \n", + "1 101.0 English \n", + "2 300.0 English \n", + "3 100.0 English \n", + "4 101.0 English \n", + "\n", + " Preferred Language Category Need Interpreter? Title EPT-840 \\\n", + "0 132.0 No \n", + "1 132.0 No \n", + "2 132.0 No \n", + "3 132.0 No \n", + "4 132.0 No \n", + "\n", + " Need Interpreter? Cat EPT-840 Patient Has MyChart Proxies? \\\n", + "0 2.0 0 \n", + "1 2.0 0 \n", + "2 2.0 0 \n", + "3 2.0 0 \n", + "4 2.0 0 \n", + "\n", + " Completed Data Models Message Position in Thread \\\n", + "0 NaN 1.0 \n", + "1 NaN 1.0 \n", + "2 NaN 1.0 \n", + "3 NaN 1.0 \n", + "4 NaN 1.0 \n", + "\n", + " Hours Between Current and Previous Message \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN " + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_sample.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "assert len(data_sample.columns) == 77 \n", + "helpful_cols = important_cols = [\"Thread ID\",\"Date Sent\",\n", + " \"Subject\",\"Patient Message\", \"Message Sender\",\n", + " \"Actual Response Sent to Patient\",\n", + " \"Recipient Names\",\"Recipient IDs\", \"Message Department\",\"Department Specialty Title\"]\n", + "data_sample_sub_cols = data_sample[helpful_cols]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def query_embedding_func(message, model):\n", + " query_vector = model.embed_query(message)\n", + " assert isinstance(query_vector, list)\n", + " assert all(isinstance(x, float) for x in query_vector)\n", + " query_vector_literal = str(query_vector).replace(\"[\", \"ARRAY[\").replace(\"]\", \"]\")\n", + " return query_vector_literal" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "answer_question_paired_data_dedup = pd.read_excel(\"../data/answer_question_paired_data_dedup.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def beatiful_print_thread(thread_id = None, df = answer_question_paired_data_dedup):\n", + " if thread_id is None:\n", + " thread_id =np.random.choice(df[\"Thread ID\"].unique())\n", + " # sort by index is important to make sure the message is in the correct order\n", + " thread_df = df[df[\"Thread ID\"] == thread_id].sort_index(ascending=False)\n", + " print(f\"Thread ID: {thread_id}\")\n", + " print(\"-\" * 80)\n", + " for idx, row in thread_df.iterrows():\n", + " print(f\"idx: {idx}\")\n", + " print(f\"Subject: {row['Subject']}\")\n", + " print(\"-\" * 40)\n", + " print(f\"Date Sent: {row['Date Sent']}\")\n", + " print(\"-\" * 40)\n", + " print(\"Sender Message:\")\n", + " print(row[\"Patient Message\"].replace(\"<13><10>\", \"\\n\"))\n", + " print(\"-\" * 40)\n", + " print(f\"Provider Response by {row[\"Recipient Names\"]}:\")\n", + " try:\n", + " print(row[\"Actual Response Sent to Patient\"].replace(\"<13><10>\", \"\\n\"))\n", + " except:\n", + " print(\"No response\")\n", + " print(\"-\" * 40) # Separator for readability" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/8AAANVCAYAAAAuhU7eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoNNJREFUeJzs3XlclXX+///nkeUICEdQAUlcMjUJt7QQnVxyLdAma9QoyjS10SRMx3TasCkxtzbLbHEpK5pKm0kSlyzL3G2oULPNNUEcRVB0QOH6/dGX6+cRNI6cI3R9Hvfb7dxunvf7da7rdZ1zoJ5cm80wDEMAAAAAAMCyalV3AwAAAAAAwLMI/wAAAAAAWBzhHwAAAAAAiyP8AwAAAABgcYR/AAAAAAAsjvAPAAAAAIDFEf4BAAAAALA4wj8AAAAAABZH+AcAAAAAwOII/wAASdKiRYtks9nMR+3atRUeHq6ePXsqNTVVubm55V6TkpIim83m0npOnTqllJQUff755y69rqJ1NW3aVPHx8S4t5/e88847eu655yqcs9lsSklJcev63O3TTz9Vp06dFBAQIJvNpo8++qhcTY8ePZw+6ws9yrbVZrPpgQceuLwbcokq+50cNmyYbDabAgMDdfLkyXLz+/btU61atf4Qn3l1+OWXX/TAAw+oZcuW8vPzk7+/v6655ho9+uij+vXXX6u7PUnSJ598wmcHAOfwru4GAAA1y8KFC3X11VfrzJkzys3N1fr16/XMM89o1qxZeu+999S7d2+z9r777lP//v1dWv6pU6c0depUSb+F0Mq6lHVdinfeeUdZWVlKTk4uN7dx40Y1atTI4z1cKsMwNHjwYLVs2VL//ve/FRAQoFatWpWre/nll1VQUGA+T09P11NPPWV+9mVq8ra6g4+Pj86ePav33ntPI0aMcJpbuHChAgMDnd4n/Gb58uUaOnSo6tevrwceeEAdOnSQzWbTd999pwULFig9PV3/+c9/qrtNffLJJ3rppZf4AwAA/D+EfwCAk+joaHXq1Ml8ftttt2n8+PH605/+pEGDBunHH39UWFiYpN/CoacD4qlTp+Tv739Z1vV7OnfuXK3r/z2HDh3SsWPHdOutt6pXr14XrIuKinJ6/v3330sq/9m7Q9nnVxP5+vpqwIABWrBggVP4NwxDixYt0pAhQ/Taa69VY4c1z549ezR06FC1bNlSn332mRwOhzl34403KikpScuWLavGDgEAF8Jh/wCA39W4cWPNnj1bJ06c0Pz5883xig6xXrt2rXr06KF69erJz89PjRs31m233aZTp05p7969atCggSRp6tSp5uHlw4YNc1re119/rdtvv13BwcFq3rz5BddVZtmyZWrbtq1q166tK6+8Ui+88ILTfNkpDXv37nUa//zzz2Wz2cxTEHr06KH09HTt27fP6fD3MhUdAp6VlaVbbrlFwcHBql27ttq3b6/FixdXuJ53331XjzzyiCIiIhQUFKTevXtr9+7dF37jz7F+/Xr16tVLgYGB8vf3V5cuXZSenm7Op6SkmH8cefjhh2Wz2dS0adNKLbuy3nrrLbVu3Vr+/v5q166dli9f7jR/sc/PMAy9/PLLat++vfz8/BQcHKzbb79dv/zyi9MyVq9erVtuuUWNGjVS7dq1ddVVV2n06NH673//W66f9PR0tW/fXna7Xc2aNdOsWbNc3qbhw4drw4YNTp/DmjVrtG/fPt17770VviYnJ0ejR49Wo0aN5Ovrq2bNmmnq1Kk6e/asU928efPUrl071alTR4GBgbr66qv197//3Zw/deqUJk6cqGbNmql27doKCQlRp06d9O6775o127Zt09ChQ9W0aVP5+fmpadOmuuOOO7Rv375yfa1fv16xsbGqXbu2rrjiCj322GN6/fXXK/zuv/fee4qNjVVAQIDq1Kmjfv36VWpv/Zw5c1RYWKiXX37ZKfiXsdlsGjRokNPYggUL1K5dO3Mbb731Vu3atcuppkePHhUeCTRs2DCn7/HevXtls9k0a9YszZkzR82aNVOdOnUUGxurTZs2Ob3upZdeMnsqe5S9D++//75iYmLkcDjk7++vK6+8UsOHD//d7QeAPzL2/AMAKuXmm2+Wl5eXvvjiiwvW7N27V3Fxcbrhhhu0YMEC1a1bV7/++qsyMjJUXFyshg0bKiMjQ/3799eIESN03333SZL5B4EygwYN0tChQ3X//fersLDwon1lZmYqOTlZKSkpCg8P19tvv60HH3xQxcXFmjhxokvb+PLLL2vUqFH6+eefK7X3cvfu3erSpYtCQ0P1wgsvqF69elqyZImGDRumw4cPa9KkSU71f//739W1a1e9/vrrKigo0MMPP6wBAwZo165d8vLyuuB61q1bpz59+qht27Z64403ZLfb9fLLL2vAgAF69913NWTIEN13331q166dBg0apHHjxikhIUF2u92l7b+Y9PR0bd26VU8++aTq1KmjGTNm6NZbb9Xu3bt15ZVXOtVW9PmNHj1aixYtUlJSkp555hkdO3ZMTz75pLp06aJvvvnGPJrk559/VmxsrO677z45HA7t3btXc+bM0Z/+9Cd999138vHxkfTbtQ1uueUWxcbGKi0tTSUlJZoxY4YOHz7s0nb17t1bTZo00YIFC/TMM89Ikt544w1169ZNLVq0KFefk5Oj66+/XrVq1dLjjz+u5s2ba+PGjXrqqae0d+9eLVy4UJKUlpamMWPGaNy4cZo1a5Zq1aqln376STt37jSX9dBDD+mtt97SU089pQ4dOqiwsFBZWVk6evSoWbN37161atVKQ4cOVUhIiLKzszVv3jxdd9112rlzp+rXry9J+vbbb9WnTx+1bNlSixcvlr+/v1555RUtWbKk3DZMmzZNjz76qO699149+uijKi4u1syZM3XDDTdoy5Yt5Y4MOdeqVasUFhZW6aNgUlNT9fe//1133HGHUlNTdfToUaWkpCg2NlZbt26t8D2ujJdeeklXX321eX2Oxx57TDfffLP27Nkjh8Ohxx57TIWFhfrggw+0ceNG83UNGzbUxo0bNWTIEA0ZMkQpKSmqXbu29u3bp7Vr115SLwDwh2EAAGAYxsKFCw1JxtatWy9YExYWZrRu3dp8/sQTTxjn/qfkgw8+MCQZmZmZF1zGkSNHDEnGE088UW6ubHmPP/74BefO1aRJE8Nms5VbX58+fYygoCCjsLDQadv27NnjVPfZZ58ZkozPPvvMHIuLizOaNGlSYe/n9z106FDDbrcb+/fvd6q76aabDH9/f+P48eNO67n55pud6v75z38akoyNGzdWuL4ynTt3NkJDQ40TJ06YY2fPnjWio6ONRo0aGaWlpYZhGMaePXsMScbMmTMvurzz/d5nL8kICwszCgoKzLGcnByjVq1aRmpqqjl2oc9v48aNhiRj9uzZTuMHDhww/Pz8jEmTJlW43tLSUuPMmTPGvn37DEnGv/71L3MuJibGiIiIME6fPm2OFRQUGCEhIeW+JxW55557jICAALPv8PBw48yZM8bRo0cNu91uLFq0qMLv6ujRo406deoY+/btc1rerFmzDEnGjh07DMMwjAceeMCoW7fuRXuIjo42/vznP/9ur+c6e/ascfLkSSMgIMB4/vnnzfG//OUvRkBAgHHkyBFzrKSkxIiKinL67u/fv9/w9vY2xo0b57TcEydOGOHh4cbgwYMvuv7atWsbnTt3rlSveXl5hp+fX7nv/f79+w273W4kJCSYY927dze6d+9ebhn33HOP089j2Xe8TZs2xtmzZ83xLVu2GJKMd9991xwbO3Zshd+Fss+q7OcTAP6v4LB/AEClGYZx0fn27dvL19dXo0aN0uLFi8sd0l1Zt912W6Vrr7nmGrVr185pLCEhQQUFBfr6668vaf2VtXbtWvXq1UuRkZFO48OGDdOpU6ec9jhK0sCBA52et23bVpIqPIS7TGFhoTZv3qzbb79dderUMce9vLyUmJiogwcPVvrUgaro2bOnAgMDzedhYWEKDQ2tsPfzP7/ly5fLZrPprrvu0tmzZ81HeHi42rVr53Tnh9zcXN1///2KjIyUt7e3fHx81KRJE0kyDxUvLCzU1q1bNWjQINWuXdt8bWBgoAYMGODytt177706fPiwVqxYobffflu+vr76y1/+UmHt8uXL1bNnT0VERDhty0033STpt6M0JOn666/X8ePHdccdd+hf//pXhactXH/99VqxYoUmT56szz//XKdPny5Xc/LkST388MO66qqr5O3tLW9vb9WpU0eFhYVOh86vW7dON954o3kkgCTVqlVLgwcPdlreypUrdfbsWd19991O/deuXVvdu3d3+S4cF7Nx40adPn3aPK2nTGRkpG688UZ9+umnl7zsuLg4p6NlKvOzVOa6666TJA0ePFj//Oc/a8zdCQDA0wj/AIBKKSws1NGjRxUREXHBmubNm2vNmjUKDQ3V2LFj1bx5czVv3lzPP/+8S+tq2LBhpWvDw8MvOHbu4dOecPTo0Qp7LXuPzl9/vXr1nJ6XHZZfUegrk5eXJ8MwXFqPJ5zfu/Rb/xX1fn6vhw8flmEYCgsLk4+Pj9Nj06ZNZjAuLS1V3759tXTpUk2aNEmffvqptmzZYp7LXbauvLw8lZaWXvSzd0WTJk3Uq1cvLViwQAsWLNDQoUMveJHCw4cP6+OPPy63Hddcc40kmduSmJioBQsWaN++fbrtttsUGhqqmJgYrV692lzWCy+8oIcfflgfffSRevbsqZCQEP35z3/Wjz/+aNYkJCRo7ty5uu+++7Ry5Upt2bJFW7duVYMGDZze+6NHj5qnTpzr/LGy0yKuu+66ctvw3nvvVfhHinM1btxYe/bsuWjNuT1JFf88R0REVOl7eyk/S2W6deumjz76yPwjSKNGjRQdHe10rQUAsCLO+QcAVEp6erpKSkp+9/Z8N9xwg2644QaVlJRo27ZtevHFF5WcnKywsDANHTq0UuuqzH3ay+Tk5FxwrCwglO0dLioqcqr7vaDze+rVq6fs7Oxy44cOHZIkp72wlyo4OFi1atXy+Hrc6fzPr379+rLZbPryyy8rvA5B2VhWVpa++eYbLVq0SPfcc485/9NPPznVBwcHy2azXfSzd9Xw4cN11113qbS0VPPmzbtgXf369dW2bVs9/fTTFc6f+8exe++9V/fee68KCwv1xRdf6IknnlB8fLx++OEHNWnSRAEBAZo6daqmTp1qHnkwefJkDRgwQN9//73y8/O1fPlyPfHEE5o8ebK53KKiIh07dsxpvfXq1avwegfnvx9l35UPPvjAPKLCFf369dOLL76oTZs2/e55/2U/fxf67p77va1du7by8/PL1VX1Z/RCbrnlFt1yyy0qKirSpk2blJqaqoSEBDVt2lSxsbEeWScAVDf2/AMAftf+/fs1ceJEORwOjR49ulKv8fLyUkxMjHnF7bJD8F3ZQ1cZO3bs0DfffOM09s477ygwMFDXXnutJJlXC//222+d6v7973+XW96F9mZXpFevXlq7dq0Zwsu8+eab8vf3d8utAQMCAhQTE6OlS5c69VVaWqolS5aoUaNGatmyZZXX40nx8fEyDEO//vqrOnXqVO7Rpk0bSf//Hw3O/wPBuXeYkH57T66//notXbpU//vf/8zxEydO6OOPP76kHm+99VbdeuutGj58+EU/t/j4eGVlZal58+YVbktFR8YEBATopptu0iOPPKLi4mLt2LGjXE1YWJiGDRumO+64Q7t379apU6dks9lkGEa59+P1119XSUmJ01j37t21du1ap7BcWlqq999/36muX79+8vb21s8//1xh/793q8fx48crICBAY8aMqTCsG4ZhXiwzNjZWfn5+5S46ePDgQfOUmTJNmzbVDz/84PQHuqNHj2rDhg0X7ediKvO7xm63q3v37ubFHitzxwMA+KNizz8AwElWVpZ5HnBubq6+/PJLLVy4UF5eXlq2bFm5K/Of65VXXtHatWsVFxenxo0b63//+58WLFgg6berqku/nZfdpEkT/etf/1KvXr0UEhKi+vXrX/Jt6SIiIjRw4EClpKSoYcOGWrJkiVavXq1nnnnGPHT7uuuuU6tWrTRx4kSdPXtWwcHBWrZsmdavX19ueW3atNHSpUs1b948dezYUbVq1bpgIHriiSfMc8Aff/xxhYSE6O2331Z6erpmzJhR4a3QLkVqaqr69Omjnj17auLEifL19dXLL7+srKwsvfvuuy4dKVEdunbtqlGjRunee+/Vtm3b1K1bNwUEBCg7O1vr169XmzZt9Ne//lVXX321mjdvrsmTJ8swDIWEhOjjjz92OlS+zD/+8Q/1799fffr00YQJE1RSUqJnnnlGAQEB5faKV0bt2rX1wQcf/G7dk08+qdWrV6tLly5KSkpSq1at9L///U979+7VJ598oldeeUWNGjXSyJEj5efnp65du6phw4bKyclRamqqHA6Hec55TEyM4uPj1bZtWwUHB2vXrl166623FBsba353u3XrppkzZ5o/I+vWrdMbb7yhunXrOvX1yCOP6OOPP1avXr30yCOPyM/PT6+88op5t4VatX7b39O0aVM9+eSTeuSRR/TLL7+of//+Cg4O1uHDh7VlyxbzaIQLadasmdLS0jRkyBC1b99eDzzwgDp06CBJ2rlzpxYsWCDDMHTrrbeqbt26euyxx/T3v/9dd999t+644w4dPXpUU6dOVe3atfXEE0+Yy01MTNT8+fN11113aeTIkTp69KhmzJihoKCgyn+I5yn7o9Izzzyjm266SV5eXmrbtq2eeuopHTx4UL169VKjRo10/PhxPf/88/Lx8VH37t0veX0AUONV37UGAQA1SdkV38sevr6+RmhoqNG9e3dj2rRpRm5ubrnXnH8F/o0bNxq33nqr0aRJE8Nutxv16tUzunfvbvz73/92et2aNWuMDh06GHa73ZBk3HPPPU7LO/eK5Rdal2H8drX/uLg444MPPjCuueYaw9fX12jatKkxZ86ccq//4YcfjL59+xpBQUFGgwYNjHHjxhnp6enlrvZ/7Ngx4/bbbzfq1q1r2Gw2p3WqgrsUfPfdd8aAAQMMh8Nh+Pr6Gu3atTMWLlzoVFN2tf/333/fabzsyuXn11fkyy+/NG688UYjICDA8PPzMzp37mx8/PHHFS7PE1f7Hzt2bLnxJk2amJ+dYVz88zMMw1iw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TwYOHCiHw6HAwEDze+KqC/03a+zYsU4/NxEREfLz8zP/m+Nuv9fH7/3cXMoyL/Q9OXv27AX/e33uXNnvLh8fH3Xr1k2jR49Ws2bNZLfb5e/vb36PMjMznX6XBAQEKCIiwvzv8KW4WI/nctf35GLK/v+lSZMm8vPzU5cuXbR161Zzvuz3a/369c33A0DlXCj7SKr075XRo0erefPm8vPzU4MGDXTLLbfo+++/v8xbUjWE//+jCgsL1a5dOzOwlFm3bp3Gjh2rTZs2afXq1Tp79qz69u2rwsJCNWrUSNOnT9e2bdu0bds23XjjjbrlllvK/c/L1q1b9eqrr6pt27bm2DXXXKPs7Gzz8d1330mS8vLy1LVrV/n4+GjFihXauXOnZs+erbp162rr1q1Or1m9erWk335AX3nlFc2dO1e7du3SjBkzNHPmTL344ouSpPvuu0+rV6/WhAkTNHr0aN16662SpKNHjzptf2Fhoc6ePStJmjlzpsLDw9WnTx8dOXJEV1xxhf785z+Xe9+OHTumkpISJSUlSZIefvhh/fDDDxo4cKAKCwvVunVrPfLII5J+CytNmzZV3759dejQIaf3+4cfflBERITZS3BwsNq3by9JWrBggbKzs/XJJ5+osLBQjRs31unTpyVJTz31lL755hsNGTJEbdq00euvv+70mgULFkiS+T/20m9hdPz48Ro3bpzef/99nThxQm3bttWbb76pG264QZmZmbrxxhu1du1ajR07ViNHjpQkRUdHq169ejp16pQOHjyoTz/9VJMmTVJwcLBq1frtV8fXX3+t4cOHq2PHjpo2bZr+9Kc/ycvLS7t27dLLL7+ssWPH6h//+IdeeukldevWTXXq1NEVV1yhV199VXfffbf5PTt48KCWLVum8PBw/fzzzxo7dqxuvvlmdenSRb1799YVV1yhn3/+WS1bttTYsWP1z3/+U2fPnlVAQIACAwO1ceNGhYaGasSIEfr888+1Zs0a83VlQWXcuHHq16+f6tWrp/bt26t+/foaM2aM/vnPf+qWW25R8+bN1bZtW915550yDEPBwcE6duyY7r33Xvn4+GjAgAEyDEN+fn566aWXNHDgQI0ZM0ZPPvmkJGn8+PHasWOH6tevryuuuEKzZ8/WihUrlJCQoM8++0x9+vRRo0aNdM899+iNN97QmjVrNHz4cH333Xfq1auXAgMDzZ+v1NRU8zuXnZ2tRo0a6dprr9UNN9yg9evXKykpST4+PpozZ44aNWqkBx98UN7e3rrnnnt0zz33qKSkRHfffbcaN26sJUuWaP369ebrvLy8zO9S//79FR4ersGDB0v67XanDzzwgLp3765ffvlFqampCgsLU0hIiJYuXarCwkJJMn/m/Pz81LJlS/n7+6tPnz46ceKECgsL1bRpU/n5+Tn97Jw6dUpff/217rjjDoWGhuqqq67S8ePHNXDgQElSy5YtNW7cOIWFhally5YKCgpS3759deTIEfN3StOmTZWTk2P+7EhSbGysIiMjFRUVpfvuu0+ffPKJJOnnn39W586dlZ2drRYtWujOO+/UY489ptq1ays7O1srVqwwX1f2h7TbbrtN48eP10cffSR/f39dffXV6tChg1l77bXXKiYmRp988ok2bNigJk2a6M0331RoaKgCAgL0+uuv67PPPtPNN9+sPn36qKioSFdccYUmTpyoWbNmSZL++c9/mr/HAgICNH/+fH355Zdavny5oqKizPejUaNGeu+997Rp0yZ9/vnnuv32283fxWW/TxcsWKCoqCiFhYWZ70fdunXVs2dPffPNN/rmm2/03Xff6c4779Q111yjjRs3qm7duvrrX/+qNWvW6JtvvlG3bt101VVXmfXffPONnnvuOaf3IyMjQ0uWLNGuXbvM3yVvv/32BX93l/1e//7772Wz2fT/tXfm8TVd6///nCE5J7OIzBMhpiAhMUQiSUsEEVpFEERNr5iiKG65aiaGxNwYrqL0Sl1CYwpCaFFCGwRBzHOrqBpjyOf3h9/ePTsnJ4Zqfa+73q/XfiV7PXut/exnP+tZe+211j6pqalYuHAhXF1d0bhxYzRs2BAk0a1bN9nXbWxscPv2bYSFheH27dsYN24csrKykJKSgitXrqBFixYICQmBvb09Zs2ahV27dsk+IfmJxLp167B//364uLhg9uzZJeoocebMGYSGhqJq1arYuXMnDh8+LPvJq2KqzWrXrp1cb1JSUjB37lwcOHBAbnPu3r37yuf6M3oAQLNmzRTHSPXmdcs05SfdunUz2V5PmTIF8+fPR0REBHQ6HQYNGgRzc3OcPn0aixYtwtSpUzF58mTExMQoOuJSLBk1ahR++uknpKeny+3w6yDpYeqZAnizflIa0vPL8uXLkZeXh6ZNm6JJkya4cuUKgOfPCyEhIUhKSnqj5xUI/hcw1fcBXj6uBAYGYsmSJcjPz8eWLVtAEk2bNsWzZ8/+rsv481DwPw8Arl27tkTZL7/8QgDctWtXiXJ7e3v+61//kvfv3r1LX19fbtu2jeHh4Rw4cCBHjx5Nf3//EvMPHz6coaGhL6XnwIEDWbFiRUZHR7N79+4KWZs2bdi5c2c+ePCAGo2GGzZsMLrGtm3byvtFRUV0cXFhUlKSfP2PHj2inZ0d58+fr8gHgLm5uUb6SPlycnIIgBcuXDCS3blzhwCYlZVFkrx8+TIBcNasWfT29uaMGTNIkvHx8WzdunWJ9yI2NpadO3c2eZ8M01u3bs3333+ffn5+HDdunEJWp04d9unThwB49OhRkn/cXxsbGy5atEhhF0m2bds2hV2k9JLsIsnmz59vZBNJtmnTJiObuLi4EACdnZ2NbFKSD0o2Kc0/JVlISAjff/99kpTtYpivJLvY29tz4cKFtLe3p52dHZOSkuT01NRUhT3OnTtHALS1tVXUBUNsbW2N7CFRpkwZI3u4u7vz6NGjVKvVjI2NVdhDwrDuSfYoSVYcMzMzVq1aVWEPwzzVq1cnAObk5Mh1OSwsjDqdTvYRJycnlitXTq7n/fv3l20ixYDly5cTADt16iSfu3h86NChg2yX4jLpnqxfv56+vr5cuXIlzc3N2blzZ7nudOrUiVZWVop4I9GmTRva2NiUKCt+Lh8fH9lHqlatSgcHB0U+FxcXOjg4KHyEJJ8+fUq9Xk+1Wi37CEk5lkRHR8uxT/ITqc6UFBelWPLJJ58YyaRY0qVLF/r7+yv8RLLH6NGjaW9vr/ATw3MV9xNTekhxpLiPSNSpU4cNGzY0GbuluC7FEkO76HQ6VqpUSU4ztIup9kCyS926dY1kJcVYyS62trasUKFCiTpKlGSTN4XUZhUVFSliq0RJbc5frQdpHEveRJmm/KRSpUom2+vo6Gh+/PHHCru0adOGbm5uNDMzU9ilWbNmJttikiW2wy9Lac8UEn+ln0iYen7x9/fnyJEjFWnF44lAIHg1Suv7SLxMXDl8+DAB8PTp029Yw78OMfIvKJU7d+4AAMqWLatIf/bsGdLS0nD//n0EBwfL6f369UN0dDSaNGmiOL6goABubm6oUKECOnTogLNnzwIAMjIyEBQUhHbt2sHJyQm1a9fGokWLjPR4/PgxVqxYge7duyM0NBTbt2/HqVOnAACHDx/G7t270aJFCzx9+hTPnj0r8W18fn6+/P+5c+dw/fp1NG3aVE7T6XQIDw/H3r17X9lGKpVKMZoEPB/ZW7hwIezs7ODv74+ioiJ06dIFAODl5WVUzs6dOwEAffv2Ra9evfDLL7+gqKgIGzduROXKlQEA8fHxqF+/vmKqksTPP/+MjRs3okePHggNDUVGRgaA51NNs7OzcerUKdSvXx8AZPtI99fc3By7d+9W2EWSubi4KOwipZuyBQB5KryhTSTZ9u3bjWzSo0cPOV9xm1StWhUAMGvWLCObtGnTBsBzvytuE+l8+/btk8uX7CItZTl9+rTCLmZmZrJfh4SEQKPR4M6dO2jcuLGcHhYWprCH9Lb34cOHirogydLS0uSZG4b2ePbsGVasWIG7d+/C2tpaYY8hQ4YgLy8PRUVFKF++vMIejo6OcHV1xZ07d1C5cmWFPZo2bQpbW1v89ttvePDggZEuCxYswJMnT/Dxxx/L9vj222/xxRdf4P79+1Cr1Th37hyA5zNXpLosTbGWfOSXX36RR6QAQKPRyDaRYkBoaGhx9zCKD4WFhbKfGMpIIi8vD3Z2dli+fDlatGiBhQsXwtPTEw4ODnJ5+/fvx5MnT9CpUyfk5OQgKytL9pGMjAzUqFED06ZNw969e5GWlib7iOG5Hj9+jHPnzsk+UlRUBI1Gg2rVqgEALl26hJs3b8qjs82aNZNjmDT9vKioCNOnT5fjmzSt/dKlS3Lsa9SoEQDg8uXLsv7F46I0Uq7X6xWy9u3bY/LkybCzs4OLiwsKCgrg4+ODhw8fYvz48Xjy5Ilc5t27d5GRkQGNRgMbGxvExsbi/v37KCgowKpVq7Bhwwa4urrCwcEB9evXx4kTJxTn+uCDD7BhwwajOnPlyhVFLLly5YrJ2J2RkQFfX19cv34dU6ZMkWU6nQ5mZmYwMzOT80VHR8u6m2oPpLpct25dhUyaUVA8ngwdOhR+fn54+PAhPD09TbYvhnUnKioKTk5OJuPrq2LYZqlUqjfa5vwZPSR27twJJycnVK5cWW5v/kyZpvykcePGJtvr0NBQbN26VbaLJAsLC4NWq0VmZqacx3Dqe0mYaodfhtKeKYC/1k8MMfX8YmFhgd27d7/RcwkEghfzorhy//59LFmyBBUqVICnp+ffq9yf4e2+exD8XwAm3n4VFRUxJiZGMRJz5MgRWllZUaPR0M7Ojhs3bpRlK1euZI0aNfjw4UOSlEfNNm3axNWrV/PIkSPyaJqzszN//fVX6nQ66nQ6fvbZZ/zpp584f/586vV6Llu2TKHLN998Q41GwytXrrCoqIj/+Mc/qFKpqNVqqVKpOGnSJPnY4OBghoeH88qVK3z69Kk8Aunm5iYfs2fPHgLglStXFNffq1cvNm3aVGEblDLy/8033zAwMJBxcXFy+vr16+V8bm5uzMnJIUlOmjSJkZGR8vkMR/7T0tK4YcMGAuCIESPo7+9PPz8/nj9/ngBoaWlJAExJSeHkyZOpUqm4c+dOxf2bMmUK7e3t+fDhQxYWFrJr164EQLVaTXNzc3711Vd8/Pgxvb292a5dO968eZPR0dEsX748AbBp06ayXS5fvqy495JdJJ8ICgoysoska9iwoZFNMjIyqNFoSrRJkyZN5HMVt8n69esZERHB6tWrG9nEwsKCfn5+rF27tpFNJF3Kly8v24QkCwsL2aVLF/n+SHb58ccfqVKpqFKpaGtry3Xr1nHy5MnyccX9vVevXgwODpbrAgDOnj3bZD2pVKmSbI8jR45Qr9fLZZctW1a2R2JiIjUajZzPyclJtsfUqVOp1+up0WhoZWXFChUqKOwh3Wtra2vGx8fL9jDURa/X09ramg8fPpTTVSqVwk++/PJLlitXjra2trx69SoLCwtZoUIF2UfGjh1LADxz5oyinvfq1Ys1a9aUY4A0MiWN/BePD40aNaKTkxPj4uJk2Zo1a2hlZUUAtLKy4oQJE1ijRg2OHTuWkZGR8rm8vb3ZpUsXenp6Mj09nXl5eaxRowbLlStHPz8/zp49W/aRlJQUBgYGsmHDhlSpVBw1apRCDx8fH+p0Oj58+JArV66kn58f4+LiFDYdMmQI09LS6OrqyrCwMIaEhNDZ2Zn//Oc/5eOysrIU8a1Lly6sXbu2HPukOOTg4MBff/3VKC42atSIWq2Wbdu2lWVz5syRfUWtVnPr1q3ctGkTO3XqxAYNGnDr1q0MDw+nWq3mhAkTuGnTJg4aNIhz587lwoULWaNGDWq1Wrq7uzM1NZUAqNPpWLFiRTo4OMj6jx07VtbDx8eHKpWKly9fluuMFEu0Wq1cZ0qL3Tqdjubm5gTALVu2KGQajYZqtVrON3HiRALguHHjTJZZvnx5qtVqWTZz5ky5/DJlyhjFWGk0WtLZVPty7do1Ob6mpKQwNzfXKJa8LoZtFqlscwwp3ua8aYrrQf7R3uTl5TEjI0OOrY8ePXrtMk35SWntdVFRkTyrzVBWVFREf39/RfrQoUNNtsUPHz40anNehRc9U/yVflKckp5fVCoVK1eurDhOjPwLBH8OU30fidLiyrx58+RnlapVq/5XjfqTpOj8C0xWgL59+9Lb25uXLl2S0woLC1lQUMADBw7wH//4B8uVK8djx47x4sWLdHJy4qFDh+Rji0+1lbh37x6dnZ2ZnJxMMzMzBgcHK+QDBgxggwYNFGlNmzZly5YtST7vRHh4eHDlypU8cuQIv/rqK5YtW5ZLly4lSZ4+fZphYWFyp61u3boEQA8PD7k86UHs6tWriuvv2bMno6KiFLYprfNfr1491q5dm3fu3FFcHwAmJSWxe/fuLF++PLdu3UpnZ2fFywbDjm7xe3H16lWamZlx0aJFBMCOHTsq9IyJiWGHDh0UeapUqcL+/fuTJKdNm8bKlSsTAGfMmME5c+bQ2tqa27Zt48GDB+UHKwAMDw9n8+bN2bx5c9ku8fHxinsv2UXyib179xrZRZI1bdrUyCa9evWiu7s7v/32WyObGJ6ruE0MfbC4TXx9fRU6GtpEyufj4yPbRLKL1KneunWrbJdNmzZx7dq19PX1le0SEhLCevXqEQA3b96s8PeePXsyMjKSBQUF/Pbbb+VOyLFjx0j+UU9++OEH+vr6UqvVcv/+/bLs8OHDTE9PZ5cuXajX6+nm5satW7fSycmJu3fvluuXWq3m8OHDFWVKsrJly1Kr1cr2aNmypaJeRkREsEOHDop8ZcuWpV6v57Fjx1hYWMjhw4fTy8uLH330Ee3t7TlixAhaWlrSxsZG9h+NRkN7e3t6e3szIiKC9vb2ct0h/6jnHTp0oLm5uRwDDDv/xePD48eP6eDgQEdHRx47dkyW3bt3jwUFBaxduzZ9fX2pVquZmpoq1x3pXO7u7rS2tjaKNz179qRWq6WNjY1cbwx1bNKkCXU6nSKfhYUF/f39ZR0HDRrEypUrMyMjg0FBQYyIiDBZd6pUqcIGDRoo7CHFt/r16ytiiWQPBwcHJicnK+r948ePGR0dTa1Wy4kTJypiSUFBAXfs2EELCwva29srYol0jFqtLnEa97179+jo6Ei1Wq2IJYYx2LDekKSvry8tLS1lHaVYkpGRwcOHD8t1RqvVmozdZmZmrFGjhsIukkytVrNMmTJGdqlZs6ZRe/D48WNWqFCBlpaWCplkl3bt2tHR0dEoxkoAYPny5UvUkaQcjyU/kShuk9fBsM0ilW2OIcXbnDdNcT1KQoqta9asee0yTfnJiBEjTLbXK1eupJOTEwFw+/btsiwhIYFWVlasVauWnEdaHlW8LX78+DFbt25t1Oa8Ci96pvgr/aQ4JT2/xMXFsVq1aorjROdfIPhzlNb5f1Fc+e2333jq1Cnu2rWLMTExrFOnjjyg8N+A6PwLSqwA/fv3p4eHB8+ePVtq3saNG7N3795cu3at3FhJGwCqVCpqNBo+ffpUka9JkyZMSEigl5cXe/TooZB98cUXilH68+fPU61Wc926dSRJDw8Pzp07V5Fn/PjxrFKliiLt3r178oMWANapU0eWnTlzhgD4008/Ka6/VatW7Nq1q8I2ph44ANDb25u//vqrkV0My6xUqRKjo6NlW0ijeNJfb29vk/kmTJhArVbL8ePHK2TDhg1jw4YN5TzS6NmhQ4f44MEDmpmZyTMJpDw9evSQHzL79+9Pd3d3HjhwgCRZr1499u3bV7aLs7Oz4t63atWKVapUkX2i+IOH5C+RkZGsVauWwiYl+ZJkE8PRVUPbeHt7m8w3YcIEeYTeUCbZRMqXlpYm24R8vp5SrVazXLlyinyGdiGfB/VGjRqxd+/erFWrluwn5B/+bugnki3q1avH3r17K3zkgw8+YK1atRgWFqaQGdK4cWPa2toqfMSwDkl+ZiqfoY8Yyvz9/WUfIcnvvvuOAFi/fn327t1b4SeG19a4ceMS63LxrXg9L55uKJP8XUqXji9JVvx8hmW/ih7F/epldSwpn0qlUozO/vbbbwwLC2NCQoKRj5DP45u3t7cilkh+Ur9+fSYkJJToJ+Hh4QqZIU2aNHktP5HyFfcTKQYbxhJDH0lISDDyEYkePXpQr9ebjN1eXl5s3769wi6SzMLCosQ1/46Ojor2QLKLu7s7XVxcSm0risfY0uxi2L4UFhYa1R1SGV9fh+JtFqlscwwp3ua8SUrSwxSVKlVSfI/gVcp8kZ+Yaq89PDw4ZswYhV3Gjx9PrVbLmjVrKuwyePBgo7bYsO6U1A6/LC96pvir/KQ0DJ9f2rdvzxYtWijkovMvEPw5THX+XzWuFBYW0tLSkv/+97//Ai3/GsSaf4ECkujfvz/S09OxY8cOVKhQ4YXHFxYWonHjxsjLy8OhQ4fkLSgoCHFxcTh06JD8hXHg+Trf/Px8uLq6IiQkRF5/LXHq1Cl4e3vL+0uWLFGsDX3w4IHR2nCNRmP0szxWVlZwdXXF7du3AUBe1w0AFSpUgIuLi/zFYuD5OsZdu3ahYcOGpV7zkydP5K+jjx07VrEG2ZSNqlevjiNHjsg/y5OSkgI3NzcMHToUW7ZsMcpz8+ZNXLp0Sf5puxfZKCsrC4GBgfD398eTJ0/w5MmTEm307Nkz+f5mZ2cjKCgIBQUFOHjwIFq1aoXk5GSo1Wp07dpVvveFhYXIzMzE9evXjXzC0F+qVq2Kq1evIisrCw4ODqX6UlFREa5evQonJyds2LABhw8fxqFDh+Dm5oZPP/0UISEhRvlu3ryJixcvIjs7G1qtFhEREYoyT548iRs3bsj5Nm/eLNuEJAYOHIiioiJMnjxZka+479jZ2cHMzAw3btxAXl4eypYtK/sJSTx8+NCknxQWFgL4w0cKCgqQlZUFrVYry4rD5y9hFT4ibebm5qhRo0aJPvL48WPcu3evRB8hiVu3bil8ZPHixQgMDISVlRUKCwuN/ESqy56enggODlboUaNGDQDPv7tw5MgRODg4IDExUa7nHTt2hJWVFUaNGiXn2bhxIwCgRYsW2Lt3L/Ly8nDgwAGEh4fDx8cHAQEBiIuLk2XFY0dsbCycnZ0RHx+P9PR0pKenw8/PDy1btoSDgwO6d++OjIwMRZ62bdtCq9Vi4sSJ8Pf3R4sWLRSxKCwsDM2bN5fzREdHw9LSUtbjhx9+APD8FzIM83300UcgKdtSr9fjzJkzMDc3N/IRKb5dv369RB85d+4cXF1djfxk48aNOH36tCwr7lf5+fnQaDRGfpKTkwO1Wo3Q0FAjPyksLMSxY8dw//59hZ8YxmDDWLJ48WLUrl0bly9fhqura6mxpEyZMibjUkhICK5evaqIsadOnYKXl5f8CyvFMWwPDO3SsmVLVKhQodS2wlT9sbCwgIeHh8Iuhtdrbm7+UvH1VSneZgF/rs15k3qUhNTelOR7L1Pmi9ocU+31gwcP4OjoqLCLJCsoKFDYxfAZQjqnYYx9UTtcGi96pvir/KQ0DJ9ftmzZgtatW/8l5xEIBH/wunFFen76r+FtvHEQvH3u3r3L3Nxc5ubmEoC8jq1z5860s7Pjzp07ee3aNXl78OABP/vsM3733Xc8d+4cjxw5whEjRsjrUEtCmmo7ZMgQ7ty5k2fPnuW+ffvYsmVL2tjY8Pz588zJyZGnuhYUFPDrr7+mpaUlV6xYQZJ89uwZvby85KnP5PMvFbu7u3PDhg08d+4c09PTWa5cOQ4bNowkmZmZyc2bNzMvL4+pqany9OVp06YxNzdX/rJ4YmIira2tCYBDhw5ls2bN6OTkxKtXr3Lnzp3yyDH+/xT+TZs28cSJEwwPD5enKo4ZM4bbtm3jgQMHePHiRXbv3p3Lli0jAA4ePJgffPABzc3NmZOTY2RvV1dXfv7557x27Rq7dOnCpUuXEgD79u3LWrVq0dnZmVevXmVycjK1Wi2B598DGD58OFUqFb/88ku5PDMzM44YMUK+tsDAQPr4+BAAR44cybFjx1Kn07FRo0a0tLTkjBkzuG/fPi5ZsoQeHh5s3bo1+/TpQzs7O/bu3Zs2NjZcvHgxs7OzWbFiRapUKm7atInHjx/ntm3b5PXLkZGRtLa2Zt26denq6sqsrCwePnyYZ8+eZXx8PG1tbRkXF8cNGzYwJyeHW7ZsYXx8PNVqNW1sbIz8zNPTkyEhIbSzs2P79u25fv165uTkcM2aNaxXrx6trKxoZ2cnjw5NmzaNe/fuZXJyMlUqFa2trblz506eOnWKFhYWTEpK4oMHD+Rr8/f3Z+XKlblmzRru37+fCxYsoEaj4eDBgzl37lwuXryYffr0oVqtpqWlJcPCwjhs2DBaW1vzo48+olqtZkREBK2srLhq1Spu3LiR8+bNk0eIU1NT2a9fP4aEhNDFxYX/+c9/mJiYSLVazbS0NA4aNIidO3dmeno6MzMz2b17d6pUKpqZmbFnz55G9QsAExISOGTIEMbGxnLNmjXcvHmzvCbdwcGBQ4YMkUd1P//8c/bp00ceye7cuTO/++47+TsDzZo1o1qtZocOHfjdd9+xfv36rFixIuPi4qhWq/npp59Sr9ezZ8+ezM7O5pkzZ7hu3Tp5nbhEUlIS7ezsmJ6ezqCgIFauXJmurq78/fffefPmTebm5nLjxo0EwObNmzM3N5eXLl1iq1at6OHhwUOHDjE4OJg9e/bktWvXeOvWLX722Wf84YcfeP78eQYGBtLPz486nU7xdX3DNf9JSUkcMmQI9+7dy3PnztHf358uLi50d3fn77//zvT0dJqZmXHhwoWsV68eIyIiqNFo+P3335N8/pV4S0tL+vr6KpYnhYeH08/Pj9nZ2axfvz4jIyOp0Wj4ySefcO7cuZw3bx7ff/99WlhY0N3dnb6+vnKdSUpKYnh4OLVaLR0dHTlgwABmZGRww4YNTE5OJvD8OwQbN25k79692bBhQ7q4uHD58uVyXcrJyWG/fv0YFxfHNWvWcO3atWzUqBHNzMxobm7O+Ph4o3gqfctgwIABbN++PVevXs309HQGBwdTo9HQ0tKSmzZtYmpqKjUaDWvVqkUrKyuOHTuWKpWKs2fP5uHDh6nT6VizZk05Phe3x9mzZ7lkyRLq9XoOGzbMZOyW4npUVBStra35ySef0MLCgsHBwXRwcKBWq+XIkSP57bffymu5+/fvzxUrVlCr1bJq1ap0cXHhpEmTaGFhwblz53Lz5s3UarUMDw/nqlWrOGvWLOr1eoaHhxv5iYSLiwvVarXJ9oWkwk8KCgo4Z84chZ+8KiW1WSXVm7y8PHbs2FGuN28aU3rcvXtXUW+ys7MZHBws15vXKZM07ScNGjQw2V5LbXm3bt1oY2PDYcOGyb+wolaruWrVKubm5jI5OVn+xZS0tDQeOHCAUVFRciwxbEMKCwtf2VYveqYg37yfmEJ6fjl79iy3bt1Kf39/1qtXj48fPyZJo/ialpbG3NxcXrt27Y3qIRC8i5jq+1y4cIFPnjxRPKOUFFfOnDnDSZMm8eDBg7xw4QL37t3L1q1bs2zZsvz555/f8tW9PKLz/z9KdnZ2qVNpi29Llixh9+7d6e3tTXNzczo6OrJx48YmO/7kHw/qsbGxdHV1pZmZGd3c3NimTRt5bTT5/AN5NWrUoE6nY9WqVblw4UJZtmXLFgLgyZMn5bTff/+dAwcOpJeXF/V6PX18fDhy5Ei5cn7zzTf08fGRO8zFt/j4eJPX36pVq1Jt89FHH5mUTZ06tcT06Ohok2XWrVuXmZmZJcratm1rMl9AQMArX5v0kb6SNmk98N+xmdJd6syakoWEhJiUeXp6luq7pmQuLi6sV68evb295Q+RqVQqOjo60t/fX/Z3S0tLmpub08zMjGFhYfzwww9N6ir9VF5JW1RUlPzxRuD5BwcbNGjAnJycEuuX9MG/rl27Kj4SqNPpGBkZKb9w8vb2plarla/Bx8eH69atU8iA59932Lp1q+Jcer1evrYqVaowOTmZM2fOpIeHB83MzOjl5UUvLy/FtxOKioo4evRouri4UKVS0d3dnXl5eSRp0t4DBw40aZctW7bwww8/pJubG83NzWlubk4fHx/5Q27FY4q3tzenTJnCpk2b0tHRkWZmZtTpdKxWrRovXrwoH7948WJWqlSJKpWK5cqVU0xVXrBgAS0sLBgSEqLo/F+7do3dunWjm5sbVSoV7e3tGRAQQFdXV4WPuLq68p///CfbtWtHV1dXqtVqeQsMDGReXh5jY2PltcrFN+mlZElbeHi44n7r9Xq+9957zMnJKTGeurq6csaMGWzbti11Op2cz8LCgq1bt2ZMTIycp0yZMrSysqK5uTn9/f0ZGhoqXxsAxsTEKOKzoT30er3sI0VFRaXGbkkmTcHXarUMCwtjXl4e169fT3d39xKvPSYmxqRdxo4dK3cCAdDOzo6tWrUy8hMJb29v9uzZ06SOxf1Er9fT39//pabJm6KkNkvCsN7odDrZHn8FpvR48OCBot54eXkxPj5eUW9etUzStJ/cuXPHZHtt2JZL8Uuj0bBBgwbs3Lkzvby8aGZm9krtS3Z29ivb6kXPFBJv0k9MIT2/mJub08XFhf369eNvv/0my03F19GjR79xXQSCdw1Tz8fx8fHyUprS4sqVK1fYvHlzOjk50czMjB4eHuzUqRNPnDjxdi/sFVGRBnMZBQKBQCAQCAQCgUAgELxziDX/AoFAIBAIBAKBQCAQvOOIzr9AIBAIBAKBQCAQCATvOKLzLxAIBAKBQCAQCAQCwTuO6PwLBAKBQCAQCAQCgUDwjiM6/wKBQCAQCAQCgUAgELzjiM6/QCAQCAQCgUAgEAgE7zii8y8QCAQCgUAgEAgEAsE7juj8CwQCgUAgEAgEAoFA8I4jOv8CgUAg+J/h/PnzUKlUOHTo0NtWRebEiRNo0KAB9Ho9AgIC3rY6/5WMGTPmb7Fd+fLlMXPmzL/8PC/Ly173qFGj0Lt3779eoTfI3Llz0apVq7ethkAgELxTiM6/QCAQCP42unXrBpVKhaSkJEX6unXroFKp3pJWb5fRo0fDysoKJ0+exPbt20s8RrJbQkKCkaxv375QqVTo1q3bX6zp/10+/fRTk7Z7GSIiIqBSqUxu5cuXf3PK/s38/PPPmDVrFkaMGKFIv379OgYMGAAfHx/odDp4enoiJibmT9nxdVGpVFi3bp0irVevXjhw4AB27979t+sjEAgE7yqi8y8QCASCvxW9Xo8pU6bg9u3bb1uVN8bjx49fO++ZM2cQGhoKb29vODg4mDzO09MTaWlpePjwoZz26NEjrFy5El5eXq99/ncBa2vrUm33ItLT03Ht2jVcu3YNOTk5AICsrCw57cCBA69d9pMnT14775tg8eLFCA4OVrzAOH/+PAIDA7Fjxw5MnToVeXl5yMzMxHvvvYd+/fq9PWUN0Ol06NSpE+bMmfO2VREIBIJ3BtH5FwgEAsHfSpMmTeDi4oLJkyebPKak6cwzZ85UdGC6deuGDz74AJMmTYKzszPKlCmDsWPH4unTpxg6dCjKli0LDw8PfPnll0blnzhxAg0bNoRer4efnx927typkB8/fhwtWrSAtbU1nJ2d0aVLF/z666+yPCIiAv3798fgwYNRrlw5REZGlngdRUVFGDduHDw8PKDT6RAQEIDMzExZrlKp8OOPP2LcuHFQqVQYM2aMSZvUqVMHXl5eSE9Pl9PS09Ph6emJ2rVrK44lialTp8LHxwcWFhbw9/fH6tWrZfnt27cRFxcHR0dHWFhYwNfXF0uWLAHw/EVG//794erqCr1ej/LlyyvuVUpKCmrWrAkrKyt4enqib9++uHfvnuL8ixYtgqenJywtLfHhhx8iJSUFZcqUURyzfv16BAYGQq/Xw8fHR753EmPGjIGXlxd0Oh3c3NyQmJho0jbF/UXyjenTp8PV1RUODg7o16+fyY542bJl4eLiAhcXFzg6OgIAHBwcjNIA4MGDB+jevTtsbGzg5eWFhQsXyjJpWcmqVasQEREBvV6PFStWAACWLFmCatWqQa/Xo2rVqvjiiy8UOgwfPhyVK1eGpaUlfHx8MGrUKCN9k5KS4OzsDBsbG/To0QOPHj0yaROJtLQ0o+nz0myRnJwctG3bFpUrV4afnx8GDx6Mffv2ycddvHgRrVu3hrW1NWxtbdG+fXv8/PPPRnY25JNPPkFERIS8HxERgcTERAwbNky2s6GfS3X6ww8/NJpl0apVK6xbt07xwksgEAgEr4/o/AsEAoHgb0Wj0WDSpEmYM2cOLl++/KfK2rFjB65evYrvvvsOKSkpGDNmDFq2bAl7e3vs378fCQkJSEhIwKVLlxT5hg4diiFDhiA3NxcNGzZEq1atcPPmTQDAtWvXEB4ejoCAABw8eBCZmZn4+eef0b59e0UZy5Ytg1arxZ49e7BgwYIS9Zs1axaSk5Mxffp0HDlyBFFRUWjVqhUKCgrkc/n5+WHIkCG4du0aPv3001Kv9+OPP5Y76QDw5Zdfonv37kbH/fOf/8SSJUuQmpqKY8eOYdCgQejcuTN27doF4Pka8OPHj2Pz5s3Iz89HamoqypUrBwCYPXs2MjIysGrVKpw8eRIrVqxQdMjUajVmz56No0ePYtmyZdixYweGDRsmy/fs2YOEhAQMHDgQhw4dQmRkJCZOnKjQb8uWLejcuTMSExNx/PhxLFiwAEuXLpWPW716NWbMmIEFCxagoKAA69atQ82aNUu1TXGys7Nx5swZZGdnY9myZVi6dCmWLl36SmWURHJyMoKCgpCbm4u+ffuiT58+OHHihOKY4cOHIzExEfn5+YiKisKiRYswcuRITJw4Efn5+Zg0aRJGjRqFZcuWyXlsbGywdOlSHD9+HLNmzcKiRYswY8YMWb5q1SqMHj0aEydOxMGDB+Hq6mr0AqE4t2/fxtGjRxEUFCSn3bp1C5mZmejXrx+srKyM8kgvaUjigw8+wK1bt7Br1y5s27YNZ86cQWxs7CvbbNmyZbCyssL+/fsxdepUjBs3Dtu2bQMAeVbFkiVLjGZZBAUF4cmTJ/JsDIFAIBD8SSgQCAQCwd9EfHw8W7duTZJs0KABu3fvTpJcu3YtDZuk0aNH09/fX5F3xowZ9Pb2VpTl7e3NZ8+eyWlVqlRho0aN5P2nT5/SysqKK1euJEmeO3eOAJiUlCQf8+TJE3p4eHDKlCkkyVGjRrFp06aKc1+6dIkAePLkSZJkeHg4AwICXni9bm5unDhxoiKtbt267Nu3r7zv7+/P0aNHl1qOZLcbN25Qp9Px3LlzPH/+PPV6PW/cuMHWrVszPj6eJHnv3j3q9Xru3btXUUaPHj3YsWNHkmRMTAw//vjjEs81YMAAvv/++ywqKnrh9ZHkqlWr6ODgIO/HxsYyOjpacUxcXBzt7Ozk/UaNGnHSpEmKY5YvX05XV1eSZHJyMitXrszHjx+/lA7F/UXyjadPn8pp7dq1Y2xs7AvLknwkNzfXSObt7c3OnTvL+0VFRXRycmJqaqoi78yZMxX5PD09+e9//1uRNn78eAYHB5vUY+rUqQwMDJT3g4ODmZCQoDimfv36RvXEkNzcXALgxYsX5bT9+/cTANPT003mI8mtW7dSo9Eo8h47dowAmJOTQ1JZnyUGDhzI8PBweT88PJyhoaGKY+rWrcvhw4fL+wC4du3aEvWwt7fn0qVLS9VVIBAIBC+HGPkXCAQCwVthypQpWLZsGY4fP/7aZfj5+UGt/qMpc3Z2VowQazQaODg44JdfflHkCw4Olv/XarUICgpCfn4+AODHH39EdnY2rK2t5a1q1aoAnq/PlzAcTS2J33//HVevXkVISIgiPSQkRD7Xq1KuXDlER0dj2bJlWLJkCaKjo+URe4njx4/j0aNHiIyMVFzDV199Jevfp08fpKWlISAgAMOGDcPevXvl/N26dcOhQ4dQpUoVJCYmYuvWrYrys7OzERkZCXd3d9jY2KBr1664efMm7t+/DwA4efIk6tWrp8hTfF9a6mCoX69evXDt2jU8ePAA7dq1w8OHD+Hj44NevXph7dq1iiUBL4Ofnx80Go287+rqauQHr0OtWrXk/1UqFVxcXIzKNfSNGzdu4NKlS+jRo4fieidMmKDwp9WrVyM0NBQuLi6wtrbGqFGjcPHiRVmen5+v8FsARvvFkabL6/V6OY2krHtp5Ofnw9PTE56ennJa9erVUaZMmVf2X0ObAa92LywsLPDgwYNXOp9AIBAISkb7thUQCAQCwf8mYWFhiIqKwogRI4y+VK9Wq+VOikRJ67XNzMwU+yqVqsS0oqKiF+ojdYaKiooQExODKVOmGB3j6uoq/1/SlOnSypUg+ad+2aB79+7o378/AGDevHlGculaN27cCHd3d4VMp9MBAJo3b44LFy5g48aNyMrKQuPGjdGvXz9Mnz4dderUwblz57B582ZkZWWhffv2aNKkCVavXo0LFy6gRYsWSEhIwPjx41G2bFns3r0bPXr0kO9PSddX/F4WFRVh7NixaNOmjZH+er0enp6eOHnyJLZt24asrCz07dsX06ZNw65du4zuryle1w/eRLmGviHJFi1ahPr16yuOk15O7Nu3Dx06dMDYsWMRFRUFOzs7pKWlITk5+U/pKr0Yun37tvzdAl9fX6hUKuTn5xut1zfElJ8apv+Zevqy9+LWrVuKby4IBAKB4PURnX+BQCAQvDWSkpIQEBCAypUrK9IdHR1x/fp1RUfj0KFDb+y8+/btQ1hYGADg6dOn+PHHH+UOdZ06dbBmzRqUL18eWu3rN5O2trZwc3PD7t275XMBwN69e41Gwl+FZs2ayb8uEBUVZSSvXr06dDodLl68iPDwcJPlODo6olu3bujWrRsaNWqEoUOHYvr06bLusbGxiI2NRdu2bdGsWTPcunULBw8exNOnT5GcnCzPuFi1apWi3KpVqxqt0T548KBiv06dOjh58iQqVapkUj8LCwu0atUKrVq1Qr9+/VC1alXk5eWhTp06pVjn/x7Ozs5wd3fH2bNnERcXV+Ixe/bsgbe3N0aOHCmnXbhwQXFMtWrVsG/fPnTt2lVOM/w4X0lUrFgRtra2OH78uFzHypYti6ioKMybNw+JiYlGL7F+++03lClTBtWrV8fFixdx6dIlefT/+PHjuHPnDqpVqwbguQ8dPXpUkf/QoUMv/YJGwszMDM+ePTNKP3PmDB49emT0QUuBQCAQvB6i8y8QCASCt0bNmjURFxdn9HNeERERuHHjBqZOnYq2bdsiMzMTmzdvhq2t7Rs577x58+Dr64tq1aphxowZuH37tvzhvH79+mHRokXo2LEjhg4dinLlyuH06dNIS0vDokWLFFPJX8TQoUMxevRoVKxYEQEBAViyZAkOHTqEr7/++rV112g08rTrknSxsbHBp59+ikGDBqGoqAihoaH4/fffsXfvXlhbWyM+Ph6ff/45AgMD4efnh8LCQmzYsEHu0M2YMQOurq4ICAiAWq3Gf/7zH7i4uKBMmTKoWLEinj59ijlz5iAmJgZ79uzB/PnzFecfMGAAwsLCkJKSgpiYGOzYsQObN29WjCJ//vnnaNmyJTw9PdGuXTuo1WocOXIEeXl5mDBhApYuXYpnz56hfv36sLS0xPLly2FhYQFvb+/XttvbZMyYMUhMTIStrS2aN2+OwsJCHDx4ELdv38bgwYNRqVIlXLx4EWlpaahbty42btyItWvXKsoYOHAg4uPjERQUhNDQUHz99dc4duwYfHx8TJ5XrVajSZMm2L17t2KU/4svvkDDhg1Rr149jBs3DrVq1cLTp0+xbds2pKamIj8/H02aNEGtWrUQFxeHmTNn4unTp+jbty/Cw8PlZQ3vv/8+pk2bhq+++grBwcFYsWIFjh49+sqd9fLly2P79u0ICQmBTqeDvb09AOD777+Hj48PKlas+ErlCQQCgaBkxJp/gUAgELxVxo8fbzR1uFq1avjiiy8wb948+Pv7Iycn54Vfwn8VkpKSMGXKFPj7++P777/Ht99+K0+RdnNzw549e/Ds2TNERUWhRo0aGDhwIOzs7BTfF3gZEhMTMWTIEAwZMgQ1a9ZEZmYmMjIy4Ovr+6f0t7W1LfVFyPjx4/H5559j8uTJqFatGqKiorB+/XpUqFABAGBubo7PPvsMtWrVQlhYGDQaDdLS0gAA1tbWmDJlCoKCglC3bl2cP38emzZtglqtRkBAAFJSUjBlyhTUqFEDX3/9tdFPNoaEhGD+/PlISUmBv78/MjMzMWjQIMW686ioKGzYsAHbtm1D3bp10aBBA6SkpMid+zJlymDRokUICQlBrVq1sH37dqxfvx4ODg5/ym5vi549e+Jf//oXli5dipo1ayI8PBxLly6V70fr1q0xaNAg9O/fHwEBAdi7dy9GjRqlKCM2Nhaff/45hg8fjsDAQFy4cAF9+vR54bl79+6NtLQ0xTT7ChUq4KeffsJ7772HIUOGoEaNGoiMjMT27duRmpoK4PnU/HXr1sHe3h5hYWFo0qQJfHx88M0338jlREVFYdSoURg2bBjq1q2Lu3fvKmYmvCzJycnYtm2b0c9Wrly5Er169Xrl8gQCgUBQMioWf+ISCAQCgUAgeIP06tULJ06cwPfff/+2VfmfgyQaNGiATz75BB07dnzb6rw0R48eRePGjXHq1CnY2dm9bXUEAoHgnUCM/AsEAoFAIHijTJ8+HYcPH8bp06cxZ84cLFu2DPHx8W9brf9JVCoVFi5c+Mq/lvC2uXr1Kr766ivR8RcIBII3iBj5FwgEAoFA8EZp3749du7cibt378LHxwcDBgxAQkLC21ZLIBAIBIL/aUTnXyAQCAQCgUAgEAgEgnccMe1fIBAIBAKBQCAQCASCdxzR+RcIBAKBQCAQCAQCgeAdR3T+BQKBQCAQCAQCgUAgeMcRnX+BQCAQCAQCgUAgEAjecUTnXyAQCAQCgUAgEAgEgncc0fkXCAQCgUAgEAgEAoHgHUd0/gUCgUAgEAgEAoFAIHjHEZ1/gUAgEAgEAoFAIBAI3nH+HxBDJWwRnECzAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of threads is 246588\n", + "the number of messages is 848790\n", + " the average number of messages per thread is 3.4421383035670834\n" + ] + } + ], + "source": [ + "# Get the count of each Thread ID\n", + "thread_counts = data_sample['Thread ID'].value_counts()\n", + "# Now, get the frequency of each count (i.e., how many threads have count=1, count=2, etc.)\n", + "count_frequency = thread_counts.value_counts().sort_index()\n", + "\n", + "# Plot\n", + "plt.figure(figsize=(12,10))\n", + "plt.bar(count_frequency.index, count_frequency.values)\n", + "plt.xlabel('Number of Messages in Thread (Count)')\n", + "plt.ylabel('Number of Threads (Frequency)')\n", + "plt.title('Distribution of Thread Message Counts')\n", + "plt.xticks(count_frequency.index) # Show all counts on x-axis if not too many\n", + "plt.show()\n", + "print(f\"the number of threads is {len(thread_counts)}\")\n", + "print(f\"the number of messages is {thread_counts.sum()}\")\n", + "print(f\" the average number of messages per thread is {thread_counts.mean()}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Focus on valid question-answer pair" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "def remove_duplicate_messages(threads_to_keep):\n", + " # first round of duplicate removal\n", + " df = data_sample_sub_cols[data_sample_sub_cols['Thread ID'].isin(threads_to_keep)].reset_index().sort_values(['Thread ID', 'index'], ascending=False).drop_duplicates()\n", + " \n", + " # Create a boolean column: True if response exists, False otherwise\n", + " df['has_response'] = df[\"Actual Response Sent to Patient\"].notnull()\n", + "\n", + " # Sort so that for each Patient Message, rows with a response come first, then by index (descending or ascending as you prefer)\n", + " df = df.sort_values(['Patient Message', 'has_response', 'index'], ascending=[True, False, False])\n", + "\n", + " # Drop duplicates based on Patient Message, keeping the one with a response if it exists\n", + " df_no_dupes = df.drop_duplicates(subset=[\"Patient Message\"], keep='first').sort_values(['Thread ID', 'index'], ascending=False)\n", + "\n", + " # Optionally, drop the helper column\n", + " df_no_dupes = df_no_dupes.drop(columns=['has_response'])\n", + " return df_no_dupes\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/8AAANVCAYAAAAuhU7eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAflRJREFUeJzs3Xd4FOX+///XEtIJIbSECIQivQtKU0BpKk1QAVGUIuABQRCkHEWKSgcbB8RCURQ8RwELGohSFOkIYgAB6UgoQggQMIHk/v3hN/tjSUJ2kl0S5/N8XFeui8zc8973bO4M+8rMzjqMMUYAAAAAAMC28uV2AwAAAAAAwLsI/wAAAAAA2BzhHwAAAAAAmyP8AwAAAABgc4R/AAAAAABsjvAPAAAAAIDNEf4BAAAAALA5wj8AAAAAADZH+AcAAAAAwOYI/wAASdL8+fPlcDicXwEBAYqIiNC9996riRMn6vTp0+m2GTt2rBwOh6XHuXz5ssaOHas1a9ZY2i6jxypTpozatm1rqU5WPvnkE73xxhsZrnM4HBo7dqxHH8/Tvv/+e9WrV0/BwcFyOBxatmxZujHNmjVz+Vln9pW2rw6HQ88+++yt3ZFscndO9ujRQw6HQyEhIbp06VK69UeOHFG+fPn+ET/z3HDw4EE9++yzqlixogIDAxUUFKRq1arppZde0h9//JHb7UmSvvnmG352AHCd/LndAAAgb5k3b54qV66sq1ev6vTp01q3bp0mT56sadOm6dNPP1WLFi2cY59++mndf//9lupfvnxZ48aNk/R3CHVXdh4rOz755BPFxsZq8ODB6dZt2LBBJUuW9HoP2WWMUefOnVWxYkV9+eWXCg4OVqVKldKNmzVrli5cuOD8fvny5Xr11VedP/s0eXlfPcHX11fXrl3Tp59+qt69e7usmzdvnkJCQlyeJ/zt66+/VteuXVW0aFE9++yzqlOnjhwOh3799VfNnTtXy5cv1/bt23O7TX3zzTf6z3/+wx8AAOD/IfwDAFxUr15d9erVc37/8MMPa8iQIbr77rvVqVMn7d+/X+Hh4ZL+DofeDoiXL19WUFDQLXmsrDRo0CBXHz8rJ06c0Llz59SxY0c1b94803FVq1Z1+f63336TlP5n7wlpP7+8yM/PT+3atdPcuXNdwr8xRvPnz1eXLl303nvv5WKHec+hQ4fUtWtXVaxYUatXr1ZoaKhz3X333adBgwZp6dKludghACAzXPYPAMhS6dKlNX36dF28eFFz5sxxLs/oEutVq1apWbNmKlKkiAIDA1W6dGk9/PDDunz5sg4fPqxixYpJksaNG+e8vLxHjx4u9X7++Wc98sgjCgsLU/ny5TN9rDRLly5VzZo1FRAQoHLlyumtt95yWZ/2lobDhw+7LF+zZo0cDofzLQjNmjXT8uXLdeTIEZfL39NkdAl4bGysOnTooLCwMAUEBKh27dpasGBBho+zaNEivfjii4qMjFTBggXVokUL7d27N/Mn/jrr1q1T8+bNFRISoqCgIDVq1EjLly93rh87dqzzjyMjRoyQw+FQmTJl3Krtro8++khVqlRRUFCQatWqpa+//tpl/c1+fsYYzZo1S7Vr11ZgYKDCwsL0yCOP6ODBgy41YmJi1KFDB5UsWVIBAQG6/fbb1a9fP/3555/p+lm+fLlq164tf39/lS1bVtOmTbO8T7169dL69etdfg7fffedjhw5op49e2a4zcmTJ9WvXz+VLFlSfn5+Klu2rMaNG6dr1665jJs9e7Zq1aqlAgUKKCQkRJUrV9a///1v5/rLly9r2LBhKlu2rAICAlS4cGHVq1dPixYtco7ZunWrunbtqjJlyigwMFBlypTRY489piNHjqTra926dWrYsKECAgJ02223afTo0Xr//fcznPuffvqpGjZsqODgYBUoUECtW7d262z9jBkzlJiYqFmzZrkE/zQOh0OdOnVyWTZ37lzVqlXLuY8dO3bUnj17XMY0a9YswyuBevTo4TKPDx8+LIfDoWnTpmnGjBkqW7asChQooIYNG2rjxo0u2/3nP/9x9pT2lfY8/O9//1P9+vUVGhqqoKAglStXTr169cpy/wHgn4wz/wAAtzz44IPy8fHRDz/8kOmYw4cPq02bNrrnnns0d+5cFSpUSH/88Yeio6OVnJysEiVKKDo6Wvfff7969+6tp59+WpKcfxBI06lTJ3Xt2lXPPPOMEhMTb9rXjh07NHjwYI0dO1YRERH6+OOP9dxzzyk5OVnDhg2ztI+zZs1S3759deDAAbfOXu7du1eNGjVS8eLF9dZbb6lIkSJauHChevTooVOnTmn48OEu4//973+rcePGev/993XhwgWNGDFC7dq10549e+Tj45Pp46xdu1YtW7ZUzZo19cEHH8jf31+zZs1Su3bttGjRInXp0kVPP/20atWqpU6dOmngwIHq1q2b/P39Le3/zSxfvlxbtmzR+PHjVaBAAU2ZMkUdO3bU3r17Va5cOZexGf38+vXrp/nz52vQoEGaPHmyzp07p/Hjx6tRo0b65ZdfnFeTHDhwQA0bNtTTTz+t0NBQHT58WDNmzNDdd9+tX3/9Vb6+vpL+vrdBhw4d1LBhQy1evFgpKSmaMmWKTp06ZWm/WrRooaioKM2dO1eTJ0+WJH3wwQdq0qSJKlSokG78yZMndddddylfvnx6+eWXVb58eW3YsEGvvvqqDh8+rHnz5kmSFi9erP79+2vgwIGaNm2a8uXLp99//127d+921nr++ef10Ucf6dVXX1WdOnWUmJio2NhYnT171jnm8OHDqlSpkrp27arChQsrLi5Os2fP1p133qndu3eraNGikqSdO3eqZcuWqlixohYsWKCgoCC98847WrhwYbp9mDBhgl566SX17NlTL730kpKTkzV16lTdc8892rx5c7orQ663cuVKhYeHu30VzMSJE/Xvf/9bjz32mCZOnKizZ89q7NixatiwobZs2ZLhc+yO//znP6pcubLz/hyjR4/Wgw8+qEOHDik0NFSjR49WYmKiPvvsM23YsMG5XYkSJbRhwwZ16dJFXbp00dixYxUQEKAjR45o1apV2eoFAP4xDAAAxph58+YZSWbLli2ZjgkPDzdVqlRxfj9mzBhz/X8ln332mZFkduzYkWmNM2fOGElmzJgx6dal1Xv55ZczXXe9qKgo43A40j1ey5YtTcGCBU1iYqLLvh06dMhl3OrVq40ks3r1aueyNm3amKioqAx7v7Hvrl27Gn9/f3P06FGXcQ888IAJCgoy58+fd3mcBx980GXcf//7XyPJbNiwIcPHS9OgQQNTvHhxc/HiReeya9eumerVq5uSJUua1NRUY4wxhw4dMpLM1KlTb1rvRln97CWZ8PBwc+HCBeeykydPmnz58pmJEyc6l2X289uwYYORZKZPn+6y/NixYyYwMNAMHz48w8dNTU01V69eNUeOHDGSzBdffOFcV79+fRMZGWmuXLniXHbhwgVTuHDhdPMkI0899ZQJDg529h0REWGuXr1qzp49a/z9/c38+fMznKv9+vUzBQoUMEeOHHGpN23aNCPJ7Nq1yxhjzLPPPmsKFSp00x6qV69uHnrooSx7vd61a9fMpUuXTHBwsHnzzTedyx999FETHBxszpw541yWkpJiqlat6jL3jx49avLnz28GDhzoUvfixYsmIiLCdO7c+aaPHxAQYBo0aOBWr/Hx8SYwMDDdvD969Kjx9/c33bp1cy5r2rSpadq0aboaTz31lMvvY9ocr1Gjhrl27Zpz+ebNm40ks2jRIueyAQMGZDgX0n5Wab+fAPB/BZf9AwDcZoy56fratWvLz89Pffv21YIFC9Jd0u2uhx9+2O2x1apVU61atVyWdevWTRcuXNDPP/+crcd316pVq9S8eXOVKlXKZXmPHj10+fJllzOOktS+fXuX72vWrClJGV7CnSYxMVGbNm3SI488ogIFCjiX+/j4qHv37jp+/Ljbbx3IiXvvvVchISHO78PDw1W8ePEMe7/x5/f111/L4XDoiSee0LVr15xfERERqlWrlssnP5w+fVrPPPOMSpUqpfz588vX11dRUVGS5LxUPDExUVu2bFGnTp0UEBDg3DYkJETt2rWzvG89e/bUqVOn9O233+rjjz+Wn5+fHn300QzHfv3117r33nsVGRnpsi8PPPCApL+v0pCku+66S+fPn9djjz2mL774IsO3Ldx111369ttvNXLkSK1Zs0ZXrlxJN+bSpUsaMWKEbr/9duXPn1/58+dXgQIFlJiY6HLp/Nq1a3Xfffc5rwSQpHz58qlz584u9VasWKFr167pySefdOk/ICBATZs2tfwpHDezYcMGXblyxfm2njSlSpXSfffdp++//z7btdu0aeNytYw7v0tp7rzzTklS586d9d///jfPfDoBAHgb4R8A4JbExESdPXtWkZGRmY4pX768vvvuOxUvXlwDBgxQ+fLlVb58eb355puWHqtEiRJuj42IiMh02fWXT3vD2bNnM+w17Tm68fGLFCni8n3aZfkZhb408fHxMsZYehxvuLF36e/+M+r9xl5PnTolY4zCw8Pl6+vr8rVx40ZnME5NTVWrVq20ZMkSDR8+XN9//702b97sfC932mPFx8crNTX1pj97K6KiotS8eXPNnTtXc+fOVdeuXTO9SeGpU6f01VdfpduPatWqSZJzX7p37665c+fqyJEjevjhh1W8eHHVr19fMTExzlpvvfWWRowYoWXLlunee+9V4cKF9dBDD2n//v3OMd26ddPMmTP19NNPa8WKFdq8ebO2bNmiYsWKuTz3Z8+edb514no3Lkt7W8Sdd96Zbh8+/fTTDP9Icb3SpUvr0KFDNx1zfU9Sxr/PkZGROZq32fldStOkSRMtW7bM+UeQkiVLqnr16i73WgAAO+I9/wAAtyxfvlwpKSlZfjzfPffco3vuuUcpKSnaunWr3n77bQ0ePFjh4eHq2rWrW4/lzue0pzl58mSmy9ICQtrZ4aSkJJdxWQWdrBQpUkRxcXHplp84cUKSXM7CZldYWJjy5cvn9cfxpBt/fkWLFpXD4dCPP/6Y4X0I0pbFxsbql19+0fz58/XUU0851//+++8u48PCwuRwOG76s7eqV69eeuKJJ5SamqrZs2dnOq5o0aKqWbOmXnvttQzXX//HsZ49e6pnz55KTEzUDz/8oDFjxqht27bat2+foqKiFBwcrHHjxmncuHHOKw9Gjhypdu3a6bffflNCQoK+/vprjRkzRiNHjnTWTUpK0rlz51wet0iRIhne7+DG5yNtrnz22WfOKyqsaN26td5++21t3Lgxy/f9p/3+ZTZ3r5+3AQEBSkhISDcup7+jmenQoYM6dOigpKQkbdy4URMnTlS3bt1UpkwZNWzY0CuPCQC5jTP/AIAsHT16VMOGDVNoaKj69evn1jY+Pj6qX7++847baZfgWzlD545du3bpl19+cVn2ySefKCQkRHfccYckOe8WvnPnTpdxX375Zbp6mZ3Nzkjz5s21atUqZwhP8+GHHyooKMgjHw0YHBys+vXra8mSJS59paamauHChSpZsqQqVqyY48fxprZt28oYoz/++EP16tVL91WjRg1J//8fDW78A8H1nzAh/f2c3HXXXVqyZIn++usv5/KLFy/qq6++ylaPHTt2VMeOHdWrV6+b/tzatm2r2NhYlS9fPsN9yejKmODgYD3wwAN68cUXlZycrF27dqUbEx4erh49euixxx7T3r17dfnyZTkcDhlj0j0f77//vlJSUlyWNW3aVKtWrXIJy6mpqfrf//7nMq5169bKnz+/Dhw4kGH/WX3U45AhQxQcHKz+/ftnGNaNMc6bZTZs2FCBgYHpbjp4/Phx51tm0pQpU0b79u1z+QPd2bNntX79+pv2czPuHGv8/f3VtGlT580e3fnEAwD4p+LMPwDARWxsrPN9wKdPn9aPP/6oefPmycfHR0uXLk13Z/7rvfPOO1q1apXatGmj0qVL66+//tLcuXMl/X1Xdenv92VHRUXpiy++UPPmzVW4cGEVLVo02x9LFxkZqfbt22vs2LEqUaKEFi5cqJiYGE2ePNl56fadd96pSpUqadiwYbp27ZrCwsK0dOlSrVu3Ll29GjVqaMmSJZo9e7bq1q2rfPnyZRqIxowZ43wP+Msvv6zChQvr448/1vLlyzVlypQMPwotOyZOnKiWLVvq3nvv1bBhw+Tn56dZs2YpNjZWixYtsnSlRG5o3Lix+vbtq549e2rr1q1q0qSJgoODFRcXp3Xr1qlGjRr617/+pcqVK6t8+fIaOXKkjDEqXLiwvvrqK5dL5dO88soruv/++9WyZUsNHTpUKSkpmjx5soKDg9OdFXdHQECAPvvssyzHjR8/XjExMWrUqJEGDRqkSpUq6a+//tLhw4f1zTff6J133lHJkiXVp08fBQYGqnHjxipRooROnjypiRMnKjQ01Pme8/r166tt27aqWbOmwsLCtGfPHn300Udq2LChc+42adJEU6dOdf6OrF27Vh988IEKFSrk0teLL76or776Ss2bN9eLL76owMBAvfPOO85PW8iX7+/zPWXKlNH48eP14osv6uDBg7r//vsVFhamU6dOafPmzc6rETJTtmxZLV68WF26dFHt2rX17LPPqk6dOpKk3bt3a+7cuTLGqGPHjipUqJBGjx6tf//733ryySf12GOP6ezZsxo3bpwCAgI0ZswYZ93u3btrzpw5euKJJ9SnTx+dPXtWU6ZMUcGCBd3/Id4g7Y9KkydP1gMPPCAfHx/VrFlTr776qo4fP67mzZurZMmSOn/+vN588035+vqqadOm2X48AMjzcu9egwCAvCTtju9pX35+fqZ48eKmadOmZsKECeb06dPptrnxDvwbNmwwHTt2NFFRUcbf398UKVLENG3a1Hz55Zcu23333XemTp06xt/f30gyTz31lEu96+9YntljGfP33f7btGljPvvsM1OtWjXj5+dnypQpY2bMmJFu+3379plWrVqZggULmmLFipmBAwea5cuXp7vb/7lz58wjjzxiChUqZBwOh8tjKoNPKfj1119Nu3btTGhoqPHz8zO1atUy8+bNcxmTdrf///3vfy7L0+5cfuP4jPz444/mvvvuM8HBwSYwMNA0aNDAfPXVVxnW88bd/gcMGJBueVRUlPNnZ8zNf37GGDN37lxTv3595z6UL1/e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Tk6xP3m7F/bHu3XsJK88J3mlj5wyxujixYuKjIy86TjC//9TtGhR+fj46OTJky7LT58+rfDw8Ay38ff3l7+/v8uyQoUKeavFW6pgwYI5/gXwRI281EteqZGXemF/8nYv7E/e7oX9ydu9sD/erZNX+rDb/nhCXppvnpCX9icvPS95RV55TvJKHzkRGhqa5Rg+6u//8fPzU926dRUTE+OyPCYmxuVtAAAAAAAA/NNw5v86zz//vLp376569eqpYcOGevfdd3X06FE988wzud0aAAAAAADZRvi/TpcuXXT27FmNHz9ecXFxql69ur755htFRUXldmu3jL+/v8aMGZPu7Qy3ukZe6iWv1MhLvbA/ebsX9idv98L+5O1e2B/v1skp9idv98L+eLeOneSV5ySv9HGrcLd/AAAAAABsjvf8AwAAAABgc4R/AAAAAABsjvAPAAAAAIDNEf4BAAAAALA5wj8kST/88IPatWunyMhIORwOLVu2zHKNiRMn6s4771RISIiKFy+uhx56SHv37rVUY/bs2apZs6YKFiyoggULqmHDhvr2228t93JjXw6HQ4MHD7a03dixY+VwOFy+IiIiLD/+H3/8oSeeeEJFihRRUFCQateurW3btrm9fZkyZdL14XA4NGDAAEt9XLt2TS+99JLKli2rwMBAlStXTuPHj1dqaqqlOhcvXtTgwYMVFRWlwMBANWrUSFu2bMl0fFZzyxijsWPHKjIyUoGBgWrWrJl27dpluc6SJUvUunVrFS1aVA6HQzt27LBU4+rVqxoxYoRq1Kih4OBgRUZG6sknn9SJEycs9TF27FhVrlxZwcHBCgsLU4sWLbRp0ybL+3O9fv36yeFw6I033rBUo0ePHunmTYMGDSz3sWfPHrVv316hoaEKCQlRgwYNdPToUUt1MprDDodDU6dOdbvGpUuX9Oyzz6pkyZIKDAxUlSpVNHv2bEt9nDp1Sj169FBkZKSCgoJ0//33a//+/S5j3DmWZTVv3anhzpzNqo4789adXrKat1aP75nNWXfqZDVv3e3lZvPWnRruzFl36mQ1b92pkdW8zer/TnePs1nVcWfOekJWfbh7nLXymiKzOXsr9kdy7zh7K3px5zibVQ13jrPektFrPqvz9sYa7r4+yKoPd+etnWX0vLhzrL0VfeTmvL2VCP+QJCUmJqpWrVqaOXNmtmusXbtW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3pn+oehmfZw/f96cPn3aGGPMXXfdZfr3759uTGbHMivz1p3joTtzNqs67sxbq8fmjOZtZjWsztns9HLjvM2shpV5604f7szZzOpYmbfu9OLOvE2T9n9ndo+zN9a5Xm685z+r1wJZHWdvrJOd46wnpfWR3eOsN3rJznH2xhrXszJfs8vKa77M5q27NW52nM3ua0935+0/lZXnxd3XB97u41bM29yU3923BwBZMcZo4MCBWrp0qdasWaOyZct6rG7ae3Hc0bx583R35e/Zs6cqV66sESNGyMfHJ1t9JCUlac+ePbrnnnvc3qZx48bpPrJp3759ioqKsvz48+bNU/HixdWmTRvL20p/3602Xz7X23z4+PhY/qi/NMHBwQoODlZ8fLxWrFihKVOmWK5RtmxZRUREKCYmRnXq1JH09/vg1q5dq8mTJ2err5y4evWqOnfurP3792v16tUqUqSIR+pancPdu3dP93601q1bq3v37urZs2e2+zh79qyOHTumEiVKuDXez89Pd955p8fmsCR98MEHqlu3ruX3OF69elVXr1712BwODQ2V9Pd9PbZu3apXXnnFuS6rY5k789ZTx0N36mQ1b7Pby/XzNqsa7s7Z7PRy47zNqoY789ZKHzebs1nVcWfeWunlZvM2o96SkpJyfJy1evzylqz6cLfPtHHeOs66K60Pbxxns9tLTo6zGT3/VuZrdnniNZ87NbI6zma3j7zy++UtVp6X7L4+8HQft2Le5qpb+IcG5GEXL14027dvN9u3bzeSnO87y+xu0Rn517/+ZUJDQ82aNWtMXFyc8+vy5ctu1xg1apT54YcfzKFDh8zOnTvNv//9b5MvXz6zcuXK7OyWU3Yu+x86dKhZs2aNOXjwoNm4caNp27atCQkJMYcPH3a7xubNm03+/PnNa6+9Zvbv328+/vhjExQUZBYuXGipl5SUFFO6dGkzYsQIS9td76mnnjK33Xab+frrr82hQ4fMkiVLTNGiRc3w4cMt1YmOjjbffvutOXjwoFm5cqWpVauWueuuu0xycnKG47OaW5MmTTKhoaFmyZIl5tdffzWPPfaYKVGihLlw4YKlOmfPnjXbt283y5cvN5LM4sWLzfbt201cXJxbNa5evWrat29vSpYsaXbs2OEyh5OSktyqcenSJTNq1CizYcMGc/jwYbNt2zbTu3dv4+/v73IHWXf2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Vq2ann/+eW3cuNE57ujRo+rQoYMKFCigggULqnPnzjp16lS65/l6gwcPVrNmzZzfN2vWTIMGDdLw4cOdz/P18zztd7pjx47prrJo3769li1b5vIHLwBA9hH+AQC3lI+PjyZMmKC3335bx48fz1GtVatW6cSJE/rhhx80Y8YMjR07Vm3btlVYWJg2bdqkZ555Rs8884yOHTvmst0LL7ygoUOHavv27WrUqJHat2+vs2fPSpLi4uLUtGlT1a5dW1u3blV0dLROnTqlzp07u9RYsGCB8ufPr59++klz5szJsL8333xT06dP17Rp07Rz5061bt1a7du31/79+52PVa1aNQ0dOlRxcXEaNmzYTfe3Z8+ezpAuSXPnzlWvXr3SjXvppZc0b948zZ49W7t27dKQIUP0xBNPaO3atZL+fg/47t279e2332rPnj2aPXu2ihYtKkl666239OWXX+q///2v9u7dq4ULF7oEsnz58umtt95SbGysFixYoFWrVmn48OHO9T/99JOeeeYZPffcc9qxY4datmyp1157zaW/FStW6IknntCgQYO0e/duzZkzR/Pnz3eO++yzz/T6669rzpw52r9/v5YtW6YaNWrc9Lm50erVq3XgwAGtXr1aCxYs0Pz58zV//nxLNTIyffp01atXT9u3b1f//v31r3/9S7/99pvLmBEjRmjQoEHas2ePWrdurffee08vvviiXnvtNe3Zs0cTJkzQ6NGjtWDBAuc2ISEhmj9/vnbv3q0333xT7733nl5//XXn+v/+978aM2aMXnvtNW3dulUlSpRI9weEG8XHxys2Nlb16tVzLjt37pyio6M1YMAABQcHp9sm7Y80xhg99NBDOnfunNauXauYmBgdOHBAXbp0sfycLViwQMHBwdq0aZOmTJmi8ePHKyYmRpKcV1XMmzcv3VUW9erV09WrV51XYwAAcsgAAHCLPPXUU6ZDhw7GGGMaNGhgevXqZYwxZunSpeb6/5LGjBljatWq5bLt66+/bqKiolxqRUVFmZSUFOeySpUqmXvuucf5/bVr10xwcLBZtGiRMcaYQ4cOGUn/X3v3H1NV/f8B/MlFAxryQzT5EUMvYvzmDrgigdxS6GqEbk0kRhOKaAgCEaGrBmZYcRXQzSEu2gSMuplFpQQTyBo/Rg6TErnRLAU2a7GktEzrct+fP9o9X44XFdCN7/D5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of threads is 182698\n", + "the number of messages is 375933\n", + " the average number of messages per thread is 2.0576744135130105\n" + ] + } + ], + "source": [ + "# Get the count of each Thread ID\n", + "# Filter out rows where patient message and actual response are not present\n", + "threads_to_keep = data_sample_sub_cols[data_sample_sub_cols[\"Actual Response Sent to Patient\"].notna()][\"Thread ID\"].unique()\n", + "answer_question_paired_data_dedup = remove_duplicate_messages(threads_to_keep = threads_to_keep).dropna(subset=[\"Patient Message\"]) # the main df for embedding\n", + "answer_question_paired_data_dedup[\"Patient Message\"] = answer_question_paired_data_dedup[\"Patient Message\"].str.replace(\"<13><10>\", \"\")\n", + "answer_question_paired_data_dedup[\"Actual Response Sent to Patient\"] = answer_question_paired_data_dedup[\"Actual Response Sent to Patient\"].str.replace(\"<13><10>\", \"\")\n", + "thread_counts_with_response = answer_question_paired_data_dedup['Thread ID'].value_counts()\n", + "\n", + "# Now, get the frequency of each count (i.e., how many threads have count=1, count=2, etc.)\n", + "count_frequency_with_response = thread_counts_with_response.value_counts().sort_index()\n", + "\n", + "# Plot\n", + "plt.figure(figsize=(12,10))\n", + "plt.bar(count_frequency_with_response.index, count_frequency_with_response.values)\n", + "plt.xlabel('Number of Messages in Thread (Count)')\n", + "plt.ylabel('Number of Threads (Frequency)')\n", + "plt.title('Distribution of Thread Message Counts')\n", + "plt.xticks(count_frequency_with_response.index) # Show all counts on x-axis if not too many\n", + "plt.show()\n", + "print(f\"the number of threads is {len(thread_counts_with_response)}\")\n", + "print(f\"the number of messages is {thread_counts_with_response.sum()}\")\n", + "print(f\" the average number of messages per thread is {thread_counts_with_response.mean()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# save the df to box: has permission trouble\n", + "# path_to_save = \"/Users/wenyuanchen/Library/CloudStorage/Box-Box/ART_PerMessage_1_17_Updated_dedup_embedding.xlsx\"\n", + "# answer_question_paired_data_dedup.to_excel(path_to_save, index=True)\n", + "# answer_question_paired_data_dedup.to_excel(\"../data/answer_question_paired_data_dedup.xlsx\", index=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 291, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "there are 3791 unique recipient each with average 68.06963861777895 threads\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 291, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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69evQyaT4cMPP0TZsmX1+vvExEQ0bNhQel74Sk7BKzgi+562EasFyWQy3Lx5U3qu63OlWKiUmjRpEslkMrK1taWPP/6YGjRoQLa2tmRkZEQTJkxQiU1ISKCxY8dS586dydfXl8aOHUunTp1SiYmPj6c6deqQkZERyWQykslkZGRkRHXr1qWEhAS9683JyaH58+dTgwYNyNramsqUKUMNGjSgBQsWUHZ2thSXlZVFoaGhVL9+fbK0tCRLS0uqV68ehYaG0qtXr/QuLy0tjUaOHEn29vZkZGRERkZGZG9vT19//TWlpaXp1d7ly5eTubk5yWQyKlu2LMnlcpLJZGRubk7Lly8nIqLg4GChhz5tLSgjI4PWrFlDTZo0IWNjY2rWrBktWrRIr/Li4+OpZs2aUhuVba5ZsyadPHlSitu1axdVqFBBWh/KR4UKFWj37t16x4luM9E4kXoPHz4s9FDaunUrffbZZ1SzZk2qWbMm+fn50datWzVuC30lJSXRxIkTycHBgUxNTfVad4X9888/FBQURBUrViQLCwv67LPPir1cN27coGnTplHlypWpbNmy1KdPH9qxY0ex44raR9/Es2fPaPny5dSgQQMyMjJ66+14G3S1gUj7thU9bkXrFT03FmcfLYl9IDk5mTp16kTGxsbS8hkbG1Pnzp0pOTlZr/beunVL6EFEtG3bNurWrRvVrl2b6tSpQ926daPt27frtexKop+jxVFqkxkiohMnTtDo0aOpY8eO1LFjRxo9ejSdOHFCJWbixIkkk8nIxsaG6tevT/Xq1aMyZcqQkZERTZo0iYiILl26RGXKlKHGjRvTli1b6Ny5c3T27FnavHkzffLJJ2RjY0OXLl0Srvfly5fUrFkzMjIyonbt2tGYMWNo9OjR1K5dOzIyMqIWLVpQZmamcDtFy3vy5AlVr16drK2taejQobR48WJatGgRDRkyhKytralGjRr09OlTofb++OOPZGxsTOPHj6f79+9Ly3L//n0aO3YsmZiY0N69e4u76XQ6cuQI9e/fn8qUKUN169YlY2NjOnr06BuVefbsWYqJiaGYmBg6e/asynvHjh0jU1NT+vzzz+n48eOUlpZGaWlpdOzYMerevTuZmZnR8ePHheNEt5lonGi979rz588pIiKCmjZtSkZGRtS2bVtas2YNPXr0SO82vHz5kqKioqhFixZk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9my1+3MUnOiOiFCnTh389ttvajfQK/hctAf+27669ODBA6xatUqaKrwknD17Fj4+PrCxscGAAQMQEBCgdXj9Bx98IBRnZ2cntM0KTrFe1L5y9OhRDBw4EL179wagvj1WrlyJmJgYjR0sNSXcot+iNElKSpKu4Dx9+hQ5OTnCf1sSowFfvHiBM2fOaD2x67t8d+/excyZMxEZGVkicbr20eKuP02T5hUnmRFtx7uga9sWdPbsWTRs2FCoXOU51N/fX+v9ioDXozFjY2Mxd+5cPHv2DHPmzEGdOnWwY8cOmJmZ4cGDB6hYsaLODsD6nqeUy9e/f380aNBAa9ybTHuQn5+P33//HREREdizZw9kMpl0PgGALVu2oEuXLmrdBbRNxFk4sSx4pU/0c0Uv/0XHnPdFTk4OZWRkSM87duwoTa60a9euIidnun79OlWsWJFGjRpFRERHjhyhMmXK0IgRI/Sut7AyZcrQjRs31F6/du0anT59WuW1gwcPkpeXFzVu3Jjmzp1LRETz5s2jmjVrkoODA40dO1bj7eT1qbc4caJlFfTkyRNavHgx1atXT7ituiQmJpKRkdEblZeZmUlRUVG0fPlyunbtGhERZWVlUXR0NLVr144sLS3p888/p99++01tMirRuJLeZpUqVaLExEStcZcvXyY7Ozud5Z87d45GjRpFJ0+epN9++03lvfXr15OrqytVqFCBhgwZQq9evSqyrJycHPr555911nn58mWqVq2acOdkXZT7gC6iyydaXknHiS7f9evXqXXr1iSTyWjDhg20a9cu2rVrF1lZWdHq1aul5+vXry/R5StJyjboUtSyaTpuReuNiYmhDh06kIWFBXXr1o327Nmj0ilbqUqVKnTo0CHp+ePHj8nDw4PatWtHr169otTU1LeyjhMSEmj48OFUtmxZatCgAS1btkyl464o0fX88OFDWrhwocprxTnHK505c0bttTcpT5NSmczs3buXNmzYoPLanDlzyNzcnIyNjcnHx0faEe7fv08hISFUvXp1cnJyokmTJqn1ylY6f/482dnZUf/+/cnW1paGDh1a7HoL0rZRu3btqjI75M2bN8nS0pLatWtHo0ePpjJlytDixYul9wuOQGncuDGtWLGCFAqF1vX0rpOZgvRtqzbKk4RoeRMmTKDRo0dLcVlZWfTxxx+TqakpyeVysra2puPH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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "stats = answer_question_paired_data_dedup.groupby(\"Recipient Names\")[\"Thread ID\"].nunique()\n", + "print(f\"there are {len(stats)} unique recipient each with average {np.mean(stats.values)} threads\")\n", + "stats.sort_values(ascending=False)[:50].plot(kind=\"bar\")" + ] + }, + { + "cell_type": "code", + "execution_count": 293, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "there are 104 unique department, each with average 1756.8365384615386 threads\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 293, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAANoCAYAAADEZzDPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdYFNf7NvB76R0FFSSgYsdujCJq7L33KIq9VxRjjb1r7C02FHvvRuyixl6w995Qo4iCCArP+4fvzo+FXRgMfhPX+3Ndc+nuHGbm7J6ZfebMKRoRERAREREZMZN/+wCIiIiIvjYGPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9FId8Bw+fBh16tSBm5sbNBoNtmzZoqz7+PEjBgwYgIIFC8LW1hZubm5o1aoVnj59qrONmJgY9OzZExkyZICtrS3q1q2Lx48f66QJDw+Hn58fHB0d4ejoCD8/P7x580YnzcOHD1GnTh3Y2toiQ4YM6NWrF2JjY1ObJSIiIjJyqQ54oqKiULhwYcyePTvJuvfv3+PcuXMYOnQozp07h02bNuHmzZuoW7euTjp/f39s3rwZa9aswdGjRxEZGYnatWsjLi5OSePr64vQ0FAEBwcjODgYoaGh8PPzU9bHxcWhVq1aiIqKwtGjR7FmzRps3LgRAQEBqc0SERERGTnNP5k8VKPRYPPmzahfv77BNKdPn0aJEiXw4MEDZMmSBREREciYMSOWL1+OX375BQDw9OlTeHh44M8//0S1atVw7do15MuXDydOnIC3tzcA4MSJE/Dx8cH169eRJ08e7Nq1C7Vr18ajR4/g5uYGAFizZg3atGmDFy9ewMHBIcXjj4+Px9OnT2Fvbw+NRvOlHwMRERH9D4kI3r17Bzc3N5iYqKu7MfvKx4SIiAhoNBqkS5cOAHD27Fl8/PgRVatWVdK4ubmhQIECOHbsGKpVq4bjx4/D0dFRCXYAoGTJknB0dMSxY8eQJ08eHD9+HAUKFFCCHQCoVq0aYmJicPbsWVSoUCHJscTExCAmJkZ5/eTJE+TLl+8r5JqIiIi+tkePHsHd3V1V2q8a8Hz48AEDBw6Er6+vUuMSFhYGCwsLpE+fXieti4sLwsLClDSZMmVKsr1MmTLppHFxcdFZnz59elhYWChpEhs/fjxGjhyZ5P1Hjx6pqhEiIiKif9/bt2/h4eEBe3t71X/z1QKejx8/olmzZoiPj8fcuXNTTC8iOo+V9D1i+pI0CQ0aNAh9+/ZVXms/MAcHBwY8RERE35jUNEf5Kt3SP378iKZNm+LevXvYu3evTjDh6uqK2NhYhIeH6/zNixcvlBobV1dXPH/+PMl2X758qZMmcU1OeHg4Pn78mKTmR8vS0lIJbhjkEBERfT/SPODRBju3bt3Cvn374OzsrLO+WLFiMDc3x969e5X3nj17hsuXL6NUqVIAAB8fH0RERODUqVNKmpMnTyIiIkInzeXLl/Hs2TMlzZ49e2BpaYlixYqldbaIiIjoG5bqR1qRkZG4ffu28vrevXsIDQ2Fk5MT3Nzc0LhxY5w7dw47duxAXFycUgvj5OQECwsLODo6on379ggICICzszOcnJzQr18/FCxYEJUrVwYAeHl5oXr16ujYsSPmz58PAOjUqRNq166NPHnyAACqVq2KfPnywc/PD5MnT8br16/Rr18/dOzYkTU3REREpEtS6eDBgwIgydK6dWu5d++e3nUA5ODBg8o2oqOjpUePHuLk5CTW1tZSu3Ztefjwoc5+Xr16JS1atBB7e3uxt7eXFi1aSHh4uE6aBw8eSK1atcTa2lqcnJykR48e8uHDB9V5iYiIEAASERGR2o+BiIiI/iVf8vv9j8bh+da9ffsWjo6OiIiIYK0QERHRN+JLfr85lxYREREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0Uj15qDHLNnBnkvfuT6j1LxwJERERpSXW8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaP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ERERGT0GPERERGT0zP7tA6C0lW3gziTv3Z9Q6184EiIiov8O1vAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9L5KwPPkyRO0bNkSzs7OsLGxQZEiRXD27FllvYhgxIgRcHNzg7W1NcqXL48rV67obCMmJgY9e/ZEhgwZYGtri7p16+Lx48c6acLDw+Hn5wdHR0c4OjrCz88Pb968+RpZIiIiom9Ymgc84eHhKF26NMzNzbFr1y5cvXoVU6ZMQbp06ZQ0kyZNwtSpUzF79mycPn0arq6uqFKlCt69e6ek8ff3x+bNm7FmzRocPXoUkZGRqF27NuLi4pQ0vr6+CA0NRXBwMIKDgxEaGgo/P7+0zhIRERF948zSeoMTJ06Eh4cHlixZoryXLVs25f8igunTp2PIkCFo2LAhACAoKAguLi5YtWoVOnfujIiICCxevBjLly9H5cqVAQArVqyAh4cH9u3bh2rVquHatWsIDg7GiRMn4O3tDQBYuHAhfHx8cOPGDeTJkyets0ZERETfqDSv4dm2bRt++uknNGnSBJkyZULRokWxcOFCZf29e/cQFhaGqlWrKu9ZWlqiXLlyOHbsGADg7Nmz+Pjxo04aNzc3FChQQElz/PhxODo6KsEOAJQsWRKOjo5KmsRiYmLw9u1bnYWIiIiMX5oHPHfv3sW8efOQK1cu7N69G126dEGvXr2wbNkyAEBYWBgAwMXFRefvXFxclHVhYWGwsLBA+vTpk02TKVOmJPvPlCmTkiax8ePHK+19HB0d4eHh8c8yS0RERN+ENA944uPj8eOPP2LcuHEoWrQoOnfujI4dO2LevHk66TQajc5rEUnyXmKJ0+hLn9x2Bg0ahIiICGV59OiR2mwRERHRNyzNA57MmTMjX758Ou95eXnh4cOHAABXV1cASFIL8+LFC6XWx9XVFbGxsQgPD082zfPnz5Ps/+XLl0lqj7QsLS3h4OCgsxAREZHxS/OAp3Tp0rhx44bOezdv3kTWrFkBAJ6ennB1dcXevXuV9bGxsQgJCUGpUqUAAMWKFYO5ublOmmfPnuHy5ctKGh8fH0RERODUqVNKmpMnTyIiIkJJQ0RERAR8hV5affr0QalSpTBu3Dg0bdoUp06dwoIFC7BgwQIAnx9D+fv7Y9y4cciVKxdy5cqFcePGwcbGBr6+vgAAR0dHtG/fHgEBAXB2doaTkxP69euHggULKr22vLy8UL16dXTs2BHz588HAHTq1Am1a9dmDy0iIiLSkeYBT/HixbF582YMGjQIo0aNgqenJ6ZPn44WLVooafr374/o6Gh069YN4eHh8Pb2xp49e2Bvb6+kmTZtGszMzNC0aVNER0ejUqVKWLp0KUxNTZU0K1euRK9evZTeXHXr1sXs2bPTOktERET0jUvzgAcAateujdq1axtcr9FoMGLECIwYMcJgGisrK8yaNQuzZs0ymMbJyQkrVqz4J4dKRERE3wHOpUVERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPS+yjg89N+XbeDOJO/dn1DrXzgSIiKir481PERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo/j8FCyOF4PEREZA9bwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaP3dIpTajtvs5u7kRE9G9gDQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo+Nluk/iY2biYgoLbGGh4iIiIwea3jom8aaICIiUoM1PERERGT0GPAQERGR0eMjLfou8NEXEdH3jTU8REREZPRYw0OUQOKaINYCEREZB9bwEBERkdFjwENERERGj4+0iFKJDaCJiL49rOEhIiIio8eAh4iIiIweAx4iIiIyegx4iIiIyOgx4CEiIiKjx4CHiIiIjB67pRN9Jey+TkT038EaHiIiIjJ6rOEh+pexJoiI6OtjDQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERu+rBzzjx4+HRqOBv7+/8p6IYMSIEXBzc4O1tTXKly+PK1eu6PxdTEwMevbsiQwZMsDW1hZ169bF48ePddKEh4fDz88Pjo6OcHR0hJ+fH968efO1s0RERETfmK8a8Jw+fRoLFixAoUKFdN6fNGkSpk6ditmzZ+P06dNwdXVFlSpV8O7dOyWNv78/Nm/ejDVr1uDo0aOIjIxE7dq1ERcXp6Tx9fVFaGgogoODERwcjNDQUPj5+X3NLBEREdE36KsFPJGRkWjRogUWLlyI9OnTK++LCKZPn44hQ4agYcOGKFCgAIKCgvD+/XusWrUKABAREYHFixdjypQpqFy5MooWLYoVK1bg0qVL2LdvHwDg2rVrCA4OxqJFi+Dj4wMfHx8sXLgQO3bswI0bN75WtoiIiOgb9NUCnu7du6NWrVqoXLmyzvv37t1DWFgYqlatqrxnaWmJcuXK4dixYwCAs2fP4uPHjzpp3NzcUKBAASXN8ePH4ejoCG9vbyVNyZIl4ejoqKRJLCYmBm/fvtVZiL4V2QbuTLIQEZE6X2XgwTVr1uDcuXM4ffp0knVhYWEAABcXF533XVxc8ODBAyWNhYWFTs2QNo3278PCwpApU6Yk28+UKZOSJrHx48dj5MiRqc8QERERfdPSvIbn0aNH6N27N1asWAErKyuD6TQajc5rEUnyXmKJ0+hLn9x2Bg0ahIiICGV59OhRsvsjIiIi45DmAc/Zs2fx4sULFCtWDGZmZjAzM0NISAhmzpwJMzMzpWYncS3MixcvlHWurq6IjY1FeHh4smmeP3+eZP8vX75MUnukZWlpCQcHB52FiIiIjF+aBzyVKlXCpUuXEBoaqiw//fQTWrRogdDQUGTPnh2urq7Yu3ev8jexsbEICQlBqVKlAADFihWDubm5Tppnz57h8uXLShofHx9ERETg1KlTSpqTJ08iIiJCSUNEREQEfIU2PPb29ihQoIDOe7a2tnB2dlbe9/f3x7hx45ArVy7kypUL48aNg42NDXx9fQEAjo6OaN++PQICAuDs7AwnJyf069cPBQsWVBpBe3l5oXr16ujYsSPmz58PAOjUqRNq166NPHnypHW2iIiI6Bv2r8yW3r9/f0RHR6Nbt24IDw+Ht7c39uzZA3t7eyXNtGnTYGZmhqZNmyI6OhqVKlXC0qVLYWpqqqRZuXIlevXqpfTmqlu3LmbPnv0/zw8RERH9t/1PAp5Dhw7pvNZoNBgxYgRGjBhh8G+srKwwa9YszJo1y2AaJycnrFixIo2OkoiIiIwV59IiIiIio8eAh4iIiIweAx4iIiIyegx4iIiIyOgx4CEiIiKjx4CHiIiIjB4DHiIiIjJ6DHiIiIjI6DHgISIiIqPHgIeIiIiM3r8ylxYRfT3ZBu5M8t79CbX+hSMhIvrvYA0PERERGT0GPERERGT0GPAQERGR0WMbHqLvFNv6ENH3hDU8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGj+PwEFGy1I7Xw3F9iOi/jDU8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0OPEhE/1McoJCI/g0MeIjoP4mBERGlJT7SIiIiIqPHGh4i+qaxJoiI1GANDxERERk91vAQ0XeBNUFE3zfW8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGj93SiYj+P3ZdJzJerOEhIiIio8eAh4iIiIweH2kREaUSH30RfXtYw0NERERGjwEPERERGT0+0iIi+kr46IvovyPNa3jGjx+P4sWLw97eHpkyZUL9+vVx48YNnTQighEjRsDNzQ3W1tYoX748rly5opMmJiYGPXv2RIYMGWBra4u6devi8ePHOmnCw8Ph5+cHR0dHODo6ws/PD2/evEnrLBEREdE3Ls0DnpCQEHTv3h0nTpzA3r178enTJ1StWhVRUVFKmkmTJmHq1KmYPXs2Tp8+DVdXV1SpUgXv3r1T0vj7+2Pz5s1Ys2YNjh49isjISNSuXRtxcXFKGl9fX4SGhiI4OBjBwcEIDQ2Fn59fWmeJiOiryjZwZ5KFiNJWmj/SCg4O1nm9ZMkSZMqUCWfPnkXZsmUhIpg+fTqGDBmChg0bAgCCgoLg4uKCVatWoXPnzoiIiMDixYuxfPlyVK5cGQCwYsUKeHh4YN++fahWrRquXbuG4OBgnDhxAt7e3gCAhQsXwsfHBzdu3ECePHnSOmtERET0jfrqjZYjIiIAAE5OTgCAe/fuISwsDFWrVlXSWFpaoly5cjh27BgA4OzZs/j48aNOGjc3NxQoUEBJc/z4cTg6OirBDgCULFkSjo6OSprEYmJi8PbtW52FiIiIjN9XbbQsIujbty/KlCmDAgUKAADCwsIAAC4uLjppXVxc8ODBAyWNhYUF0qdPnySN9u/DwsKQKVOmJPvMlCmTkiax8ePHY+TIkf8sU0RE/xI2gib6cl+1hqdHjx64ePEiVq9enWSdRqPReS0iSd5LLHEafemT286gQYMQERGhLI8ePVKTDSIiIvrGfbWAp2fPnti2bRsOHjwId3d35X1XV1cASFIL8+LFC6XWx9XVFbGxsQgPD082zfPnz5Ps9+XLl0lqj7QsLS3h4OCgsxAREZHxS/OAR0TQo0cPbNq0CQcOHICnp6fOek9PT7i6umLv3r3Ke7GxsQgJCUGpUqUAAMWKFYO5ublOmmfPnuHy5ctKGh8fH0RERODUqVNKmpMnTyIiIkJJQ0RERAR8hTY83bt3x6pVq7B161bY29srNTmOjo6wtraGRqOBv78/xo0bh1y5ciFXrlwYN24cbGxs4Ovrq6Rt3749AgIC4OzsDCcnJ/Tr1w8FCxZUem15eXmhevXq6NixI+bPnw8A6NSpE2rXrs0eWkT0XWNbH6Kk0jzgmTdvHgCgfPnyOu8vWbIEbdq0AQD0798f0dHR6NatG8LDw+Ht7Y09e/bA3t5eST9t2jSYmZmhadOmiI6ORqVKlbB06VKYmpoqaVauXIlevXopvbnq1q2L2bNnp3WWiIiI6BuX5gGPiKSYRqPRYMSIERgxYoTBNFZWVpg1axZmzZplMI2TkxNWrFjxJYdJRPTdY00QfU84lxYRESWLgREZAwY8RESUJtQGRgyg6N/w1UdaJiIiIvq3sYaHiIj+k1gTRGmJNTxERERk9BjwEBERkdHjIy0iIvqm8dEXqcEaHiIiIjJ6DHiIiIjI6DHgISIiIqPHNjxERPRdSNzWh4Mifl8Y8BAREaVSWo8qzUDr62PAQ0RE9I1gYPTlGPAQEREZGQZGSTHgISIi+k59T4ERe2kRERGR0WPAQ0REREaPAQ8REREZPQY8REREZPTYaJmIiIiSZQyNm1nDQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY6NlIiIiShP/5cbNrOEhIiIio8eAh4iIiIweAx4iIiIyemzDQ0RERP9Tatv6pGWbINbwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERo8BDxERERk9BjxERERk9BjwEBERkdFjwENERERGjwEPERERGT0GPERERGT0GPAQERGR0WPAQ0REREaPAQ8REREZPQY8REREZPQY8BAREZHRY8BDRERERu+bD3jmzp0LT09PWFlZoVixYjhy5Mi/fUhERET0H/NNBzxr166Fv78/hgwZgvPnz+Pnn39GjRo18PDhw3/70IiIiOg/5JsOeKZOnYr27dujQ4cO8PLywvTp0+Hh4YF58+b924dGRERE/yFm//YBfKnY2FicPXsWAwcO1Hm/atWqOHbsmN6/iYmJQUxMjPI6IiICAPD27VsAQHzM+yR/o12npSYN0xlPuv/ysTFd2qf7Lx8b06V9uv/ysTFd8um0aUUkyXqD5Bv15MkTASB//fWXzvtjx46V3Llz6/2b4cOHCwAuXLhw4cKFixEsjx49Uh03fLM1PFoajUbntYgkeU9r0KBB6Nu3r/I6Pj4er1+/hrOzs/I3b9++hYeHBx49egQHBweD+/2e0v2Xj43pWAaYjt8t031/ZUBE8O7dO7i5uRn8u8S+2YAnQ4YMMDU1RVhYmM77L168gIuLi96/sbS0hKWlpc576dKl05vWwcEh2S/ge0z3Xz42pvvfpPsvHxvT/bN0/+VjY7r/Tbr/8rHpS+fo6Jji3yT0zTZatrCwQLFixbB3716d9/fu3YtSpUr9S0dFRERE/0XfbA0PAPTt2xd+fn746aef4OPjgwULFuDhw4fo0qXLv31oRERE9B/yTQc8v/zyC169eoVRo0bh2bNnKFCgAP78809kzZr1i7dpaWmJ4cOHJ3n09T2n+y8fG9P9b9L9l4+N6f5Zuv/ysTHd/ybdf/nYUpMuJRqR1PTpIiIiIvr2fLNteIiIiIjUYsBDRERERo8BDxERERk9BjxERERk9L7bgMfU1BQvXrz4x9sREWU7b9++RXx8fJI0cXFxeucISU5Kx/bp0yecOnVKdbpz586luM/t27en6hgNuXTpEvz9/VNM9+rVK0yfPh2Aus/u1KlTiIuLU9Ylbm8fExODdevWffmBA/jw4QOCgoIwd+5c3Lp1CwDQqFEjvHr16h9tN6FZs2apSrdu3TrExsYqr+/fv6+T//fv32PSpEl6//ZL86H2Mw4PD8esWbP0luuIiAiD6wxJq7KX0KJFi3D37t1k0zx9+hT9+vUzmI9ff/0Vz58/T/NjU1sGvoSI4O+//07yXau5BnwN0dHR2LZtG969e5dk3du3b7Ft2zbExMRg3759iI6O/p8fX8WKFfHmzZsU06n9zr7md6vPs2fP0KNHD1VpAwICdK4pXyrh715qPHnyBDNnzkSPHj3Qs2dPzJo1C0+ePFHWlylTBsOGDcOBAwfw4cOHf3ycSXzJPFbGQKPRyPPnz1NMZ21tLS9evFBeV6tWTZ4+faq8DgsLExMTE9m0aZPkypVLoqKikmwjKipKcufOLdu2bZORI0eqWkxMTHSOL2/evPLgwYMk+1WbztzcXEaNGiVxcXEG82phYSHt2rWTd+/epfi5JBYRESF//PGHFC9eXDQajRQuXFhvuvj4eAkODpYmTZqIhYWFZMiQQfVnlziv9vb2cufOnSR5PXHihPz555862wkKCpJs2bJJxowZpWPHjvLhwwfp16+f9OrVS0kTExMjRYoUEXNzc3F0dBRbW1s5duyY+Pj4iIuLi2zbti3Vn4s+6dOnl8qVK6c4B4za/KZlPtTuc9SoUdK4cWOD22nSpImMGTNGatSoIW/evFHeHzNmjISHhyuv//77b/Hy8lJd9h48eKBqERGxsbERExMT8fDwkFatWsmSJUt0zg0RkYCAAOnYsaPB/XXu3Fn69+8vN2/elGbNmklERESSNG/evJHmzZsrn9PChQulVatWEhgYKCIia9askbx584qnp6cMGzZMRNSXgYkTJ8r79++V1yEhIfLhwwfl9du3b6Vr164iIvLs2TPx8/MTR0dH5dqQLl06adu2rYSFham6BqR2n3FxcbJ48WKpVauW5M+fXwoUKCB16tSRoKAgiY+PFxGR6dOnS8WKFQ3ur1KlSjJ79mzRaDRiaWkpP//8swwbNkwOHjwoMTExX3x8asuK2t8Ctd+Z2nRdu3bVKe/Lli3TeR0eHi41atQQEZErV67I7NmzZf78+cr58/LlS/H39xcrKyvx8vJS/u7mzZsyefJk6d69u/To0UOmTJmilE1PT0/Jly+fnDt3LtljU/u7FxISomoREZkzZ45YWlqKRqORdOnSiaOjo/Kdz5kzR0RE2rVrJzly5BCNRiNWVlZSrlw5GTlypBw+fFhiY2OTPWY1GPCkMp2dnV2SHwCNRiNVqlSRhQsXGtzO4sWLpWrVqlKkSBGDS9GiRZWLtNr9qk23c+dOcXd3lxIlSsiNGzf0HmNoaKgULVpUsmXLJocOHUrxsxEROXTokPj5+SnHPWDAALl161aSdPfu3ZOhQ4eKh4eHmJiYiJ+fn+zdu1c+ffqk+rNTm9fq1avLhAkTlPcvXrwoZmZm0qFDB5kyZYq4urrK8OHDJX/+/LJ161YlXWBgoKRPn17u378v8fHx0qZNG6lZs6bEx8fLpEmTxNraWtq1aydv3741eKxnz55N8TN78uSJ1KpVS9KlSyfLli0zmE5Nfk1MTNI0H2o/48KFC8u+ffsMHvu+ffukSJEiqgMotWVPo9EoP+YJl4Tvm5qaiohIbGysHD58WEaPHi0VK1ZUyqinp6e0b99eVqxYIXny5JEjR44Y3N9ff/0l+fLlk44dO8qvv/5qMF3//v2lS5cuMm3aNLG1tZWGDRtK5syZZcyYMeLs7CxjxoyRUaNGiaOjo8yfP191GVD7+UVERIinp6dkzJhR/P395Y8//pB58+ZJz549JUOGDJIrVy7ZsGFDiteA1OwzPj5eatWqJRqNRooUKSLNmjWTX375RQoVKiQajUbq1asnIiLFixdPNsjevn27FC9eXB4/fizLli2T9u3bS/bs2UWj0Yi1tbVUrFhRRo8eLUePHpWPHz+qPj61ZUXtb4Ha7yytv9vt27eLhYWFcr3PkSOHHDhwQDJkyCDly5eX7du3K38zbtw4MTMzExMTE3F1dRUXFxflhnfy5MkSFRUl3bp1E0tLy2SD39T8/hhaEn7GO3bsEFNTUwkICNAJnJ4+fSp9+vQRMzMz2blzp/L+o0ePJCgoSNq1a6eUBRsbG6lcubKMGzfO4Geaku864Fm2bJls3bo12UXtj07mzJn1/tBr3bp1SzJnzmxw/fnz56VatWpibm4unTt3Vr1ftelEPt+Jtm7dWmxtbWXmzJl6j+Pjx48yfPhwsbS0lL59+8qrV68kIiJCZ3n69KmMHTtWcuTIIa6urtKnTx85ffq0mJmZyZUrV5RtffjwQVatWiUVK1YUKysradCggaxfvz5JOrWfndq8urq6yunTp5X3Bw8eLKVLl1Zer1u3Try8vMTe3l5nv82aNdO52z9//rzOd3bt2jUpWbKkZM2aVaZMmSIzZszQWURE9V20iMiSJUskffr00qBBAzl79qxcuHBBZ1Gb37TMh9p92tnZJaktSejBgwdib2+fqvKppuyFhobqXc6fPy8DBgwQa2tryZgxo95j0gZAI0eOlAoVKoiNjY0ASDEfNjY2kidPHjl16pTBdGfOnJHcuXNL3rx5ZeXKlSIicu7cOTEzM5NFixYp6QIDA6VYsWLK67QqA6NGjZKcOXPq3JVrPX/+XHLmzCljx45VdQ1Qu8/AwECxt7eXAwcOJNnG/v37xd7eXoKCgiRdunQpfsbp0qVL8v7Dhw8lKChI2rZtK56enkq5U3t8asuKRqOR27dvJylriRetlL4ztenU5qNkyZLSq1cveffunUyZMkU0Go3kzp1bqTnROnDggJiYmMjw4cPl9evXyvuvXr2SoUOHiqmpqfI3Bw4cEE9PTylRooRs2rTpi3/33rx5o3d5+vSp8hnnz59fypYtK0OGDDFYBoYMGSJly5Y1uP7hw4cyZMgQcXBwUK4XX+K7DnjURKhqv3grKyu5du2awf1dvXpVrKyskrx/9+5dadGihZiZmUnTpk3l5s2byvGldcCjtX79ejE1NRUHBwdJnz69zqK1e/duMTU11XtnZGlpKS1btpTg4GCdH/bEgYyzs7P8/PPPMn/+fJ0TMHE6tZ+d2rxaWlrKw4cPlfdLly4to0ePVl7fu3dP7OzsxNHRUfm8RUSyZcsmixcv1kmX+DtbuHChmJqairu7u2TLlk1ZPD09RURU1aQltHfvXuVzTljmUvPdpmU+AKje5/Hjxw3m6/jx40qVdWrLZ3Jlz9BnWKxYMbG3t5fhw4cbfCwWHR0t+/btk8GDB0upUqXEwsJCqZY3JCQkRJydncXKykru379vMN39+/fF2tparK2tdX7cLS0t5fLly8rrW7duJflxT4sy4O3trTxC02fx4sVSsmRJ5XVy1wC1+6xSpYqMHz/e4D7Hjh0rVatWFTs7Ozlz5ozBdGfOnBE7Ozu9627fvi0LFiwQX19fcXBwEFtb2y8qU1r6yoqhmqDkyl5y35nadKk5v7XXko8fP4qpqWmSR/YiIk2bNpVOnToZ+pilY8eO0qxZM+X1li1blBquL/3dSywuLk4WLlwo7u7ukiVLFgkMDJS4uDixt7eX69evGzy269evJykDt2/flkWLFknLli3F3d1d7OzspEqVKjJmzBiD20nJNz21xD8VFhaGTJkyJZvG1NQUGo1Gea3RaHRea2XLlg1nzpxB3rx59W7nzJkzOlNe/P333xg5ciQWLFiAMmXK4NixYyhevLjOft69ewcrKyuICDQaDSIjI5XGldp/1abTOn36NIYOHYrcuXMjICAAZmZJi8CmTZvQtWtXlC1bFkOGDEmSplOnTjh69CiyZMmCrFmzGsxzXFyc8nmZmprqTZOaz+7mzZu4evUqwsLCAHxuOHf9+nVERkYqnykAuLi44N69e/Dw8EBsbCzOnTuHkSNHKtt79+4dzM3NkTt3bmzfvh19+/bFlStX8PDhQ1SoUEFJ9+DBA7i4uAAAnj9/jg4dOuDo0aNYvHgxWrdurfdYa9asicuXL6N379748ccfMX78ePTs2VNv2qlTp2Lo0KFo2bIlhg4dmuRz9vT0xO7du5UZgePj47F//35cvnwZAJSGlnnz5k2zfJiYmKj6jIsWLYotW7agZMmSevO2efNmFC1aFIcPH05yvug7f7RSKnsJnT17FgMHDsSRI0fQoUMH/Pnnnzrn84cPH3Ds2DEcOnQIBw4cwJkzZ5A9e3aULVsWPXr0QLly5dCxY0csX74cZcuW1buPZcuWoUSJEjh37hzu3LljcNqa27dvw8HBAZ8+fUJUVJTyfsaMGWFnZ6eT9tOnT8r/1ZQBNW7evJnspMmlSpVCv379AKR8DWjbtq2qfV68eNFgo3kAqFGjBmbOnIn8+fNj3759KFasmN50e/fuRf78+QEAd+/exaFDh3Dw4EEcPHgQ7969Q6lSpVC2bFl0794dxYsX/6LpBVIqKxs2bICTk5OqbaX0nalNp/a7ffv2LdKlSwcAMDMzg7W1NXLnzp0k3alTp7B8+XKD2/Hz80OrVq0QHR2NAQMGYMGCBRg6dKje80zt715CmzZtwuDBg/Hy5UsMGjQIPXv2VL6r+Ph4mJubG/xbc3NziAiWLFmCgwcP4tChQ4iIiEDp0qVRrlw5dO/eHT/99FOy1wNVvjhU+sYlfn5qiLaBVcK7H0dHR+V1unTpxMTERAYPHixZsmSRsLCwJNt49uyZZMmSRQYPHiyRkZEyYsQIcXBwkB9//FF2795tcL+Gnjvru1tIKd3Hjx9l8ODBYmFhIX369JHo6Ogk+wwPD5fmzZuLra2tTJ8+PdnP5ejRo9K2bVuxs7OTH3/8UaZOnSpmZmZy9epVJU10dLSsWLFCKlSoINbW1tKwYUPZtGmTmJub69TwqP3sEubZ0F2JiYmJdOrUSXx8fOTw4cPSt29fcXZ21mn8uGLFCvnpp59kw4YNYm5uLhUrVhQXFxepXbu2zr779+8vTZo0kdWrV4uzs7NUrlxZp+YoJYbuoh0cHKR06dLi6uoqW7ZsMfj3amsh0zIfaj/jDRs2iJmZmcyaNUs+ffqk/P2nT59k5syZYm5uLuvXrxeNRiM1a9aUBg0aSIMGDcTMzEyqVq2qvK5Zs6aYmJikquzdunVLmjZtKqampjqNhROztLSULFmySI8ePWTdunV6z/cDBw4obQsSlr+wsDDp27evmJqayv79+6VJkyZSv359g8dUt25dady4sZQuXVrWrFljMN327dulQIECcufOHdVlYOzYscojRysrKxk6dKjyesyYMUo7CX3nj9azZ8+U61Ry14DU7NPc3FynPUZiT548EQsLC5k/f77Y2trqtDXR2rZtm9ja2sr8+fMlS5Yski5dOqldu7ZMmjRJTp48qVO2Unt8IurKito2PGq/s9R8t507d5Y+ffpInz59lIb72tedO3dWzrmDBw8qj8JsbW1l586dSR6RWVtbJ9tQ+tGjR2JhYSE5c+aU/PnzJ1vrpvZ3T+RzO05vb2+xsbGRQYMG6XRS0CpRooRMnTrV4P6mTJkiJUqUEI1GI1mzZpU//vgjTRopJ8mXyPc5l5aJiYmqGp6goCBV22vYsCF8fHzw8OFDtGzZEnny5IFGo8G1a9ewcuVKeHh44MSJE8iVKxfevXuHnj17onnz5gaj5vDw8FTnKTk9e/ZEZGQklixZgnLlyulN4+bmhixZsiAoKAh58uRRtd3IyEisXr0agYGBOHnyJMqVKwdfX1/Ur18fGTNmVNLduXMHS5YsQVBQEJ48eYLmzZujTZs2qFixIt6/f6/qs3v9+rWqY7KxsUHDhg3x119/wc7ODkuXLkXDhg2V9ZUqVULJkiUxduxY7Nu3Dzt37oSrqyt69uwJGxsbJd3IkSNRrlw51KpVCxMmTDBYU6PP6dOn0apVK2g0miR30Z07d0atWrUwf/58ZMiQQfU2k5NW+Xjw4IGq/WXNmhVDhgzB+PHjYW9vj+zZs0Oj0eDOnTuIjIzEr7/+igkTJqiuLdi9e7eqstetWzcsXrwYFSpUwIQJE1CkSBGDab29vREaGoo8efKgfPnyKFeuHMqXLw9nZ2eddPPnz0fv3r3x8eNHODg4QKPRICIiAubm5pg2bRq6du2K8+fPw8fHB7Vr10b//v2VY7x+/TomTZqEnTt34tixY4iOjoatra3B45o7dy7i4+MxcOBAVKtWLcUykC1bthTvrAHg4cOHCAsL0znnEnr+/DlcXV3h6emZ7DUgrffp5uaGuLg4tGzZEqtWrULevHl1zu+bN2+iadOmWL16NVxdXRETE4Off/5Z+b5+/PHHJMei9vhq1Kihqqyo/S2ws7NT9Z3Z2dmhevXq+OOPPwymCw0Nhb+/v6p8hISEQKPRJBkiAoDyvvbf5PKhLQMBAQEYO3as3pqyuLg4bN++HRERESkeFwCsXbsW+/fvR9u2bTFixAi4urrqTRcUFISuXbvi999/R6dOnZTr4adPnzB//nz8+uuvmDt3LqKjoxESEoKQkBB8+PABZcqUUcpCsWLFVH1eyfluA562bdti5syZsLe3T7NtRkREYNCgQVi7dq0SsKRPnx6//PILxo0bh3Tp0sHE5P+GPkpciBMW3oRjofwTUVFROHv2LJYtW4YZM2bA1tbWYNoxY8Zg8ODBOseYGteuXcOiRYuwYsUKvH79Gh8/fkySJj4+Hrt378bixYuxfft22NnZ4dWrV6o+u5SEh4dj+/btaNWqFYDP34ednV2Sx2mvX7+GnZ0dLCwsVOXr1q1byJUrl6q0nz59wvDhw/H777+je/fuGDduHKysrHTSrFixAi1btlS1vbSUmnyoderUKaxcuRK3b9+GiCB37tzw9fVFiRIlUrUdtWXPxMQEVlZWBh9/amnHnImKisKRI0eUavLz588jd+7cykW0XLlyyJQpE548eYJ169bp5KNx48Zwd3dXtrljxw60a9cuyfg2zs7OWLRoEerWras6v2ldBkxMTODo6GjwB0FE8ObNG0RGRiZ7DUjtPmvUqGHwEVNMTAyCg4OVa9m6deuwatUq3Lp1S6esNG3aVPmb69evK4+0DP3oqb0+qS0r4eHhOHPmTJJAODG135mhdBEREVi5ciUWLVqECxcuqL7Gq70J8fT0xJgxY5I8QtV69+4dhg4dqne8s+vXryMwMBBBQUEIDw9XPVaPiYkJzMzMYGtrm2ww8vr1a/Tr1w9Tp06Fvb09cuTIAQDKDVKvXr0wbdo0nb+5evUqQkJCcOjQIaUslC5dGhUqVFAez6bWdxvwxMfHIz4+XufO+/nz5/jjjz8QFRWFunXrokyZMl+0bfn/A3+JCDJmzKhTEFJzB50WLly4gB9//BGvXr3C6tWr0bVrVwBAixYtdAb5MjU1xejRo7F8+XKMHTsWwOdBoN6/f6+TZsuWLfjhhx+S3eenT5+wbds2nVoVff7++2/MmzcPQ4cOVd5L7rNTm9eEF5I3b97g9u3b0Gg0yJEjh97A6fTp01i9ejVu3rwJjUaDXLlywdfXFz/99BOAz7UKkyZNUi4ky5cvR4MGDZTXb968ga+vL/78808UKlQoxZq0O3fuYOzYsQgMDAQAZMmSRWkjA3z+nI8ePQpTU1NERETotH3Yv38/xowZg6ioKNSvXx+DBw9O03w0btwYS5cu1fmhv3LlCn7//Xdln76+viq/EcMePHiAqKgo5M2bFyYmJnj27Blmz56dYtlbtGiRqu0PHz5c7/vv3r3DkSNHsHfvXixZsgSRkZE6bWpSEh0djeDgYJ3AqGrVqjo1agnzGBYWBo1GAxcXF51zWm0ZUFvTqqYmOioqChqNJtlrwMKFC1XdXDx58gS//fabqmNbsmSJqnT6XLt2TQlWd+/eDY1Gk+IggY8ePcLw4cNVX0MNlZWQkBBERUXBx8cH6dOn/+Lv7MCBAwgMDMSmTZuQNWtWNGrUCI0aNULRokWTPa47d+6gY8eOOHDggKp8qK35unfvHoDP5WHt2rVYvHgxTpw4gQoVKqBZs2aoX78+TE1NsWLFCrRu3RoODg46fx8REYFly5ahdevW2Lx5s6pj07YVPHHiBFavXq0Mhpo7d240a9bMYFtAradPn2Lu3LmYNWsWIiMjv7xCIM0fkn0j2rRpo9N19+3bt+Lh4SEZM2aUQoUKKeMCaHvgJLdkz55dREROnDghgwcPlv79+xtsm6NWSj0HtM/tUxIaGiomJiYyefJkadGihfK+nZ2dNGrUSNq0aSNt2rSRPHnySNmyZaVbt246aXr16iUjRoyQESNGiLe3twQEBCjr9+/fL927d5datWpJ7dq1pWfPnsn2eEno2bNn0rNnT709176UNq8in3sm1axZU6e3j6mpqdSqVUvu3bun/M2vv/4qGo1G7O3tpXDhwlKoUCGxs7MTExMT6d+/v4ioHy9DRKR9+/YSGRmZ7HH6+/vLoEGDlNd2dnYyadIkWbp0qSxdulRq1KghnTt3lvr168tvv/2mpLt7965YW1tL1apVpVevXmJnZyfTpk1L03wAkD59+ijvPX/+XNKnTy/58+eXunXrirm5uSxbtixJ+wFDy9KlS5Vj1OrYsaPynXh5ecnDhw9l6NChqSp7qRUXFycnTpyQCRMmSLVq1ZTuzZkyZUpxaIqEYxypMXXqVHF3d9dpC2ViYiLu7u7KZ6G2DOzfv1+8vLwMDniYL18+1eecmmvA8OHDk93Gs2fPpEePHqk6b1Pq7p2427dWWFiYrFmzRjp37iy5c+cWjUajar8JrwNqTJo0SRkQUuTz4KjVqlVTvjsXFxe5fPmy6u9M5HN7mdGjR4unp6dkypRJevTokaR3qtp8pGYgSDWOHTsm7dq1Ezs7OylatKj8/vvvYmpqqnNsagcWTStXr15VerqK/N9336VLF8mbN6/SE7pcuXIyYsSIL97Pdxvw5MqVSycomT17tmTOnFlpcNW/f38pX768TJ8+3eDi7+8v1tbWYmLyeaRlU1NTsbW1VUY6TXyhT+jUqVPSp08fJVjQjmWjtWXLFoNL//79xdraOlUnf/HixXUGdkrczXDTpk1iZWUle/bsMZgmODhY8uXLJyKijBXk5OQkJUuWFG9vb3FychITExPp0aOHiHxuBO3r6ysZMmSQzJkzy4wZMyQuLk6GDh0q1tbW8tNPP8mqVauUQRdTWtTm9eHDh+Li4iLu7u4ybtw42bx5s2zatEnGjh0r7u7u4urqKo8ePZKlS5eKlZWVzJo1S6eBXGxsrNIYMigoKFVdNMPDw2Xu3LnKOl9fX6WBboMGDaRx48aSN29enbFLEm/v0KFDkjNnTnF3d5djx44p748ePVpnBOtFixZJ4cKF0zQfAOTgwYPKe5MnT5YcOXLIx48fldfe3t7JNm5O+CNfsmRJne7Su3btEjMzM1mxYoWcPXtWfHx8pH379lK4cGHVZU/rwoULsn79etmwYYPO+Cdap06dkokTJ0qNGjWUMYE8PDzEz89PAgMD5d69e6obhicec8nQMmrUKHFwcJAJEybI+fPn5enTp/LkyRM5f/68TJgwQRwdHWX06NGSP39+VWWgTp06yTb2nDFjRrKNqRNScw0oUqSI6vNWDW3DdTXdvp8/fy5r166Vrl27Kj9yiUdeTvhDb4i+gCe5slK0aFGdhubr1q0Ta2trOXr0qLx69Upq1aolTZo0Uf2dactb8+bNZceOHUrD6y8NeFJzw5USLy8vyZo1qwwaNEjnWBIfm9qBRbXev38vW7dulcmTJ8vvv/8u27Zt0wnSUqLNa7du3cTLy0tMTEzEwsJCSpcuLb/99pvs37/fYCP71PhuAx4bGxu5e/eu8rpBgwbKD7XI56G8DQ1g9urVK/H39xdLS0spW7asHD9+XH766Sdp37698sMwevRocXZ21vv3au7G9bl27ZrUr19fTE1NpVWrVskO5qWlLUjOzs4648IUK1ZMp0X/nTt3BIDOidSgQQOdnh/37t0Ta2tr2bRpk1hYWMiSJUuU4eNF/m+YeQsLC9m6dat07dpV3N3dJSAgQPLnzy8mJiZSo0YNqVChgs5outq7+JQWtXlt27atlC1bVu8J8v79eylbtqy0a9dOihcvnmLPAe1UGWoDHjV30RYWFjq1TP7+/vL3338rr+/fvy9WVlZiZWWl05uqYsWKOjU+t2/fFkdHxzTNBwCd8WZq1Kgh/fr1U17fuHFDnJyc5P79+6oWJycnuXjxovL3Xbp0kYYNGyqvDx48KNmyZRNHR0dVZU9E5OTJk1KgQIEkNSgFCxbUGRxQo9GIm5ub+Pr6ysKFC5Md3DIlCccqMrR4enqKu7u7bN682eB2Nm3aJG5ubmJnZ6eqDGTJkkWn52Ni165dEw8PD50eNYYWjUaT4jXA1tZW9Xkr8nlcmMuXLycZc2rLli1SqFAhsbCwkEOHDqlaNBqNWFhYSKlSpWTIkCGyd+/eVP1oaiUMeNSUlXTp0ul8xm3atJGWLVsqr48fP66MA6PmOzM1NZU+ffrojI0l8uUBj9rrj5qA3NTUVPz8/GTPnj061+7Ex6Z2YFERka1btyoDOCZcMmbMqHo6Hm1eS5YsKYMGDZI9e/bonWron/puAx4nJ6cko/2uWLFCeX3nzh3lAqv1/v17GTNmjDg6OkrhwoV17pbs7e11TvoPHz6IqampvHz5Umcbau/GE3ry5Il06NBBzM3NpXbt2nLp0iVlXUpV8dOnTxcTExOxtrbW+bvELl68KACSnWPl3LlzYmtrK3Xq1JGBAwcaTNe/f3+pW7euZMmSRfbu3Ssinz9PjUYjvXv3Nvh3KUnpZO7fv7+YmHwe9Tq56QJCQkIkc+bMYmNjY7BLs/aYbWxsUhXwqLmLNjExkZMnTxrc78mTJ8Xe3l7c3NyUdHFxceLg4KDTtffq1avi4OCQpvkAIKGhocp7zs7OsmHDBuX1zZs3xdbW1uC+ErO2ttYJoAoVKqTT7fzBgwdiZWUltra2qsrelStXxM7OTooXLy6rVq2S8+fPy7lz52TlypXy008/ib29vXJeJzfQ2ddibW2dbIBy+fJlsba2FgcHB1VlwNLSMsVRyK2srJTHKsktFhYWKV4DrK2tVZ+3V65cUUZANjExUYLUsmXLiqOjowQEBKRqGIfg4OAUHwerof3xVFtWbG1tdc6DPHny6NTSasuo2u/s2LFj0qFDB3FwcJASJUrIrFmz5MWLF1894FETlHt4eMiYMWMkR44c4ubmJgEBAXLu3LkkQ4WoHVj0r7/+EnNzc2nUqJEcO3ZMwsPDJTw8XP766y9p2LChWFhY6NRSp5RXQ2JiYr5ojsfEvtuBBwsXLozly5dj/PjxOHLkCJ4/f46KFSsq6+/cuQM3NzcAn7vqLVy4ECNHjoSVlRVmzZqFli1b6jQQi4yM1GnsZ2lpCWtra7x9+1ana+KcOXMwbty4JLPbmpubo1evXvj06RNmz56NVq1aISIiAuPGjcOsWbNQpEgR7N+/Hz///LPO39WvX19VfrNnz45z586hQIECetefOXMGVlZWOHbsmMHGdEeOHEHu3Llx7ty5ZBssNmrUCA0bNsTz58+RL18+Zf9WVlbo0KGDquPVJ3Erfn2yZMmCp0+fIlu2bAbTZM+eHa9evYKlpWWyvRE+fvyo9PAaNmyY0jA1NjYWY8eOVQYETNi49u7du8iZM6fyOk+ePDq9wQoXLgzgczdyQz2Zdu/ejQIFCiBbtmwYPXo05s6di/Xr1yM+Pl5nQMGrV68iW7ZsuHfvXprmY+bMmVi4cCE2bdqEd+/e6ZwXN2/ehIeHBx4+fGhwfwllzZoVZ8+eRdasWfH333/jypUrOp0BwsLC4OjoiB9++EFV2Rs+fDiqVKmCjRs36px/RYsWRfPmzdGwYUOMGDEC69atQ548efDu3TvcvHkTefLkgZ2dHc6dO4fp06cjOjoa9evXh4eHh6p8GBqYMLESJUpg7NixWLp0aZJB0j59+oRx48ahRIkSiI2NVVUGnj9/jkuXLumUqYQuXryIzJkzGxwIM6HJkyeneA3w9PTEzZs3VZ23AwcOhKenJ2bOnImVK1di7dq1uHz5Mlq2bIkdO3akugdstWrVAACvXr1Sekw9evQICxcuRHR0NOrWrYuff/45xc4Q2kbNastKzpw5cfjwYWTPnh0PHz7EzZs3dTocPH78GM7OzsiSJYuq78zHxwc+Pj6YMWMG1qxZg8DAQPTt2xfx8fHYu3cvPDw8YG9vj6JFiybbyDjhdUUNbWNkNYYMGaI0pi5dujQ+ffqEpUuXokOHDsidO7fqgUXHjBmDtm3bYv78+TrrS5UqhVKlSqFz584YPXo0/vzzT9XHtmTJEpw7dw4lS5ZEixYtMGjQIEydOhWfPn1CxYoVsWbNmhR71Bny3fbSOnjwIGrWrAk3Nzc8e/YMzZs3x+LFi5X13bp1Q1RUFGrVqoXffvsNERERGDx4MLp27aq3O7OJiQmCgoKUHw8AaN68OaZPn66Mcqt979KlS8iePbve47p79y4KFiyI4cOHY+LEiXB1dcW4ceNQr169f5TfoUOHIigoCKdOnUoyVsKzZ8/g7e2NXLlyITQ0FAcPHkShQoV00ly4cAEVK1bEwIEDMXToUNy5c8dgb60nT54gZ86ciI2N1Rmnw97eHhcvXkwywmiFChVS7F2g0Wiwf/9+VXn19PTEH3/8oVxAEwsODkaXLl3g6emJMmXKYPTo0XrT/fbbbzh69Kiy/5QcPHgQNjY2OHXqlMEflUuXLqFYsWIwNzfHunXrUKtWLZ3127dvR7NmzTB9+nRUrlwZVapUwb1792BiYoKZM2cqPWyAz8Gup6cnQkND0ywf7969w/379/Hu3Tt8+vQJgwcP1tmun58fbG1tsWDBAr3bkv8/rIJ2X6NHj8bMmTPRrVs3HDhwAC9fvlRGigaA6dOnY8eOHahWrRomTJiQYtmbNGkSdu3apfQ8S+z06dOoWbMmXr58icOHD6N27dqIjIxE+vTpsXr1ajRu3Bg//PADTE1Nce3aNb1jm2glzIe2Z05KihYtiqpVqyImJgblypWDi4sLNBoNwsLCcPjwYVhaWmLv3r04duwY/P39UywDFy9exKFDh3D69OkkwxtER0ejRIkSqFChAmbOnJnisam5BrRq1Qrjx49Xdd66urrizz//xI8//og3b97AyckJ8+fPR8eOHXXSmZiYqDq/z58/jzp16uDRo0fIlSsX1qxZg+rVqyMqKgomJiaIiorChg0bsHXr1hTzCnweRkBNWRkzZgwCAgLwyy+/4MSJE0iXLh3++usvJd2YMWNw8uRJ1K1bV9V3ljj/AHDjxg0sXrwYy5cvx5s3b1ClShWDI08nNnLkSJ3u5gMGDMCvv/6q3Ei/e/cOw4YN++KeS9ru8oGBgUpAPHz4cDRr1kwZh0p7wxQXF4e5c+ciICAAq1atQseOHXH48GEULFhQ77YvXryoBI/JlQHtCOWjRo3C2LFjUapUKZw/fx5NmzbFli1b4O/vr1wDa9eujXnz5n1RXr/bgAf4fIe8d+9euLq6okmTJjrjOyxYsAAlSpTAjz/+CGtrazRv3jxJ97yEpk+fnuL+NBoNbG1tcerUKYNjQ9y4cQPFixdHZGQkrK2tUbly5WSnZdi0aVOy+3z+/Dnmz5+PPn36wNvbG48fP4afnx9y584NjUaD69evY8WKFfjhhx/w119/oUGDBjh27BiqVKmiDBB2/fp17N27Fz4+Pti/fz8sLS3x/PnzFAccExGdcTq2b9+OihUrJhkHJLnuo2/fvsXq1asRExOT4gmt7Y7q4OCAAwcOYP/+/UmO8cWLF6hSpQoqVKiAypUro379+ujbty8CAgKUwDQsLAxTpkzB9OnTsXnzZtSuXTvZ/SZUoEAB9O/fXxkLKLElS5bg999/R6FChbB27VqdgdiuX7+OGzduoFGjRli3bh2Az7UzV69eRcaMGZUaR60LFy7A3d0dx48fT9N8vHz5EseOHYOrqyu8vb111u3cuRP58uVLMmWJlohgzZo1mDlzJuzs7BAWFobhw4djx44dcHV1xdSpU+Hl5aWkb9KkCapXr45WrVqhcuXKKZY9e3t73Lp1y2DNjPbH8sOHDyhbtixy5cqFkSNHYsmSJZg6dSq6du2KcePGAfj8Q7Z27VolGEzo/fv3mDFjBmbOnIns2bPjyZMnBj8vjUaDqKgofPr0CXFxcXj37h1WrFiBEydOKFN0uLq6wsfHB76+vsp1pHnz5imWgefPn+PHH3+EqakpevTooTNo35w5cxAXF4dz587Bx8cnmW/0s/j4eNjY2CR7DTh16hQcHR1VnbdbtmzBs2fPlPKmrUFLPO1BcgHKsWPHMGvWLIgIypcvDzMzMwwYMAArVqzAjh07ULVqVWUogp49e+Ls2bM4ceJEinkFACsrK9VlZfHixUoZHT58uE5A2K1bN1SuXBkNGzZU9Z0lRzuwX2BgILZt26YqH2q7myecPic5hq5NwOcBEQMDAzFz5kxVA4taW1vj+vXrBq/hDx48gJeXl+oAZcyYMRg1ahSaN2+OM2fOwNvbG2vXrkXjxo0BALt27UKXLl1UD++S2Hcd8KhRvnx51Xf3alSoUEHV3bjaQp7SGBcJx6YJDw/HoEGDsG7dOqXaN126dGjatCnGjRsHJycnxMbGYurUqVizZg1u3rwJAMiVKxeaN2+OPn36wNLSEiYmJujUqZPesUeAzz8WCxcuTPbESikPnz59wpw5c5RHLqNHj0azZs1U5fXvv/+Gt7c3wsLC0LJlSyW4vHr1KlatWgVXV1ecOHECTk5OmDVrFvr164dPnz4ptXMREREwNTXFpEmT4O/vn+LxJxwvQ+1d9JgxY7BmzRq9n7OhfP7999/QaDR6q3PTOh9fYt++fRg4cCBu3ryJvn37ol+/fgYHQdNHTdnLmzcvxo4di0aNGundxoYNGzBkyBDcuHED6dKlw4kTJ5A3b17ExsbC2toa586dUx4r3r59G0WLFsW7d++Uv4+Pj0dgYCBGjhwJExMTjBgxAq1btzY42N2zZ88wcuRIBAYGomLFiggODladXwCqysCDBw/QtWtX7N69W6mR0mg0qFatGubOnYts2bLBxMQEWbNmha+vb7IjBrdq1SrFa4Da0bGXLVumUxPk4OCACxcuqJoj6vr16xg0aBC2b9+OFi1aYPTo0fjxxx9x4MABZSwrBwcHnDp1SqmhuX79OkqWLKkzDk9y42ylpqyk5OXLl0o+U3vefil944olx8TEBHZ2djAzMzNYc6nRaPSOWB8bG4vY2Ngk52tKA4sWLlwY/v7+BstMYGCgUlOphqWlJW7fvq0EqZaWlrh48aIyttGTJ0/g6empemDEJP5xK6BvVNeuXXUaQS1btkzndXh4uNSoUSPN97t9+3YxNTWVX3/9VacXyrNnz6Rfv35iZmamd86ZL6WvMVh8fLw8f/5cnj9/rtNSX61y5cpJ+fLlU1y+1IoVKyR79uySOXNmmTNnjtLzLSUJ8/r69Wvp0qWL0jtFo9FI+vTppXPnzjo9K0Q+j5kxdepU6dq1q3Tt2lWmTZuWqsaWCff79u1b8fLyEnt7e+nWrZtMnz5dZsyYIV27dhV7e3vJmzevvH37VvW2w8PDpVu3buLs7Kw0DnV2dpbu3btLeHj4V8nHx48fZdKkSVK0aFGxtbVVxuuYPHmy3vltzpw5I5UrVxZLS0vp3r273nmJEndb3bp16xf1wBk2bJhkyZJFb+PbixcvStasWZUxVVLT2FxEZOPGjZInTx5xcnKSyZMnJ9sF+u3btzJkyBCxs7MTb29vne7KX8vr16/l1KlTcvLkSXn9+rXOurVr10r16tXFyspKGjRoINu3b5e4uDiD2/qn1wCRlOdb0i4JJdcBIzXfl5pxtlJTVgx9Rjt37lQa36bGgQMH5Pfff5ejR4+KiMgff/whHh4ekiFDBunQoYOqsh8aGioajUYqVKiQ5FzXJ1++fOLs7Cy9e/fWO0yDVmBgoPTo0UPppDNw4ECxsLAQExMTqVy5cpLrY3KmTp0qTk5OOh01tHbs2CHOzs7J9iC9c+eOXL58WSmrqT1nU+u7DXjSamyDixcv6vRgWLdunTRo0EDy588vBQoUkAYNGsj69et1/mbmzJlKAdNeFLST8SU3ds+XSGlMioRdhrX+6ZgKasTFxcm2bdukXr16ynu7du2SwoULi4ODg4waNSrVPTa0eX3w4IFyEU/uwt62bdtUBR8p7Vfr9evX0rlzZ73B1qtXr5R0jx8/lhkzZkj37t2lR48eMnPmTHn8+LGy/tWrV5I7d26xtbWVTp06ybRp02Tq1KnSsWNHsbW1lbx588rr16/TNB8ajUZKly4tJiYmUrVqVendu7f06tVLqlatKiYmJvLzzz8r3f3VTuKZmm6rKZW96OhoKVWqlJiamkr16tWViRarVasmpqam4uPjoxyfiYmJvHjxQvlbe3t7naEotOe4mskPtWJiYmTKlCni7OwsefLkSXJui4jMmTNHKlWqJE2aNJH9+/frrHv58qXOAGsplYHUevz4sYwZM0Zy5swpmTNnlgEDBiTpHi2S8jXAkITnrZqeYUuXLhWRz4MkascP007sm5hGo9H5vuzs7PR+X2rH2UpNWUnozp07MmTIEHF3d5d06dJJixYtZNOmTTqfcXLf2YIFC8TU1FRy5MghlpaWMm7cOLG1tZUuXbpIt27dxMHBQQYMGJDiZ22ol1ZyTpw4IZ06dRJHR0cpVqyYzJ07V2dQxzFjxoi1tbVUqlRJnJycpEuXLuLq6ioTJkyQSZMmibu7u3Tp0kX1wKJxcXHSuHFj0Wg0kjdvXmW8sTx58oiJiYk0bNhQ4uLiJCYmRoYNGya1a9eWMWPGyKdPn6RZs2Y6A5Bqx8VKbqLU/fv3M+D5Ev8kkoyIiJA//vhDGdukcOHCEhcXJ02bNhWNRiN58uSRevXqSd26dSV37txiYmIiv/zyi84Pbkp34wkHq0tuSUlqx6RIizEVknPz5k0ZOHCgZM6cWaysrKRevXpy8uRJKV++vFhZWYm/v3+SrvxqGRqoyxC16dTuN7Hkgq05c+aIpaWlcpfs6OgoGo1GLC0tZc6cOSIi0rt3bylQoIDBWeQLFiwo/v7+aZoPAJIlSxa9d4ihoaGSJUsWGT58uHTt2lUsLCykWrVqcv78eYPbTE23VbVlLyYmRiZMmCCFCxcWa2trsba2lsKFC8v48eN1amU0Go0ULFhQGbjS1NRU8ufPr7wuWLCgABALCwvp3LmzPHv2zGA+4uPjZenSpZIlSxZxc3OT+fPn653Je8aMGWJjYyPdu3eXli1bKj94WgmvK2rKwD+5Dhw6dEjKly8vJiYmSo2Q2jGMEtN33qrx8eNHmThxojg5OUm+fPlSnD28Zs2aSp7MzMykatWqyuuaNWumapwtEfVlJTo6WpYvXy7lypUTS0tLqV27tpiamiapHVLzneXPn19mzpwpIv830KY28BP5fFOcI0eOFD+7Lwl4En4OQUFBUr58ebGxsRFfX1/58OGD5MyZUxk08vTp02JiYqITtP/555+SJUuWJAOLJhwkMuF7WmvWrJF69eqJl5eXeHl5Sb169WT16tXK+r59+0rGjBmlffv2kj17dqlbt67kyZNH1qxZI+vWrZOCBQuKr69vsgOaJhyk8kt9t214TBLNkGtvb48LFy4ovacSzvSrFRISgsWLF2Pjxo348OEDfv31V3To0AE5c+bE1KlTMXbsWAQFBSVpHLpt2za0bdsWQ4cOxcWLFzFjxowUu2yqfY6ePn36ZNe/fPkSq1atwqVLl+Dt7Q0vLy/06dMHXl5eEBFcu3YN06ZNw40bNzBv3jy0bdsWdevWRUBAgNK49OrVq5gyZQp27NiBQ4cOoX379jh69CicnJwAAJ06dcLYsWOVZ9wvXrxAtmzZlG6V0dHRWLdunTJnS1xcHKZNm4Z27drBzs4OJiYmsLa2RufOnZPtTn7o0KFk8/rmzRuEhISkOGuwVuIy8KUMPWu/ePGiMq9V7ty5lZ4MO3fuRL169eDv74+AgABkzpwZwOf2IJMnT8asWbOwdetWdOvWDfPnz0+xt5l21uq0yEeRIkWwYcMGg+0e1q9fjyFDhuD27duqJmZ0dXWFh4dHkm6rWp07d8ajR4/w22+/oXz58imWvY8fP6JUqVJJunzro6YR54gRI2Bubp7i5Ifu7u64c+cOevbsCX9/f4Pt13x8fDBkyBBlvjFtg/LOnTtj1KhRynVl27ZtqsrA+vXrdba/atUq1KlTJ8n1I2E7uA8fPmDDhg0IDAzEiRMnULduXQQFBeHOnTspXgNOnDihdElP6bxNztWrV7F48WKsWLECL1++VNUBI2EP1+Ts3r0b69atMzjX4eHDh9GsWTOsWbNGVVnp1q0b1qxZgzx58qBly5Zo1qwZnJ2dYW5ujgsXLiifh9rztnHjxrh27ZrSkNfCwgIXLlxQyvTDhw+RK1cuvHz5Mtnj0vZwEhHcunXLYCcRLX2dag4fPozhw4fj8OHD+Pvvv+Hq6qqqjYx2rivgc0eEAgUK4M8//0zSODkkJAS//PKLwQlktbJmzYp58+ahZs2auHnzJvLmzYudO3eiRo0aynZatGih0zsupe19CQY8KQQ8jx8/xpIlSxAYGIioqCg0b94cvr6+8PHx0TkZChUqBH9/f7Rr107v/hYvXozp06fj6tWrePbs2T/+cdJKOC5LcjJkyIC4uLgkY1IAnwt0w4YNlYtjSj9OwcHBOp+dg4MDQkNDdT67zJkz48SJE1i0aBHWrl2L3LlzKxcTd3d3nc9OTQNtjUZjcDLOxIKCglQHPMn1NtNSM17GrVu3lIDn1KlTaN++Pa5evarTyDR//vxYvHgx+vXrh59//hljxozRu73ffvsNR44cwYkTJ3Dnzh2diTwTevz4sdL9P63ycePGDTx8+DDFni2DBg1Kdl9a06dPV9Vt1cfHR1VgtHv37jQ9f9RMugno3oAk1x3f0tJSGR9J68qVK6hUqRLatm0Lf39/uLm5oUyZMqrKQEhIiM77ia9TCZ08eRKLFy/G2rVrkSNHDrRr1w4tWrRQboqaNGmS4jXA3Nwc/fr1U3XeJhYZGYk1a9Zg8eLFOH36NEqWLIlGjRrhwoULadIBQ8vS0jLF8yJHjhz49OmTqrKi7Rk2cOBAnUAyccBTrlw5Vd/ZkSNHVP22SIIhHPTRrlebTnv9efLkCYKCgrBkyRJERUWhZcuWaNeunTJRb2pv9PWl0zI1NVX1GZubm+P+/fvKUCbW1ta4ePEicuXKBeBz0Ojh4ZGqiXy/xHc78CCgbhA2T09PNGnSBHPmzEGVKlUM9ta4desWKleubHBflStXRo8ePZId9yOhuLg4XLlyBbly5YK1tbXOuvfv3+P27dsoUKCA6t5hGTNmxK5du/SeOBqNBoMHD4a3t3eSARET6t69u96gQ1+eNBoNSpUqhZ49e+LUqVPJzvp8//59VXlQKygoCIsWLVLVQ0jbNTc5vXv3Vr3vq1evolKlSvDy8sKKFSuS3EVXqlQJ8fHxWLBggcFt+Pn5YcaMGciQIQPu379v8MJ+7949ODs749mzZ2mWj0mTJuHFixcGA56wsDA4ODgYnGE6sQkTJiQ7nIOjoyNiYmJw/PhxTJw40WA6bdlL6/szNQP2AUi25jEhPz8/PHr0SCd9/vz5ceDAAVSsWFHp3n7+/HlVZUCt/Pnz48WLF/D19cWRI0eSjGUEfK4hTekaULNmTWzatEnVeat19OhRLFq0CBs3boSnpyeuXr2KkJAQlC5dWvXxp4abmxuuXLli8Ly4fPkyMmfOrHpwzGXLlmHJkiXInDkzatWqBT8/P1SvXj1JOrXfmUajwbt372BlZaUEI5GRkcpQDtp/U9Ozd8OGDUqNuiHr1q3DkiVLEBISgmrVqmHKlCmoVatWklq1q1evKsMliAiuX7+uzPr+999/qzomrdT8npmbmyuvzczMdI7LxMQkzc9tfb7bgKds2bI63RFLlSqFu3fvJknz9OlTHD16FFmyZEHWrFkNVuFbW1vjzZs3yJIli971b9++hbW1NWJiYlTd7SxfvhyzZ8/GyZMnk6yztLREu3bt4O/vj5YtW6a4LeDz4FQJB0BMzNXVFSKi6sdJrYoVK2Lx4sV48eIF/Pz8UK1aNVV5Twt//PFHstXn2uMYOXJkilXpan8UAXWju27fvl3n5E/M3NwcIoLq1atjyJAh2Lt3b5LBLmNiYjB06FBUr14dS5YsSbN8XL16FePGjcPGjRv1rp8wYQLKly+f4na0cufOjQMHDhh8RLt//37kzJkTt27dUl32/ldlKCG1tYtlypTBxo0bk4yIni9fPuzfv1+pkY2Pj1dVBtS6du0abG1tsWzZMixfvlxvmvDw8BSvAdqRtdWct5MmTUJgYCAiIyPRvHlzHD16FIULF4a5uXmKj9r/iXr16uHXX3/Fjz/+qHecrQEDBqB+/fqYOXOmqrLi6+sLX19f3L9/H0uWLEH37t3x/v17xMfH4+rVq0oNj9rvTP5/920tEdEZQVwbBKktUwBQunRpVTXWWbJkQZ8+feDi4oL79+9jzpw5SdJVqlRJp2xpm2CoqU3SR2363bt3K9eo+Ph47N+/XxmENOFQA1/TdxvwpNQeJKG//voLixcvRvHixZUqXkD3i/bx8cG8efMMDrA0Z84c+Pj4YNeuXaruxvPnz49+/frp/dE2NTVF//79MXv2bJw7d05VHrJly4ZTp04ZvHM/efIkLCwsVP04XblyJcnx68vPnj178OjRIyxZsgRdu3ZFdHQ0fvnllyTp1YwSC6TuOztz5oyqC0SzZs3StA2PmrvoHTt2YOvWrejTp4/e7W3ZsgX58+fHyJEj8dNPPyFXrlzo3r27znhCc+fORUxMDJYvX44lS5akWT7Wr18PW1tblCxZEn379tXZ57Rp03D16lWcOHEixcdjWm3atEG/fv3g4uKCmjVr6qzbuXMn+vfvjyFDhmDp0qWqyt7ly5cxdOhQg21otKZOnaoqz+nTp1eVD7W1kAMHDsTZs2f1rsufPz8OHjyIDRs24M8//1RVBtRS8zho4MCBKV4DsmbNqvq8HTx4MAYMGIBRo0Yle3OR0lQQWikNoqo1fPhw/Pnnn8iRI4fBcbaGDRuGmTNnpqqsZMuWDSNHjsSIESOwe/duBAYGomXLlvD390fDhg2RP39+Vd/ZpEmTVOXD0OCdXypLlizQaDRYtWqVwTQ//PCD3oE21TB0nrRp0ybFNjxA0huuzp07f9Fx/BPfbcCzb98+lClTJslw7fqULl0apUuXxsyZM7F69WoEBgYiLi4O3bp1g6+vL+rXr48hQ4agfPnyePXqFfr164e8efMqjzKmTJmCrVu34uDBg9i1a5equ/Fff/3V4DwmAFC8eHFcu3Yt2QuNlkajwS+//IK+ffsiT548SaY9uHTpEvr164fy5cur+nEKCAhApUqVlMaA0dHRqFOnjlILkfA5rIeHB4YNG4Zhw4Zh7969CAwMhJmZGerVq4fGjRujcePGqubI0mg0KFu2rKofJ7V3HCmlS81AfNo7JjU1acDnuWwsLS3RqVMn5XP89OkT5s+fj99++w1z585VRlHu1q0bBg0apNMeqEqVKpg9ezY8PDzSvMZj7969aN++PZo1a6ZsW0SQN29e7N69G/nz51c9h1vv3r1x7Ngx1K5dG3ny5NFpjHzr1i3Ur19fedSmtuxdunRJ7/QuWqn5PNSMkA58HpxPbTsKfY+TtPLnz4/8+fMjW7Zs6Nq1a4plIPFovInvjLXU1N7dvXs3xWuAdjtqzttRo0Zh6dKlWL58OZo3bw4/Pz+9U6qobYysVvr06XHy5EkMHjwYa9as0RlA0dfXF2PHjlUe/3xJWdFoNKhevTqqV6+O169fK4+8+vbtq+o7U1tzk9KUG9oylTVrVlXX+bRsGpD4hibxNT4he3v7JM0uEouPj1e13/j4eIPNRtLCd91o2cLCQpmLpkKFCihVqlSyJ0dC165dU+ZGef36NT5+/IjNmzejU6dOSUayTJ8+PebPn49GjRqp7hlka2uL48ePG7x4Xrx4ET4+PoiKilJ1vB8+fEClSpVw8uRJVKlSReeHRzsh3r59+9C6dWts3LjR4I/T+vXrDY4SnZihdh7h4eFYsWIFAgMDcfHixS+eA8aQlD5j7fDuDRs2TDad2pFOE6ZTO7prnTp1MHXqVNjb2yNHjhwAoAzb3qtXryRBYHh4uNJzImfOnDrP85PLr/azXrx4MUJDQ1XnA/jcZkG7z9y5c6NIkSLJ/n1y1q5di9WrVyuj0+bOnRvNmjVTRqeNj4/HL7/8kmLZMzMzU90jbdasWejZs+cXHzPweWqPZ8+eqZ6YMTWPKfr165diGVBz8U/YYDU5aq4BBw4cMHgTaOi8DQkJQWBgIDZu3IgcOXLgypUrX6UNj/a8TRhsi4jS2yljxow6P9Jp1QszITXfmVqJG6QbkpoylVbUTlMxcuTINPmMtd/t+PHjsXz58iTTk6SZL+7Q/o17/PixLFu2TBkXQKPRiLW1tVSsWFFGjx4tR48eVTXCr3acCa2oqCjZtGmTTJw4USZOnCibN2+WqKgoZb3aMVMKFy4s8+bNM7h+zpw5UrhwYendu7fekUT1UTsmRUpjKqSls2fPppjm4cOH0rZtW6lXr16KI8iKiIwYMULnM9e6du2a/Prrr5IpUyYxNzdPcb+GxtdJLl1qRnc9fvy49OrVS2rUqCE1atSQ3r17y/Hjx1Pcnxp79+6VZs2aiZWVlbi7u0uvXr1SlY9/6ku3lVLZS82YQ+nTp5fKlSvLo0ePUn0cWmrzERkZKSEhIane/tcsA/qovQakRN95+/btW5k3b56UKFFCGdhvypQpKW7r6tWrOoMxJpba81ZLbVnx8vLSGRC0Y8eOOgMgPn/+XKytrZXXafWdJdxHcipUqJDiUrFixVTvPy380zHAEn+3TZo0ERsbG2Uco7T23dbwJPbo0SMcPHgQhw4dwqFDh/DgwQPY2Ngo8+xERkbC1NRUp+ouNDQUw4YNw86dO1M134maiHjSpEmYNGmSMrdMQhcuXEClSpXQv39/BAYG4tatWyhWrBg6dOiAZs2aJdv40xDtxJvJzQr9T+daSiy1NSiVK1fG/v37kSlTJrRp0wZt27ZVujUaEhUVhbVr1ypjiVSoUAHNmjVD/fr1ldmGU9pveHh4sum0Xavj4uL+8V008Ln2sFatWqpqVMzMzODq6ooqVaqgcOHCWLJkCZYsWYLIyEiEh4dj3bp1Sm1TSm0GLl68iJ9//tlgG4XE+6xUqZIyL1ViFy5cQNGiRVU1RjQzM0uxnYW27B06dEj1HeXTp0/RqVMn/PXXX5g5cyb8/PxS/JvEvqSWLy1oy0DijhRfk/YaMGjQIAwbNgzz589Pci2JiIhA165dMWbMGL1d47UuXbqExYsXY9WqVXjx4kWy+9X32SV33jZp0kTVMBYHDx78ovG4DA2zkdJjmdR+ZxYWFqhbty7at2+P6tWrG8xTcudjaiZXTgshISGIioqCj48P0qdPr+r37MmTJ0p3dCDla/KGDRvQvXt3FCpUCEuWLDHYG+9LfLdteBLz8PBA6dKlERMTg5iYGLx69QpxcXF4/PgxfvnlF5w4cUKZsXjMmDHo0qULVq9ejXr16qWqEZjaZ5l9+vTBrl27UKxYMVSuXBl58+ZVZknet28fSpcujT59+qB///7466+/EBgYiH79+qFv375o2LAhOnTogLJly6o+rtevXyMoKCjZgCcyMhIhISGoWLGiqm2mVWCktXv3bmVcpKCgIEycOBGlS5dGhw4d0KRJE51g9Pjx41i0aBHWrVuHXLlyoUWLFjh58iRmzpxpcBwRQ9S23wA+z9B88OBBTJs2DatXr1aqrXPnzo0xY8Yok2AmJzY2Fg8ePFBVlR0fH4/Dhw9jzpw5MDU1Rb169TBjxgzUqFEDtra2OjOTq8kH8PlRVkr7fPHiBX799VfMmjUL3bp105tOo9GkuE8tW1tbVKlSBTNmzNB7gdOWvSVLlqhuE+Lm5oYdO3Zg6dKl6N27NzZv3ozffvstyUB0ybW5+bdoy8Dt27cRERGBYsWKKev279+PMWPGICoqCvXr18fgwYPTZJ/aa4CZmRk8PDz03jg5OjrCw8MDkydPxrZt21CxYkWlSUDCSUMLFiyI6dOnY/Lkyak6BjXnbXI3AgkDgNSUlYT01QGoKcPa70wt7Vg5derUgaurK9q2bYs2bdooj8q09D0mSzi58g8//KC6mYFakydPRmRkpPJoS0RQo0YN7NmzBwCQKVMm7N+/HwcPHjTYXT4sLAxjx47FokWLEB0drfqa3LhxY5QrVw7du3dHwYIF4efnl+ScVdspIbHvOuC5e/cuDh06hIMHD+LgwYN49+4dSpUqhbJly6J79+4oXrw42rZti8jISMyYMQMbN27EjBkzEBISgsKFC+PmzZuqZgZOyNDAhAlpNBosXrwYe/bswbRp07Bq1SocPnxY6e44duxY+Pv7K10ktY2qZ82ahbVr12LJkiUoX748cuTIgfbt26NVq1Zwc3P7os9In0OHDiFr1qyoVatWst00vwZ3d3cMHToUQ4cOxcGDBxEYGIhu3bqhZ8+eaNasGdq1a4e2bdvi/fv38PX1xcmTJ5WTaeDAgTrbUjMQH6B+vAwtCwsLDBgwAAMGDEiyTk1NmpbagdjMzMzQqFEjHDt2LMnIvAmpzUdqBngcNWqUwYBH7T7j4+Px/PlzzJkzB506dcKff/5pMK2np6feoRoSSxjst2nTBu7u7qhevTq2bt2aZEC3/8Wd8Zf69ddfUaBAASXguXfvHurUqYOff/4ZhQoVwvjx42FjY4MiRYqkOFxAt27dMHfu3BT3efjwYYNd2wGgadOm8PX1RZcuXRASEoKePXviw4cP8PDw0AmA3N3dU3V9yJcvn6rzVm0A4Obmpqqs/FuaN2+O5s2b49GjRwgMDERQUBDGjRuHsmXLokOHDmjUqJHemuCVK1di2LBhiI6OxogRI5QG1B8/fkzx8758+bLehuWJrV69Wuf6tWHDBhw+fBhHjhyBl5cXWrVqhZEjR2LBggVo3bo19uzZA3NzcwwcOBA9evTAiBEj8PvvvyN//vwIDAxU/d1qOTk5wcvLC5s3b8b58+d1Ap5/1Enjqzwo+wZkyZJF0qVLJ7Vr15ZJkybJyZMn9c6N4+bmpsx4++zZM9FoNDJ+/Pgv3m/9+vUNLnXq1BFra+s0aUdx+/ZtGTx4sKRPnz7N2qto00ycOFG8vLwkU6ZM0qdPH9VtiL5kn2rSvX37Vv744w9xcnISU1NTMTc3Fz8/P9mzZ4/OHFZmZmZy5coV5fWIESNULWqofR6fms9ZrY4dO4qDg4M4OTnJvHnzlHmTEudXDbX5iIiIkDt37kjhwoUlIiIiyXLkyJFUl+MrV66Ivb293nUJ5xVKbq4d7azZCU2ZMkVsbGykdevWcvv2bbl//76y7Nq1K9nJEdeuXZvqMrpw4UJp1aqVBAYGisjndkl58+YVT0/PZGfn1rc9d3d3Za4xEZHRo0dL4cKFldeLFi1SJtxNrj2cdtJKNfu0srKS+/fvG0x3//59nTYtsbGxEhISIiNHjpSKFSsq17CcOXNKp06dVOdV7Xmb2IoVKyR79uySOXNmmTNnjtL2Um1ZSTzJrKFJS9Xm45/Mf7Zv3z5p0aKF2NjYSLp06aRr167KupQmV27UqFGSOfsSunTpkpiZmSlzySW3pEuXTq5evar8bZs2baRly5bK6+PHj4u7u7t07dpV3N3dJSAgQPLnzy8mJiZSo0YNqVChghw6dEhJn5rv9vLly1K0aFHJli2bHDhwIIVPPXW+2xqehIOYmZqawtTUVG+PiLCwMKWK0dXVFdbW1qhXr94X73fz5s1639+6dSsGDx4MS0tLDBs27Iu3D3x+RhoSEoKQkBC8efNG1WipqdG/f3/0798fx48fR2BgIEqXLo08efKgXbt28PX1VarCU2ozom0fldI4Hcm1A7l79y6WLl2KpUuXIiIiApUrV8bixYuxdOlSZQyR5s2bo0WLFknuDNSOFmyIiGDXrl1YtGgRdu7cmapBGdPSggULMGPGDKxbtw6BgYHw9/dHtWrVICKqHqF+ST4SPqrSN8icfMEAZjlz5ky2ZgGAwfZU79+/x4wZMzBz5kyl7cXdu3fRqlUr3LlzB6tWrdJ73np6eiq1PYklrAVK3D08MW0vrunTp+O3335DtWrVMGTIEDx9+hTTpk1Dnz59EB8fjylTpuCHH35Ap06dkt2e1t9//63ziO/gwYOoU6eO8rp8+fIICAhAhw4dUKNGDRw5ciRJD5cePXpg2bJlydacJeTo6Ig7d+4YnK/o9u3bOo+7zM3NUbZsWaVWLTw8HFOmTMGsWbOURxjJlQXtMBb37t1Tdd5qBQcHY+DAgbh3757yON/W1lZZr7asaEdHVzPMhhqJH6MZmv9Mn0qVKqFSpUrYuHEjOnXqhPnz56NNmzYYMGAATpw4gS5dumDfvn162x+ePHkSnTt31jsatHZ6k9y5cyvngYhg/Pjx6NKlS5LHUpMnT9Z59H78+HGdkdrd3Nzw999/Y+fOnViyZAkqV66Mbt26IWfOnMidO3eS4R7UfrcTJkzAiBEj4Ovrq2rOydT6rhstX79+XXmkFRISgg8fPqBMmTIoX748ypUrh2LFisHc3BxhYWHKiJ729va4ePGiqkdZtWrVwqJFi5RJ5vT566+/MGDAAJw/fx49evTAwIEDkT59etUDoiXsAn/48GEsWbIEGzZsAPB57pz27dujdOnSqoKKgwcP6owImljiOaMSvr9+/XrMmTMHV69exdOnT+Hg4KB6nIlWrVqlmE/g/x7xREdHY/369ViyZAkOHz6MLFmyoG3btmjbtm2SQdUOHDiAwMBAbNq0CR8+fEC/fv3QoUOHFLs9Jted++7du0oVdGRkJGrVqoVGjRqhQYMGKeZBO0FnciPRfvr0CVFRUV/8qOXWrVsIDAzEsmXLlONr3LhxkjLwT/KR1l1qUztfmVZ8fDwCAwMxcuRImJiYYMSIEWjdujVMTExgZ2eHatWqYf78+QYbqKttc6HmfNdOEjt06FD4+vri/PnzKFGiBP744w+0b98ewOcyPGfOHNy5cyfFICAqKgqurq7YvHkzSpQogfj4eKRPnx4rV65URse9du0aSpYsiYiICLRr1w779+/HsWPHlEaivXr1QmBgIHbu3JniVBXayXcbNWqkDLOhT7169WBhYaE8Pv3w4QP++usvpcPH6dOnkS1bNpQtWxblypVTHTAkHEsoufP21KlTOgHAkCFDUuyAABguK2rbv0yfPl3Vd6Z2HqrEtCM9BwUF4fHjx6hQoQLat28PX19fVZMrV6lSBWXLlkX79u0xYcIE5f1r164pw66sX79eZ0wfQ8dWpEgR+Pv7o02bNnj48CGyZcuGy5cvK4+ijh07hqZNm+L58+d48OCB0mTCxsYGp06dSvaxWXLfbebMmbFgwQKdoD4tfdcBT2LXrl1Temrt3r0bGo0Gb9++RYECBZTo/+LFi8ibN2+S8Xr0jXicXEG/cuUKBg4ciODgYOV5aMI7ObWTGlaqVAlBQUFYunSpMhuydtC4hHNJqZl9PTQ0VNWAcolrRo4ePYrAwECsX79eGU3W2to6zX8Ujx07hiVLlmDdunWIjY1F/fr10b59+2TnMNOKiIjAypUrERgYiHPnzqFAgQK4ePFiknT79u3D4sWLsWXLFmTIkAENGzbEjBkzlBmoFy1ahBMnTqBKlSrYtWsXQkNDVT0T19L2XlLTPic1U1roEx8fj507d2Lx4sXYtWsXYmJi0iwfaU3tuB8Jy96mTZswePBgvHz5EoMGDULPnj117kpXrFiheuqVtGJjY4Pr168rU8xYWVnh7NmzyqjJt2/fRvHixVUPeLh79268e/cOc+fOxfr16zF8+HCEhYUpNRkbN27EqFGjcOHCBcTHxyszdR85cgRjx47FggULsGPHDlSoUEHVNQD4HCT5+Pigdu3a6N+/v1JDfP36dUyaNAk7d+7EsWPHlMFUT58+jezZs6NcuXLKoh1g85/Sd95evnxZVQDQq1cv5f8plRU11F6TE5+3yf0OfPjwQefm7YcfflB6oGrzpnZy5bt37+L06dOoVKkShg4dil9//RXXr19HhQoVUKJECWzatCnJAIaGjm3+/PkICAhQOuykS5dOZybzMWPG4OTJk/jzzz+/uEJA33d74MABWFhYKDWIf/75p07AbGpqilq1aqW4bYPS9AHZNywsLEzWrFkjnTt3lty5c4tGoxErK6t/1M7Dzs5O7ty5o/Pew4cPpU2bNmJmZib169fXeU76JUxNTSVTpkwSEBDwj7eVGk+ePJGxY8dKrly5xMXFRQICAlLdXkTr06dPcuHCBXn//n2SdVFRUXLhwgWJi4sTjUYjRYoUkVmzZintVL7E+fPnpWfPnsrrBw8eyIgRIyRr1qzi7OwsJiYmsmHDBmV9165dJX369FKyZEmZPXu2/P333yKi//lzSs/tK1SokGZj3aTG8+fPU5WPlDx58kQCAgIkIiIiybo3b95Iv379JCwsLE2OPbFDhw6Jt7e32NjYyKBBg+TNmzd6092+fVvatm2rvPbw8JD06dMrS4YMGSQ4OFiaNWtmMB/NmzdPcg4nx9nZWec8dHd312kPc+vWLbGzs1O9vbt370qOHDnExMREzMzMZO7cuTrr69WrJ/7+/srrmJgYqVy5smTMmFFsbGxk3759qveV0Pbt2yVjxoxKWxftkjFjRtm6dauIfG4jkzVrVpk3b55SlvR5/fq1zJw50+BnbGhdYtrzNmvWrJItW7ZkF+24PmrLytek73dA5HPbO0dHR7G0tJSmTZtKcHBwsm1w1Nq/f79YW1vL8OHDxc3NTWrXri2xsbGpOjaRz+3D6tevL126dJFnz57prOvatats2rRJNBqN1KxZU7m+mZmZSdWqVfW2V7p//74sWLBA5syZk+R6o/1ut2/fLkWKFNE5vsRtr9avX//Fn813W8Pz4sULpQr24MGDuHnzJszNzXVGXvbx8Un1XUBCBQoUwK5du3Qes9jY2ECj0aBnz54oVaqUwb+tW7cugM+Pfc6ePYv79+9Do9HA09NTp/p/2bJl8PX1TdJtLzlv3rzB7du3odFokCNHDqRLly5JmosXL+LmzZvQaDTIlSuXTtfdmjVr4uDBg6hatSratWuHWrVq6d3/06dPMXXqVAwbNkzveB5jxoxBv379sGvXLmWi1MR3IHFxcfD29oa/vz9y586NEiVKqM5nStatW4dFixbhr7/+Qs2aNdGyZUulO/eFCxeU6lszMzMMGDAAAwcO1HmmbG5urpMOUFeTBnx+tBEdHY29e/cqn3Pu3LlRuXJlpXv94cOHVW2rTJkyuHLlCgoWLAjg88SpsbGxynozMzN06dJF6T2WXD7UzjA9c+ZMvH371uDs0V26dIGjo2OyM6AbklLZ279/P9q2bYsRI0YkW5PQp08fWFtbY9y4cQA+330OGzZMGTNk7dq1Sq8nQ/MfDRgwAG/fvkWHDh3Qr18/bN26VW9Zrl+/PqZPn47u3bujZ8+eytxTie3YsQODBg3CpUuXACDFMgB8Hu356tWryJgxY5LelhcuXIC7uztWrlypvPfu3TuMHj0a1apVQ6VKlXTSa2s91FwDoqOjERwcjNu3bys9RKtWraqMmRQcHKxcQ8+fP4/cuXMrzQHKlSun3PWPHj0aFy9eNNiDsGnTpihcuDCGDBmid/2XSk1ZSQ0131lChmpRChUqhPbt28PPzy/FmdBTa8uWLWjSpAmqVq2KLVu2GOy9pfZxmyFqr3dt27ZFzZo1lZ6vZmZmCAoKQvPmzXXS1alTR6m513d8kyZNwqFDh1S3R0vii0Olb5xGoxELCwspVaqUDBkyRPbu3au3hiE6Olq2bt0qb9++TbIuIiJCtm7dmqoRSvX1GNDXg0BE5MCBA+Lp6anT08DExERy5MihjOrq6Ogoy5YtU7Xve/fuSc2aNZWeCdpeCrVq1ZJ79+6JiMjJkyelQIECSfZZsGBBOXXqlJIHNzc3KVKkSLIt/QMCAqRjx44Gj6dz587Sv39/KVOmTLIjOa9du1Z+/vlnMTc3l1GjRqU40nJKd/YZM2aU69evi6mpqQwaNCjJd5u4xmPlypVSuXJlsbW1laZNm8r27dvl48ePX1QzorV161bJmDFjku8+Y8aMsm3bNhFJvqwk/P5WrlwpZcuWVbZtZ2cn7u7uyt2unZ2dLFq0SFU+Em474ZJ4n/nz55cjR44YzN9ff/0l+fLlk7Zt26a4tGvXTkTUlz1zc3NJly6dzneaeBERyZ8/v04vj8R3s4cOHRJzc3Nl2/qcOXNGcufOLc2bN5dRo0YZTDd27Fhp0aKFHD16VM6fP28w3Zw5c2TWrFkioq4MqJVSjYe21kPNNeBLvH37Vnbu3Cn9+/eX4sWLi4WFheTLl0+6d+8uhQsXTramad++fVKkSJE0H1E4NWVFLTXf2datW3UWGxsbWbBgQZL31apRo4ZOzdSYMWMkPDxcef3333+Ll5dXknyamZmJvb29znvW1tYyY8YMZbGyspKhQ4fqvDdjxoxUfSZqlC1bVmrXri1PnjyR169fS+fOncXd3T1JuqxZs8rp06eV14nP2YsXL0rGjBm/+Di+2xqe3bt3o0yZMjqt+vWZMWMGtm3bhv379+tdX7lyZdSvXx89evRI0+O7ffs2ChcuDG9vb/Tu3VuZjPTq1auYOXMmzpw5g4sXLyo9FapUqYIFCxbA2dlZ7/YePXqE4sWLw9zcHN26dYOXl5cyuem8efPw6dMnrFy5EvXq1YOXlxf69Omjk2batGm4ceMGTpw4kexYLwmtX78ef/zxB8qUKaN3/bFjx9CxY0e8fPkSp06dMvg8/t69eyhRogSCgoLQuXNnuLm5JTvfir+/P2xsbJK9s8+SJQvi4+Oxbt065M+fH35+fvjll1+QPn16vTU3wP81Kly6dCnev3+P169fY+3atWjcuLHe4zB0F33s2DGUL18edevWRUBAgM5ozFOmTMGOHTtw6NAhgwMkJu5lkjlzZrRr1065W0p8V/THH39g7dq1ypg4yeXjwoULevcpIlizZg1mzpwJOzs7REVF4dq1a0pblcQePnwILy8vVK1aVe964HPt3b59+xATE4NLly7B29s7xbJ3+vRpg9tLqHXr1rC3t8elS5eUctWnTx/89ttvyjny4MEDZMuWDffv3zfYI+nBgwfw8vJC5syZsXnzZoODFF66dAn16tVTPcqu2jLg4+OjantqqLkGnD59+h+NbBsXF4dTp05h27ZtmDt3LiIjI2FjY4MrV64kW1YKFCiAyMhIVeN7qR37TO2gg2rbyqn9ztTMIabRaFT3Eh05ciSePXuW7EjQbm5uqsb26tevn07bTkPHlpYjfL948QJ58+bF4cOHlXaCUVFRcHBwwN9//63TgcPKygrXrl1TvuMzZ86gcOHCSnm4d+8e8ubN++U9Yr84VPpOFC9ePNm7re3bt0vx4sXTbH+fPn2SzZs3S/fu3Q3ezcTHx0vFihWlR48eIvL5OX+FChXExcXF4J1D27ZtpWzZshIdHZ1k3fv376Vs2bKSLVs2adCggd7nyPHx8VK/fn1p0qSJ6rzY2NjIgwcPDK5/8OCB2NjYiI2NjVy4cMFgugsXLoiNjY2IfH7m37p1a7G1tTU434qaO/ucOXOKyOe8L126VMqWLSuWlpZSt25dMTU1TXZsofj4eNm1a5c0adJELC0t5YcfftBpE5TSXXSNGjWSHZ+kU6dOUqNGjSTvx8XFycKFC8Xd3V2yZMkigYGBEhcXJz/88IOEhoYazO/Vq1f13smmlA+tvXv3SrFixcTe3l6GDx8u7969E2dn52TnjgoJCRFnZ2eD67ds2SL58uWTdOnSyfjx46Vx48ZpVva047A4ODjIyZMnDaY7efKkaDQa2b9/v8E0+/btExcXF7G0tNQZmyWxu3fvipWVlcH18fHxOjWTX1oG/olffvklxWuAtrZNrbi4ODl58qRMmDBBqlevLvb29mJiYiJZsmSR1q1by9KlS8XR0THZuaaOHz8ujo6Oqsf3UlubpYaa+RK10vo7K1KkiMGlaNGiYmNjo9R2JpyvKvH5rXacoK/B2tpaZwyjatWqydOnT5XX2mNLnAeRpOMdiYhkzpxZ9u7da3B/u3fvFldX1y8+XgY8KUiXLl2KP9rp0qX7x/tJPIla/vz5kw20tm3bJvnz59d5b9asWWJmZiYFCxZM8ngpc+bMyT6CCAkJERMTE53qxMROnTolGTJkSDYf2gaKhQsXVv2jqHai1ITWr18vpqam4uDgkKSK2s7OTqd63t/fX6dR5f379/X+ON28eVMGDhwobm5u4uDgIM2bN5eNGzfKtGnTDDbKfPXqlUybNk0KFSokIp8bpbu4uIi7u7uMGzdONm/eLJs2bZKxY8eKu7u7uLq6iqOjo1y8eNFgfi9cuJCkTG3cuFHy5MkjTk5OMnnyZJ3HqJaWlnL79m3l9YsXL3R+XG/duiUWFhapyofI58c5lStXFktLS+nevbvOBatmzZrSoUMHg3lo37693ov/0aNHpXTp0mJjYyP9+/dXGp9nyJDhH5e9K1euSN++fSVTpkwiIuLj4yNjx441mH7UqFHi7Ows9evXN5imbt260rhxY3F3d5ddu3YZTPfnn3+Ku7u7fPz4UYYMGSJly5ZVBhmcNGmS2NjYiIWFhbRq1UpiYmIkXbp0qS4DX+rZs2fSo0cPAZDiNSBz5syqt1ujRg1xcHAQjUYjP/zwg7Ro0UIWLVqUpBFs+fLlZcCAAQa3079/fylfvrzy+tixY9KhQwdxcHCQ4sWLy7x581Q1ak6NhGUlNY+M1Hxnbdu21dsEQq3z589LtWrVxNzcXDp37pxmAc/Tp0/lhx9+0MnbP6Xm2LSP/Q4ePKgzqKetra3s3LlT571ffvlF6tSpY3B/tWrVkqZNm37x8TLgSYGdnZ2cOXPG4PozZ86kqtdFQpGRkbJ48WIpVaqUmJiYSKVKlWThwoXy8uVLsbe3T/aZ+t27d3X2e//+fSlfvrxkypRJfvvttyS9yCwsLJKdNfrRo0cCQB4+fGgwzcOHD8XS0lLvOn2zc6v9UZw4caI4OzvrreUJDQ0VZ2dnnRnpT506JXnz5hUvLy9ZtGiRLF26VGdRc2dvaERfkc93rdu2bZN69eqJhYWFpEuXTiwtLaVJkyaye/fuZHtSqKlJMzU1VT2SrZpeJlmyZJGdO3ca3N62bduUkcXV5OPWrVvStGlTMTU1NdhL6cCBA2JqaioBAQE6vbHCwsKkb9++YmpqqlNzcvnyZaldu7aYmZlJu3btkpRFS0vLLyp77969k4ULF0rJkiXF1NRUSpcuLVOnThURkQULFoiNjY3s2LFD72diY2Mjv/32m1haWkqjRo3k5MmT8ubNG3nz5o2cOHFCGjZsKJaWlnL27Flp06aNlClTRu+xxcfHS5kyZaRNmzby22+/iYuLi/Tt21fy5csnXbp0EQ8PD1mxYoUsW7ZM3N3dZeLEiakezTgl4eHh4uvrKxkyZJDMmTPLjBkzJC4uToYOHSrW1tby008/iZmZWYrXAAsLC9X7bNasmcyfP19u3ryZbLoNGzaImZmZzJo1S2c0+0+fPsnMmTPF3Nxcb8+bqKgoWbp0qRQvXlxsbW11gp74+Hi5efOmXLlyRXUtjaGyknjGb3t7e70Bhdrv7EtnEL979660aNFCzMzMpGnTpsrnmpqRoK9cuSKzZ8+W+fPnK4HNy5cvxd/fX6ysrATAF89uvmrVqiSjO6sNxlIa9Vr777lz58TS0lIaN24sp06dUs7HkydP6pyPX4oBTwq8vb1lwoQJBtePHz9evL29U9xOdHS0TJ48WUQ+38G0a9dO7OzspGjRovL777+LqampTgNYfVWACSUs5AsWLBB7e3tp0KCBwakBsmXLJsHBwQa3t2vXLjEzM9Ppjp3Y+vXrJXfu3MrrlLpzq/1RjI2NlfLly4uZmZlUr15d/P39pU+fPlK9enUxMzOTcuXKSWxsrHz8+FEGDx4sFhYW0qdPH71BhYi6O3sfHx+D6xN6/vy5fPjwQVasWCGVKlUSExMT8fDwkGHDhul9xKGmJs3MzEyZdkCfxYsXS8GCBaVGjRpiYWEhnTt3TtItNKG2bdtKqVKl9K6Lj48XHx8fadu2rap8dO3aVSwsLKRatWrJNr4VEfnjjz/E0tJSTExMlAaTJiYmYmlpqXSfVjsMQ548eVJV9o4cOSKtW7cWOzs7KViwoJiamipTwCTUrFkz0Wg04uXlJfXr15cGDRqIl5eXmJiYKI/I1HTBvn37tjg6OkqJEiVk7dq1EhoaKhcuXJA1a9ZI8eLFxdHRUW7duiXZs2eX7du3i8jnwNHExETWrFmjHM+6deukQIECUqhQIVVlQJ8CBQokCQ7VDPGv5hqQNWtWg+u1zp49K7Vq1TL4SFmfwYMHi0ajEQcHB+WRjYODg5iYmBis/Tly5Ii0bdtW7OzsxNvbW+lUcu/ePSlUqJDyPWXNmjXZm9KUyoraH22131lK1+7EXr58KT169BALCwupWLFikkb0KXX9rlmzppiYmMj27dvFwsJCCSRy5MghBw4ckAwZMkj58uVl+/btqT62hBIHgtpjU/PZJZzOJblF5PPj7gwZMiQ5H52dnWXz5s1fdOxaDHhSMH/+fLG1tVUuYglt27ZNbG1tZf78+SLyueDu2LFDdu/erdzJxMbGyvTp08XFxUWcnZ3Fy8tLsmbNKoMGDdIJcBL3+NFXBZhw2b9/v5iYmEi1atUkffr0EhQUlGw+evfuLQULFtQbED1//lwKFSokJUqUkCxZsuh9dn7x4kXJmjWrDBs2TNauXStVqlQRGxsbady4sWzZskViYmL09lpS86Oo/ZwmTpwohQsXFhsbG7G2tpbChQvLxIkTJSYmRkREChYsKJ6enjpztOij5s5+wYIFyW7DkHv37smwYcMkW7ZsYmpqKpUqVZJVq1Ypj5jU1KSZmpqKk5OT3lqZHTt2iLOzs0ydOlV1L5Pbt2+Lg4ODlChRQtatW6f8GK9du1aKFy8uDg4OcuvWLVX50Gg0Ym1tneJcO1qPHz+WqVOnSrdu3aRr164ybdo0nfxbW1uLjY2NDBgwIEkvlYTLsGHDVJW9iRMnSp48eeSHH36Qfv36KW2Xkusxt3r1aqlXr554eXmJl5eX1K1bN0mvwPfv38umTZtk0qRJMnHiRNm8ebNERUXppDl9+rTkz59fp8eaRqOR/PnzKz9SVlZWOsGIlZWVXLt2TXl99+5dsbe3l6lTp6oqA/roGzslS5YsStuHO3fuiEajkd69e+ukUXMN0P7Nnj17pF+/fjJo0CBlX9euXZN69erpXHcqV66cbHlP6OTJk0rNb40aNaR3795JamLVjO/VtGlTyZ07t6xcuVI2btwoJUuW1NuOUm1ZUfujrfY702g0quaki4yMlBEjRoiDg4P8+OOPsnv3br3pWrduLW3atElxKVmypPTq1UvevXsnU6ZMEY1GI7lz59ZpVqDRaOT27dt6579LuOijr9wlrn2yt7f/onnIEouKipJNmzbJxIkTZeLEibJp06YktUtf4rsNeNQ+txX5f+y9d1gVSbc9vM4BJEg2AA7BRBLjOIphRkVFxBxQATFhxAQqIgOOioqKimJOJDOgKJizohgwAgpizooRRJHM/v7gnv7RJ9ZB5r73ft71PP3o6W6qu6urq3bt2nstouHDh0vMEm1sbEgoFJKrqysRVaTh6uvrc51h27ZtKSMjgywtLalRo0a0bt06ys/PZxZRY3UBsnQ4169fpy9fvpClpSXp6OiQl5cXl344ceJE0tHRIUtLS3rz5g116NCBVFRUqGfPnjRjxgyaMWMGOTk5kYqKCrVv354KCgqY07lFUDQosmLs2LH07ds3ueeIXOMsM/ufxenTp8nd3Z20tLTI0NCQiNhm0ebm5uTi4kICgYBsbGy4mZq1tTUJhUIaNGgQlZWVSSzVydqIKgYTW1tbicHY1taWrl27xvwcmpqa1SaoSsROw1BQUMDc9gICAiSEfn+GIkBZ3Llzh+Li4ig2NlbCC2ZkZMSL8+jQoQO9fv2a+33//n3S1dWlsrIypjYgDdIGHlVVVXrz5g33W1NTU8J4ZOkDPn/+TNHR0SQQCKhWrVpcyvXOnTtJR0eHRo8ezZX75s0b6t27N+nr6zNTY8iDs7MzaWhoUL9+/SghIUHmUpWJiQlv0vPq1SsSCoUStCKsbYV1yYj1nQkEAoWTFAMDAzIyMuImA6JJirSNFXp6evTgwQMiqgjGVlFRoWPHjvHOkUU7IU4/IQ3S2p34swoEAtLT0+N+6+vr/8cCqqXhl01LV1FRYUr1E+mixMXFYc+ePXj06BFHwuXu7o6hQ4cCqJB4qFOnDubOnYvIyEiEhYWhfv36WLBgAUaMGMERBb558wbR0dEc8ZxIRM3e3h6pqalcKjKrxo8onfb79+9QUVHhkV+lpqbin3/+wbFjx1BWVoacnBwEBAQgNjaWE+TU19fH0KFDERwcjFq1aqG4uBirV6/G3r178fDhQwCAlZUVXF1dMWPGDKirq2PChAlKpXNXJ0pLS/HgwQOoqanx0tITExMxb948ZGVlcSmLMTExiImJ4Z7D0tISbm5ucHV1rZZ7qawJo66ujpycHPj4+ODcuXM4e/YsR7wmwocPH+Do6AgHBweEhYUhNjZWaj0rc3+lpaU80sfU1FTe88rTRpP3HP8JsLS9JUuWIDo6GoWFhXBzc8OIESPQtGlTuW3vzZs3iI+P5xHFDRo0iNObqk507doVo0aNkpnqvG/fPoSEhODmzZsAUKU20KtXL0RERPA0+lRUVJgo/ln6gJYtW8LV1RX+/v6Ii4uDq6srWrVqhbi4OE5IuTKio6Mxc+ZMdOnSBXPnzpUgIZWVyi8OoVAIExMT1K1bV66UQmpqKt69ewcjIyNun7a2Nu7du8ejtmBtK0KhEM7OzhzJ7OHDh9G1a1eOsqSoqAgnTpzgxgJF70woFCIsLExhWnxl0j6BmICt6LdAIEBxcTEyMjJgaWkpQW7448cPPH78mJM/ys7O5sY0HR0dpKam8t6ZUChEfHy8QqJDaXI/ycnJaNOmDY+Mt6pyG/JQWlrK6wdEBKTu7u7w9vaWS1mgCL+swSMUCiUaR2XuEnGDRxFq166NpKQk2NnZ4cePH9DR0UFMTAyGDBki82+qKmxZGW/evMHQoUNx7do1qKioYOrUqVi8eDEmTZqEvXv3on///pg1axaPz4OI8PHjRwBAnTp1lFa1BirYRkXq3CkpKXBycsLRo0f/VU2mzMxM9OnThzMG+/fvj02bNmHo0KFIS0vDuHHj4O3tLSEgWp148eIFp87+6tUrTqxv8ODB0NDQQE5ODuzt7ZGdnQ0PDw/Y2Nhw975nzx4YGxvj2rVrP82smpmZiYiICOzatQvv37+v9ueQBnmCqlVFWVkZDh8+zKThVhlJSUmIjIxEfHw8GjVqhIyMDCQlJUlwoGzcuBEzZ85EcXEx9PT0QETIy8tDjRo1sGrVKkyePLlankMEEWO7LK6YPXv2QFVVlZsoVRcUDdoiHDhwAID8PqCysVReXg51dXWcOXNGrubdmTNn0LNnT1DFqgFvwGbtQ1n11BYuXMgz7oCKCWtaWprUelfUVpRhR2eB+NgiC6yT2vPnzzMx0Y8cORLnzp3j+pYOHTogLi6Ox6vUsmVLpnv7T6GgoACOjo64evUqunfvznFFZWVl4cyZM+jYsSNOnTols49SiP+EW+l/Aqqb20BaeeJxE7KQm5tLGzZsoNatW5NAIKBmzZpRSEgIz0WblJTES0XOy8sjLy8vGj58ODVv3pzWrVtHXbp0IaFQSL///juNGTOG55b98eOHQsbod+/eVUnzRlY6d3Wjb9++1LVrVzp8+DC3ZGVpaUlBQUE/lQZaGQUFBRQdHU0bNmzgsiQKCgpo165d1LVrV1JRUSFTU1MKDAyUqUHz5csXmjRpEufiFQgEZGBgQBMnTqRPnz5VWYdKXkYS67Mp8xwiSMvA+1mI0zBUVW8pLy+PNm3aRG3btuWWvkJDQ4moIq5CFDRfmRvk7du3NGPGDFJVVZWb3fZvorq1yFhiPDw8PJhY4xX1jeIIDQ0lLS0tGjVqFD1+/FhqIGp1QtqSkfhSijTeKXlthQWs76yqWVrScOfOHWYmepYwCPxEltZ/B/755x8yNzeXmbFrbm5O8+fPr3L5v6zBo0yqH2t5omCw3Nxc0tHRobS0NKZgsMoQiaixpkrWq1ePyzh49+4dCQQCWrp0qUS5YWFhcmnZu3XrRr179yYXFxeZ5wwZMoQWL14s87h4Ond1w8jIiEtJzMnJIYFAUOXgYyIiX19f3uBdVFRELVu2JDU1NdLT06OaNWvSlStXOIG/wYMH07Fjx+RKW7x48YKLzSovL6f379/T+/fvefFarJIbIrBmJCmCss8hLwOvKpBHw7Bw4cKfantEFcHN3t7eHPV8p06dKDAwUOb5gYGBZG1trZQ0zM+ipKSEXrx4oXQbqA6w9AHr168ngUBAO3bsUCiN8OTJE+rYsSMZGxtTQkJCtd5rWloa7du3j/bv3y8x+CkT2yYL4m2FBazv7GcyoYj+3wS4VatWXLagIoqS2rVrM2VBmZqayhV6VRYssUrKyHdYWlrK7Wfi4uLI0tKyyvf7yxo8rKl+ypQnS3tIUTAYUUVHWDkgl9UDJRQKeSnLWlpaUlN/WRijNTU1mTRvFKG4uFguD05lsHJoXL9+nQQCAW/WW7NmTS5Iryqws7PjMVNHRkaSgYEBPX/+nMrLy2n06NHUq1cvCg0NpY8fPzKVyTK7Y9WhqkpGkjywPIcyGXjy8PbtW5oyZQoRsdEwsOotsUCkDK2jo0NZWVkyz8vKyqrWGa+iNH6iilmqUChkbgPVAdFERF9fn4k1njXQvGbNmjR48GC5berOnTtM3mWR0cmip1adKC4uZtZ7+7ff2dmzZ2n48OGkqalJNjY2FBgYSLdv31aKiV4RWNqoMqhsYEZFRZGGhgYtX75cwvjs0qULk05aVfm4WMEusf3/M4gHUXl4eEicM3LkSKaySktLOZ0iRTh27Bg+f/6MESNGcPuCg4OxaNEilJaWomvXroiNjWUqS4TK67pCoVDq+uajR4/QokULmWU0b94cBQUFsLS0lHmOpaUlnjx5ovB+MjMz0b59e7lr95mZmQgPD8fu3bu5GBRFgdcCgQBCoZA7JhQKfyqA7eXLl7wg11OnTsHFxYULBPf29kavXr1w9OhR5jKJISTu2bNnMnWFAMDU1BTPnz9HQEAA5syZg4ULF0qs3VcFM2fOVHiOu7s7/Pz8EB8fz1NUl4bMzEycP38eampqGDp0KPT19fHp0ycEBwdj8+bNaNCgAZo0aYIfP37A3d0dKSkpXH37+/vzynry5AlT2/vy5Qt+/PjBi0vIyMjAypUrkZ+fjwEDBsDd3R0AUF5eLrd9/EzbEeHr16/YvXs3wsPDkZaWxhyvwtoGfgaPHj1CZGQktm/fjpycHJSVlSnsAx49eoTy8nKm8nft2iW13xSvk1WrVuHQoUPo16+fxLm6urpYu3YtXr16BQcHB3Tr1g22trbYtWuXhJ5at27dcO3aNeakCNa2Ii9Iv7Lem4aGBtM769q1q9Tjenp6sLa2xpQpU7g4w9evXyM6OhqRkZHIz8/H0KFDUVJSgvj4eO45LS0tceXKFZnB38nJyXK/ncrv486dO1LjnET35uvriz/++ENmWeIQH0enTZuGwYMHS6ivy4v5y8vLw969e1FUVIRatWrhw4cPMuMws7Ozoaury3x/4vhlDR7WALSYmBi5GRMlJSVwcXFBYmIiU3ldu3bF4MGDud9XrlzBvHnzsHDhQtja2iIwMBCLFi1iKguoGGC7devGZUYUFBSgb9++qFGjBu+80tJSfPz4UeYHKwpgfPv2rcxz3r59yzM4lMX3798RExODiIgI3LhxA+3atYO/vz9ev36NYcOGyQ28Tk5ORseOHWFlZcUFWH7//h2tWrWSuKcvX75Ivf6LFy+Qn58PGxsbCIVCCIVCnoFy7do1/PPPP9xvfX39fyVjSVNTE8+fP5dZz8+fP4empiYCAwMRHR2NnTt38rJMxKGMEaAInp6e2LhxI5KSkngZeOI4cuQIBg8ejJKSEgDA8uXLsW3bNgwdOhRNmzbFvn370KdPH9SoUQOurq5wcHDgxBalQUVFhantTZkyBSYmJli1ahWAisy3v/76C/Xq1UOjRo0wevRolJWVYcSIEbCzs0NiYiJmzJghtcyEhAQAqFLQfuWEAwsLCwwePBgRERH4/fff5f5dQUEBAPY2oAjv3r1DcHAw1q9fz5UfFxeHiIgIXLt2DWVlZVi9ejU8PT1hYmKisA8oLS1VeE0RxI0dWXUyceJE3nclDh8fHyxcuBAXLlyAo6Mj4uPjee+kVatWcHNzw6BBg7BgwQLExcUx3R9rWzl48KDUv09MTERAQADU1dUxb948rFy5kumdyTIqc3NzcezYMaxfvx7JyckICAhAcnIy+vTpg3Xr1qFnz55QUVHB5s2beX/n7u6OuXPnokOHDhJGT1paGubNmwc/Pz+J60l7H926dZMqDpubm4sbN26gffv2OHXqFO7evSv1GcQxffp0pvNWr14tsa+0tBQbNmxAcHAwfvvtNyxatAgHDx7EkiVLEB8fL7WcZcuWoUuXLkzXlIZf1uBhxejRo2FgYAAnJyeJY2VlZRgyZAhu3ryJuLg4DBgwgDM0nj9/DjMzM25m/uPHD6xfvx737t1DaGgoV8b+/fvh6OiIwMBAABVqsd7e3gCA8PBwTtm2tLQU0dHRqF27NgDg27dvACChuNu/f3+pz3H8+HGcOXMGrVu3lnr89OnT0NHRQUJCAtq1ayf1nIMHDzKlOYsjOTkZ4eHhiI+PR4MGDZCZmcnLkvDw8MD379+xZs0axMfHY82aNUhKSkKLFi3w8OFDbkbCaqSKZrQ+Pj7cvgkTJiAiIgIAYG1tjZMnT8LGxgaHDx/GzJkzkZGRgZcvX8LBwYH7mxcvXvBSX1lR+b1Jg5GREXbu3IlOnTpJPb5jxw60bdsWAQEBCAgI4LJM2rVrh0aNGoGIeIaYMkaAImzduhVr1qzhMvB8fHzg5OQEIuLN/IODgzFp0iQEBwdj69at8PX1xaRJkxAfH897rmfPniE6OhpeXl48GgZxI6NVq1ZMbe/atWu8drBjxw4YGhoiNTUVqqqqWLlyJTZs2IARI0Zg8uTJ8PLy4qgURJOC0tJSbNmyBXPnzoVAIMDo0aN5qbbScODAAabZeGZmJlxdXWVmab179w4PHz6Evb09UxsQlanIk3b9+nWEh4cjNjYWVlZW8PDwwL59+2Bqaoru3btDW1sbdnZ2CvsAOzs77ve+ffukpga7uLhw57DUCYt3+dGjR3j27BmOHz8u1QAVCAQICAhAr169ZJYjDmXaSmVcvnwZc+bMwZ07dzB16lT4+/vDwMAAly5dYnpn0gb3ypgyZQoCAgJw6tQpTJ8+HV5eXnI9NDNmzMDx48fRunVrdO/eHTY2NhAIBLh//z6XuSQy6lnehzwsWrQICxYswMuXL3n7X716BRMTEx7lgEAgYDZ4xLF7927MmzcPBQUFWLBgAfd9Nm/eHPb29mjXrh1mzpzJy3JdvXo1MjMzce3atSpdE8Cvm6XFum4bFhbGBa9WRmlpKQ0YMICMjIzo/v37SumxVBYjbdOmDU8n6vnz56SlpUUWFhZMqsCsYGGMnjhxYpU0b8QhilNgjUFhDbxmRbt27XgU8CLZjF27dtGtW7eoffv2NHbsWNq/fz+pqalR165dycjIiPr06cMrx8/PT2mSQoFAQGZmZnLfmbGxsVI6VCLIyjKpX78+nT9/njtvxYoV1KhRIy4+asWKFUzyJ9IgKwOPheRMHJVjFAQCAc2ePZsrg1VvSVzPyNnZmXx9fbnfDx484EggiSoCTUWSBiKWaJGkgY+PDwkEAho2bJjCDCdnZ2fS0dEhNzc3OnLkCHeP4m25devWPAZxcdy5c4eEQiGz7AqLXABRBcmej4+PRMxS5ftjZY0vKyujoUOHkkAgIGtra+rfvz/169ePrKysSCgU0rBhw6i8vJy5Tlj1CKs7fkPZtqJI701Z/ThZSEtLI2NjY55Iatu2bWndunX04cMHqfFyLEz0rO9DHjIzM6lWrVoS+xVl6rGed/z4cWrRogXp6urSwoULpbInX716lZo0aSKVRPXy5ctMzyELv6zBM2DAAJlb3759ORE4IqJ58+aRgYEBxzBaWlpKgwYNorp163INiTXIuGHDhhwT77dv36hGjRq8jJtbt24pVIWuDEUBlyUlJVwAMQtjNIvmjSxGUNEWGxtLQqFQKaZTlsDrlJQUXlni4peFhYUUGxtLhoaGPLbbSZMm0aBBg7jf58+f54zF06dPk4+PDy1btkxCSmDBggU8Q0IWRBkfRIo10ERgldxQdM06deoo3bGL8PHjR+aMDfEMPGntvbJiuzxIo2EgYmt7devW5QxnIqJatWrxsjoePnxINWvW5F3v6tWrNH36dHJ2duYkDa5evUpE7O9LRUWFZsyYISGUKd6Wvb29JSQdKuPx48ecMjhLG2CRCyAicnR0JB0dHXJ3d6fjx49z34b4/bH0AaGhoWRoaCjVMEpMTCRDQ0NavXo1c52w6hEqq6emCKxthVXvjejnv1vRdfX19bnf+fn5FBERQR07diQ1NTUSCoUUFhamNNUG6/uQB2UNHhEjumirUaMGeXp6SuxPSUmhLl26kIaGBvn4+DAlgdy5c4diY2N5jObfv3+XaPvK4Jc1eGQhISGBmjRpQvr6+jwvw9SpU8nExIQePHhALi4uVLt2bd6gymrw+Pn5kY2NDe3YsYNcXV3J3NycN4hv2bKFOnbsyHy/4p4lGxsbngdJPL0+NjaW+vfvT02aNCFbW1vq378/xcbG8spUpHnDKnsh0sQxMzMjPz8/zmBUltpd1rPK8qJpamryDIDmzZtTWFgY9/vFixekoaGhoGbl4+vXr7R582Yuq6VFixZS71EeqkNyo7i4WCkjICcnhyZPnsylmotE+aZMmcKTVpGH9+/fS2i91axZk44ePao0Lb6IhkEERW2vT58+5OnpSWVlZbRv3z6qUaMGffnyhTt+5MgRsrGxYXqOzMxM5iwtZWbjykBRG1DGk/by5UsKCgqi+vXrk5GREU2fPp1UVVUlBnBFfUCzZs0oIiJC5j2Hh4dT06ZNmeuE1bPEqqeWk5PDMy7c3d257NqBAweSi4sL5eTkMLcVVr031nemCOvXr6e2bdtKPZaVlUWzZ88mY2Nj0tDQoL59+zKXWx1tdOHChdS5c2eJ/bIMns6dO1OXLl3kbg4ODiQQCEhLS4tmzJjBSZpI2xRBtHpQVfyyTMvikLVuWxkjRozA/v37oa2tjbNnz/ICyFiZm799+4aJEyfiyJEjMDY2xtatW/HXX39x5Tg4OKBnz5482nh5GD16tMLrmpiYMGdesEBZ2QtFTKdCoZCjRgeA9PR02NjYSARep6amMj2rtbU1goODMWjQIHz69AnGxsZISUnhYheuX7+Ofv36ITs7GwBw48YNqbEK0rIVkpKSEBERgfj4eBQWFmL27NkYN24cGjduzD2LPCZTZZiFWYOR+/bti7p162Lbtm04cOAAhg8fjuzsbK79Hj16FL6+vrh8+TLat2+PN2/eYPjw4bwsmD179sDMzAzJycnQ09PjrdW/f/8emzdvRn5+Pvr164c///wTQqFQgg5fBBaW3dLSUhQWFsqNdZKG1NRUdO/eHd++fUNpaSkCAgJ4Qf4jRoxAzZo1JQI/pSEtLQ0tW7bE+/fvmZlnf/z4gZiYGERGRuL69esoKyvDqlWr4OnpqTCrrSqQ1q+IywVIw+nTpxEZGYmEhASYmZnBxcUFLi4uCoOqgYqA6gcPHsgMzn3x4gVsbGy4AGyWOvHw8MCePXtgY2MDa2trLgbl4cOHGDp0KPbu3YvCwkJ069YNKSkpcHR05ILcMzMzcebMGbRt2xbnzp3DunXrkJaWhl27dnF14uTkxF3r6tWrcHV1xYABA5jaytatWxXWiTKM0YcOHZK6/+vXr7hx4wYiIiIQHR0tl4Vf1E9ERkbKLE8W5L0PWXGQons7fvw4Tp48KZFpJt7XKov69esrTA4QCAR4+vSp3HPS0tLw+++/M78LiWv86gZPRkYG/P39ceLECYwcORJBQUG8AaZyKm9JSQm2bduGv/76C82aNeOVExYWhu3bt3P6KW5ubggLC+OCXnNzczFmzBjmFyUUCqGtrQ1VVVWZqc4CgQC5ubnVJpEhHqgmC/JSM0VITU1Fy5Ytefu+ffuG3bt3IyoqCrdu3ULbtm3h4uLCBWArQlBQENOzLl68GGvXrsXkyZNx7tw5fPz4Effu3ePKCQsLw5EjR3DmzBn4+flh5cqV0NbWRsOGDUFEePr0KX78+AFfX1+EhITg3bt3iIqK4gIB3dzc4O7ujvbt20voNwUFBWH27NnQ0tLi3XtWVhaXIvz582ecO3dO4fNu2rRJIhjZxsaGC0Y+fvw4IiIi0KxZM6aOXUNDA2fPnsWZM2ckgrGzs7PRo0cPlJWVoWPHjtwg8O3bN9jZ2aGwsBAmJibIzMxEYmIiL7hVHjIyMphoGFjbgLm5OT5+/IgrV67A2NgY9vb2vONHjx6FnZ0dT1NJFtLS0tCqVSsUFxdL6D+x4MGDB4iIiMDOnTuRm5sLR0dHhYNTfn4+bt26xXyNLl26KJQLAGTrVYnkQCIjI5Gens7UDxgaGuLChQsyy7x79y46d+4sNRtSXp0o0iME2PTU7O3tMX/+fC6AWbwfOHjwIBYuXIg7d+5UW1sBgIsXLzKdJyuLSEdHBzY2NvD19eUZO0SEW7du4fnz5xAIBGjQoAFatWpVpexBcYi/D4FAIDURQ1dXFzY2Npg5cybs7e2Rl5fHO25qaork5GSJumrZsiVu3LiBWrVq/fS9suBnDZ5fdkmLdd1WkbuussuOhaxLHkT0+i1atKAmTZpQrVq1yNvbW+7SAOtSmiKVXKFQSADkKuiK4nJkQZwhtEGDBjJjRKrCdMr6rGVlZTR37lxq2bIl9ezZU+Lduri4UHh4OEVHR5OGhgatW7eOI6sjqlgmWrNmDWloaND27dtJXV2dPDw86MSJEzx2YkWuYlnMworaiKielQlG/vDhAyUkJEhVRj9y5Ag9ffqULCwsFCq5q6qq0smTJ7l969evJxMTE8rNzSWiikBuUQwKCxwcHGj9+vXc78uXL5NQKKTFixdTfHw82djY0IwZM2S2T9a2J8KnT59o9erVTPeWmppKAoGAtm/frnCTh9LSUjp48CDT8oPIJc/aBliXj8vKymj58uXUoUMHatOmDf39999UUFDAuzZLH6CiokK9evWiSZMmyXyGiRMnUq9evaqtTpRFrVq1eISjrVu35i0pPXnyRCKOSxqUaStExPzOlMG5c+eoQYMGEkSLjRo1qlKsSl5eHp06dYqOHj3Ki5NR9n2wEun+LKu0CKzv4v+WtKoILS0tCAQCTJs2DR06dJB5njSyrOrGmTNnEBERgYSEBNSuXRuDBg3CmjVrkJKSgsjISMTGxqJx48YYO3Yshg8fziNeUlFRwcOHD1GnTh0QEbcsIbLE379/DxsbG040UBquXLmCdevWoaysDNevX5c4TkSIiYnB2rVroa2tjQ8fPvCOS+N7GDx4MFq3bq1QqK6kpIRHAJeens5bWhJfNpQ32/306RMcHR2Zrf+2bdvCzc1NJk/LqlWrEBMTg69fv6K4uBju7u4YMWIElyopS6H76tWrCA8PR1xcHCwtLTF8+HDMmTMH6enpaNKkCb5+/Sr1ej9+/MCaNWuwdu1aNGzYEE+ePEFWVha3NNirVy/Y2dlhxYoVACqEKtu3b4/Pnz8zPa+6ujqePHkilYcDqEhpNTMzw9OnT7m0apGq+Lp16wBULC906dKFawOKlgPr1q2LkydPcnQGM2fORGZmJk6cOAGggojT29sb+/fvl3pPitqe6JxTp04hIiICiYmJ0NXV5Xil5EG0pKWvry/1uEAgQH5+PkpLS6s+o5Ryzd9//10mV5R4G2AlvdyzZw/mzp2Lbt26QVNTEydPnsTIkSN5yzXyuMJEfQAR4ezZs+jSpQsGDBgAX19f2NjYcEufoaGhSExMxPnz5yWEWn8WIm/UqFGjJMjlvn79ih07dmDUqFEwNjbG9evXZYoU3717F/b29vjx44fEMWltRURXoQiyxFPF31llb7I8PH78GC1atIC9vT28vb25es7MzMTatWtx8+ZNpKenMy8jpaenw9nZGdnZ2SAi6OrqYv/+/ejevbvMv/n06RMEAoGEhyYpKYnpmg4ODlUWI63Ku3j27Blmzpz5fx4eZVEdHhkRrl+/TmPGjFEqql4ZraIfP37Q9u3bqUuXLqSlpUXu7u4cFTurJS4N9+/fpwEDBpCKigqNHDmSF+wswunTp6l169ako6ND8+fP5+QvXr16RYsWLaIGDRpQ3bp1aerUqRIeD2WsfxZKedbZbuV6S0xMpBUrVtDKlSspMTGRJ8iqpaUlN4XyyZMnHGV7cnIyjRkzhrS1ten333+nVatWSQ0ItbW1JQsLC/r77795dSHPG1RWVkbbtm0jU1NTMjc3p8jISCorK1MqGLmkpISWL19OrVq1opo1a3IyDitWrOC8V/Xq1ZNLjX/x4kUSCAS8+zQxMaFdu3bx6kRTU5OIiGbPnk0CgYB0dHSoRYsW1Lx5c9LW1uaC84mImYZBGmS1PRGePXtG//zzD5mZmZFQKKQRI0bQ6dOnuSQARTo/Ojo6Mr+Nt2/f0sSJE0lNTY2cnJyYaSwUaQqJss7EIasNsMLKyoo2bNjA/T5+/Dipq6tLZDKKQ1YfcODAAapdu7aEB6hyG6wcKCxrGzRoELNniVVPzc7OTq7XLTIyUkLiQV5bqepYIO+dsXyPU6ZMkaltVl5eTl27dqWpU6dKZDzJ2pydnaldu3Z0+fJlunXrFvXr14+sra0lymZJXNi+fTuTxpx48oKs7d9+F6z4ZQ0eZfHt2zfeYElUkWHSp08frtGwDO4/o1WUlJTEKaKLsg0uXLjAtFXGmzdvaNy4caSmpkZ9+vSRmhVx8+ZN6t69O6mrq9OUKVN4z8bK98D6MWRkZJC2tja1adOG9uzZQ3fu3KHbt2/T7t276Y8//iAdHR3KyMhgEscTZWclJiZSnTp1JD6WOnXqcHpCOjo6dP/+fZn1nZWVRTo6Orx93759o61bt1K7du1IIBBQly5daOvWrVyWmZqaGo0YMYJOnTrFG2xkvd/4+HiytrYmQ0NDWrFiBa+TYc0y+fHjB3Xs2JGEQiH16NGDvL29afr06dSjRw8SCoX0119/UUFBAXl6elKnTp043o7KKCwspM6dO5OJiQn5+/sTUYUBJBQKeUrjp06dokaNGjEvB1aFhkFe2yssLKQ9e/ZQ165dSUNDgwYOHEj79u2TWr9VEZnMy8ujwMBA0tbWJnt7ezp37hwRVbTl+vXr08CBA+VSWmhpadGsWbNkXisoKEiiw5bXBkS4fv06zZgxg3r37k19+vShGTNm0I0bN7jj6urqPMOyvLycatSoQa9fv5Yoi4itD8jPz6cDBw5QSEgIhYSE0MGDB3nUDeJcRTVq1KDBgwdL7E9ISJC5+fn5kaamJmloaDDrqc2dO5fMzMx4VBYivH37lszMzCgwMFCptqIs5L0z1u/Rzs5OrrbZoUOHyM7OTiKEQlVVlezt7SXCKurUqcNrE58+fSKhUMibKHz+/JmsrKyoZs2aNGHCBFq9ejWtWrWKxo8fTzVr1iQbGxv68uUL83jGOgn9N9+FMvg/g0cBXr16xcVgqKmp0YwZMyg/P59GjBhBqqqqNHjwYLpy5YpSfB5///23hDdI1ot//fo1BQcHU+PGjcnExIRmz54td5CWh9zcXK6Dad++PV28eFHinEePHtHQoUNJRUWF3NzcpHpAWPkeWD8GFxcXGjhwoNTZaHl5OQ0YMEApAsDLly+Tmpoa925ycnIoJyeHLl++TIMGDaIaNWrQlStXqEuXLjR37lyZ5QQGBkpN0RQhMzOTZs2aRXXr1iVVVVUiqnhfixcvpkaNGlG9evVo1qxZdPv2bVJTU+PVzYULF8je3p60tLTo77//5mJkKuPOnTtUq1YtqlGjBgmFQol79fDwoIkTJ9I///xD5ubmUmO9UlNTydzcnObPn0+vXr0iIyMjMjc3p5CQEC7ddunSpWRmZkZ169almJgY0tDQoIYNG5KmpiZ5enryyvPy8qKRI0dSmzZtaNWqVTLrJjQ0lNq0aaMUDQNL26tVqxb99ddftGXLFp7x97MdZ1FREYWGhlKtWrXI2tpagmDTy8uLDAwMqEWLFrRmzRr6/Pmz1HI6dOjAo0AQR+UYBJY2QMTmSRMIBDxqByLpqcQsfUBVwUpORyTds6StrS3VyyzCixcvSEdHh/Ly8sjW1pZ0dHRo8uTJFBYWRmvWrCEvLy/S0dEhGxsbysvL+1faCss7Y/0edXR0FKqga2trS+yXVc/SxiBxig9vb29q2rQpjzhRhHfv3lGzZs04Qk5Wg+fGjRsKJ6H/1nerLH5Zg0ce30Llbfjw4dS8eXNat24d5135/fffacyYMbyGJK3DkYbx48eTnp4edejQgTZt2sS9fPEXHxsbSz179iRNTU0aMGAAJSYmShD4KYOQkBAyNDSkJk2aUEJCgtRzvLy8qEaNGuTk5CRXVZeV74H1Y6hduzZvZiKO69evU+3atenFixdMm7OzM02YMEFmeRMmTCBnZ2c6fPgwqaio0OzZs3kdwLt378jX15dUVVWlcoeIo6SkhOLj4yX2y2IWdnZ2pho1atDEiROlzlIrgyUY2dLSUi5hW1xcHFlaWhJRRSfas2dPiaVDJycnevToERERZWRkUFhYGMXExEgsq2zZsoXu3LnDvByYn59PHh4epK+vTzY2NhIDbJcuXWjZsmXMbU9fX586depEW7dupa9fv3L75XWc4kubhw4d4ry15eXlFB0dTebm5lSvXj3asmWLzO9MNEvt3r07aWlp0ZAhQ+jEiRM8Qz04OJgWLFgg8/5FyRKsbYDVkyYQCGjixIlySeD+/PNPhX0AEcnlSZHHmcJi8MjzLOnp6XGEkNJw9epV0tPTI6KKBI+JEyeSgYEB144NDAxo4sSJnDHK2lZu3rxJXbp04Z0jQm5uLnXp0oVSU1OZ3xnr96jIqBDnUBNBVj0LhUJ6/Pgxff36lb5+/Uq5ubmko6NDaWlp3D5zc3OFiQsWFhbM4xmrYaTsdxsXF0cDBw4kOzs7atq0KecR+ln8skHLQgYRTIFAAGNjY8TFxaFjx47Izs5GvXr1sGTJEgm1Z6FQCD09PYWphF++fOEE/iIjI5GSkgInJyccPXoUqampXCCeUCiEubk5hg8fLlfPSVbArTiICJqamujevbtM5e2DBw9CU1OTC8qVhdu3bwNQzL+hiJNGBA0NDTx69EimQu6rV69gaWnJCVWKngfgCz/Sf3G/6Orq4uLFixLUASKkp6ejc+fOyMnJwbp16+Dr64vS0lKOUuDr169QUVHB8uXLeXpcsnD//n307t1bJoeESK04MjISt2/fBhFBTU0NNWvWlNteZAW2ioO1/goLC7l9OTk5ePToEQCgcePGXCA4K3R1dXH9+nWZbeXBgwdo06aNRHqrLAiFQmhoaChse1euXEF8fDwnjuns7AwPDw8MGzYMqampEgHkhw4dwrhx4/Dp0yfe/tq1ayMiIgKBgYF48uQJpk2bBh8fHwk6gcrPWxkvXrxAdHQ0duzYgZKSEmRmZirFKSQUCqGqqqqwDTRu3JgpsF6UhCEPFy5cgJaWltw+AADu3Lmj8P4FUjhT5HG1fP36FUuWLMG6devQsmVLhISE8PjHgIoAWHt7eyxbtkzqNefMmYPr16/j/Pnz3D4i4gLU69Spw6uDwsJCprbi7u4OW1tbmQKnS5YsQWZmJvbs2cP0zn78+MH0PRYXF/OSMMQhKwlDVj2LuLEqQ9Qniv5PRHj16pXcxIXGjRujuLgYzs7OCjXmEhISFPbxHz9+hI6ODtO7KC8vh5ubG/bt2wcrKysukDsrKwuPHz/GkCFDsHfv3iqn7P+y4qGsRHwqKiocyZexsTE0NTVlCnQGBQVxg6Y8aGpqYtSoURg1ahQePXqEyMhI3Lx5Ex07dkTv3r3h4uICc3NzCAQC7NmzR2Y5gv8ieLOwsMCoUaPkCnsePHhQYSNp2bIlEyGeCFpaWvD09ISnpyfH97Bs2TL4+/vD0dGRuZz69evj+vXrMjuIlJQUWFhYcBlGo0ePRt++fWVyp7Rr105igKoMPT09FBUVAQCmTZuGgQMHYt++fZwBYGVlhcGDB8u8H3EUFxfLJWPU09PD5MmTMXnyZKSmpmL27NkSStM/A11dXXz48EHm/WZnZ0vUh4GBASdOWRn79+/niUPKQuvWrbF7924e309l7Ny5k4nkTgRxEVxZ0NDQwPDhwzF8+HA8efIEUVFRmD59OkpLSxEcHIzRo0eja9euUFFRwZUrV+Di4oJ+/fph1qxZPCK70NBQuLi48NTeRdlvlUEyCBQFAgH3/VWF1JNVCHfy5Mky+xsAGDBgAP755x/k5+crLGv06NFMA8WzZ8+Y7o0Vy5cvR0hICIyNjbF3716ZzzN16lS4urrC1NQUXl5enFFWVlaGjRs3YvXq1RL9oUAgkDnYsraVlJQUiQlsZfTt2xfh4eHM72z27NlM3+OnT5/QrVs3heSdrKhsCMqCi4sLnj9/LtPgefbsGWrVqoV3795BR0cHmpqacsvr3LmzBEEsUPHdHD9+HOHh4Th69CiKioqY3sWaNWtw5swZHDp0CH369OGVeejQIYwZMwZr1qxhmohKwy/r4WGFiooKsrOzUadOHQAV1nV6erqEGjKrN0MWysvLcfToUUREROD48ePcgKwIN27cQGRkJGJiYtCgQQN4enpi+PDhEizR/12ozBD67ds3HDx4UGbarwjz589HdHQ0jh49KpFqevfuXfTt2xejRo2Cl5cXtm/fjujoaOTk5MDDwwNjx47lBjIRWrRoAR8fH4wZM0bq9SIjIxEWFob09HS598VKcvXTZFg/iWHDhqG0tBTx8fFSjw8ePBgqKiqIi4tDaWkpHjx4ADU1NVhZWXHnJCYmYt68ecjKymJqe0eOHMGAAQMwc+ZMzJo1i/NCZmdnIzQ0FGFhYTh48KBEp/VvoLy8HCdPnkRERAQOHz4MbW1tfP78Gb169YKZmRm2bNki9e8mTpyI1NRULF++XOE1OnfujKKiIhw4cACRkZFITk5Gnz59MGbMGPTs2ZPJY1wVVLcnrTohTrIoTrYqwoABAxR6l4EKRfrAwEAsXboUOjo6aNiwIQQCAZ48eYLv379j9uzZWLZsmQQLsCxII/eU1lby8/Nx//59mQr3z549Q5MmTThmaUVg/R6lGdjSIE5joSz5ZGWMHTsWjx8/xunTpyUMlaKiIjg5OaFRo0aIioqq0nj29OlTjmD1+/fv6N27NwYPHoyBAwdKnFteXo4TJ04gMjIShw8fho6ODurVqwcfHx94enpKLT8iIgJhYWG4e/euUvclwi9r8Ny6dQu+vr5c/n9lfP36FQMGDEBYWBhatWrFJHuQlpaGd+/eVdngqYwPHz4oXU5hYSH279+PqKgoXLt2DX379sXYsWOlelpyc3Px+PFjCAQCNGrUSKpBIo8Pp7rBSimvoaHB/U1ycjKioqKwb98+NGnSBGPHjsXYsWMhFAqxevVqLF68GDt37uTYWEU4evQoRo0ahcDAQIXLgSImXkUz+MoGD0tnLBAIcPbsWRQUFOD06dNcPVtZWaF79+4KZ1XiyMzMhL29Pezs7DBz5kxucMzMzMTq1auRmZmJa9euQSAQoE+fPpw3qn///ti0aROGDh2KtLQ0jBs3Dt7e3syerepYDpSGn2l7Hz9+xM6dOzFz5kwYGBgwL20qKnP+/PmIiYmBubk5xowZAw8Pj2phl1XUBhwcHPDnn3/K9KTNnTsXycnJuHDhglLXldcH7Nixg6mM0aNHKzxHIBBgxIgRTJ4KkQfl+vXr2L17Nx4/fsxjZBZ5JIVCISwsLNC7d28eh5c4Vq9eLfd6orayevVqbNu2DT179pR63vHjxzFhwgS8evUKgOJ3xvo9srKVC39SxqUyXr9+jT/++APq6uqYMmUK7942btyIoqIi3Lx5E/Xr15c7nr1//x5btmzBvHnzuLEnPDwc165dg6OjI44fP84L0VAE0bsIDAxUStZEafx0FND/Uri5udHChQtlHg8ODqbhw4fTggULmDbW4C0vLy9emuCOHTt4v3NycsjZ2fmnnu3p06fk4OBAQqGQl03y7Nkz6tWrF6moqPD4L3r37s1lC7Dw4bCifv361KBBA7lbw4YNiagiS2bZsmXUokUL0tTUJE1NTWrRogUtXbpULh9Edna2xLOWlZWRi4sLCQQCsrGx4ThBrK2tSSgU0qBBg5g4TlhZPSufJ0pfnjJlCvn4+MjcWNLmlcHVq1epSZMmPM4TgaBCFfvy5ctERNS3b1/q2rUrHT58mFxdXUkgEJClpSUFBQUprcwswqtXr2jVqlXk5eXFCSm+fPmySmWxtL2UlBReULF4Zl9hYSEnhCmuIi+O58+fc5xC4igvL6ejR4/SwIEDOXV4CwsLTmFc1qYMWNpAdQXWi8DSB+jr68vcDAwMuKzB/268ffuWpkyZQiEhIWRra0t169alGTNmSE2pJ2JvK6NHj6Y///xTahnl5eX0559/0ujRo4mI7Z0RsX2PrFCGjoMFLIkLisYzUZ8nyl5s164drV+/nmPWZ82+ev78OWVkZHD9sYGBgVxlgfT0dDIwMGB+VnH8sgZPw4YNFVZsgwYNqv264vwGshS/qwIRGaAoJXrOnDmcDMHLly/JyMiITE1NacmSJXTw4EE6cOAABQcHk6mpKRkbG9PZs2eZ+HBYERYWJnPz8fEhTU3NKj/r5cuXaezYsaSrq0tt2rShTZs2SRgxMTEx1L9/f7K1teVUoffu3ct8DdFHrQyBHUtnzJo2XxXcuXOHYmNjKTY2lst2+v79OyUlJZGRkRHdunWLiCoMa4FAQFu3bq3SdaobrFxMynw/zZs3p8jISJnXjIiIoGbNmvH2PXnyhAIDA8nU1JT09fVp+PDhdODAARo1apQEv4y0TRFKSkroxYsXSrWBtWvXckaGqM2JaDKUkUZg6QPkqX6LkzFWBTk5OXTjxg26efMmR3JXGRkZGbR+/XraunUrd/zjx4/k4+NDGhoaZGtry51bOVtU1AdUzgBibSuPHz8mPT09atu2LcXGxlJqaiqlpaVRTEwMtWnThvT09OjRo0dV+m6lfY/KIigoiMd/VF348uULpaSkUEpKigTNwoULF7ixQxpEfaOKigoFBAQopFmJjo6WaKvjx4/njEFbW1t6+fJltciayMMva/Coq6vz0srF8fTpU9LQ0JBbRmXtK1YmVnHLWZYeFCuKioooJiaGHB0dOUKnw4cPSwz+Y8aMoU6dOkno6xBVpO126tSJI1arLj4cafj8+TP5+PiQuro6derUiZeGKi99mKiiw122bBlZW1tzBsW9e/eUvofHjx+Tg4MDl6opa7t06RIJhcIqEdjJ64xZ0+ZZGWoVobJ+U2UvQc2aNXmaRETKeeWIFKePXrt2jY4dO8a7xvbt26l+/fpUp04dGj9+PBUWFjJzMbF8PwKBgIiIVq1aRYaGhnT06FGJMo8cOUK1atWiVatWUUFBAe3cuZM6d+5M6urq1KdPH1JRUZHpOfgZiN4FaxsQoTo8aSx9gDjvEpFsMkZlwOJZOnz4MOdNEwgE1KhRIzp37hzVrl2bunTpItOTlZ+fT9HR0dSmTRuqWbMm950p01Zu3LhBdnZ2Eh4ZOzs7zruo7DsTR0lJiQRbOAtYSQB/BuKeFkUQtePdu3dT9+7dqWbNmjR06FA6fPgwlZSUSBg87dq1400+RLp9u3btolu3blH79u3J09OTMyqHDBlCKSkpXHr91atXycXFhdTU1HjEpcrilzV4TE1N6fjx4zKPHzt2jExNTaUeO336NLm6upKGhgaZmprS9OnT5bKv9u3bl/NmsBo88mZalWFoaEgWFhY0b948evTokczB28TERK6sQFJSEgmFQiY+HBEKCwvp+/fvTPf548cPWrx4Menp6VGLFi0kBiEWV7Gamhr3rDdv3mSiMZeGygaAPGPiZ2nMiaR3xvr6+pSeni7zb9LS0khfX5+ZoZb1eYVCIY9bQ0dHR8LoZ/XKlZWV0dChQ0kgEJC1tTX179+f+vXrR1ZWViQUCmnYsGFUXl5OPXv2pGXLlnHlp6enk6qqKo0bN45CQ0PJ2NiY5s+fz8zFpMyEgWVpc9KkSUq75BV5KeShsteQpQ0oC3mMzCx9gImJCfdbERkjK1g9S+3ataPp06fTt2/fKDQ0lAQCAVlZWSkU0bx06RIn+2Jvb89Nkqoyubx9+zbFxcVJ9ciwvrOjR4/Sjh07eMcWL15M6urqpKKiQo6OjjzyPUVgDZeoDFltlNXTogjiy/3Pnj2jefPmkbm5OSdJUrm9GBoa8upu0qRJNGjQIO73+fPnqX79+kTEJmtSVfyyBo8y67ZEymlfVUZCQgI1adKE9PX1aenSpcwfoZ6ensRHIw3i7MWyBu0aNWrINaJevXpFAOQ29pcvX5K6ujp9/PiRevXqRaqqqiQUCql9+/YyCcdKS0tp06ZNZGxsTPXr16cdO3ZIzOJZXcXSnlUag7MiiD5WZWU5FHmgpEFaZ/wzsSUs+meynlcgEPCW5wQCAenp6Uks0YlDmlcuNDSUDA0Npc66ExMTydDQkFavXk3GxsY8QyYgIIBjViaq8BDZ2tqSuro6U9uryiAmb2mT1SVPxOalUATRu1C2DbAQsSliZGbpA2rUqKEUGSMLWD1Lenp6nMexpKSEVFRUJLyDIrx584aCg4PJ0tKSjIyMaNasWRLvq7q96azvzMHBgdavX8/tv3z5MgmFQlq8eDHFx8eTjY0NzZgxg/m6rCSARIrbKIunZezYsQp1uzw8PKTWXXl5OR0/fpyGDBlC6urq9Ntvv9G0adNIU1OTV3fNmzfnMZK/ePGCN3lTJGtSVfyyPDxz585F69atYW9vj1mzZsHa2hoCgYBTBH748CGioqIQFxeH8PBwXL58Gb169cKaNWvg7OyMmjVrSqRDV8bly5cxZ84c3LlzB1OnToW/vz8MDAwQEBCAefPmcQRnxcXFCA4O5rJcRAq/S5YswZQpU5CQkICtW7fKzAhh4V4AKjIqMjIyZPIv3Lt3D6qqqkx8OH///Tdu3bqFoKAgaGhoYPPmzZg4cSJOnz7NOz8uLg5z587F169fERAQAC8vL6mcDYsXL8aYMWMk0oc7dOiADh06YOLEiVi0aFG184PIUj+WBkUEdn379uX2vX37FtHR0YiOjkZeXh48PDyQkpLCkWtZWVnh3LlzMtPmz549i8aNG/P2vX37FvPnz8f27dvh5OSkVAaECKw8IiIUFBRg1apVWLFiBerXr48DBw5wWW8TJkzAihUrpKad9+vXD8uXL0dYWBhycnJ4acpJSUm8bJg2bdrg1atXzFxMjx49QmZmJrKzswGAIyX7/v07AEi8H6AiTXjYsGFSy92xYweioqJgYmKC3r17Y8SIEVKzdV69eoV27dpBTU0NixYtgq2tLacgvmnTJrRv3x43btyQ+X2Jg7UNyCJiy8jIwLBhwzgith07dmDdunVYu3YtJk6cyGUvlZSUYNOmTZgzZw50dXUV9gEmJiZo0aKFBBmjNJ4feVxXlXHixAnExcXxsixF0NTUxKJFi+Dq6oq8vDwuW0xVVRWampo86gQRevXqhfPnz6NHjx5YsWIFevfuLZOTi6WtzJw5k+k5WN/ZvXv3EBoayu3fv38/HB0dERgYCKCCH8jb2xtTpkxBcHAwIiMjAQDm5ubcvQEVlCjJyckAgG7dusl8RhESExMVttHCwkL88ccfvL/p168fhg8fDqBi3BkzZgzq16+vsD46deoksU8gEKBnz57o2bMnvnz5wn1fFhYWuHXrFiwsLPDp0ydkZGTgzz//5P4uOzubx2GnpaUlNZX9p/HTJtP/YrCs2yqrfXXv3j3q06cPqaqqkqenp8SMqnPnzhJicNI2ov+XbWVkZESJiYk/9aze3t7UrFkzqTOF9+/fU/Pmzalt27Zkbm4uNXYhPT2dW04yMzPjLUndv3+fVFRUeNT3RBUzEy0tLYUzhn/LvS8LrNlXIigTrOjs7EwaGhrUr18/SkhIkBr4xxpbQsSmfaRIHiUsLIyEQiElJSXJDUQUgcUrJ66CLo7nz5+ThoYGmZubc0sSRUVFpKmpyROIFGVdiNzhitqe6FsV9+xV3i96t2/evKFZs2bJlAzw9fXlYpoUueRZvRSKhHJjY2NJKBQytwFWTxqLtpmRkZHCPsDb25vZaywNBQUFFB0dTRs2bOC09lg9SwIxseGaNWvS0aNHJepQIBBQvXr1qGXLltSqVSuZG2tbYemPHRwcmN+Z+LfRpk0bCgkJ4X4/f/6ctLS0yNvbm/7++29uv7a2Ni1fvpyLCXR2dqaJEyeSQCAgX19fhZnCLG1URUVFKU9LdWHJkiVkbGxMCxcupC5dupCdnR3v+OrVq6lbt2509uxZsrW1lfnNNmnS5Kf0335ZHp7KuHPnDo/zoWXLltyxCRMmIC4uDnZ2dhgxYgSGDRsGAwMDqKmpIS0tjZu1v3r1CvPmzcOuXbvQp08fLFmyRK4HSBmsX78eM2bMgK2trYSV7+/vjwEDBnCek+fPn8PMzIwj+Prx4wfWr1+P8ePHw97eHtnZ2fDw8ODxL+zZswfGxsa4cOEChgwZopAPR1tbG69evYKJiQl3H1paWrh//z4sLCy4fV26dGHi37h27RqysrJ4f1sZL168gK2tLRYsWIBp06ZxfBcXL16Evb09R3/+7ds3zJkzB1evXmWifmclCmQhsHv16hWOHTsGoVAIExMT1K1bV+Y9EBEaN26M+Ph4WFtb8+r50aNHGDBgAPbt24eVK1dyDLVLliyRyVDLQnonuhdFXFGsXjlDQ0NcuHBBJkfO3bt30blzZwwZMgR3795FSEgIEhISsH37drx9+5Yrc/fu3QgLC8OlS5eYuJjev3+v8FkBwMLCAr6+vsjLy8PWrVulnjNp0iTo6ekhJCSE20dEOHnyJCIjI3Ho0CHUrl0bgwYNwv79+xEXF8eblVbGxYsX4erqiuzsbCbOlJKSEgwbNkxhG2jZsiUTEdvTp09x9+5dqbIOQAUhXNOmTWFqaiq3D7h27RozqduRI0dQXFyMNWvWAKjwVtvb2yMjIwNaWlooLS3F6dOn4e7ujs2bN8PJyUlqOSdOnMCkSZPw8uVLprqbN28e0/2x8AQBkNnviKO8vJzpnVlaWmLjxo1wcnLC9+/fUatWLZw7dw4dO3YEUCHN4+TkBCMjI6xbtw4ODg4AJCUjkpKSMG7cODx58oSJBLBevXoK22jXrl0RFxeHQYMG4dOnTzA2NkZKSgpat24NoIIDqV+/fpxXTBbu3r3LtT3Wups/fz6OHDkCY2NjrFq1ijc+DhkyBD179kRiYiIcHBxkcqStXbsW58+fx8GDB5muK47/M3gYwKJ9JdKymTZtGjp06CCzrH79+sm91pMnTzB+/HiOJfTFixcYPXo0MjMzMWHCBAmDZ+HChbxBTFdXF6mpqdxH8/79e9SrVw9lZWXIyclBQEAAYmNjkZubCwDQ19fH0KFDERwcjFq1aqG4uBirV6/G3r178fDhQwAVrlxXV1fMmDED6urqEuzTouumpaXJZCuVB1Zm5IyMDKZnZe0QWeUMlCGwCwoKYr52bGys1Hp2dXUFUGHIsDLUskDIwAYuuqabm5vcJQsROdimTZukHp80aRJevXqF6OhoDBo0CJcvX4a2tja2b9/Oc1V369YN7dq1Q3BwMFPbU4ScnBwcPnwYI0eORNOmTbF582aZA8CVK1cwfvx4ZGRkSD0ucslHR0fj/v37nLSJNLx+/RqNGjXi7lsRRIOsojagqanJRMSmpqbGxMj84sULhX0AK5o2bYolS5ZwfVpUVBRmzZqFO3fuwNzcHJ6envjw4QMsLS1x7tw5nD17ltdnABUkq46OjnIHOXGwGiiKULmtKANF72zOnDk4dOgQAgICcOzYMVy5cgVPnz7lvuGtW7dix44dSEtLw927d7nloxkzZmDu3LncOxC92+LiYrkTlVevXmH+/PnYvXu3wjZav3591KlTB5MnT8a5c+fw8eNH3Lt3jzsnLCwMR44cwZkzZyT+Pi8vD3v37kVERARu3ryJ5s2bIzU1Vam6UwQLCwucOHFCprMgKysLPXr0wMuXL6t2gSr7hv6XQ1FQlmgTx8OHD8nf35/q1atHurq65ObmRvHx8VLdpj8TUEtEtHXrVtLR0aGBAwfKDFqrSmBeeXk5vX//nt6/fy81DVgRBAIBNWvWjOc+VlFRITs7O94+RUhPTydvb29mV3F1ByGy4meCjH8G1cX9IgJL8CPLkquDg4PS6aO5ublSA18/f/5MRUVF7JWiAJW/Hy0tLbnLbi9evCAtLS255X358oVLo2dRma5usBKxdenShebOnSvzvMDAQOrcuTP3W14fEBsby3snz5494727/Px8CgkJIR0dHY6ojojI1dWVxo8fz/2+c+cOmZiY0JcvX8jS0pJ0dHTIy8uLU1ufOHEi6ejokKWlpQQPjCwo4rKpTBWiCJXbyvfv3+mff/4hOzs7qlmzJmlra1OzZs2qxIGTn59PHh4epK+vTzY2NhJLMF26dKFly5aRrq4upaSkyCwnJSWFdHR0mEkAWdqoubk5zZ07l1q2bEk9e/akzMxM3jkuLi4UHh7O23fhwgUaMWIEaWlpkVAopDlz5vDee3VCXV1dbtmPHj36qSW3X9bgYV23lYWysjI6dOgQ9e/fn2rUqFFt9yVqvE5OTmRgYEDbt2+Xep6IS+Y/YQSwsk9Lw9evX2nz5s3Upk0bEggE1KJFC2Zm5P/uZxUNCsoQ2ClKHy0pKZHbyf2bEAgENHHiRKWNfFmorvTR6uQYqTyI1apVS25Kc1JSEtWqVYupPJYYOG9vb3r48CG5urrKjEFwc3OTmdEoDaxEbNXJyMxK2Kenp8fF6RBVcDhFRERwv589e8YNTl++fOEoAEQTQAMDA5o4cSJHBSALubm5tGHDBmrVqpXM71saVYgiiN5tUVERtW7dmtTV1WnAgAHk7+9Pc+bMoX79+lGNGjWoXbt2EvGJ1YH27dtTcHCwzOMLFy6k9u3b0/Pnz+VOTJVtoyx4+/YtBQcHU6NGjcjY2JijN2BlUK4qGjZsSAcOHJB5PD4+/qcIgX9Zg4cV+fn5NHnyZKpXrx7VqVOH3Nzc6OPHj7xz/o0Ou3v37nID/SqnGv8nvB7KgmWWoIgZubqfVVNTk9c5ODk50du3byXKUybIWHywsLGx4XkZqut9VDa4WSEQCKhDhw5VNvKlQVb6aHFxMb148YK5jqsLlQ2eXr160bhx42SeO3bsWIUyLqLyWL0U48ePp9mzZ8ssz8/PT64BIw5lPGnVxcjM+p3Z29tTaGgoEVUkawiFQh6v04ULFyS8Xsp4l8+ePUvDhw8nTU1NsrGxocDAQLp9+zZ3vKpUISKI3m1YWBgZGRlRVlaWxDn3798nIyMjWrt2LXO5rNi6dStpaWnRkSNHJI4dOnSItLS0mJjQlW2jLFBXVycPDw86ceIEj4xQ3OAJCQnhUXMkJSXxpIDy8vLIy8uL6ZpERFOnTqWmTZvKDLxu2rQpTZs2jbk8cfyfwaMAvr6+pKWlRePHj6fp06dT7dq1ycXFReK86tLIUla/SSAQ0I4dO7iMHNFHIvq9ffv2ajd4zp49y5TtU12zhMrerODgYO5D1tDQoH/++Yf7vXjxYqWelZWJVRltLmXYXasC0ZKqiYkJaWhoKG3wKDLObW1teZ3i+PHjeQbL+/fvmZbvlDHIf6Y+ZF2XiOjcuXOkoqJCs2bN4nk9srOzaebMmaSiokJnz55lLo/FS2FtbS1Xc+7mzZtkZWWl1DMp40mrDkZmVoNn//79pKamRl27diUjIyPq06cPrxw/Pz+lmdlF8jgNGjSgunXr0tSpUyX6i9jYWHJ0dCQtLS1ycXGhhIQEKioqUrpfEb3bTp068XhzxLF27Vrq1KmTUs/BCpGmna2tLafTZmtrS0KhkLnulG2jLLCysqL69etTQEAA3b9/n9svXses3kBWZGdnU7169cjMzIxCQkIoISGBEhMTadmyZWRmZkb16tXjfcvK4pcOWs7Pz0dISAgOHDiA58+fQyAQoEGDBnBxcYGvry+0tLTQqFEjBAcHcwFp169fR8eOHVFYWMgLJFVRUWEKqG3evHm1ZBCJFLpZXp+AUUmXFeLP2q5dO8THx+O3337jnaehoYEhQ4bAw8MDjo6OXDaReIabIoie1czMjCnri5WvRzyIVzxLonLAN6A4WLEqZbJAFDQfERGBa9euoaysDKtXr4anpye0tbWZyxF/byx1Iq0dm5iYMCvIE1G11sfatWvlHn/z5g1WrlzJlbdlyxZ4e3ujpKQEurq6EAgE+Pr1K9TU1LB69Wp4eXkxPUfl+yMifPz4EQBQp04dXpvU1NRkyjgU8W2x4sePHzh58iQePXoEoKLt9ejRA2pqanj37p3MoGZ5zyELyrThM2fO4OjRozA2Nsa0adM4fjEACAoKQufOndGlSxemZ+zVqxeSk5PRp08fDB8+HD179oSKiopEf6Gqqgo/Pz/8/fff0NHR4f5e/DzWtiLKOJSlXn7v3j04ODhw77y6ERMTg5iYGK5fsbS0hJubG9evDBo0SO7f5+bmIikpSWEbraxwzoLLly8jIiKC44Dy8PCAn58f0tPTuaDif6O/e/HiBby8vHDy5ElufBMIBHBycsLGjRuZOIJk4ZclHiwuLkbnzp1x7949ODs7o2/fvhxJU3BwMI4fP46LFy/i1atX+Ouvv7i/a9u2LVRVVfH27VseSZq44SHLEBkwYEC1Poeigedn8OnTJwgEAonMDfFny8jIQFFRkcTfW1hYIDk5Gebm5rCwsJCZQcKK58+f/9TfVxU7duzgyOtkEdgpg/Lycnz48EFhmun169cRHh6O2NhYrsPZt28fTE1N0b17d87YuX79Olq3bs0Z4PRf6bsiFBUVITExkck4Foe0v2ExOquCvLw8aGtrS6TZl5WVIT8/H7q6uli9erXCcioP/hMnTkSfPn0QFxfHo55wcXGBqakp06AoDoFAIPPd6enp4cmTJzINnsePH8vNfnvx4gXy8/NhY2PDqwdZRGzKGDLKvP+TJ09yRHDl5eU4e/Ysl80jyu4CgO7du6N79+5Sy2DNghTh1KlTmD59Ory8vGBpaSnzPE9PT2zcuBFJSUk8qhBxsLaV169fy81Oq1WrFr5+/crbl5ubi8ePH0MgEKBRo0YcYWJVID5pEkdlQj5Zx8UzzaS10ezsbAQFBTEbPB07dkTHjh2xdu1a7N27F5GRkSgrK8PkyZPh7u6u1FiWm5uLvXv3chOM4cOHo6CggDuuoqKCbdu2QV9fHxYWFjh27BhycnK4b9bS0lLqO1YWv6zBs2nTJrx+/RppaWmwtrbmHcvKykKXLl2wefNmlJWVSfCQqKqqorS0tErXZe0EWrVqpdATpAwUdewijBw5EoGBgYiNjUVOTg6AirRsV1dXLF68WKkP+8GDB9wsoU2bNtygDfx7gyZQYaCwQCAQ8O5D/LcIY8aMQc+ePRUaKKIyvn37Bg0NDc7w+P79O/Ly8gCA+5cFHTp0wLRp03D9+nWJNloZ7du353lu9PT0eF6Z3NxcuLm5ISoqSmHnWd1greODBw9izpw5SE1N5XkJgAqDrU2bNli5cmWV2LZ/++03mSnPrIOiou9RhE6dOmHdunXo2rWr1ONr167FX3/9he3btyMnJwc+Pj7csQkTJiAiIgIAYG1tjZMnT8pknq4qWL+NUaNG8X5PnDiR95ulLg4cOIAFCxYgPT2d6ZqXLl1CZGQk/vjjD9jY2HDGjDi2bt2KNWvWcFQhPj4+cHJyAhHxJoCsbUVFRUUu7YNQKOQMyufPn2PKlCkS3oeePXti/fr1P+V9kAVlGdLloby8HMXFxVK5tWRBW1sb48ePx/jx43H//n1ERERg7ty5mDx5MnMZ27ZtQ1paGmfwHDp0CE5OTpyH7urVqwgLC8OCBQu4vzEwMECbNm2Yr8GCX9bgOXDgAP755x+pA4mNjQ0CAwOxf/9+EBFGjx7N4wApLCzEpEmTULNmzSpdOyUlBYcOHUJJSQm6d++OHj16SJxT3Z4glo69vLwcGzZswJs3bzB8+HAeNXl0dDTOnj2LK1euMA9iANssQZyb42fh7e0t85hAIEB+fj5KS0u52b7o3r9//45WrVpxM2tRh6bMzFhUZuXfrVq14v1mRdeuXREREYEPHz5gxIgRcHJyklrPLN5FIkLHjh1x7949jmQMqKDDX7x4MfLz8zFgwACp71LaNRUNYg8ePOCuy1LHmzZtgp+fn4SxA1R4N+bMmYP169dzntjHjx+jpKQEVlZWMin3L168KPceAWD79u1SKfLFUZlfiYiwdOlSTJo0CYaGhrzz+vXrh/bt28PFxQV+fn5c/5KVlYXly5fj5MmTuHLlCqZMmYIJEyZwf3fixAlERUVhx44dsLW1xdSpUxEUFITw8HCF98YKIpL5bVT+LpTxGm/btg2nTp2CmpoavL29YW9vj3PnzmHWrFl48OABRowYwVxW+/bt0b59e6xZswYxMTGIjIzEzJkzUV5ejtOnT8PMzIwbIDU1NTFq1CiMGjUKjx49QmRkJG7evImOHTuid+/ecHFxwaBBg5jaChHJlW4QTW5Z5UVYebFYeYfkee/Ky8tx9OhRREREICEhgam8Vq1aYdeuXbx+iRW2trZYuXIlli1bhkOHDsHFxQXh4eGct7m0tBTR0dGoXbs2gAoyWKBCXkN8sr98+XJuUnbw4EEsXLiQiV9HIBBwEwNl8cvG8NSpU4dp3VaaVpA0bN++HRMmTOA67A0bNsDDw4OnkbVt2zbs378fQ4YMgYaGBlRVVfHt2zeEhobyZnr/Kfj4+ODs2bM4c+YMT/8IqHCH9ujRA926dcOaNWvQtGlTroNIT0+HjY2NxKzh9u3bUq9z//59hIeHY9euXfjy5QuaNm1arczIsvDu3TsEBQUhMjISXbt2hZubG9PfjRkzBu/fv2cyzJKSkhSe4+DggO3btyv0tvTr1w+vXr1CVFQUoqKiUFBQgGHDhmHjxo1VWkfv168fmjZtikWLFgGomAHb2dnhr7/+go2NDSIjI5Gfny/33ZaWliIjI4PzXsla8hIdF+kEKcLff/+NixcvSmiIifD48WN06tQJV65cQf/+/bnlFTMzM8THx/OMOBHkMVCL2puI9ZjFgKoM8TqujCNHjsDT0xOfP3/m7a9VqxbCw8PRr18/1KpVCxcuXODILL28vPDhwwfEx8cDAC5cuIAxY8Yo9FKIlrRE3lhZEJFjSvuGxL+LEydOyC1LhJUrVyIgIADNmzfH/fv3AQCBgYFYtWoVpk2bhilTpqB27drMXiVpBIAPHjxAREQEdu7cidzcXDg6OuLQoUNS/77y4H/8+HE8ePCAqa2wkoW+ePECT548wcmTJyV0wQoKCtCzZ080btyYI40VQcRKX7ldCQQCPH/+HBYWFhg1apRc40Maw7rIyBN5Cp2cnBQaPGlpaWjVqhW8vLwQERGBwMBABAYGSv1O4uLimBj8N27cyOTt+/btG65cucJNBv/44w8kJCRwJIlPnz5F8+bN4ejoKLMMUcxYUVFRlceCX9bgUVNTw6tXr2BsbCz1+Lt372BhYYHi4mKm8lhlFL5//44WLVpg8+bNUFVVxeLFixEWFiZV9PC/G/Xr18eWLVsUUsDLYkQWh6Llu9LSUhw6dIiZyl7ZmAARvn37hpCQEKxZswZ2dnZYunQpR+fOAqFQCGdnZ4VMvwcOHGBasmJZFpQWaH769GlERkYiISEBZmZmcHFxgYuLC/744w8mg0dEPd++fXsAFaKt+/fv59hSRZ2gokBegJ22/8WLF+jQoYNCI0JTUxN37tyRGed1//59/P777+jXrx9SU1Mxf/58aGhoYMWKFSgrK8P169cl/kY87kKEHz9+YM2aNVi7di1MTU2hqanJZEBVhjyDB6gYAE+cOMGLG+rRowc3IRKXYmnRogU8PT05D8zLly9hbW2NlJQUufeRlZUFNzc3ibgtcYiOV25Tsr6Lx48f4+vXr3I9gQEBAbC1tcXs2bPh6emJCxcuoGvXrujatSv279/Pa+PyYi8qe5bkDWJlZWU4fPgwJ/mhCB8+fMC0adOY2woLWKQbXF1d8fbtW95+WW3lxo0biIyMRExMDBo0aABPT08MHz5cZn0pSl5QJIL68eNH7NmzB2VlZTh//jzGjh2LOnXqwN/fX2JJb+DAgcwM/izQ0tLC9evXZQoe3717F/b29jJDNRITExEQEIC3b99izpw58Pf3Z7quBKqc3/W/HEKhUC7r7L/FX6Ojo0MPHjzgfhcWFpKKiooEt48iYTxWNmMRfvz4wSMe8/f355HN+fr6Mon8qaurK/G00nHhwgU6evQoffny5afLkoeioiIKDQ2lWrVqkbW1NU8MkgVv376lKVOmkEAgoGHDhjExHssSXKy8AWDibhozZoyEaC3R/2OTbdmyJZf6LU908ezZsyQUCklDQ4OXoty1a1ceO+/jx49JT09PqTpSBPG0VVmwsbGhnTt3yjy+Y8cOsra2JhMTE7pw4QK3/9WrVyQUCnlcILJQVlZG27ZtI1NTUzI3N6fIyEgaMmQIWVlZ0e7duyk+Pp7atWtHbdq0UViWeKq2CKtXr2biOrGxsaH4+HgiIvr48SOpqKjQzZs3ueMpKSlkZGTELIB54cIFpo1I8XcxYMAAXrt4+vQpaWpqUo8ePWj69Omkra1Nq1evJk1NTR7HVI0aNejatWsKn12Et2/f0sSJE0lNTY2cnJyY/44VrG2FlSyUVQRVHLLaiggFBQW0c+dO6tq1K2lpadGwYcPo1KlT3PGUlBQaP3486erq0h9//EFhYWGUnZ0tkSLOQqYrEqYmIkpISCAVFRWZ7ao6Oc/s7OxkkugSEUVGRlKTJk0k9icnJ1PHjh1JS0uL/Pz8fnrM+GUNHmnyCJW3Zs2aKW3wfP36lUfSJEJZWRnHvCqNC0XaB/EzbMbSFIs3b97M48nQ1tYme3t77iMwNjYmXV1dunTpksznu3jxItWrV09uHVSmdl++fDnNmzePO1ZeXk5OTk7ch2VkZET37t1j5vUpKyuTOC87O5sWLFhAs2fP5u69vLycoqOjydzcnOrVq0dbtmyRKmtARJSRkUHr16+nLVu2UE5ODhFVDEA+Pj6koaFBtra2TPw1IlQeXM6fP0+ampq0e/du3n5WI4DlvFu3bjEPivXq1eNYnsvKykhXV5dnBGdmZpKuri73++PHj3Tjxg26efOmBIfHiBEjeMZYamqqVDZa1roLCAggc3NzqRwb7969I3NzcwoICCCBQCBxTs2aNenZs2dyy4+Pjydra2syNDSkFStWcORoVTWgZA1i+vr6pK6uTkOGDKGTJ0/KJNdjVY9+/vw508YC1u/C1NSUrly5wv1etGgRT6ohPDycWrRooXBQlIW8vDwKDAzk+qBz584REdG1a9fo2LFjvHNFsh516tSh8ePH80jtFIG1rbCShVZVXoS1XogqjEsHBwcSCoWc4ayiokI+Pj4SxIhVZT3+8eMHTZs2jdTV1WnBggVS+15Wg2f79u1M29y5c8nMzIzevXsnca23b9+SmZkZBQYGcvvu3btHffr0IVVVVfL09JRraCqDX9bg+RmDQhoOHDhAlpaWUnVX8vPzycrKig4dOiRBFCiNLDAxMZH5ur6+vjwa9aKiImrZsiWpqamRnp4e1axZk65cuUJ//fUXj7JbvAHv3LmT6tSpQ506dZKqbVRYWEidO3cmT09Pqfchjdq9VatWFBMTw50TFxdHmpqalJycTJ8/f6bevXvTkCFDJDoce3t7ev36tcQ1Ro8ezdPqycvLIzMzM6pTpw41b96cVFVV6ejRo9SsWTPS0tKiOXPm0Lt37+jr169St8OHD1ONGjU446BRo0Z07tw5ql27NnXp0oUzBlgNFGmQ1tmxGgGs57EOim5ubtSnTx96+fIlhYaGkra2Nn3//p0rZ//+/dS8eXO6d+8e/fXXXxKeKQcHB67TVUQ4VvkZFOl3EVW8Szs7O44lNiwsjNasWUOTJk0iHR0datKkCeXl5Un1zOro6PAYfivjwoULZG9vT1paWvT3339Tbm6uxP2xDIoicktZpJeirbCwkHbt2kXdunUjoVBIZmZmNG/ePIn7KysrU1rT6GfB+l2wegIVEYGKNhEUeZZ69uxJy5Yt436np6eTqqoqjRs3jkJDQ8nY2Jjmz5/P/LysbYWVHLOq0g0sBo+IcLFRo0ZUr149mjNnDmeIODo6ko6ODrm7u9Px48c5I7oqBs/ly5epcePGZGdnx/MoioPV4NHX15e5GRgYcMzfeXl5ZGtrSzo6OjR58mTu+/by8iIdHR2ysbGhvLw8evnyJY0ePZpUVVVpwIABEt/Fz+KXNXiqG46OjrRt2zaZxyMiIqhHjx7VJjIqgp2dHc9AioyMJAMDA05/ZfTo0dSrVy/OmyJC7dq1eZ36gwcPSFtbm4yMjMjc3JxCQkI442vp0qVkZmZGdevW5XWEiqjd9fX1eQ129OjR5OHhwf2+evUqmZqaMs8ULS0t6eTJk9zv9evXk4mJCTeI+fn5UZcuXSTqUnwT7W/Xrh1Nnz6dvn37RqGhoSQQCMjKykpCf4nF8JBmoMl6ltGjR0tdqhIHq7HAiqdPn1KjRo1IKBSSqqoqbdy4kXe8f//+NH78eKpVqxbZ2NhQWFgYnThxgo4fP06hoaFkY2NDderUoffv3zO/M4ES+l25ubnk5eVFhoaG3PszNDQkLy8vzvsmEAi4zlS0CQQC0tPT4+0jInJ2dqYaNWrQxIkTpc4sidgHxfr16yvcxDV+nj17RvPmzaP69euTiooKdevWjfbu3auUl0IZTxrLUirLd8HqCbSwsGCqE1bPkrGxMd24cYP7HRAQQB07duR+x8XFka2tLXPdsbYV1sGdVbpB3IDU0dGhtLQ0if1FRUUUExNDjo6OpKGhQQMHDqTDhw9LXSV4+fIlBQUFUf369cnIyIimT59OqqqqvP41KChI4aaiokIzZ85U2AbFJ+bKMvhLW6788uULTZw4USoLtMibpampyRnllR0A4ltV8csGLSsifistLcXt27fRtm1bpvLq1avHlGUiHtAmC7J4PMRx8+ZN3L59m7uum5sbdHR0sHXrVgBAamoqevXqhZycHKSmpsrkc8nKykLLli1x//59TJ48GadOneLxTDg6OmL9+vVo3Lgx4uLiEB4ejsuXL6NXr17w8PCAs7MzatasyWM61dbWRnp6OhfoZmNjA29vby4oVhSYWVRUJDfoVoSaNWvi3r17aNCgAYAKBtLffvsN69atAwBkZmaiS5cu2LdvH1Pd9e/fH9evX4eVlRVKS0uhoaGBw4cPw9nZmXdeUlISOnbsKDXwNjs7G8HBwQgPD+cRaYkg7VnKy8tRXl7OK+/9+/fYvHkz8vPz0a9fP/z5558QCoXQ09NTGAz/5csXuccr86GUlJQgMzMTderUQb169XjnpaWlISIiApcvX8bly5elZqL8+eef6NGjB0JCQpjemVAoRPv27eXyfggEAl5mCxHh06dPICIJJuPt27fLfVYRRo0aBaFQCFVVVdSsWVNmHebk5EBfX593PDc3F7q6urzsFUV1rAhnzpxBVFQUEhISoKGhIZHBJQuKGNxFSExMlFnGlStXsG7dOpSVleHUqVMKr7llyxZ8+/YNGzduxL59+zB//nxkZ2dzNBzx8fFYuHAh0tLSmJ6hefPmePLkCaZNmwYfHx+p1AMAULduXTx69IjjHvrzzz/Rs2dPzJ07F0BFplCzZs1w9uxZJqJNad+jNIwZM4aZLTgnJwcBAQGIjY3lCBj19fUxdOhQBAcHo1atWhAKhbz7Eb8/0W99fX3o6Ohg1KhRGDFihMzxSJyoUlbywtixY2U+o0AgwIMHD1BQUMCjHfj27Rsv01IoFEol/5RVpnjQMkuCCMlhKq/qdVnxy/LwmJiY8DoSW1tbnDx5kmNp/fz5M9q3b89V7L59+zhZAYFAAEtLS7i7u8PFxQVARccpj4ywpKREYepoZVy4cAEWFhbo3bs31NTUZJ53+/ZtXoO9du0a/vnnH+63vr4+cnJyYGpqinv37sk0eNLT02FqaooGDRrg+PHjyMnJ4WjsGzduzOMbcXd3h5+fH+Lj43nU7uJo3LgxLl68iIYNG+Lly5d4+PAhOnfuzB0XMZy+e/eOiddHQ0OD14ldu3YNK1as4B3//v077xqy8PHjR+Tl5XHZJKqqqtDU1ORx6IjQokULjBo1iuMb8ff3x9SpU7FgwQKsXLkSdnZ2ctOvxZ9l7NixUFNT44zSb9++oU2bNigsLISJiQlWr17NDWBBQUFMZIGsfChqampo0aKF1DKEQiFiYmKwfv16CWMHqMikmj17NpYvXw6gwsDMzs4GUNGJZWVl4fv37xJ/d/DgQSbSRhEEAoFMCgBxQjx5YCFsS05Olpl1Iw5i5P+RBtEgSP9Fjic+KIqgq6sLa2tr+Pn5cTwy4vcgDdJSl7OysvD333/j8OHDGD58OCZPngx7e3uF92pubg5HR0fUr18fQqEQa9eu5XGO7dy5k3lCBoDLgFu+fDnvexVBZACYmpri2bNnMDMzQ3FxMW7fvs1LGf/27RvU1NSYiTZZB0VPT09mslADAwNs2rQJGzdulDlonz9/num6Dg4OyMnJwaJFi7B48WKZ9SL+HI6OjnB0dEROTg527dqFyMhIhISEyHze1NRU+Pv74969exg0aBB69+6No0ePAqiYqFfOjBIIBLh69arSDP7FxcVYv349lixZgtq1ayMqKoobG8UhkMNU/m8qBwC/sMEj3nG8fv1awmARdU5ubm6cnoiNjQ2ICBkZGRg2bBiGDBmCvXv3on79+rh586bMtNqbN2/KpJuXhmXLliE6Ohr79u3D8OHD4enpKTWl7+rVqzh8+DBmzpyJjIwMvHz5kmdRv3jxAkZGRujVqxfmzZuH3r17S525BwUFoXfv3tw+AwMDqd6t/fv3M1O7e3l5YerUqbh06RKuXbuG9u3b8/Szzp07h1atWuHt27c84q8fP36gb9++El6BFi1aYOfOnVi6dCkuXbqE9+/f8zreJ0+eSHgtKoOIcPz4cYSHh3MfvPig/eDBA+Tn5/P+bvPmzbh48SJGjRqFEydOYMaMGThx4gQKCwtx/PhxnoElrnsjjaTy1KlTPHKyHTt2oLS0FI8ePYKenh7mzJnDDQyurq4KjQVxPpTExESpfCjSkJeXh7179yIiIgI3b96EQCDA77//LvNaf/zxB54+fQoA6NatG+87EnFWVebhYaFqABQzi4sgi9tJGliMI1YD6vnz58z8PyK8ePEC0dHRiI6OxqtXr9CpUyds27YNgwcPxsmTJ6X+TW5uLq5fvw4PDw9mb5Y43r59i/nz52P79u1wcnJCamoqmjZtCn19faxbt04hGWCDBg1w//59mZ7AoKAgmJqaolevXti7dy9nkAcHB2PKlCncJOLz58/466+/mA2APXv2wN/fHyEhIUhISICWlhZP1ic9PR2NGjXCrVu3eH8nzQhUZuGCGMhCpZFxin+XhYWFWL9+PerWrYthw4YppLFgrRdZMDAwwLRp0zBt2jSp38WzZ8/wzz//IDY2FoMGDUJGRgZCQkIk2uzOnTvx22+/gYgQGRmJtWvXYufOnUz3QETYsWMH5s2bh9LSUixZsgRjx46VSHNnNZDFOYyqG7+swcMCgUCAsLAwnDlzBocOHZIgITx06BDGjBmDNWvWYNCgQQgMDISjo6NU0r65c+dysgos8PPzg5+fH65evYrIyEh07NgR1tbW8PT0hLu7O+fmnD17Ntzc3HD06FFkZGSgV69e3JIPABw7dgxt27ZFQEAA4uLiYG1tjalTp3Lst1lZWVi/fj1KS0sREBCA0tJSPHjwAGpqarxOIDExEfPmzUNWVhaKioqYqN0nTpwIVVVVHDlyBJ06dZLg0Xn79i08PT3xxx9/8PZLm60CFbT9vXr1QlxcHN69e4fRo0fDxMSEO37w4EF07NhR4u+ePn3KkXR9//4dvXv3RkxMDAYPHsw0aJuamiIqKgrdu3fH5MmT0bhxY1hZWSEsLEziWuLeGGnvvKioiKcVdPbsWQwePJj721GjRiEqKorZWIiIiMDmzZt5fCjnzp3D48ePZXL+JCUlISIiAvHx8SgsLMTs2bOxZ88eWFtby9V60tHRwffv35lp+yu3RWn4/Pkzdu7cWe3M4pVRUFCA06dPc95ZKysrdO/eHZqamlLPLywsRGxsLPLz8+Ho6AhLS0vMmTMHhYWF2LlzJ8fp4uXlJcHpUlhYiPj4eERGRiIpKQkmJiYYNWoUPD09ectQsto4UPH+mzRpgpUrVwJg86Q1b94cX79+xZIlS7Bu3Tq0bNkSZ8+e5RkMS5YswZQpU5CQkICtW7fK1Y+S5wkU7T958iRPQy8kJARubm5cmxP1JSweVwBo0qQJBg0ahM6dO0NbWxvbt2/nTXoiIyPRo0cPCYNHGli/HUA5w+PTp09ISUmBmpoaunXrBhUVFZSUlGDjxo1YunQpSktLkZOTwyRF06RJEyYy0+XLl2PatGlce7148SLs7e05g+rbt28IDw/Hxo0buXsMCgrC1q1b8eeff+LKlSucRENycrKEkd+uXTuubWpqamLo0KFMXEcAMHfuXInlSvEJI8C+YiGCohWVKqPK0T//y8EaqNasWTOKiIiQWU54eDg1bdqUOcukqsjPz6fo6Ghq06YN1axZk0tzJ6rIkPLx8aFly5ZJZIktWLCAzp8/T0QVQatOTk68FGahUEhOTk705MkTysjIoAYNGnBBjAMHDqTs7Gzq1KkT6enp0axZs3hByyI8fPiQ/P39qV69eqSrq0tubm4cx0h1IyMjg8LCwigmJkYiuG/Lli10584dIvp/3BadO3cmdXV16tOnD6moqNDdu3e581mzm1RVVenNmzfc32lqavLKURaGhoa87AoTExPatWsX9/vJkyekqanJnKXFyofy9u1bCg4OpkaNGpGxsTHNmDGDbty4wcv2EAqF9PjxY5kZPA8fPlQqqD46OloiQLK8vJxOnDhBQ4YMoRo1alDt2rWZy1MWiYmJVKdOHYnEgDp16tChQ4eYsxxZ09f19PRIXV2dBg8eTMeOHZMagMqChw8fkr6+PjPlQEhICBkaGlKTJk0oISFBZrmitGcjI6OfCv4kYu9DRXj9+jWtWbOGpkyZQlOnTqW1a9dKDfbPzc2VGtT8+fNnKioqqnaOGFZcvnyZ907atm1LGRkZZGlpSY0aNaJ169ZRfn4+83erpqbGtRNZ9AVEijMiRc/7/ft3WrBgAenq6tLvv//OS/AQQUtLi0djsGrVKt5Y8uLFC1JXV5fZ1uTtkxcIHxISQra2tlS3bl2aMWOGzP6zrKyMhg4dSgKBgKytral///7Ur18/srKyIqFQSMOGDZNbV4rwyxo8lTv23NxciUh6UceuoaHBG0zE8fz5c9LQ0CAitiyTquLSpUs0ZswYjruChWhNFj5//kwpKSmUkpLCI0nr27cvde3alQ4fPkyurq4kEAjI0tKSgoKCmIy1srIyOnToEPXv318qAdd/B/Lz88nLy4sMDAyoXbt2tH79eo5DpippnHfu3JHI5NHW1paZBs0CBwcH8vf3J6IKbiOhUEhv377ljp86dYoaNWrEXB5rxpS6ujp5eHjQiRMneANx5XpRlO2jbBZhZTx79oz++ecfMjMzI6FQSCNGjKDTp09TaWkpFRQUUGJiotR29vXrV0pMTFQqu4moYoASDSpXrlyhnJwcysnJocuXL9OgQYOoRo0a1KBBA6YsR9b09dDQUAkS0aogLS2NjI2NmY1ygUBAWlpa1K9fPxo4cKDMTYR169aRqqqqVC4yVihjeGzYsIEbSPX19bm0dnV1ddqwYYNSdSNgJNqsbnTt2pWGDRtGd+/epRkzZpBAIKAGDRrQ9u3beYMwa3blnj17yNHRkVRUVOi3336juXPn0uPHjyXOY61nIyMjLsMpNTWVq4/Km66uLiUnJ8u8p+TkZC7LsTJk9SnKEF4SEV25coXGjRtHurq61KZNG9q0aRPP4AoNDSVDQ0NeVqAIiYmJZGhoSKtXr5Z5/4rwy2ZpsUbS6+np4cKFC2jevLnUcu7evYvOnTvzsjhITpaJNEhzoQMVSz6iGIC8vDx4eHjA09OTFwejCMooFhsbG+PYsWP4/fffkZubC0NDQ2zZsgXjx49nvp4IirLgqhuFhYXYuHEjli9fjk+fPnH045WDqtXU1HhZZLLw9etX7N69G+Hh4UhLSwMR8aQlDh8+jK5du0qIx7KKBp4/fx69evVCvXr18O7dO7i5ufHE8CZPnoz8/HxOeE8REhISsHjxYk7Ab86cOZg9e7ZE3M6GDRtQXFwMd3d3jBgxgos3q1wvLFpgAJiXKYqKinDgwAGEh4fjypUrcHZ2hru7O9zc3HjvYs2aNTh06BDOnj0rtZzu3btjwIABmDp1KvLy8qRmkpSVlSE/P59bkuvVqxfMzMywZcsWqWVOnDgRERERyMrKUpjl+P79e2RnZ/OWIHR1dZGWlqZw2a4qmDZtGp48eYJjx44xnT969GimZZyoqCi8ePECo0ePRmZmJiZMmCARfM0q4aKiosKrEx0dHaSnp3P1IcpuOnToEPr37w8fHx/MmjWLW4Z+9+4dVqxYgXXr1iExMRG9evVium7lAHBxVF6K9vHxwdKlSxUqg8tTSq8MAwMDJCUlwc7ODj9+/ICOjg5iYmIwZMgQiftjlaIBKrS2REvuL168QKdOnTBu3DgMHjwYGhoazFp5letDvH5Ev4kIvr6+UoPHAWDWrFlITU2V+A4VSakoix8/fmDfvn3YsGEDMjMz8fbtW+jq6qJ58+bw8fGBp6en1L+LiIhAWFgYsxyROH7ZGB7Wddvly5dj06ZN2LRpk9TjGzZs4LSJRJCXZTJ79mwUFxdjzZo1ACqi29u3b4+MjAxoaWnBz88Pp0+fxqJFi3D+/Hn06NEDK1asQO/evWVmhVSXYvGHDx/w22+/AajI7tLS0mIe2MTxbxg7xcXFCAoK4p7Vz88PAwYMQFRUFAIDAyEQCODt7Q0LCwtERUXBxMQEvXv3xogRI9CzZ0+F5Z87dw6RkZE4cOAALCwsMHjwYERERGDt2rW885SJxZIGBwcH3Lp1C6dPn4axsbFEh9myZUvY29tLjRGSBnNzc2zbto37bWxsLBF0KBAI8PTpU1y+fBkRERFo06YNrKysuGcRDZasGW6s+O2339CkSRN4eHhg//79XHC7uHDr7t27edmF4vDx8cHChQvx22+/Yc6cOUhNTZVIby4qKkKbNm2wcuVK9O3bF1evXkVISIjMMqdMmYKtW7cyZTmSmOo7IKn8DrCnr8vSPfr69Stu3ryJJ0+e4NKlS0xlAUB0dDTTedu2bcOsWbPQvXt33Lt3jymGRBaICKNHj+YGdvEAfVF8z/Lly+Hv7y+RiWRiYoJVq1ZBS0sLISEhzAYPa/yYg4MDTpw4oVAZnIiYRDwHDhzI1ZeWlha0tLRknq+joyMzRkwcZmZmmD9/PubPn4+zZ88iKioKEyZMwNSpU5kFjgG2ejl+/DimTZuG+vXrw8vLi2u7ZWVl2LhxI9atW4c9e/YwX5NFOxCQTK2/ffs2kpKScP/+fTRt2pSL63n06BG6d+8us5zu3btj6tSpzPcngSr7hn4RiNziQ4YMoZSUFG4J7OrVq+Ti4kJqampyXYTiYCUKFAgEVK9ePYWaWitWrCA1NTVq3bo1aWlpkZaWFgUHB1OtWrVowYIFSrnXxZdu5DHY/ifw999/k66uLg0ePJiMjY1JVVWVJkyYQFZWVhQdHS1ByCYifjM3N6fatWuTUCiUYHcVMZw2aNCA6tatS1OnTq0yZXt1obS0lA4ePPivXuPbt2+0detWateuHQkEAurSpQtt3bpVpiu+vLycjh49SgMHDlRquSz2T3gAAQAASURBVFJfX586depEW7du5bmuxetYX19f7tLxixcvSF9fn5ngk4hIQ0NDruyCaCkoNDSUiCro7IVCIa/NX7hwgSwsLCg6OpppY4UsnaN+/fqRn58fs1yEMnBwcCADAwO5mkaV8fDhQ1qxYgUXcxMaGspb1lCkLSfadHR0JGQRKiMrK4u0tbV/+vnEkZ+fT5MnTyZ1dXVauHChzHiq69ev06RJk0hfX59atWpF69atk6rZpCgMQrSxxvDIw/79+8nQ0JBbRpbHaL148WKllvD8/PxIIBCQrq4uN77o6uqSUCgkX19fqX8jj1iUdQn8zZs3FBwcTJaWlmRkZESzZs2S6GcNDAwoLS1N5r2np6dLXXJjxf8ZPAw4cOAAN2BW3mrVqsVjFmaBjo4OPXr0iPvt6urKk0u4c+cOmZiYMEtf2NjYcEHV58+fJ4FAQN26datSzJA4M6k0VtKfaWziKC8vV6pjaNSoESePkZqaSgKBgFxdXRXqcJWXl9Px48dpyJAhpK6uTr/99htNmzaNnJ2dSUdHh9zc3OjIkSNcoKQ8gycnJ4fTl/rZuCxx3L9/n2bPnk1169YlNTU1pr9hEUT99OmT3HXvzMxMmjVrFtWtW5dUVVV5x548eUKBgYFkampK+vr6NHz4cJ5EiSIUFBTQrl27yMHBgTQ1NWnQoEF04MABUlNT49Wxtra2XKr7mzdvkra2NpmYmPC+H3E8evSITExMiIioefPmFBkZKfPciIgIMjc3JzU1NeratSsZGRnx9OaIKgaHIUOGsD7ufwyampo8Y9XJyYkXF5adnU0AZDKCi2PJkiWkqqpKQqGQjI2NycjIiIRCIampqdGKFSuUureaNWvKlVZ48uQJ1axZk7m8Fy9eMG0inDt3jho0aEBt27alAwcOyGTtVSTiKT64y/str1/Lzs6moKAgif2iCZqFhQWpqKhQ9+7dae/evUyM1vXr16eQkBBebGdSUhIv7i0vL4+8vLyIqILlfvr06eTs7EzOzs40ffp0unr1qsx7ljX5ZY3hcXZ2Jg0NDerXrx8lJCTI7LN79epFkyZNknkfEydOpF69esk8rgi/rMGjiIZdtImQn59PBw4coJCQEAoJCaGDBw9Sfn4+FRcXy52ZikNPT48T9CSqoKyvnAX27NkzLgiaBT+rWFwZ1T2LZemERXVcVlZGERER1Lt3b7Kzs6OmTZtS3759eQGB4mrF6urqXFZWZcjrcD5//kyrV6+m5s2bk4qKCs2YMYP3PoikGzzPnj2jXr16kYqKCtc2VFRUqHfv3gqFK+Xh+/fvFBERQR06dCChUEjdunWjbdu2cZ65kpISunfvHj148ID3dwkJCdS8eXOZ3paqZEKVlJRQfHw8U4abIs+jtADYx48fc8aTQCAgd3d3OnXqFJWWlpK9vT1PR0kcS5cuJXt7e9LQ0KD79+/LPC8zM5P7flatWkWGhoZ09OhRifOOHDlCtWrVolWrVjFnOf5bqA4jmiWwFQAvGNTf358n7+Hr60sFBQV07tw5EgqFNH/+fJ6n4/Pnz/TPP/+QioqKhPyKPLRt25ZWrVol83hoaCi1bduWuTxFGUGib7My5CmDS4M0EU/WwV2Rhyc1NZW7bkFBAe3YsYMcHBxIRUWFzM3Nad68eVXqU1izuVjAIsmhzOSXdcWiuldUxPHLxvAQ47qtCFpaWhg4cKDE/rS0NPz+++/MrJ42NjZMRIHyIGLYjIiIQGFhIY9IsEaNGlVel2clYbt+/ToTtXthYSEvPuLy5csSdO/0X4F0/fr1w7Fjx9CiRQs0a9YMRIT79+9j9OjROHDgABISElBSUsILQFRTU5PKQkxy4vANDQ3h4+MDHx8fjuPojz/+gI2NDUeiKI5Xr16hXbt2UFNTw6JFi2Bra8vd36ZNm9C+fXvcuHEDpqamTPUHVBBGhoeHIy4uDpaWlhg+fDhSUlKwdu1aLpA3MzMTffr0wYsXLwBUcLds2rQJQ4cORVpaGsaNG4cjR47wyn3+/DkiIyMRHR2NN2/eYPjw4Th69CgcHBzw9u1brFq1CvPmzZNYU//69SsWL16Mjx8/Yty4cbC2toaHhwfi4+NRq1YtqKmp8WJVKvPmEBGWLl2KSZMm8Ri5xdGoUSMsXrwYCxcuxMmTJxEREYE+ffpAR0cHS5YswcyZM2FnZyfBd3X48GEsXrwYq1atwurVq5kJPr29vXHlyhX06dMH1tbWsLW15er10aNHGDBgALy9vSEUCmXGDYgCeFmDNTU0NJCcnMzVw4QJExAcHMx9kx8+fED9+vXx48cPPH/+HFOmTMHJkyd5Mi49e/bE+vXrUb9+faZrskIgEGDLli1c/a5fvx52dnZcrElWVhbq1auHa9euYdy4cViwYAHv7w0NDbFw4UJkZ2dj06ZNTHFDAoEAkydPhpeXF9TV1XlB0qWlpdiyZQvmzp3Lcciw4M6dO1L3ExFiYmKwdu1aLoC/oKAAc+bMwdatW/HPP/8gMDBQLkP269evuUSRgoICzJ49m/tWWOMZz58/L/c7EGHChAmIi4tDYWEh+vfvj6NHj6JHjx5KcQhVhni/J68fvHHjBo/nxsrKCm5ubhwnGmv8IEuf4uvryxwI36FDB8TGxmLChAmIj4/nHTMwMMDevXulcq2x4pc1eFJSUhAZGYk1a9agQYMG8PT0xPDhw6UyBrNAPLBVFliJAqXhzJkziIiIQEJCAmrXro1BgwYhPT0d4eHh3AdeWlqK6OhoiQyd6dOnV+m5pIGV2p0FAoEA0dHRuHjxIs6ePSuhu3Lu3DkMGDAAO3bsAADMmzePC1YtLi7G4sWLmaQXZD1H+/btsWbNGsTExCAyMhIzZ85EeXk5Tp8+DTMzM+jo6GD+/PmwtrbGyZMnecblwIEDMWPGDPTs2RPz58/nZVrJQ5MmTfDjxw+4u7sjJSWFM3D8/f155/n7+6NBgwZYu3Ytdu/ejdjYWNy7dw8eHh44cuQIl4EmLRNq1apVcHNzg7+/P1f+qlWrkJeXJ5VYUE9PD9++fcOOHTvw999/S2S4iUO8AwsNDYW3tzeTYSDKYnF2dsbHjx+xc+dOTJgwARcvXkS/fv1gY2MDa2trCAQC3L9/Hw8fPsTQoUMxYcIEvHjxgpngUygUYt++fYiNjcXevXuRlZUFoGLSsWDBAri6uuLly5cK7xeoMCQtLCzg7u4uNyB/xowZPMb2mJgY+Pv7cwYPEaGwsJDZiO7bt2+VB0BxEJFE9suePXu4d7Zr1y5s2LAB2dnZcpl2R4wYgZEjR6Jly5YyzykrK8OZM2dQVFSEiIgI3L17F1OnTsXff/+NRo0aAahgRv/+/TumT5+O0aNHMz+HNELEM2fOwN/fHw8fPoSfnx98fX1x5coVjBo1Curq6rh8+bJMVuzi4mIcPHgQERERuHTpEpydnREWFoZevXrxjHxZbUVPT4/XB7EaRteuXUNQUBBGjBgh10BiHVtY4efnh5UrV0JbWxsNGzYEEeHChQsICwuDr68vQkJCmCe/vr6+CvuUVatWyU0eEMfAgQPh5OSEkydPcvJGVlZW6NGjh0wdNmZU2Tf0/xMoWrdVBJF7Unw9VUVFhUxNTaWqKSvjQlekSM6qWMwCWa5ifX19sre358gEWdznIpcxC3+Eo6MjLV26VOZ9BQcHU48ePahz584ygz1Fm4ODg4TSrzKKu1lZWTR79mwyNjYmDQ0N6tu3L5mYmNClS5dk3l9SUhIXN8ICNTU1GjFiBJ06dYrH3yG+lGZkZES3bt0iooplD4FAQFu3bpUor1atWvTXX3/Rli1beEsQ4uXZ2dnJfY7Lly/Tb7/9Rt27d6eaNWvS0KFD6fDhw1RSUqIwkFtWUKOyiI2Npf79+1OTJk3I1taW+vfvT7Gxsdzx6ib4ZF0eiY2NpZ49eypUtWZt82PGjKFOnTpRQUGBRBk/fvygTp06kaenJy9eb/78+VSjRg2aPn26RCyfooQD0ZLWvXv3uH21a9fmLZ08ePCAdHV1SVNTk7d0LI5Xr17JXXZPSEigJk2akL6+Pu+7Fo8b8fb2lhs3woKbN29S9+7dSV1dnaZMmcKrezU1NSZlcENDQ7KwsKB58+bRo0ePZJJuygvQNTIy4oLfFaHykpY0PHnyhO7du8e1L9axhbVf1tDQoHXr1vGSPIqLi7mAaNagdiK2PqVJkyZyy/jy5QutXbuWWrRowXzdquKXN3gqQ9q6rSLIarw/OwDExsaSo6MjaWlpkYuLCyUkJFBRUdG/mkGUkJAgdYuOjqbJkyeTpqYmxcXFMXfqLJ2wqLOQFosjwu3bt8nIyIj5OaSx0rKu3YsgypTq27evROyQOF69eqVU5tLr169p8eLF1KhRI6pXrx7NmjWLbt++LRHIK052V7NmTYlYHiL2TCgtLS2FmVBaWlpExJbhVhmy2rt4LICsTREqZ65VJ8Fnamqq1O3OnTs0Z84c0tTUpDp16nDni95d48aNycTEhObMmcOLAWP9NqpqRMvLlpGXcKCvr08A5GZL3b9/nyMHVBR0K+37SU5Opo4dO5KWlhb5+flJzXSqLjx69IiGDh1KKioq5ObmJrVOxOOM8vLyeAbMt2/fiIgk+gVZxq+stnLhwgVavnw5GRoa0qZNm3hxUdI2Dw8PEgqFVFxcTPPmzaM+ffrQ4sWLqbS0lFxdXbnr2traSo3lkdcGFGVzAVAYT9WmTRvm96BMnyKO06dPk6urK2loaJCpqSmP8fzfwi+7pFUZ8tZtFRH2PXjwoFrvRUQUmJmZyaRIXp1QRt+HBSTGXSLOW0L/tcb85csXuXFLRkZGSinNA+ARdclCWVkZMjIyYGlpKcGZUVxcjIYNG+LgwYNo3LgxMjIyZMbo3Lt3j6fppQi//fYbAgMDERgYyHH/dOzYkVuOHDduHFdvlV3qQqFQqg7Nu3fvEB8fj4iICHh7e8PZ2RkeHh4SSyGampp4/vw5zM3Npd7X8+fPuXqoX78+goKCsGDBApw8eRKRkZHw8PCAj48PBg0axOxmZ40FkIWsrCyOlC0nJwfFxcXQ09PDxo0bsWHDBqUIPqWBdXlEhMrvLikpCQsWLMCKFSvw6dMnGBgYSBVMlXZfnz9/lhuj07BhQ3z+/Jn5OViU4efMmYN79+7B2tpa6vH09HSYmpri6dOnvGVycYgTYmZkZMDf3x8nTpzAyJEjERMTw/tWWEhPAcgkdxXH5MmTERERAQcHB9y8eVPm0pquri6TMjgrJ5ssbTGgYhnLxMQEK1euZAqL6NSpE/z9/bFz507069cPkZGRuH79Oh48eIA9e/ZAKBRi0aJFCAwMxO7du5nuj5WPS14/P2DAALl8WOJQpk8BKpYFo6KiEBUVhe/fvyMnJwdxcXEYPHgw8zV/Cv+6SfU/FEVFRRQTE0OOjo5y3dSydEQq71fWw7N161ZycXEhNzc3LqPq7Nmz1LJlS9LU1KQJEybQ+PHjSU9Pjzp06ECbNm3iZkvis3ZnZ2fKzc3lfi9evJg3y/306RPZ2tpWuZ4qo7K+Dwu1O2vWl7gnSByiGaWtrS3P8zZ+/Hje371//540NTUVpoWKEBUVRa1bt5aq21NaWkqtW7emnTt3kre3NzVr1kzqPb5//56aN29O3t7eCq8nD7m5ubRhwwZq3bo1CQQCatasWZVoAuRlQvXq1YvGjRsn8x7Gjh1Lzs7OMo9XznATzRplzSZFW1WgKHPt34K85ZHKEC2Di1Lthw0bxi2biN6dKOtERUWF7OzsuN/NmjXjlsBPnDgh816OHz9OFhYWEvt/xnM8ffp0atKkicxltCZNmtD06dOZ06BfvnxJo0ePJlVVVRowYABlZmZKva68PpTV4ypenqampsIMwbFjx9KSJUu4v9PW1qbdu3fThQsX6Pz58zRixAjy8PBQviJl4MmTJ6Sjo8N8vrm5OZdB+ODBAxIIBHTs2DHu+IULF+i3336T+LufaQM6OjpysxyzsrKUegbWPuU/sWIhDb+stEStWrWgo6ODUaNGYcSIETK9AayeBVFmiAiyqLhXrlyJgIAANG/eHPfv3wcABAYGYtWqVZg2bRqmTJnCBRwXFBRwiuQpKSlwcnLC0aNHkZqaiqZNmwKooEWvHECsq6vLCyAW0Y6zZpHJQ3p6OpycnPD+/XsmanfWayqiYi8qKsKJEydARDzPjbRnFXlaWDw8f/31F6ZMmQJXV1epx+Pi4rB+/XokJibC3t4e2dnZ8PDw4DKEMjMzsWfPHhgbG+PatWtMmRksSE1NRWRkpMwgS3FICzAsLy/nMqEOHz4MbW1t7N+/H46OjvDx8cHs2bM5r9r79++xfPlyrFmzBqdOnULXrl0VXpNFTkEgEODWrVvYtWsXRo0aJTWLY8eOHdwxaZlrc+bMQXp6Ohd43apVKyZPzu3btxWeA1QE+T9//hyBgYGIj4/H0KFDsXjxYqnB1ykpKYiIiEBsbCwaNWokNdEhKCiI6bo5OTk4d+4czp49K5FV+eHDBzg6OsLBwUHCQ/YzFP/v379Hy5YtUaNGDUydOpXzImZlZWH9+vUoLS3FnTt3FGaJiqClpQWBQIBp06ahQ4cOMs+T5xmpDPE+VBZY63jv3r3Ytm0bpxgvXncpKSkYOnQolwX5s7h16xYGDhyoMBD+7t27iIiIwIYNG/D8+XOO3V5TUxPp6emctNC7d+9gZmbGC4KX9hzKwMHBAX/++ScWLVok9fjcuXORnJyMCxcuMJV3/vx5pj6lR48e8PPzw99//10luZ/qwi+7pJWTk4OcnBwsWrRIgvIcgNKDtjjFtkAgwPfv3yX2R0REYPPmzfD09MSFCxfQtWtXnDt3Do8fP4a+vj7vXE1NTYwaNQqjRo3Co0ePEBkZiZs3b6Jjx47o3bs3XFxclEpF/Fls27YNrVq1kimzoSzevXuH4OBgpoyAkSNHYvv27bx9sgyukSNHMtG6P3jwAO3atZN5vE2bNrh//z4MDAyQkpKCgIAAxMTEIDc3F0CF7IC7uzuCg4OVMnYU6Yw1bdoUHh4eMrP1KkO8MxShcibUp0+fsGPHDjg4OGDDhg3w9vbG6tWroaurC4FAgK9fv0JNTQ3r1q1DcnIykpOT5V5TIBAw0/svWrQI6enpmDZtmsQxPT09XLp0CXl5edi9ezdT5lrldHhFiImJkWnMAkBJSQmsrKzw9u1bhcsjdnZ2+PDhA9zd3XHp0iWZyy+s6bc5OTk4duwYGjVqJNOInjdvnsTSoawsTNalwytXrsDLywv+/v68VHhHR0ds3LiR2dh58+YNCgsLAVRIR8iCQCDA/Pnz4evr+/MZNv8F1jpevnw5b6ll4cKFvHozMTHB+/fvq+WeiouLsXz5cpn9SV5eHvbu3YuIiAjcvHkTzZs3R1lZGW+JWlVVlafrJRQKQUTMY0tCQoLC+2zVqhWWLl2KoqIizJo1i3vf2dnZCA0NRVhYGA4ePIgmTZow0yso6lO6du0KT09PbNy4EUlJSRz9h7Slv7i4OAwYMICjH3n+/DnMzMy4evnx4wfWr18PPz8/hc8qDb+sh4dVJJFVGLB+/fpMYqTq6urIysriPkR1dXVcvHgR9vb2vPLKy8slxBFF+48ePYqIiAgcP34cJSUlTMJyLIYbq74PC2+RCJmZmTh//jzU1NQwdOhQ6Ovr49OnTwgODsbmzZvRoEEDZGZmMpXFKqLH6pUzMTHB1atXZQ5e6enpaN++PfLz87l9RMRpSVU1bkTcK2dra4uTJ09ybYLlnWVmZiIiIgK7du1CVlYWsxcFqBis4uLi8PjxYy7OysXFBaamphAKhahXrx7q1q0r03gWCATQ19fHgQMHJIx0cbRs2RKhoaHo1q2b1ONnz56Fr68vMjIy4OrqihEjRqB79+5cvf7MDFBDQwOJiYlwcnKSOFZWVobBgwcjMTERmpqaMnl9REhNTUXNmjWhqqoq952zamkBFUZPQEAAYmNjeUb00KFDERwcjFq1ajF70ljT5r29vbn7fPz4MQCgcePGzAZ7dnY2goODER4eLsGpJQvi7f2/C4aGhjh8+LBM3pbLly+jb9++zO9s0KBBUvd//foV9+7dg6qqKi5dusTzvCQlJSEiIgLx8fEoLCzE7NmzMW7cODRu3BhCoRDbt2/nUtrd3NwQFhbGGSG5ubkYM2aMzLFE/DcRQVtbG6qqqnK/3aCgIPj6+qK0tJS79tevX6GiooLly5fDx8dHoq+V5U0vLy8HIL9PEeF/worFL+vhYeVKEIqpqotQudEJBALmwDcHBwcmokA1NTXei589ezb+/vtvGBoaom/fvujbty8+fPgAExMTpiBJFsgi9NLV1UXPnj0xefJkWFhYMHOXpKenY/DgwSgpKQFQMePatm0bhg4diqZNm2Lfvn0SJHOysH//fuaAUH19fbl1IHp3zZo1w5UrV2QaPMnJyZx7OSUlBYcOHUJpaSm6deuGHj16MN23rOtXxuvXryU8NdI6rO/fvyMmJgYRERG4ceMG2rVrB39/f6xfv16hF+Xbt28ICAgAUBF4O2PGDKn31rNnT5w/fx5//PEHPD090bt3b6lq0kKhEMXFxQqf9cmTJ1wdSoOlpSWePHmCZ8+eITo6Gl5eXigoKICbmxuGDx/+Uxw0ISEhGDx4ME6fPs0T+C0rK4OLiwuuXbuGqVOnSnhLpEFkKCiCg4ODwnsWCAQ4e/YsDAwMsGnTJmzcuFGmEc3qSYuLi0NUVBRWrVoFZ2dneHp6SvDIVIahoaFMD2Jubi6mTJnCifT6+/tj6tSpWLBgAVauXAk7OztERkbC09MTa9asUZhUUd1zatZlzVatWiEhIUGmwXPgwAGlJm+y+L7MzMzg4uKC4cOHQ1dXF+/evUNUVBQiIyORn58PNzc3JCUloX379hg5ciQaN27M/a24d3vixIm838qMLZMnT8b79+/h4eEBT09PuUHgAwcOxL59+3g8N4MHD4aZmZnU82V500WQ16eI8D9hxeKX9fCwIi0tTep+EmP1XLlyJYYNGyYzDkUEoVCIxYsXcxkQc+bMwezZsyU6XR8fH7kWduXyKse/HD58GF27duUpFp84caJaYngqX5PFCGzTpg3atm2L4OBgbN26Fb6+vrC0tMS2bdvQqVMn3t+WlpbiwYMHUFNTg5WVFbc/MTER8+bNQ1ZWFkpKStC0aVOOKTU9PR02Njac+7O0tBQZGRk4d+4c03OkpKRg+fLlOHfunETnkJaWhm7dusHPzw+WlpYYMmQINDQ0oKqqim/fviE0NBQ+Pj7MdVYZrJ4q0TtLTk5GeHg44uPjOY9YUlIS15GzelFkGbTiePfuHZe1mJeXh5EjR8LT05OX3SP+DLKgr6+PEydOyHT1X7t2DT179uQ8HABftb6wsBC+vr5c5poyBgVQsfyxbt06XLx4EU2bNkVZWRmGDh2K5ORknD9/ntlz9P37d5lZS5Uhr9MXLWsUFRUp9HiUlpbi9u3b8Pf3Z/KkifDmzRvu3eXn52PkyJEYO3asXKNTHJMnT8bhw4cxbNgwnDhxAvfv34eTkxMKCwsxf/58brLI6rkRCoV4//79TymzVwZrDE/Tpk3h6uqKsLAwqcrgs2bNwp49e+Di4iK3nPv376N37954+vQp03U1NDQwZMgQeHh4wNHRkbvuf0e8iohQNzY2Fo0bN8bYsWM5Q4wFIuUA8XhJWX3UwYMHmcrt16+f1P3/5oqFNPyfwVMFVE5bnTlzJnx9faGnp8f08YsvfUmDyEUt78WLMGbMGKZ7ZklbZQWrEVhcXIzr16/DysoKpaWl0NDQwOHDh+Hs7Mz7OxYJBW9vb0RGRjLdH+saf0lJCXr06IHk5GR0794dNjY2HLvvmTNn0LFjR5w+fRodOnRAixYtsHnzZqiqqmLx4sUICwvDp0+fmK4jDlaDZ+nSpYiMjMT379/h5uYGDw8PtGjRQqLj1NHRQUZGhszU0JcvX6Jp06YSa/4suHjxIqKiohAfH49mzZrhzJkz0NTUhFAoxKNHjxQOYv3794e9vT2WLVsm9ficOXNw/fp1qbPYr1+/Yvfu3YiMjMTt27fRtGlTmUYdwDcoKneI06ZNQ3x8PC5cuIDAwEBcuHAB586dQ7NmzeTee2UJl69fv2L79u0ShjoLSktLsWHDBgQHB0NPTw+LFi3C8OHDmZY1xQceZSBKm7948SKXNs8CCwsLREREoHv37nj69CkaN26M6dOnS8QJsRq9QqGQN1GRBdZAc2UwZ84crFixAjo6OmjYsCEEAgHH8Dxz5kysWLFCYRkiI4DVSB0xYgSKi4vh7u6OESNGcMul/50BugUFBdi3bx+ioqJw/fp1DBgwAJGRkQon5GlpaZwHLTs7m/u+dXR0kJ6ezi2xVm6fisAaC/vhwwcYGxv/qwbPL5uWXhXIS1tVRNalLBQRmP1Pw+nTp6l169ako6ND8+fPp2/fvkl9hsePH0v8bd++falr1650+PBhcnV1JYFAQJaWlhQUFKQUay4rbt26Rb179yaiCobRkJAQatGiBWlpaZGmpia1aNGCQkJCqKioiIgqUjkrE/4VFhaSiopKldOkhUIhPX78mBPG09HRobS0NI4Q7eHDhxzDb0BAgETavHgqp56enlzG2qtXr5Kenl6V7vXHjx+0fft2atu2LWlqanLEhvJYZyvTNezfv59UVVVp3bp1vOcoLS2ltWvXkpqaGpPi+507d8jT01PqsZKSEgoLC6M6depQ48aNae/evRLneHh4kIaGBtWuXZvS0tLkXksaIdrs2bOZmXsrY9euXdSwYUMyMTGhDRs2cCrRVWUrZ4G8tHkWqKqq0ps3b7jfmpqaPOFYEQQCgVw6icrn+fr6SrBDi2+sKCgooMTERKl9w9evXykxMZH3vMoqg4tDRC4rTndhY2PDI92rTMiYnJxMY8aMIW1tbfr9999p1apVpKqqKjN1/99CUlISdenShYRCIRMRpOhZWekVqhsCMZZ8LS0t2rp1K/d7+/btP3XdXzaGRxk8fvyYl7aamZkpNSXwZ+INpEFcN0o0Q6yMVatWVes1lcWtW7fg7++PS5cuYdy4cTh27BhvFpSZmYns7GwAFR6gBw8e8IKAgQox0mPHjuH333/Hn3/+idjYWMyePRvjx4+v8n2dPn2ai0EYN24cGjZsiKysLPj7++Pw4cNwdHQEUDHr8vPzkxv1//37d96Sgrq6OjQ1NZGXl8cU/yEO+q+gvsq/K8cS0H8tDS5cuBDR0dHYuXMn3NzcMGLECC64rzJEsQqylo0OHjyoVKwCAE5YNS4uDlZWVhgzZgzc3d15rvH9+/crDHbt3Lkz/Pz8MH36dAQGBkrMsmfPnq1wSaGwsBDnzp3jCOQqY/fu3Zg3bx4KCgqwYMECnjhl5SB8fX19EBFatmwpIXq5atUqJkK0QYMGwdPTEydOnMDOnTvx+++/y7znEydOwN/fH8+ePYOvry9mzpzJLTOzQhSI+u3bN17cnzTo6upKTZuPj49XWh+wvLyclz2koqIi894rE4vKw+zZs6staHnLli04dOiQ1GUSXV1drF27Fi9fvsTUqVMBAO3atZObjckKUiL2rmPHjujYsSPWrl2LvXv3IjIyEmVlZZg8eTLc3d0xYMCAalviE8ebN2+wfft2REVFIT8/Hx4eHti0aZNS7WDevHm89yqNrPDfIgtkiWuqKv7P4JEB0bptz549mVg9AWD06NEKXYaFhYXYu3cvZ7gEBwdjypQp3ID6+fNn/PXXX+jUqROPxblDhw4Sa8gCgUBCDFAaBAIBs7AlK1iNwG7duvE6ClGQcmW+HiLiuCj09fWhpaUlNaicNX5j5MiRGDNmDAwNDfHlyxeEh4dj1apVmDx5MgYPHoy0tDSphoM8nDx5kmdslpeX4+zZs7h37x63T9Y6tThYgxA7d+6MgIAAJCUlITIyEu3atUOjRo1ARLxMtKlTp8LV1RWmpqbw8vLigoxFsQqrV6/Gnj17pF6jsLAQsbGxyM/Ph6OjIw4ePIioqCh8/vwZw4cPR3Jyssyln44dOzINYsHBwejfvz92797NZXF06tQJ7u7uXOBscXExgoKCOCPVz88PAwYMQFRUFAIDAyEQCHiBwywGhXjMUvv27TmuGRE+fvyIHj164PLly+jVqxfWrFkDZ2dn1KxZk1NXF6Fdu3a4c+cO5s6di44dO8LR0VFimcbf3x9z5szBtWvXMGnSJJw5c6ZKRnFlVDaOxSH6hmxsbJjS5llARLy+rLCwEJMmTZJq9AQFBSkU72Xpo5TB7t275bIB+/j4YOHChZzBo0gZvDoh3j9pa2tj/PjxGD9+PO7fv4+IiAjMnTsXkydP5pI5qguiwPWkpCQ4OTkhNDRUIulA0bK2iEV7wYIFSl373LlzOHDgAJ4/fw6BQIAGDRrAxcVF6SVgUdbXv4X/i+GRgcrBWxoaGkxpq0OHDlXI/7Jjx45qTbsbOHCgzGOVFYurM2i5MrX7smXLZBqBrIReDRs25K0X6+rqIi0tTSIllzUgtFmzZnB1dYW/vz/i4uLg6uqKVq1aIS4ujlNqVgayMl0qQxnOpqri27dv2L17N6KionDr1i20bdsWLi4umDlzJgIDA7F06VKpsQqzZ8/GsmXLMHv2bBQXF2PNmjUAKowMe3t7ZGRkQEtLC6Wlpfjx4wfMzc3Rp08fLhhcGsLCwqocWyINAQEB2LBhAxwdHXH58mV8+vSJ46oKCAiAu7s71NTUcP36dZ5BERgY+FMGhaqqqlKEaHl5eZg2bRr27duHwYMHSxg827dvh6amJiZOnChXOmLGjBl4+PAh6tSpAyKCmZkZkpOTub95//49bGxsQESIj49X6ElzcHCotrR51rjA7du3M8fwyDqvctAqC48MABgYGCAtLU1uzFqLFi2Qk5MjVRn86dOn+PHjB6cMLpIEkYXS0lLk5+czB/Iq6gdKS0tx6NAhmWnurHjx4v9j77vDoki67k/PgCQBs6irwCoIYk4YVgWMGDECggHMGQUFE5hQURcxi0oSEyqsiAEVs+uaxUAQDJgxg5KUcH9/+E3/mFyDw/p+n+95nn54erqmumrorrpV995zniI3NxcWFhYQCAQQCASoV68eXFxc5PIpeXh4MGewjh07VopYUxYmTpyIbdu2oXLlyjA3NwcRIT09HVlZWZg8eTI2bNjwQ/1UJ/5r8MiByODx9fVlKr948eIyvfxqD8r6H8TGxmLevHl49eoVvL29pQjcfgQCgYDJCGQJQkxMTETLli1haGjIv4hZWVkwMDCQMjRkDdayAkLHjRvHB9iVlJRAS0sLCQkJzFQEPxu3bt2Cr68vjhw5IreMiK11z549ePv2LYDvrsHSuyjm5uZiuyiNGzfG8uXL+Z2osLAweHp64vbt26hXrx7c3d1x+PBhpt2BjIwM3LhxA1WrVpV5vaCgABs3buR1qJStshs0aIDVq1dj4MCBfOCko6MjIiMjxYwKgUDAZFBMnz4dwHcDpWLFilLPUklJCXJycuDl5YX9+/fDyspKjBBNlsFz8uRJjBkzBrVr10ZERITM51+VpARWbhWWcUWSlFMeWEg+WcGapfX06VPUrVtX7H8gSksWaaT17NmT2eDR19fHuXPn5DKR37x5EzY2Nti4cSMmTpyI1atXY8KECbybrrCwEFu2bIG3tzeCg4OZU5/d3d2ZjNS9e/cykefZ2NigVatW/OeSz8DXr18RGxuL/Px8fPr0SSwrdPz48fyufcOGDXHixAl06tRJ6bNXUFCAffv2Ke3rnj17EBUVha9fv8LBwQFjx46VmTDw119/wcnJCcHBwRg1ahR//5KSEp5m4sCBAzAyMmLqq5GRkdK2AShT8oDoxv+FDMhTQZcHZfpNmZmZtHjxYmY15bLi31AsVhZ8qCwIUaQb1aJFC5U0tyRR1oDQ/wScPHmSvLy8aO7cuXzbUlJSaMCAASQQCKhnz55M9Xz79o35nvr6+pSens6fOzk50bhx4/jz27dvy1Tolod3797RkSNH6MSJE3xA8rdv3ygoKIhq1qxJVatWJSKi2bNnE8dxpK+vT82aNaOmTZtSxYoVSSAQ0Jw5c4iIpBTptbS06Pbt21L3ZNF5MjU1JSKimJgYMjMzo9zcXKl6cnNzydzcnA4fPkx5eXkUHh5OnTt3Ji0tLerfvz8JhUKxQN3x48eTlpYWLV68WKb22rNnz8jNzY35tzt37hzToe5kCFXx6dMnun79Ot24cUNKiZ6lbaUD0kW/c6dOnUhTU5MEAgGtW7eOVy1nhbW1Na1cuVLu9RUrVpC1tTW1adNGbcrghYWFUoH6is5L/y76+voyx3jWcu3ataPQ0FD+8+PHj5OGhgbt2rWLbt68Se3bt6cxY8Yw9UMV5Ofn086dO8nW1pYEAgEZGxvT4sWLxQK1+/XrRz4+PnLrmDNnDvXv35+5r8r01kTJHGXFfw0eORAZPMpe6MLCQrp69arSl790pH/pzIaKFSvS48eP+fOyGjz379+nvn37koaGBrm7u4tNHv8pOH36NLm4uJCOjg5ZWFjQ/Pnz6datWyrXc/z4cWrWrBkZGBjQkiVLKCcnR+y6skh/0TFr1iw+E+vfRHh4OHEcR1WrViWO46h69eoUGRlJ+vr6NHr0aH6ijYiIUHrs3LmT+b6GhoaUlpbGn5uYmFBISAh//uTJE9LW1lZYx8OHD8nW1pb+/vtvXtBUIBBQ27ZtKSkpiczMzKh+/fq0YcMGys3NpfDwcNLW1qYNGzaIGWffvn3jRUcjIiJkGqml34uyoHv37rR9+3a510NCQqhHjx5in6WlpZGPjw/Vrl2bDAwMyNnZmaKjo8nKyopu3rwpty5VF0isMDExoffv36u9XmV48uQJ9e7dm4RCodhE06dPH3ry5AlfrrCwkO7fvy+WxUhEdOjQIWratClVqFCBrl69SuPGjSMDAwNq3bo1BQUFUWZmZpmFI4ODg0lPT4/i4uKkrh0+fJj09PQoODiYdHV1FS50Hj16RLq6ugrvlZSURLNmzaIaNWqU2UiVt6hlzdSrUqUK3b17l/984sSJNGjQIP787NmzZGJiorAfknjx4gWtW7eOpkyZQlOnTqX169fTixcv5JZ//PgxLViwgOrVq0dCoZB69OhBUVFRVKdOHbp69arc7129epXq1KnD3NesrCyZx6tXr8jb25t0dHTIyspKpb6Wxi9r8JRWoZZ16Ovrq5SKeO7cOX6HQRZKp/v17t2bBg4cSAMHDiQNDQ3q0aMHf967d2+VBk5WxeKfhefPn9PSpUvJ1NSUatSoQVOnTi3zQHf16lWysbEhbW1t8vDwkJsWrmiVUHq1YGpqSo0aNSqT0fUjaNasGa1YsYKIiKKioojjOGrZsqVUyr5oV6Ry5cpUqVIlmYekWroiWFtb059//klE3w1kgUAgZlScO3dOpkJ3aYieYzs7O3J0dKR79+7RzJkzieM4MjU1pYiICCopKeHLs66yOY6jCRMm0MyZM2nmzJlUoUIFcnd3589FhyqoVauW2I6WJNLT0+XuaBUXF9Phw4dpwIABVKFCBaWGseh3kVSLl3f8KM6ePUt5eXk/XI8sPHv2jGrWrEm//fYbLV++nP766y+KiYkhf39/+u2338jIyIieP39OycnJZGpqyo+TAwcOpMzMTOrcuTMZGhqSp6cnPXv2jIRCIXl4eFBqaqrYfX5EKdvFxYU4jiNLS0tycHCggQMHkoWFBQkEAnJyciKisiuDf/nyhbZv307t2rUjoVBIHTt2VPgMS0KdBo9AICAdHR3KyMjgP2/atCkFBQXx50+fPlW6UCmNTZs2kZaWFnEcR5UqVSJDQ0PiOI60tLRo06ZNCr9bUlJCBw4coCpVqpBAICAtLS2FhtKLFy9IW1u7zJ6N4uJi2r59O/32229Ur149Cg0NpeLiYua+SuKXzdJiFduTDOCTl4rIGh8i6UN3dXWVKjNy5EimuoDv/luO4+Dp6YkOHTogPT2dpwsvDdYMIhawUrsbGRnh0qVL6Nu3LzZs2IBevXpBKBRi69atYuWUBQ2KkJWVBR0dHUyaNAkmJiZyM49YI/3z8vIwe/ZstG/fHvPnz8f8+fOZApR/FI8ePYKjoyMAYMiQIRAKhQgMDJQKqLa0tGSmimfB7Nmz4ezsjKNHjyIpKQm9e/cWCww/duwYk2Ap8D3G7fz587CyssKyZcuwbt06BAQEYOjQoWLlkpKSZKa0iuDg4ICFCxcyZyVKimnKw/Tp0/Hp0ye54qrA91gOebprAoEA/fr1Q7du3bBx40aFAdylsXbtWqVlOI5TGjwqKiev/T169MCdO3ekMsnUAT8/Pz4upHQ6/MCBAzFz5kz06tULfn5+ePfuHUxNTbF+/Xrs3r0bUVFRuH//PlxdXXHkyBE+CNzOzg4hISF4+/YtRowYgZ49e/4whceuXbvQv39/7NmzB2lpaSAiNGzYEIsXL8awYcMAAK1atcLu3bvlKoNLUgsoYzT/WTA2NsbNmzdhbGyM9+/fIykpCX/88Qd/PTMzU2mmnAhHjx7F9OnT4eHhAU9PT9SqVQvAd3b11atXY8aMGTAxMUHv3r2lvnv27FmEhYUhJiYGGhoaGDduHLZt26bw3dDQ0GCSoJGFmJgYzJs3D+/evcPcuXMxbdo0pVnQyvDLGjwswXtFRUVMGQuqvLyqMh6np6cjNjZWLN3PwcGBD3JmVSxWZwYRq2L10qVLMX36dEyaNEkhtT2r8enn5weO4xTSmXMcxwesykNxcTHi4uLg4OCATZs2YciQIRgzZgyOHDkCHx8fKe0odRqLAJCbm8un+IoCwGVp2CQlJfFU8Z07d5ZLFS9PaFYSgwcPxrFjx3D06FH06NFDSntLV1cXkydPZurDx48f+aw6XV1d6OrqyuT6EQqFCge8wsJCCIVCnDt3jum+rGKa06dPh4mJCW7cuCE3uP7GjRv8JHL16lVoamqia9euEAqFKCwsxObNm7Fy5UoUFhZi9uzZTO1j1b6KjY2Ve+3y5cvYsGEDiEgu109RUREGDx7MGyTqZCmOj4/H/v37ZXL/6OjoYOnSpXByckJJSQkTf9bJkyfx/PlzhIWF8VppIoP/RwyfYcOG8caNLHh6esLBwUGpMviqVavEGM0vXbrEM5qXzlCSJ6lTGqLrpWksJCksSsuoSPKUpaamIicnBwB4JveRI0diypQpvGyOhYWFWMD25cuXmWk2Vq1aBR8fHyxbtkzs81q1aiEwMBC6uroICAjgDZ5nz57xUiUZGRno1KkTNm/ejKFDh0JHRwfbtm3DwoULeb44SeTl5anUV+A7Q7i3tzfu3buHGTNmwNvbm9mgU4b/ZmnJQGkl6nfv3jFlVSkTF3z37h327NmjkuGxYsUK+Pr6oqSkhFevfvfuHYRCIZYvX85nwPynojR5nYWFBZ8FU7t27X+NYr00UlNTxTJDSk/EsbGxGDx4sNTukDxjcfLkyViyZEmZUqKVqSSLUNrQUkQVb21tjcjISIV8LeqCKHsRgMKMFREGDBiAP/74Q+4qe8GCBbh06ZKUwfP+/XtwHCc3C4wF8+fPx65du3Dt2jWp3zYzMxPW1tawsbHB4cOHkZ2dDY7j0Lp1a4SFhcHBwQElJSXw8PCAu7u7zJ3Y0sjKysL58+d/aGGRmpqKuXPnIi4uDi4uLli6dCnq16+Pbt26iRHnERGWLl2KiRMn8uOSn5+f3Iy04uJi5ObmMuspaWlp4dGjR2JK16Xx4sUL1K9fH4WFhXj9+jX/21asWBG3bt1S+hyeOnUKoaGhOHToEC+8OWTIEIVEjqXBKpFiYGCADRs2KFUG19DQgLe3N5YsWSK22JHM1GM1Ur9+/aq0bZI8ZIquFxYWws/PD0eOHIGRkRECAwPFdvaGDh2KXr16YcyYMUy/yfXr18V08UrjwYMHaN26NYKDgxEWFoazZ8+iZs2avCZbaeFTALCxsWEyWs+fP8/U1549e+L06dNwc3PDokWLmLO2mFFmZ9j/Mcjz27LKANjY2DAdbm5uSg93d3c6c+YMCQQC8vPzE8u0+vDhAy1cuJCEQiGdP3+e3NzcykV+QRFUpXbPzc2lkJAQ6tixI5+dERQUpHK7bW1tpTJFlCEnJ4dCQkKoQ4cOJBAIqGvXrrR9+3Y+/icvL4+mTZtGWlpatGjRIoVxWKUhmWWgClhjjGRBFlX80KFDSVdXl9avX1+m9ogQHR1N2traPH28rKNhw4ZKM1RKn8fFxZFQKKTZs2dTZmYmf6/Xr1+Tl5cXaWho8MGnnz59osmTJ1PVqlX5eqpWrUpTpkxh/r+Xzpb6/PkzWVlZkb6+Pk2aNImCgoJo3bp1NHHiRNLX16dGjRpRly5dmGKRRo8ezXScPn2aLC0teQmO0sjKyqJGjRrR+fPnxT5/+fIljR07ljQ1Nalv375i2WGXLl2i+vXrk6+vr1jsgmT8C2tGGgtMTEwoPj5e7vXjx4+TsbGxVAKGvr6+SoHmHz9+pPXr11Pz5s1ViluUfNbkyZqI8Pz5cwoMDKRJkybRpEmTaO3atfTs2TP+ur+/P5mZmVHdunVpzpw5/O/PEmOUkpJCDg4OJBQKaeTIkWLxncqQkZHBdLDi5cuX5OnpKffZ8/LyYgrk1tPTI01NTXJwcKC4uLgfipkRgbWvHMeRpqam0hjbsuKX3+FR5reV3MYkOXwZ6iYKHDJkCCpVqoTg4GCZZcePH48vX75g//79TFwY6sS6detw+PBhXpFaEt26dYODgwPPdFoaDx48QEhICCIjI5GVlYXu3bvj4sWLzDE8rGR3//zzD3bs2IH9+/fDzMwMLi4u8Pb2xt27d/kV2+XLlzFq1ChoaWkhIiJCLq+HLMgTcy0PyKKKd3d3F3PVHDx4EFOmTEHTpk0RFhYmd3W+fft2ns14xowZsLa2xpkzZ+Dp6YkHDx6gUaNG6Nevn9I22djYMLW9S5cuTKvsjx8/on379nj58iVcXFxgaWkJIkJKSgr27NmDunXr4vLly0pJ0EQ7UKL3MTs7G3PnzkVUVBQfr1O5cmU4Ojpi+fLlaNCgAR+LlJeXB319fezbt08qFokV/fv3h62trVySzPXr1+Ps2bP466+/kJ2djeXLl2PDhg1o3rw5AgIC0KlTJ6nvfP78GRMmTMDjx4+xZ88e1K9fX2r3oUePHhg2bBjGjh0r874iBe0TJ04o7YOHhwfOnDmD06dPS8kfvH37Ft27d4etrS3Wr19fZv4sSdy6dYt5h+f8+fNM5ZTFVUo+KyJG8+joaNSvXx9JSUlyY3hevXoFPz8/REREoGfPnlixYoXK7O3qhpeXFz5//oxt27bJvD5x4kQcPnwYs2fPlvt8BgYGIioqCnFxcf/qnCJCefNJ/bIGj6TfVp4StbpeLhFRnLx4FUmiwODgYERGRooFp5XGxYsXMXLkSDx9+lStjLcsaNu2LRYuXCh3Yjxy5AiWLFmCa9euya1DFEcTGhoqpslCRJg0aRKWLFki1Sc3NzemvjZq1Ah5eXkYPnw4XF1d+f+l5P+2QoUKmD59Ovz9/VUOhvs3DB5Jqng3NzcpqvjSePfuHaZMmYJTp05hxIgRUizAtWvXxrx589C0aVOkpKQA+O72CQwMxLRp0zBlypQflkGQhxcvXuDAgQN8QL25uTkGDx7Mxy55eHjg9OnTSEhIkOl+6tGjB7p27ao0KFhyEhOBiPD+/XsQEapXr85P0rKIQG/fvi21dc8KY2NjxMfHyw0mTk1NRY8ePTB16lQEBATAyMgIy5cvVxjYLUJYWBjmzZuHxYsXY+rUqUhMTOSf5dq1a+PChQty2/3w4UN07twZr169UnqfT58+wdraGpmZmXB1deUN6+TkZOzZswdGRka4cuUK4uLilNYFgFnH7UeD8lWFiOBS0o2tiNGcxUg9fPgw0/0VyRSVRpcuXZhih3R0dLB161a5c8bly5cxdOhQfPr0CWvWrBHTnSsqKkJwcDBmz56NzZs3K2X2FsHHxweXLl3iy48fPx7+/v68ofz27VuYmJggNTWVqT557Nnqwi9r8LD6bX8EIrmDkJAQ3LhxA02bNkViYqJYmb///hve3t64ffs2pk6dCh8fH1SuXBm6urpIS0tT6Ec3MzPD169f8ebNm3ITopMFVmp3UUaBmZmZlORGfn4+0tPTYWVlJTWByzMmBAIB0tPTlfa1WrVqcHJywogRI9CtWzd+sJD83164cEEhYycL4/GP4MOHD3yMyvPnz7F9+3bk5+ejX79+6Ny5MxNVPPD/WYWLi4uxZMkSLF++HO3atRMzeDiOw+vXrzF79mxessHOzg52dnY4ePCgmDiqPHz69Am7du1CSEiI3EHd0NCwTAGGJiYmCA4ORs+ePWVej4+Px8SJE5GRkaGwntIGz9u3bxUax0VFRdDS0mKKRWKNf9HW1sb9+/cVGh5NmjTB169foaOjg27dusk1YIHvmSqlkZ6eDhcXF9y4cQP379/nn2UdHR3cvn1bboB2SkoKWrZsifz8fKZ+fPr0CfPmzUNUVBQfZFupUiUMGzYM/v7+zLFVRUVFqFChgtz4DRHKkliRnZ2NU6dOiSV0dOvWjfl/Jc84Lo3SjOYiKQplRqrkDpesvpeOW5FE6c85jsOff/4pt30ZGRkIDg7G169foa2tjZSUFIXjsqWlJSZNmoTAwEDo6+vzmaEiGZrp06dj7dq1zHI6JMEELksqSZQJxtJXRVmV6sAvm6XFqkRdFpw/fx4hISGIjo5GQUEBZs+ejT179ogNgklJSfDx8UF8fDxGjhyJffv2iRk3BQUFCtP9NDU1+aBbFsVilm1lVhQVFeHdu3dyX6x3796hqKgIkZGR2LhxI65evSpVpkKFCnB3d4eHh4fSgNDSYBFSFGUWiDJCnJ2d4eLiIvUbde7cmVlVXZ24d+8e+vXrh+fPn8PMzAz79u1Dr169kJubC4FAgLVr1+LgwYOoV68eOI6Tm34P/P+MpKSkJIwYMQKfPn3CyZMnYWtrK1VWV1cX3bp1A/DdJaWpqQl/f3+lxk5CQgKvdVStWjUMGjRIoYRC9erVMWfOHMyaNQsPHz5Edna2mLvw9OnTWLZsGXJzc+Hg4IB58+bh9evXsLKyktuGxo0b8xkerKhVq5aYu9fS0hInTpzgn9sPHz6gpKSESbmedTKuU6cO7t27J9fguXv3LmrVqoXOnTuXKUPJzMwMV65cwZcvX8QmdtaMNFZUrlwZW7ZswebNm/Hu3TsAENsZU4bSiR+smWuqYNeuXZg6dapUALOhoSG2bt3KZ4H9KJo0aYKgoCCsXr0aWlpa0NHRQYMGDRARESHX/SK5YyRvAXfnzh2Z3yci7Nu3D+vXr0fFihVlJsR8/PgRS5cuxZYtW2BtbY2AgAD07dsXGRkZcsfljIwM6OjoYM2aNRgyZAj27t3L77h27twZTk5OfHA8K7WHpGEky6jlOE5uFqFkX1kpSso6n/2yBs+8efOYlKgVrb5K48WLFwgLC0NoaChyc3Ph7OyM8+fPo3379hg5ciQ/AD5//hy+vr7YtWsX+vbti7t378rd/t6xYwcqVqwo85pI1RZgUyxWJ6ysrJCQkCA35uXUqVOwsrJCSEgIvLy8ZP6GQqEQc+bMwcaNG1UyeA4ePKh0u7VOnTo8r86ZM2cQGhqKjh07oqioCOHh4Rg7dizMzc0RERGhdlV1FsyZMwdNmjTBrl27+Oegd+/e2LFjBwBg2rRpWLlypdLdDBFWrlyJRYsWYfjw4Vi3bp2YCGZpFBQUiKUaV6hQQe5u2bNnzxAWFoawsDDk5OTg06dP2L9/P+9+lKeAnZWVhWvXrsHf3x+6uro4ceIEGjduzD8rT548Qb9+/dCpUyc0bdoUK1asgK6uLqpVq4aMjAy5O5pPnjxB1apVlQoulk75lRx8ZXFoAd+VntWF3r17w9fXF/b29lJp3fn5+fDz80Pfvn2Z+YRkQSAQSL3vgwYNwvz589G9e3eZLsEFCxYwv2dnzpxB586deSFSVnd5Tk4O9u3bh5CQEFy/fh3t2rWDj4+PSoYWC27dugU3Nze4uLhg5syZvMhqcnIygoKCMGLECFhYWCilMBCNoTt37lR6T47jMHLkyB/mDyqNZs2aSX2WkJAAHx8fpKWlYc6cOVKZuPn5+QgMDMTq1athYmKCmJgYPoVclK0pb9d6586dPM9Wu3btxDL/JOHu7q5wLFEVrH2Njo5Wy/3koszhzv/H8PnzZ9qyZQu1bduWhEIhtW/fnv7880/iOI5MTEzIz8+PDh06JPfQ0tIiV1dXio+PV5hNoaOjQ7q6uuTt7S0ldVD6YNEMMjEx+SlaO6zU7tWrVxejoZfE48ePqVq1alKfy9O++pG+ivS7WrVqRRzHUZMmTZgZj9WNqlWr0p07d4joe3Ygx3F0/fp1/npKSgoZGhoqref9+/e0du1aMjIyUpqBk5ubSxzHkb+/P8/2q62tTQsXLhRjAB49ejR1796ddHV1aciQIXTo0CH6+vWryqy4kZGR1KxZM/rtt9/o8uXL/OdLly6lZs2a8ec7duygZs2akbu7O3Xu3Fkmo3FBQQF16dKF3N3dmbOliNgYbzmOE8so/FFkZmZS7dq1qW7duhQQEECHDh2i2NhYWrlyJdWtW5dq164tlq0mC6VZnlnBkpHGmhUpyS5vbW2tkE334sWLNGrUKKpYsSI1adKEhEIhXbp0SapcWloarV69mpcz+PPPP8uU6Th69GgaMmSI3OuDBw8mNzc35mwueSzmokyhChUq/JBsCIuW340bN6hbt26kpaVFU6ZMkRrnioqKaMuWLWRkZEQmJia0c+dOsSxCIqIzZ86QUCgkT09PsWcsMzOTZs2aRUKhkE6fPq2wHdHR0dSkSRMmWSUiKpNUkrK+lif+a/DIwN27d2nGjBlUvXp1unbtGk2cOJEqVapELVq0oA0bNsgU5DQ3NycTExOaN2+eGJ255ETxIynJssD6YKobLNTuurq6/MQuC3fu3CFdXV0p+QB5sgLqMu5u375N06ZNE3s5i4uLSUNDg86dO/fD9StDWWnWib5Tu8fHx9PQoUOpQoUKVK1aNYVaS/n5+bRmzRqqWbMmkxENgObOnSs1Oapq8Dx69Ij09fVJW1tbLAXYzs6OFixYwJ8/fPiQDA0N6fnz51SzZk2qV68eBQQE8Ib/ihUrqG7dulSjRg2xeljA8jsDUPv7k5GRQfb29mJiiAKBgOzt7RUuAEQ6XrVq1SJtbW2VDB6i70b9pEmTqEqVKvx9q1SpQpMmTVKJzkHZ7yZCQEAANWzYkOrUqUNeXl6UmJhIRLKfleXLl5OGhgYJBAIyMjKimjVrkkAgIE1NTVq9erVK/TQzM6NTp07JvX7q1CkyMzNj1r6Sh1evXtGECRNIU1OTWcxXFhQZPOnp6TRs2DASCoXk7Owss1xUVBSZmZlRjRo1KCgoSKHMydatW0lLS4s35CpXrsxLQGzevJmIiLZt20ZDhgwhZ2dnunLlChF91zls3rw56ejo0Pjx45nHWtHiUURbIRQKycrKij8XGU+sfVWGV69e0ZQpU1T+ngj/NXgUoLTYYX5+PkVGRpKdnR3p6uqSo6MjnTx5Uqz8pUuXyM3NjSpWrEgtW7akwMBA0tDQKDd9qxcvXqisWKxOREVF0YABA6hRo0ZkaWlJAwYMoKioKP56s2bNaMuWLXK/v2nTJmrWrBl16dJFKX+Rra2tUiHF/Px8lQZP1oFdGUpKSlSaNDmOU3lV9OTJE1q4cCHVrVuXBAIBjRgxgk6dOkVFRUX07ds3mjdvHrVu3Zrat29Pf/31FxERhYaGUq1atah27dq0fPlypraNGzeODA0NqUOHDrRlyxbeuFfV4Llx4wa/oyESFywuLiYDAwOxncHk5GQyMDAgou87fr169ZIyFHr27MlrYhUVFdGdO3dk6kjl5ubSnTt3+B1WFg6t8jB4RPj48SNdu3aNrl69KnORRKQ+BfHSKCkpobdv39KbN2+kdgFYwPpeCIVCmjdvnpR6vOSzwsopxgo9PT2FfDdPnz5VKgqqCJ8/f6b58+dTxYoVydrams6cOVPmuojk8xNNmjSJKlSoQD179qTbt2/L/T7HcaSrq0tjxoyRWgTK0pl78eIFBQYG0uTJk3neIZGY9OrVq0lTU5NatWpFurq6pKurS/7+/lS1alVatGgRz08mOUbJw6JFi5gO1r4SfRds3bhxIwUHB/OG+rt378jDw4O0tbXJ0tJSabvk4ZfN0mL1244YMULq8ydPnmDMmDE4f/483r17JxVTkpOTg7179yI0NBRXr15Fly5dMHz4cDg4OMDb2/uHfaOZmZnw9/fHjh07kJ+fj6KiIjx48ACamppiAZixsbHw9fVFamoqE/unurFq1SqsWrUKZ86ckUo5vXPnDrp27Yo5c+Zgzpw5zHUqkgFYsWIFioqKmNJbOY7D2bNnmRiPnZyc8PTpUz7epVevXggLC+OzD0Rs26yBrQKBAPb29nwqfFxcHOzs7Hi5ia9fvyI+Ph55eXmIiYnBjh07cPnyZdjb22P48OFwdnYWyzabN28eNm3ahO7du+Pvv//G+/fv+UysefPmYfjw4dDU1GRqG/A9TmD//v3889uzZ08cPXoUiYmJTDFN3759w4gRI0BE0NDQwJcvX7B582YcOHAAfn5+yMzM5PsaHR2NJUuWiAVwfvr0iQ+mbNCggdj7FR4ezgfCS8aGFRcXw9ramg+EZ+HQIiK8ffv2X81yBIBr165hx44diIqKgrm5OVxdXeHk5ITffvtNKktUXQzKrBAKhcjMzOR/EwMDA9y5c0cqJmb58uUIDw9HQUGBWOKHZDako6MjE6fY3r17mdonSSUgCcn38eXLl4iOjkZaWho4joO5uTkGDRqEOnXqiH3v27dv2LhxI5YvX45q1aph2bJlGDJkCFObSkMy8FYeP1FWVha0tbXlBpqLYGBgwJSWzhKLZmlpyZSpKYoTU1cyjEhCR1lflyxZgsGDB6OwsBAA8Pvvv2P79u0YNmwYGjduDE9PT/Tt25fpnrLwyxo8igjMOI5Dbm4uioqKxCaxFy9e8Loi+fn5GDFiBJYtWybFd1IaKSkpPNHex48fUVJSwkQUmJWVhSlTpvAZRD4+Ppg6dSoWLVqENWvWwMrKCrNmzULz5s3Rp08fPH36FMB3Kv8tW7Zg2LBhuHPnDsaOHYsZM2bI1GoqK1ip3XV0dNCjRw9cunQJ3bp1g4WFBTiOQ0pKChISEtCxY0ecOnUKDRs2xPXr15Wmul6+fBl9+/ZFVlaWQhmAihUrwtjYGH369FE40a9bt05pH2SlXsqSF6lVqxZzZgOLPhvw3RBq1KgRXF1dMXToUP6ZlZxQGjRogNWrV2PgwIE8t4ijoyMiIyPFns3evXtj7969vIHn7++PKVOm8APdhw8f0KlTJyQnJ/PfSU9PR2hoKHbu3ImcnBz06dMHQ4YMwa5du2S2OTs7G/fv34eGhgZPKNm9e3c8efIEAoEA69evx6RJk/jyDg4OMDU1ZRLdBIBOnTphypQpcHJyknl9//792LhxIy5cuMDEoWVraytmfMqDZHq4PCgLqhbh8OHDmDZtGiZOnChG8y/5v/3rr7/g7e2NxMREKb2ivLw8tGjRAmvWrGH+/VgmRYFAgMaNG/PPzt27d2FhYSGVNSrKvFFG2GdqasrEKcaazSUpzSKJrKwsuLm5obi4GJs3b8asWbPw7ds3GBoagojw+fNnVKhQgU9QICLs3LkTvr6+KCoqgp+fH8aMGcOcsCIJVvI81qQEPz8/pnIXLlxQWqZHjx5IS0vjM7m0tLRw4cIFWFtbi5UTCAQICgpSmgzDSgC4ePFipnLx8fFo27Yt/P39sW3bNnh5ecHMzAzbt29XSCHCil/W4JGH169fY/HixQgNDYWdnR0OHz6Mv/76CyEhIbh48SLs7e3h7u6O3r17q6SsXVRUhMOHD2PIkCFM5HmTJ09GXFwcHB0dER8fj5SUFPTs2RMFBQXw8/PjiQ779++P3NxczJw5k1csbtCgAVxdXTFz5ky1RdmXhjIRPSqVyltYWIi1a9diz549SE9PBxHB3Nwcw4cPh4eHBypUqKB0xSZC165dUb16dSxYsAChoaEICgqCiYkJFi1ahBEjRvBtWrVqFcLDw/Hhwwe4uLjA3d39h7KtZJHTydJTU6dAK/DdKG/atClcXV3h6OjIr+QlJ0VJ7SNtbW1cuXJFithMKBSKGduyODPk9aOkpARHjx5FSEgIjh8/juHDh8tss4GBASwsLMQETgsLC5GcnIzq1aujdu3aYuXv3LmD3377TUpwUh4uXbqEa9euSfHkiPDkyRO0bduWT6VWBoFAgGHDhknxREmCVfSX1Zh9+fIlrly5gn79+okpiJeVQfnUqVNMRj6LYcQ6OUlOxJ8/f8aePXukCPsWLFjAxCnGyhHEyhFz+PBhDBgwQK4y+IYNGxAbGwsfHx88evQI06ZNg4eHh1whTHXvpJUV8nTmSo/L8qZ1IsKbN2/kjmWl62IZk+3s7JjazJoJWalSJVy7dg3m5uYoKiqCtrY24uLiYG9vz/R9ZfivwfM/+PLlCwICArBu3TpYWVlhxYoVsLW1RdWqVaGvr49Ro0ZhxIgRch+A+Ph4ODg48KugjIwM1K1bl18l5OXlYePGjfDx8WEiCjQ2NkZISAi6deuGx48fo0GDBpg+fboUU7ORkRGvWJyVlYUqVaogODiYeQIpC9TFPi0C68tVrVo1lWQASouXNmzYEO7u7hg+fDjzwCVigx40aNBPMXgKCgoQHR2NkJAQXLlyBfb29rzxU5plV5ZBdvfuXSkXhLoMN2WEfiwoKipCQUEBT7sgaSjs2bMH/fr1kzLY9+/fj3/++Ueu2/Lu3bto3749cnNzmdrB+uyVB0QK4mFhYbyC+ObNm8WoKlgZlD08PNRq5KuCr1+/oqioiHdTAuKEfe/fv1fJBaUudOnSBZ06dZJSBhdhwYIFuHjxIi5evMh/pogcT93tUwVZWVmYP3++lESKk5MTli1bhkqVKvFz1ejRozFixAiZrOmVK1fGsmXL+PfO29sbs2fPlio7c+ZMJk+EQCBQm6Etqk9yjEpMTOQJEn8Uv7zBo8xvW3o1oYwpkmX1TERMvtEvX77g6dOn/IpYV1cX165dkxrEBAJBmRSL/5MgEAhw5swZpfw6zZs3L5MMQF5eHg4cOIBNmzYhOTkZr169Umj0SKqqFxcXK4xpKK8BuzQePXqEsLAwRERE4OXLl3B2dsbo0aNhZ2cHTU1NjB8/nl+Zbtq0Ca6urlLb0UFBQeViuN29e5ePjzAzMxMzRo4dO4YPHz6IxcL5+/tj6dKlKCoqgp2dHaKioqRczPJWns2bN8fEiRMxceJEmW3ZvHkztm3bhsTERKU7kcD3navSK151gojw4cMHJtV3eQriHTt2VIlB+UeNfFXw/v17jBo1CidPnkRJSQmsra2xa9cusf9ZYWEhtLS0xCZZSXz58gW+vr5qf39YlcFZmdRZF3CsaNGiBROvT0JCApPOnJ6eHv766y+Ehobi4sWL6N27N8aMGYNevXrx91FEGCoCx3HIyMhgWgiw7qaz9jUxMVFsLujQoQP2798vtTtYVhmSX9bgYfXbsu5m2NraMk0mRMTkG3V3dxebZOWt2lkDDMsDP0rtLoJoYpL1KEpSsJdFBuDSpUsIDQ3FgQMHYGVlhbNnz0q5MHJzcxEVFcXvptja2sLJyQkODg6oUaOGQpFEUVzAv7ECLCkpQXx8PEJDQxEXFwd9fX00btyYaTC5cOGCwmdKVYPn2rVrGDNmDJKTk/n/HcdxPOlkmzZtYGdnh8GDB2PKlCkAvsdhderUCUuWLIGlpSXmz58Pe3t7BAYGitUtz+BRJRA+NjZWbtsvX76MDRs2ID8/X+0GT2ZmJubMmYPDhw/z5HYGBgYYOHAgVqxYgZo1a8oldhPJd4SGhuLu3bswNzfH/Pnz5ZIGRkZGwt/fX0qrSFUjvzRsbW2ZJsXff/8dcXFxmD59OrS1tbF161YYGxvj1KlTYmVZJlkAzDE8kydPxqpVq3gDKjIyEgMHDuTPs7KyMHz4cFy4cAF3796Vq3f3+PFjNG3aFDk5OUz3VTdYXYefPn1SWWdOtHsYERGBr1+/YtSoUVi8eLHCeFMWPH36FLm5ubCwsBDbDFBmaLP2dfHixUxzQVnH2l/W4GnatKla/bas7gLJAFhF9SnK5BHh0KFDalMsVgXqpHYXCAS4du2aUjefqakps3L9q1ev+ADzz58/8wrjkhppLKrq5a3gW1a8e/cOkZGRmDVrFlN51uwwlsEkOTkZ1tbWsLS0xMyZM8VWnWvXrsWDBw9w5coV2NjY4MSJE7xcw6xZs5CcnIz4+HgA33eAZsyYwWdliSDP4CksLGQKhJe3vZ6amoq5c+ciLi4OLi4u6NOnDwYNGvTDE4EInz9/RvPmzZGTkwMXFxcxFuC9e/eicuXKuHXrFgwNDZW6DG7duoXo6Gjs2rUL165dkznZWVtbw9XVFf7+/mLXWIx8eZCnpC3q3969e/H161fUqVMHW7du5Zl+U1NT0bhxY+Tn56uUFagqWGPRWrduDScnJ6XK4LKkb0qjvDX1lOFHdOaUZRTLg2h328PDg/9s/PjxCAkJAQA0bNgQJ06ckEqG+RFDGwCffKMMZWXv/mWlJe7fvw/g+4px9erVUtfLy2/LSk0uOXnKW+GxBlOqE6zU7rLoxOWhXr16So3As2fPMtXVu3dvnD17Fj169MDq1avRp08fmRNaaVX1q1ev8gaOj4+PWLl/25BRhtKrLBZjRxRPwfJMjRw5kqkNfn5+6N69O6Kjo8We6RYtWsDZ2RmDBg3CokWL8OXLFzF3zqVLl8RcxlZWVkwK3iJoamri5MmTfCD8hQsX+EB4f39/eHh4yJxsX716BT8/P0RERKBnz57MKfaqYt26dRAKhUhKSpIy4BcsWICOHTti/fr1CoU0RWjZsiXMzMwQGxsLMzMzuLq6omHDhryBt3v3btStW5d/XmUZ+aWfa1bIircoKirCpk2b4O/vjzp16mDp0qVwdXUV0x0TZXK9evVKpQnpw4cPiIyMFJtcFUHyt5P3W06ePBmTJk2ClpaWTGXwBQsWYPPmzQDwUzT1CgoKeN07yZ2+z58/49y5c+jZs6fKOnNfv35FdHQ0QkND8c8//6BPnz44evQoqlSpwpypaWhoiPHjx/N1xsfHIywsDDt37oSlpSWmTp2KxYsX83I4Ity6dQvnz59HSkoKT1GgSl/VLUMihTIz+Pwvx4+ycEqC4zjauXMnzxCrq6tL27Zt488jIiJ4QrV/myiwsLBQrfWxUrvPmjVLISuoCOqUx3j79i1xHEe1a9em5s2b84yfsg5NTU0aMWIEnTx5UoygTVWSvR9l/5SH8PBwWrt2rdhn48aN46nxLS0t5bIPZ2dn09atW6lNmzbEcZyYnIMiXL16VYxITpK4rqCggKKioqhatWpichiSuHbtGlWrVo1+//13io+PJ6LvMhoVKlQQkx24efMmVatWTUpaRfL9ER2qIisri+bMmUM6OjrUvn17unDhgsp1qAJra2sKDQ2Vez0kJITatWvHTOxGxMagbG9vT9ra2tS/f386dOiQWt/5Xbt20e+//061atWiTZs28XVLygoQySfZk4QsxnBWqMJU7unpSRzHkYGBAf/eGxgYkEAgIA8PDyL6/p5xHEdVq1YljuOoevXqFBkZSfr6+jR69Gi6d+8ec9uIiCwtLenDhw/8+bhx48R+pzdv3pCOjg4FBQWRnZ2d3Hq6du1KGzZsoNq1a9PFixfllrtw4QJP8FlaFWDdunVi7SCSZubX19eX+dtVqVKF7t69y38+ceJEGjRoEH9+9uxZMjExISKily9fkr+/P5mZmVHNmjXJ09NTavxk7WtaWho5OTlRdna2VJmsrKwyMzSL8MsaPOqGKpIRhYWFdP/+fXrw4IFYHYcOHaKmTZtShQoVxD7/9OkTXb9+nW7cuKESRXxSUhLNmjWLatSo8cP9Kw1WandTU1Nq1KgR3bp1S2F9NjY2KvVLEiUlJXT06FEaOHAgVahQgZn988WLF7Rs2TKqX78+1a5dmzw9PenWrVukqakp9cKWJ/unPLRr105s8jx+/DhpaGjQrl276ObNm9S+fXtyd3cX+865c+doxIgRpKurSwKBgLy9vXmWYhawDohaWloKpR6ePXtGWlpaNGfOHLKwsKCdO3eSk5MT1atXT8ygCg4Opo4dO6pdcoXou/RBlSpVqFGjRnTo0CGVvltWVK5cmVJTU+VeT0lJocqVKxPHcTz1v6KjNBQxKLMa+arg+PHj1KxZMzIwMKAlS5ZQTk6O1D1LywrIkhaQvKcixnBWqCrN8s8//9D06dPJ3t6e7O3tacaMGfTPP//w19WtqSfZPlnvEMdx1KZNG4UaeHFxcdSmTRtmnTmO48jY2Jh8fX3lajSy/nY6OjqUkZHBf960aVMKCgriz58+fUra2trMhjZrX8eNG0ezZ8+WW27OnDk0ceJEudeV4Zd1aSmDqn5bVtK5lJQUpUSBontmZGRgypQpOHHihFhQaK9evbBx40aZXCTyFIvViVevXinMAjM3N8fLly/x7t07zJ49G+3bt+fVy2VxaLC6qiTx+PFjPptKRIq3b98+DBw4kLkOFlX1I0eOiLF/rlq1Soz988CBAz/E/ikPaWlpaN26NX8eGxuL/v37w8XFBcB3pls3Nze8fv0aYWFhCA0NRW5uLpydnXH+/Hm0b98eI0eO5LPY5Cmcl4bkc0wy3AVEBBMTE1y7dk0uoeXVq1dhbGwMPz8/vHr1CtOnT4eRkRF27dollhiwd+9e9OvXD5cuXVL+g6gIHx8f6OjooEGDBoiIiJAbi8VKKsiCz58/izHWSqJSpUp83NvixYuVJi+UBsdxcuPcWMnpWHDt2jV4e3vjypUrmDhxIhISEmSmOMu654ABA6Q++/r1qxRjeGBgIJydneHj46Oyyw0AfH19+bjLb9++wd/fn/8t8/LyxMoqUwZ/9OgRH3M4ZMgQCIVCBAYGqi0VWtY7xHEc0tPTFbr9mzZtivT0dMTExKB169YwMzPDlClT+Iy95ORkbN68GV+/fkVkZCTCwsLw7NkzLF26VKW2yIKxsTFu3rwJY2NjvH//HklJSWLEkZmZmTA0NER8fDxq1aqFZ8+eYfHixXKDk588ecLU18+fPyMyMlJuuWHDhsnlAGPBL23wsPhti4uLkZSUBDMzM6mgv7y8PDx8+BCNGzdmJiH09vaGqakp1q9fzxMF3r9/H66urjhy5Ajv33z+/DnatWsHTU1NLF26VCwodMuWLWjfvj2uX7/Op+tdunQJO3bsQHR0NExNTZGcnCzGdqpO5OXlQVtbW+51LS0tFBQUQFdXF5s2bcKQIUMwZswYHDlyBD4+PlKZcP3792e+d0FBAQ4ePIgdO3bgypUr6N69O16/fs0ckyHKggkJCUFiYiL/uYhiPTs7G7t370ZoaCjWrFmDxo0bQ09PDxMnThRj/5w4cSKio6PVwv4pD/n5+WIBf5cvXxYzWn7//XdkZmbC1NQUQ4cO5eUl5D2LIv4OWSguLkZCQgJTuziOg6OjI2bNmoWGDRtK/e737t2Dl5cXRo0aBV1dXYUDmMjYlZe19CMYOXKk0pi5Y8eOwdfXFzY2NujQoYPC55oFRKRwLCidgeLk5KQ0bo01nVfEeqwOtGvXDjo6Opg0aRJMTEywZ88emeVYjaxq1arxjOEHDx7kKQicnZ3L1L7OnTvjwYMH/HmHDh3w+PFjqTLKEBMTg0WLFiE3N5cP3BdJIKiTmV4eioqK8O7dO571WBLv3r1DUVERfvvtN/zzzz+YPHky5s6dK7b47d69OzZu3Ii6desyLbqFQqHU8yTr+Ro5ciSmTJmCpKQknDlzBhYWFmjVqhV//fLly2jcuDE6derE1Nc1a9Yw9fXp06cK34lq1arh+fPnTPeUhV/W4ImIiICbmxuqVKmCjx8/YseOHTzV+ODBg3Hnzh00btxYTLtHElpaWnB3d4eHhwdzJPq1a9d4osA//vgDUVFRmD17thRRoJ+fHx8JX3oQHjhwIGbOnIlevXrxZUJDQ5GTkwNnZ2dcunQJzZo1g6ampkL5jB/FiRMnFFK7l4atrS3Wrl2LwYMHY/DgwWLXVAkMnzx5Mvbt24eGDRvC1dUV0dHRqFq1KjQ1NZUanAkJCQgJCcGhQ4dQrVo1uRIAhoaGmDx5MiZPnozExEReViEiIgIVK1bE9OnTMWfOHAQFBZWrsQOwr7IMDQ1x6dIl1KtXD8bGxnI5W/766y+Zn8fGxmLevHm8ocqCuXPnIiEhAc2bN0f37t15orzk5GQkJCSgbdu2mDt3rsI6Shuf9+7dw8qVK9Vq8ISHhystM2bMGOzZswfLli2DlpYWrK2tYWdnB1tbW37BoQrofwKo5RkppScrFjg4OKh0f3WgXr164DhO7vMCfG//9OnTmeorLi4Gx3HgOK7Mcg2lce7cOeay27dv5xe1M2bMgLW1Nc6cOQNPT088ePAAI0aMwP3798XGs5KSEpw+fZpPbBGBdWEm6qvkZ5KwsrJCQkKCmCFRGqdOneKDlU1NTXH8+HGFOnMsICKMHj2az9QsKCjAxIkTxTI1ge8Lc5GWn5GREQ4cOCBWz99//w1nZ2eMGTOG6b7Hjx9n6mtGRgYePXokN3j54cOHP8YpVWZn2P9ysPpt//jjD9q7d6/ceqKioqhTp04y4w3kfZaZmcl/X09PTyqWh4ioVq1aCgPVzp8/T7Vq1WJWLFYnVIm3yMvLo2nTppGWlhYtWrToh4IpRX39/Pmz2Ofy+vr06VNatGgRGRsbU9WqVUkgENDBgwdVvq8sv3dZ/fuqYPny5WRkZERLliwhGxsbsrKyEru+du1a6tq1KxERXbp0idzc3KhixYrUsmVLCgwMJA0NDUpOTpZb/6VLl6hjx46kq6tLc+bMoY8fPxLHcXT27Fm6c+cO3blzh/T09Ojo0aP8+enTp/n/7devX2nlypXUrFkz0tHRIR0dHf69KigokHvfU6dOkZOTE2lra9Nvv/1G06dPV2vg+rVr14jo+zs0ceJEOn78uNLg+efPn1NERAS5u7vT77//zitUd+vWjVlpnuh7ACzLoc7+EhHZ2toyHT8D+fn5tGvXLrK1tSUdHR0aNGgQxcTEyIyVUydUUQZXZ/yYZGyTZFxTkyZNSCAQUHBwMOnp6VFcXJxUHYcPHyY9PT0KDg5mvu/58+eVHr169aLRo0crPdQN1r4OHTqUHBwc5NbTv39/hQkzyvDL8vCUJl0rKSmBlpYWEhISpNg0a9SoUSbtHnk8IqxEgZL6SJJ48eIF6tevDz8/PybF4p+By5cvY9SoUdDS0kJERIRc654VIp0eUarliBEj0KtXL+jo6Ij1df/+/dixYwf+/vtv9O7dG66urrC3t4eenp5YORYdGO5/VNXLk/1THkpKSuDn54cjR47AyMgIgYGB/E4KAAwdOhS9evUSW2Xl5ORg7969vNJ5ly5dMHz4cDg4OPDPXFJSEnx8fBAfH4+RI0di8eLFfF9YSSBVpWt49uwZL6OQk5ODT58+Yf/+/fyOn0AgYJJcKd1PoVAo5mZOTEzEwoULcezYMRQXF+PcuXOIi4vD4cOH8ebNG/Ts2RP9+/dHnz59lK6Mnz9/juDgYGzYsAE5OTk/VVaABeqm+FcEVdPIS0MRYzjr7s+SJUuYyu3du5dJGVzdWLRoEdMOnp+fH1xdXbFnzx5YWFiIUQ6kpaVh2LBh2Lt3L7Mg7aFDh5RqabG+u9euXUOrVq34/wlJcJ59/foVsbGxGDZsGFPbADD19fbt22jfvj369u2LOXPm8CzZqampWLVqFY4ePYrLly+jZcuWzPctjV/W4FFGFCiCnp5embR7FImysRAFigj8WMmmlCkW/wxUqFAB06dPh7+/v1I16vT0dNy9exctW7aEqakpjh49ioCAAOTn58PBwQHz5s3jf7OMjAw+WDkvLw8fP35EVFQUz++ioaGBOXPmYO7cuWIuEkkjkHWSWLduXbmyf5YXUlJSEBISgsjISHz8+BGPHz+Gr68vdu3ahb59+2L58uViBhTATvx1+vRpuLi4KP2/shqfku+FPNy9exeOjo64cuUKhEIhpk6dimXLlmHixInYu3cvBgwYAE9PT7Rv317se0lJSTh8+DBiY2P5QXXAgAHo378/H5z66NEjnDt3jj+ysrLQvn17dOnSBfPnz2f6XVgniq1bt8r8vqGhIRo2bIgpU6agbt26zKzHPXv2LFctLSLCyZMnERISgtjYWBgYGDALtMpCSUkJTpw4gZCQEMTFxaFixYr48OED03cFAgFq166NGjVqKJzYU1NTkZqaqlQZ/Gdj//79MsWVRcbE6NGjmQyow4cPK9XSqlKlCpNG1o8IDf9IXwHgyJEjcHd3l3oeqlatih07dqgU8ymJX9rgiYiI4P22zs7OCAoKkmIz9fX1ZdbuKQ15Bg8ra+/t27dx5swZnD59WmrV+/btW3Tv3h22trZSYqLyFItZ2XhZwErt7uPjozDORZQJN2bMGAwbNozfXdi2bRvGjx8PW1tbCIVCnDhxAsuWLYO3t7fY94kIJ06cQGhoKA4fPszH5hQUFGD//v2wsrLCiBEj4OjoiMqVK0sZPKw6MOXN/lneKCwsRFxcHFxdXcFxHKZNm4YOHTrILc8yoEgOiLVr18bly5eldkJVMT5ZJFdOnTqFe/fuYdy4cYiOjsaFCxfQvHlzNGvWDAsXLmSSVMnMzOR3fk6cOAFdXV1UqFABX79+RceOHdGlSxd06dIFrVu3VpmBmXWikBf/kpWVhZs3b+Lx48e4dOmSwvGiNOuxaOJRt5aWaHERHh7OazmNHDmSfzfVgffv32PLli1YuHAhU3kRsWjPnj3h7u6OPn36yGwL66KWdTw7duwYU/uaN2+OsWPHwsXFpVzjKCXx7ds3pVparGK5LMoBtWrVYs5OVhX5+fmIj4/Hw4cPecOoR48echURmFFmZ9j/crD6bQMCAqhq1ap0584dqToSExOpatWqFBAQIHVNkt9AFRQWFtLHjx/JzMyM9PX1adKkSbRu3Tpat24dTZgwgfT19cnMzEyMVKqgoECKJ+Pu3bs0Y8YMql69epnaIQ+sXC1ERCdPniQvLy+aO3cuXyYlJYUGDBhAAoGAevbsSa1ataJ58+ZRSUkJhYaGko6OjhjhXnBwMFlYWBDRdy6StLQ0SkpKEosH+vDhA61du5aaNm1KRN9jh8LDw6lz586kpaVF/fv3J6FQKJNE7PLlyzR27FgyMDCgNm3a0JYtW2QSXynC7du3VSr/M8DyzHMcR0+fPlV6KOPzEGHcuHFkaGhIHTp0oC1bttDHjx+JSDruijWmpXbt2jxx4evXr4njOD4Wr6y/SfXq1WnGjBn07du3MtdTuj5lPCccxymtZ/LkyWRvby/zWmFhIQUFBVH16tWpQYMGMmMMc3NzKTw8nNq0aUN6enoqPc8FBQW0Z88esrOzI21tbRo4cCAdOHBA6n9mb29PWVlZ/PmyZcvE+LTev3+vlJ/q9evXNG3aNNLW1mZuH9F3ss/ly5eTubk5GRkZ0Zw5c6T4jziOI39/f37s1NbWpoULF/LnokOV8YwF48ePJ0NDQ9LW1iYnJydKSEiQWS47O5vpkGwfC549e0aLFy+m33//nerUqUPz5s2jwsJC5vdMVa4jZWDta3njlzV4WPHt2zeysbEhDQ0N6tWrF3l4eNDMmTOpV69epKGhQV26dJE5ULIyjpaGJFHgx48faeLEiTxRGcdxVLlyZZowYQK9f/+eiL6T3/Xu3Zs0NDRIIBBQ+/btpSYedQzkpcH6MrAymJYOAi4uLpYyTJ48eUI6Ojr05MkTatq0Kc80bGxsTDdv3lTa3rS0NPLx8aHatWuTgYEBOTs7U3R0tFQ5VSeJrKws2rRpE7Vo0UJlUjx1QvR7KDtYIDL0JY/SnwuFQmaDh4jN+GQd1AUCAb1+/Zo/19XVVRiYTfT9/3TgwAFavXo1rVmzhqKjo/n/7ebNm8nR0ZGMjIyoUqVK1LdvX1qzZg1dv35dityPBeqaKO7cuUNGRkZSn8tjPZbExYsX+SB2a2trysvLY+5D1apVqVOnThQcHMwbqETSRiqrofDp0ycaPnw4VatWjWrVqkXr1q2j4uJiWrhwIeno6FDr1q1pz549zO2TxPnz52n06NGkr69PHTp04PtqbGxMJiYmCg9TU1O1T+5E3wO1d+7cSba2tvxYtXjxYnr69ClfRt67JvnO/UiA++PHj/k2fPjwQUoR4EcJClmNXta+En036FetWkUtWrQgPT09qlixIrVo0YJWr179w3PZfw0eBnz79o0CAgKoWbNmpKury2ejBAQE8NkfkqypHMeRoaGhQuZUou90+9u3b6d27dqRUCikjh07UmBgoFiZkpISevPmjUyG1bFjx1LNmjXJ39+f/vzzTzIzM6Nu3bqV349B7IM6ayYca33Dhg0jc3Nz2r17N0VHR1O7du2oTZs2zO0uLi6mw4cP04ABA6TYrInYJ4nTp0+Ti4sL6ejokIWFBc2fP18pm3R5guM4MjExIT8/Pzp06JDcw83NTSrDTRKJiYkyj9u3b5O3tzfp6OhQ9erVpWQFWA18ecYn66Aued+KFSsqvG9kZCQZGhpK7WJVqlSJ9u3bJ1Y2KSmJNm/eTMOGDaOaNWuSoaEh9e7dm1avXq20XSKoa/JMS0ujSpUq8efKWI+J2Cj+WVCpUiXq3Lkzbdu2TczoV7YrJ6+vkyZNot9++408PT3JysqKnyhtbW1Vku+Rh7y8PIqIiKC2bduSjo6OyjsF5WHwlMbjx49pwYIFVK9ePRIKhdSjRw+KiopiljdS1eApKCig3bt3U9euXUlXV5eGDh1Kx48f5/vK4tlgzdZkNXpZ+5qXl0cdO3YkgUBAPXr0oBkzZtD06dOpR48eJBAIqFOnTpSfn1/m/8Uva/BMmjSJvnz5wp/v3LlT7PzTp09yt5RlgTUdVYSLFy/SqFGjqGLFitSkSRMSCoViGkOnT59mSuGuW7cuHT16lD9PSUkhoVCo9l2d0mAdIEpPRsXFxaShoSFzgFM2eYrqq1Wrltj3nz9/TgKBQKXVqwii9rNOEs+fP6elS5eSqakp1ahRg6ZOnVquqf+q4Nq1a2IaOhs2bBBbmYtQlq1xou9p5K1atSJ9fX3y8/OjL1++SEkjsBr4IigzPuVBWcpvaTmDmzdvkoaGBo0aNYoSExOpoKCA8vPz6ebNmzRixAjS1NSkxMREmfd5+fIlzZ8/n9ddUqV9rGn9irBx40Zq27YtXb16lWxsbEhbW5s8PDz4VGpJqFNLizWNnHUcqFevHi9F8+jRI+I4jmbMmFHm9olQ2hXdunVr2rRpU5kkasrb4BGhpKSEDhw4QFWqVFH5mWLZlWHR0lLFpSWLWqX057J2n370t1u4cCHVq1dPbghJvXr1yM/Pj7k+qX4R/ZpBy+UVha4Mq1atEiMKdHV15YkCSwdxSravXbt2iI6ORp06dcTq09DQwPPnz1GrVi3+M11dXaSkpJRbEK1AIMD48eP5ALJNmzbB1dVVjNp9+/btICKmoEFlmWtEhM+fP4OI8Pr1a7HA8ooVK+L+/ftiwbIlJSUoKSkRCzh98+YNtm7ditzcXPTv3x9//PGHmKq6KPhRVpBq7969cenSJfTt2xcuLi7o1asXhEJhuaf+N2rUCJcuXeJTqMePHw9/f38+iP3t27cwMTHhqfRFLNRhYWG4cuUK+vXrhzFjxvBKz6wBiyLcvHkTPj4+uHjxIsaOHQtfX1/+u6zB9yxK82/fvmVukzzqekn4+fnBzc0NOTk5UqRpIgwZMgQGBgYIDQ3FmzdvxDK00tLSUKFCBVhbW8PW1paZVZg1rV8eqV92djauX7+OkJAQhIeHw9HRETo6OpgwYYJcagwA8PDwQK1atVCjRg2FGT2qMjIrSiOvUKGCGMVGaaoP4P+PoQKBAE+fPkXt2rUBfB+frl27VuYsslWrViEsLEws2aBJkyZS5ViVwVNTU5nGsx+ZC86ePYuwsDDExMRAQ0MDTk5OfKZednY2Tp06hYyMDHAcB1NTU3Tr1o0PNGdh8Rc9W/Xq1cOoUaPkUoAMHDiQKUuLNVHD1NRUaXBz6XlUWV/Nzc2xYsUKKYJaEQ4cOID58+cjLS2NqX2S+GUNHpYo9Nq1azMbDZLU5vKgoaEBb29vLFmyRCyzQFbWCouxIMnrA8jn9lEXbGxsmNIkz58/z5QJp0jyoDTc3d2Z+urm5gZNTU1s27YNAPDlyxdYWVmhoKAAtWrVQnJyMmJjY9G3b1+mSeLu3buYPn06Jk2aBDMzM/7z8jZ4JJ8BWUa5vEyJJ0+eYMyYMTh//jzevXuHKlWqMHPdPHz4EPPnz0d0dDSGDRuGZcuWST13/xtgbm6OzZs3o1u3bjKvJyQkYMiQIahduzYePHgADQ0NtGnTBra2trC1tS2T1IQqE4Us6Ovrw8LCAl5eXhg6dChMTEyY0tJZDEuATQ5i586dcHR0FKMckEwj19fXx8ePH2Fvb8+Xi4uLg52dnRhrb3x8PAAoNIxUhUAgQL169dC3b19UqFBBbrl169YxLWo7derENJ6pqvn37NkzhIeHIzw8HBkZGejUqRPGjBmDoUOH8vxRu3btwtSpU3l9NRFEtCSOjo4qZVYpAxHhzZs3zAsMZZCcf+QZvcXFxUx91dbWRnp6ulxpj+fPn8PMzIyZEV4Sv6y0BCsyMjJgbGyM4cOHq+UhWbJkCcLDwxEZGSlGFFhWEBG6du0qtjORl5eHfv36iQ0G6tTaYaV2FwgEUgPxhAkTxM5V4a9xc3OTou3PyclBixYtxF72atWqYePGjfz5zp07UVRUhPT0dBgaGsLb2xurV69mXrVv2rQJoaGhaN26NSwsLPhU938b8nYNSuPFixf8IJufn4/Zs2eLpSQrkj0Avj87RARbW1vcuHEDzZs3V1v71QFlu0FFRUW4desW2rZtyyRy++XLFzg4OMDW1hYdO3b84bRX1gUSazqviGfr34Sbmxt69eol9jsLBALY29vD3t4e7969Q2RkJO7duyf2PVdXV6m6Ro4ciYiICIVyBiKwirh27twZHMchKSlJbhlZu2zy1vaqSFWwQEQLcvbsWdSsWRMjR47EmDFjeBFfEW7dugU3Nze4uLhg5syZsLCwABEhOTkZQUFBGDFiBCwsLJhlSFieKTc3NylNSHn4/PkzP3YcO3YMRUVF/DWhUIg+ffowS1Ww9tXAwABv376Va/BkZmb+kLTEf3d4lOzw7N27F2FhYTh37hzs7e3h7u6O3r17M4uFyoMyokBWRmZVtvj/N6GgoABRUVHIzc1F9+7dYWZmxuxGmTx5Mu7fv8//VoMGDUKdOnWwYcMGAN/1nmxsbPD27VuV2pSXl4d9+/YhNDQU165dQ3FxMQIDA+Hu7q5WDSgRWJ/R/Px8/PXXXwgJCcHFixflPqcsXDdubm7Q1taWq8clgjoNaFUg6eq1tLTEiRMneHK50itKZSvj8nBbP3v2jKmcPBHF/wSo6vpUBjc3N6ZyYWFharmfCKrs4l+/fh1Vq1ZVy30rVKiAPn36YMyYMQrnClaXa3h4uFr/Hyw4cuQIFi5ciNu3bwP4/tuVJtflOA5RUVE4evQoc50sfc3NzUVRURGio6Nllhs8eDCEQiH279+vQm/+P37pHR5fX19+Rfft2zf4+/uL+W2B73L0w4YNw8uXLxEeHo6ZM2di/PjxvNVe2sWhCkTkZhs2bOBXBF26dOGJAiV3bmTt2gA/Z+JhpXb39fVVeL24uBhxcXH4+++/8e3bN6xbtw7A9/9F+/btkZSUBF1dXcyZMwenTp1i3rafNWsW8vPz+fMrV65g9erV/Lm2tjZycnKY6ioNXV1duLu7w93dHQ8ePEBISAhWrlwJHx8fdO/eHYcPH1a5TkXgGEUIa9WqBX19fYwaNQqbN2/mB0ZZfVSm0P0zdhRUgeT67MWLF2IrT8kyrCK3Bw4cwN69e5GWlgaO42BmZobhw4fz7N2sKL0gEbWj9P9MFMNz6tQpTJ06FVeuXJFasWZnZ6NDhw7YunUrP+EoA6uQJytYdxVYoG5DhhWs709GRoZajd4XL14wGSd///03Nm/eLPf6xIkTMXnyZIwaNYp5V0YZRDFmisBxHHr37o2pU6eKff7w4UPeWBTForKSMYrcy/Ig6uuhQ4dgbW2Ndu3aYdasWfzCKzk5GWvXrkVycjKuXLnCdE9Z+GV3eFjjUGT5bc+fP49FixbhwoULeP/+fZnYNL9+/YqioiKxbd179+4hJCQEe/bswZQpU5jq+Rk7N6zU7vKMsdTUVF4a4tOnTzA3N8fy5ct5ht+wsDB4enri9u3bqFevHtzd3fH27Vvm1YSdnR2sra2xYsUKXLx4ETY2Nnjx4gUf2H3q1ClMmjQJ+vr6TM+AIqNSZLSJ2J7VCYFAgMaNG/NG7927d2FhYcEbvUVFRUhKShL7H8jqj2iSBcAUsKhOqFuTh3XVLtrhUQYiwrBhw3DgwAGYm5vzW+2pqal4+PAhhg4dir179zIbABoaGvjtt98wevRo9OvXTy5T88KFC2Fra4uZM2fKvL5+/XqcPXtWisFdFjiOY44hZIHIfaVMNoRFj4rjOISEhKipZapBsh/yYowkkyt+FKzjwPDhw5GcnCx3t+/Zs2ewtLREeno6AgMD4evrK9M4XrZsGby8vKRiI2WhtN6WJC5fvowNGzaAiFCzZk0cPHgQrVu3BiD9nt27dw9du3Zl3iWvWLEiU19zc3Nx5coVjBkzBikpKWLaYBYWFtixY4dClnhl+GUNnrJAlAUTGhqKK1euoH///oiIiICWlhZzRs2zZ88watQonDx5EiUlJbC2tsauXbvEgkILCwsVajv9bLBSu5dGbm4uoqKiEBISgitXrsDW1hZOTk5wcHDA77//jlu3bvE+bmdnZ+jr6/NBx4mJiejduzdevXrF1L6zZ8+id+/eqF27Nl6/fg1nZ2exQXfy5MnIzc1lDsRdsGABkpKSYGZmJrXSys/PR3p6OqysrNRGtS8Cq7vSxsaGqZytra3Sgf3gwYMq72oogrqzIVUxeFgQGBgIf39/REREoG/fvmLXDh8+DDc3NyxcuJBZKDMzMxMREREIDw/Hp0+f4OrqijFjxkhplhkbGyM+Pl7qcxFSU1PRo0cPZheZOiEQCDBs2DCluwqld8gkUVxcjISEBDHZi38brBpUERERYuLA8sAqDqxKVhWLy3XWrFnIzs7mx0NJTJw4EYaGhggICGBqnyRSU1Mxd+5cxMXFwcXFBUuXLoW5uTlSUlL4HcsbN27w2cTA96QICwsLZGRkYOPGjfD39wcA/PHHH7x3BPj+/h86dAh169ZV2b18+/ZtpKenA/i+Q6SWeMIyJ7T/L4epqSnPVqwMV65coXHjxpGBgYFcnhNJPgJZBEwcx/0UosDyAAu1O9F3rgx3d3eeLXPNmjUkFArF+DwMDQ0pLS2NPzcxMaGQkBD+/MmTJypTzyclJVFQUBDt27ePiouLxa4FBwerJAURFhZGrVq1oqKiIqlrRUVF1KpVK4qMjFSpfT8LhYWFdP/+fXrw4IHY54cOHaKmTZsSx3FSnDayDqLv5HgHDx7kOZOOHDlCnTp1otatW9OyZcuopKREbVILIggEAnr48CFlZ2dTVlYW6evr0507d3hq+rS0NGbej6KiIjI2NhZ71iSxY8cOaty4MXP7SuPixYvk7u5O+vr6ZG1tTdu2beOfRS0tLUpPT5f73fT0dKZn/tmzZ+Tm5lam9snDjzD7En1/lho1akSVKlX6IdmPfwusnDPlcV9F/DoREREkEAioUaNGdPHiRbn1/P3339SoUSOV7//y5UsaO3YsaWpqUt++fcWYz2vVqsVzJ8nCiRMnyMjIiBYsWECTJ0/mP69YsSJNnz6dFi1aRIsWLSJra2vy9PRk7mt545fd4WENzLOyssLbt28xfPhwjBkzRq6Vz7ryrFOnDrZu3YrevXsD+G5dN27cGPn5+WK7OqwqyadPn2buc3nhwoULCAsLQ3R0NJo0aYKEhATo6OigUaNGyMvLw/Dhw+Hq6sqnb0umc7dr1w7Dhg3DrFmzkJSUhKZNm+Lhw4f86uL8+fMYNWrUvx5fUlBQgI0bNyI2NhZTpkyBk5OTzHL79+/Hxo0bceHChX+1fSJIpnnKw8uXL9GnTx8+dXrAgAHYsmULhg0bhjt37mDs2LEoKSlRKuAJfF/tsgi+zp07V607MpIxCCThIhOdK6qvtEv17du3ePr0qdyt9qdPn8LCwkIsJkxVvHnzBs7OzmIUAfXr18eaNWswcOBAmd+JiYmBl5eXUlfVnTt30LJlS6xdu5apLSyxPpK7cqz4+++/4e3tjdu3b2Pq1Knw8fEpF/HMW7duoWXLlkrLsfZDIBDg2rVrSukaWDPw3N3dsW7dOqWJDKw7Qdra2khJSVHqDjp79iyT+7hnz55Yvnw5NmzYgObNmyMgIACdOnUSq9PJyQl5eXly3XN9+/aFnp4eHjx4gNWrV/NcX5Lv94kTJzBr1iykpKQw9bW4uBi5ubkICAhATEyMGF/PkCFD4OXl9UOZlL900DILUlJSoKenh507dyIyMvKH63v16hVatGjBn4tiMl69eiX2QinaviutkvyfgDZt2iAjIwPJycm4ffs2CgsLoaOjg4cPH8LJyQm2trZyt+4BYPbs2XB2dsbRo0eRlJSE3r17iwV/Hjt2DG3bti2Xtr9//x5Xr16FpqYmunbtCqFQiMLCQmzevBkrVqxAUVERBAIB2rVrJ7eONm3aML3QqoLV6D179qzCcqKBr0+fPjA1NcX69euxe/duREVF4f79+3B1dcWRI0dUyjRr3bo15syZg2XLliE8PBwTJ07EypUredfPtm3bmCdhVaAqF4oIslyq/v7+mD17NrKysuROJp8/fy5zwOjly5cRGhqKAwcOoGHDhti0aRMf99K7d2/4+vrC3t5eiusnPz8ffn5+Ui42RWD5rTmOYzJ4VF0DJyUlwcfHB/Hx8Rg5ciT27duH3377TaU6VEG7du2wcOFCzJ8/X6HRoEo/6tWrp7YYnoiICKxcuVLp+8RKTVCtWjVkZGTIfUYzMjKgo6OD9u3bixl4hoaGYu7jrKwsODk5oXLlyjAyMsLevXsxYMAAmXV6e3ujffv2GDp0KObMmcPTOzx48AABAQFISEjA5cuXYWdnh/r16/Pf6969u1hcasOGDfHkyRPmvn779g1dunTB/fv3YW9vj379+oGIkJKSAn9/fxw/fhwXLlwoc8jHL23wJCcnIzMzU2EZ1gwDd3d3powAIpIKZNTQ0JB6IGQNYEVFRdi0aRP8/f1Rp04dLF26lJlNNDk5makfquCff/5BaGgo9u/fD3Nzc7i5uWH48OF8YN2TJ08QHh6OSZMmIT8/H87OznBxcZH6XQYPHoxjx47h6NGj6NGjB6ZNmyZ2XVdXF5MnT1aZeVgZLl++jD59+iA7Oxscx6F169YICwuDg4MDSkpKsGDBAri7u6N69eoKd1G+fPnCfE9VwGr0shoBjo6OOHbsGFq2bIk//vgDUVFRmD17NsaNG8eXKSgowMmTJ2Frays1YH/+/Bnnzp1Dz5498eDBA0RFRfGkd+PGjRMj+OvRowdv/JR+z+h/AoJFGWTv379narsIXbp0Uan8P//8gx07dmD//v0wMzODi4sLrl69ivXr16NRo0b466+/sGXLFmzZskXm9zdt2oT27dsz3+/169fYuXMnwsLC8OnTJ7i4uODy5cuwsrISK7dgwQLExMTA3NwcU6dORcOGDcFxHFJSUrBp0yYUFxdj/vz5zPd98uQJc1llOHv2rNJ4FuA7CZyvry927dqFvn374u7duwoXNurCoUOHMGHCBBw5cgSRkZEKuZZ+BtTtNLG2tkZkZCQ6d+4s8/rOnTvRtm1bnuRRUTuICAUFBWjQoAEiIiLkUn3ExMQgKioKY8eOleJHqly5Mvbt24eWLVuiqKgI2dnZYt8rjU+fPqlE4bJlyxa8ePECd+7cQcOGDcWupaamwsbGBlu3bpWaI5hR7k6z/1Co22+rTOOnSZMmfL2ly8nTA5KEPJVkVvE2dSIgIIAsLCyoevXq5OHhQXfv3lX6ndKCmxzH0ezZs6XiSJSBNU6KFXZ2duTo6Ej37t2jmTNnEsdxZGpqShEREWIirc2aNaMtW7bIrWfTpk3UrFkzlfpSVhQWFlJQUBBVr16dGjRoQHv37mX+LsdxlJmZyZ/r6elJ/Q+CgoLIzs5Obh1du3alDRs2MGvoqPs9e/nyJXl6esoUiMzKyiIvLy++j5aWlmRsbExz584VixkrrYH2999/k6amJg0dOpSuXr3Kxwb9888/NGTIENLU1BTTuFMGTU1NMjY2Jl9fX7px4wavoSV5EBFlZGSQvb292O8jEtZ88uQJ0/0SExPV/n5fuXKFjh07JvZZREQEmZiYUPXq1WncuHFUUFBAOjo6pKurS97e3go1nsoDWVlZNGrUKNLT06P169fLLMOqQWVjY1MmDS554DhOTBtQHlj1HM+cOUNCoZA8PT3F3t/MzEyaNWsWCYVCOn36NNM7CYBGjx6t9BAhNzeXYmJiKCAggAICAigmJkZMuLZly5a0ceNGuX1ct24dtWjRgrmvnTt3Vljf+vXrqXPnznKvK8MvHcOjTr/tokWL1MpdIUo3j4+Ph4+PD548eQIvLy/MmjVLbMtQ3VkrLGCldg8MDJT6LDs7G7t370ZoaChu3bqFxo0bIzo6Gr6+vggODpaZdjlp0iQsW7YMDRo0UGtfq1WrhvPnz8PKygp5eXnQ19fHvn37MHToULFyq1atwqpVq3DmzBmpGK47d+6ga9eumDNnDubMmcN037Ji9+7d8PX1RX5+PhYsWIDx48fLTXsujVu3bsHX1xfHjx9XSmbZtm1bLFy4EP369ZNZ15EjR7BkyRLcvHlTYV2i/wVrujTre+bl5YXPnz8zZaxUqFABTk5OGDFiBLp168a/n5IxZH/99RfGjx+Pjx8/itVVuXJlBAcHy9X1kYXSq9nSKbWlIRlj9OnTJzx8+BBEBDMzM7G4l0GDBim8X1ZWFs6fP4+cnBycPn2ad4PNnTtXzOUtFAqxdOlSJqkMe3t72NjYwNvbG8D3FOSWLVti9OjRsLS0xOrVqzFhwgQmPi5VmNTLgoMHD8LJyQl6enpSWZKKsshEKI/2SWoDykN2djZzBmNwcDBmzJiBwsJCGBgYgOM4ZGdnQ1NTE2vXrsWkSZN+ylywevVqrFy5EmfPnpU5NtrZ2cHHxwc+Pj5Mfa1SpQrOnTsntSMqwv3792Fra4t3796Vqb2/tEuLxW/LmrqsTh4M4Dt/ibe3N65cuYKJEyciISEB1apVU+s9ygpWandZMDQ0xOTJkzF58mQkJiYiNDQUq1evRt26dWVShhsaGqJu3bpixIHKwMr98vHjR37C1tXVha6urlh8lQgzZ87E8ePH0apVK3Tr1o2ne09JSUFCQgI6duwol09FHVBm9ALfuYVOnjwJTU1NjB07Fr///jtSU1Ph4+ODuLg4dO/eHUQkJi0hS5YjKysLzZo1k9uWpk2bIj09XWldokle3QK28fHxvOiiLIwcORLjxo1DQEAAs0t14MCB6NmzJ06cOCGWBtujRw+VAyTL4lqqXLky2rRpI/OasgByQ0NDjBw5Ejt37sSRI0d4g2fjxo2wsrLi449SU1NRu3Ztpuc0MTERS5cu5c/37dsHa2trbN++HQBQt25d+Pn5McdllBeuX7+OhQsXwtzcHJ6enlLGv5ubG1NiiqmpKVOs3KNHj5jbtnjxYqX/O0kGakV7DxMmTEDfvn2xf/9+3jg2NzfHkCFDxOKl1OE+fvv2Lfbt28dU1sPDA0eOHEGrVq3QvXt33jWbmpqKU6dOoX379vDw8OCNZ2V9zcrKUsh4XbVqVTEXmqr4pXd4WAXZWLS0wsLCMHbsWLi4uKglM0EgEDCpJM+cOZNZvO0/FRYWFoiMjJQ76N+8eRPDhw/Hw4cPmfoKgGk1AQBpaWmoXr06iAh169bFpUuXpH5vAwMDFBYWYu3atdizZ4/YhD98+HB4eHgo3OkqKySN3vnz58s0eiMiIuDm5oYqVarg48ePqFatGgIDAzF58mQMHjwYnp6eaNy4MZM0x8SJE3Hp0iW5ass3b96EjY2NmFaZItja2jKVY5Va0NPTY8pYKU2DDwBnzpxBaGgoYmJiUFBQAC8vL4wdO5Yp/uPly5eoU6cOU/t+Fjp37oyZM2fyWV+Sq/tdu3Zh06ZN+Oeff5TWJSng+Mcff6BXr15YsGABgO9Bsk2aNMGXL1/KqTeKUVRUBD8/P6xZswZTpkzB8uXLZe5csWZpiRjeZSEjIwPBwcEq8QmpMreURwajrCld9DkR4e3bt/wY2qtXL4SFhfGkrKJ7sryPIsLLb9++ITAwEPv27eNVzM3MzODs7IyZM2dCS0uLua+AuNCsJH50Pvtld3i6dOnCNEnt27cPYWFhCAwMVKillZycjAULFmD27NlwcHDA2LFj0bVr1zK3r169euA4Dn/99ZfcMqKHmEW87WfAzs5OaRmO4/D06VOFg0O1atXw/PlzKbmN/Px8MbkNkcSA5AsvawAQfVZ6wiMisR0e0c5QcXExNDU1/xW3VWm0a9cOOjo6mDRpEkxMTLBnzx6Z5UJDQ7F8+XL4+Phg//79cHJywtq1a3H79m2xDAoWaY7NmzcjISFBrsFz6tQpWFlZMct8yKOyL73rxnGclDyEPOjo6DBlrEjCzs4OdnZ2Yi7VNWvWoHHjxrh7967MujIzM+Hv748dO3b8UFr6j6C4uFgu6WVeXh4ePnyIxo0bIy0tTexZ1tbWFhuj2rZty8zeXrNmTTx58gR169bFt2/fcOvWLTESzC9fvkBTU5OZUVjEoK4utGzZEjk5OTh58qTMIPaUlBRe2JIFM2bMkPrs48ePWLp0KbZs2QJra2uVSP3UGdoAfCdKXbVqFSpWrAgAiIyMxMCBA/nzrKwsDB8+nGl30dTUVOx3+fvvv6WebSJSaaeyQoUKvNvqRyE5xkuCdZyQh1/W4GHNbGHV0goODsa6detw4MABhIWFoUePHqhbty7c3d0xevRolcUCWTlnJLdF5SkW/wycO3cOxsbG6NOnj8I0wqSkJDx69Eiu++Phw4cwMDCQ2haVlVI5ePBgJoZijuNw5swZpeV+JliN3nfv3vHq7UOGDIFQKERgYKCYsaMMycnJCAkJQUpKCpYuXQorKyuptOi4uDgsW7ZMZmwWIFvwVZ4WFBFh3759WL9+PT9ws4A1Y0UeJF2qW7ZsgYuLC+8O9PHxwdSpU7Fo0SKsWbMGVlZWCA0NZW6fuhEZGYmNGzfi6tWrUte0tLTg7u4ODw8PZGdni00SkjEOJSUlzIufXr16wcfHBwEBATh06BB0dXXFeFru3r2L+vXrw8HBQWld5REj07ZtWwQFBcl9br59+4anT5+WSYMqPz8fgYGBWL16NUxMTBATE8NzprFCFacJi55jcHAwFi1axPd3ypQp6NixI3/+9etXnDhxQm3uY3UabK9fv+ZZmFn6yiKVpEpMnRTKHO78vxwmJiZkamqq8Pj9999lfvfcuXNkY2NDAoFAinFZhMePH9OCBQuoXr16JBQKqUePHhQVFaW29r9//57Wrl2rtvrKAwEBAWRpaUk1atSgmTNnijF5lsbQoUPJwcFBbj39+/enIUOGMN+XNYPo/wqU9Vcevnz5Qtu3b6d27dqRUCikjh07UmBgILm4uBDHcWRpaUkODg40cOBAsrCwIIFAQE5OTkRE5OXlRdOnT+fr+vr1KzVv3pw0NTXJ0NCQ9PT06PLlyzLve+rUKWrVqhXp6+uTn5+fWLaGMrBmrBCRUrbgwsJCGjx4MP3222/k6elJVlZWfJaUra0tnTt3jrld5YU//vhDYSZeVFQUderUiRo0aEAHDx5UWK5+/fpM93z79i398ccfxHEc6evrU0xMjNh1Ozs7mjdvHlsHfgLKkrlWVFREW7ZsISMjIzIxMaGdO3eKZWqqAxkZGZSUlMSzbXfp0oVsbGyUHqzj2dOnT5UeqoyNxcXFFBISQn369CErKytq3Lgx9evXTyqLNSkpiTZu3EjBwcF8ttu7d+/Iw8ODtLW1ydLSkrmv5Y1f1uAJCgqSe3h4eJCOjo7US5Ofn0+RkZFka2tLOjo65OjoSAUFBQrvU1JSQgcOHKAqVar88CRbUlJC8fHxNHToUKpQoQJVq1bth+r7t3D58mUaO3YsGRgYUJs2bWjLli1iacW3bt0iLS0tGjx4MF29epWysrIoKyuLrly5QoMGDSItLS26efMm8/04jqOzZ8/yKcB6enp09OhR/vz06dMkEAiopKSEVq1aRR06dKA2bdrQ3LlzKT8/vzx+gnKFZPqtrq4ubdu2TW568MWLF2nUqFFUsWJFatKkCQmFQqnU66ioKBowYAA1atSILC0tacCAAWIGu5WVlVidoaGhVLlyZcrIyKCSkhIaPXo09e7dW6zOGzduULdu3UhLS4umTJlSZvmCrVu3kpaWFgkEAqpUqRJVrlyZBAIBaWlp0ebNm/lykpQNFhYW9PTpU/5clKYrotB/9OgRcRxHM2bMKFO7ygPVq1dXmKL++PFjqlatGk2fPp0aNWok8/nNy8ujRo0aiRmoLMjKypIpp/Lhwwf6+vWrSnX9mxAZPKI0f0WHUCikqKgoMjMzoxo1alBQUNAP9y08PFxqMTpu3Dj+npaWlvTs2TPm+lSlgJA8Sn8OQCxlXl9fn5eGKV1XSUkJ9enThziOo+bNm5OTkxM5Ojry8jMDBgwgIqK4uDiqUKECT6tQv359OnPmDFWrVo1sbGwoLi5OxV+vfPHLBi3Lgiy/bbt27XD16lWEhIQgKioK9evXh7u7O1Nw8tmzZxEWFoaYmBhoaGjAyckJz549U5koMCMjA6GhoQgPD8fLly/h4uKCkSNHwtbWVow0Th7UrVjMSu0uiby8PBw4cACbNm1CcnIyXr16xWdmHTlyBO7u7vjw4YPYd6pWrYodO3agf//+KjMPy3q0RZ9zHIdly5ZhwYIF6Nq1K3R0dHDixAmMHDlSbsrzv43169czlWMRtuQ4DitWrEBoaChycnLg7OwMV1dXXhCwdJo2CwwMDJgFXx8+fIj58+cjOjoaw4YNw7Jly5izH+Xh5cuXSjNWWAIljYyM8PLlSz5gUldXF9euXUPjxo1/qH3yIJKCYHXz6Onp4Z9//pEraXP37l20b98ejx8/RvPmzVGhQgVMnTqVz6BLTU3Fxo0bUVRUhNu3bzMparPi5s2b8PLyQmxsrEw6CQcHBwQFBSnM+isPiH7j6OhoJmXwr1+/QkdHB87OzjIzRUWQ58qVRPv27TF+/Hg+3CA+Ph79+vVDeHg4LC0tMXXqVDRq1Ag7duxgqo814PfWrVsyv0+l3Mf5+fmoVKkS/7tkZWXBwMBALLvy8+fP2LFjB2bMmIHY2FipxIMzZ87AwcEBGzduxJYtW9C2bVv4+/tj27Zt8PLygpmZGbZv3y7X7awI5S2p9MvG8JSGIr9taS2tixcvKlXMffbsGcLDwxEeHo6MjAx06tQJmzdvxtChQ6GjowOhUCjmSw8ICICzszNv8BQVFeHBgwf4+vUrYmJisGPHDly+fBn29vYIDAyEs7MzfHx8+Mnp06dPcttSWrFYnQYPK7W7JG7duoXz588jJSUFjRs3Fovr6du3L54+fYr4+HixSax0ajAr8zBrwF2PHj2wYcMGTJ48GcD3gcnBwQHBwcFiL52npydWrFhRLplYisAqF8CaHqyhoQFvb28sWbJErrI7qy6XQCAQMyivXLmChQsX8ueVKlXCp0+fMHnyZISEhMDW1hY3btxQj+IxgDp16qiNCqD0cygUCqVS/tUNVdaYZmZmuHz5stxx59KlSzAzM0PNmjVx+fJlTJo0CT4+Pvw9OI5D9+7dsXnzZrUaOwDw559/ws7OTi6dRPfu3bF69Wrs2rVLrfetXLmywklRFNgqK8ZIljL4yJEjlaadqxLXkpaWhtatW/PnsbGx6N+/P1xcXAAAy5cvh5ubGxOPkQgs8S+yDMuEhAT4+PggLS0Nc+bMQa1atZi4mHbv3o158+bJzLIUcevs3r0bKSkpiIiIQMWKFTF9+nTMmTMHQUFBUsYOa1/LW1Lpl97hKS4uxvbt27F48WJoa2tjyZIlcHV1FXu4BQIB9PT0oKGhofCh37hxI8LCwnD27FnUrFmTD2oWrYBL18dirVeuXBmNGjWCq6srhg4dyu8msa7GY2NjMW/ePLx69Qre3t5qiaAX4dixY5gwYQJq166tlNr91atXvAH4+fNnuLq6wt3dXaXdBEUoLbdhaGiIpUuXyhX5lIS2tjbS0tL4gHIigra2Nh4/fiyWhvz7779DR0cHu3btksnT85+Cr1+/oqioSO6EvXz5coSHh6OgoADOzs4YMWIEb3iKnil5WVUiiHbH2rRpwyT4+uzZM2hra8PCwkJh2+WtTiXBKtDauXNn5h2e3r1781mOcXFxsLOzk/oNJSnzywpVd3jKQnr58eNHPHz4EADQoEEDJpmIsqB+/fr466+/5Bpj9+7dw4ABA9TOUcZCrwCIZyW+evUKfn5+iIiIQM+ePbFixYpy28XT1dVFSkoKH0TcrFkzuLu789lgz549Q8OGDfH161fUrl0bNWrUkGsEcxzHEw0qQ+lEnJs3b8LHxwcXL17E2LFj4evrq5JWmJGREeLj4+UaILdv34a9vT3evn0r9Y4lJiZKJUwIBAKmvsoaB35kjJfEL7vDs3//fixYsADZ2dmYN28eJk2aJHMFz6qlNXr0aPTp0weHDh2SmbauKoqLi8FxHDiOk7sal4V/Q7G4d+/euH//PmbMmIGWLVtixYoVMrVNevfujbNnz6JHjx5YvXo1+vTpIzPd8MyZM5g6dSquXLkic2u8Q4cO2Lp1q5Sib2nm4UWLFvHMw8+ePWPqx7dv38SyODiOQ4UKFaRWEPfv38fs2bPRvn17zJ8/X+WdrfLG+/fvMWrUKJw8eRIlJSWwtrbGrl27pNxG8+bNw7x583D+/HmEhoaiXbt2qF+/PoiI3ylkzV58//49k+CrZBbhj8LGxkbuNck0d47j8OXLF2hra/OGWk5ODr+LJfpbeiKQleX4M1EW0ssqVaqUm9huabx8+VKhQGbFihXx+vVrtd+XlRIB+D5+lFYGP336tNQ4om4YGxvj5s2bMDY2xvv375GUlIQ//viDv56ZmQlDQ0O0bNkSZ8+eRevWreHu7o4+ffqoNNbLgqT7ODk5Wab7OD8/H6dOnUJaWho4joO5uTm6devGj4cfP35UuCNYs2ZNfsyQJDt88OCBFA9Wr169ytRXeWN8WfHL7vCIiP3U5bd9+/YtkwUtFAqZyPNyc3MRHR3Nqzvb29vD1dUVjo6OSExMlNohkVQsXrx4cbkqFougjNq9Vq1aqFGjhsIVym+//QZbW1u5Lor169fj7NmzfHo2i9wGC/dLSUkJxo8fL8amu2nTJri6uoqxpIqegbNnz2LMmDGoXr06fHx8pPqrbr4RFkNwy5YtiIyMRFxcHKZPnw5tbW1s3boVxsbGOHXqlML6P3/+jD179iAsLAw3b95E27ZtMWTIEMyaNYupfQkJCTh69CiMjIwwbdo0sd9x8eLF6NKli0IDpSyQx7Kal5eHdevWYf369fj9999x//59qeeg9P+/9Lk606aVuQTv3r2LLl26qHTPn0F6yYK6deti+/bt6NWrl8zrx48fx/jx4/H8+fN/uWXfsWrVKgQEBMDIyAjLly+XqwzO+ryzzgUrVqzA+vXrMXnyZJw5cwbv3r3D/fv3+etBQUE4cuQIEhIS8Pr1a7Ed8JEjR8Ld3V1KOJMFpd3HK1eulLs7c/jwYYwdO1aKeblatWoICQlBv379pOYpSYjmKdE7pCxesri4WKW+srDLlwW/rMFjY2PDFBzFytXCSsLl4OAAe3t7uVvoX79+RXx8vNiA+OjRI4SFhSEiIgIvX76Es7MzRo8eDTs7O7x69UpMsXj58uX/imIx8J3aXeT/lkXtzsolFBoaivj4eLntTk1NRY8ePXDw4EEm5uE7d+7IrIckuF8aNWqk8jMQGxuLwYMHS8XNlAffiChQW5khePPmTWzdupWPO0tNTUXjxo2Rn58vk/9Iluvr3r17CAkJwZ49e/D27VtkZ2fj1KlTyMjIAMdxMDU1Rbdu3RQuDn4GSkpKEBoaisWLF0MgEGDRokUYNWoUBAIBzp8/z1SHMgX2gwcPYsiQIUx1sboE/5OZz1nh5uaGhw8f4uLFi1LXiAidO3dGgwYNmHfJWaEshkeErKws6OjooFu3bgp3ExTFQYqgylxQUlICPz8/HDlyBEZGRggMDBQb24YOHYpevXphzJgxYt+7cOECwsLCEB0djSZNmiAhIQE6OjrM8S+LFi1S6j7OyclBRkYG+vfvD09PT75dycnJ+PPPP3HkyBGcO3cOHTt2FJunJCGap8qqlSevr6zs8mXFL2vwqBssLg6O45hJAG1tbeHo6Cj2wJWUlODEiRMICQlBXFwc9PX1kZeXB47jMG3aNHTo0EFufercfWCldmeFtrY27t+/LxXvJMLDhw/RpEkTPptCmdzG9OnTpT4rHbw3a9YseHl5qUR4l5+fD29vb2zbtg1z587F/Pnzf2hrlQXGxsZMhuCrV6/w/Plznh4ekI4jANhcX4WFhYiKisLUqVOldisMDQ2xdetWODo6Ij09nUnwdfDgwUyTE2sMT2nExMRg3rx5ePfuHebOnYtp06bJHaAVQZQooKmpKRaPFhsbC19fX6SmpjIHSqrLyPrfgEePHqFVq1Zo2LAhPD09eR2llJQU/Pnnn0hLS8ONGzfkvtdlBWsMjyhbUxnUbZCVFfn5+XwW671795CZmQkDAwOFcYMcx+HBgwcoKCiAr6+v0nvs2rULdnZ2CA4Olnl9woQJeP78OXOAe1l/O3l9ZZVUkjXGM6Fck97/izJDkkNEEm/fvqU///yT5z9QdKibZK9JkyZkamoql5gtOTmZTE1Nmev7/fffpcjNSiM6OppMTU3J2NiYTExMFB6S91UH98vff/9NDRo0ICsrK7px44bK3y8rtLS0KD09Xe719PR00tbWJoFAIMatQSTNr0FENHbsWKpZsyb5+/vTn3/+SWZmZtStWzexMjdv3iQNDQ0aNWoUJSYmUkFBAeXn59PNmzdpxIgRpKmpSYmJiTRu3DiaPXu23LbNmTOHJk6cSIsWLWI6VMG5c+fI2tqadHV1ae7cuZSVlSWzXHZ2ttLj6tWrZGpqyvOUDBw4kDIzM6lz585kaGhInp6eKnGmsEDyf/W/GdevXycrKysxrheO48jKyoquXbv2s5v3U3D16lUx/iJJAsOCggIxTqvSPGWtW7emTZs28QR+inD79m3q2bMnaWpq0oQJE5jaVqlSJbp7967c63fu3KFKlSox1UX0nVw2Ly+PPz9//rwYN93nz59p0qRJ/LmyvpZljFcFv6zBM3PmTKaDFW5ubvT582e1tU+SbOo/CWPGjFHIjisi/mrevDm1aNFC6TF16lRq3LixXNK0xo0b07Rp01RqY3p6Og0bNoyEQiE5OzszMQ/Lg6amJnl6eiolmVQ3WA1BjuOoSZMmYr+pUCgkKysrsc/q1q1LR48e5b+fkpJCQqGQvn37xn82evRohazWgwcPJjc3N2rYsKHCCe3GjRtkbm6uYo+Vw97enipUqEATJkyg169fKyyrjHiO4zgCQHZ2dhQXF0dOTk7EcRyZmZnR4sWL1fo+l5SU0NGjR2ngwIFUoUIFtdX7n4Jbt27R/v37KSoqim7fvv2zm8OM8hhjJRer+vr6MokCAwICyMLCgqpXr04eHh4KDZHSePz4Mbm4uJCGhgYNGzaM0tLSmNumra1NGRkZcq9nZGSQjo4Oc33l3Vd145d1abGoOKvit2VV5nV3d2e6b1hYGN68eSM3aOw/GaLUW5YtVuC7QnfLli0hFAoxdepUsa3xTZs2obi4GLdu3WLeZmUN3mPFhQsXFJJo3bp1C76+vjhy5MgP3UcS06ZNw7lz53D9+nUpl2F+fj7atm0LW1tbVK1alam+pUuXKnV9mZubY/PmzejWrZvMOhISEjB58mQ8f/4cqampcvV7nj59CktLS3z8+BEnT56Era2tVEbP58+fce7cOfTs2ZPZFSUQCKChoQE9PT2F7oqPHz+KuZeICL1798aOHTvEKAcGDhyIhIQEtGzZEllZWahSpQqCg4OZCD1Z8PjxY4SGhiIiIgI5OTno06cPBg8ezKua/xeqg5W0MjMzE0+fPlWqDK7ueCoWOgRRG+rVq4e+ffsqDDwXBUu/f/8eixcvxrZt2/DHH39g5cqVaNOmDV+uRYsWSl14KSkp2Lx5s9zsydDQUAQFBckV1C1LX0XBzar0tbzwy6als6bfNmrUCJcuXeK5LMaPHw9/f3/+JXr79i1MTEyYycRYiQIBiKmgy8Po0aOZ7qvuDCIWsAjBiSAiTZs7d64YaVrPnj150jRW5uGtW7dCW1sbb9++VWhgssaNdO7cGadOneIFJseOHYvff/8dqamp8PHxQVxcHLp3785UlypYsGABYmJiYG5uLtcQnD9/PrMhuGTJEqm4Iw0NDbEA7FevXinkVTI3N8fLly9haGjIJPgaHByMw4cPy3z+DAwMsH79ejx79gxTp05l6oMqMQOScTJCoRDt2rUTmzCzsrJ4A6hSpUrQ1dX94fiagoICHDx4EDt27MCVK1fQvXt3vH79GomJieXC/XL9+nWxie/fgrqzm1iRkZEBY2NjDB8+XOECc+bMmUzK4D8DHMehU6dO4DgOSUlJCsvl5uZizZo1CAwMRIMGDRAXF4cePXpIlWURc61Rowa8vLxQs2ZNKVHUo0ePYs6cOZg/f77K/VGGzp07M/W1d+/eKisRqIJf1uBhRWpqqpgk/b59++Dj48MbPESEgoICAGxsnPKUr0VEgVpaWvD19cW8efOgr6+vVO33ZykWqwMFBQXYuHEjvLy8YGxsjGPHjuHTp08807KZmZkYhxAr87AqhhYLIiIi4ObmhipVquDjx4/YsWMHAgMDMXnyZAwePBh37twpl4msNHuuIkOQFUSErl27ihk9eXl56NevH7/qys3NVRiArqWlhYKCAvTp0wcbNmyAnZ2dzHLr169Hp06dsHv3bjEGZkl4eHhgyZIlzAYPCwdL6fdVGTiOE0s4EAgEMjPbWDF58mTs27cPDRs2hKurK6Kjo1G1alVoamr+EHdTTk4OhEKh2HiQmJiIhQsX4tixYz/l/b59+7bSMupU3hZh3759CAsLQ2BgIOzt7eHu7i6T+4yFibs82seKc+fOMZUzMjLCly9fMG3aNDg7O4PjOJk7MCzjXklJCRwdHdG3b180bNhQLEsrPT0dDg4OPEGiOsHaV1YlgrLil3VpsUKVLTtDQ0OlL9DHjx/FzuURBUre9z8JLNTuubm5KC4uxvv373H16lVoamqia9euEAqFKCwsxObNm7FixQoUFRVJ8UH820hPT0dsbKxYCraDgwP/P27evDmcnJzg4+OD/fv3w8nJCS1atMD+/fulGEXLC4oMQVYsXrxYaZlFixZh586dYjxEpZGVlQU3NzfcuHED7du3R9++fTFnzhyeSyM1NRWrVq3C0aNHcfnyZXTt2hV37tzh2awl8ezZMzRr1owpNVgZkpOTERISgl27duHNmzdS1yXfXeD7+136vZXUFhJB8r2VB5F8h4+Pj5gLryx6ZQDw4sULODo64sqVK7zLd9myZZg4cSL27t2LAQMGwNPTE+3bt1ep3v8LePnyJc/rkpuby7Pbm5mZAWAfu0XGorJxgBUCgQBnzpzhvQIdOnTA/v37eV609+/fo3v37sxGaulnUZLzpjTXTW5uLrP7OCoqCnv37kVaWhqA7zu3Tk5OKjMYCwQCLFu2jM949fb2xuzZs/lU8i9fvsDX11elvqryP1MV/zV4lEAVgycoKEjuRCGCaIWqjCiQNSboZ4A1LdTMzAx9+vRBdnY2OI5D69atERYWBgcHB5SUlMDDwwPu7u5ihHX/NlasWAFfX1+UlJTwtOfv3r2DUCjE8uXL4eXlJUYOWVJSAi0tLSQkJPyfSC2WBCu9QnFxMZPgq76+Ps6dO4dWrVrJrOvmzZuwsbHBly9fytTenJwc7Nu3DyEhIbh+/TratWuHwYMHy1zdS5J8AmWTKVAEEZHjP//8gz59+mDEiBHo1asXdHR0ymTwuLq64t69exg3bhyio6Nx4cIFNG/eHM2aNcPChQvF+vIr4/z581i0aBEuXLiA9+/fo3LlylLkeQYGBrhz544UyWtxcTHTOMAKEReTrKlVkoyPBU+fPmUqd+jQIRw+fFiusGa3bt3g4ODAvJvKAhMTE6ZdMlZ9w/I2eH7ZLC1WSKb8VqxYUSzdVxSFzppV9ezZMxo9ejRpaGiQg4MDJScnyyzHWt+NGzfIxsaGsrOzpa5lZWWRjY0NJSYmKq2nPGBnZ0eOjo507949mjlzJnEcR6amphQRESGVqsmC06dPk6Wlpdy+NmrUiM6fP8+cHXbmzBkSCATk5+dHHz9+5Ov68OEDLVy4kIRCIZ0/f17qf1GxYsUfyvpixcCBA5mOn4m8vDyKiYmhVatWUUBAAP3111+Um5vLX7e2tqaVK1fK/f6KFSvI2tpa5ftevHiRRo0aRRUrVqQmTZqQUCikS5cuiZWR/J00NDSoR48eKv9+hYWFKrfvyZMn5OvrS/Xq1aNq1aqRQCCgAwcOqFxP7dq1+X69fv2aOI6jFStWqFxPeSEnJ4cWLlxIVlZWpKenx/8/Fi9eLPYclBfy8/MpMjKSbG1tSUdHhxwdHflsSo7jqFKlSlS5cmWqXLkycRxHhoaG/HmlSpVIIBAwjwOsyMjIYDrUjTZt2tDhw4flXo+Li6M2bdoorOPmzZvUp08fdTeNGazzbVnx3x0eJRAIBGjcuDEf93D37l1YWFjwMQ9FRUV8IBbLjoyuri4TUaChoSE6duyolNxu+PDhsLS0lBsnsXz5ciQnJ6tdsZgF1apVw/nz52FlZYW8vDzo6+tj3759GDp0aJnqY2UeZs3KSk5ORqVKleSScI0fPx5fvnxBVFQUIiIi+N07Z2dnBAUFScXPqDswnFWH6j+FOE0Wtm3bhlmzZmHfvn3o27ev2LW4uDg4OzsjMDAQ48ePZ6pv1apVCA0NRU5ODpydneHq6opmzZrJdBn96O+nzEXGAiLCiRMnEBoaisOHD6NatWoYNGgQcwC+UCjEy5cvYWRkBADQ09PDjRs3/jU2dUX49u0bOnTogPv378Pe3h4WFhYgIqSkpCA+Ph4tW7bEhQsXfigmSh6uXr2KkJAQREVFoX79+nB3d4eLi4uYq5d19+7YsWNM48DevXvV0nZVwaoN2KxZMyb38f79+5UmYMTHx6uzC8wQCAQqKxGogl/e4FHmt2WJexCVY4m5YXUZXL58GR8/foS9vT3/+c6dO+Hn54fc3Fw4ODhgw4YNaNSo0b+uWKwKtbvk9uTt27fLzLzKyjzMOkCYmpoiMjJSTNivNC5evIiRI0cybSn/zMBwdWY2TJ48GatWreJ98pGRkRg4cCB/npWVheHDh8PLy4tZ8NXV1RV79uyBhYWFWKZZWloahg0bptJEIoqRWbJkiZhcQFljZCShiotMVXz8+BE7d+5EWFiYXPkTSSjT3vuZWLduHVasWIHz589L6SGlpqbCxsYG8+fPlyks/COwsrLC27dvMXz4cIwZM0bu2McK1nGA1S0DfI+ZEb0Xx44dEwukFwqF6NOnD27duoWWLVsqrYtVG1BHR0ep+7hjx4749u0bn4BRrVo1sQQMT09PlRIwWA33P/74g6mv5b7IK/Pe0P8BLF++nDQ0NEggEJCRkRHVrFmTBAIBaWpq0urVq9Vyj4yMDEpKSqLi4mKVvterVy8xV8Ddu3dJQ0ODxo4dS3/++ScZGRmRn58faWlpSTHqlsbjx49JW1u7zO2XhfDwcKZDIBDQw4cPKTs7m7KyskhfX5/u3LkjxXbLClbm4fz8fIqNjZVJHJednU2xsbFUUFBAOjo69Pz5c7n1PX/+XO2/XVlRUlJC7969o/fv30tdYyX/YgFrXf369aPAwEC59axbt44cHBz486ioKBowYAA1atSILC0tacCAAWJss6zw9/cnMzMzqlu3Ls2ZM4fu3btHREQaGhqUlJSkcn0isLjIfgYkSSVlEUq2aNHip7Stc+fOtHHjRrnX169fT507d1b7fTmOo4oVK4q5q2QdIuTl5VFsbCytXr2a1qxZQ4cPHxZjB1b3OBAXF0fNmzfnzytWrCjFfH/gwAHS1NSkJUuWKJ0bEhMTZR63b98mb29v0tHRoerVqzO5j3V1dXmXaFRUFHEcRy1btqSHDx8y9680lLEii5iRWfta3vhl09LPnj2LBQsWYOHChZgxYwa/Ffrx40cEBQXBx8cHbdu2VUg4VxoRERH49OkTPDw8+M/Gjx+PkJAQAEDDhg1x4sQJ1K1bl6m+xMRELF26lD/ft28frK2tsX37dgDflYr9/PxQvXp1PHjwQO6KLzU1Va3iawB7AKebm5sYpwsRienCkIrBe3Xq1MG9e/fk7hDdvXsXtWrVYuZ+KSgoUEiCpampiW/fviltV3FxMeLi4pgoAlRFZmYm5syZg8OHD/OBvQYGBhg4cCBWrFiBmjVrSgVHSp6rAta67ty5g4CAALn19OjRA2vWrOHPhw0bhmHDhpW5XSLMmzcP8+bNw/nz5xEaGop27dqhfv36IKIyZXpJusguXbrEu8jKkgnHIvTIcZzCVP3SkEw1lqf4/TOQnJwMGxsbuddtbW2ZhS9VgSqrexZlcHWNAyJs27ZNKjD44cOHvNdA9MwdOnQIEyZMwJEjRxAZGSmX/6pZs2ZSn5XWBpwzZw68vLywZ88ezJo1C1ZWVjLdx8uWLUNxcTEcHR0BAEOGDIFQKERgYGCZs01Zd72OHTvG1Nfyxi/r0nJ0dGTy22ZmZjIpaufl5WH8+PH8llx8fDz69euH8PBwWFpaYurUqWjUqBFznMewYcOQnp7OG0h//PEHevXqhQULFgD4Tr7VpEkTDBky5KcoFrNA3UKKrMzDV65cwcKFC9GvXz+Z9Rw5cgRLlizBjRs3xFIqJaEspTI1NZVn0f306ZNKgyILPn/+jObNmyMnJwcuLi58jERycjL27t2LypUr49atWzAwMGDKbOjZs6dS11e1atXw5s0bpXVpamoyCb6yxr6UVYX9y5cv2L17N8LCwnDz5k20bdsWQ4YMYSbFU7eLjFXo8T+RF0tVaGpq4vnz53x8kSRev34NY2Njtb8XLCgqKsK1a9dgY2PDpAz+I+OAJExMTHDw4EG0bt0agPQ7dO/ePXTt2hVv375FdnY2ZsyYgYMHD2LFihVK3X83b96Ej48PLl68iLFjx8LX11csjEKZ+zgqKkrhWFGeULWv5YKftLP002FiYkIXL16Ue/3ChQtkYmJCHh4ecg93d3fS0dEhgUBAVapUEdMHmThxIg0aNIg/P3v2LJmYmDCLfdarV4/PDPj69Svp6OhQQkICX9/du3epcuXK9PDhQzI0NKS2bdtSVFQUJSYm0p07d2jfvn3Upk0bMjQ0VOgGKgtMTU2ZDnUjMzOTateuTXXr1qWAgAA6dOgQxcbG0sqVK6lu3bpUu3ZtyszMpEqVKtHTp0/l1vP06VOqVKkSk1CdiYmJ2HdzcnIoJCSEOnToQAKBgLp27Urbt2+nd+/eqb2/S5YsoQYNGsgUm3zz5g01aNCA/P39mTMbWNxVABRmpInqUkXnS5melbrEbe/evUszZsyg6tWrM3+nvFxkkiiL0CORcq2nwsJCunr16o82r0yQJVpbGj+aUVMWJCUl0axZs6hGjRpkb29P48ePl1t2/PjxZG9vX6ZxQBEkwwyuX78uplf3+PFjKT21AwcOkFAoJAMDA5muOVW0ARW5jzmOo507d1JsbCzFxsaSrq4ubdu2jT8XHaxgzZxVpa/liV/WpfXmzRuF8vOmpqbIzMyUye5bVFSETZs2wd/fH3Xq1MHSpUvh7u4utkq9fPmymKzB77//jszMTDEaf0WYMGECfHx8EBAQgEOHDkFXVxedOnXir9+9exf169dH/fr1kZCQgNGjR8PJyYnfjSIiNGrUCKdOnSpzkLA8sFK7ExHWrFmDQ4cOobCwEN26dYOvr69CJl9FYGUeLioqwrt37+RmK7x79w5FRUXIyMhgvvc///yDHTt2YP/+/TAzM4OLiwuuXr2K9evX/3CgrDwcPXoU8+bNk6mnVqNGDcydOxfbt28HEYnJkBQUFGDixIlimQ0Au7vK19eX50b69u0b/P39+V2hvLw8AN8DpX19fWFvby9zt83Pzw99+/bF4MGDy9p9ldGkSRMEBQVh9erVzN9Rt4tMEk+ePMHChQsRFRWFQYMGISkpiSfGY0GtWrXEsj8tLS1x4sQJ/tn+8OED2rdv/1N2jEgGc3dpqMJ4/SOQFWju4+ODJUuWKHS7TpkyBV26dFHL/7k0qlSpgkePHvFhBqKdHhHS09N5UkLguzTIwoULYW5uDk9PT6nfs7Q24I0bN5RmoSpzH0uGJEyYMEHsXJUwg6CgIIwbN07mDq2hoSEmTJiAtWvX8qEhyvpa3vhlXVrKmIzlERzt3r0bvr6+yM/Px4IFCzB+/HhoaGjA0tIS/v7+GDRoEN6/fw8jIyNcvXqVj5i/du0a+vfvj8zMTKb2vXv3DoMGDcLff/+NihUrIiIiQkxwsGvXrmjXrh38/f35z27fvs2z8Zqbm/+waKY87N+/H2FhYTh37pxCavcVK1ZgwYIF6Nq1K3R0dHDixAmMHDkS27Zt++E2KGIebteuHQYOHAhvb2+Z3125ciUOHTqEK1euKL3Py5cv0b17d+Tl5WH48OFwdXXlDRx1ZQbJQ5UqVfDPP/9IZcCIkJqaig4dOqB///5MWXMRERFKXV9GRkYK4zJE2Ldvn1oFX1lx5swZ5uywsuBHXWQiKBN6ZAWrECXrQkqdYM1gVbfUiwiXLl3Cjh07EB0dDVNTUyQnJ+P8+fPo2LEjAEBHR4dJ4FZkxCvCy5cvxURnFcHJyQl5eXk4fPiwzOt9+/aFnp4edu/eDT8/P6xZswZTpkzB8uXLZS4GBQIBtLW1YWFhofC+rPINZXUfywJr5uzjx4+Z+lruKPc9pP9QcBxH/v7+tG7dOpnHsmXLxLZjjx8/Ts2aNSMDAwNasmQJ5eTkiNW3fPlyMjIyoiVLlpCNjQ1ZWVmJXV+7di117dpVZaLArKwsKioqkir74cMH+vr164/+DD+EFy9e0LJly6hBgwZUq1Yt8vb2prS0NP66ubk5bdq0iT8/fvw4aWlplYl0UBUEBweTnp4excXFSV07fPgw6enpUXBwsMI6Xr9+TVOnTiVtbW3S1NSkESNG0MmTJ8Xarm63hySEQiFlZmYqbKNQKGSuT92kXhkZGWRvb8+7pkTuKXt7e3ry5IlY2aysLDpw4ACfKRMdHa1Shp4IqmaH/QjK4iLLycmhRYsWkYGBAbVs2ZJOnDjxQ21QRnr5M9xGPxsBAQHUsGFDqlOnDnl5efHjpeT72LRpUwoNDZVbT0hICDVp0kThvUqPA6y4desWaWlp0ZAhQ+jatWuUlZVFWVlZdPXqVRo0aBBpaWnRzZs3qUmTJmRqakrnzp2TWU9ycjKZmprSokWLmA4W9zEAmdmrZQVr5ixrX8sbv6xLq169enzGk6Iy165dg7e3N65cuYKJEyciISFBZtaTt7c38vLyEBMTAyMjIxw4cEDs+t9//w1nZ2f8+eefsLOzk7sF2L17d6xevZonCpQnVSHaEv1ZisXA96yp+fPnY/78+Ty1++rVq3lq96dPn4plC/Ts2RNEhFevXjGvlkpj0KBBTOViYmJw4cIF9O/fX27w3vjx45GVlYUpU6bwJFw+Pj6YOnUqFi1ahDVr1sDKygqhoaHo3LkzwsPDMWnSJOTn58PZ2RkuLi7lLjxIRAp5m0Q09Q4ODhg7dqzMXTbJ+lhcX6xgEXwFgF27dmHq1Kn4/Pmz2OeGhobYunUrnzXCAlWzw34EZXGR1a9fn0no8Ue5Y/4T8PbtW4Uu7aKiIty6dQtt27ZV633nzZsnM9BcEqNHj2ZSBmcdB1jRokULREVFYezYsYiJiRG7VrlyZX53tG3btggKCpIbLP3t2zc8ffqUeYeMZWfWzs4O+fn5UlpbZQVr5ixrX8sbv6xLixUCgQA6OjqYMGGCwpif6dOnM9VXv359tRIF2traKi3DcRzOnDnDVJ+qKCgowMGDBxEaGoorV66gf//+iIiIgJaWFgQCAd68eSMWg/IjWQGqklLt378fe/bsQXp6Ou/mGz58OO/fnjx5MuLi4uDo6Ij4+HikpKSgZ8+eKCgogJ+fn8zssTNnziA0NBQxMTEoKCiAl5cXxo4dWy5plpLClpIgInz+/BndunXD6dOnUaNGDYwePRpubm4y40RYfr/ExEQx16k8+Pr6Ku8AgFu3bsHa2houLi6YOXOmWKZZUFAQ9u3bh+vXr8tMvZUFbW1tpuyw/Px8pvp27typtAzHcRgxYgRTfaxCj6wxEkKhEGlpaahevTqICHXr1sWlS5f4sejNmzewsLD4KTE8knp/kvFFP6x7JAfLly9HeHg4CgoK4OzsjBEjRqBx48ZSLmaRMnh0dLRcZfADBw5g6tSpKo8DLMjLy8OJEyeQnp4O4Lu2YI8ePfgFhjLcuXMHLVu2FPv97t69i7S0NHAcBzMzM5UNZ3WLUrNmziojKJTV1/LAfw0eBXj58iU6duzIlJa+b98+tGrVil9xiAY2Eb5+/YrY2FiMHDkSKSkpcnlznjx5gkaNGjEP2D8LLNTuAoEA48ePFxMH3bRpE1xdXcV2rspj94kFxsbGCAkJQbdu3fD48WM0aNAA06dPR1BQkNLvZmdnY/fu3QgNDcWtW7fQuHFjmSv5H4EqwpYvXrxAWFgYIiIi8OTJE3Ts2BFjx47F0KFDoaOjw3xPgUCA2rVr8wKKssBxHG7dusVUn5ubG3JycqR2PEUYMmQIDAwMmFfQ9evXx5o1a+QaZTExMfDy8mJeMAgEAlSsWBEaGhoK+8uqls66SpUXVyKrfaXHEclxRVUDSp342fFFokDz6Oho1K9fH0lJSWIxPCIoUwb/kXGgPFHaCLh27RrGjBmD5ORksWQNKysrhISEiMWHZWdn49SpU2LqAd26dYOBgYHMReiP4M2bN2qJ5fuvwfMTkZmZCX9/f+zYsYPZ8JBc7RgYGCAxMVGKv6R27drYvn07evXqJbOe48ePY/z48Xj+/Ll6OlMOYKV2t7GxYTIWy7L7RET48OEDOI5D1apVxa5Juk7koWrVqnj69Clq164N4LvO2bVr11SiVge+74qEhoYy06yXN86ePYvQ0FD89ddfEAqFcHJygru7O6ytrZV+t3fv3jh79ix69uwJd3d39OnTR6HbQBnMzc2xefNmdOvWTeb1hIQETJ48mZ+MlEFdK0oRrKys8ObNG7i6usLd3f0/ztWkbi4rdaLcla0Z8fnzZ16lviyB5pqammoZB0RgffaUeQVERsC9e/dgbW0NS0tLzJw5E5aWlrxm2dq1a/HgwQNcuXIFjRo1Uuo+dnZ2VrhrLAKrgQ98N/InTZqEEydOyMycVeQZkezrfw2ecgKL33bWrFlwdnZmqo91tTNq1Ci1EwXm5uYiICAAMTExYlb9kCFD4OXlJbbDog4IBALo6elBQ0ND4YujykvDChbmYXnaMyKUXiX/p+oUAd8z+1h2DeWloH758gV79uzBvHnzkJ2djZEjRyq9J8dxWLZsGcLDwxEeHo7Pnz9j5MiRcHd3l5stpggVK1ZEcnKyQkFDS0tL5ObmMtWnrhVlaVy9ehWhoaGIiopCgwYNMGbMGLi4uKg1m0WEmJgYLFq0SO27gT8DP8vgefz4MUxNTWW+4/fu3UNISAj27NmDt2/fKqzn1q1b8PX1xfHjx9U6DrB8j+M4fPr0SeE4VVRUhNzcXAwaNAjFxcWIjo6WKk9EGDRoED+HKXMfFxUVISgoSG5sqAisbPqloSiWT5n+oqiv/zV4ygms8Rus1rqHhwfTy5+WloZWrVqhYcOG8PT0FBuw//zzT6SlpeHGjRvM3Dk/Q7FYFVeLOsHKPHzz5k2m+mxtbRUq84qQlZWltC6O43D69GmV+6QIrLuGsgaJx48f80bLq1ev0K1bN4WureLiYiQkJODr169i9V24cAFhYWGIjo5GkyZNkJCQoLKLrCz0D4qgjhWlLOTn5+PAgQMICwvDtWvX4ODggNDQUP75YMX27dv5hdSMGTNgbW2NM2fOwNPTEw8ePMCIESPkMrxL4tWrVwgMDISvr6/MNPxly5bxgbn/Nn5WfJHke+Ho6Ij169eL/QaFhYXQ1NTEqVOnlCqDnzx5kmkckAxA/lGwjqNeXl44fvy4FJ+PCNevX0fv3r3Rt29fpe7j6OhoMSb1fws/a86QxC+bpXX06FGEhYWhW7dumDx5Mho0aABzc3Mpv60s4kFJqJKto26iwC1btuDFixe4c+eOXMXirVu3qpXGm+WhLA/SsXXr1kEoFCIpKUnKB71gwQJ07NgR69evx7x585jqk+yHq6urzHKHDh2CsbEx+vTpo1bDURkk1yKy1ialPys9YV+4cAH16tXD2LFj4ebmplDDLTY2Fv+vvTuPi2n//wD+mmlRWl1CRBKJiNyrwrVkz762KFTuJUuyROTaxbUlWe+tphJKyJItS4vtWq4kyq5wU9aSVJj6/P7w63xNzdQp05ypPs/HYx73zpzTOe+T5sxnPsv77eXlhTp16pSajNylSxekpaUhJSUFt27dwtevXyvU4AGA6Ohoid8o2TQmS2K7OqyiVFVVMXHiRLRo0QLLli1DeHg4tm3bVqEGz8aNG+Hl5QVTU1Pcu3cPR48exeLFi+Hj4wM3NzfMmDGjQrXtfHx8RCpvf09LSwsfP36Ej49PmSvXqkrxQoDvn4urlVcV5/3eyZMnsXbtWpHXlJSUEBISAmdnZ6YyeEBAgEhl8Nu3b6N9+/alJvNLug9IG9sP96lTp5bZoG3cuDE+fvyIy5cvY8eOHRL3c3V1xaFDhyocZ1m+T64rCY/HY2pKck7qC92rCUVFRZKens48V1VVZdLKVwaPxyOxsbHk9u3b5Pbt20RNTY2cOHGCeX7+/PlS+TISEhJIREQE2b9/P7l161alzstVxWJJvk/tLm0WFhbl5tWwtLRknksr98u6detI27ZtScOGDcmcOXN+6O+kItjmYLl8+TL57bffiKamJlFRUSF2dnbk7Nmz5R7/0qVLpHv37qRu3bpkwYIF5P3798y2K1euMMf85ZdfyPbt20lWVlalroFNKRWu/ffff8Tb25vJKTV//nxy7969Ch/H2NiYBAYGEkK+lZPh8Xikb9++lfrdEUKIiYlJmSVwLl++TNq1a1epY/+ouLg4Vg9pK+99Uaxjx45SrQxeEYWFhSQwMJAMGTKEmJiYkPbt25Nhw4aRkJCQCucha9OmDTl48KDE7QcOHCBGRkZETU2t3JI6KFE65keNHDlS4mPYsGFM6SV5UWsbPOUlYauo4hu3pBt6Vd3YGzRoQO7evStx+507d0iDBg2kft7vffz4kfj7+xNLS0uioKBAunfvXmZyuMqqV68euX//vsTt9+7dY+qxhIaGEi0trVL/Ftra2iQ8PLzUz2ZlZZEbN26Qf//9V+KH0/eNgC5dupCdO3dWqgHFFtsGD4/HI506dSJbt24VabRIcvfuXTJ06FCiqKhIXFxcyIsXL5ht69atI8bGxkRHR4fMnj1bpD5cTbR//34yaNAgoqqqSkaOHEmOHj0qNtEnW6qqqiIfOsrKyuTq1auVPl7dunXL/RCrW7dupY9fHbG9d3//emFhIVFUVCy3AcbmPlCeoqIiMmTIEOZ9aWdnR2xtbYmpqSnh8XhkxIgRhBBCtLW1S9WSEvdYunQpad68udgvWklJSURfX58sXbq01P2ipLKSVKalpZHk5GRSWFhYqWsu6ciRI6Rdu3ZEW1ubrF27lvW1VrVaO6RFyknCVmzmzJnlprLfuXMnUlNTWZ1X2okCs7OzS61S+l79+vXx4cMHVseqqPJSu0tbTk4OU9lbHG1tbeTk5CAhIQHOzs4SJ+9NmDABxsbG6NixI9LS0jBjxoxS80EGDRqEbdu2icwH6dq1K7p27YotW7bgwIED2L59Ozw8PPDy5csqmeAKfMsZUlyOhBCC+/fvIzc3F8C38gUA8O+//6Jz587lHuvFixdYunQp9uzZg6FDhyIpKalUSviFCxeiefPmsLGxAY/Hkzh5nqtUAtJmZ2eH5s2bY86cOWjUqBHS0tKwffv2UvuxzbNVUFAgsnpMWVn5h5YAq6qqIi0tTeKk77S0tAoPMVZ3bO/dnz59Yl4rLs8gaWi3IveB8gQHB+PChQs4f/58qTxpMTExGDlyJHbv3s162butrS3OnTuHTp06oX///iL5hM6dOwdzc3MsWrQIq1atKnf4mBACX19fzJ49m3l9ypQpzJBTmzZtEB0dXeYQeFkuX74MT09P3Lp1CzNnzsTChQtRr1496OrqVup40lZrJy2zTWL37t07WFlZYc6cOWK3+/n5ITY2FocPH2Z1PGknClRQUBBZYVBSVayUWL9+PQQCAXJzc2Fvbw9HR0d07NhRYm2pR48e4ejRoyIryEaOHFnh5INsr3XixImscr+sWLECXbp0gZKSEqZPny6y3HPnzp0QCoW4ceMG9PT0RH7+0qVLEAgEOHDgAExMTBAbG1slHzrFq83EvUW/T2J369YtVseztLQEj8eDm5sbunXrJnafxYsXlzvHpCJ/n9OnT8f69euZDKuhoaEYNWoU8zw7Oxvjx4/HyZMnWR1P2lq0aMEqdUJF8vqsXr2auT5PT0/Mnz+/1O+UbQNqyJAhTCoLcX777Te8fPmSk98f23QF0p60zPbeHRISgpCQEKYBYG9vD19f31LzYczMzCp1H5BkwIAB6NOnDxYuXCh2+5o1axAfH4/o6GhWxwO+LU7ZvHmz2HxCc+bMYRK9locQAoFAwPwOT58+jWHDhiE4OBht27bFzJkz0a5dOwQEBLCODQCSk5OxcOFCnD59GhMnTsSKFStY/75kqdY2eNhiWxzt+fPnIpMLT548KTJxV0FBAUOGDJF6fHw+H+3bty+zYnFycrJUbzqKiopiU7uLa/CsXbsWS5cuRVFREZPM7s2bN1BQUMCaNWvg4eHB+rxsMw8bGhqyyv3y66+/4smTJ4iOjhab02XQoEFo1aoVAgMD8fLlS5Gl2sV5W6qqcCjAPold8RLd8hpGbN7q0k5i9yMrzaojaTegYmNj0b9/f8yePRvz589nPqxfvXqF9evXY8uWLThz5gz69Onzw7FXFJ/Ph76+PiZNmiQyWbmkESNGyDCq/2HTAODxeJg0aRLr+wAbjRs3xunTpyUWb7516xasra1ZF5KWpvr16yMuLg4dOnQAAEybNg2vX79mJjPHxcXB2dmZ9YhFyV7jNWvWSPyslAe1dkjre9nZ2Xj8+DF4PB4MDQ1Fhk1evXpV5socRUVFvHnzBsePH8eSJUuYb9u2trYiuUV4PB7279+PsWPHSjV2NnVWxowZI9Vzrly5EsHBwQgNDRVJ7V5SbGws/vjjDyxZsgTu7u7MKpr379/D19cXCxcuhLm5OXr27MnqvGxzE82YMaPMUg9GRkZIT0/H6dOnERERIbZqr6qqKlatWgU7OzsmGd+AAQOwYcMGDBkyRGIDU5rYZuNle3NiezxpKtnIqunfr9LS0qR6PCsrK2zfvh3u7u7YvHkzNDU1wePx8OHDBygpKWHr1q2cNHaA/+Uv2rJlCwwMDMRmW+cS2wzPTZo0YXUfYOv9+/dlrqpq1KgRsrKyWPdw37x5E3v27MGkSZPETqvYvXu32G3i5Ofni+x35coVkZVWLVu2rFBDrDityrx589CtWzc8evSIKaXxve+H0MrC9otAZdXqHh4247ZsU9m3b98eI0aMwOTJkwGUzsOzfv16xMXF4eTJkzJPFFhVykvtbmtrC21tbYk5R6ZMmYKPHz8iLCxMqnGxzf2iqKiIJ0+eSOx6/e+//2BoaIivX79CV1cXDRs2LPPbO9tyC2w9f/6c1X7BwcFy+3cjL9l4q7v09HREREQwy/CNjIwwduxYuRg2KK6nFxQUhKtXr2LYsGGYPHky+vfvz2lcLi4u2LJlS7mFMuvUqcPqPsC2uC7boXdCCPT19TF+/Pgy8+Lk5OQgKSlJ4hC9jY0NOnbsiPT09HKHj/X09LB7926MHj0ab9++RePGjXHt2jX8/PPPAL4lOx0+fDjrRg/bXjS21+ru7s7qvJVVaxs8L168YDVuu27dOlap7I8dO4aDBw8yyaFK3tjv3LmDvn374r///pNqokCuKhZ/T1Jq961btyI0NBS//vqr2J+7ePEiJk6cyLqHgm3mYTs7O5Gx+5Kys7Ph7OyM5s2bY9euXRg4cKDY/U6fPg1XV1fWcwbYVjVm6/vhwu8b5N+/Vvz8+2EjSY4dO8bqvMOHD69oqBLVtgbP4MGDERYWxvzteXt7Y8aMGUyv8bt379CjRw+kpKRwGGXVSU1NxeTJkxEfH483b97gp59+4iyWksOpkhgYGLC6D7DtvePz+SKJDEv6/PkzTp8+jbCwMAQFBSEuLg7W1tZwcXHB4MGDSzUiOnXqhE2bNqFv375ij3f+/Hl4eHggKSmp3OFjXV1dNGrUCNOnT0dMTAzevHmDu3fvMsfy9fXF8ePHce7cOVbXylZERASra61qtbbB4+Liwmrcds2aNaxS2evr64sUBf3333+ZibzAtxuBsbEx1q9fj7Vr1yI+Pl5iosDFixezThTIRcVitqndc3Nz8fDhwzK/ObVu3Vrq9crYzlVxc3NDTEwMzp8/X+rb2OvXr9G/f39YWVlxVkRQUVERenp6cHJywrBhwyQOo5mZmbGqgMz225g0/1ZKFpAtWTw2Ly8P/v7+NabBI+05SxcuXGC1H9th4ary33//MXPc8vPzMWHCBKxevVomQ7+SsK0MPnv2bKneB9h+QSoeok9PT2d+d58+fcLEiRMxefJktG7dGsC3LwnJyclllmdp3749cnNzWZU3Wrx4MY4fP47GjRvDx8dHZM7NuHHjMHDgQPz222+srqGiyrvWKleFS97lmq6ubpkJveLj44muri4h5FuOAmtra5E8O3w+n1hbW5PU1FTmeGUle4uOjiaNGzeWeqJANrlaeDwe6+OxwefzRc5pY2NDMjMzRfb58uXLD+WFEEfa1/r+/XvSunVroqGhQaZNm0a2bNlCtmzZQqZOnUo0NDRI69atybt371gfT9oyMjLIn3/+SYyNjUmjRo3IvHnzSEpKSqn9eDyeSF6SH3Hz5k2pHKdYr169SO/evct91BRscydV5HhlJWzk8/lEQUFBqtfA1ufPn0l4eDjp378/UVFRIaNGjSJRUVFSy+Xyo9i+L+TpPhAXF0d69+5N+Hw+k1NLS0uL/PPPPxJ/5p9//mFyjknjb+/r168VjjsiIoKMGjWKSbI4atQocuDAgTJ/Rty1VrVaO2n53bt3ZeZWaNmyJd69eweAXSr7nj17ws/PT+LKID8/P/Ts2RMxMTHo3bu3xPNaWVlh5cqVlbomSaSd3p2wTO0OAAEBAcwYcknFxT+lqSLXWq9ePVy7dg1eXl4IDw9nyhxoa2tj/Pjx8Pb2xk8//QQzMzNWx5X2HJ7GjRvD09MTnp6euHTpEoKCgmBhYYF27dph8uTJmDx5MtNr07dv33K/TbOJz9LSEkuWLMHixYul0t0cFxf3w8eQhQ8fPuDs2bMic+r69etXZfmV2MrKyhL7el5eHrZs2QI/P78Kp3eQFl1dXWhoaGDSpEnYsWMH07NQnCeqGJe/QyMjI1aVwdncB6pS8TwogUCAa9euYdy4cUyvqJmZGY4cOQJLS0uxP3v48GGYmZkhPj7+h2JISUlBYGAg9uzZg1evXrH6maKiItjb2+PAgQMwMjJipmgkJyfD1tYW48aNQ1hYmMi/QVnXWtVqbYOnSZMmSE5Oljjccvfu3VLJkurVq4cuXbqI3d/T0xNdu3bFuHHjsGDBAmaV0IMHD7Bu3TqcO3cOV65cQWRkJGeJAmWtefPmEvOHfL+PtFUk90u9evWwc+dO7NixA2/evAEA6OjoiLxBR44cKfUYK+rXX3/Fr7/+ijVr1sDe3h6urq4YM2YMcyMeOHCgxIZlsZs3b8LDwwNHjx4Vu9pj5MiRTF2m48ePIzQ0tMzVbjXFnj17MHPmTOTk5Ii8rqWlhV27dsHW1pb1sXg8XqkP2B/5wlFyHlpRUREEAgFWrFgBPp+P7du3V3nBRUmysrKQlZWFVatWYfXq1aW2k/+fY8blcOWKFSvKrQwOgNV9oCpcu3YNgYGB2L9/PwwNDeHi4oJDhw6JfJmeOXMm7OzsoKenh2nTpjFz+woLC7Fjxw5s3rwZ+/btQ3x8PJYuXco0Hr58+QJvb2+R4eOScnNzER4ejsDAQNy4cQOWlpYS8weJ4+vri3PnzuHYsWMYOnSoyLZjx47B2dkZW7ZswezZs1lda1WrtXN42I7bsl0pExkZiaNHj+K3337D+/fvRbbVq1cPAQEBGDlypNQTBXJRsbjkNWhoaCApKYmZv1RV+Hw+YmJimA/5bt26ISIigmm0vn37llkZwmYexdmzZ9GzZ09O5xmwdeXKFSbZYZs2beDi4oIpU6aAz+eznqswfvx4tG3bFkuWLBG7fc2aNUhJSWGWQR88eBBr1679ocKzbHsrSxYtlZWEhARYWFhIzModHh6OGzduoGPHjqyOV3LCasnK28UTVivzfoyMjISXlxfevHmDRYsWwc3NrcKV3KWJbY9Cr169qjgS8di+L2JiYji5D5iYmOD169cYP348Jk+eDFNTU4n7Ll68GGvXroWGhgZatmwJHo+HJ0+eIDc3F/Pnz8eff/6J3r17s2qgxcbGSi1LvqmpKWbPni2xiGhgYCB8fX1RVFTE+lqrUq1t8GRlZcHCwgKZmZlwdHSEsbExgG/devv27UPjxo1x9epVzJs3j9Xxiieg5eXlITo6mslF0Lp1awwYMEAkxbk0EwUWZ+MtRkqsXKqKb1nl3dSLRUZGlnus9PR0NG3alPV52SbYY7MyCBBtGFlaWuLQoUOs4ylWUFCAbdu2VSiJIhsZGRnYvXs3goKCkJWVBQcHB0yePBkmJiYi+7FdjWJoaIjDhw9LvNncuXMHI0aMYHJhHDx4EHZ2dlBTUyuVVbdko14SPp+PJk2aMEknxeHxeFIfDmTL2dmZVVZugUDA6nhOTk6sPnTY5pQCvjUsPD09cefOHbi7u8PT05NVr0Vtx/Z9UXK/yt4HKorP50NNTQ2Kiopl/s0Uv9euX7+OvXv3iqQmGD9+fIVW4FY0S355VFVV8eDBA4k99c+ePYOxsTE+f/5coWutKvL/1baKsJ2/UZEbEwDUrVtXYs4eQPqJAmNjY1nvKy0lu9AdHR0rfIzMzEx4e3sjICCA9SottsvX2fY0lfwATk5Olphr4+3bt7h27RqUlJTQt29fKCgo4OvXr9ixYwfWrl0LoVAo9QaPvr4+mjRpgkmTJmH48OFQUlJCYWEhkpKSyryO7xUVFeHEiRMIDAxEenp6mTlJ1NXVkZGRAQC4ceMGlixZAiMjI8ybN6/S334HDRqE2NhY/PLLL3BxccGQIUNYlySQhcuXL2PHjh0St7u6umL69OmsjxccHCyFqP5n8ODBOH/+PJydnXHkyBE0btxYqsevydh+l6/IfUCaKvrZYm5u/sPpRby8vMRmya8sVVVVZGdnS2zw5OTkQFVVFbt27frhc0lDre3h+R75/3IHQNnjtoQQvHv3Djwer9Q8HD8/P1bnYltDpybIzs7GjBkzcObMGSgpKWHhwoWYOXMmli9fjo0bN8LExARz586Fvb29VM/LNvdLeT1Bxa5cuYIhQ4bgw4cP4PF4+OWXXxAUFISRI0eiqKiI6dKV9sS77ycNF/9Nlny7FpcpaNasmcj+jx49gkAgQEhICLKysjBw4EDcvHkT/v7+GDRokNjznTp1Cr///jsmTZqEjRs3YsaMGVizZo3YDLQVkZGRIVKWY+LEiXBxcSmVloEL6urqSElJKXPJb9u2bUWyppeFba8CW3w+H4qKilBTU+P0m3FN8uzZM3z69AnGxsZih4Ql3Qe4IBQK4ePjAzc3N6Ze34ULF2BhYcH0sH/8+BGenp6sGsMXLlzA8+fPUVBQIJIlv7I9PEOGDEHz5s2xc+dOsdtdXV3x4sULnDhxotxjCYXCKh9WrLU9PN+P2/J4vDJvUJmZmViwYAGOHTvGrCzS1NTEqFGjsHbtWjRq1AibN28u95w8Hg92dnacJwqUFS8vL1y4cAGTJk3C6dOnMWfOHJw+fRoFBQU4depUhcf22c6nAsBq8l7JCabiJpwCwJIlSzBw4ED88ccfEAgE8PX1xdChQ7F8+XJMmDChyiY2VrRkRH5+PiIiIhAYGIirV6+isLAQmzdvhouLC9TV1eHs7Axvb2+xDR5CCNasWYO8vDyEhYXhzJkzYv997t27hyFDhlQoBbyuri4WLVqERYsW4cKFCwgKCkKXLl3QoUMHnDt3jtNq33l5eWU26OrUqYOCggLWx5P298eK9gJQ/1Pc2C+vMjjb+4Asfb9i6u3bt3BycmLeJ0OHDhWZk5iXl4e//voLhBBWw8cPHz5ksuRbWlrC0NAQhBCJKwLLsnjxYvTu3Rvv3r2Dh4eHSCLdTZs24ejRo+WOQlRmdVilVfnCdzlVMpeMhYUF+e+//0rt9+HDB2JgYEB0dHTI7Nmzya5du8jOnTuJm5sbadCgAWndujX5+PFjpc9rbGxMnj17xjyvaJ6O4lwc5T240Lx5cyY30ZMnTwiPxyPu7u6VPt7311MyF0nxa3w+n3XuFx6PRzp06EDMzMyImZkZUVBQICYmJszz4kf9+vXJ3bt3CSGEfPr0ifD5fBIRESGNX5FUXLt2jfz+++9EU1OT/PLLL8TX15dkZmYSRUVFkpyczOz3+PFjoqWlRczNzcn+/ftJYmIiuX37NgkPDyddunQhWlpaZNy4cWX+PScmJv7Q31NeXh4JCQkh5ubmRFVVlXz48KHSx5IGHo9Hdu/eTY4ePSr2ERIS8kO5omShMnlTagNLS0siEAiY56dOnSKKiopkz5495ObNm6Rr165k8uTJrO8DVe3jx4/E39+fWFpaEgUFBdK9e3fi4+PDOr+OtbU1UVFRISNGjCBHjx4lQqGw3HPm5OSQnTt3EnNzc6KgoEC6du1KNm3aVKG4IyMjSYMGDUp95tSvX58cPHiwQtda1WrtkBbbbsxVq1Zh9+7duHLlitjVXN27d4ezszO8vLykct7ibJhsC9/Jc8ViJSUlPHv2jJkgXLduXVy/fl1soVE22GYeZruiZsWKFaz3K/lvduvWLbRq1Ypd4FVMUVERbm5ucHV1FRkmEtdN/e+//8LJyQkpKSkiw2Tt2rVjel7Kcvv2bXTu3LnCk+D/+ecfCAQCREREwMjICM7Ozhg/frxIoV4uSDv7NJ/PL7OsSTFplO+Q6TfjcpAyhvu5wrYyuJOTE6vjSbt0TLHyVkxVpDzLjwwff58l//Xr1xW6hpKLdYyMjDBgwIBSw/zSWh1WaVXepJJT5bWai1lYWIh8SygpMDCQWFpaEkIIKSwsJIGBgWTIkCFMxslhw4aRkJAQUlRUxOq8Fe3huX79OnF1dSXa2trEzMyMbN26VWZZK8vD5/NFMp2qq6uTp0+fVvp4bDMPSxufzyePHz8mHz58INnZ2URDQ4Pcvn2bfPjwQeTBlf79+xMNDQ0yfvx4curUKeZvrWQPz/cSEhJIREQE2b9/P7l16xbrc1W0h2fdunXE2NiY6SFNSkpi/bPVUVmZkb/vlawsrr4ZS5KRkUEmTJhAtLS0mG/22traxNnZuVT2dVlTVVUlaWlpzHNTU1Pi6+vLPH/27BlRUVHhIjRCyLf3Rps2bUjTpk2Jh4cHSUxMJISUft9W9jMjPj6eODk5EQ0NDdKtWzeSl5fHKq4vX75U9pIkYnutVa3WzuFhO2778OFDdOvWTeJxunXrBg8PDxBCMHz4cJw8eRIdO3ZEhw4dmLFMJycnREZG4siRI1K/ji5duqBLly7YvHkzU7HY09NTLioWE0Lg5OTETK4rKCiAq6trpZavA+wzD0s79wv5/yWg3z//vjeNcJxg7cyZM3jx4gWCgoIwbdo05OfnM8nyJM1FMDMzK7NHUFoWLlyI5s2bw8bGBjweT+KcFB8fnyqPRVbY5H6pKM6/GYuRk5ODbt26ITc3F87OziI5jMLCwnDp0iUkJCSUmxCzqujr6+PmzZvQ19fH27dvkZycLFLIODMzk9Pl/RVZMfV9xnqhUIjg4GA0aNAAgOSM9V26dEFaWhpSUlJw69YtfP36FcC3YqPFSQIXLVoksiJNUVERK1euZF28OiYmBjNnzsTVq1fFJjPt1q0bdu3aJfXVYZVVq4e0vs+Hk5SUBGNjYygrK4vsl5SUhPT0dDRq1EjscTIzM6Gnpwd/f3+4u7vj6NGjsLKyEtknJiYGI0eOxLZt2+Ds7FzliQLlpWJxRYvoVcarV69gb28vcq1sc79oaWmVOzmRx+OxbhhxlWCtpLNnz0IgEODIkSNo1qwZxo4dizFjxmDv3r3l/uyOHTvKXG0mFArx6dMn1n+fbJKh8Xg8xMTEsDqetEm7OKe0V2lJO2+KNEl7uF/a1q5dCz8/v3IrgxcWFrL6Gz1//rxU41uzZg2Cg4PLXTHVokULVpOoixc5lDV8/Ndff+H48eOIiooC8G14zMTEhJkQff/+fSxYsABz5sxhdQ3Dhw+HlZWVxP39/PwQGxuLLl26sLrWqlZrGzxs52+sXLmSVWbkvn37ok+fPhLTcq9Zswbx8fE4e/ZslSUKlMeKxVWlrMzDgwcPRmxsLAYOHFhm7pey3tQ5OTkICwvD58+f5baSd3nzabKysrBnzx4IBAIkJSWx+tDOzMxklVqeq3IG0lbWHJ7i9yWPx4NQKGR9PGn28CgqKor9ZiwPDR5LS0tMnTpV4hcbgUAAf39//PPPPzKO7JuioiIsW7as3MrgycnJEo8hi/tA8YqpQ4cOwdDQEMnJyZXqvVu/fj2CgoLw7t07ODg4wMXFhZm/VKxnz56YM2cOkyuu5HygPXv2YPv27az/zfT19XH69GmR3+v37t+/jwEDBjArbKV1rZUms8GzaorH4xFtbW1Sr149sQ9tbW3C5/NJo0aNypwLkZCQQBo1akTi4uJYPdiS94rFxbKyssiNGzfIv//+S7Kysip1jJcvX5I///yTtGnThjRs2JDMmTOHWT0lbt81a9YQIyMj0rhxY7JgwQJy//79cs/x9etX4uvrS3R0dEirVq1IWFgYKSoqIuvXryfdunUjXbp0IYsWLSL5+fmVugZpSkxMZF0dft26dVUcTfWUnZ0t9vHy5Uvi6elJVFVViYmJCevjOTk5kZycHKnF5+3tTVq3bk2aNWtGFixYQO7cuUMIkf3cB3Hq1atX5nvq3r17pF69ejKMqOIkrXATdx+oah8+fPihFVM8Ho/o6+uTGTNmkDlz5oh91K1bV+Se2aBBA5Kamso8f/DgAdHU1GR9zjp16pBHjx5J3P7o0SOx86R+9ForizZ4yhEcHMzqoaSkRF6+fCnxOOnp6URZWVnq8f30009EX1+fLF26lDx69KjURFquJ9SmpqaSwYMHEwUFBWZSo4KCAhkyZIjIG40NJSUl5lr//fdfcvv2bbGPkthO3tuzZw9p2bIl0dXVJdu3b2duhmvWrCF8Pp/079+fDB8+nNSpU4f8/vvvFf5dSNv3E4i/fv1K7t69Sx48eCCyz5EjR0jHjh2r5G+vJiosLCT+/v5ET0+PNG/enAgEArn48hAXF0cmTpxI1NTUiKmpKVFQUCCXLl3iNCYFBYUyJyZnZGQQBQUFGUbEXnJyMpk7dy5p2LBhqW2S7gPS9uTJE2aBQUlJSUnE3d2d6OjokGbNmpG3b98y27Zu3Sr2ns4mHQefzy+3kVqnTh3W19CyZUsSGRkpcfuhQ4eIgYEB62utarW2wdO7d29iZWVV5qNPnz6sj1dyRVJJFV19xVbJ1R8lHz+6KuRHPH/+nDRq1Ijo6emRNWvWkMOHD5PIyEji7e1N9PT0SOPGjcmLFy9YH0/ctbJZAVNe7pdTp06Rjh07Ek1NTbJy5UqSm5srst3IyIhs375dZP86depIfAPLSnGDJzk5mRgYGDC/k1GjRpHMzEzSs2dPoqWlRebNm0eeP39OCCEkNzeXLFmyhJiYmBA1NTWirq5OOnToQFasWEE+ffpUZm/m94+a6NChQ6RNmzbkp59+Ihs2bCAFBQUVPoak9+H3jx9pBEgjb4q0cHXPq6zyVriVdx+QtpI52WxsbEo1IL98+VJqlZaGhobYFcVstGrVSmJuHEII2b9/PzE0NGR9vJkzZ5L27duL7fHOy8sj7du3J25ubqyvtarV2jk8bOdv/PPPP/j555+Z8XNSYs7N58+fcfToUdjZ2YkU1CypuEoyW2zHi+W5YrGLiwuePHmC6OjoUtls8/PzMWjQILRq1YrJfFqeZ8+esdqvOPNweblfrl+/Dk9PT1y9ehWurq5YvHgxs/LheyoqKnj48CFTfoAQAhUVFTx9+rRKCwzm5OSUuT0pKQm9evXCkCFD8OnTJ8yZMwd79+7F/v370apVKzg6OmLOnDlM/awvX76gW7duuHv3LqytrUWyop4+fRqdO3fGb7/9xmrOV02ZwwNItzjnkSNHJE4wvXLlCrZu3QpCCOv6cWX5kbwp0sDn88uc+E8IQU5ODudz4Mpb4cb2PiBtbHPBSbP0hbu7O86dO4ebN2+KvSf/8ssv6NevH7Zs2cLqeK9evULnzp2hoKCAmTNnok2bNuDxeLh37x62b9+OwsJCJCQkQFdXVy7Kd9TaBo84QqEQ27dvZ8oQrFq1Cg4ODiKrLjQ1NUXSehdPWp44cSKrc4SEhMhtokBpa9KkCSIiIkSWgn7vwoULsLOzw8uXL6V6XjaT94BvNxJVVVVMnTqVWSUnzuzZs/Hq1SuRieuyeMMWV4eXpLjxraOjg5MnT6Jz587Izs7GTz/9hL/++gu///67yP5btmzB2rVrER8fXyoR2f3799G7d28sXrwYbm5uUruGhIQEdO7cWWrHk7bvi3MuX768Sopz3r9/H4sWLUJUVBQcHBywatUqibW7KuPr16+slxFLU0hICKv9uGocs13hxvY+IO06iFw0eF69eoVOnTpBWVkZM2fOhJGREXg8Hu7fv49t27ZBKBTi1q1bElcli/Ps2TNMmzYN0dHRzKpYHo+HgQMHYseOHWjRooXc1CujDZ7/t3fvXixduhT5+fn4448/MGXKFCgqKko9M/KNGzcgEAgQHh4OAwMDuLi4wMHBAfXq1auya+NKnTp18OTJE+jp6Ynd/t9//8HQ0FDqlYn5fD6aN2+OoUOHlkoz8L3IyEhWy1HT0tIwZcoUkeXa27dvh6Ojo0hPgLRzybDtvbOyskJGRgZzk1JXV0dCQoJI7iDgWy+fjY0NZsyYIfY4W7duxcGDB1mflw1lZWUsWbIEixcvZpXVWNaqsjjny5cvsWzZMoSEhGDgwIFYu3ZthbOMs81z0qNHjwrHV9OxXeHGZtl3cZFeaVJQUBBZAayhoYGkpCQYGBiI7Mfn87F69WomD4+npyfmz59fqheKbYMsNTUV06ZNw9mzZ0UaKP3798eOHTsq3QjJysrC48ePQQhB69atRT7T2F5rVav1DZ7Tp09j4cKFSE1NhYeHB+bOnSuSGK8iab0roqCggEkUePXqVblIFChtBgYG2LVrFwYOHCh2++nTp+Hq6oq0tDSpnlfauV/kOZfMmzdv0LhxY5GbiaamJm7fvl3qZqKjo4O4uDiYmJiIPdbdu3fRsWNHZkiwLGxv/idPnsTUqVPRpEkThIaGlmqEca0qeik+fPiANWvWYOvWrejUqRPWrVtX6QYJ2zwnhw8frtTxq1JGRga8vb2xbds2Ts7PNs8NV/h8vsg0iKioKPTp06dUYtaEhIQqaZC9f/8ejx8/BgC0atWqSvO1sb1WtkloK6vWNnjYjttWVYPne/KSKFDaZs+ejZiYGJw/f15sYrL+/fvDysoKvr6+3ARYjnfv3iE0NFSk2rI8IITg1KlTCAgIwIkTJ/D161eRuRTZ2dnQ1NQs1aPy8eNHvHjxQuKwTUZGBpo0aYIWLVpg/PjxZeaScXd3Zx3vhw8f4O7ujoMHD2Lt2rVSHTKTBaFQyDqX1fr167Fu3To0btwYa9as+eGh6YrmOZG1lJQUxMbGQklJCTY2NtDW1sbbt2/h7e2NXbt2MXNmuPSjuV+q6j4g7cSs8jx8LIsktGzU2gZPReZvxMTEMI2Qbt26ISIighmmefv2Lfr3708TBYqRlZUFCwsLZGZmwtHREcbGxgC+3ST37duHxo0b4+rVq3LVwCOE4MyZMwgMDMTRo0ehqamJN2/ecB0WgG+9KgKBACEhIcjNzcWQIUMwZsyYcic3F3NxcSk3iaauri4GDhyIuLg4WFtbw8XFBYMHD5bKcNTBgwdhZ2cHNTW1UokgKzNkVNUqU5yz+L7Sr1+/MlPos/0mq6Kigrt370osVPv48WN06NBBKpOgK+r48eMYM2YMU7KgZcuW8Pf3h42NDdq3b4958+YxJQzkwcePH7F3714EBQXh5s2bMDc3x9ixYzF37txS+8rzfUASeR8+lge1tsHDdtw2LS0NPB5PbImC4tcrkhn5y5cvOHz4MAIDA3Hx4kWpfqgQOaxYnJWVBS8vL+zfvx/Z2dkAAG1tbdjY2MDb27vScb59+5b5t2nRosUPX29aWhoEAgGCg4ORnp4OBwcHTJw4EVZWVpzWfike+gwICMDVq1fRv39/nDp1ComJiRWeD1KynEpJQqEQycnJKCwsRHp6OtMY//TpEyZOnIjJkyejdevWlbqOGzduYOLEieDxeJg3b16pGORl1Vdubi7Cw8MRGBiIGzduwNLSEmPGjGGdat/JyYlVGQC232QNDQ2xceNGJjNuSZGRkfDw8JD6/BI2unbtCnNzc3h7e+Pvv/+Gh4cHWrduDX9/f9alOLgiaYWbPN4H/Pz8WO3XqlUruR4+lge1tsHDVkWXQpenfv360NDQwKRJkzBhwgSJwwYlJyiWJTMzEwsWLMCxY8eYQnKampoYNWoU1q5dW6EZ91WFEMJ8Q9LR0WH1oSBOcnIypk2bhsuXL4u83qtXL+zcubPU6qOyfP78GZGRkQgICMCVK1dgbW2N8ePHw97eXi7G+KdPn47w8HC0adMGjo6OsLOzQ/369SXOQcjPz8fZs2fx8OFD8Hg8GBkZoV+/fkydHLblVJYtWybyPD4+HsuXL8eFCxfw9u3bCk2wFwqFWLZsGTZu3IgZM2ZgzZo1pZbDygN5LM4JAG5uboiLi8ONGzfELiM2NzeHlZUV6w9FadLW1sb169dhZGQEoVAIFRUVREVFwdraWuaxVNbXr19RVFQk1/cBNhN7i+fwVPfh4ypX5Zl+qqm3b9+SzZs3S/240k4U+OHDB2JgYEB0dHTI7Nmzya5du8jOnTuJm5sbadCgAWndujX5+PGj1K+DjfPnz0s1S2lGRgapX78+MTY2Jr6+vuT06dPk1KlTZNOmTcTY2Jjo6OiIJLcqT/369UmPHj3IX3/9Rd6/f8+8Lg9p+wn5lsnWy8urVKkCcfEdPXqU6OjolErEqKOjQ44dO1ap8+fn55PQ0FBiZWVFVFVVia2tbYWT8XXo0IEYGBhILJeSkpJCDAwMKhWfNKxbt460adOGNG3alHh4eJDExERCiPz8DWRmZpImTZqQZs2akXXr1pEjR46Qo0ePkj///JM0a9aMNGnSpMxsx1WpZEI8dXV18vjxY05iEScvL49ERUUxzxcuXChSZmH+/PkkPz9f7u8DlXHgwAGioKBANDU1a0XSULZqxmQRKSFixm1Hjx7N6mfZ5tWIjY39kRBL2bJlCxQUFJCcnFxqbsYff/yB7t27w8/Pj5OKxf379xfJYWRpaYlDhw5VOlnf5s2boa+vj8uXL4t82x00aBCmTZuGX3/9FZs3b8a4ceNYTd4rrpLM4/E4HbaSZPfu3QgKCoKuri6GDBmCCRMmYNCgQaX2u3LlCsaOHYvhw4dj3rx5zATXlJQUbNq0CWPHjkVcXBwMDQ3LnIgsFAqRkJAAQggCAwOxf/9+GBoawsXFBYcOHapU6gRzc3P4+voyS2pL+vLlC+te1Krg5eUldulyZbG9X7Cdw9OoUSNcuXIF06ZNw6JFi8TmOeGyBzclJQWZmZkAvt0/Hzx4gE+fPonsY2pqykVo2L17N44fP87MI9q2bVupyuC6urpyfx8oz4sXL7Bs2TIIBAIA34aPlyxZAiMjI7HDx7Uat+0t+ZCamkqWLFlCmjVrRvh8PpkwYQI5e/YsEQqFpXpfSvbMcFm6gRBCLCwsiEAgkLg9MDCQWFpayjCi/xH3DbCyKdEJIcTMzIzs379f4vawsDBiZmZGlJSUyMqVK8utgZSfn0/27NnD9GCMHj2aREZGEiUlJbHf7B4+fEg2bNhAZsyYQWbOnEk2bdr0Q9fDVmpqKlm6dClp3rw5adCgAeHz+eTAgQPMdmtrazJlyhSJPz9lyhRibW1dKr27sbExefbsGfM8MzOTACANGjQgs2bNEluXTNq+rwfGBWkX53RycmL1qIz379+T69evk2vXron0RHCl+N5Xslfx+9e5/Lft0aOHSJ2nkvef0NBQYmlpWeH7gLwpfg99/fqVeHl5EWVlZTJnzhy5KHAsb2ptg6egoIDs27eP9OnTh6kyfuDAgVI3OgUFBaKvr0+WLVtG/v33X5KYmCj2wRV5rlgs7QaPlpZWuZV5tbS0yIkTJ4ienh4xNzcvVUxTksePH5PFixcTPT09wuPxyPjx48mZM2eIUCgkhHwrIKqoqEj4fD5p3LgxadSoEeHz+URJSYls2LCh0tdUEUVFReTUqVNk3LhxpE6dOqRp06bEzc2NaGtrk6SkJIk/d/v2baKtrV3uv0dxg0ddXb3cmlrSwnWDp5g8FueUd2lpaaweXGnUqFGFK4OXdx+QR8XvIXkfPpYHtbbBw3bcNiMjg/z555/E2NiYNGrUiMybN4+kpKRwEbJY8lyxuGRxQQ0NDfL06dMfOl5Zc3QyMzOZa83OziaTJk0iampqxM/PT+z+ISEhpeakFBYWkpMnT5IxY8YQZWVlUr9+fRITE0P4fD5ZtmyZyN/Ku3fvyJIlS4iCggKJj4+v9HVVxrt378jmzZuJqakpUVFRKfODJS0tjaiqqrJq8PB4PBIcHFzuQ1rkpcFTTJ6Kc1I/RkVFhVVlcLb3AXlV/B6aPHlymfM15e29xoVa2+DR1tYmPXv2JH///bdI9eyyurIvXrxIXFxciIaGBrGwsCB///13ucMmVU2eKxbzeDzSoUMHYmZmRszMzIiCggIxMTFhnhc/2OLz+eTx48fkw4cPYh8PHz4sda1lTd4rrwH1+vVrsmnTJmJjY1PmkNHvv/9O7OzsWF+HtJmampY7rNmhQwdWDR42fysVmYheXk+RhoaG3N6Ek5KSiLu7O9HR0eE6FLl2/fp1MmfOHDJkyBAydOhQMmfOHHLjxg2uw2JdGZztfUBesW3I0AZPLa6WXlBQgEOHDiEwMBBXr16FtbU1HB0dYWtri8TExDKXIr569Qr29vZykRlZnisWV3YZtCRsi2kWX2t5uV+cnZ1FsmhLYmBggNDQUIlFUC9evIiJEyciNTWV1XWwtXLlynL34fF4UFdXx+rVqxEaGorBgweLbD9x4gQmTZqExYsXw8PDAw8fPoSOjg4IIWjWrBkuXbrEJN589eoVjI2NJf6tVCYRn7wXmGSDq+Kc1cGCBQuwceNGqKuro2XLliCE4OnTp8jLy4OHhwfWrVvHWWxsK4Nv3bqV1X2AK+VNhM/OzkZ8fHy59/jbt2+jc+fOnFev51KtbfB878mTJwgKCkJISAjS09Nhb28PJycn9OnTR2TW/pUrVyAQCHDgwAG0adMGLi4umDJlSqUTBhIpJAqsCR8obLEtatm9e3dWuV/4fH6pKuji1K1bFw8fPiyzCGrr1q2lnu3WzMxM4jYej4cHDx6goKAAX79+ha2tLQ4dOoQ2bdqIrNJ69OgRRo4ciQMHDkBRUVGkwVjcQCz5/Psb4o8m4qNqrpCQELi6umLDhg2YOnUq0yj8+vUrdu7cCU9PT/z111+YOHEiJ/GxrQyuq6vL6j7AFWmVZaANnlrc4Nm9ezdsbW2ZYmYAUFRUhOjoaAQGBiIqKgoaGhq4c+cOszw4KysLDg4OmDx5ssQCjGxUh0SB1ZmpqSlyc3MRFBSEXr16ldp+7949DBkyBGlpaSIF7SQ5cuRImd8ApVFPrSISExOxcOFCxMTEwMXFBbt27QIA7N+/H2FhYXj48CEAwMjICHZ2drCzswPAvsHYq1cvuU3ER8kPc3Nz2NvbS2z8+vj4IDw8HNevX5dxZP/DpjJ4ycKWklR1YcsfVa9evTJ7wIVCIT59+kQbPFwHwQUFBQWRHDElvXnzBqGhoVi4cCGaNGmCSZMmYfjw4RK7ttnmmsjJyUGnTp2Qm5sLBwcHGBsbgxCClJQUhIWFoV69ekhISJCYt6SiuKxYbGVlxap8x/nz56VyvoSEBCxduhSNGzcuM/dL8TcdQghsbGyYvByShISEYPXq1RKP9/HjRyxdurTKbySpqalYsmQJ9u/fj9GjR2P16tWVLvUgyfr16yEQCJCbmwt7e3s4OjqiY8eOla4wXd5NuJg81tKiyqampoY7d+4whZRLevr0KTp06FAqLw8XyqoMzufzWd0Hqrqw5Y+qTb39lVVrGzwlq6CXtV+x4ht3yV9ZRWpprVq1Crt378aVK1fEVhDv3r07nJ2dK5QoUF4rFpc17JGTk4OwsDB8/vy5Qg2Fs2fP4syZM1BSUsJvv/2Gli1b4v79+1i4cCGioqLQv39/nD59usxjfN/gYfM3wKbuGgCpz+Ep9vbtW6xYsQJ///03fv31V/z555/o0qVLqf3evXvHDI2+ePEC/v7+yM/Px7Bhw1jXNlJUVBSbiK+yDR56E665NDU1cf36daYocEkPHjxAly5dWBe35QrbzwKqBpDlDGl5wuPxylzdVEzauSaknSgwKiqKKCsrMwm/DA0NSUxMDGnQoAHp3bu3SGp1efD161fi6+tLdHR0SKtWrUhYWBjrnw0ODiY8Ho/Ur1+fKZsQGhpKNDQ0iJOTE5M0rjzFqxXKW53BtdzcXLJ8+XKiqalJOnfuTKKjo8Xul5SURPT19Qmfzydt2rQht27dIo0aNSLq6upEU1OTKCgokMOHD4stZSKutIk0E/FVF9nZ2eTAgQNkw4YNZOPGjeTQoUMiqzep0nr37k3++OMPidsXL15MevXqJbuAKkne7wOU9NTqnNNOTk4yH7d9+PAhunXrJnF7t27d4OHhwfp43t7ecHV1FalY7OrqikOHDsldxeK9e/di6dKlyM/Px/LlyzFlypQKpT3fvHkz1qxZg4ULFyIiIgJ2dnbYvHkzbt26BUNDwwrHQ6TYuZmenl7pkhmSGBoa4uPHj3Bzc4O9vT14PB6SkpJK7efp6YkOHTpgz5492LNnD4YOHYrBgwcjICAAwLcClH/++ScIIdDX18ekSZPKnBA9YsQIxMfHQyAQwNLSEoaGhiCEICsrS6rXJy/27NmDmTNnluqJ0NLSwq5du2Bra8tRZPJt3rx5GDlyJD5//ox58+Yxcw8zMzOxadMm+Pr64vDhwxxHWT5p3ge4RIePy1erh7S4GLdVVFREenq6xInJmZmZ0NPTg1AoZHW86lCx+PTp01i4cCFSU1Ph4eGBuXPnQk1NrcLH0dDQQFJSEgwMDFBUVIQ6derg3LlzpSYms528FxMTg+7du/9QrZnMzEx4e3sjICBA6qu0Sg6nfv9WLX7O4/FQr149xMTEMJO1i4cafvnlFwDfagZZWlri7NmzEAgECA8Ph4GBAVxcXODg4FBmjaycnBzs27cPQUFBuHnzJszNzTF27FjMnTuX1TVImt9R0tOnT1ntJ20JCQmwsLCAg4MD5syZIzKnztfXF+Hh4bhx4wY6duzISXzybuvWrfDw8IBQKISWlhYA4MOHD1BQUMD69esxe/ZsbgNkoXgyfnWvOUWHj8tXqxs8XIzbKigoIDMzU+ISyIqu+Cl5HRoaGkhMTKxUj4e0Xb9+HZ6enrh69SpcXV2xePFiNGjQoNLHE3ett2/fLvWhyvaNb2xsjPfv34s0Dnfv3o1ly5bh06dPGDlyJLZu3Yr8/HzMmDGDmTu0cOFCzJw5E8uXL8fGjRthYmKCuXPnwt7evtLXJg7bopoGBgZl/l5K/k0VFBTg4MGDCAoKwtWrVzFs2DBMnjwZ/fv3x9OnT2FgYCC2wXjnzh0EBgZi3759eP36NavY+Hw+9PX1MX78+DLfa+7u7qyOJ23Ozs7Izc3FgQMHxG4fO3YsNDU1mcKMVGn//fcfDhw4gEePHgH4tjpwzJgxaNasGceRsXPt2jVW94HyRgMo+VdrGzzlrdKqKtJOFMjn8xETE8OsOujWrRsiIiJK5YzhomIxn8+Hqqoqpk6dyiS3E2fWrFmsjxcSEsJ8k7S3t4evr2+p3rLhw4ezOp61tTV69+4NT09PAN8+0Dt37gwnJye0bduWyS/y+vVrREVFwdbWFqdPn8a9e/cwcOBAFBQUYNmyZWKXvstSyXxC3/eEAWU3olNTUzF58mQmiaaOjo7I+8LW1hZ+fn4iv+OKJOKLiIhAUFAQ4uLiYG1tDRcXFwwePLjSuaukzcjICDt27EC/fv3Ebj937hymT5/OLPWnah6294Hly5dzGyj1w2ptg4erHh5pdzsWZx8W98/4/bAHF7kX2Kxu4vF4rIcz2HxIVuRadXV1ERUVxQz9LF68GPHx8bh06RIA4MCBA8y3vMDAQPTr1w9Pnz5Fq1atMGvWLPj6+rI6T1WJjIzE8uXLcffuXZE8IlFRUejTpw8zbPj582ecPn1a5Pfy33//ITg4GMHBwcjPz8eECROwevVqKCsrs+pFq6j09HTmfJ8+fcLEiRMxefJkqS+rryh1dXWkpKSgefPmYrc/f/4cbdu2lYul1fKmZ8+eOHbsGLS1tQEAx44dQ//+/cudJiBv2N4HuFjpWhHyPnwsD2ptg0da47ZcZ69kO+yhr69fxZHID7aT9/Ly8vDo0SOm6/3XX3/FoEGD8McffwAA0tLS0KFDBxQUFODZs2do0qQJgG+Zl69fv4727dtX3UX8P39/f2Yozd3dHRYWFoiJicG8efPw4MEDTJgwAV++fGF1rL/++guHDx9GYGAgLl68KLbHhe2w4Y+Ij4/H8uXLceHCBbx9+7bMOURVrbwvPrJOKlmdlPzdaWpqIjExUap/K7KgoqLC6j5QnCRWXsn78LE8qN6ztH6AiooKzp49K5VxW2m2GSuaKLA6N2TevXuH0NBQqU9sZNvzsnTpUqSmpqJZs2b48uULEhISROp/ffz4EUpKSsjLyxMZwlFQUKjUpOuK2rhxI7y8vGBqaop79+7h6NGjWLx4MXx8fODm5oYZM2ZUaE5U/fr1oaGhgUmTJmHHjh3MTTE3N5fZh8fjlWossmk8slE8d0ggEODatWsYN24c6tatK5Vj/4jo6GhmmLSk7Oxs2QZTjVXX786NGjVidR+Qd+Hh4QgKCoKPj49cDh/LBVmugZcngwYNIn/++SfzPCkpiSgqKpLffvuNbNq0iTRu3JgsW7as3ONUpgJtcnIy2bZtG/nrr79IVlYWIYSQN2/ekNmzZxMVFRXStm3bCh2PEPmtWFxSUVEROX36NBk3bhxRVlYmDRo0qPAxIiIiyKhRo4iJiQlp3749GTVqFDlw4ECFjzNlyhTStWtXcuHCBTJ37lxSv3598vnzZ2b7nj17yC+//EJ4PB4ZPHgwGTVqFBk1ahRRVFQkAwYMYJ4XP6TN2NiYBAYGEkIIiY2NJTwej/Tt25f5m2GjsLCQHDt2jIwYMYLJ1cTj8STm4AEg9Wu9evUq+f3334mmpiYxMzMjW7duJe/fv6/QMarK978TSY/aXmFaEh6PJ5K/Rl1dnTx58oTDiCqH7X2guvjvv//I6tWrSatWrYiuri7x9PQkDx8+5DosuVBrh7SkNW5b0SGt48ePY8yYMfj69SuAb+Ou/v7+sLGxQfv27TFv3jwMHTq0QtcizxWLi6WlpUEgECA4OBjp6elwcHDAxIkTYWVlJZLRtyxFRUWwt7fHgQMHYGRkxCwhvn//Ph4/foxx48YhLCyMdY/EmzdvMHr0aFy+fBnq6uoICQnBqFGjmO19+/aFpaUlXr58yep40k5hULduXdy/f5+ZX1KnTh1cuHABFhYW5f7so0ePIBAIEBISgqysLAwcOJBVwc8///wTjRs3Lnc/ttdqYmKC169fY/z48Zg8eTInk+epqiHtRQRcYXsf8Pb25jDKypGn4WO5wG17izt16tQhz58/Z553796drFq1inmemppK1NXVyYcPH8p8XLx4sULfAC0tLcmsWbPIx48fyaZNmwiPxyNGRkYkPj6+UtcRHBxMVFRUyNatW8mXL1+Y1798+UK2bNlCVFRUSEhISKWO/aMKCgrIvn37SJ8+fYiKigrTE1PZrL2bNm0iP/30k9js0UePHiU//fQT2bx5MzEwMGD1KJadnU2EQmGpY757907km56sVfQbdF5eHgkODiY9evQgSkpKhM/nky1btpCPHz/KIlyxeDweUVdXJ9ra2qRevXoSH1T1U9N6x+T1PlAZ+fn5JDQ0lFhZWRFVVVVia2tLCgoKuA6Lc7W2h0dfXx+hoaHo2bMnvnz5Am1tbURFRaFv374Avi1N7NWrF7Kzs8vsMSAVXAUl7USB8lyxuEGDBmjXrh0cHR0xbtw45ttFZesymZqaYvbs2XBxcRG7PTAwEL6+vkhOTq6yyXvZ2dl4/PgxeDweDA0NmRUqVYHP54sULfX09MT8+fNLzduxtLREQEAA9u/fDyMjIzg6OsLOzg56enqV+j1LU3VJhnbgwAGm0jyPx0Pr1q0xfvybB74PAABRJElEQVR4jB07ltO4KKoirl27hsDAQOzfvx+GhoaskovWJrV20vKgQYOwcOFCrFu3DkeOHEHdunXRo0cPZntSUhIMDQ2xceNGqZ43JyeH+ZBUVFSEqqoqjIyMKn285ORkjBgxQuL2kSNHYsmSJZU+/o8oLCxkJsGyHbYqy6NHjyTmSwGAfv36YebMmVUyeS8tLQ0zZsxAdHQ0MzmTx+Nh0KBB2LZtW5l5hiqrefPm8Pf3Z543btwYoaGhIvvweDw8f/4cbm5uuH79Otq0aSP1OH4Em4YM26ziVUHSMGlycjJsbW0rPExKUVz5fvj44sWLdPhYjFrb4Fm9ejVGjx6NXr16MeO2ysrKzHaBQIABAwawSir35s2bCp07JSUFmZmZAL71ED148KBUng+2f6wKCgplLkv++vWrVBoblZGRkYFDhw4hMDAQ7u7usLa2hqOjY6U/PFRVVZGdnS0xZ0pOTg5UVVVhY2MDGxsbJvfLnDlzMGXKlErnfnnx4gUsLS2hpKSEVatWoW3btiCE4N69e9i5cye6du2KGzdulEr2+KPS0tJY7TdgwAAEBgbi9evXmDBhAgYOHFgtPqBTUlIQGBiIPXv24NWrV5zE4Ovri3PnzuHYsWOl5s4dO3YMzs7O2LJlS7UokSBrFy5cYLWfvNX0q6nu3bsHNTU17N69u9QXo+/RWlq12IcPH6Curl6qUfD+/Xuoq6uLNIK+RwjBqVOnEBAQgBMnTuDz58+sziftRIFWVlb49ddfsWrVKrHb//jjD1y6dAlxcXGsjldVnjx5gqCgIISEhCA9PR329vZwcnJCnz59WDfIhgwZgubNm2Pnzp1it7u6uuLFixc4ceJEqW0/MnnPxcUFT548QXR0NFRUVES25efnY9CgQWjVqhUCAwNZH1PaXrx4gaCgIAQFBSE/Px+2trbYsWMHkpKS0LZtW87iKik3Nxfh4eEIDAzEjRs3YGlpiTFjxrCaUF0V2A6T3rlzR8aRyb+yekyLG9w8Ho/THrzapLoMH3OKm6lD1deTJ0/I4sWLiZ6eHtHW1iYODg4kMjKS9c+npaWxerAVFRVFFBQUyPz580lmZibzekZGBvHw8CCKiopiJ/nKQkhISKmJcoWFheTkyZNkzJgxRFlZmdSvX5/18S5fvkyUlJTIuHHjyLVr18iHDx9IdnY2+eeff8jYsWOJkpISuXTpksjPSGPynq6uLrl48aLE7fHx8URXV7dCx2TD2tqaZGdnM89Xr14tsiT97du3YlMYnDlzhtjZ2REVFRXSunVrsmjRInLz5k2RfYqKisibN2/I27dvpR63OBcvXiSTJk0i6urqpEOHDkRBQaHUvxUXVFRUyLNnzyRuT0tLIyoqKjKMqPrIzs4W+3j58iXx9PQkqqqqxMTEhOswqe98/fqV6xA4RRs8LBR/aPbq1YvUqVOHDB06lCgoKJA7d+5wHRohhBA/Pz+irKxM+Hw+s+qFz+cTJSUlsnnzZs7i4vP5IquMSnr9+jXZtGlThY4ZGRlJGjRoUCqHTP369cnBgweZ/aSZ+0VZWZm8ePFC4vYXL14QZWXlSh27LCV/fxoaGiKrtDIzM8tcBfP+/Xvi5+dHOnXqxOyXkZFBJkyYQLS0tJjfnba2NnF2dhZpMEvLunXrSJs2bUjTpk2Jh4cHSUxMJISQSq/Uk7Z69eqR27dvS9yelJREV5GxVFhYSPz9/Ymenh5p3rw5EQgEpLCwkOuwKPIt99vcuXNJw4YNuQ6FU7V+SKs806dPR3h4ONq0acOsfqlfv36lVxoVu3HjhthVIcV5gSpKHisWV1W9sry8PERHR4tc64ABA5isvdLO/WJgYIBdu3Zh4MCBYrefPn0arq6urOfcsFVemYeKlD1ISEhAq1at0KlTJ+Tm5sLBwYGZoJuSkoKwsDDUq1cPCQkJzKowaVBUVISnpydWrlwpMnT5o+8fafmRYVLqfyIjI+Hl5YU3b95g0aJFcHNzo9XFOSZvw8dygeMGl9xTUFAgXl5eJCcnR+T1H/mGOn/+fMLj8YiGhgbp2LEjMTU1Jerq6oTP55MFCxZII2y5wOPxyOvXrzk5rzRzv7i7u5MOHTqIvZZXr14RU1NT4u7uLsUr+Ka8PDzl9fAUK84GvnLlStKqVSuJ19GqVSvi7e0tneD/n7e3N2ndujVp1qwZWbBgAdMrKi89PJUZJqX+Jy4ujlhYWJC6deuSRYsWiQzBUtyQ1+FjeVBrV2mxtXv3bgQFBUFXVxdDhgzBhAkTMGjQoEofLyQkBFu3boWfnx+mTp3K1Gj5+vUrdu7cCU9PT5iYmGDixImsjifvFYudnJzK/aYXGRnJ6ljNmzfHrVu3UL9+fQDAtm3bMHHiRGhqaorsJ+2Mx8uWLcPJkydhaGgIR0dHGBsbA/i2ymjfvn1o3Lgxli5dKtVzAtKva3XixAl4eXlBR0en1LaGDRti0aJF8Pf3h5eXV6XPUZKXlxe8vLwQHx8PgUAAS0tLGBoaghCCrKwsqZ2nsrp164b9+/djypQpOHTokMi2evXqISwsDN27d+coOvk2ePBgnD9/Hs7Ozjhy5AirDN1U1Vm/fj0EAgFyc3Nhb2+PS5cuoWPHjlBSUqJ5eP4fHdJiKS0tDUFBQQgODkZeXh7ev3+P/fv3VzgxmbQTBcpzxWI+nw8bG5tyG19sGyjSvFahUAhFRfbt/aysLHh5eWH//v1MQUltbW3Y2NjA29ubaYRJE5/Ph7W1NdNgjIqKQp8+fZjCpZ8/f8bp06fLHdIqLn+ipaWFf/75R2Kunvv376Nbt25Vumw1JycH+/btQ1BQEG7evAlzc3OMHTsWc+fOrbJzslHeMClVGp/Ph6KiItTU1MpsiNfmZdCyJO/Dx/KANngqiBCC6OhoCAQCHDt2DA0aNMDo0aPh5+fH6ufV1NRw584diR/ST58+RYcOHUrl5ZGkvHkeXJL2HB5pXOuP5n4hhDB5l3R0dKo0342TkxOr45fXYCxu8PB4PKSnp5eqdVQsMzMTenp6Ul1G/PTpUxgYGIi9jjt37iAwMBD79u3D69evpXZOSjboMmj5smbNGgQHB6OgoAD29vaYMGEC2rdvTxs83+NwOK3ae/fuHdm8eTMxNTVl/TMaGhrk3r17Erffv3+faGhosD6ePFcsLm+VVkVV9lo/fvxI/P39iaWlJVFQUCDdu3cnPj4+rM97/vx5uV7OybbeG5/PL3NOFds5QRVR8m/Axsam1Gqw72vAceHr169k/fr1xMzMjKipqRF1dXViZmZGNmzYwHls1Z08v29qqri4ODJx4kSipqZGTE1N6Rye79AeHhmTdqJAea5YXBU9PGxqS82aNQsAcOnSJQQEBODQoUMwMDBASkoK4uPjKzwnQ0FBARkZGcx1WFpa4tChQ2jatKkUror9eSUpTmYpCfn/ZJaEEGhpaUnclxCCnJwc1kkv2ZDnHkjgW+LI/v37459//kG/fv2YLNr379/HuXPn0L17d5w5c6ZUwkmqbPKQRbu2k9fhYy7RScvlWLlyZbn78Hg81vWq5s2bh5EjR+Lz58+YN28e0zDJzMzEpk2b4Ovri8OHD1coxpJdxlOnTi0VnzQ/xNiKjY3FTz/9JLXjsa0tVVBQINXJeyW/EyQnJ7POrP0j2H4XiY2NZbWftJfN1wRr167FixcvcOvWrVLpC27fvo3hw4fjzz//xPLly7kJsBoRtwx64cKFXIdVa5QcPtbU1ISrqytcXV2Z4eM///yzVjd46JBWOTp16iTxYWZmRurWrVvhYQB5TRQobVevXiUnT54UeS0kJIS0aNGC6OjokN9//73CWY/ZKE4lIBQKRV6v7FJoroYNS563snJzc0l8fLwUIqq4ksNo6urq5OnTp5zEIk7r1q1FElaWFBERQVq3bi3DiKofugxaPlSH4WOu0R6ecty6dUvs64mJiVi4cCHu3r2L33//vULHdHNzw6hRo+QuUaC0LV++HL1794a1tTWAb5NUJ0+eDCcnJ7Rt2xYbNmxAkyZNpP7teeXKlQgODkZoaKjI5L3KKrk8XNxy8aoSHR3NDFdKUt5w5ePHj2FlZVVuL19GRga8vb2xbdu2CscpCSFEJDVBQUEBXF1dmZVmxdimJpC258+fw9zcXOJ2S0tLPH/+XIYRVR90GbR8ISV6hE+ePIm1a9eKvFacBqW2og2eCkpNTcWSJUuwf/9+jB49GsnJyRWuvg0Aenp6Usl4Kc8VixMTE0XmKoWHh8PCwoIZlmrWrBmWLVvGusGze/duVvtJO/cLIQR9+/ZllrHn5eVh2LBhpQrLJiQkVPjY5SlvhUtFhytTUlIQGxsLJSUl2NjYQFtbG2/fvoW3tzd27doFAwODHw1ZRMn4HR0dpXr8H6WpqYnXr19L/KKRmZlZKs8T9Y2Xl5fYZdAUJa/opGWW3r59ixUrVuDvv//Gr7/+ij///BNdunSp8HGknShQnisWq6io4NGjR8yHya+//opBgwbhjz/+APBtTkmHDh3w8eNHVscr61sjj8fDp0+fIBQKSzUAfnTy3ooVK1jtt2zZMlb7sSWtSd/Fy9KPHj2KMWPG4OvXrwCAli1bwt/fHzY2Nmjfvj3mzZuHoUOHSiP0asPW1hZCobBU0sFiY8aMgYKCAiIiImQcmfyjy6Dli4KCAjIzM5nEohoaGkhKSpL6l5hqjcvxtOogNzeXLF++nGhqapLOnTuT6OjoHzpeyXkZJQtCVpQ8Vyxu3rw5M3fk8+fPRFVVlZw7d47ZLq3CjC9fviRTp04lSkpKZODAgeTJkyekqKhI7L5JSUnE3d2d6Ojo/PB5q5q0lvUXl5awtLQks2bNIh8/fiSbNm0iPB6PGBkZcTa/Rx4kJycTdXV1YmFhQfbv309u375Nbt++TcLCwoi5uTlRV1cnd+/e5TpMuUaXQcsHHo9HBg8eTEaNGkVGjRpFFBUVyYABA5jnxY/ajPbwlKNx48b4+PEj3NzcYG9vL3HuBtsClVW9TLeoqAgCgQArVqwAn8/H8uXLMWnSpDJ7gqrK1KlTcefOHaxbtw5HjhxBSEgIXr58yQwF7d27F76+vrhx40aljv/x40esW7cOW7ZsgYmJCdauXQsrK6tSy7ltbW3h5+cnslT/69evcj+ezbaH59ixY2VuT01Nxdy5c6GhoYHr16/DyMgIQqEQKioqiIqKYuZY1VZXr17F5MmTce/ePeb9TQiBsbExAgIC0K1bN44jrB4+fvyIvXv30mXQHHF2dma1n7RL71QntMFTju8bCsW5TEo+r8g8iqps8MhbxeI3b95g9OjRuHz5MtTV1RESEoJRo0Yx2/v27QtLS0t4e3tX6LhfvnzBtm3bsGbNGjRo0ACrV68WKfEh7d+xlZVVuZOUeTwezp8/X6njS+Ls7Aw/Pz9oaGiUuR+bxmzx32rJ30tiYiIMDQ2lEm91l5iYiIcPHwL4toigU6dO+PTpE27evMnJHDh517JlS9y4cUNsWRWaRZuSR7TBU45nz56x2k9fX5/VflWRKDA+Ph6enp64c+cO3N3d4enpWe7KHln68OED1NXVS01sfP/+PdTV1UtN/pWEEILdu3dj6dKlEAqFWLZsGSZPnlzquNJu8JQ1uTwnJwdhYWH4/PkzJ7mOKoLP5yMmJobJjdStWzdERERAT09PZD+2vZW1QfH8J3n/t+UCmx7I6tCTStUetMEjY2y/jbO9wX5fsXj58uU1umKxqakpnjx5Ajc3N8yePVtiYcd69epV+eQ9oVCI7du3w9vbG1paWli1ahXs7Oykdnyg/AzKQMUmpBcfT9xbvjK9lbUBbfBIJu1M6hRV1WiD5wdFRkZi+fLlSEpK4uT8taliccnhxZLIdyUUyqoyXqyyuV/27t2LpUuXIj8/H3/88QemTJlSocrrbB05ckTiv+mVK1ewdetWEEKQn58PADhw4ADCwsLw8OFD8Hg8tG7dGuPHj2eG+6TdW1kb0AaPZCV7DCWhPYaUvKB5eFjw9/fHmTNnoKSkBHd3d1hYWCAmJgbz5s3DgwcPMGHCBM5iq00T0NiWUAgODhZ5Lq3cL6dPn8bChQuRmpoKDw8PzJ07t1QjSppGjhxZ6rX79+9j0aJFiIqKgoODA1atWoWioiLY29vjwIEDMDIygrGxMQghSE5Ohq2tLcaNG4ewsDDakKGkrm/fvrTHkKo2aIOnHBs3boSXlxdMTU1x7949HD16FIsXL4aPjw/c3NwwY8aMUsUryyLtRIHlJaYDwEkOnqrQq1evcvd58+aN1BuB169fh6enJ65evQpXV1ecO3euQv/m0vDy5UssW7YMISEhGDhwIBITE5ns0T4+Pjh37hyOHTtWKo/OsWPH4OzsjC1btmD27NkAgBs3bojtCfrll19kek3ygM0KN0qya9euMUPHFCXv6JBWOdq2bYv58+fDxcUFcXFx6NOnD/r06YODBw8yyQMrQpaJAmtLxWJCCE6dOoWAgACcOHFC6oU9+Xw+VFVVMXXqVLRo0ULifsVV2qXpw4cPWLNmDbZu3YpOnTph3bp16NGjh8g+pqammD17NlxcXMQeIzAwEL6+vrhz5w4WLFiAjRs3Ql1dHS1btgQhBE+fPkVeXh48PDywbt06qV+DPJP2nLrahM7hoaodGeX7qbZUVVXJs2fPmOfKysrk6tWrlT5eVScK/PjxI/H39yeWlpZEQUGBdO/enfj4+FT6ePLsyZMnZPHixURPT49oa2sTBwcHEhkZKfXz6OvrkxYtWpT5MDAwkPp5161bR3766SfSrl07cuTIEYn7qaioiPyNlpSWlkZUVFRIcHAwUVFRIVu3bhUpIvjlyxeyZcsWoqKiQkJCQqR6DVTNJa3ithQlK7SHpxzVJVHgpUuXEBAQgEOHDsHAwAApKSmIj49H9+7dpRKnvCgoKMDBgwcREBCAq1evon///jh16pTIEE9NUdyz1K9fvzJrFcXFxSEuLk7i5NA7d+6gV69eaNWqFezt7SUus/fx8UF4eDiuX78ulfipms3KygqHDx+uVE83RXGBzuFhISAgAOrq6gC+zYcJDg4uNYejMsMZ0kgUWJsqFk+fPh3h4eFo06YNHB0dcejQIdSvXx9KSkqcZJIu9u7dO4SGhjJzZKRl4sSJrKqyd+3aFTt37sTOnTvFbt++fTu6du2KuLg4jBgxQuJxRo4ciSVLllQ63urs3bt3TAK9Fy9ewN/fH/n5+Rg2bBhNOiiBuEUEBQUF2L9/Pz59+oT+/ftXqrAyRVUZrruY5F1VDGfExcURCwsLUrduXbJo0SKSnZ1d6fgUFBSIl5cXEQqFIq8rKiqS5OTkSh9XHhVfa05OjsjrXFxrUVEROX36NBk3bhxRVlYmDRo0kOn5v3f58mWipKRExo0bR65du0Y+fPhAsrOzyT///EPGjh1LlJSUyKVLl4iGhga5d++exOPcv3+faGhoyDBy7iUlJRF9fX3C5/NJmzZtyK1bt0ijRo2Iuro60dTUJAoKCuTw4cNchymXPDw8yKxZs5jnnz9/Jp06dSJKSkpES0uLqKmpkStXrnAYIUWJog0eGbO2tibKyspk6tSpJCMj44eP5+3tTVq3bk2aNWtGFixYQO7cuUMIqZkNnr1795J+/foRNTU1YmNjQ6KiosjXr19leq2pqalkyZIlpFmzZoTP55MJEyaQs2fPlmpwylpkZCRp0KAB4fP5Io/69euTgwcPEkII6d27N/njjz8kHmPx4sWkV69eMopYPgwaNIgMHTqUXLx4kUydOpU0bdqUODs7k8LCQlJYWEimT59OLCwsuA5TLpmYmJCjR48yzwUCAalXrx5JS0sjRUVFxMnJiQwePJjDCClKFJ3DI2NVlSgwPj4eAoEAhw4dgqGhIZKTk2vkHB4ASEtLQ1BQEIKDg5GXl4f3799j//79IvW0pOnz58+IjIxEQEAArly5Amtra4wfPx729va4ffs22rVrVyXnHT16NKv9ihMo5uXlITo6Go8ePQLwrR7UgAEDmIzUx48fx8iRIzF37lzMmzePKWeSmZmJTZs2wdfXF4cPHy61tL0ma9CgAWJiYmBqaorc3Fxoamri+vXrzBL9+/fvw9LSEtnZ2dwGKoc0NTWRkJCAVq1aAfhWJkdDQwN///03gG+1yQYPHoyXL19yGSZFMWiDpxyDBw9GWFgYU5vK29sbM2bMYCbqvXv3Dj169EBKSgqr44WEhLDaj01+HXFqU8ViQgiio6MhEAhw7NgxNGjQAKNHj4afn59Uz9OgQQO0a9cOjo6OGDduHDM3SklJqUobPFVR/Xjr1q3w8PCAUChk/qY/fPgABQUFrF+/XurzkORdeYsSXr16hSZNmtBl6WJoa2vjxo0bzDwdAwMDLFmyhEmPkJaWhrZt2zKZwCmKc5z2L1UDfD5fZOmlhoYGefLkCfM8MzOT8Pl8qZ7z69evrPc1MDAgb9++FbstKSmJuLu7Ex0dHWmFxqmS/xbfe/fuHdm8eTMxNTWV+nm1tbVJz549yd9//00+fPjAvC4vw4bnz58nbdu2FYmtWHZ2NmnXrh25cOEC89qLFy+Ij48PmTZtGpk2bRrZvHkzef78uSxDlhs8Ho+8fv2aea6urk6ePn3KPK+K93dNYWFhQTZt2kQIIeTu3buEz+eL/O7i4uKIvr4+R9FRVGm0h6ccsvwGWJlEgbWpYjFXic4KCgpw6NAhBAYG4urVq7C2toajoyNsbW2RmJhYZT08bA0fPhxWVlYSl5v7+fkhNjYWhw8flnFk8o/P55dZd+3z5884ffo07eER49ChQ7C3t0ePHj2QnJyMLl26ICoqitnu6emJ1NRUREREcBglRf0Pd2t5KQBAbm4uAgIC0LVrV5iamuLatWtYuHChVM9RExo7XFJRUYGDgwNiYmJw584dtG3bFrNmzYJQKIS3tzfOnj3L6Qfi7du3MWjQIInbBwwYgJs3b6Jnz54ic1GOHTtW64cbJk2ahIYNG0JLSwtaWlpwdHREkyZNmOcNGzbExIkTuQ5TLo0ZMwYnT56Eqakp5syZg/3794tsr1u3LqZPn85RdBRVGu3hKYeCggIyMzOZejEaGhpISkqCgYEBgMr38EgrUWBtqljM5/MREhLCzD2RZPjw4VI97+7du2FrayuSI6moqAjR0dEIDAxEVFQUNDQ08PbtW6mely0VFRXcvXuXmTxa0uPHj9GhQwd8/vxZpIdMU1MTiYmJUkuiSVEUJc9o4sFyEELg5OTEfNgVFBTA1dVVpMu7IqoiUWBtqlhc3mTuqrhWZ2dnDBo0SGQorXgoxNraGm/evEFoaKhUz1kRTZs2xZ07dyQ2eJKSkqCrq4u0tDSR1+l3HYqiahPaw1MOJycnVtlu2a6UUVRUhKenJ1auXClSLqCyK374fD6uX79ebsVifX39Ch1XHnE1h0feiyS6ubkhLi4ON27cgIqKisi2/Px8mJubw8rKCtu2bavSMikURVHyjDZ4ZGzNmjUIDg5GQUEB7O3tMWHCBLRv3/6HGjzy/GEsTQoKCsjIyOCkwfPq1atyG5VcefXqFTp37gwFBQXMnDkTbdq0AY/Hw71797B9+3YUFhYiISEBurq6IkOC9vb28PX1ZfLxFJP2kCBFUZQ8oA2eclTVh6y0EgXWpgYPlz0836/kkaQ4ASAXnj17hmnTpiE6OpoZquLxeBg4cCB27NiBFi1asKo3VpOGPymKor5H5/CUo6rag7169UKvXr2wbds2JlFgr169KpwosFevXlBWVq6SGOXNpEmToKqqysm5NTQ0ODs3G/r6+jh58iSysrLw+PFjEELQunVrkXlhRUVFHEZI1TSvX78u88uHUChEQkICzM3NZRgVRUlGe3jKIe1ehZYtW+LGjRtMZebv3blzB4GBgdi3bx9ev35d6XPU1IrFRUVFKCoqgqLi/9rpr169wq5du/Dp0ycMHz4cv/76q9TPW5t60SiKrZK9323btkV0dDSaN28OgGappuQPbfCUQ9pLoaWdKHD+/Pn48uULtmzZAgD48uULLCwskJycjLp160IoFOLs2bPo2rUrq+PJM2dnZygpKTG1ej5+/AgTExMUFBRAV1cXKSkpOHr0KAYPHizV83I1d0jaLly4wGq/nj17VnEkVE3AJimrrq4u7Vmk5AYd0mJB1kuhK5Io8NSpU1izZg3zfO/evXj27BkePXqE5s2bw8XFBatXr8aJEyekFh9XLl++jG3btjHPd+/eDaFQiEePHkFLSwuenp7YsGGD1Bs8NeU7Qe/evSVuK16JyOPxIBQKZRQRVdOxWeFKUbJCGzwsSHs4IyUlBZmZmWXuwzZR4PPnz0VWdp05cwZjx45llqG7u7tLvQHAlfT0dJHhufPnz2PMmDFM79ukSZMqVEiTrdjY2HITO1YHWVlZYl/Py8vDli1b4OfnR5eoUxRVY9EGTzmq4huKNBMF8vl8kWNdvXoVS5YsYZ5ra2tL/KCrblRUVERKIVy9ehUbNmwQ2Z6bm1sl5z179iysra2Z13bv3o1ly5bh06dPGDlyJLZu3VruKi6ulRyWLSoqgkAgwIoVK8Dn87F9+/ZyezMpqhiPx8PHjx+hoqLC3Ldyc3ORk5MDAMx/KUpe0AZPOapiOOPatWtSy+libGyMqKgozJ07F8nJyXj+/DmsrKyY7c+ePSuVZ6W66tixI0JDQ7F27VpcvHgRr169Qp8+fZjtT548QZMmTaR+3uXLl6N3795Mg+fOnTuYPHkynJyc0LZtW2zYsAFNmjTB8uXLpX7uqhIZGQkvLy+8efMGixYtgpubm9w32Cj5QgiBkZGRyHMzMzOR53RIi5IntMFTjqpYCt28eXOpDZHNnz8f9vb2OHHiBJKTkzF48GCmzhcAnDx5ssYsC12yZAkGDx6MiIgIZGRkwMnJCbq6usz2w4cPVziPERuJiYlYtWoV8zw8PBwWFhbw9/cHADRr1gzLli2rFg2e+Ph4eHp64s6dO3B3d4enp2e5E/IpSpzY2FiuQ6CoCqENnnJUxZwQaSquWHzixAkMGDAAbm5uIttrUsViKysr3Lx5E2fPnkXjxo0xbtw4ke2dOnWqksZdVlaWSC9ZfHy8SHXyLl264MWLF1I/r7QNHjwY58+fh7OzM44cOYLGjRtzHRJVjfXq1YvrECiqQuiy9HLw+fxyu2UrsrLFysoKhw8fhra2thSio2RBX18foaGh6NmzJ758+QJtbW1ERUWhb9++AL4NcfXq1Qvv37/nONKy8fl8KCoqQk1Nrcy/aXm/Dqp6SEhIwNKlS3H8+HGuQ6EoALSHp1yRkZESPxyuXLmCrVu3Vmiej7hu4JqaKLCmGDRoEBYuXIh169bhyJEjqFu3Lnr06MFsT0pKgqGhIYcRsiPvvZVU9XP27FmcOXMGSkpK+O2339CyZUvcv38fCxcuRFRUFPr37891iBT1P4SqsHv37pGRI0cSBQUFMnHiRPLs2TPWP+vh4UFmzZrFPP/8+TPp1KkTUVJSIlpaWkRNTY1cuXKlKsKmKun169fk119/JTwej2hoaJDIyEiR7X369CFeXl4cRSddX79+5ToEqpoIDg4mPB6P1K9fn/B4PKKjo0NCQ0OJhoYGcXJyInfu3OE6RIoSQRs8FZCenk5+++03oqSkRIYOHVqpN7SJiQk5evQo81wgEJB69eqRtLQ0UlRURJycnMjgwYOlGTYlJdnZ2UQoFJZ6/d27d+Tz588cRCQ9ycnJZO7cuaRhw4Zch0JVEx07diRr164lhBCyf/9+wuPxSOfOncnjx485joyixCu/fDKFDx8+wNPTE61atUJycjLOnz+PqKgotG/fvsLHKitRII/Hg7u7O27duiXN8Ckp0dLSgoKCQqnXf/rpp2pZwDU3NxcBAQHo2rUrTE1Nce3aNSxcuJDrsKhq4smTJ7C1tQUAjB07FgoKCvDx8akWw7tU7UQbPOVYv349WrZsiePHjyMsLAxXrlwRmb9RUeISBVpaWjLPK5oosLwio0KhENevX694oHLo+vXrIgkZSYm5U58/f0ZERISsw6p2Ll26xCzp9/Pzw40bNxAfH49Lly5hzpw5XIdHVROfPn2CmpoagG/3NRUVFTRr1ozjqChKMrpKqxx8Ph+qqqro16+f2G/3xSIjI1kdz9LSEjY2NkyiQFNTUzx+/JjJnRMfH49JkyYhLS2N1fFqU8XikteqqamJxMREkWKFNeVaq8L69eshEAiQm5sLe3t7ODo6omPHjlBSUsLt27dFeh4pqjwlCyvb29vD19e3VKJTtoWVKaqq0VVa5Zg4caJUs4VKO1Fgyfbqf//9V2qJfE1p05a8DnHXVVOutSp4eXnB09MTK1euLLPxTlFslSxFMnXqVJHn0i6sTFE/gjZ4yhEcHCzV43GRKLA2pXevTddaUStXrkRwcDBCQ0Nhb2+PCRMmVGoeGkUB32qxUVR1Qhs8HOjXrx/69esndtuyZctkHA1VW3h5ecHLywvx8fEQCASwtLSEoaEhCCE1psAsJT8KCwsRFRWFkSNHch0KRQGgDZ5yjR49mtV+bOfwSFttq1ickpKCzMxMAN+Gr+7fv89USH/79i2XoVUbvXr1Qq9evbBt2zbs3bsXQUFB6NWrF8zNzTF27FjMnTuX6xCpauz+/fsQCAQICQlBVlYWvnz5wnVIFAWATloul7OzM6v9uMpiW7L0BSlRobj4eU0YRy++VnF/ssWv15RrrQotW7bEjRs3UL9+/VLb7ty5g8DAQOzbt6/clX8UVdKnT5+wf/9+BAYG4urVq7CysoKdnR1GjhyJBg0acB0eRQGgDZ5qLz4+ntV+NaHQ37Nnz1jtp6+vX8WRVE98Ph+ZmZnMKjdxvn79CiUlJRlGRVVn//zzDwICAhAREYHWrVvDwcEBnp6eSEpKoqv+KLlDGzwUVUuwafBQFFvt2rVDXl4exo8fD0dHR6aBQ9McUPKKzuGRsdevX5f5gSMUCpGQkFChpellqUkVi58/f85qv+IcRFRp38+BksTU1FRG0VDV2ePHj2FnZwcrKyu0bduW63Aoqly0wSNjurq6ZSYKfPfuHbp27VqheSi1pWJxixYtxC47/37eEo/HK5WHiPqfvn370jlQlFSkpqYiODgY06ZNQ35+Puzt7eHg4EBTQ1Byiw5pyVjJYQUNDQ3cvn1bJFuwrq4u6xwXISEhcHZ2xk8//YT379+jQYMG8PHxwfTp0zFmzBjMmzevxuRauX37ttjXCSEIDw+Hn58f1NXV6aRbCfh8Pq5fvw4dHZ0y96NzoKiKiomJgUAgQGRkJAoKCuDh4YHffvsNRkZGXIdGUQza4JExNg2eipRH6NSpE+zs7LBw4UJERETAzs4OZmZmiIiIqBVF/M6dO4eFCxfi4cOHmDt3Ljw8PKCurs51WHKJzuGhqtqHDx+wd+9eCAQCJCQkoH379khKSuI6LIoCQIuHVnu1tWLxzZs30b9/fwwdOhSWlpZ4/Pgxli9fThs7FMUhLS0tTJ8+Hf/++y8SEhLQu3dvrkOiKAZt8MhYcaLAnJwcfPjwQSRRYPGjImpbxeLHjx/D1tYWFhYW0NHRQUpKCrZt20Z7LVjo1asXlJWVuQ6DqiHy8/Nx7NgxfPz4sdS2nJwcPH/+HBs2bOAgMooSj05aljFCiMi4NiEEZmZmIs8rOukvOjqaqVhcVFSE8+fP4+7duyL71ISKxdOnT0dgYCCsrKzw77//olOnTlyHVK3ExsaWeq2goAD79+/Hp0+f0L9/f7Ru3ZqDyKjq6O+//8axY8fE3ls0NTXh5+eHFy9eYMaMGRxER1Gl0Tk8MibtRIF8fvmddDVl5U1xD5axsXGZ+yUkJMgooupl/vz5+PLlC7Zs2QIA+PLlCywsLJCcnIy6detCKBTi7Nmz6Nq1K8eRUtWBubk5lixZgmHDhondfvz4caxcuRLXr1+XcWQUJR7t4ZExaWc8rk0Vi2lh1R9z6tQprFmzhnm+d+9ePHv2DI8ePULz5s3h4uKC1atX48SJExxGSVUXjx49QseOHSVuNzU1xaNHj2QYEUWVjTZ45Iy0EwXWpIrFtMHzY54/fy6S/fbMmTMYO3Ysswzd3d0dgwcP5io8qpoRCoV48+aNxESfb968oTmxKLlCJy1z4OzZs5g/fz68vLzw9OlTAN8qDI8cORJdunSRyk3i/v37WLBgAZo0aQIbG5sfPh5V/fH5fJGkg1evXoWlpSXzXFtbG1lZWVyERlVDJiYmOHfunMTtZ8+ehYmJiQwjoqiy0R4eGSuZKDAgIEAkUeDt27crnShQXMVib2/vGtG7AwBmZmasJnTTOTziGRsbIyoqCnPnzkVycjKeP38OKysrZvuzZ8/QqFEjDiOkqhMXFxfMnTsXJiYmGDp0qMi2qKgorF69Gj4+PhxFR1Gl0QaPjG3evBlr1qwRSRS4efNm3Lp1q9K5c8RVLL527Rr8/PxqVAG/mtJw48r8+fNhb2+PEydOIDk5GYMHD4aBgQGz/eTJk1Kr4UbVfFOmTMGFCxcwfPhwGBsbo02bNuDxeLh37x4ePnwIGxsbTJkyheswKYpBV2nJmIaGBpKSkmBgYICioiLUqVMH586dq/RkZlqxmKqIc+fO4cSJE2jcuDHc3NxQt25dZtuKFSvQq1cvmiyOqpCIiAjs27cPjx49YtJujB8/ng6lU3KHNnhkrLzSEhWlrKwMOzs7TJgwAf369WOGfGpig6egoABnzpyBlZUVNDQ0RLbl5OQgLi4OAwcORJ06dTiKkKIoipJXdEiLA9JMFFibKhb/9ddf5SY6e/78OWbOnMlBdBRFUZQ8oz08MlaViQJresVimuiMoiiKqiza4KmBamrF4nr16uH27dsS8348f/4cHTt2pEurKYqiqFJoHh45U1hYiCNHjvzQMWpqxeLiRGeS0ERnFEVRlCS0wSMnKpsosDZVLKaJzn7M69evy9wuFArpcCDF2pgxY/Du3Tuuw6Ao1miDh0OfPn2CQCBA9+7dYWJigoSEBHh7e+Ply5esj/H3339jy5YtpVYtAf+byBsQECDNsDnj4uKCVatWiS27UZzozMXFhYPIqgddXV2RRk/btm3x/Plz5vm7d+9o4VCKtYyMDJiYmCAqKorrUCiKHULJ3JUrV4iLiwtRV1cnZmZmZOPGjURBQYEkJydX+FhdunQhx44dk7g9KiqKdOnS5UfClSsODg6Ex+ORtm3bkpEjR5JRo0YRY2NjwufziZ2dHdfhyTUej0devXrFPFdXVydPnjxhnmdmZhIej8dFaFQ1VFRURNavX09UVVWJi4sLycnJ4TokiioTnbQsY9JOFFgbJ/LSRGeVU14OqFevXqFJkyaVWiFI1V7379+Hs7MzMjIyMGvWLCgqimY7mTVrFkeRUZQomodHxh4/fgw7OztYWVmhbdu2P3y82lix2MbGhjZuKEpOGBsbY/LkyXB1dcXmzZtFGjw8Ho82eCi5QRs8MibtRIHFE3l//vlnsdtr0kTenJwcVvtpampWcSTVE4/Hw8ePH6GiogJCCHg8HnJzc5nfK9vfL0UVe/XqFX777TdcunQJgYGBmDRpEtchUZREdEiLQ9JIFPj3339j7ty5CA8PF1ux2N7eHj4+PjWiiB+fzy+zYVj8IU6HZMQr+fsr/n2VfE5/fxQb4eHhmDlzJszMzCAQCNCsWTOuQ6KoMtEGjxz40USBjo6O2Ldvn8SKxWFhYVUYvezEx8ez2q+yhVhrOvr7o6RJTU0Nf/75J9zc3LgOhaJYoQ0eOZOYmAiBQAA/P78K/RydyEtRlCw9evQIrVu3lrg9MjISy5cvrxFZ3qmagTZ4ZCw/Px9nz56lFb9/wIcPH3D27FmkpaWBx+PBwMAA/fr1o3N3flBCQgKWLl0qNs8RRYnj7++PM2fOQElJCe7u7rCwsEBMTAzmzZuHBw8eYMKECfjrr7+4DpOivpH9SvjazdfXl/Tp00fi9r59+5Jt27bJMKLqJTQ0lGhpaREejyfy0NbWJuHh4VyHJ/fOnDlDPDw8yKJFi5gcPPfu3SMjRowgfD6fDBw4kOMIqepiw4YNRElJifz888+kbt26pG7dusTb25vUr1+fLF++nLx584brEClKBG3wyFhtSxQoTTdv3iSKiopk0qRJJDExkRQUFJD8/Hxy8+ZNMmHCBKKkpEQSExO5DlNuBQcHEx6PR+rXr094PB7R0dEhoaGhRENDgzg5OZE7d+5wHSJVjRgbG5PAwEBCCCGxsbGEx+ORvn37kqysLG4DoygJ6JCWjNXGRIHS4uzsjNzcXBw4cEDs9rFjx0JTUxMCgUDGkVUPnTp1gp2dHRYuXIiIiAjY2dnBzMwMERERMDQ05Do8qpqpW7cu7t+/z9zL6tSpgwsXLsDCwoLjyChKPFpLS8Zoxe/Ku3z5MqZOnSpxu6urKy5duiTDiKqXJ0+ewNbWFsC3xqGCggJ8fHxoY4eqlIKCAqioqDDPlZWVoaOjw2FEFFU2mnhQxqSdKHDMmDH4+++/Ub9+fWmFKLdevnxZZo4iIyMjpKenyzCi6uXTp09QU1MD8C0nj4qKCs2dQv2QgIAAqKurA/j2ZS44OBgNGjQQ2YdmWqbkBW3wyJiLiwvmzp0LExMTsYkCV69eDR8fH9bHK65Y7O/vj2HDhkk7XLmSl5cn8o2ypDp16qCgoECGEVU/0dHR0NLSAgAUFRXh/PnzuHv3rsg+w4cP5yI0qppp3rw5/P39meeNGzdGaGioyD60tAQlT+gcHg5IM1EgIQQbN27EsmXLYG9vD19f31LL3WsKPp+PkJAQ5gO7pOzsbDg7O9NMwRLw+eWPYNNMyxRF1VS0wcMRaScKrA0Vi+kHNkVVH+/evUNoaChmz57NdSgUBYA2eGqUgIAAuLq6QldXt1TF4qdPn3IYGVUdFBYWIioqCiNHjuQ6FKqaIoTgzJkzCAwMxNGjR6GpqVnmIg2KkiU6h6cGoBWLqR9x//59CAQChISEICsrC1++fOE6JKqaSUtLg0AgQHBwMNLT0+Hg4IATJ07AysqK69AoikGXpVdz4eHhMDExQUFBAZKSkmp0Y2f69OnIzc1lnoeGhoo8z87OxuDBg7kIrdr59OkTBAIBunfvDhMTEyQkJMDb2xsvX77kOjSqmvj8+TPCwsLQt29ftG3bFnfv3oWPjw/4fD4WLlyIfv36QUFBgeswKYpBh7SqudpUsVhBQQEZGRlo2LAhAEBTUxOJiYlo2bIlgG89XU2aNKFzeMrwzz//ICAgABEREWjdujUcHBzg6emJpKQktGvXjuvwqGqkQYMGaNeuHRwdHTFu3DjUq1cPAKCkpITbt2/TvydK7tAenmouMTGxzMZOZGQkTE1NZRhR1SnZNqdt9Ypp164d7O3t0ahRI1y7dg0JCQmYN28eeDwe16FR1VBhYSF4PB54PB7tyaGqBdrgkbExY8bg3bt3Ujte69at4e/vj3HjxmH8+PG4du0aACAmJgZmZmZwdHRE165dpXY+qvp6/PgxevbsCSsrK7Rt25brcKhqLiMjA1OmTEFYWBgaN26MMWPG4PDhw7QBTckt2uCRseJEgVFRUVI53saNGzFjxgykpqbi6NGj6NOnD9asWQMbGxuMHDkSz58/x19//SWVc1HVW2pqKtq0aYNp06ZBT08PHh4euHXrFv2AoipFRUUFDg4OiImJwZ07d9C2bVvMmjULQqEQ3t7eOHv2LB1epuQKncMjY9JOFNi2bVvMnz8fLi4uiIuLQ58+fdCnTx8cPHgQ2tra0gtcDvD5fEyZMgV169YFAGzfvh2Ojo5MIsK8vDz4+/vTmywLMTExEAgEiIyMREFBATw8PPDbb7+VWbqDospTVFSE6OhoBAYGIioqChoaGnj79i3XYVEUANrg4Yy0EgXWporFvXv3ZtUbERsbK4NoaoYPHz5g7969EAgESEhIQPv27ZGUlMR1WFQN8ObNG4SGhmLu3Llch0JRAGiDh1PSSBTI5/ORmZnJrFzS0NDA7du3mZVLFMVWYmIiBAIB/Pz8uA6FoihK6mjiQQ5IO1EgrVhMsZGfn4+zZ8/Cysqq1DBqTk4Onj9/jg0bNnAUHVXdsP1SRbO8U/KC9vDIWHh4OGbOnAkzMzMIBAI0a9bsh47XokWLcod5akppiZUrV7Lab+nSpVUcSfW0ZcsWHDt2DOfPnxe7vV+/fhg1ahRmzJgh48io6ojP50NfXx/jx49nepjFcXd3l2FUFCUZbfDIWG1KFChtfD4fTZo0QcOGDSXm4OHxeEhISJBxZNWDubk5lixZgmHDhondfvz4caxcuRLXr1+XcWRUdRQREYGgoCDExcXB2toaLi4uGDx4MKsivxTFBdrgkbFHjx6hdevWErdHRkZi+fLlUps4WpMqFg8ePBixsbEYOHAgXFxcMGTIEJrwrALq1auH27dvMxPcS3r+/Dk6duyIrKwsGUdGVWfp6ekIDg5GcHAwPn36hIkTJ2Ly5Mll3ucoigu0KS5jskgUSAhBdHQ0bGxs0KRJE3h7e0sjdM6dPHkST58+hYWFBebPnw89PT14enriwYMHXIdWLQiFwjIrV7958wZCoVCGEVE1QdOmTbF48WI8evQIYWFhuHbtGoyNjWnDmZI7tMEjY1WZKDAtLQ1Lly6Fvr4+Bg8eDBUVFZw4cQKZmZlSvgru6OrqYtGiRXjw4AH279+P169fo0uXLujevTvy8/O5Dk+umZiY4Ny5cxK3nz17FiYmJjKMiKopCgoKsGfPHqxYsQLXrl3DuHHjmHxZFCU3CCVTxsbGJDAwkBBCSGxsLOHxeKRv374kKyurUscrKCgg+/btI3369CEqKipk1KhR5MCBA0RRUZEkJydLMXL5k5eXR0JCQoi5uTlRVVUlHz584DokufbXX38RNTU1EhUVVWrbsWPHiJqaGvnrr784iIyqrq5evUp+//13oqmpSczMzMjWrVvJ+/fvuQ6LosSic3hkTNqJAmtjxeJ//vkHAoEAERERMDIygrOzM8aPH1/jMktXBUdHR+zbtw/GxsZo06YNeDwe7t27h4cPH8LGxgZhYWFch0hVEyYmJnj9+jXGjx+PyZMn15gixVTNRfPwyFhBQQFUVFSY58rKytDR0an08WpTxeL169cjKCgI7969g4ODAy5duoQOHTpwHVa1smfPHgwfPhz79u3Dw4cPQQhBmzZtsGLFCtjY2HAdHlWN3Lt3D2pqati9ezdCQ0Ml7vf+/XsZRkVRktEeHhnj8/lYvXo1kyjQ09MT8+fPr3SiwIKCAhw6dAiBgYG4evUqrK2t4ejoCFtbWyQmJtaoHh4+n4/mzZtj6NChUFZWlrifj4+PDKOiqNopJCSE1X4/mliVoqSFNnhkrCoTBT558gRBQUEICQlBeno67O3t4eTkhD59+tSI3h82tbR4PB5iYmJkFBFFURRVXdAGTw1EKxZTFEVRlCja4JEz0k4USCsWUxRVFerVq1dujytA5/BQ8oM2eOQAIQRnzpxBYGAgjh49Ck1NzTITxFEURXGNzuGhqhva4OFQWloaBAIBgoODkZ6eDgcHB0ycOBFWVlas59zQisUUW2PGjMHff/+N+vXrcx0KRVGUzNFl6TL2+fNnREZGIiAgAFeuXIG1tTV8fHxgb2+PhQsXVnhVVVpaGquKxRSVkZEBExMT+Pv7SywgSlHSkpGRAW9vb2zbto3rUCgKAO3hkTlpJwqsTRWLExIS0LlzZ67DqLYIIdi4cSOWLVsGe3t7+Pr6QkNDg+uwqGosJSUFsbGxUFJSgo2NDbS1tfH27Vt4e3tj165dMDAwQEpKCtdhUhQA2uCRuXr16sHU1JTJlaOpqQngxzMj14aKxcrKyliyZAkWL15cIxt0snL//n04OzsjIyMDs2bNgqKiaEcv2xxQVO12/PhxjBkzBl+/fgXwbXjd398fNjY2aN++PebNm4ehQ4dyHCVFfUemhSwokp+fT/bs2UOsrKyIqqoqGT16NImMjCRKSkpSq30VFxdHevfuTfh8fo2qa3PixAmip6dHzM3NyYMHD7gOp1rz9/cnCgoKRE9Pj7Ro0YJ5GBgYcB0aVU1YWlqSWbNmkY8fP5JNmzYRHo9HjIyMSHx8PNehUZRYtMHDocePH5PFixcTPT09wuPxyPjx48mZM2eIUCis1PHy8/NJaGgo05iytbUlBQUFUo6aW9nZ2WTSpElETU2N+Pn5cR1OtZOZmUmGDh1KtLW1SXBwMNfhUNWYlpYW88Xj69evREFBgZw8eZLjqChKMjqkJQd+NFHgtWvXEBgYiP3798PQ0BAuLi5wcHBg5gfVRAcPHoSdnR3U1NRKrWijeT/ECw8Px8yZM2FmZgaBQIBmzZpxHRJVjfH5fGRmZjKLJTQ0NJCYmAhDQ0OOI6Mo8egqLTnA5/NhbW0Na2trJlEgW99XLL548WKtqFh848YNLFmyBEZGRpg3b16pOSiUeJMnT8aff/4JNzc3rkOhaoiUlBRkZmYC+DYp/sGDB/j06ZPIPrXhnkRVD7SHp5rj8/lQU1ODoqJimVlPa0Kvh1AoxLJly7Bx40bMmDEDa9asEak8T5Xt0aNHZU5ij4yMxPLly5GUlCTDqKjqis/ng8fjQdxHSPHrPB4PhYWFHERHUaXRr8YyJu1EgUFBQT8STrXSuXNn5Obm4syZM+jVq1ep7ffu3cOQIUNokkUJWrduDX9/f5w5cwZKSkpwd3eHhYUFYmJiMG/ePDx48AATJkzgOkyqmkhNTeU6BIqqENrDI2N8Pp9VokB3d3cZRlU9/Pbbb/D19YW6urrY7bdv30bnzp3pN0oJNm7cCC8vL5iamuLevXsAgMWLF8PHxwdubm6YMWMGGjRowHGUFEVRVYM2eGSsNiUKlDXa4Clb27ZtMX/+fLi4uCAuLg59+vRBnz59cPDgQWhra3MdHlXN5OXlYf78+Thy5Ai+fv2Kfv36wc/PjzaaKblFGzwckVaiQFqx+H9og6dsdevWxf3799G8eXMAQJ06dXDhwgVYWFhwHBlVHc2fPx87duyAg4MDVFRUEBYWht69e+PAgQNch0ZRYtEGjxyIj4/H8uXLceHCBbx9+7ZCy8lpxeL/oQ2esolbRnz79m3W88oo6nuGhobw9vaGnZ0dAOD69evo3r07CgoKWBc/pihZopOWOVRQUICDBw9CIBDg2rVrGDduHOrWrVuhY9SGhkyx8nqzhEKhDKOpngICApg5UEKhEMHBwaWGIGhpCYqNFy9eoEePHsxzc3NzKCoq4uXLlzTHEyWXaA8PB2SZKLAmVSymvVk/pkWLFuUOf/J4PLrKjWJFQUEBmZmZ0NHRYV7T0NBAUlISDAwMOIyMosSjDR4Z+z5R4OTJk6WSlItWLKYoStaKE6bWqVOHeS0qKgp9+vSBmpoa81pkZCQX4VFUKbTBI2PSThRIKxZT0vLu3TuEhoZi9uzZXIdCVQPOzs6s9qtNucIo+UYbPDIm7WGZrl27wtzcHN7e3vj777/h4eHBJJjr2bPnj4Qqd+iKNOkjhODMmTMIDAzE0aNHoampiTdv3nAdFkVRlNTRBk81p62tjevXr8PIyAhCoRAqKiqIioqCtbU116FJHZ3DIz1paWkQCAQIDg5Geno6HBwcMHHiRFhZWdEVNhRF1Ui0wVPN0YrFFFufP39GZGQkAgICcOXKFVhbW2P8+PGwt7fH7du30a5dO65DpCiKqjJ0WbqMVcWwDK1YTLHRtGlTtGvXDo6Ojjh48CCzKtDe3p7jyCiKoqoebfDImK+vr9SP2bdvX5GKxcWTlGtaxWJpF16tbQoLC8Hj8cDj8eiwFUVRtQ5t8MiYtOeX1KaKxWlpaawKr1LiZWRk4NChQwgMDIS7uzusra3h6OjIqseRoiiquqNzeORMTUoUKG208Kr0PHnyBEFBQQgJCUF6ejrs7e3h5OSEPn360N4fiqJqJNrg4YA0EwXWxorF0iq8SgFFRUWIjo5GYGAgoqKioKGhgbdv33IdFkVRlNTRBo+MSTtRYG2vWPwjhVcpUW/evEFoaCjmzp3LdSgURVFSRxs8MibtRIG1tWLx94VXr169iuHDhyMkJEQkzT1FURRFFaMNHhmTdqJAZWVlpKamomnTpsxrqqqqePjwYY2sWCzLwqs1DV3lRlFUbUZXaclYTk4OtLW1AQCKiopQVVWFkZFRpY9XWFgIZWVlkdcUFRUhFAp/JEy59H3h1YsXL9LcQhVEV7lRFFWb0R4eGePz+YiJicFPP/0EAOjWrRsiIiKgp6cnsh/bD/PaVLFY2oVXaxu6yo2iqNqMNnhkjM/nMwkBS6pMosDaVLGY1tKSDrrKjaKo2og2eGTs2bNnrPbT19ev4khqJqFQCEVFOlLLFl3lRlFUbUE/GWSMNmSqRkpKCgIDA7Fnzx68evWK63Dk3ver3K5du4Zx48ahbt26XIdFURRVZejgvYzl5eVhxowZaNq0KRo2bIjx48fTRG+VlJubi4CAAHTt2hWmpqa4du0aFi5cyHVYcu3atWuYMmUKGjVqBB8fH4wePRrp6ekIDw+nS/opiqrR6JCWjNX2RIHScOnSJQQEBODQoUNMVur4+Hh0796d69Dk2ver3CZPnkxXuVEUVavQBo+M1dZEgdKwfv16CAQC5Obmwt7eHo6OjujYsSOUlJRw+/ZttGvXjusQ5Rpd5UZRVG1G5/DI2IsXL9CjRw/mubm5ORQVFfHy5csamShQmry8vODp6YmVK1fSxmEl1ISVehRFUZVFGzwyVpsSBUrbypUrERwcjNDQUNjb22PChAlo374912FVG3S5PkVRtRkd0pKx2pQosKrEx8dDIBDg0KFDMDQ0RHJyMp3DQ1EURZWJNnhkrDYlCqxqOTk52LdvH4KCgnDz5k2Ym5tj7NixtNq3BPXq1Stz7k4xOoeHoqiaiDZ4qGrj6dOnMDAwEPuhfefOHQQGBmLfvn14/fo1B9HJP5qpmqKo2ow2eKhqQ0FBARkZGUzhS1tbW/j5+aFRo0bMPl+/foWSkhJXIVIURVFyiiYepKqNkm3zkydP4tOnTyKv0cZO5WVkZGDmzJlch0FRFFUl6CotiqpFUlJSEBsbCyUlJdjY2EBbWxtv376Ft7c3du3aBQMDA65DpCiKqhK0h4eqNng8Xqn5O2wm4VLfHD9+HGZmZnBzc4Orqyt++eUXxMbGom3btkhMTMSBAweQkpLCdZgURVFVgs7hoaqNkkv6xS3nB+iSfkm6du0Kc3NzeHt74++//4aHhwdat24Nf39/9OzZk+vwKIqiqhRt8FDVBl3S/2O0tbVx/fp1GBkZQSgUQkVFBVFRUbC2tuY6NIqiqCpHGzwUVUvw+XxkZmYyq9w0NDSQmJgIQ0NDjiOjKIqqenTSMkXVIikpKcjMzATwbdXbgwcPSq10o1XUKYqqiWgPD0XVEnw+Hzwer9TyfgDM6zweD4WFhRxER1EUVbVoDw9F1RKpqalch0BRFMUZ2sNDURRFUVSNR/PwUFQtkZeXhxkzZqBp06Zo2LAhxo8fj7dv33IdFkVRlEzQBg9F1RLLli1DcHAwhgwZAjs7O5w9exbTpk3jOiyKoiiZoENaFFVLGBoawtvbG3Z2dgCA69evo3v37igoKICCggLH0VEURVUt2uChqFpCWVkZqampaNq0KfOaqqoqHj58iGbNmnEYGUVRVNWjQ1oUVUsUFhZCWVlZ5DVFRUUIhUKOIqIoipIduiydomoJQgicnJyYWmQAUFBQAFdXV5F6ZLQWGUVRNRFt8FBULTFp0qRSrzk6OnIQCUVRlOzROTwURVEURdV4dA4PRVEURVE1Hm3wUBRFURRV49EGD0VRFEVRNR5t8FAURVEUVePRBg9FURRFUTUebfBQFEVRFFXj0QYPRVVDTk5O4PF4cHV1LbVt+vTp4PF4cHJykn1gMrR8+XLweDzweDwoKiqiQYMG6NmzJ3x9ffH582euw2OkpaWBx+MhMTGR61AYLVq0gK+vL9dhUJRM0QYPRVVTzZo1Q3h4OPLz85nXCgoKEBYWhubNm3MYmeyYmJggIyMDz58/R2xsLMaNG4e1a9eiW7du+PjxI9fh4cuXL1yHQFHU/6MNHoqqpjp37ozmzZuLlIKIjIxEs2bNYGZmJrIvIQTr169Hy5Ytoaqqio4dO+LgwYPM9qysLDg4OEBHRweqqqpo3bo1goKCAHz70J45cyZ0dXWhoqKCFi1aYO3atczP+vj4oEOHDlBTU0OzZs0wffp05Obmipzf398fzZo1Q926dTFq1Cj4+PhAW1tbZJ+oqCj8/PPPUFFRQcuWLbFixYpy63wpKiqicePGaNKkCTp06AA3NzfEx8fj7t27WLduHbPfly9fsGDBAjRt2hRqamqwsLBAXFwcsz04OBja2to4cuQIjIyMoKKigv79++PFixfMPk+ePMGIESPQqFEjqKuro0uXLjh37pxIPC1atMDq1avh5OQELS0t/P777zAwMAAAmJmZgcfjoXfv3gC+9dKNHDkSa9asQaNGjaCtrc1c8/z58/HTTz9BT08PAoFA5Bzp6emwtbVFvXr1UL9+fYwYMQJpaWnM9uLjbty4Ebq6uqhfvz5mzJiBr1+/AgB69+6NZ8+eYc6cOUwPGUXVBrTBQ1HVmLOzM9MwAQCBQAAXF5dS+/3xxx8ICgrCzp07kZycjDlz5sDR0RHx8fEAgCVLliAlJQWnTp3CvXv3sHPnTjRo0AAA4Ofnh2PHjiEiIgIPHjzAnj170KJFC+bYfD4ffn5+uHv3LkJCQhATE4MFCxYw2y9fvgxXV1e4u7sjMTER/fv3h7e3t0h80dHRcHR0xKxZs5CSkoK//voLwcHBpfZjw9jYGNbW1iINQWdnZ1y+fBnh4eFISkrCuHHjMGjQIDx69IjZJy8vD97e3ggJCcHly5eRk5MDOzs7Zntubi4GDx6Mc+fO4datWxg4cCCGDRuG58+fi5x/w4YNaN++PW7evIklS5bg+vXrAIBz584hIyNDJK6YmBi8fPkSFy5cgI+PD5YvX46hQ4eiXr16uHbtGlxdXeHq6so0vPLy8mBlZQV1dXVcuHABly5dgrq6OgYNGiTSmxQbG4snT54gNjYWISEhCA4ORnBwMIBvjWI9PT2sXLkSGRkZyMjIqPDvmKKqJUJRVLUzadIkMmLECPLmzRtSp04dkpqaStLS0oiKigp58+YNGTFiBJk0aRIhhJDc3FyioqJCrly5InKMyZMnE3t7e0IIIcOGDSPOzs5iz+Xm5kb69OlDioqKWMUWERFB6tevzzy3tbUlQ4YMEdnHwcGBaGlpMc979OhB1qxZI7JPaGgo0dXVlXieZcuWkY4dO4rd5unpSVRVVQkhhDx+/JjweDySnp4usk/fvn3JokWLCCGEBAUFEQDk6tWrzPZ79+4RAOTatWsSY2jXrh3ZunUr81xfX5+MHDlSZJ/U1FQCgNy6dUvk9UmTJhF9fX1SWFjIvNamTRvSo0cP5rlQKCRqamokLCyMEEJIYGAgadOmjci/xefPn4mqqiqJjo4WOa5QKGT2GTduHLG1tRWJc/PmzRKvi6JqIlo8lKKqsQYNGmDIkCEICQkBIQRDhgxhemaKpaSkoKCgAP379xd5/cuXL8zQ17Rp0zBmzBgkJCRgwIABGDlyJLp16wbg2xBJ//790aZNGwwaNAhDhw7FgAEDmOPExsZizZo1SElJQU5ODoRCIQoKCvDp0yeoqanhwYMHGDVqlMi5zc3Ncfz4ceb5zZs3cePGDZEencLCQhQUFCAvLw9169at0O+FEMIM1SQkJIAQAiMjI5F9Pn/+jPr16zPPFRUV8csvvzDPjY2Noa2tjXv37sHc3ByfPn3CihUrcPz4cbx8+RJCoRD5+fmleni+P0Z5TExMwOf/r6O9UaNGaN++PfNcQUEB9evXx+vXrwF8+z09fvwYGhoaIscpKCjAkydPRI6roKDAPNfV1cWdO3dYx0VRNRFt8FBUNefi4oKZM2cCALZv315qe1FREQDgxIkTaNq0qci2OnXqAACsra3x7NkznDhxAufOnUPfvn0xY8YMbNy4EZ07d0ZqaipOnTqFc+fOwcbGBv369cPBgwfx7NkzDB48GK6urli1ahV++uknXLp0CZMnT2bmjHzf+ChGStQsLioqwooVKzB69OhS8auoqFT4d3Lv3j1m7kxRUREUFBRw8+ZNkUYAAKirq4s8Fzefpfi1+fPnIzo6Ghs3bkSrVq2gqqqKsWPHlpqYrKamxjpOJSWlUucS91rxv2FRURF+/vln7N27t9SxdHR0yjxu8TEoqraiDR6Kqua+n78xcODAUtvbtWuHOnXq4Pnz5+jVq5fE4+jo6MDJyQlOTk7o0aMH5s+fj40bNwIANDU1YWtrC1tbW4wdOxaDBg3C+/fv8e+//0IoFGLTpk1MT0VERITIcY2NjZl5LMX+/fdfkeedO3fGgwcP0KpVq4r/Akq4f/8+Tp8+jUWLFgH4Nlm4sLAQr1+/Ro8ePST+nFAoxL///gtzc3MAwIMHD5CdnQ1jY2MAwMWLF+Hk5MT0VuXm5opMFpZEWVkZwLceqx/VuXNn7N+/Hw0bNoSmpmalj6OsrCyVeCiqOqENHoqq5hQUFHDv3j3m/0vS0NCAh4cH5syZg6KiIvz666/IycnBlStXoK6ujkmTJmHp0qX4+eefYWJigs+fP+P48eNo27YtAGDz5s3Q1dVFp06dwOfzceDAATRu3Bja2towNDSEUCjE1q1bMWzYMFy+fBm7du0SOb+bmxt69uwJHx8fDBs2DDExMTh16pRIb8rSpUsxdOhQNGvWDOPGjQOfz0dSUhLu3LmD1atXS7x2oVCIzMxMFBUV4d27d4iLi8Pq1avRqVMnzJ8/HwBgZGQEBwcHTJw4EZs2bYKZmRnevn2LmJgYdOjQAYMHDwbwrVfEzc0Nfn5+UFJSwsyZM2Fpack0gFq1aoXIyEgMGzYMPB4PS5YsYdVr0rBhQ6iqquL06dPQ09ODiooKtLS0yv05cRwcHLBhwwaMGDECK1euhJ6eHp4/f47IyEjMnz8fenp6rI7TokULXLhwAXZ2dqhTp06pYVCKqonoKi2KqgE0NTXL/Ma/atUqLF26FGvXrkXbtm0xcOBAREVFMcM+ysrKWLRoEUxNTdGzZ08oKCggPDwcwLdhn3Xr1uGXX35Bly5dkJaWhpMnT4LP56NTp07w8fHBunXr0L59e+zdu1dkyToAdO/eHbt27YKPjw86duyI06dPY86cOSJDVQMHDsTx48dx9uxZdOnSBZaWlvDx8YG+vn6Z152cnAxdXV00b94cvXv3RkREBBYtWoSLFy+KDFcFBQVh4sSJmDdvHtq0aYPhw4fj2rVraNasGbNP3bp14enpifHjx6Nr165QVVVlfgfAt4ZfvXr10K1bNwwbNgwDBw5E586dy/23UVRUhJ+fH/766y80adIEI0aMKPdnJKlbty4uXLiA5s2bY/To0Wjbti1cXFyQn59foR6flStXIi0tDYaGhiJDYRRVk/FIycF0iqKoKvb777/j/v37uHjxItehAPiWh2f27NnIzs7mOhSKoqoIHdKiKKrKbdy4Ef3794eamhpOnTqFkJAQ7Nixg+uwKIqqRWiDh6KoKnf9+nWsX78eHz9+RMuWLeHn54fffvuN67AoiqpF6JAWRVEURVE1Hp20TFEURVFUjUcbPBRFURRF1Xi0wUNRFEVRVI1HGzwURVEURdV4tMFDURRFUVSNRxs8FEVRFEXVeLTBQ1EURVFUjUcbPBRFURRF1Xj/B2XzTWA3p9StAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "stats = answer_question_paired_data_dedup.groupby(\"Message Department\")[\"Thread ID\"].nunique()\n", + "print(f\"there are {len(stats)} unique department, each with average {np.mean(stats.values)} threads\")\n", + "stats.sort_values(ascending=False)[:50].plot(kind=\"bar\")" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "there are 11 unique specialties, each with average 16609.272727272728 threads\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 292, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAIqCAYAAAAtnuBbAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAh9tJREFUeJzt3Xl4TGf/P/D3ZJV1EiGJEAkiKhLEHlq72EP1qbYhEtROrLU8aqulqF1qqS1US9Wu2hBrBbFFxBIRhFiSUCL2rPfvDz/na0zWImfmPO/Xdc1VOefOzHvSzMwn97kXlRBCgIiIiEiBDOQOQERERPShsNAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWEZyB5BTTk4O7t69CysrK6hUKrnjEBERUSEIIfDkyRM4OTnBwCD/Ppv/6ULn7t27cHZ2ljsGERER/Qu3bt1CuXLl8m3zP13oWFlZAXj1g7K2tpY5DRERERXG48eP4ezsLH2O5+d/utB5fbnK2tqahQ4REZGeKcywEw5GJiIiIsVioUNERESKxUKHiIiIFKvIhc6dO3fQvXt32NnZwdzcHDVr1sSZM2ek80IITJ48GU5OTjAzM0PTpk1x8eJFjftIT0/HkCFDUKpUKVhYWMDPzw+3b9/WaJOamoqAgACo1Wqo1WoEBATg0aNHGm0SExPRsWNHWFhYoFSpUggODkZGRkZRnxIREREpVJEKndTUVDRq1AjGxsb466+/cOnSJcydOxc2NjZSm9mzZ2PevHkICQnBqVOn4OjoiFatWuHJkydSm2HDhmHbtm3YuHEjIiIi8PTpU3To0AHZ2dlSG39/f0RHRyMsLAxhYWGIjo5GQECAdD47Oxvt27fHs2fPEBERgY0bN2LLli0YOXLkO/w4iIiISFFEEYwZM0Z8/PHHeZ7PyckRjo6OYubMmdKxly9fCrVaLZYtWyaEEOLRo0fC2NhYbNy4UWpz584dYWBgIMLCwoQQQly6dEkAEJGRkVKb48ePCwDi8uXLQggh/vzzT2FgYCDu3LkjtdmwYYMwNTUVaWlphXo+aWlpAkCh2xMREZH8ivL5XaQenZ07d6JOnTr4/PPPYW9vD29vb6xYsUI6n5CQgOTkZPj6+krHTE1N0aRJExw7dgwAcObMGWRmZmq0cXJygqenp9Tm+PHjUKvVqF+/vtSmQYMGUKvVGm08PT3h5OQktWndujXS09M1LqW9KT09HY8fP9a4ERERkXIVqdC5fv06li5disqVK2PPnj3o378/goODsW7dOgBAcnIyAMDBwUHj+xwcHKRzycnJMDExga2tbb5t7O3ttR7f3t5eo83bj2NrawsTExOpzdu+//57acyPWq3mqshEREQKV6RCJycnB7Vq1cKMGTPg7e2Nfv36oU+fPli6dKlGu7cX8BFCFLioz9ttcmv/b9q8ady4cUhLS5Nut27dyjcTERER6bciFTplypSBh4eHxrGqVasiMTERAODo6AgAWj0q9+7dk3pfHB0dkZGRgdTU1HzbpKSkaD3+/fv3Ndq8/TipqanIzMzU6ul5zdTUVFoFmashExERKV+RCp1GjRohLi5O49iVK1fg4uICAKhQoQIcHR0RHh4unc/IyMDhw4fRsGFDAEDt2rVhbGys0SYpKQkXLlyQ2vj4+CAtLQ0nT56U2pw4cQJpaWkabS5cuICkpCSpzd69e2FqaoratWsX5WkRERGRUhVllPPJkyeFkZGRmD59uoiPjxe//PKLMDc3F+vXr5fazJw5U6jVarF161Zx/vx58dVXX4kyZcqIx48fS2369+8vypUrJ/bt2yeioqJE8+bNRY0aNURWVpbUpk2bNqJ69eri+PHj4vjx48LLy0t06NBBOp+VlSU8PT1FixYtRFRUlNi3b58oV66cGDx4cKGfD2ddERER6Z+ifH4XqdARQohdu3YJT09PYWpqKj766CPx008/aZzPyckRkyZNEo6OjsLU1FQ0btxYnD9/XqPNixcvxODBg0XJkiWFmZmZ6NChg0hMTNRo8+DBA9GtWzdhZWUlrKysRLdu3URqaqpGm5s3b4r27dsLMzMzUbJkSTF48GDx8uXLQj8XFjpERET6pyif3yohhJC3T0k+jx8/hlqtRlpaGsfrEBER6YmifH5zrysiIiJSLCO5A+gT17G7P9h935jZ/oPdNxER0f8q9ugQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhER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Z/DgwYiJicGGDRu0zqlUKo2vhRBax972dpvc2v+bNm8aN24c0tLSpNutW7fyzURERET67V8VOkOGDMHOnTtx8OBBlCtXTjru6OgIAFo9Kvfu3ZN6XxwdHZGRkYHU1NR826SkpGg97v379zXavP04qampyMzM1Orpec3U1BTW1tYaNyIiIlKuIhU6QggMHjwYW7duxYEDB1ChQgWN8xUqVICjoyPCw8OlYxkZGTh8+DAaNmwIAKhduzaMjY012iQlJeHChQtSGx8fH6SlpeHkyZNSmxMnTiAtLU2jzYULF5CUlCS12bt3L0xNTVG7du2iPC0iIiJSqCLNuho0aBB+/fVX7NixA1ZWVlKPilqthpmZGVQqFYYNG4YZM2agcuXKqFy5MmbMmAFzc3P4+/tLbXv37o2RI0fCzs4OJUuWxKhRo+Dl5SXNwqpatSratGmDPn36YPny5QCAvn37okOHDqhSpQoAwNfXFx4eHggICMAPP/yAhw8fYtSoUejTpw97aoiIiAhAEQudpUuXAgCaNm2qcXzNmjUICgoCAIwePRovXrzAwIEDkZqaivr162Pv3r2wsrKS2s+fPx9GRkbo2rUrXrx4gRYtWiA0NBSGhoZSm19++QXBwcHS7Cw/Pz+EhIRI5w0NDbF7924MHDgQjRo1gpmZGfz9/TFnzpwi/QCIiIhIuYpU6AghCmyjUqkwefJkTJ48Oc82JUqUwOLFi7F48eI825QsWRLr16/P97HKly+PP/74o8BMRERE9L+Je10RERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixirRgIBEpi+vY3R/kfm/MbP9B7peIqKjYo0NERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuF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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "stats = answer_question_paired_data_dedup.groupby(\"Department Specialty Title\")[\"Thread ID\"].nunique()\n", + "print(f\"there are {len(stats)} unique specialties, each with average {np.mean(stats.values)} threads\")\n", + "stats.sort_values(ascending=False)[:50].plot(kind=\"bar\")" + ] + }, + { + "cell_type": "code", + "execution_count": 245, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 245, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "no_outlier = data_sample_sub_cols[data_sample_sub_cols[\"Date Sent\"] != data_sample_sub_cols[\"Date Sent\"].max()]\n", + "plt.bar(no_outlier[\"Date Sent\"].value_counts().index, no_outlier[\"Date Sent\"].value_counts().values)\n", + "#this means messages span only 3 months" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### embedding starts" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def create_embeddings():\n", + " embeddings = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/all-mpnet-base-v2\"\n", + " )\n", + " return embeddings\n", + "embeddings_model = create_embeddings()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create embeddings for all texts\n", + "texts = answer_question_paired_data_dedup[\"Patient Message\"].str.replace(\"<13><10>\", \"\").tolist()\n", + "embeddings = embeddings_model.embed_documents(texts)\n", + "# Save embeddings\n", + "# np.save(\"../data/embeddings.npy\", np.array(embeddings))\n", + "answer_question_paired_data_dedup[\"embeddings\"] = embeddings\n", + "# Make sure the embeddings column is a list of float64 per row\n", + "answer_question_paired_data_dedup[\"embeddings\"] = answer_question_paired_data_dedup[\"embeddings\"].apply(lambda x: [float(val) for val in x])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# dataset_id = \"rag_embedding_R01\"\n", + "# dataset_ref = client.dataset(dataset_id)\n", + "\n", + "# # Create the dataset\n", + "# dataset = bigquery.Dataset(dataset_ref)\n", + "# dataset.location = \"US\" \n", + "\n", + "# client.create_dataset(dataset, exists_ok=True)\n", + "# print(f\"✅ Created dataset: {dataset_id}\")\n", + "\n", + "# upload the embedding with meta data to gcp big query\n", + "table_id = \"som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings\"\n", + "\n", + "schema = [\n", + " bigquery.SchemaField(\"index\", \"INT64\"),\n", + " bigquery.SchemaField(\"Thread ID\", \"INT64\"),\n", + " bigquery.SchemaField(\"Date Sent\", \"TIMESTAMP\"),\n", + " bigquery.SchemaField(\"Subject\", \"STRING\"),\n", + " bigquery.SchemaField(\"Patient Message\", \"STRING\"),\n", + " bigquery.SchemaField(\"Message Sender\", \"STRING\"),\n", + " bigquery.SchemaField(\"Actual Response Sent to Patient\", \"STRING\"),\n", + " bigquery.SchemaField(\"Recipient Names\", \"STRING\"),\n", + " bigquery.SchemaField(\"Recipient IDs\", \"STRING\"),\n", + " bigquery.SchemaField(\"Message Department\", \"STRING\"),\n", + " bigquery.SchemaField(\"Department Specialty Title\", \"STRING\")\n", + "\n", + " bigquery.SchemaField(\"embeddings\", \"FLOAT64\", mode=\"REPEATED\")\n", + " \n", + "]\n", + "\n", + "job_config = bigquery.LoadJobConfig(\n", + " schema=schema,\n", + " write_disposition=\"WRITE_TRUNCATE\",\n", + " clustering_fields=[\"Recipient Names\", \"Message Department\", \"Department Specialty Title\"]\n", + ")\n", + "\n", + "job = client.load_table_from_dataframe(answer_question_paired_data_dedup, table_id, job_config=job_config)\n", + "job.result()\n", + "\n", + "print(\"✅ Upload complete with clustering.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# test query" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "index 341408\n", + "Thread ID 252160980\n", + "Date Sent 2024-12-04 00:00:00\n", + "Subject Scheduling Question\n", + "Patient Message Hi Dr. Martin,<13><10>I hope you're well! <13>...\n", + "Message Sender APOSTOL, JENNY [ S0333370]\n", + "Actual Response Sent to Patient Barbara, <13><10><13><10>No iron needed--the a...\n", + "Recipient Names MARTIN, BETH\n", + "Recipient IDs S0050381\n", + "Message Department HEMATOLOGY\n", + "Department Specialty Title Hematology\n", + "Name: 161352, dtype: object\n" + ] + } + ], + "source": [ + "import requests\n", + "import json\n", + "from dotenv import load_dotenv\n", + "load_dotenv()\n", + "import os\n", + "\n", + "\n", + "my_key = os.getenv(\"HEALTHREX_API_KEY\")\n", + "random_idx = np.random.randint(0, len(answer_question_paired_data_dedup))\n", + "query_message = answer_question_paired_data_dedup.iloc[random_idx][\"Patient Message\"]\n", + "print(answer_question_paired_data_dedup.iloc[random_idx])\n", + "my_question = f\"\"\"You are a patient with similar symptoms to the patient who asked this question: \"{query_message}\"\n", + "\n", + "Please generate a new question that:\n", + "1. Covers similar medical concerns but uses different wording and phrasing\n", + "2. Includes some personal context or specific details that make it feel more natural\n", + "3. May mention different but related symptoms or concerns\n", + "4. Uses a more conversational tone\n", + "\n", + "Your question should sound like it's coming from a different person, not just a rephrasing of the original question. \n", + "Focus on the underlying medical concern but express it in your own words.\"\"\"\n", + "# Common Headers (Used for all models)\n", + "headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'}" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Dr. Martin,\n", + "\n", + "I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?\n", + "\n", + "Thanks so much for your help!\n", + "\n", + "Best, \n", + "Melissa\n" + ] + } + ], + "source": [ + "url = \"https://apim.stanfordhealthcare.org/openai-eastus2/deployments/gpt-4.1/chat/completions?api-version=2025-01-01-preview\" \n", + "payload = json.dumps({\n", + " \"model\": \"gpt-4.1\", \n", + " \"messages\": [{\"role\": \"user\", \"content\": my_question}]\n", + "})\n", + "response = requests.request(\"POST\", url, headers=headers, data=payload)\n", + "message_content = response.json()[\"choices\"][0][\"message\"][\"content\"]\n", + "print(message_content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ------------- strictest filter ---------\n", + "### all receiver, department and specialty exact match" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Query Parameters:\n", + "query_message: Hi Dr. Martin,I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?Thanks so much for your help!Best, Melissa\n", + "receiver: MARTIN, BETH\n", + "department: HEMATOLOGY\n", + "specialty: Hematology\n", + "\n", + "Number of results: 5\n", + "################################################################################################################################################################\n", + "✅ similarity: 0.8124\n", + "Sender: APOSTOL, JENNY [ S0333370] -> the similar message of the whole thread : Hi Dr. Martin,I hope you're well! Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?Thanks!Barbara\n", + "Provider's response to this specific message in the thread: Barbara, No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. Beth \n", + "-----------printing the whole thread-------------\n", + "Thread ID: 252160980\n", + "--------------------------------------------------------------------------------\n", + "idx: 161352\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Martin,\n", + "I hope you're well! \n", + "\n", + "Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?\n", + "\n", + "Thanks!\n", + "Barbara\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Barbara, \n", + "\n", + "No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. \n", + "\n", + "I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "✅ similarity: 0.8013\n", + "Sender: APOSTOL, JENNY [ S0333370] -> the similar message of the whole thread : Hello Dr. Martin,I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.Regards,Thomas Obata\n", + "Provider's response to this specific message in the thread: Mr Obata, I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "-----------printing the whole thread-------------\n", + "Thread ID: 255287111\n", + "--------------------------------------------------------------------------------\n", + "idx: 21428\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Martin,\n", + "\n", + "Thank you, I look forward to your pre-op plan. Please understand that I could be getting the call for a liver match any day, therefore time is of the essence. Thank you in advance for your understanding.\n", + "\n", + "Best regards,\n", + "\n", + "Thomas\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 21427\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "I am listed as top priority and in the number one position on the Stanford liver transplant list. The AVMs in my liver are compromising my heart, hence the top priority position.\n", + "I just visited Question Diagnostics and completed my blood panel.\n", + "Thank you,\n", + "Thomas Obata \n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Got it\n", + "\n", + "I will develop a coag pre op\n", + "Plan for you \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "idx: 21426\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. \n", + "Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.\n", + "\n", + "Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.\n", + "\n", + "Regards,\n", + "Thomas Obata\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Obata, \n", + "\n", + "I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. \n", + "\n", + "I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. \n", + "\n", + "If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. \n", + "\n", + "I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "✅ similarity: 0.7430\n", + "Sender: MONTEZ, ANDREA [ S0285483] -> the similar message of the whole thread : Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?Pat Greene\n", + "Provider's response to this specific message in the thread: Ms Greene, Thanks for letting us know. . I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "-----------printing the whole thread-------------\n", + "Thread ID: 250924952\n", + "--------------------------------------------------------------------------------\n", + "idx: 224536\n", + "Subject: RE:follow up\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?\n", + "\n", + "Pat Greene\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Ms Greene, \n", + "\n", + "Thanks for letting us know. . \n", + "\n", + "I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "✅ similarity: 0.6803\n", + "Sender: APOSTOL, JENNY [ S0333370] -> the similar message of the whole thread : Hello Dr. Martin,I had another blood test taken on Wednesday. Please let me know your assessment and if we need to schedule a follow up appointment. Thank you,Mandeepak Pujji\n", + "Provider's response to this specific message in the thread: Mr Pujji,Your blood counts are a bigImproved , blood cells (“smear” or slide review) still doesn’t provide the answer. Please repeat your cbc diff in 2-3 weeks with a follow up appt , as always, earlier if any new symptoms. Standing orders in. If fever and don’t feel sick or mild infection no fever : weekdays, call in to see if you can be seen in our urgent care. After hours or weekends: go to ER Let us know if questions Beth Martin MD \n", + "-----------printing the whole thread-------------\n", + "Thread ID: 250501446\n", + "--------------------------------------------------------------------------------\n", + "idx: 245872\n", + "Subject: RE: repeat labs\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Elizabeth,\n", + "\n", + "Dev 6 at 8am will be fine. \n", + "\n", + "Thank you,\n", + "Mandeepak Pujji\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "Thank you for replying \n", + "\n", + "Have a nice day!\n", + "----------------------------------------\n", + "idx: 245871\n", + "Subject: RE: repeat labs\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I had another blood test taken on Wednesday. Please let me know your assessment and if we need to schedule a follow up appointment. \n", + "\n", + "Thank you,\n", + "Mandeepak Pujji\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Pujji,\n", + "\n", + "Your blood counts are a big\n", + "Improved , blood cells (“smear” or slide review) still doesn’t provide the answer. \n", + "\n", + "Please repeat your cbc diff in 2-3 weeks with a follow up appt , as always, earlier if any new symptoms. Standing orders in. \n", + "\n", + "If fever and don’t feel sick or mild infection no fever : weekdays, call in to see if you can be seen in our urgent care. After hours or weekends: go to ER \n", + "\n", + "Let us know if questions \n", + "\n", + "Beth Martin MD \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "✅ similarity: 0.6622\n", + "Sender: APOSTOL, JENNY [ S0333370] -> the similar message of the whole thread : Thank you, Dr. Martin. I’m actually feeling okay and was pretty surprised that hemoglobin was so low again. I haven’t had the symptoms from before: intense nightly chills and feeling cold and feeling tired and out of breath, etc. The only thing I notice is my heart rate has ticked up again, but I was thinking it was due to reducing prednisone to 5mg on Monday.I am still going to Pilates this morning; the weather has been so dreary and wet that I haven’t felt like walking outside. Leo is also very unexcited.\n", + "Provider's response to this specific message in the thread: That's a relief. Symptoms are key issue on urgency, of course. Let's not jump through the hoops of another type and screen this weekend: If you notice more symptoms, to repeat it and hct on Tuesday as a just in case , to plan a transfusion for next Friday Otherwise , repeat your labs the following Monday or Tuesday, with transfusion in 2 weeks on a Friday if you're declining further Keep the jakafi taper going Leo looks pretty svelt and perky to me Beth Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "-----------printing the whole thread-------------\n", + "Thread ID: 254273588\n", + "--------------------------------------------------------------------------------\n", + "idx: 70653\n", + "Subject: RE: anemia\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am confused by this message. I am scheduled for a transfusion tomorrow, which is fine with me. Exercising is pretty difficult, so I’m definitely low energy, and the heart rate is what concerns me the most. \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70652\n", + "Subject: RE: anemia\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Dr. Martin. I’m actually feeling okay and was pretty surprised that hemoglobin was so low again. I haven’t had the symptoms from before: intense nightly chills and feeling cold and feeling tired and out of breath, etc. The only thing I notice is my heart rate has ticked up again, but I was thinking it was due to reducing prednisone to 5mg on Monday.\n", + "\n", + "I am still going to Pilates this morning; the weather has been so dreary and wet that I haven’t felt like walking outside. Leo is also very unexcited.\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "That's a relief. Symptoms are key issue on urgency, of course. \n", + "\n", + "Let's not jump through the hoops of another type and screen this weekend: \n", + "\n", + "If you notice more symptoms, to repeat it and hct on Tuesday as a just in case , to plan a transfusion for next Friday \n", + "\n", + "Otherwise , repeat your labs the following Monday or Tuesday, with transfusion in 2 weeks on a Friday if you're declining further \n", + "\n", + "Keep the jakafi taper going \n", + "\n", + "Leo looks pretty svelt and perky to me \n", + "\n", + "Beth \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n" + ] + } + ], + "source": [ + "from google.cloud import bigquery\n", + "\n", + "query_message = message_content.replace(\"\\n\", \"\")\n", + "query_vector_literal = query_embedding_func(query_message, embeddings_model)\n", + "# query_vector = answer_question_paired_data_dedup.iloc[0][\"embeddings\"]\n", + "# Format the vector for BigQuery SQL\n", + "# query_vector_literal = str(query_vector).replace(\"[\", \"ARRAY[\").replace(\"]\", \"]\")\n", + "\n", + "# Filter criteria \n", + "receiver = answer_question_paired_data_dedup.iloc[random_idx][\"Recipient Names\"]\n", + "department = answer_question_paired_data_dedup.iloc[random_idx][\"Message Department\"]\n", + "specialty = answer_question_paired_data_dedup.iloc[random_idx]['Department Specialty Title']\n", + "\n", + "query = f\"\"\"\n", + "WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + ")\n", + "\n", + "SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + "FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings` AS t,\n", + " input_embedding\n", + "WHERE\n", + " t.`Recipient Names` = @receiver\n", + " AND t.`Message Department` = @department\n", + " AND t.`Department Specialty Title` = @specialty\n", + "ORDER BY cosine_similarity DESC\n", + "LIMIT 5\n", + "\"\"\"\n", + "\n", + "job = client.query(\n", + " query,\n", + " job_config=bigquery.QueryJobConfig(\n", + " query_parameters=[\n", + " bigquery.ScalarQueryParameter(\"receiver\", \"STRING\", receiver),\n", + " bigquery.ScalarQueryParameter(\"department\", \"STRING\", department),\n", + " bigquery.ScalarQueryParameter(\"specialty\", \"STRING\", specialty)\n", + " ]\n", + " )\n", + ")\n", + "# Show results\n", + "# print(f\"the input message {answer_question_paired_data_dedup.iloc[0][\"Patient Message\"]}\")\n", + "\n", + "# Debug: Print the query parameters\n", + "print(\"Query Parameters:\")\n", + "print(f\"query_message: {query_message}\")\n", + "print(f\"receiver: {receiver}\")\n", + "print(f\"department: {department}\")\n", + "print(f\"specialty: {specialty}\")\n", + "\n", + "# Debug: Try to get results\n", + "try:\n", + " results = list(job.result())\n", + " print(f\"\\nNumber of results: {len(results)}\")\n", + " \n", + " if len(results) > 0:\n", + " for row in results:\n", + " print(\"##\" * 80)\n", + " print(f\"✅ similarity: {row['cosine_similarity']:.4f}\")\n", + " print(f\"Sender: {row['Message Sender']} -> the similar message of the whole thread : {row['Patient Message']}\")\n", + " print(f\"Provider's response to this specific message in the thread: {row['Actual Response Sent to Patient']}\")\n", + " print(\"-----------printing the whole thread-------------\")\n", + " beatiful_print_thread(row[\"Thread ID\"], answer_question_paired_data_dedup)\n", + " print(\"##\" * 80)\n", + " else:\n", + " print(\"No results found matching the criteria\")\n", + "except Exception as e:\n", + " print(f\"Error getting results: {str(e)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## -----------Tiered Retrieval-----------" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "from google.cloud import bigquery\n", + "\n", + "def run_query_bq(filter_field, filter_value, query_vector_literal, client, N, similarity_cutoff=0.7, exclude_threads=None):\n", + " exclude_clause = \"\"\n", + " params = [\n", + " bigquery.ScalarQueryParameter(\"filter_value\", \"STRING\", filter_value),\n", + " bigquery.ScalarQueryParameter(\"similarity_cutoff\", \"FLOAT64\", similarity_cutoff),\n", + " bigquery.ScalarQueryParameter(\"N\", \"INT64\", N)\n", + " ]\n", + " if exclude_threads and len(exclude_threads) > 0:\n", + " # FIX: Cast to int and use INT64 type\n", + " exclude_threads = [int(x) for x in exclude_threads]\n", + " exclude_clause = \"AND t.`Thread ID` NOT IN UNNEST(@exclude_threads)\"\n", + " params.append(bigquery.ArrayQueryParameter(\"exclude_threads\", \"INT64\", exclude_threads))\n", + " \n", + " base_query = f\"\"\"\n", + " WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + " ),\n", + " scored_messages AS (\n", + " SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + " FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings` AS t, input_embedding\n", + " WHERE t.`{filter_field}` = @filter_value\n", + " {exclude_clause}\n", + " )\n", + " SELECT *\n", + " FROM scored_messages\n", + " WHERE cosine_similarity >= @similarity_cutoff\n", + " ORDER BY cosine_similarity DESC\n", + " LIMIT @N\n", + " \"\"\"\n", + "\n", + " job = client.query(\n", + " base_query,\n", + " job_config=bigquery.QueryJobConfig(query_parameters=params)\n", + " )\n", + " return list(job.result())\n", + "\n", + "\n", + "def run_tiered_retrieval(query_vector_literal, receiver, department, specialty, client, target_N=5, similarity_cutoff=0.7):\n", + " all_results = []\n", + "\n", + " # 1. Sender Level\n", + " results = run_query_bq(\n", + " filter_field=\"Recipient Names\", filter_value=receiver,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N,\n", + " similarity_cutoff=similarity_cutoff\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"sender\"} for r in results])\n", + "\n", + " # 2. Department Level\n", + " if len(all_results) < target_N:\n", + " exclude_threads = [int(r[\"Thread ID\"]) for r in all_results]\n", + " results = run_query_bq(\n", + " filter_field=\"Message Department\", filter_value=department,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N - len(all_results),\n", + " similarity_cutoff=similarity_cutoff,\n", + " exclude_threads=exclude_threads\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"department\"} for r in results])\n", + "\n", + " # 3. Specialty Level\n", + " if len(all_results) < target_N:\n", + " exclude_threads = [int(r[\"Thread ID\"]) for r in all_results]\n", + " results = run_query_bq(\n", + " filter_field=\"Department Specialty Title\", filter_value=specialty,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N - len(all_results),\n", + " similarity_cutoff=similarity_cutoff,\n", + " exclude_threads=exclude_threads\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"specialty\"} for r in results])\n", + "\n", + " return all_results[:target_N]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Query Parameters:\n", + "query_message: Hi Dr. Martin,I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?Thanks so much for your help!Best, Melissa\n", + "receiver: MARTIN, BETH\n", + "department: HEMATOLOGY\n", + "specialty: Hematology\n", + "\n", + "Number of results: 10\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8124\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hi Dr. Martin,I hope you're well! Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?Thanks!Barbara\n", + "➡️ Provider's response to this specific message is: Barbara, No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. Beth \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 252160980\n", + "--------------------------------------------------------------------------------\n", + "idx: 161352\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Martin,\n", + "I hope you're well! \n", + "\n", + "Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?\n", + "\n", + "Thanks!\n", + "Barbara\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Barbara, \n", + "\n", + "No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. \n", + "\n", + "I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8013\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hello Dr. Martin,I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.Regards,Thomas Obata\n", + "➡️ Provider's response to this specific message is: Mr Obata, I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255287111\n", + "--------------------------------------------------------------------------------\n", + "idx: 21428\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Martin,\n", + "\n", + "Thank you, I look forward to your pre-op plan. Please understand that I could be getting the call for a liver match any day, therefore time is of the essence. Thank you in advance for your understanding.\n", + "\n", + "Best regards,\n", + "\n", + "Thomas\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 21427\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "I am listed as top priority and in the number one position on the Stanford liver transplant list. The AVMs in my liver are compromising my heart, hence the top priority position.\n", + "I just visited Question Diagnostics and completed my blood panel.\n", + "Thank you,\n", + "Thomas Obata \n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Got it\n", + "\n", + "I will develop a coag pre op\n", + "Plan for you \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "idx: 21426\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. \n", + "Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.\n", + "\n", + "Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.\n", + "\n", + "Regards,\n", + "Thomas Obata\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Obata, \n", + "\n", + "I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. \n", + "\n", + "I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. \n", + "\n", + "If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. \n", + "\n", + "I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.7430\n", + "➡️ Message by Sender MONTEZ, ANDREA [ S0285483]: Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?Pat Greene\n", + "➡️ Provider's response to this specific message is: Ms Greene, Thanks for letting us know. . I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 250924952\n", + "--------------------------------------------------------------------------------\n", + "idx: 224536\n", + "Subject: RE:follow up\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?\n", + "\n", + "Pat Greene\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Ms Greene, \n", + "\n", + "Thanks for letting us know. . \n", + "\n", + "I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8480\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hello Dr Martin Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. Thank you for your time Laura Gonzalez \n", + "➡️ Provider's response to this specific message is: Hello Laura,What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.Thank you.Jenny, RNBlake Wilbur Lab900 Blake Wilbur Drive1st Floor, Room W1083Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Cancer Center Lab875 Blake Wilbur DriveRoom CC-1104Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Hoover Lab211 Quarry RoadSuite 101Palo Alto, CA 94304Hours: Mon-Fri 7:00am -7:00pm Boswell Lab300 Pasteur DrivePavilion A, Level 1, A12Stanford, CA 94305Hours: Mon-Fri 6:00am -5:30pmSat-Sun 7:00am-3:30pm Redwood City440 Broadway Street, Pavillion B 1st Floor B11Redwood City, California 94063Hours: Monday - Friday 7am - 6pm Blood Draw at Stanford Cancer Center South Bay2589 Samaritan Drive4th Floor, San Jose, CA 95124 Hours: Mon-Fri 7:00am-6:00pm Blood Draw at Stanford Emeryville5800 Hollis StreetFirst Floor, Pavilion BEmeryville, CA 94608Hours: Mon-Fri 7:30am-5:00pm\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255116564\n", + "--------------------------------------------------------------------------------\n", + "idx: 28794\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Shortness of breath when walking short distances. Also is it possible to send the orders closer to home I have a quest here in Fremont \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "I have placed lab orders for you at Quest. Please let us know once you've done the labs so we know to look for results. We do not get automatic alerts for outside results. If your symptoms should worsen please be evaluated by urgent care, ER, or call for a sick call appt. Thank you and take care.\n", + "\n", + "Jenny, RN \n", + "----------------------------------------\n", + "idx: 28793\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Martin \n", + "Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. \n", + "Thank you for your time \n", + "Laura Gonzalez \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8438\n", + "➡️ Message by Sender ZAMORA, ESMERALDA [ S0352882]: Hi Dr.Berube, I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. Thanks! Brianna \n", + "➡️ Provider's response to this specific message is: Hi Brianna, You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.Key Takeaway:Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.Understanding Your Condition:Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.Current Treatment:You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.Avoiding Iron Supplements:Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.Additional Nutritional Guidance:While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.When to Seek Help:If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.If you have any additional questions, feel free to ask!Thanks, J Ryan, MSN, RNNurse Coordinator, Hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255261295\n", + "--------------------------------------------------------------------------------\n", + "idx: 22548\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Berube, \n", + "\n", + "I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?\n", + "I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. \n", + "\n", + "Thanks! \n", + "Brianna \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Brianna, \n", + "\n", + "You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.\n", + "\n", + "Key Takeaway:\n", + "Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.\n", + "\n", + "Understanding Your Condition:\n", + "Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.\n", + "Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.\n", + "\n", + "Current Treatment:\n", + "You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. \n", + "\n", + "Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.\n", + "\n", + "Avoiding Iron Supplements:\n", + "Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.\n", + "Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.\n", + "\n", + "Additional Nutritional Guidance:\n", + "While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.\n", + "\n", + "When to Seek Help:\n", + "If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.\n", + "\n", + "If you have any additional questions, feel free to ask!\n", + "\n", + "Thanks, \n", + "J Ryan, MSN, RN\n", + "Nurse Coordinator, Hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8340\n", + "➡️ Message by Sender GO, LACRISHA [ S0203400]: Hi Dr Brar ,Happy holidays ! I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . Thank you \n", + "➡️ Provider's response to this specific message is: Hi ReginaI saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawnThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253687511\n", + "--------------------------------------------------------------------------------\n", + "idx: 96155\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Chi , \n", + "I think Dr Brar has standing blood orders for me to check every so often can you order them or do you still want me to ask my PCP . \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 96154\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar ,\n", + "\n", + "Happy holidays ! \n", + "I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . \n", + "Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by HOANG, CHI:\n", + "Hi Regina\n", + "\n", + "I saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawn\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8236\n", + "➡️ Message by Sender MONTEZ, ANDREA [ S0285483]: Hi all,Hope you are doing well!Two quick questions -1. Dr. Berube had me complete a few labs but I haven't heard any follow up. Can you confirm if there is anything she wants me to be aware of with the results? 2. I had my last iron infusion 4 weeks ago - are there labs I should be doing to check on my iron levels?Thank you!Amanda \n", + "➡️ Provider's response to this specific message is: Hi Amanda,I believe Dr. Berube has reviewed your labs, she is currently out of town but when she returns I will make sure to see if she any additional instructions. I have placed repeat labs for you to get done 6-8 weeks after your last venofer infusion, which should be around beginning of January.Best,Sharon Lee, BSN, RNNurse coordinator, hematology \n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253812916\n", + "--------------------------------------------------------------------------------\n", + "idx: 90355\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Berube,\n", + "\n", + "Thank you for the response and well wishes! \n", + "\n", + "Best,\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 90354\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sharon,\n", + "\n", + "Happy New Year!\n", + "\n", + "Can you please pass along this note to Dr.Berube? Thank you!\n", + "\n", + "My egg retrieval procedure is scheduled for January 29th and I have Desmopressin spray to use before the procedure. Does she still feel comfortable with the treatment plan after reviewing the most recent lab work (below)?\n", + "\n", + "11/07/2024<9>Fibrinogen<9>\n", + "11/07/2024<9>Thrombin Time<9>\n", + "11/07/2024<9>CBC w/o Diff<9>\n", + "11/07/2024<9>Factor Vlll Assay<9>\n", + "11/07/2024<9>Von Willebrand Factor Activity<9>\n", + "11/07/2024<9>Von Willebrand Ag<9>\n", + "\n", + "Thanks!\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by BERUBE, CAROLINE:\n", + "Hi Amanda,\n", + "\n", + "I reviewed your results. No new issue. I continue to recommend Desmopressin nasal spray prior to your egg retrieval as outlined in my last clinic note. \n", + "Good luck with your egg retrieval!\n", + "\n", + "Sincerely,\n", + "Caroline Berube, MD\n", + "\n", + "----------------------------------------\n", + "idx: 90353\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks, Sharon! When will she be back?\n", + "\n", + "Thanks,\n", + "Amanda\n", + "----------------------------------------\n", + "Provider Response by LEE, SHARON:\n", + "Hi Amanda,\n", + "\n", + "No problem, she will be back about a week and a half.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology\n", + "\n", + "----------------------------------------\n", + "idx: 90352\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi all,\n", + "\n", + "Hope you are doing well!\n", + "\n", + "Two quick questions -\n", + "\n", + "1. Dr. Berube had me complete a few labs but I haven't heard any follow up. Can you confirm if there is anything she wants me to be aware of with the results? \n", + "\n", + "2. I had my last iron infusion 4 weeks ago - are there labs I should be doing to check on my iron levels?\n", + "\n", + "Thank you!\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Amanda,\n", + "\n", + "I believe Dr. Berube has reviewed your labs, she is currently out of town but when she returns I will make sure to see if she any additional instructions. I have placed repeat labs for you to get done 6-8 weeks after your last venofer infusion, which should be around beginning of January.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8157\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hi Dr Brar,I hope you're having a great holiday season. As we had discussed in our last appointment, I consulted with a gastro (Dr Nguyen) and had a colonoscopy + endoscopy. That procedure did not find anything unusual, and while Dr Nguyen says that there are further steps we could take to investigate possible issues with my iron absorption (\"a specific type of CT scan to evaluate for possible small intestinal problems followed by a possible video capsule endoscopy to take pictures of your small intestine\"), I know that we had discussed trying an iron infusion if the colonoscopy did not find anything conclusive. I think that's the approach I would prefer since it would presumably reveal a potential bone marrow issue (if my blood counts stay low) or higher iron/blood counts don't change how I feel (in which case I don't see any reason to keep investigating unless my current levels are otherwise concerning in and of themselves).Does that seem reasonable to you?Thank you,Isaiah \n", + "➡️ Provider's response to this specific message is: Hi IsaiahDr Brar mentioned previously that IV iron was not needed at this time but can consider it if there's a drop in labs. He would like for you to repeat labs in April and we can go from thereI will also let him know of your message. Thanks for the updateThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 254403764\n", + "--------------------------------------------------------------------------------\n", + "idx: 64479\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,\n", + "\n", + "Unless Dr Brar would advise against it, I would like to try the iron injection for those reasons (I.e. to see if it helps energy levels or, on the other side, shows that my blood counts don’t improve and therefore we might need to check marrow). \n", + "\n", + "Thanks,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 64478\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok. I thought we had discussed an iron infusion as the next step after the colonoscopy, but maybe I’m misremembering. \n", + "\n", + "Thanks,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 64477\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar,\n", + "\n", + "I hope you're having a great holiday season. As we had discussed in our last appointment, I consulted with a gastro (Dr Nguyen) and had a colonoscopy + endoscopy. That procedure did not find anything unusual, and while Dr Nguyen says that there are further steps we could take to investigate possible issues with my iron absorption (\"a specific type of CT scan to evaluate for possible small intestinal problems followed by a possible video capsule endoscopy to take pictures of your small intestine\"), I know that we had discussed trying an iron infusion if the colonoscopy did not find anything conclusive. I think that's the approach I would prefer since it would presumably reveal a potential bone marrow issue (if my blood counts stay low) or higher iron/blood counts don't change how I feel (in which case I don't see any reason to keep investigating unless my current levels are otherwise concerning in and of themselves).\n", + "\n", + "Does that seem reasonable to you?\n", + "\n", + "Thank you,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Isaiah\n", + "\n", + "Dr Brar mentioned previously that IV iron was not needed at this time but can consider it if there's a drop in labs. He would like for you to repeat labs in April and we can go from there\n", + "I will also let him know of your message. Thanks for the update\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "idx: 64476\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok, thank you. Is any fasting necessary?\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "Non fasting\n", + "\n", + "Thanks\n", + "Andrea M\n", + "\n", + "----------------------------------------\n", + "idx: 64475\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,\n", + "\n", + "Just following up on this to see what Dr Brar thinks. \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by APOSTOL, JENNY,:\n", + "Hello Isaiah,\n", + "\n", + "We would be happy to set you up for IV iron. Since your last labs are 3 months old (from October), please first obtain an updated CBC/d and ferritin lab. You have orders in place and can go to any of our Stanford lab locations. If you remain in the same range as prior, we will then set up a single dose of IV iron. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8119\n", + "➡️ Message by Sender DIEP, ROBERT [ S0328143]: Hello,Should I be getting an Iron infusion soon while we are waiting for my bone marrow biopsy/copper? My HGB is steadily dropping again. Platelets are also dropping and I don’t know why. Dr Muppidi stopped my Imuran 10 days ago to see if that would give some clarification. Also wanted to mention that I have a lot of fluid retention and painful cramping all over. If we do iron infusion just a reminder that I need a different kind because of the reaction I had the first time.Thank you,Jason\n", + "➡️ Provider's response to this specific message is: Hi Jason,Dr Diep has ordered you an IV iron infusion, iron sucrose. (Your received iron dextran previously.) Our infusion team will be reaching out to get this scheduled as well as postpone your bone marrow biopsy by 4-6 weeks to allow optimal time for absorption of the increased TPN copper and the IV iron.Please reach out with any questions,Amy MooreRN Coordinator, HematologyIron Sucrose Injection (IRON SUCROSE - INJECTION)For anemia.Brand Name(s): VenoferGeneric Name: Iron SucroseInstructionsThis medicine is given as an IV injection into a vein.Read and make sure you understand the instructions for measuring your dose and using the syringe before using this medicine.Always inspect the medicine before using.The liquid should be clear and dark brown.Do not use the medicine if it contains any particles or if it has changed color.Keep medicine at room temperature. Protect from light.Speak with your nurse or pharmacist about how long the medicine can be stored safely at room temperature or in the refrigerator before it needs to be discarded.Never use any medicine that has expired.Discard any remaining medicine after your dose is given.If you miss a dose, contact your doctor for instructions.Drug interactions can change how medicines work or increase risk for side effects. Tell your health care providers about all medicines taken. Include prescription and over-the-counter medicines, vitamins, and herbal medicines. Speak with your doctor or pharmacist before starting or stopping any medicine.It is very important that you follow your doctor's instructions for all blood tests.CautionsDuring pregnancy, this medicine should be used only when clearly needed. Talk to your doctor about the risks and benefits.Tell your doctor and pharmacist if you ever had an allergic reaction to a medicine.Do not use the medication any more than instructed.This medicine may cause dizziness or fainting. Do not stand or sit up quickly.This medicine passes into breast milk. Ask your doctor before breastfeeding.Ask your pharmacist how to properly throw away used needles or syringes.Do not share this medicine with anyone who has not been prescribed this medicine.Side EffectsThe following is a list of some common side effects from this medicine. Please speak with your doctor about what you should do if you experience these or other side effects.constipation or diarrheadizzinessswelling of the legs, feet, and handsmuscle crampsnausea and vomitingchanges in taste or unpleasant tasteCall your doctor or get medical help right away if you notice any of these more serious side effects:chest painfaintingsevere or persistent headachefast or irregular heart beatssevere stomach or bowel painblurring or changes of visionA few people may have an allergic reaction to this medicine. Symptoms can include difficulty breathing, skin rash, itching, swelling, or severe dizziness. If you notice any of these symptoms, seek medical help quickly.Please speak with your doctor, nurse, or pharmacist if you have any questions about this medicine.IMPORTANT NOTE: This document tells you briefly how to take your medicine, but it does not tell you all there is to know about it. Your doctor or pharmacist may give you other documents about your medicine. Please talk to them if you have any questions. Always follow their advice.There is a more complete description of this medicine available in English. Scan this code on your smartphone or tablet or use the web address below. You can also ask your pharmacist for a printout. If you have any questions, please ask your pharmacist.The display and use of this drug information is subject to Terms of Use.More information about IRON SUCROSE - INJECTION Copyright(c) 2024 First Databank, Inc.Selected from data included with permission and copyright by First DataBank, Inc. This copyrighted material has been downloaded from a licensed data provider and is not for distribution, except as may be authorized by the applicable terms of use.Conditions of Use: The information in this database is intended to supplement, not substitute for the expertise and judgment of healthcare professionals. The information is not intended to cover all possible uses, directions, precautions, drug interactions or adverse effects nor should it be construed to indicate that use of a particular drug is safe, appropriate or effective for you or anyone else. A healthcare professional should be consulted before taking any drug, changing any diet or commencing or discontinuing any course of treatment. The display and use of this drug information is subject to express Terms of Use.Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 254855364\n", + "--------------------------------------------------------------------------------\n", + "idx: 41220\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,\n", + "Should I be getting an Iron infusion soon while we are waiting for my bone marrow biopsy/copper? My HGB is steadily dropping again. Platelets are also dropping and I don’t know why. Dr Muppidi stopped my Imuran 10 days ago to see if that would give some clarification. Also wanted to mention that I have a lot of fluid retention and painful cramping all over. \n", + "\n", + "If we do iron infusion just a reminder that I need a different kind because of the reaction I had the first time.\n", + "\n", + "Thank you,\n", + "Jason\n", + "----------------------------------------\n", + "Provider Response by MOORE, AMY:\n", + "Hi Jason,\n", + "\n", + "Dr Diep has ordered you an IV iron infusion, iron sucrose. (Your received iron dextran previously.) Our infusion team will be reaching out to get this scheduled as well as postpone your bone marrow biopsy by 4-6 weeks to allow optimal time for absorption of the increased TPN copper and the IV iron.\n", + "\n", + "Please reach out with any questions,\n", + "\n", + "Amy Moore\n", + "RN Coordinator, Hematology\n", + "\n", + "Iron Sucrose Injection (IRON SUCROSE - INJECTION)\n", + "For anemia.\n", + "Brand Name(s): Venofer\n", + "Generic Name: Iron Sucrose\n", + "Instructions\n", + "This medicine is given as an IV injection into a vein.\n", + "Read and make sure you understand the instructions for measuring your dose and using the syringe before using this medicine.\n", + "Always inspect the medicine before using.\n", + "The liquid should be clear and dark brown.\n", + "Do not use the medicine if it contains any particles or if it has changed color.\n", + "Keep medicine at room temperature. Protect from light.\n", + "Speak with your nurse or pharmacist about how long the medicine can be stored safely at room temperature or in the refrigerator before it needs to be discarded.\n", + "Never use any medicine that has expired.\n", + "Discard any remaining medicine after your dose is given.\n", + "If you miss a dose, contact your doctor for instructions.\n", + "Drug interactions can change how medicines work or increase risk for side effects. Tell your health care providers about all medicines taken. Include prescription and over-the-counter medicines, vitamins, and herbal medicines. Speak with your doctor or pharmacist before starting or stopping any medicine.\n", + "It is very important that you follow your doctor's instructions for all blood tests.\n", + "Cautions\n", + "During pregnancy, this medicine should be used only when clearly needed. Talk to your doctor about the risks and benefits.\n", + "Tell your doctor and pharmacist if you ever had an allergic reaction to a medicine.\n", + "Do not use the medication any more than instructed.\n", + "This medicine may cause dizziness or fainting. Do not stand or sit up quickly.\n", + "This medicine passes into breast milk. Ask your doctor before breastfeeding.\n", + "Ask your pharmacist how to properly throw away used needles or syringes.\n", + "Do not share this medicine with anyone who has not been prescribed this medicine.\n", + "Side Effects\n", + "The following is a list of some common side effects from this medicine. Please speak with your doctor about what you should do if you experience these or other side effects.\n", + "constipation or diarrhea\n", + "dizziness\n", + "swelling of the legs, feet, and hands\n", + "muscle cramps\n", + "nausea and vomiting\n", + "changes in taste or unpleasant taste\n", + "Call your doctor or get medical help right away if you notice any of these more serious side effects:\n", + "chest pain\n", + "fainting\n", + "severe or persistent headache\n", + "fast or irregular heart beats\n", + "severe stomach or bowel pain\n", + "blurring or changes of vision\n", + "A few people may have an allergic reaction to this medicine. Symptoms can include difficulty breathing, skin rash, itching, swelling, or severe dizziness. If you notice any of these symptoms, seek medical help quickly.\n", + "Please speak with your doctor, nurse, or pharmacist if you have any questions about this medicine.\n", + "IMPORTANT NOTE: This document tells you briefly how to take your medicine, but it does not tell you all there is to know about it. Your doctor or pharmacist may give you other documents about your medicine. Please talk to them if you have any questions. Always follow their advice.\n", + "There is a more complete description of this medicine available in English. Scan this code on your smartphone or tablet or use the web address below. You can also ask your pharmacist for a printout. If you have any questions, please ask your pharmacist.\n", + "The display and use of this drug information is subject to Terms of Use.\n", + "More information about IRON SUCROSE - INJECTION \n", + " \n", + "Copyright(c) 2024 First Databank, Inc.\n", + "Selected from data included with permission and copyright by First DataBank, Inc. This copyrighted material has been downloaded from a licensed data provider and is not for distribution, except as may be authorized by the applicable terms of use.\n", + "Conditions of Use: The information in this database is intended to supplement, not substitute for the expertise and judgment of healthcare professionals. The information is not intended to cover all possible uses, directions, precautions, drug interactions or adverse effects nor should it be construed to indicate that use of a particular drug is safe, appropriate or effective for you or anyone else. A healthcare professional should be consulted before taking any drug, changing any diet or commencing or discontinuing any course of treatment. The display and use of this drug information is subject to express Terms of Use.\n", + "Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8113\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hi Dr. Salmasi,I hope you are doing well. Can you please put in a request for me to do my labs? I want to see if it’s time for me to do another iron infusion as I haven’t had much energy lately.Thanks,Jessica\n", + "➡️ Provider's response to this specific message is: Hi Jessica,You have labs placed for you at Stanford! They are available for you to get done every 3 months if you feel worsening fatigue.Best,Sharon Lee, BSN, RNNurse coordinator, hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 250109300\n", + "--------------------------------------------------------------------------------\n", + "idx: 266210\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I will do them by Monday. \n", + "----------------------------------------\n", + "Provider Response by LEE, SHARON:\n", + "No response\n", + "----------------------------------------\n", + "idx: 266209\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Salmasi,\n", + "\n", + "I hope you are doing well. Can you please put in a request for me to do my labs? I want to see if it’s time for me to do another iron infusion as I haven’t had much energy lately.\n", + "\n", + "Thanks,\n", + "Jessica\n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Jessica,\n", + "\n", + "You have labs placed for you at Stanford! They are available for you to get done every 3 months if you feel worsening fatigue.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n" + ] + } + ], + "source": [ + "results = run_tiered_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " target_N=10, # Number of final results you want\n", + " similarity_cutoff=0.7 # The minimum cosine similarity required\n", + ")\n", + "\n", + "\n", + "#show results\n", + "print(\"Query Parameters:\")\n", + "print(f\"query_message: {query_message}\")\n", + "print(f\"receiver: {receiver}\")\n", + "print(f\"department: {department}\")\n", + "print(f\"specialty: {specialty}\")\n", + "\n", + "try:\n", + " print(f\"\\nNumber of results: {len(results)}\")\n", + " \n", + " if len(results) > 0:\n", + " for row in results:\n", + " print(\"##\" * 80)\n", + " print(f\"➡️ Similarity: {row['cosine_similarity']:.4f}\")\n", + " print(f\"➡️ Message by Sender {row['Message Sender']}: {row['Patient Message']}\")\n", + " print(f\"➡️ Provider's response to this specific message is: {row['Actual Response Sent to Patient']}\")\n", + " print(f\"➡️ This result is from tier: {row['retrieval_tier']}\")\n", + " print(\"➡️ -----------printing the whole thread-------------\")\n", + " beatiful_print_thread(row[\"Thread ID\"], answer_question_paired_data_dedup)\n", + " print(\"##\" * 80)\n", + " else:\n", + " print(\"No results found matching the criteria\")\n", + "except Exception as e:\n", + " print(f\"Error getting results: {str(e)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## -----------Weighted Retrieval-----------" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "def get_personalized_score(row, receiver, department, specialty, \n", + " sender_weight=0.2, dept_weight=0.1, spec_weight=0.05):\n", + " score = row[\"cosine_similarity\"]\n", + " if row[\"Recipient Names\"] == receiver:\n", + " score += sender_weight\n", + " elif row[\"Message Department\"] == department:\n", + " score += dept_weight\n", + " elif row[\"Department Specialty Title\"] == specialty:\n", + " score += spec_weight\n", + " return score\n", + "\n", + "def weighted_retrieval(query_vector_literal, receiver, department, specialty, client, top_k=100, final_N=5,\n", + " sender_weight=0.2, dept_weight=0.1, spec_weight=0.05, similarity_cutoff=0.7):\n", + " # Run the broad query\n", + " base_query = f\"\"\"\n", + " WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + " )\n", + " SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Recipient Names`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + " FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings` AS t, input_embedding\n", + " ORDER BY cosine_similarity DESC\n", + " LIMIT @K\n", + " \"\"\"\n", + " params = [bigquery.ScalarQueryParameter(\"K\", \"INT64\", top_k)]\n", + " job = client.query(\n", + " base_query,\n", + " job_config=bigquery.QueryJobConfig(query_parameters=params)\n", + " )\n", + " rows = list(job.result())\n", + "\n", + " # Compute personalized score for each row, filter by similarity_cutoff\n", + " scored = []\n", + " for r in rows:\n", + " row_dict = dict(r)\n", + " if row_dict[\"cosine_similarity\"] >= similarity_cutoff:\n", + " row_dict[\"personalized_score\"] = get_personalized_score(\n", + " row_dict, receiver, department, specialty, \n", + " sender_weight, dept_weight, spec_weight\n", + " )\n", + " # Annotate which tier matched\n", + " if row_dict[\"Recipient Names\"] == receiver:\n", + " row_dict[\"personalization_tier\"] = \"sender\"\n", + " elif row_dict[\"Message Department\"] == department:\n", + " row_dict[\"personalization_tier\"] = \"department\"\n", + " elif row_dict[\"Department Specialty Title\"] == specialty:\n", + " row_dict[\"personalization_tier\"] = \"specialty\"\n", + " else:\n", + " row_dict[\"personalization_tier\"] = \"none\"\n", + " scored.append(row_dict)\n", + "\n", + " # Sort by personalized_score (descending)\n", + " scored = sorted(scored, key=lambda x: x[\"personalized_score\"], reverse=True)\n", + "\n", + " # Return top N\n", + " return scored[:final_N]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Query Parameters:\n", + "query_message: Hi Dr. Martin,I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?Thanks so much for your help!Best, Melissa\n", + "receiver: MARTIN, BETH\n", + "department: HEMATOLOGY\n", + "specialty: Hematology\n", + "\n", + "Number of results: 5\n", + "################################################################################################################################################################\n", + "[sender] Score: 1.012 (CosSim: 0.812)\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hi Dr. Martin,I hope you're well! Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?Thanks!Barbara\n", + "➡️ Provider's response to this specific message is: Barbara, No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. Beth \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 252160980\n", + "--------------------------------------------------------------------------------\n", + "idx: 161352\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Martin,\n", + "I hope you're well! \n", + "\n", + "Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?\n", + "\n", + "Thanks!\n", + "Barbara\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Barbara, \n", + "\n", + "No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. \n", + "\n", + "I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[sender] Score: 1.001 (CosSim: 0.801)\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hello Dr. Martin,I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.Regards,Thomas Obata\n", + "➡️ Provider's response to this specific message is: Mr Obata, I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255287111\n", + "--------------------------------------------------------------------------------\n", + "idx: 21428\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Martin,\n", + "\n", + "Thank you, I look forward to your pre-op plan. Please understand that I could be getting the call for a liver match any day, therefore time is of the essence. Thank you in advance for your understanding.\n", + "\n", + "Best regards,\n", + "\n", + "Thomas\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 21427\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "I am listed as top priority and in the number one position on the Stanford liver transplant list. The AVMs in my liver are compromising my heart, hence the top priority position.\n", + "I just visited Question Diagnostics and completed my blood panel.\n", + "Thank you,\n", + "Thomas Obata \n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Got it\n", + "\n", + "I will develop a coag pre op\n", + "Plan for you \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "idx: 21426\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. \n", + "Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.\n", + "\n", + "Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.\n", + "\n", + "Regards,\n", + "Thomas Obata\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Obata, \n", + "\n", + "I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. \n", + "\n", + "I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. \n", + "\n", + "If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. \n", + "\n", + "I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.948 (CosSim: 0.848)\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hello Dr Martin Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. Thank you for your time Laura Gonzalez \n", + "➡️ Provider's response to this specific message is: Hello Laura,What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.Thank you.Jenny, RNBlake Wilbur Lab900 Blake Wilbur Drive1st Floor, Room W1083Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Cancer Center Lab875 Blake Wilbur DriveRoom CC-1104Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Hoover Lab211 Quarry RoadSuite 101Palo Alto, CA 94304Hours: Mon-Fri 7:00am -7:00pm Boswell Lab300 Pasteur DrivePavilion A, Level 1, A12Stanford, CA 94305Hours: Mon-Fri 6:00am -5:30pmSat-Sun 7:00am-3:30pm Redwood City440 Broadway Street, Pavillion B 1st Floor B11Redwood City, California 94063Hours: Monday - Friday 7am - 6pm Blood Draw at Stanford Cancer Center South Bay2589 Samaritan Drive4th Floor, San Jose, CA 95124 Hours: Mon-Fri 7:00am-6:00pm Blood Draw at Stanford Emeryville5800 Hollis StreetFirst Floor, Pavilion BEmeryville, CA 94608Hours: Mon-Fri 7:30am-5:00pm\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255116564\n", + "--------------------------------------------------------------------------------\n", + "idx: 28794\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Shortness of breath when walking short distances. Also is it possible to send the orders closer to home I have a quest here in Fremont \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "I have placed lab orders for you at Quest. Please let us know once you've done the labs so we know to look for results. We do not get automatic alerts for outside results. If your symptoms should worsen please be evaluated by urgent care, ER, or call for a sick call appt. Thank you and take care.\n", + "\n", + "Jenny, RN \n", + "----------------------------------------\n", + "idx: 28793\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Martin \n", + "Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. \n", + "Thank you for your time \n", + "Laura Gonzalez \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.944 (CosSim: 0.844)\n", + "➡️ Message by Sender ZAMORA, ESMERALDA [ S0352882]: Hi Dr.Berube, I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. Thanks! Brianna \n", + "➡️ Provider's response to this specific message is: Hi Brianna, You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.Key Takeaway:Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.Understanding Your Condition:Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.Current Treatment:You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.Avoiding Iron Supplements:Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.Additional Nutritional Guidance:While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.When to Seek Help:If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.If you have any additional questions, feel free to ask!Thanks, J Ryan, MSN, RNNurse Coordinator, Hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255261295\n", + "--------------------------------------------------------------------------------\n", + "idx: 22548\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Berube, \n", + "\n", + "I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?\n", + "I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. \n", + "\n", + "Thanks! \n", + "Brianna \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Brianna, \n", + "\n", + "You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.\n", + "\n", + "Key Takeaway:\n", + "Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.\n", + "\n", + "Understanding Your Condition:\n", + "Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.\n", + "Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.\n", + "\n", + "Current Treatment:\n", + "You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. \n", + "\n", + "Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.\n", + "\n", + "Avoiding Iron Supplements:\n", + "Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.\n", + "Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.\n", + "\n", + "Additional Nutritional Guidance:\n", + "While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.\n", + "\n", + "When to Seek Help:\n", + "If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.\n", + "\n", + "If you have any additional questions, feel free to ask!\n", + "\n", + "Thanks, \n", + "J Ryan, MSN, RN\n", + "Nurse Coordinator, Hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.934 (CosSim: 0.834)\n", + "➡️ Message by Sender GO, LACRISHA [ S0203400]: Hi Dr Brar ,Happy holidays ! I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . Thank you \n", + "➡️ Provider's response to this specific message is: Hi ReginaI saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawnThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253687511\n", + "--------------------------------------------------------------------------------\n", + "idx: 96155\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Chi , \n", + "I think Dr Brar has standing blood orders for me to check every so often can you order them or do you still want me to ask my PCP . \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 96154\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar ,\n", + "\n", + "Happy holidays ! \n", + "I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . \n", + "Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by HOANG, CHI:\n", + "Hi Regina\n", + "\n", + "I saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawn\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "################################################################################################################################################################\n" + ] + } + ], + "source": [ + "results = weighted_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " top_k=100,\n", + " final_N=5, # Final results you want\n", + " sender_weight=0.2,\n", + " dept_weight=0.1,\n", + " spec_weight=0.05,\n", + " similarity_cutoff=0.7\n", + ")\n", + "\n", + "#show results\n", + "print(\"Query Parameters:\")\n", + "print(f\"query_message: {query_message}\")\n", + "print(f\"receiver: {receiver}\")\n", + "print(f\"department: {department}\")\n", + "print(f\"specialty: {specialty}\")\n", + "\n", + "try:\n", + " print(f\"\\nNumber of results: {len(results)}\")\n", + " \n", + " if len(results) > 0:\n", + " for row in results:\n", + " print(\"##\" * 80)\n", + " print(f\"[{row['personalization_tier']}] Score: {row['personalized_score']:.3f} (CosSim: {row['cosine_similarity']:.3f})\")\n", + " print(f\"➡️ Message by Sender {row['Message Sender']}: {row['Patient Message']}\")\n", + " print(f\"➡️ Provider's response to this specific message is: {row['Actual Response Sent to Patient']}\")\n", + " print(f\"➡️ This result is from tier: {row['personalization_tier']}\")\n", + " print(\"➡️ -----------printing the whole thread-------------\")\n", + " beatiful_print_thread(row[\"Thread ID\"], answer_question_paired_data_dedup)\n", + " print(\"##\" * 80)\n", + " else:\n", + " print(\"No results found matching the criteria\")\n", + "except Exception as e:\n", + " print(f\"Error getting results: {str(e)}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sage_recommender", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore_with_error_checking.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore_with_error_checking.ipynb new file mode 100644 index 00000000..d5a6e730 --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/data_explore_with_error_checking.ipynb @@ -0,0 +1,20565 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/wenyuanchen/anaconda3/envs/sage_recommender/lib/python3.13/site-packages/google/cloud/bigquery/__init__.py:237: FutureWarning: %load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from langchain_huggingface import HuggingFaceEmbeddings\n", + "import os\n", + "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\", message=\"Your application has authenticated using end user credentials\")\n", + "\n", + "\n", + "from google.cloud import bigquery;\n", + "%load_ext google.cloud.bigquery\n", + "\n", + "client = bigquery.Client(\"som-nero-phi-jonc101\")\n", + "\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import requests\n", + "import json\n", + "from dotenv import load_dotenv\n", + "load_dotenv()\n", + "import os\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "data_path = \"/Users/wenyuanchen/Library/CloudStorage/Box-Box/ART_PerMessage_1_17_Updated.xlsx\"\n", + "data_sample = pd.read_excel(data_path) # or whatever number of rows you want # take around 6 minutes to run \n", + "# data_sample[\"Patient Message\"] = data_sample[\"Patient Message\"].replace(\"<13><10>\", \"\\n\")\n", + "# data_sample[\"Actual Response Sent to Patient\"] = data_sample[\"Actual Response Sent to Patient\"].replace(\"<13><10>\", \"\\n\").fillna(\"No response\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# This notebook only explroes three specilaties: primary care, internal medicine and family medicine. \n", + "# Only ncludes threads with response from provider\n", + "# Only includes threads with a prompt sent to LLM" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Source.NameEOW IDReply to Patient EOW IDWMG IDThread IDDate SentMessage DepartmentDepartment Specialty TitleDepartment Specialty CategoryReply to Patient SenderReply to Patient User TemplateReply to Patient User LicensesReply to Patient Provider TypeMessage SenderRecipient IDsRecipient NamesRecipient LicensesLLM Viewer IDsLLM Viewer NamesLLM Viewer LicensesIs Response Valid?Prompt Sent to LLMSuggested Response from LLMResponse If Used As DraftActual Response Sent to PatientList of Strings Removed from DraftList of Strings Added to DraftTotal Length of Removed StringsTotal Length of Added StringsLength of Draft UnchangedSubjectTime Spent Responding (sec)Time Spent Reading (sec)Draft Viewed By Pilot UserDraft Used By Pilot UserCommand ExecutedQuickAction ExecutedLevenshtein DistanceResponse LengthDraft LengthPrompt LengthSubject LengthPatient Message LengthPatient MessageLLM FeedbackLLM Feedback DeficienciesLLM Feedback CommentLLM Feedback UserClinical Categories added by UserNon-Clinical Categories added by UserNon-Actionable Categories added by UserClinical Categories added by SystemNon-Clinical Categories added by SystemNon-Actionable Categories added by SystemAge at time of messageSex TitleSex CategoryGender CategoryGender TitleRace TitleRace CategoryEthnic Background TitleEthnic Background CategoryEthnic Group TitleEthnic Group CategoryFinancial Class TitleFinancial Class CategoryActive Coverages TitleActive Coverages CategoryPreferred Language TitlePreferred Language CategoryNeed Interpreter? Title EPT-840Need Interpreter? Cat EPT-840Patient Has MyChart Proxies?Completed Data ModelsMessage Position in ThreadHours Between Current and Previous Message
0LLMData_1.csv901410967NaN925868712557299422025-01-16THORACIC ONCOLOGYOncology24NaNNaNNaNNaNTRAN, TRI [ S0372371]POOL 10419CC THOR ONC MED CLINICALNaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi Judy,<10><10>It's great to hear that Adam i...NaNNaNNaNNaNNaNNaNNaNRE:LabsNaNNaN0NaNNaNNaNNaNNaNNaN100457298Hi Marilena,<13><10><13><10>I was asking more ...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN59.0Male2.0NaNNaNAsian8Chinese, except Taiwanese11Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
1LLMData_1.csv901410953NaN925866382558916862025-01-16STANFORD PRIMARY CARE SANTA CLARAPrimary Care125NaNNaNNaNNaNROGACION, JOSE ANTONIO [ S0294361]POOL 10849SANTA CLARA PRIMARY CARE TASK POOL TEAM 2NaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi Julie,<10><10>Thank you for forwarding the ...NaNNaNNaNNaNNaNNaNNaNScheduling QuestionNaNNaN0NaNNaNNaNNaNNaNNaN370019697Hi, Dr. Liz; I received the letter below regar...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN52.0Female1.0NaNNaNWhite6American53Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
2LLMData_1.csv901410929NaN925883542548457652025-01-16THORACIC ONCOLOGYOncology24NaNNaNNaNNaNTRAN, TRI [ S0372371]S0004609OJASCASTRO, LLOYDMANaNNaNNaN1Act as if you are the Healthcare Provider who ...Rosemary, <10><10>You should follow-up with yo...NaNNaNNaNNaNNaNNaNNaNRE: Test Results QuestionNaNNaN0NaNNaNNaNNaNNaNNaN311225130Great please let me know as soon as possible ....NaNNaNNaN[]NaNNaNNaNNaNNaNNaN64.0Female1.0NaNNaNBlack or African American2African American/Black21Non-Hispanic/Non-Latino2.0NaNNaNMEDI-CAL300.0English132.0No2.00NaN1.0NaN
3LLMData_1.csv901410919NaN925899282559000672025-01-16FAMILY MEDICINE SAMARITAN LOS GATOSFamily Medicine9NaNNaNNaNNaNDELGADO, NICOLE [ S0367163]S0100823SHAH, RINA BIRENMD<13><10>MDNaNNaNNaN1Act as if you are the Healthcare Provider who ...Yes, Anne. Please make an appointment to discu...NaNNaNNaNNaNNaNNaNNaNRE: ultrasound abdomenNaNNaN0NaNNaNNaNNaNNaNNaN96382248Thank you. Do you mean make an appt to discuss?NaNNaNNaN[]NaNNaNNaNNaNNaNNaN53.0Female1.0NaNNaNWhite6European50Declines to State4.0NaNNaNBlue Cross100.0English132.0No2.00NaN1.0NaN
4LLMData_1.csv901410918NaN925861892542302222025-01-16STANFORD PRIMARY CARE SANTA CLARAPrimary Care125NaNNaNNaNNaNROGACION, JOSE ANTONIO [ S0294361]POOL 11020SANTA CLARA PRIMARY CARE TASK POOL TEAM 1NaNNaNNaNNaN1Act as if you are the Healthcare Provider who ...Hi David,<10><10>I will review your request wi...NaNNaNNaNNaNNaNNaNNaNRE:Hypertension: Blood Pressure CheckNaNNaN0NaNNaNNaNNaNNaNNaN496937308<13><10>January 11, 2025<13><10>124/88 Pulse 8...NaNNaNNaN[]NaNNaNNaNNaNNaNNaN63.0Male2.0NaNNaNWhite6Declines to State56Non-Hispanic/Non-Latino2.0NaNNaNMANAGED CARE101.0English132.0No2.00NaN1.0NaN
\n", + "
" + ], + "text/plain": [ + " Source.Name EOW ID Reply to Patient EOW ID WMG ID Thread ID \\\n", + "0 LLMData_1.csv 901410967 NaN 92586871 255729942 \n", + "1 LLMData_1.csv 901410953 NaN 92586638 255891686 \n", + "2 LLMData_1.csv 901410929 NaN 92588354 254845765 \n", + "3 LLMData_1.csv 901410919 NaN 92589928 255900067 \n", + "4 LLMData_1.csv 901410918 NaN 92586189 254230222 \n", + "\n", + " Date Sent Message Department Department Specialty Title \\\n", + "0 2025-01-16 THORACIC ONCOLOGY Oncology \n", + "1 2025-01-16 STANFORD PRIMARY CARE SANTA CLARA Primary Care \n", + "2 2025-01-16 THORACIC ONCOLOGY Oncology \n", + "3 2025-01-16 FAMILY MEDICINE SAMARITAN LOS GATOS Family Medicine \n", + "4 2025-01-16 STANFORD PRIMARY CARE SANTA CLARA Primary Care \n", + "\n", + " Department Specialty Category Reply to Patient Sender \\\n", + "0 24 NaN \n", + "1 125 NaN \n", + "2 24 NaN \n", + "3 9 NaN \n", + "4 125 NaN \n", + "\n", + " Reply to Patient User Template Reply to Patient User Licenses \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Reply to Patient Provider Type Message Sender \\\n", + "0 NaN TRAN, TRI [ S0372371] \n", + "1 NaN ROGACION, JOSE ANTONIO [ S0294361] \n", + "2 NaN TRAN, TRI [ S0372371] \n", + "3 NaN DELGADO, NICOLE [ S0367163] \n", + "4 NaN ROGACION, JOSE ANTONIO [ S0294361] \n", + "\n", + " Recipient IDs Recipient Names Recipient Licenses \\\n", + "0 POOL 10419 CC THOR ONC MED CLINICAL NaN \n", + "1 POOL 10849 SANTA CLARA PRIMARY CARE TASK POOL TEAM 2 NaN \n", + "2 S0004609 OJASCASTRO, LLOYD MA \n", + "3 S0100823 SHAH, RINA BIREN MD<13><10>MD \n", + "4 POOL 11020 SANTA CLARA PRIMARY CARE TASK POOL TEAM 1 NaN \n", + "\n", + " LLM Viewer IDs LLM Viewer Names LLM Viewer Licenses Is Response Valid? \\\n", + "0 NaN NaN NaN 1 \n", + "1 NaN NaN NaN 1 \n", + "2 NaN NaN NaN 1 \n", + "3 NaN NaN NaN 1 \n", + "4 NaN NaN NaN 1 \n", + "\n", + " Prompt Sent to LLM \\\n", + "0 Act as if you are the Healthcare Provider who ... \n", + "1 Act as if you are the Healthcare Provider who ... \n", + "2 Act as if you are the Healthcare Provider who ... \n", + "3 Act as if you are the Healthcare Provider who ... \n", + "4 Act as if you are the Healthcare Provider who ... \n", + "\n", + " Suggested Response from LLM \\\n", + "0 Hi Judy,<10><10>It's great to hear that Adam i... \n", + "1 Hi Julie,<10><10>Thank you for forwarding the ... \n", + "2 Rosemary, <10><10>You should follow-up with yo... \n", + "3 Yes, Anne. Please make an appointment to discu... \n", + "4 Hi David,<10><10>I will review your request wi... \n", + "\n", + " Response If Used As Draft Actual Response Sent to Patient \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " List of Strings Removed from Draft List of Strings Added to Draft \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Total Length of Removed Strings Total Length of Added Strings \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Length of Draft Unchanged Subject \\\n", + "0 NaN RE:Labs \n", + "1 NaN Scheduling Question \n", + "2 NaN RE: Test Results Question \n", + "3 NaN RE: ultrasound abdomen \n", + "4 NaN RE:Hypertension: Blood Pressure Check \n", + "\n", + " Time Spent Responding (sec) Time Spent Reading (sec) \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Draft Viewed By Pilot User Draft Used By Pilot User Command Executed \\\n", + "0 0 NaN NaN \n", + "1 0 NaN NaN \n", + "2 0 NaN NaN \n", + "3 0 NaN NaN \n", + "4 0 NaN NaN \n", + "\n", + " QuickAction Executed Levenshtein Distance Response Length Draft Length \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " Prompt Length Subject Length Patient Message Length \\\n", + "0 10045 7 298 \n", + "1 3700 19 697 \n", + "2 3112 25 130 \n", + "3 9638 22 48 \n", + "4 4969 37 308 \n", + "\n", + " Patient Message LLM Feedback \\\n", + "0 Hi Marilena,<13><10><13><10>I was asking more ... NaN \n", + "1 Hi, Dr. Liz; I received the letter below regar... NaN \n", + "2 Great please let me know as soon as possible .... NaN \n", + "3 Thank you. Do you mean make an appt to discuss? NaN \n", + "4 <13><10>January 11, 2025<13><10>124/88 Pulse 8... NaN \n", + "\n", + " LLM Feedback Deficiencies LLM Feedback Comment LLM Feedback User \\\n", + "0 NaN NaN [] \n", + "1 NaN NaN [] \n", + "2 NaN NaN [] \n", + "3 NaN NaN [] \n", + "4 NaN NaN [] \n", + "\n", + " Clinical Categories added by User Non-Clinical Categories added by User \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Non-Actionable Categories added by User \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Clinical Categories added by System \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Non-Clinical Categories added by System \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Non-Actionable Categories added by System Age at time of message \\\n", + "0 NaN 59.0 \n", + "1 NaN 52.0 \n", + "2 NaN 64.0 \n", + "3 NaN 53.0 \n", + "4 NaN 63.0 \n", + "\n", + " Sex Title Sex Category Gender Category Gender Title \\\n", + "0 Male 2.0 NaN NaN \n", + "1 Female 1.0 NaN NaN \n", + "2 Female 1.0 NaN NaN \n", + "3 Female 1.0 NaN NaN \n", + "4 Male 2.0 NaN NaN \n", + "\n", + " Race Title Race Category Ethnic Background Title \\\n", + "0 Asian 8 Chinese, except Taiwanese \n", + "1 White 6 American \n", + "2 Black or African American 2 African American/Black \n", + "3 White 6 European \n", + "4 White 6 Declines to State \n", + "\n", + " Ethnic Background Category Ethnic Group Title Ethnic Group Category \\\n", + "0 11 Non-Hispanic/Non-Latino 2.0 \n", + "1 53 Non-Hispanic/Non-Latino 2.0 \n", + "2 21 Non-Hispanic/Non-Latino 2.0 \n", + "3 50 Declines to State 4.0 \n", + "4 56 Non-Hispanic/Non-Latino 2.0 \n", + "\n", + " Financial Class Title Financial Class Category Active Coverages Title \\\n", + "0 NaN NaN MANAGED CARE \n", + "1 NaN NaN MANAGED CARE \n", + "2 NaN NaN MEDI-CAL \n", + "3 NaN NaN Blue Cross \n", + "4 NaN NaN MANAGED CARE \n", + "\n", + " Active Coverages Category Preferred Language Title \\\n", + "0 101.0 English \n", + "1 101.0 English \n", + "2 300.0 English \n", + "3 100.0 English \n", + "4 101.0 English \n", + "\n", + " Preferred Language Category Need Interpreter? Title EPT-840 \\\n", + "0 132.0 No \n", + "1 132.0 No \n", + "2 132.0 No \n", + "3 132.0 No \n", + "4 132.0 No \n", + "\n", + " Need Interpreter? Cat EPT-840 Patient Has MyChart Proxies? \\\n", + "0 2.0 0 \n", + "1 2.0 0 \n", + "2 2.0 0 \n", + "3 2.0 0 \n", + "4 2.0 0 \n", + "\n", + " Completed Data Models Message Position in Thread \\\n", + "0 NaN 1.0 \n", + "1 NaN 1.0 \n", + "2 NaN 1.0 \n", + "3 NaN 1.0 \n", + "4 NaN 1.0 \n", + "\n", + " Hours Between Current and Previous Message \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_sample.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'data_sample' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[52]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(\u001b[43mdata_sample\u001b[49m.columns) == \u001b[32m77\u001b[39m \n\u001b[32m 2\u001b[39m helpful_cols = [\u001b[33m\"\u001b[39m\u001b[33mThread ID\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33mDate Sent\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 3\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mSubject\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33mPatient Message\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mMessage Sender\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 4\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mActual Response Sent to Patient\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 5\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mRecipient Names\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33mRecipient IDs\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mMessage Department\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33mDepartment Specialty Title\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mPrompt Sent to LLM\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mSuggested Response from LLM\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mQuickAction Executed\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m 6\u001b[39m data_sample_sub_cols = data_sample[helpful_cols]\n", + "\u001b[31mNameError\u001b[39m: name 'data_sample' is not defined" + ] + } + ], + "source": [ + "assert len(data_sample.columns) == 77 \n", + "helpful_cols = [\"Thread ID\",\"Date Sent\",\n", + " \"Subject\",\"Patient Message\", \"Message Sender\",\n", + " \"Actual Response Sent to Patient\",\n", + " \"Recipient Names\",\"Recipient IDs\", \"Message Department\",\"Department Specialty Title\", \"Prompt Sent to LLM\", \"Suggested Response from LLM\", \"QuickAction Executed\"]\n", + "data_sample_sub_cols = data_sample[helpful_cols]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ nan, 20000., 141061., 113570., 132484., 132043., 126580.,\n", + " 153453., 132978., 149534., 155537., 143763., 143635., 133040.,\n", + " 141414., 133156., 117735., 120036., 153103., 153017., 152213.,\n", + " 138906., 125452., 120069., 119388., 154618., 144700., 129721.,\n", + " 118688., 153921., 121582., 112689., 119799., 136018., 133235.,\n", + " 138904., 101177., 138909., 113455., 120549., 101176., 112653.,\n", + " 143896., 134783., 144699., 132995., 147934., 137981., 120046.,\n", + " 127069., 143789., 147554., 143819., 150433., 132958., 126191.,\n", + " 112760., 139891., 120042., 154651., 116273., 125087., 121667.,\n", + " 119098., 143714., 132297., 138903., 127531., 120070., 120055.,\n", + " 147549., 152790., 121224., 155595., 154717., 119099., 113479.,\n", + " 132772., 133207., 133243., 131658., 138902., 138908., 133378.,\n", + " 153102., 146750., 128070., 118686., 138927., 117858., 138887.,\n", + " 152603., 138774., 145095., 138911., 155219., 133043., 130107.,\n", + " 143818., 132414., 148661., 124955., 118500., 138991., 153781.,\n", + " 138582., 132050., 133958., 133994., 127514., 155960., 136731.,\n", + " 135182., 152430., 150215., 137982., 140743., 143820., 134547.,\n", + " 130701., 140261., 131453., 134615., 155220., 125439., 139414.,\n", + " 128820., 120099., 146167., 141093., 144645., 139321., 145293.,\n", + " 120418., 127452., 116597., 116272., 116864., 133293., 120369.,\n", + " 141365., 116262., 136847., 155148., 128013., 136622., 137894.,\n", + " 138290., 155103., 147563., 128976., 153140., 153061., 155010.,\n", + " 136753., 135791., 152216., 134549., 147501., 133527., 109578.,\n", + " 141654., 151350., 150461., 145925., 127381., 154524., 154438.,\n", + " 154412., 121915., 134548., 151445., 150004., 153870., 137712.,\n", + " 150019., 152092., 140362., 132055., 120291., 153611., 133694.,\n", + " 132935., 150871., 118884., 138905., 138581., 153452., 153496.,\n", + " 137974., 109889., 155581.])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# To-do:I need the code sheet to understand the quickaction executed\n", + "data_sample_sub_cols[\"QuickAction Executed\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# # keep only primary care, internal medicine and family medicine\n", + "# interested_specialties = [\"Primary Care\", \"Internal Medicine\", \"Family Medicine\"]\n", + "# data_sample_sub_cols = data_sample_sub_cols[data_sample_sub_cols[\"Department Specialty Title\"].isin(interested_specialties)]\n", + "# assert len(data_sample_sub_cols[\"Department Specialty Title\"].unique()) == 3\n", + "# # keep only threads with prompt and response\n", + "# data_sample_sub_cols_has_prompt = data_sample_sub_cols[data_sample_sub_cols[\"Prompt Sent to LLM\"].notnull()]\n", + "# data_sample_sub_cols_has_prompt_and_response = data_sample_sub_cols_has_prompt[data_sample_sub_cols_has_prompt[\"Actual Response Sent to Patient\"].notnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [], + "source": [ + "def remove_duplicate_messages(threads_to_keep):\n", + " # first round of duplicate removal\n", + " df = data_sample_sub_cols[data_sample_sub_cols['Thread ID'].isin(threads_to_keep)].reset_index().sort_values(['Thread ID', 'index'], ascending=False).drop_duplicates()\n", + " \n", + " # Create a boolean column: True if response exists, False otherwise\n", + " df['has_response'] = df[\"Actual Response Sent to Patient\"].notnull()\n", + "\n", + " # Sort so that for each Patient Message, rows with a response come first, then by index (descending or ascending as you prefer)\n", + " df = df.sort_values(['Patient Message', 'has_response', 'index'], ascending=[True, False, False])\n", + "\n", + " # Drop duplicates based on Patient Message, keeping the one with a response if it exists\n", + " df_no_dupes = df.drop_duplicates(subset=[\"Patient Message\"], keep='first').sort_values(['Thread ID', 'index'], ascending=False)\n", + "\n", + " # Optionally, drop the helper column\n", + " df_no_dupes = df_no_dupes.drop(columns=['has_response'])\n", + " return df_no_dupes\n" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/8AAANVCAYAAAAuhU7eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAflRJREFUeJzs3Xd4FOX+///XEtIJIbSECIQivQtKU0BpKk1QAVGUIuABQRCkHEWKSgcbB8RCURQ8RwELGohSFOkIYgAB6UgoQggQMIHk/v3hN/tjSUJ2kl0S5/N8XFeui8zc8973bO4M+8rMzjqMMUYAAAAAAMC28uV2AwAAAAAAwLsI/wAAAAAA2BzhHwAAAAAAmyP8AwAAAABgc4R/AAAAAABsjvAPAAAAAIDNEf4BAAAAALA5wj8AAAAAADZH+AcAAAAAwOYI/wAASdL8+fPlcDicXwEBAYqIiNC9996riRMn6vTp0+m2GTt2rBwOh6XHuXz5ssaOHas1a9ZY2i6jxypTpozatm1rqU5WPvnkE73xxhsZrnM4HBo7dqxHH8/Tvv/+e9WrV0/BwcFyOBxatmxZujHNmjVz+Vln9pW2rw6HQ88+++yt3ZFscndO9ujRQw6HQyEhIbp06VK69UeOHFG+fPn+ET/z3HDw4EE9++yzqlixogIDAxUUFKRq1arppZde0h9//JHb7UmSvvnmG352AHCd/LndAAAgb5k3b54qV66sq1ev6vTp01q3bp0mT56sadOm6dNPP1WLFi2cY59++mndf//9lupfvnxZ48aNk/R3CHVXdh4rOz755BPFxsZq8ODB6dZt2LBBJUuW9HoP2WWMUefOnVWxYkV9+eWXCg4OVqVKldKNmzVrli5cuOD8fvny5Xr11VedP/s0eXlfPcHX11fXrl3Tp59+qt69e7usmzdvnkJCQlyeJ/zt66+/VteuXVW0aFE9++yzqlOnjhwOh3799VfNnTtXy5cv1/bt23O7TX3zzTf6z3/+wx8AAOD/IfwDAFxUr15d9erVc37/8MMPa8iQIbr77rvVqVMn7d+/X+Hh4ZL+DofeDoiXL19WUFDQLXmsrDRo0CBXHz8rJ06c0Llz59SxY0c1b94803FVq1Z1+f63336TlP5n7wlpP7+8yM/PT+3atdPcuXNdwr8xRvPnz1eXLl303nvv5WKHec+hQ4fUtWtXVaxYUatXr1ZoaKhz3X333adBgwZp6dKludghACAzXPYPAMhS6dKlNX36dF28eFFz5sxxLs/oEutVq1apWbNmKlKkiAIDA1W6dGk9/PDDunz5sg4fPqxixYpJksaNG+e8vLxHjx4u9X7++Wc98sgjCgsLU/ny5TN9rDRLly5VzZo1FRAQoHLlyumtt95yWZ/2lobDhw+7LF+zZo0cDofzLQjNmjXT8uXLdeTIEZfL39NkdAl4bGysOnTooLCwMAUEBKh27dpasGBBho+zaNEivfjii4qMjFTBggXVokUL7d27N/Mn/jrr1q1T8+bNFRISoqCgIDVq1EjLly93rh87dqzzjyMjRoyQw+FQmTJl3Krtro8++khVqlRRUFCQatWqpa+//tpl/c1+fsYYzZo1S7Vr11ZgYKDCwsL0yCOP6ODBgy41YmJi1KFDB5UsWVIBAQG6/fbb1a9fP/3555/p+lm+fLlq164tf39/lS1bVtOmTbO8T7169dL69etdfg7fffedjhw5op49e2a4zcmTJ9WvXz+VLFlSfn5+Klu2rMaNG6dr1665jJs9e7Zq1aqlAgUKKCQkRJUrV9a///1v5/rLly9r2LBhKlu2rAICAlS4cGHVq1dPixYtco7ZunWrunbtqjJlyigwMFBlypTRY489piNHjqTra926dWrYsKECAgJ02223afTo0Xr//fcznPuffvqpGjZsqODgYBUoUECtW7d262z9jBkzlJiYqFmzZrkE/zQOh0OdOnVyWTZ37lzVqlXLuY8dO3bUnj17XMY0a9YswyuBevTo4TKPDx8+LIfDoWnTpmnGjBkqW7asChQooIYNG2rjxo0u2/3nP/9x9pT2lfY8/O9//1P9+vUVGhqqoKAglStXTr169cpy/wHgn4wz/wAAtzz44IPy8fHRDz/8kOmYw4cPq02bNrrnnns0d+5cFSpUSH/88Yeio6OVnJysEiVKKDo6Wvfff7969+6tp59+WpKcfxBI06lTJ3Xt2lXPPPOMEhMTb9rXjh07NHjwYI0dO1YRERH6+OOP9dxzzyk5OVnDhg2ztI+zZs1S3759deDAAbfOXu7du1eNGjVS8eLF9dZbb6lIkSJauHChevTooVOnTmn48OEu4//973+rcePGev/993XhwgWNGDFC7dq10549e+Tj45Pp46xdu1YtW7ZUzZo19cEHH8jf31+zZs1Su3bttGjRInXp0kVPP/20atWqpU6dOmngwIHq1q2b/P39Le3/zSxfvlxbtmzR+PHjVaBAAU2ZMkUdO3bU3r17Va5cOZexGf38+vXrp/nz52vQoEGaPHmyzp07p/Hjx6tRo0b65ZdfnFeTHDhwQA0bNtTTTz+t0NBQHT58WDNmzNDdd9+tX3/9Vb6+vpL+vrdBhw4d1LBhQy1evFgpKSmaMmWKTp06ZWm/WrRooaioKM2dO1eTJ0+WJH3wwQdq0qSJKlSokG78yZMndddddylfvnx6+eWXVb58eW3YsEGvvvqqDh8+rHnz5kmSFi9erP79+2vgwIGaNm2a8uXLp99//127d+921nr++ef10Ucf6dVXX1WdOnWUmJio2NhYnT171jnm8OHDqlSpkrp27arChQsrLi5Os2fP1p133qndu3eraNGikqSdO3eqZcuWqlixohYsWKCgoCC98847WrhwYbp9mDBhgl566SX17NlTL730kpKTkzV16lTdc8892rx5c7orQ663cuVKhYeHu30VzMSJE/Xvf/9bjz32mCZOnKizZ89q7NixatiwobZs2ZLhc+yO//znP6pcubLz/hyjR4/Wgw8+qEOHDik0NFSjR49WYmKiPvvsM23YsMG5XYkSJbRhwwZ16dJFXbp00dixYxUQEKAjR45o1apV2eoFAP4xDAAAxph58+YZSWbLli2ZjgkPDzdVqlRxfj9mzBhz/X8ln332mZFkduzYkWmNM2fOGElmzJgx6dal1Xv55ZczXXe9qKgo43A40j1ey5YtTcGCBU1iYqLLvh06dMhl3OrVq40ks3r1aueyNm3amKioqAx7v7Hvrl27Gn9/f3P06FGXcQ888IAJCgoy58+fd3mcBx980GXcf//7XyPJbNiwIcPHS9OgQQNTvHhxc/HiReeya9eumerVq5uSJUua1NRUY4wxhw4dMpLM1KlTb1rvRln97CWZ8PBwc+HCBeeykydPmnz58pmJEyc6l2X289uwYYORZKZPn+6y/NixYyYwMNAMHz48w8dNTU01V69eNUeOHDGSzBdffOFcV79+fRMZGWmuXLniXHbhwgVTuHDhdPMkI0899ZQJDg529h0REWGuXr1qzp49a/z9/c38+fMznKv9+vUzBQoUMEeOHHGpN23aNCPJ7Nq1yxhjzLPPPmsKFSp00x6qV69uHnrooSx7vd61a9fMpUuXTHBwsHnzzTedyx999FETHBxszpw541yWkpJiqlat6jL3jx49avLnz28GDhzoUvfixYsmIiLCdO7c+aaPHxAQYBo0aOBWr/Hx8SYwMDDdvD969Kjx9/c33bp1cy5r2rSpadq0aboaTz31lMvvY9ocr1Gjhrl27Zpz+ebNm40ks2jRIueyAQMGZDgX0n5Wab+fAPB/BZf9AwDcZoy56fratWvLz89Pffv21YIFC9Jd0u2uhx9+2O2x1apVU61atVyWdevWTRcuXNDPP/+crcd316pVq9S8eXOVKlXKZXmPHj10+fJllzOOktS+fXuX72vWrClJGV7CnSYxMVGbNm3SI488ogIFCjiX+/j4qHv37jp+/Ljbbx3IiXvvvVchISHO78PDw1W8ePEMe7/x5/f111/L4XDoiSee0LVr15xfERERqlWrlssnP5w+fVrPPPOMSpUqpfz588vX11dRUVGS5LxUPDExUVu2bFGnTp0UEBDg3DYkJETt2rWzvG89e/bUqVOn9O233+rjjz+Wn5+fHn300QzHfv3117r33nsVGRnpsi8PPPCApL+v0pCku+66S+fPn9djjz2mL774IsO3Ldx111369ttvNXLkSK1Zs0ZXrlxJN+bSpUsaMWKEbr/9duXPn1/58+dXgQIFlJiY6HLp/Nq1a3Xfffc5rwSQpHz58qlz584u9VasWKFr167pySefdOk/ICBATZs2tfwpHDezYcMGXblyxfm2njSlSpXSfffdp++//z7btdu0aeNytYw7v0tp7rzzTklS586d9d///jfPfDoBAHgb4R8A4JbExESdPXtWkZGRmY4pX768vvvuOxUvXlwDBgxQ+fLlVb58eb355puWHqtEiRJuj42IiMh02fWXT3vD2bNnM+w17Tm68fGLFCni8n3aZfkZhb408fHxMsZYehxvuLF36e/+M+r9xl5PnTolY4zCw8Pl6+vr8rVx40ZnME5NTVWrVq20ZMkSDR8+XN9//702b97sfC932mPFx8crNTX1pj97K6KiotS8eXPNnTtXc+fOVdeuXTO9SeGpU6f01VdfpduPatWqSZJzX7p37665c+fqyJEjevjhh1W8eHHVr19fMTExzlpvvfWWRowYoWXLlunee+9V4cKF9dBDD2n//v3OMd26ddPMmTP19NNPa8WKFdq8ebO2bNmiYsWKuTz3Z8+edb514no3Lkt7W8Sdd96Zbh8+/fTTDP9Icb3SpUvr0KFDNx1zfU9Sxr/PkZGROZq32fldStOkSRMtW7bM+UeQkiVLqnr16i73WgAAO+I9/wAAtyxfvlwpKSlZfjzfPffco3vuuUcpKSnaunWr3n77bQ0ePFjh4eHq2rWrW4/lzue0pzl58mSmy9ICQtrZ4aSkJJdxWQWdrBQpUkRxcXHplp84cUKSXM7CZldYWJjy5cvn9cfxpBt/fkWLFpXD4dCPP/6Y4X0I0pbFxsbql19+0fz58/XUU0851//+++8u48PCwuRwOG76s7eqV69eeuKJJ5SamqrZs2dnOq5o0aKqWbOmXnvttQzXX//HsZ49e6pnz55KTEzUDz/8oDFjxqht27bat2+foqKiFBwcrHHjxmncuHHOKw9Gjhypdu3a6bffflNCQoK+/vprjRkzRiNHjnTWTUpK0rlz51wet0iRIhne7+DG5yNtrnz22WfOKyqsaN26td5++21t3Lgxy/f9p/3+ZTZ3r5+3AQEBSkhISDcup7+jmenQoYM6dOigpKQkbdy4URMnTlS3bt1UpkwZNWzY0CuPCQC5jTP/AIAsHT16VMOGDVNoaKj69evn1jY+Pj6qX7++847baZfgWzlD545du3bpl19+cVn2ySefKCQkRHfccYckOe8WvnPnTpdxX375Zbp6mZ3Nzkjz5s21atUqZwhP8+GHHyooKMgjHw0YHBys+vXra8mSJS59paamauHChSpZsqQqVqyY48fxprZt28oYoz/++EP16tVL91WjRg1J//8fDW78A8H1nzAh/f2c3HXXXVqyZIn++usv5/KLFy/qq6++ylaPHTt2VMeOHdWrV6+b/tzatm2r2NhYlS9fPsN9yejKmODgYD3wwAN68cUXlZycrF27dqUbEx4erh49euixxx7T3r17dfnyZTkcDhlj0j0f77//vlJSUlyWNW3aVKtWrXIJy6mpqfrf//7nMq5169bKnz+/Dhw4kGH/WX3U45AhQxQcHKz+/ftnGNaNMc6bZTZs2FCBgYHpbjp4/Phx51tm0pQpU0b79u1z+QPd2bNntX79+pv2czPuHGv8/f3VtGlT580e3fnEAwD4p+LMPwDARWxsrPN9wKdPn9aPP/6oefPmycfHR0uXLk13Z/7rvfPOO1q1apXatGmj0qVL66+//tLcuXMl/X1Xdenv92VHRUXpiy++UPPmzVW4cGEVLVo02x9LFxkZqfbt22vs2LEqUaKEFi5cqJiYGE2ePNl56fadd96pSpUqadiwYbp27ZrCwsK0dOlSrVu3Ll29GjVqaMmSJZo9e7bq1q2rfPnyZRqIxowZ43wP+Msvv6zChQvr448/1vLlyzVlypQMPwotOyZOnKiWLVvq3nvv1bBhw+Tn56dZs2YpNjZWixYtsnSlRG5o3Lix+vbtq549e2rr1q1q0qSJgoODFRcXp3Xr1qlGjRr617/+pcqVK6t8+fIaOXKkjDEqXLiwvvrqK5dL5dO88soruv/++9WyZUsNHTpUKSkpmjx5soKDg9OdFXdHQECAPvvssyzHjR8/XjExMWrUqJEGDRqkSpUq6a+//tLhw4f1zTff6J133lHJkiXVp08fBQYGqnHjxipRooROnjypiRMnKjQ01Pme8/r166tt27aqWbOmwsLCtGfPHn300Udq2LChc+42adJEU6dOdf6OrF27Vh988IEKFSrk0teLL76or776Ss2bN9eLL76owMBAvfPOO85PW8iX7+/zPWXKlNH48eP14osv6uDBg7r//vsVFhamU6dOafPmzc6rETJTtmxZLV68WF26dFHt2rX17LPPqk6dOpKk3bt3a+7cuTLGqGPHjipUqJBGjx6tf//733ryySf12GOP6ezZsxo3bpwCAgI0ZswYZ93u3btrzpw5euKJJ9SnTx+dPXtWU6ZMUcGCBd3/Id4g7Y9KkydP1gMPPCAfHx/VrFlTr776qo4fP67mzZurZMmSOn/+vN588035+vqqadOm2X48AMjzcu9egwCAvCTtju9pX35+fqZ48eKmadOmZsKECeb06dPptrnxDvwbNmwwHTt2NFFRUcbf398UKVLENG3a1Hz55Zcu23333XemTp06xt/f30gyTz31lEu96+9YntljGfP33f7btGljPvvsM1OtWjXj5+dnypQpY2bMmJFu+3379plWrVqZggULmmLFipmBAwea5cuXp7vb/7lz58wjjzxiChUqZBwOh8tjKoNPKfj1119Nu3btTGhoqPHz8zO1atUy8+bNcxmTdrf///3vfy7L0+5cfuP4jPz444/mvvvuM8HBwSYwMNA0aNDAfPXVVxnW88bd/gcMGJBueVRUlPNnZ8zNf37GGDN37lxTv3595z6UL1/e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Tk6xP3m7F/bHu3XsJK88J3mlj5wyxujixYuKjIy86TjC//9TtGhR+fj46OTJky7LT58+rfDw8Ay38ff3l7+/v8uyQoUKeavFW6pgwYI5/gXwRI281EteqZGXemF/8nYv7E/e7oX9ydu9sD/erZNX+rDb/nhCXppvnpCX9icvPS95RV55TvJKHzkRGhqa5Rg+6u//8fPzU926dRUTE+OyPCYmxuVtAAAAAAAA/NNw5v86zz//vLp376569eqpYcOGevfdd3X06FE988wzud0aAAAAAADZRvi/TpcuXXT27FmNHz9ecXFxql69ur755htFRUXldmu3jL+/v8aMGZPu7Qy3ukZe6iWv1MhLvbA/ebsX9idv98L+5O1e2B/v1skp9idv98L+eLeOneSV5ySv9HGrcLd/AAAAAABsjvf8AwAAAABgc4R/AAAAAABsjvAPAAAAAIDNEf4BAAAAALA5wj8kST/88IPatWunyMhIORwOLVu2zHKNiRMn6s4771RISIiKFy+uhx56SHv37rVUY/bs2apZs6YKFiyoggULqmHDhvr2228t93JjXw6HQ4MHD7a03dixY+VwOFy+IiIiLD/+H3/8oSeeeEJFihRRUFCQateurW3btrm9fZkyZdL14XA4NGDAAEt9XLt2TS+99JLKli2rwMBAlStXTuPHj1dqaqqlOhcvXtTgwYMVFRWlwMBANWrUSFu2bMl0fFZzyxijsWPHKjIyUoGBgWrWrJl27dpluc6SJUvUunVrFS1aVA6HQzt27LBU4+rVqxoxYoRq1Kih4OBgRUZG6sknn9SJEycs9TF27FhVrlxZwcHBCgsLU4sWLbRp0ybL+3O9fv36yeFw6I033rBUo0ePHunmTYMGDSz3sWfPHrVv316hoaEKCQlRgwYNdPToUUt1MprDDodDU6dOdbvGpUuX9Oyzz6pkyZIKDAxUlSpVNHv2bEt9nDp1Sj169FBkZKSCgoJ0//33a//+/S5j3DmWZTVv3anhzpzNqo4789adXrKat1aP75nNWXfqZDVv3e3lZvPWnRruzFl36mQ1b92pkdW8zer/TnePs1nVcWfOekJWfbh7nLXymiKzOXsr9kdy7zh7K3px5zibVQ13jrPektFrPqvz9sYa7r4+yKoPd+etnWX0vLhzrL0VfeTmvL2VCP+QJCUmJqpWrVqaOXNmtmusXbtW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3pn+oehmfZw/f96cPn3aGGPMXXfdZfr3759uTGbHMivz1p3joTtzNqs67sxbq8fmjOZtZjWsztns9HLjvM2shpV5604f7szZzOpYmbfu9OLOvE2T9n9ndo+zN9a5Xm685z+r1wJZHWdvrJOd46wnpfWR3eOsN3rJznH2xhrXszJfs8vKa77M5q27NW52nM3ua0935+0/lZXnxd3XB97u41bM29yU3923BwBZMcZo4MCBWrp0qdasWaOyZct6rG7ae3Hc0bx583R35e/Zs6cqV66sESNGyMfHJ1t9JCUlac+ePbrnnnvc3qZx48bpPrJp3759ioqKsvz48+bNU/HixdWmTRvL20p/3602Xz7X23z4+PhY/qi/NMHBwQoODlZ8fLxWrFihKVOmWK5RtmxZRUREKCYmRnXq1JH09/vg1q5dq8mTJ2err5y4evWqOnfurP3792v16tUqUqSIR+pancPdu3dP93601q1bq3v37urZs2e2+zh79qyOHTumEiVKuDXez89Pd955p8fmsCR98MEHqlu3ruX3OF69elVXr1712BwODQ2V9Pd9PbZu3apXXnnFuS6rY5k789ZTx0N36mQ1b7Pby/XzNqsa7s7Z7PRy47zNqoY789ZKHzebs1nVcWfeWunlZvM2o96SkpJyfJy1evzylqz6cLfPtHHeOs66K60Pbxxns9tLTo6zGT3/VuZrdnniNZ87NbI6zma3j7zy++UtVp6X7L4+8HQft2Le5qpb+IcG5GEXL14027dvN9u3bzeSnO87y+xu0Rn517/+ZUJDQ82aNWtMXFyc8+vy5ctu1xg1apT54YcfzKFDh8zOnTvNv//9b5MvXz6zcuXK7OyWU3Yu+x86dKhZs2aNOXjwoNm4caNp27atCQkJMYcPH3a7xubNm03+/PnNa6+9Zvbv328+/vhjExQUZBYuXGipl5SUFFO6dGkzYsQIS9td76mnnjK33Xab+frrr82hQ4fMkiVLTNGiRc3w4cMt1YmOjjbffvutOXjwoFm5cqWpVauWueuuu0xycnKG47OaW5MmTTKhoaFmyZIl5tdffzWPPfaYKVGihLlw4YKlOmfPnjXbt283y5cvN5LM4sWLzfbt201cXJxbNa5evWrat29vSpYsaXbs2OEyh5OSktyqcenSJTNq1CizYcMGc/jwYbNt2zbTu3dv4+/v73IHWXf2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Vq2ann/+eW3cuNE57ujRo+rQoYMKFCigggULqnPnzjp16lS65/l6gwcPVrNmzZzfN2vWTIMGDdLw4cOdz/P18zztd7pjx47prrJo3769li1b5vIHLwBA9hH+AQC3lI+PjyZMmKC3335bx48fz1GtVatW6cSJE/rhhx80Y8YMjR07Vm3btlVYWJg2bdqkZ555Rs8884yOHTvmst0LL7ygoUOHavv27WrUqJHat2+vs2fPSpLi4uLUtGlT1a5dW1u3blV0dLROnTqlzp07u9RYsGCB8ufPr59++klz5szJsL8333xT06dP17Rp07Rz5061bt1a7du31/79+52PVa1aNQ0dOlRxcXEaNmzYTfe3Z8+ezpAuSXPnzlWvXr3SjXvppZc0b948zZ49W7t27dKQIUP0xBNPaO3atZL+fg/47t279e2332rPnj2aPXu2ihYtKkl666239OWXX+q///2v9u7dq4ULF7oEsnz58umtt95SbGysFixYoFWrVmn48OHO9T/99JOeeeYZPffcc9qxY4datmyp1157zaW/FStW6IknntCgQYO0e/duzZkzR/Pnz3eO++yzz/T6669rzpw52r9/v5YtW6YaNWrc9Lm50erVq3XgwAGtXr1aCxYs0Pz58zV//nxLNTIyffp01atXT9u3b1f//v31r3/9S7/99pvLmBEjRmjQoEHas2ePWrdurffee08vvviiXnvtNe3Zs0cTJkzQ6NGjtWDBAuc2ISEhmj9/vnbv3q0333xT7733nl5//XXn+v/+978aM2aMXnvtNW3dulUlSpRI9weEG8XHxys2Nlb16tVzLjt37pyio6M1YMAABQcHp9sm7Y80xhg99NBDOnfunNauXauYmBgdOHBAXbp0sfycLViwQMHBwdq0aZOmTJmi8ePHKyYmRpKcV1XMmzcv3VUW9erV09WrV51XYwAAcsgAAHCLPPXUU6ZDhw7GGGMaNGhgevXqZYwxZunSpeb6/5LGjBljatWq5bLt66+/bqKiolxqRUVFmZSUFOeySpUqmXvuucf5/bVr10xwcLBZtGiRMcaYQ4cOGUn/X3v3H1NV/f8B/MlFAxryQzT5EUMvYvzmDrgigdxS6GqEbk0kRhOKaAgCEaGrBmZYcRXQzSEu2gSMuplFpQQTyBo/Rg6TErnRLAU2a7GktEzrct+fP9o9X44XFdCN7/D5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of threads is 182698\n", + "the number of messages is 375933\n", + " the average number of messages per thread is 2.0576744135130105\n" + ] + } + ], + "source": [ + "# Get the count of each Thread ID\n", + "# Filter out rows where patient message and actual response are not present\n", + "threads_to_keep = data_sample_sub_cols[data_sample_sub_cols[\"Actual Response Sent to Patient\"].notna()][\"Thread ID\"].unique()\n", + "answer_question_paired_data_dedup = remove_duplicate_messages(threads_to_keep = threads_to_keep).dropna(subset=[\"Patient Message\"]) # the main df for embedding\n", + "answer_question_paired_data_dedup[\"Patient Message\"] = answer_question_paired_data_dedup[\"Patient Message\"].str.replace(\"<13><10>\", \"\")\n", + "answer_question_paired_data_dedup[\"Actual Response Sent to Patient\"] = answer_question_paired_data_dedup[\"Actual Response Sent to Patient\"].str.replace(\"<13><10>\", \"\")\n", + "thread_counts_with_response = answer_question_paired_data_dedup['Thread ID'].value_counts()\n", + "\n", + "# Now, get the frequency of each count (i.e., how many threads have count=1, count=2, etc.)\n", + "count_frequency_with_response = thread_counts_with_response.value_counts().sort_index()\n", + "\n", + "# Plot\n", + "plt.figure(figsize=(12,10))\n", + "plt.bar(count_frequency_with_response.index, count_frequency_with_response.values)\n", + "plt.xlabel('Number of Messages in Thread (Count)')\n", + "plt.ylabel('Number of Threads (Frequency)')\n", + "plt.title('Distribution of Thread Message Counts')\n", + "plt.xticks(count_frequency_with_response.index) # Show all counts on x-axis if not too many\n", + "plt.show()\n", + "print(f\"the number of threads is {len(thread_counts_with_response)}\")\n", + "print(f\"the number of messages is {thread_counts_with_response.sum()}\")\n", + "print(f\" the average number of messages per thread is {thread_counts_with_response.mean()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# save the df to local to avoid re-run the code\n", + "# answer_question_paired_data_dedup.to_excel(\"../data/answer_question_paired_data_dedup.xlsx\", index=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "# def beautiful_print_thread(thread_id = None, df = answer_question_paired_data_dedup):\n", + "# if thread_id is None:\n", + "# thread_id =np.random.choice(df[\"Thread ID\"].unique())\n", + "# # sort by index is important to make sure the message is in the correct order\n", + "# thread_df = df[df[\"Thread ID\"] == thread_id].sort_index(ascending=False)\n", + "# print(f\"Thread ID: {thread_id}\")\n", + "# print(\"-\" * 80)\n", + "# for idx, row in thread_df.iterrows():\n", + "# print(f\"idx: {idx}\")\n", + "# print(f\"Subject: {row['Subject']}\")\n", + "# print(\"-\" * 40)\n", + "# print(f\"Date Sent: {row['Date Sent']}\")\n", + "# print(\"-\" * 40)\n", + "# print(\"Sender Message:\")\n", + "# print(row[\"Patient Message\"].replace(\"<13><10>\", \"\\n\"))\n", + "# print(\"-\" * 40)\n", + "# print(f\"Provider Response by {row[\"Recipient Names\"]}:\")\n", + "# try:\n", + "# print(row[\"Actual Response Sent to Patient\"].replace(\"<13><10>\", \"\\n\"))\n", + "# except:\n", + "# print(\"No response\")\n", + "# print(\"-\" * 40) # Separator for readability\n", + "def beautiful_print_thread(thread_id = None, df = answer_question_paired_data_dedup):\n", + " if thread_id is None:\n", + " thread_id = np.random.choice(df[\"Thread ID\"].unique())\n", + " # sort by index is important to make sure the message is in the correct order\n", + " thread_df = df[df[\"Thread ID\"] == thread_id].sort_index(ascending=False)\n", + " \n", + " # Build the output string instead of printing\n", + " output = []\n", + " output.append(f\"Thread ID: {thread_id}\")\n", + " output.append(\"-\" * 80)\n", + " for idx, row in thread_df.iterrows():\n", + " output.append(f\"idx: {idx}\")\n", + " output.append(f\"Subject: {row['Subject']}\")\n", + " output.append(\"-\" * 40)\n", + " output.append(f\"Date Sent: {row['Date Sent']}\")\n", + " output.append(\"-\" * 40)\n", + " output.append(\"Sender Message:\")\n", + " output.append(row[\"Patient Message\"].replace(\"<13><10>\", \"\\n\"))\n", + " output.append(\"-\" * 40)\n", + " output.append(f\"Provider Response by {row['Recipient Names']}:\")\n", + " try:\n", + " output.append(row[\"Actual Response Sent to Patient\"].replace(\"<13><10>\", \"\\n\"))\n", + " except:\n", + " output.append(\"No response\")\n", + " output.append(\"-\" * 40) # Separator for readability\n", + " \n", + " # Join all lines with newlines and return\n", + " return \"\\n\".join(output)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### embedding starts" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [], + "source": [ + "def create_embeddings():\n", + " embeddings = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/all-mpnet-base-v2\"\n", + " )\n", + " return embeddings\n", + "embeddings_model = create_embeddings()" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [ + "# # Create embeddings for all texts\n", + "# texts = answer_question_paired_data_dedup[\"Patient Message\"].str.replace(\"<13><10>\", \"\").tolist()\n", + "# embeddings = embeddings_model.embed_documents(texts)\n", + "# # Save embeddings\n", + "# np.save(\"../data/embeddings.npy\", np.array(embeddings))\n", + "# answer_question_paired_data_dedup[\"embeddings\"] = embeddings\n", + "# # Make sure the embeddings column is a list of float64 per row\n", + "# answer_question_paired_data_dedup[\"embeddings\"] = answer_question_paired_data_dedup[\"embeddings\"].apply(lambda x: [float(val) for val in x])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "answer_question_paired_data_dedup = pd.read_excel(\"../data/answer_question_paired_data_dedup.xlsx\")\n", + "embeddings = np.load(\"../data/embeddings.npy\")\n", + "answer_question_paired_data_dedup[\"embeddings\"] = [emb for emb in embeddings]\n", + "# # Make sure the embeddings column is a list of float64 per row\n", + "answer_question_paired_data_dedup[\"embeddings\"] = answer_question_paired_data_dedup[\"embeddings\"].apply(lambda x: [float(val) for val in x])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "✅ Uploaded batch 1 of 38\n", + "✅ Uploaded batch 2 of 38\n", + "✅ Uploaded batch 3 of 38\n", + "✅ Uploaded batch 4 of 38\n", + "✅ Uploaded batch 5 of 38\n", + "✅ Uploaded batch 6 of 38\n", + "✅ Uploaded batch 7 of 38\n", + "✅ Uploaded batch 8 of 38\n", + "✅ Uploaded batch 9 of 38\n", + "✅ Uploaded batch 10 of 38\n", + "✅ Uploaded batch 11 of 38\n", + "✅ Uploaded batch 12 of 38\n", + "✅ Uploaded batch 13 of 38\n", + "✅ Uploaded batch 14 of 38\n", + "✅ Uploaded batch 15 of 38\n", + "✅ Uploaded batch 16 of 38\n", + "✅ Uploaded batch 17 of 38\n", + "✅ Uploaded batch 18 of 38\n", + "✅ Uploaded batch 19 of 38\n", + "✅ Uploaded batch 20 of 38\n", + "✅ Uploaded batch 21 of 38\n", + "✅ Uploaded batch 22 of 38\n", + "✅ Uploaded batch 23 of 38\n", + "✅ Uploaded batch 24 of 38\n", + "✅ Uploaded batch 25 of 38\n", + "✅ Uploaded batch 26 of 38\n", + "✅ Uploaded batch 27 of 38\n", + "✅ Uploaded batch 28 of 38\n", + "✅ Uploaded batch 29 of 38\n", + "✅ Uploaded batch 30 of 38\n", + "✅ Uploaded batch 31 of 38\n", + "✅ Uploaded batch 32 of 38\n", + "✅ Uploaded batch 33 of 38\n", + "✅ Uploaded batch 34 of 38\n", + "✅ Uploaded batch 35 of 38\n", + "✅ Uploaded batch 36 of 38\n", + "✅ Uploaded batch 37 of 38\n", + "✅ Uploaded batch 38 of 38\n", + "✅ All batches uploaded successfully.\n" + ] + } + ], + "source": [ + "# # dataset_id = \"rag_embedding_R01\"\n", + "# # dataset_ref = client.dataset(dataset_id)\n", + "\n", + "# # # Create the dataset\n", + "# # dataset = bigquery.Dataset(dataset_ref)\n", + "# # dataset.location = \"US\" \n", + "\n", + "# # client.create_dataset(dataset, exists_ok=True)\n", + "# # print(f\"✅ Created dataset: {dataset_id}\")\n", + "\n", + "# # upload the embedding with meta data to gcp big query\n", + "# table_id = \"som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_updated\"\n", + "\n", + "# schema = [\n", + "# bigquery.SchemaField(\"index\", \"INT64\"),\n", + "# bigquery.SchemaField(\"Thread ID\", \"INT64\"),\n", + "# bigquery.SchemaField(\"Date Sent\", \"TIMESTAMP\"),\n", + "# bigquery.SchemaField(\"Subject\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Patient Message\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Message Sender\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Actual Response Sent to Patient\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Recipient Names\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Recipient IDs\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Message Department\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Department Specialty Title\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Prompt Sent to LLM\", \"STRING\"),\n", + "# bigquery.SchemaField(\"Suggested Response from LLM\", \"STRING\"),\n", + "# bigquery.SchemaField(\"QuickAction Executed\", \"INT64\"),\n", + "\n", + "# bigquery.SchemaField(\"embeddings\", \"FLOAT64\", mode=\"REPEATED\")\n", + " \n", + "# ]\n", + "\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# schema=schema,\n", + "# write_disposition=\"WRITE_TRUNCATE\",\n", + "# clustering_fields=[\"Recipient Names\", \"Message Department\", \"Department Specialty Title\"]\n", + "# )\n", + "\n", + "# job = client.load_table_from_dataframe(answer_question_paired_data_dedup, table_id, job_config=job_config)\n", + "# job.result()\n", + "\n", + "# print(\"✅ Upload complete with clustering.\")\n", + "\n", + "# upload the embedding with meta data to gcp big query\n", + "table_id = \"som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_updated\"\n", + "\n", + "schema = [\n", + " bigquery.SchemaField(\"index\", \"INT64\"),\n", + " bigquery.SchemaField(\"Thread ID\", \"INT64\"),\n", + " bigquery.SchemaField(\"Date Sent\", \"TIMESTAMP\"),\n", + " bigquery.SchemaField(\"Subject\", \"STRING\"),\n", + " bigquery.SchemaField(\"Patient Message\", \"STRING\"),\n", + " bigquery.SchemaField(\"Message Sender\", \"STRING\"),\n", + " bigquery.SchemaField(\"Actual Response Sent to Patient\", \"STRING\"),\n", + " bigquery.SchemaField(\"Recipient Names\", \"STRING\"),\n", + " bigquery.SchemaField(\"Recipient IDs\", \"STRING\"),\n", + " bigquery.SchemaField(\"Message Department\", \"STRING\"),\n", + " bigquery.SchemaField(\"Department Specialty Title\", \"STRING\"),\n", + " bigquery.SchemaField(\"Prompt Sent to LLM\", \"STRING\"),\n", + " bigquery.SchemaField(\"Suggested Response from LLM\", \"STRING\"),\n", + " bigquery.SchemaField(\"QuickAction Executed\", \"INT64\"),\n", + " bigquery.SchemaField(\"embeddings\", \"FLOAT64\", mode=\"REPEATED\")\n", + "]\n", + "\n", + "# Define batch size\n", + "BATCH_SIZE = 10000 # Adjust this number based on your memory constraints\n", + "\n", + "# Process in batches\n", + "for i in range(0, len(answer_question_paired_data_dedup), BATCH_SIZE):\n", + " batch_df = answer_question_paired_data_dedup.iloc[i:i+BATCH_SIZE]\n", + " \n", + " job_config = bigquery.LoadJobConfig(\n", + " schema=schema,\n", + " write_disposition=\"WRITE_APPEND\" if i > 0 else \"WRITE_TRUNCATE\", # Append after first batch\n", + " clustering_fields=[\"Recipient Names\", \"Message Department\", \"Department Specialty Title\"]\n", + " )\n", + " \n", + " job = client.load_table_from_dataframe(batch_df, table_id, job_config=job_config)\n", + " job.result()\n", + " print(f\"✅ Uploaded batch {i//BATCH_SIZE + 1} of {(len(answer_question_paired_data_dedup) + BATCH_SIZE - 1)//BATCH_SIZE}\")\n", + "\n", + "print(\"✅ All batches uploaded successfully.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# test query" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Department Specialty Title\n", + "Primary Care 0.320513\n", + "Oncology 0.250174\n", + "Family Medicine 0.143820\n", + "Internal Medicine 0.124550\n", + "Gastroenterology 0.085094\n", + "Hematology 0.041538\n", + "Radiation Oncology 0.014007\n", + "Geriatric Medicine 0.010721\n", + "Sports Medicine 0.004801\n", + "Express Care 0.003097\n", + "Coordinated Care 0.001685\n", + "Name: count, dtype: float64" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the total count for each specialty\n", + "# # keep only threads with prompt and response\n", + "data_sample_sub_cols_has_prompt = answer_question_paired_data_dedup[answer_question_paired_data_dedup[\"Prompt Sent to LLM\"].notnull()]\n", + "data_sample_sub_cols_has_prompt_and_response = data_sample_sub_cols_has_prompt[data_sample_sub_cols_has_prompt[\"Actual Response Sent to Patient\"].notnull()]\n", + "specialty_counts = data_sample_sub_cols_has_prompt_and_response.groupby('Thread ID').first()['Department Specialty Title'].value_counts()\n", + "total_count = specialty_counts.sum()\n", + "\n", + "# Calculate sampling ratios\n", + "sampling_ratios = specialty_counts / total_count\n", + "sampling_ratios" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_61969/2877177806.py:5: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n", + " df_to_sample_has_prompt_and_response = df_to_sample_has_response[df_to_sample[\"Prompt Sent to LLM\"].notnull()]\n" + ] + } + ], + "source": [ + "interested_specialties = [\"Primary Care\", \"Internal Medicine\", \"Family Medicine\"]\n", + "\n", + "df_to_sample = answer_question_paired_data_dedup[answer_question_paired_data_dedup[\"Department Specialty Title\"].isin(interested_specialties)]\n", + "df_to_sample_has_response = df_to_sample[df_to_sample[\"Actual Response Sent to Patient\"].notnull()]\n", + "df_to_sample_has_prompt_and_response = df_to_sample_has_response[df_to_sample[\"Prompt Sent to LLM\"].notnull()]\n", + "df_to_sample_first_message = df_to_sample_has_prompt_and_response.groupby(\"Thread ID\").first().reset_index()\n", + "sampled_df= df_to_sample_first_message.sample(n=100, random_state=42) # Sample 100 rows with a fixed random state for reproducibility" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
row_numberfile_pathsubjecttypereasoningclinical_accuracy_scoreclinical_accuracy_reasoningurgency_recognition_scoreurgency_recognition_reasoningprofessional_consultation_guidance_score...sensitivity_clarity_reasoningnum_errorserror_typeserror_severitieserror_descriptionserror_text_excerptserror_in_physician_responsereason_for_error_in_physician_responsehas_erroravg_error_severity
100010../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
300030../error_checking/automated_outputs/evaluator_...Ordered Test QuestionTest Result InquiryNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
450045../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
460046../error_checking/automated_outputs/evaluator_...Test Results QuestionTest Result InquiryNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
730073../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionReferral RequestNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
740074../error_checking/automated_outputs/evaluator_...Ordered Test QuestionTest Result InquiryNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
860086../error_checking/automated_outputs/evaluator_...Update Health InformationAdministrative RequestNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
930093../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionClinical Advice RequestNaNNaNNaNNaNNaN...NaN0[][][][][][]FalseNaN
\n", + "

8 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " row_number file_path \\\n", + "10 0010 ../error_checking/automated_outputs/evaluator_... \n", + "30 0030 ../error_checking/automated_outputs/evaluator_... \n", + "45 0045 ../error_checking/automated_outputs/evaluator_... \n", + "46 0046 ../error_checking/automated_outputs/evaluator_... \n", + "73 0073 ../error_checking/automated_outputs/evaluator_... \n", + "74 0074 ../error_checking/automated_outputs/evaluator_... \n", + "86 0086 ../error_checking/automated_outputs/evaluator_... \n", + "93 0093 ../error_checking/automated_outputs/evaluator_... \n", + "\n", + " subject type reasoning \\\n", + "10 Prescription Question Medication Request \n", + "30 Ordered Test Question Test Result Inquiry \n", + "45 Prescription Question Medication Request \n", + "46 Test Results Question Test Result Inquiry \n", + "73 Non-urgent Medical Question Referral Request \n", + "74 Ordered Test Question Test Result Inquiry \n", + "86 Update Health Information Administrative Request \n", + "93 Non-urgent Medical Question Clinical Advice Request \n", + "\n", + " clinical_accuracy_score clinical_accuracy_reasoning \\\n", + "10 NaN NaN \n", + "30 NaN NaN \n", + "45 NaN NaN \n", + "46 NaN NaN \n", + "73 NaN NaN \n", + "74 NaN NaN \n", + "86 NaN NaN \n", + "93 NaN NaN \n", + "\n", + " urgency_recognition_score urgency_recognition_reasoning \\\n", + "10 NaN NaN \n", + "30 NaN NaN \n", + "45 NaN NaN \n", + "46 NaN NaN \n", + "73 NaN NaN \n", + "74 NaN NaN \n", + "86 NaN NaN \n", + "93 NaN NaN \n", + "\n", + " professional_consultation_guidance_score ... \\\n", + "10 NaN ... \n", + "30 NaN ... \n", + "45 NaN ... \n", + "46 NaN ... \n", + "73 NaN ... \n", + "74 NaN ... \n", + "86 NaN ... \n", + "93 NaN ... \n", + "\n", + " sensitivity_clarity_reasoning num_errors error_types error_severities \\\n", + "10 NaN 0 [] [] \n", + "30 NaN 0 [] [] \n", + "45 NaN 0 [] [] \n", + "46 NaN 0 [] [] \n", + "73 NaN 0 [] [] \n", + "74 NaN 0 [] [] \n", + "86 NaN 0 [] [] \n", + "93 NaN 0 [] [] \n", + "\n", + " error_descriptions error_text_excerpts error_in_physician_response \\\n", + "10 [] [] [] \n", + "30 [] [] [] \n", + "45 [] [] [] \n", + "46 [] [] [] \n", + "73 [] [] [] \n", + "74 [] [] [] \n", + "86 [] [] [] \n", + "93 [] [] [] \n", + "\n", + " reason_for_error_in_physician_response has_error avg_error_severity \n", + "10 [] False NaN \n", + "30 [] False NaN \n", + "45 [] False NaN \n", + "46 [] False NaN \n", + "73 [] False NaN \n", + "74 [] False NaN \n", + "86 [] False NaN \n", + "93 [] False NaN \n", + "\n", + "[8 rows x 22 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[df['clinical_accuracy_score'].isnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [], + "source": [ + "def query_embedding_func(message, model):\n", + " query_vector = model.embed_query(message)\n", + " assert isinstance(query_vector, list)\n", + " assert all(isinstance(x, float) for x in query_vector)\n", + " query_vector_literal = str(query_vector).replace(\"[\", \"ARRAY[\").replace(\"]\", \"]\")\n", + " return query_vector_literal" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "my_key = os.getenv(\"HEALTHREX_API_KEY\")\n", + "# Common Headers (Used for all models)\n", + "headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'}\n", + "def define_LLM(query_message, model = \"gpt-4.1\", \n", + " headers = {'Ocp-Apim-Subscription-Key': my_key, 'Content-Type': 'application/json'},\n", + " url = \"https://apim.stanfordhealthcare.org/openai-eastus2/deployments/gpt-4.1/chat/completions?api-version=2025-01-01-preview\"):\n", + " my_question = f\"\"\"You are a patient with similar symptoms to the patient who asked this question: \"{query_message}\"\n", + "\n", + " Please generate a new question that:\n", + " 1. Covers similar medical concerns but uses different wording and phrasing\n", + " 2. Includes some personal context or specific details that make it feel more natural\n", + " 3. May mention different but related symptoms or concerns\n", + " 4. Uses a more conversational tone\n", + "\n", + " Your question should sound like it's coming from a different person, not just a rephrasing of the original question. \n", + " Focus on the underlying medical concern but express it in your own words.\"\"\"\n", + " payload = json.dumps({\n", + " \"model\": model, \n", + " \"messages\": [{\"role\": \"user\", \"content\": my_question}]\n", + " })\n", + " response = requests.request(\"POST\", url, headers=headers, data=payload)\n", + " message_content = response.json()[\"choices\"][0][\"message\"][\"content\"]\n", + " return message_content\n", + "\n", + "def LLM_generated_similar_question(query_message, model = \"gpt-4.1\"):\n", + " message_content = define_LLM(query_message, model)\n", + " return message_content" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# error check (check patient message, the prompt sent to LLM (might include original notes, should be parsed out))\n", + "# what are the errors?, error type(from aim 1), error rate, severity \n", + "# reference to aim 1. \n", + "# check for GPT and Gemini\n", + "# data need to de-identify" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "def LLM_generated_similar_question_in_batch(query_message, batch_size = 5):\n", + " similar_questions = []\n", + " for i in range(batch_size):\n", + " similar_question = LLM_generated_similar_question(query_message)\n", + " similar_questions.append(similar_question)\n", + " return similar_questions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate 1 similar questions for each message and add them as new columns\n", + "for i in range(1):\n", + " column_name = f'generated_question_{i+1}'\n", + " sampled_df[column_name] = sampled_df['Patient Message'].apply(lambda x: LLM_generated_similar_question(x))\n", + "sampled_df.to_excel(\"data/sampled_df_with_generated_questions.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [], + "source": [ + "# sampled_df.to_excel(\"../data/sampled_df_with_generated_questions.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [], + "source": [ + "# Force reload the module\n", + "import importlib\n", + "import script.query_logger\n", + "importlib.reload(script.query_logger)\n", + "\n", + "# Now import the functions\n", + "from script.query_logger import setup_logging, log_query_parameters, log_results, log_error, log_original_message" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [], + "source": [ + "def exact_match_query(query_message, query_vector_literal, receiver, department, specialty, client = None, logger = None):\n", + " query = f\"\"\"\n", + " WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + " )\n", + "\n", + " SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + " FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_pcp_only` AS t,\n", + " input_embedding\n", + " WHERE\n", + " t.`Recipient Names` = @receiver\n", + " AND t.`Message Department` = @department\n", + " AND t.`Department Specialty Title` = @specialty\n", + " ORDER BY cosine_similarity DESC\n", + " LIMIT 5\n", + " \"\"\"\n", + "\n", + " job = client.query(\n", + " query,\n", + " job_config=bigquery.QueryJobConfig(\n", + " query_parameters=[\n", + " bigquery.ScalarQueryParameter(\"receiver\", \"STRING\", receiver),\n", + " bigquery.ScalarQueryParameter(\"department\", \"STRING\", department),\n", + " bigquery.ScalarQueryParameter(\"specialty\", \"STRING\", specialty)\n", + " ]\n", + " )\n", + " )\n", + " # Log query parameters\n", + " log_query_parameters(logger, query_message, receiver, department, specialty)\n", + "\n", + " # Try to get results\n", + " try:\n", + " results = list(job.result())\n", + " log_results(logger, results, beautiful_print_thread, answer_question_paired_data_dedup)\n", + " return results \n", + " except Exception as e:\n", + " log_error(logger, str(e))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [], + "source": [ + "def tiered_retrieval_query(query_vector_literal, receiver, department, specialty, client = None, \n", + " target_N=5, # Number of final results you want\n", + " similarity_cutoff=0.7,\n", + " logger = None):\n", + " logger = setup_logging(\"tiered\")\n", + " results = run_tiered_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " target_N=target_N, # Number of final results you want\n", + " similarity_cutoff=similarity_cutoff # The minimum cosine similarity required\n", + ")\n", + " # Log query parameters\n", + " log_query_parameters(logger, query_message, receiver, department, specialty)\n", + " \n", + " # Try to get results\n", + " try:\n", + " log_results(logger, results, beautiful_print_thread, answer_question_paired_data_dedup)\n", + " except Exception as e:\n", + " log_error(logger, str(e))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [], + "source": [ + "def weighted_retrieval_query(query_message, query_vector_literal, receiver, department, specialty, client = None,\n", + " top_k=100,\n", + " final_N=5, # Final results you want\n", + " sender_weight=0.2,\n", + " dept_weight=0.1,\n", + " spec_weight=0.05,\n", + " similarity_cutoff=0.7, \n", + " logger = None):\n", + " logger = setup_logging(\"weighted\")\n", + " results = weighted_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " top_k=top_k,\n", + " final_N=final_N, # Final results you want\n", + " sender_weight=sender_weight,\n", + " dept_weight=dept_weight,\n", + " spec_weight=spec_weight,\n", + " similarity_cutoff=similarity_cutoff\n", + ")\n", + " log_query_parameters(logger, query_message, receiver, department, specialty)\n", + "\n", + " try:\n", + " log_results(logger, results, beautiful_print_thread, answer_question_paired_data_dedup)\n", + " except Exception as e:\n", + " log_error(logger, str(e))\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": {}, + "outputs": [], + "source": [ + "def retrieve_similar_question_from_db(query_message, query_message_metadata, model = embeddings_model, client = client, query_method = \"strictest\", run = \"generated_question_set_1\"):\n", + " query_message = query_message.replace(\"\\n\", \"\")\n", + " receiver = query_message_metadata[\"Recipient Names\"]\n", + " department = query_message_metadata[\"Message Department\"]\n", + " specialty = query_message_metadata[\"Department Specialty Title\"]\n", + " query_vector_literal = query_embedding_func(query_message, model)\n", + " logger = setup_logging(query_method, run)\n", + " log_original_message(logger, query_message_metadata[\"Patient Message\"])\n", + " if query_method == \"strictest\":\n", + " results = exact_match_query(query_message, query_vector_literal, receiver, department, specialty, client, logger)\n", + "\n", + " elif query_method == \"tiered\":\n", + " results = tiered_retrieval_query(query_message,query_vector_literal, receiver, department, specialty, client, logger)\n", + " elif query_method == \"weighted\":\n", + " results = weighted_retrieval_query(query_message,query_vector_literal, receiver, department, specialty,client, logger)\n", + " return results\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-06-17 14:10:50,244 - Original Message:\n", + "2025-06-17 14:10:50,244 - original_query_message: Hi Dr Belanger,I'm reaching out because I forgot to mention a concern that my husband and I both have about my hearing. It seems to be getting worse, fairly quickly, to us & I wonder if it's due to my military service. Could we arrange for me to have testing done? thanks& I look forward to hearing back from you :)-Skylar\n", + "2025-06-17 14:10:52,330 - Query Parameters:\n", + "2025-06-17 14:10:52,332 - query_message: Hi Dr. Belanger,I wanted to bring up something that’s been bothering me lately—I’ve noticed that I’m having a much harder time following conversations, especially when there's background noise or if someone isn’t facing me directly. My wife keeps asking if I heard what she said, and I find myself turning up the volume on the TV higher than usual. I served in the Air Force around a lot of loud equipment, so I’m wondering if that might have something to do with it. Would it be possible to get my hearing checked to see what’s going on? Thanks so much for your help!Best, Michael\n", + "2025-06-17 14:10:52,333 - receiver: AFP MYHEALTH POOL\n", + "2025-06-17 14:10:52,333 - department: FAMILY MEDICINE AFP ALAMEDA\n", + "2025-06-17 14:10:52,334 - specialty: Family Medicine\n", + "2025-06-17 14:10:54,176 - \n", + "Number of results: 5\n", + "2025-06-17 14:10:54,176 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:54,177 - ✅ similarity: 0.6669\n", + "2025-06-17 14:10:54,177 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Belanger,I'm reaching out because I forgot to mention a concern that my husband and I both have about my hearing. It seems to be getting worse, fairly quickly, to us & I wonder if it's due to my military service. Could we arrange for me to have testing done? thanks& I look forward to hearing back from you :)-Skylar\n", + "2025-06-17 14:10:54,178 - Provider's response to this similar message: Hi Skylar, I've ordered this for your to be done at the Hearing Zone here in Alameda, if you prefer Stanford in Emeryville let me know. Dr. Belanger \n", + "2025-06-17 14:10:54,179 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:54,189 - Thread ID: 248565804\n", + "--------------------------------------------------------------------------------\n", + "idx: 344709\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "fantastic! thanks so much! have a wonderful day < 3\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 344708\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Belanger,I'm reaching out because I forgot to mention a concern that my husband and I both have about my hearing. It seems to be getting worse, fairly quickly, to us & I wonder if it's due to my military service. Could we arrange for me to have testing done? thanks& I look forward to hearing back from you :)-Skylar\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Skylar, I've ordered this for your to be done at the Hearing Zone here in Alameda, if you prefer Stanford in Emeryville let me know. Dr. Belanger \n", + "----------------------------------------\n", + "2025-06-17 14:10:54,190 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:54,190 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:54,191 - ✅ similarity: 0.5376\n", + "2025-06-17 14:10:54,191 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you and yes let’s proceed with a hearing test \n", + "2025-06-17 14:10:54,191 - Provider's response to this similar message: This is Ashli Butler, FNP, from Edward Inwah Chan, MD's office, responding on their behalf. Hi Trish,I have placed an audiology referral for you. You should be hearing from us shortly with the details of the referral, including the contact information of the office we referred you to. Once the referral is processed, you will also be able to view the referral, and the specialist's contact information, in your MyHealth phone app (click the gray \"Insurance\" button, and in the next menu click \"Referrals\"). Take care, Ashli Butler, FNPPlease note that MyHealth messages are meant for non-urgent concerns that can quickly be answered with a simple email message. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:10:54,192 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:54,194 - Thread ID: 250761601\n", + "--------------------------------------------------------------------------------\n", + "idx: 233414\n", + "Subject: Re: ENT consult\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you and yes let’s proceed with a hearing test \n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "This is Ashli Butler, FNP, from Edward Inwah Chan, MD's office, responding on their behalf. Hi Trish,I have placed an audiology referral for you. You should be hearing from us shortly with the details of the referral, including the contact information of the office we referred you to. Once the referral is processed, you will also be able to view the referral, and the specialist's contact information, in your MyHealth phone app (click the gray \"Insurance\" button, and in the next menu click \"Referrals\"). Take care, Ashli Butler, FNPPlease note that MyHealth messages are meant for non-urgent concerns that can quickly be answered with a simple email message. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:10:54,195 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:54,195 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:54,196 - ✅ similarity: 0.4925\n", + "2025-06-17 14:10:54,196 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Happy New Year! I hope you re well. I'd like to make an appointment to have my hearing checked. I've been having some issues lately. Can your office do that or do I need a referral to an audiologist?Thank you!\n", + "2025-06-17 14:10:54,196 - Provider's response to this similar message: Hi Tracy,Thanks for the well wishes! We hope you are doing well too! We would send the audiology referral, but they require an appointment with us first so they know why they are seeing you!You can schedule your appointment by using the MyHealth app (go to \"Appointments\" -> \"Make Appointment\"), or by giving us a call at 510-521-2300, option 1. Take care,Sue Behera, PA-C, MPH, MA \n", + "2025-06-17 14:10:54,197 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:54,200 - Thread ID: 254664119\n", + "--------------------------------------------------------------------------------\n", + "idx: 51200\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy New Year! I hope you re well. I'd like to make an appointment to have my hearing checked. I've been having some issues lately. Can your office do that or do I need a referral to an audiologist?Thank you!\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Tracy,Thanks for the well wishes! We hope you are doing well too! We would send the audiology referral, but they require an appointment with us first so they know why they are seeing you!You can schedule your appointment by using the MyHealth app (go to \"Appointments\" -> \"Make Appointment\"), or by giving us a call at 510-521-2300, option 1. Take care,Sue Behera, PA-C, MPH, MA \n", + "----------------------------------------\n", + "2025-06-17 14:10:54,200 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:54,200 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:54,201 - ✅ similarity: 0.4912\n", + "2025-06-17 14:10:54,201 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I would like a referal to a in-network Audiologist. I am having more and more problems hearing.Thank you\n", + "2025-06-17 14:10:54,201 - Provider's response to this similar message: From AFP Clinical Care Team, on behalf of Erica Renee Chong, PAHi Brian,We should schedule an appointment for this issue so that we have adequate time to discuss your symptoms, and determine what the appropriate next steps would be. MyHealth messages are good for questions that can we can quickly answer in a sentence or two. However, we generally need an appointment for anything that requires a lengthier explanation, or for anything that requires us to ask questions or have a back-and-forth conversation (such as prescribing a new medication, ordering tests, or determining what the cause of someone's symptoms might be). Additionally, specialists and/or insurances typically require that we complete a recent evaluation for an issue in our office first before placing a referral for that issue. For example, audiology and/or ENT may want us to complete an ear exam before placing a referral to evaluate whether there is something going on inside your ears that might be causing hearing issues.Since it appears you have PPO insurance, you can see if your insurance will let you self-refer to a covered provider. However that specialist might still require a referral from us (even though insurance doesn't) so that they have a summary of the issue.I will forward your message along to our schedulers who should reach out to you to help set up an appointment. Alternatively, feel free to schedule an appointment using the MyHealth app, or by giving us a call at 510-521-2300.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:10:54,202 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:54,204 - Thread ID: 253928042\n", + "--------------------------------------------------------------------------------\n", + "idx: 85296\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "From AFP Clinical Care Team, on behalf of Erica Renee Chong, PAHi Brian,We should schedule an appointment for this issue so that we have adequate time to discuss your symptoms, and determine what the appropriate next steps would be. MyHealth messages are good for questions that can we can quickly answer in a sentence or two. However, we generally need an appointment for anything that requires a lengthier explanation, or for anything that requires us to ask questions or have a back-and-forth conversation (such as prescribing a new medication, ordering tests, or determining what the cause of someone's symptoms might be). Additionally, specialists and/or insurances typically require that we complete a recent evaluation for an issue in our office first before placing a referral for that issue. For example, audiology and/or ENT may want us to complete an ear exam before placing a referral to evaluate whether there is something going on inside your ears that might be causing hearing issues.Since it appears you have PPO insurance, you can see if your insurance will let you self-refer to a covered provider. However that specialist might still require a referral from us (even though insurance doesn't) so that they have a summary of the issue.I will forward your message along to our schedulers who should reach out to you to help set up an appointment. Alternatively, feel free to schedule an appointment using the MyHealth app, or by giving us a call at 510-521-2300.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "Provider Response by AFP ADMIN POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 85295\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I would like a referal to a in-network Audiologist. I am having more and more problems hearing.Thank you\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "From AFP Clinical Care Team, on behalf of Erica Renee Chong, PAHi Brian,We should schedule an appointment for this issue so that we have adequate time to discuss your symptoms, and determine what the appropriate next steps would be. MyHealth messages are good for questions that can we can quickly answer in a sentence or two. However, we generally need an appointment for anything that requires a lengthier explanation, or for anything that requires us to ask questions or have a back-and-forth conversation (such as prescribing a new medication, ordering tests, or determining what the cause of someone's symptoms might be). Additionally, specialists and/or insurances typically require that we complete a recent evaluation for an issue in our office first before placing a referral for that issue. For example, audiology and/or ENT may want us to complete an ear exam before placing a referral to evaluate whether there is something going on inside your ears that might be causing hearing issues.Since it appears you have PPO insurance, you can see if your insurance will let you self-refer to a covered provider. However that specialist might still require a referral from us (even though insurance doesn't) so that they have a summary of the issue.I will forward your message along to our schedulers who should reach out to you to help set up an appointment. Alternatively, feel free to schedule an appointment using the MyHealth app, or by giving us a call at 510-521-2300.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:10:54,205 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:54,205 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:54,206 - ✅ similarity: 0.4760\n", + "2025-06-17 14:10:54,206 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Kira,About two weeks ago, I was on a call with a client when I noticed I was having diffculty enunciating. I went to urgent care last week (11-14) and the physician did some tests to see if I had experienced a stroke. He said that he believes I did not. He told me that I was over stressed and recommended that I get more sleep. I can't do much about the stress, but I have been trying to rest more. The problem is that the trouble with enunciation persists. I am scheduled for a 1:00 p.m. echocardiogram this coming Monday the 25th at the Stanford facility in Emeryville. It is followed by a 2:15 appointment with the cardiologist. I am wondering if you might be able to fit me in on this same Monday in an attempt to determine what is going on with my speech.Thank you,\n", + "2025-06-17 14:10:54,207 - Provider's response to this similar message: Hello James, Thank you for the updates. Unfortunately we do not have the resources to routinely process appointment requests, make changes or re-schedule an existing appointment through a MyHealth message. Please call our office at (510) 521-2300 option 1. Our scheduling team representatives will be happy to assist you! We apologize for any inconvenience.Yazmin Rodriguez, MA, 11/19/2024, 3:22 PM\n", + "2025-06-17 14:10:54,207 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:54,209 - Thread ID: 251047674\n", + "--------------------------------------------------------------------------------\n", + "idx: 217925\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kira,About two weeks ago, I was on a call with a client when I noticed I was having diffculty enunciating. I went to urgent care last week (11-14) and the physician did some tests to see if I had experienced a stroke. He said that he believes I did not. He told me that I was over stressed and recommended that I get more sleep. I can't do much about the stress, but I have been trying to rest more. The problem is that the trouble with enunciation persists. I am scheduled for a 1:00 p.m. echocardiogram this coming Monday the 25th at the Stanford facility in Emeryville. It is followed by a 2:15 appointment with the cardiologist. I am wondering if you might be able to fit me in on this same Monday in an attempt to determine what is going on with my speech.Thank you,\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hello James, Thank you for the updates. Unfortunately we do not have the resources to routinely process appointment requests, make changes or re-schedule an existing appointment through a MyHealth message. Please call our office at (510) 521-2300 option 1. Our scheduling team representatives will be happy to assist you! We apologize for any inconvenience.Yazmin Rodriguez, MA, 11/19/2024, 3:22 PM\n", + "----------------------------------------\n", + "2025-06-17 14:10:54,209 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:54,632 - Original Message:\n", + "2025-06-17 14:10:54,633 - original_query_message: Hello,I was able to get an appointment for a colonoscopy next Wednesday, 12/11. The directions say to ask my doctor about what to do regarding medications I am taking for diabetes with respect to the procedure. Could you let me know if I should change my medicine schedule in some way? Thank you so much!Emily \n", + "2025-06-17 14:10:56,371 - Query Parameters:\n", + "2025-06-17 14:10:56,371 - query_message: Hi there,I just got scheduled for a colonoscopy next Thursday (the 14th), and I wanted to reach out with a question. I have type 2 diabetes and take both Metformin and insulin daily. I’m a bit worried about how the prep for the colonoscopy and not eating much the day before might affect my blood sugar levels. Should I adjust the amount or timing of my diabetes meds while I’m fasting for the procedure? I really want to avoid going too low or too high. Any specific advice would be really appreciated—thanks so much!\n", + "2025-06-17 14:10:56,372 - receiver: AFP MYHEALTH POOL\n", + "2025-06-17 14:10:56,372 - department: FAMILY MEDICINE AFP ALAMEDA\n", + "2025-06-17 14:10:56,373 - specialty: Family Medicine\n", + "2025-06-17 14:10:57,218 - \n", + "Number of results: 5\n", + "2025-06-17 14:10:57,219 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:57,220 - ✅ similarity: 0.7686\n", + "2025-06-17 14:10:57,221 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello,I was able to get an appointment for a colonoscopy next Wednesday, 12/11. The directions say to ask my doctor about what to do regarding medications I am taking for diabetes with respect to the procedure. Could you let me know if I should change my medicine schedule in some way? Thank you so much!Emily \n", + "2025-06-17 14:10:57,222 - Provider's response to this similar message: Hi Emily,For your colonoscopy, you should follow these guidelines regarding your diabetes medications:1. **Metformin (Glucophage XR)**: You can continue taking your metformin as usual up until the day before the procedure. On the day of the procedure, do not take your metformin until after the colonoscopy is completed.2. **Ozempic (semaglutide)**: You can continue taking your Ozempic as usual. Since it is a weekly injection, you do not need to adjust the timing around the procedure.3. **Blood Sugar Monitoring**: Continue to monitor your blood sugar levels closely, especially since you will be fasting. If you notice any significant changes or have concerns, please let us know.4. **Diet and Preparation**: Follow the specific dietary instructions provided by the colonoscopy preparation guidelines. This usually involves a clear liquid diet the day before the procedure and taking a bowel prep solution.If you have any further questions or concerns, please feel free to reach out. Good luck with your procedure!Best regards,Sujata Behera, PA-C, MA, MPH\n", + "2025-06-17 14:10:57,224 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:57,229 - Thread ID: 252536125\n", + "--------------------------------------------------------------------------------\n", + "idx: 144243\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I was able to get an appointment for a colonoscopy next Wednesday, 12/11. The directions say to ask my doctor about what to do regarding medications I am taking for diabetes with respect to the procedure. Could you let me know if I should change my medicine schedule in some way? Thank you so much!Emily \n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Emily,For your colonoscopy, you should follow these guidelines regarding your diabetes medications:1. **Metformin (Glucophage XR)**: You can continue taking your metformin as usual up until the day before the procedure. On the day of the procedure, do not take your metformin until after the colonoscopy is completed.2. **Ozempic (semaglutide)**: You can continue taking your Ozempic as usual. Since it is a weekly injection, you do not need to adjust the timing around the procedure.3. **Blood Sugar Monitoring**: Continue to monitor your blood sugar levels closely, especially since you will be fasting. If you notice any significant changes or have concerns, please let us know.4. **Diet and Preparation**: Follow the specific dietary instructions provided by the colonoscopy preparation guidelines. This usually involves a clear liquid diet the day before the procedure and taking a bowel prep solution.If you have any further questions or concerns, please feel free to reach out. Good luck with your procedure!Best regards,Sujata Behera, PA-C, MA, MPH\n", + "----------------------------------------\n", + "2025-06-17 14:10:57,233 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:57,233 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:57,234 - ✅ similarity: 0.6049\n", + "2025-06-17 14:10:57,234 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you. You indicated in your reply that metabolic panel will test for blood sugars but you didn’t order metabolic panel, only lipid panel if I understand your orders correctly.The lipid panel order says fasting not required. If that’s correct and you don’t want any other tests that require fasting, then I will reschedule lab appointment so results are in, in advance of my doctors visit.Otherwise early morning appointment (fasting) not available until after doctors visit Please confirm either way Don\n", + "2025-06-17 14:10:57,235 - Provider's response to this similar message: Hello Don Dr Carper placed another lab order today 11/04/2024 for metabolic panel,hemoglobinA1C,CBC with Diff and PSA make sure when You go to Lab to ask them to do also lipid panel ordered on 11/01/2024 and fast for 12 hoursMarlene Aguilar-Duarte, MA\n", + "2025-06-17 14:10:57,236 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:57,238 - Thread ID: 249591209\n", + "--------------------------------------------------------------------------------\n", + "idx: 293506\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. You indicated in your reply that metabolic panel will test for blood sugars but you didn’t order metabolic panel, only lipid panel if I understand your orders correctly.The lipid panel order says fasting not required. If that’s correct and you don’t want any other tests that require fasting, then I will reschedule lab appointment so results are in, in advance of my doctors visit.Otherwise early morning appointment (fasting) not available until after doctors visit Please confirm either way Don\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hello Don Dr Carper placed another lab order today 11/04/2024 for metabolic panel,hemoglobinA1C,CBC with Diff and PSA make sure when You go to Lab to ask them to do also lipid panel ordered on 11/01/2024 and fast for 12 hoursMarlene Aguilar-Duarte, MA\n", + "----------------------------------------\n", + "idx: 293505\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Lipid Panel with Calculated LDL ordered on 11/1/2024. For the past 2 years you have also ordered a PSA and Metabolic panel tests and in 2022 CBC w/o diff. Are you purposely not scheduling these tests this year?Also, I don't think we've ever tested for Hemoglobin A1c. I read that should be done after age 35 or so. Is that not the case.Lastly, the earliest, early morning (8 AM) lab appointment I could get is after my scheduled annual Medicare physical. If I truly don't need to fast I can move that to a date before the office visit so after answering the above , please confirm no fasting required. \n", + "----------------------------------------\n", + "Provider Response by AFP CARE TEAM POOL:\n", + "Hi Don, This is Irene Kwan, FNP-C responding on behalf of Dr. John Carper. In general, sometimes certain lab tests are not always ordered on a yearly basis, and only ordered if clinically necessary. For example, CBC may not be needed if there is no sign of fatigue, weakness, blood loss, history of anemia, or concerning presence of infection. Sometimes Medicare also does not cover for certain tests if deemed not medically necessary or at risk, thus patients may have to pay out of pocket for tests requested by the patient. Your metabolic panel test will check for a fasting blood sugar, and if it is elevated, then we can always check hemoglobin A1c with a fingerstick blood check in office. Your labs ordered on 11/1/2024 are recommended to be fasting so that we can accurately check your glucose level and lipid (cholesterol) levels. Thank you for your understanding, and should you have further questions about lab tests, it can be discussed at your upcoming appointment. Best, Alameda Family PhysiciansIrene Kwan, FNP-C, on behalf of Dr. John Carper(510)521-2300Please note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:10:57,239 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:57,239 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:57,240 - ✅ similarity: 0.5817\n", + "2025-06-17 14:10:57,240 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I am scheduled for a colonoscopy on 12/13 but have not received any prep medications yet. Is that normal? Should I expect a prescription to be sent to my pharmacy soon? Thanks,Simon\n", + "2025-06-17 14:10:57,240 - Provider's response to this similar message: Dear Simon,Thank you for reaching out. The gastro office usually sends the prep medication and provides you with procedure instructions. Please contact Dr.Huilan Cheng office, (510)548-6555 . Sincerely,Yazmin Rodriguez, MA\n", + "2025-06-17 14:10:57,241 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:57,242 - Thread ID: 252486740\n", + "--------------------------------------------------------------------------------\n", + "idx: 145918\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am scheduled for a colonoscopy on 12/13 but have not received any prep medications yet. Is that normal? Should I expect a prescription to be sent to my pharmacy soon? Thanks,Simon\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Dear Simon,Thank you for reaching out. The gastro office usually sends the prep medication and provides you with procedure instructions. Please contact Dr.Huilan Cheng office, (510)548-6555 . Sincerely,Yazmin Rodriguez, MA\n", + "----------------------------------------\n", + "2025-06-17 14:10:57,243 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:57,244 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:57,244 - ✅ similarity: 0.5744\n", + "2025-06-17 14:10:57,245 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Tsao,I got my blood tests results yesterday, and I’m very worried that my Glucose is high. It was slightly outside the normal range for non-fasting, and way outside the normal range for fasting. I didn’t fast but the only thing I ate was oatmeal and eggs and it was about 4 hours before the blood draw so I was very surprised that the glucose level wasn’t closer to the normal fasting range, and I assume it’s related my pancreas function. As you know, I’m very worried about pancreatic cancer.I am eager to get your analysis about it, and any other concerns about other test results, and to move quickly on whatever next step I should take.I am still struggling to eat food and still feeling discomfort after I do eat. Thank you,Ritsuko\n", + "2025-06-17 14:10:57,245 - Provider's response to this similar message: HI Ritsuko, I have not been able review your results until now and did not see the email that you had sent. Please note, Your results will release immediately, likely before I can review them. Once I review your results, which may be up to 3-4 business days, I will send comments regarding the results. We can check another test to make sure your blood sugar average (A1C) is in normal range as your fasting and non-fasting blood sugar can react to when you ate, what you ate, stress, etc. Your A1C has been ordered and sent electronically to Labcorp to be done non-fasting. You do not need to have the paper orders, but you can print them out at home through MyHealth (under tests-> ordered tests). You should try to schedule an appointment for your test at the lab (online or by phone), as they can be busy. Your results will release immediately, likely before I can review them. Once I review your results, which may be up to 3-4 business days, I will send comments regarding the results. Your white blood cell count was slightly low, but improved from your previous which is usually low. Your thyroid hormone, electrolytes, pancrease enzymes, liver and kidney function are normal. Your H.pylori stool test is negative for infection. Please follow up with Dr. Cheng regarding your GI symptoms. Lilian Li-Ning Tsao, MD, 10/21/2024, 8:39 AMI'm not in the office on Mondays, but check my inbox periodically. \n", + "2025-06-17 14:10:57,245 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:57,247 - Thread ID: 248313136\n", + "--------------------------------------------------------------------------------\n", + "idx: 358082\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsao,Thank you for your comments about my blood test results. And I could make an appointment at the quest for A1C test tomorrow afternoon.Best,Ritsuko\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 358081\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsao,I got my blood tests results yesterday, and I’m very worried that my Glucose is high. It was slightly outside the normal range for non-fasting, and way outside the normal range for fasting. I didn’t fast but the only thing I ate was oatmeal and eggs and it was about 4 hours before the blood draw so I was very surprised that the glucose level wasn’t closer to the normal fasting range, and I assume it’s related my pancreas function. As you know, I’m very worried about pancreatic cancer.I am eager to get your analysis about it, and any other concerns about other test results, and to move quickly on whatever next step I should take.I am still struggling to eat food and still feeling discomfort after I do eat. Thank you,Ritsuko\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "HI Ritsuko, I have not been able review your results until now and did not see the email that you had sent. Please note, Your results will release immediately, likely before I can review them. Once I review your results, which may be up to 3-4 business days, I will send comments regarding the results. We can check another test to make sure your blood sugar average (A1C) is in normal range as your fasting and non-fasting blood sugar can react to when you ate, what you ate, stress, etc. Your A1C has been ordered and sent electronically to Labcorp to be done non-fasting. You do not need to have the paper orders, but you can print them out at home through MyHealth (under tests-> ordered tests). You should try to schedule an appointment for your test at the lab (online or by phone), as they can be busy. Your results will release immediately, likely before I can review them. Once I review your results, which may be up to 3-4 business days, I will send comments regarding the results. Your white blood cell count was slightly low, but improved from your previous which is usually low. Your thyroid hormone, electrolytes, pancrease enzymes, liver and kidney function are normal. Your H.pylori stool test is negative for infection. Please follow up with Dr. Cheng regarding your GI symptoms. Lilian Li-Ning Tsao, MD, 10/21/2024, 8:39 AMI'm not in the office on Mondays, but check my inbox periodically. \n", + "----------------------------------------\n", + "2025-06-17 14:10:57,257 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:57,279 - ################################################################################START################################################################################\n", + "2025-06-17 14:10:57,290 - ✅ similarity: 0.5562\n", + "2025-06-17 14:10:57,291 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : My blood sugar is still high after taking medicine Metformin. In the morning 8.9mol/ mmliter. Converted thats 18 x8.9= 160. After eating it is 14x19=252. Does my medication need to be adjusted to compensate for the high blood sugar?\n", + "2025-06-17 14:10:57,291 - Provider's response to this similar message: Hi Yi,Thank you for reaching out. I understand your concern about your blood sugar levels. It seems that your blood sugar is still higher than we would like, even after starting metformin. It may be necessary to adjust your medication or consider additional treatments to better manage your blood sugar levels. I recommend scheduling an appointment so we can discuss this in more detail and make any necessary adjustments. Please use the Stanford MyHealth app to schedule your appointment.In the meantime, continue monitoring your blood sugar levels and follow the dietary recommendations we discussed. Looking forward to seeing you soon.Sujata Behera, PA-C, MA, MPH\n", + "2025-06-17 14:10:57,292 - -----------printing the whole thread-------------\n", + "2025-06-17 14:10:57,342 - Thread ID: 249144115\n", + "--------------------------------------------------------------------------------\n", + "idx: 315562\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My blood sugar is still high after taking medicine Metformin. In the morning 8.9mol/ mmliter. Converted thats 18 x8.9= 160. After eating it is 14x19=252. Does my medication need to be adjusted to compensate for the high blood sugar?\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Yi,Thank you for reaching out. I understand your concern about your blood sugar levels. It seems that your blood sugar is still higher than we would like, even after starting metformin. It may be necessary to adjust your medication or consider additional treatments to better manage your blood sugar levels. I recommend scheduling an appointment so we can discuss this in more detail and make any necessary adjustments. Please use the Stanford MyHealth app to schedule your appointment.In the meantime, continue monitoring your blood sugar levels and follow the dietary recommendations we discussed. Looking forward to seeing you soon.Sujata Behera, PA-C, MA, MPH\n", + "----------------------------------------\n", + "2025-06-17 14:10:57,346 - ################################################################################END################################################################################\n", + "2025-06-17 14:10:57,655 - Original Message:\n", + "2025-06-17 14:10:57,656 - original_query_message: Hi, I'm looking to refill my prescriptions for the 7.5 mg buspirone and the 40 mg omeprazole. Walgreens said their request for refill was denied by the provider. Would you be able to approve those prescriptions?Thanks,-Danny\n", + "2025-06-17 14:10:59,312 - Query Parameters:\n", + "2025-06-17 14:10:59,315 - query_message: Hi there, I wanted to reach out because I’ve been having trouble getting my prescriptions refilled lately. I take buspirone (7.5 mg) for my anxiety and omeprazole (40 mg) for reflux, and when I tried to pick them up at CVS, they told me the refills couldn’t be processed. I’ve noticed my heartburn has been flaring up again, and my anxiety feels a bit worse without the medication. Is it possible to help me get these filled or let me know if you need anything from me first? Thank you so much—I really appreciate your help!\n", + "2025-06-17 14:10:59,316 - receiver: SANTA CLARA PRIMARY CARE TASK POOL TEAM 1\n", + "2025-06-17 14:10:59,316 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:10:59,316 - specialty: Primary Care\n", + "2025-06-17 14:11:00,175 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:00,175 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:00,176 - ✅ similarity: 0.8006\n", + "2025-06-17 14:11:00,176 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi, I'm looking to refill my prescriptions for the 7.5 mg buspirone and the 40 mg omeprazole. Walgreens said their request for refill was denied by the provider. Would you be able to approve those prescriptions?Thanks,-Danny\n", + "2025-06-17 14:11:00,177 - Provider's response to this similar message: Hi Danny,Prescription busPIRone 7.5 mg tablet was sent to Walgreen's pharmacy on 10/21/2024 and omeprazole 40 mg capsule was sent on 9/30/2024 with 1 refill. Please contact Walgreen's pharmacy. Best regards,Tuyetmai Le, MAStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:11:00,177 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:00,184 - Thread ID: 248539685\n", + "--------------------------------------------------------------------------------\n", + "idx: 346005\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Tuyetmai,Thanks for the info. I'll follow up with them again, then.Best,Danny\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 346004\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, I'm looking to refill my prescriptions for the 7.5 mg buspirone and the 40 mg omeprazole. Walgreens said their request for refill was denied by the provider. Would you be able to approve those prescriptions?Thanks,-Danny\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hi Danny,Prescription busPIRone 7.5 mg tablet was sent to Walgreen's pharmacy on 10/21/2024 and omeprazole 40 mg capsule was sent on 9/30/2024 with 1 refill. Please contact Walgreen's pharmacy. Best regards,Tuyetmai Le, MAStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:11:00,184 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:00,185 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:00,185 - ✅ similarity: 0.6979\n", + "2025-06-17 14:11:00,186 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : Hi,I am currently out of refills for my lisinopril as well as hydrochlorothiazide. How can I go about getting these prescriptions refilled? Thanks,Drew\n", + "2025-06-17 14:11:00,187 - Provider's response to this similar message: Hello Mr.Mcdowell,My name is Maria Bustos and I am one of the patient care coordinators for Timothy Tsai, DO.To better assist you please provide us with the Pharmacy name so we can pend your medication refill for Dr. Tsai.Thank you for choosing Stanford Health Care!Maria E. Bustos Practice Care Coordinator Santa Clara Primary/Multispecialty Care P: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours. \n", + "2025-06-17 14:11:00,187 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:00,190 - Thread ID: 249841451\n", + "--------------------------------------------------------------------------------\n", + "idx: 279922\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you very much!-Drew\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 279921\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sorry for the delayed response, I’m currently traveling. Please send my prescriptions to my Walgreens pharmacy #03671 on Calavaras. Thanks,Drew\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Mcdowell,I went ahead and requested your refills for Lisinopril 20 mg & hydrochlorothiazide 12.5 mg . If there are any issues I will be sure to let you know. Otherwise please allow 1-7 business day for this to be processed and approved by your physician.Please contact your pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.Best regards,Maria BustosStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "idx: 279920\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I am currently out of refills for my lisinopril as well as hydrochlorothiazide. How can I go about getting these prescriptions refilled? Thanks,Drew\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello Mr.Mcdowell,My name is Maria Bustos and I am one of the patient care coordinators for Timothy Tsai, DO.To better assist you please provide us with the Pharmacy name so we can pend your medication refill for Dr. Tsai.Thank you for choosing Stanford Health Care!Maria E. Bustos Practice Care Coordinator Santa Clara Primary/Multispecialty Care P: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours. \n", + "----------------------------------------\n", + "2025-06-17 14:11:00,190 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:00,192 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:00,193 - ✅ similarity: 0.6961\n", + "2025-06-17 14:11:00,194 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hello, I need a prescription refill in my prescription. Please let me know what I need to do to get this prescription refilled.Thank you,\n", + "2025-06-17 14:11:00,195 - Provider's response to this similar message: Hi Jessica,Could you please let us know which one you need? You can also request it through your MyHealth account. Thank you!Best regards,Norma Torres MedinaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:11:00,196 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:00,198 - Thread ID: 251772812\n", + "--------------------------------------------------------------------------------\n", + "idx: 180964\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I did, however they needed more information.I am not sure what is the hold up now. It is for my Wegovy.Please let me know if you need anything else.Thank you,\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hi Jessica,I have submitted your refill request to Dr. Narula. I noticed that it was initially sent to a different provider, but I have redirected it to the correct provider. Once she signs it, we will let you know.Best regards,Norma Torres MedinaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "idx: 180963\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I need a prescription refill in my prescription. Please let me know what I need to do to get this prescription refilled.Thank you,\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hi Jessica,Could you please let us know which one you need? You can also request it through your MyHealth account. Thank you!Best regards,Norma Torres MedinaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:11:00,199 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:00,199 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:00,200 - ✅ similarity: 0.6598\n", + "2025-06-17 14:11:00,200 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi Dr. Tran,Could you please send my refill for my 10mg/325 Norco to Walgreens for pickup this coming Monday. Thanks so much,Eric Ventimiglia\n", + "2025-06-17 14:11:00,200 - Provider's response to this similar message: Hi Mr. Ventimiglia,I went ahead and requested your refills. If there are any issues I will be sure to let you know. Otherwise please allow 1-7 business day for this to be processed and approved by your physician.Please contact your pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.Best regards,Maria BustosStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:11:00,201 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:00,203 - Thread ID: 248674963\n", + "--------------------------------------------------------------------------------\n", + "idx: 338997\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Maria,I saw you replied to my email from earlier in the week, just wanted to make sure this was the message I sent a few hours ago. See Below and please pass on to Dr. Tran.Hi Dr. Tran,This is somewhat last minute and urgent, but my refill for my Norco 10mg/325 you sent in, is on pickup on the 29th. With that said, I have a training I have to leave for my work on the evening of the 28th. Would it be possible to update my script with Walgreens please to pick up on the 28th? This would be a massive massive help.I want to make sure this is taken care of before EOD so I am not stressing out over the weekend on how to proceed. Please let me know and thank you so much for your help.Thanks so much,Eric V. \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 338996\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tran,Could you please send my refill for my 10mg/325 Norco to Walgreens for pickup this coming Monday. Thanks so much,Eric Ventimiglia\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hi Mr. Ventimiglia,I went ahead and requested your refills. If there are any issues I will be sure to let you know. Otherwise please allow 1-7 business day for this to be processed and approved by your physician.Please contact your pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.Best regards,Maria BustosStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:11:00,204 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:00,204 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:00,204 - ✅ similarity: 0.6598\n", + "2025-06-17 14:11:00,205 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi Dr. Tran,Could you please send my refill for my 10mg/325 Norco to Walgreens for pickup this coming Monday.Thanks so much,Eric Ventimiglia\n", + "2025-06-17 14:11:00,205 - Provider's response to this similar message: Hello Eric I went ahead and requested your refills. If there are any issues, I will be sure to let you know. Otherwise, please allow 1-7 business days for this to be processed and approved by your physician.Please contact your pharmacy for updates on pick-up or delivery status if you receive your medications via mail. If you have any questions, feel free to reach out!Best regards,Norma Torres MedinaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:11:00,206 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:00,207 - Thread ID: 251149452\n", + "--------------------------------------------------------------------------------\n", + "idx: 212821\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tran,Could you please send my refill for my 10mg/325 Norco to Walgreens for pickup this coming Monday.Thanks so much,Eric Ventimiglia\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello Eric I went ahead and requested your refills. If there are any issues, I will be sure to let you know. Otherwise, please allow 1-7 business days for this to be processed and approved by your physician.Please contact your pharmacy for updates on pick-up or delivery status if you receive your medications via mail. If you have any questions, feel free to reach out!Best regards,Norma Torres MedinaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:11:00,208 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:00,937 - Original Message:\n", + "2025-06-17 14:11:00,938 - original_query_message: Hi, I’m traveling to India for 5 days on Dec 25. Been before 12 yrs ago. Looking to ensure vaccinations are up to date and stock up on any travel medicine (I got very sick last time with diarrhea etc). I booked a physical exam appt for Dec 13. Do I need to book a physical or tele ok? If tele is fine, I will try to some an earlier time. My other asks aren’t as urgent vs my upcoming travel plans. Thanks! \n", + "2025-06-17 14:11:02,474 - Query Parameters:\n", + "2025-06-17 14:11:02,475 - query_message: Hi there! I’m heading to India for about a week at the end of December, and I haven’t been since college (almost 10 years ago!). Last time I went, I ended up getting pretty sick with what I think was food poisoning—lots of stomach issues, and I was basically stuck in my hotel room for a couple days. I want to be more prepared this time, so I’m wondering about any vaccines or medications I should get before I leave, especially to help avoid stomach bugs or other travel-related illnesses. Also, do I actually need to come in for an office visit to get this sorted, or would a video appointment work just as well? I’d like to schedule something soon since my trip is coming up, but going into the clinic might be tricky with my work schedule. Appreciate any advice!\n", + "2025-06-17 14:11:02,476 - receiver: AMGP MYHEALTH POOL\n", + "2025-06-17 14:11:02,478 - department: FAMILY MEDICINE AMG PINOLE\n", + "2025-06-17 14:11:02,479 - specialty: Family Medicine\n", + "2025-06-17 14:11:03,045 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:03,045 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:03,048 - ✅ similarity: 0.7435\n", + "2025-06-17 14:11:03,049 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi, I’m traveling to India for 5 days on Dec 25. Been before 12 yrs ago. Looking to ensure vaccinations are up to date and stock up on any travel medicine (I got very sick last time with diarrhea etc). I booked a physical exam appt for Dec 13. Do I need to book a physical or tele ok? If tele is fine, I will try to some an earlier time. My other asks aren’t as urgent vs my upcoming travel plans. Thanks! \n", + "2025-06-17 14:11:03,049 - Provider's response to this similar message: Dear Justin, Thank you for reaching out to our office with inquiries about your upcoming travel plans. I am writing to inform you that our facility does not operate as a travel vaccine clinic. In light of this, we may need to send any necessary prescriptions for travel vaccines directly to your local pharmacy. I have also provided a list of travel clinics for your convenience.Please note that insurance coverage for travel consultations and vaccines may vary. We advise you to contact your insurance provider to inquire about coverage before making an appointment with our office.If you choose to schedule an appointment with our office, please call our scheduling team. When you call, please be prepared to provide the dates, destinations, and intervals for each location. Your travel consultation appointment must be scheduled at least 4 weeks prior to your departure date. If your departure is sooner, we recommend contacting a travel clinic from the list provided.Should you have any further questions or require additional information, please do not hesitate to contact us.Warm regards,Maria Arreola, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.htmlMaria Arreola, MAStanford Medicine Partners \n", + "2025-06-17 14:11:03,050 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:03,057 - Thread ID: 251870409\n", + "--------------------------------------------------------------------------------\n", + "idx: 176690\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Some of these immunizations don’t look correct eg tdap. Can you take a look at this record and make sure yours is updated accordingly? Thanks! \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Justin,Thank you. Your record has been updated to reflect your current vaccination status.Sincerely, Itzel Hirlas\n", + "----------------------------------------\n", + "idx: 176689\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks. Will take a look. Can I get my latest vaccination records? \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Justin,Record of your vaccines can be accessed in my health in the tab \"Health Summary\". Please feel free to contact SMP directly at 510-731-2676 for any questions regarding medical records. Sincerely,Yazmin Rodriguez, MA\n", + "----------------------------------------\n", + "idx: 176688\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, I’m traveling to India for 5 days on Dec 25. Been before 12 yrs ago. Looking to ensure vaccinations are up to date and stock up on any travel medicine (I got very sick last time with diarrhea etc). I booked a physical exam appt for Dec 13. Do I need to book a physical or tele ok? If tele is fine, I will try to some an earlier time. My other asks aren’t as urgent vs my upcoming travel plans. Thanks! \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Justin, Thank you for reaching out to our office with inquiries about your upcoming travel plans. I am writing to inform you that our facility does not operate as a travel vaccine clinic. In light of this, we may need to send any necessary prescriptions for travel vaccines directly to your local pharmacy. I have also provided a list of travel clinics for your convenience.Please note that insurance coverage for travel consultations and vaccines may vary. We advise you to contact your insurance provider to inquire about coverage before making an appointment with our office.If you choose to schedule an appointment with our office, please call our scheduling team. When you call, please be prepared to provide the dates, destinations, and intervals for each location. Your travel consultation appointment must be scheduled at least 4 weeks prior to your departure date. If your departure is sooner, we recommend contacting a travel clinic from the list provided.Should you have any further questions or require additional information, please do not hesitate to contact us.Warm regards,Maria Arreola, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.htmlMaria Arreola, MAStanford Medicine Partners \n", + "----------------------------------------\n", + "2025-06-17 14:11:03,059 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:03,061 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:03,062 - ✅ similarity: 0.5452\n", + "2025-06-17 14:11:03,063 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Krasny,I'm going to Thailand 2/27/25. I'm wondering if you think I should get any additional vaccines. I heard from friends that some of them got Hepatitis A and Typhoid vaccines before their trips, so I just want to make sure. I'm also not 100% sure if my typical vaccines are up to date. Thank you,Alicia\n", + "2025-06-17 14:11:03,063 - Provider's response to this similar message: Dear Alica, I hope this message finds you well. I am writing to inform you that our clinic does not offer travel vaccines. However, there are several travel vaccine clinics listed in your area that may be able to assist you. Please be advised that this type of visit is typically not covered by insurance. I recommend contacting your specific insurance provider for clarification on coverage related to travel vaccines.Thank you for your understanding.Regards, Crystal Servin, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html Thank you, Crystal MA \n", + "2025-06-17 14:11:03,064 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:03,066 - Thread ID: 255103502\n", + "--------------------------------------------------------------------------------\n", + "idx: 29560\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Krasny,I'm going to Thailand 2/27/25. I'm wondering if you think I should get any additional vaccines. I heard from friends that some of them got Hepatitis A and Typhoid vaccines before their trips, so I just want to make sure. I'm also not 100% sure if my typical vaccines are up to date. Thank you,Alicia\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Alica, I hope this message finds you well. I am writing to inform you that our clinic does not offer travel vaccines. However, there are several travel vaccine clinics listed in your area that may be able to assist you. Please be advised that this type of visit is typically not covered by insurance. I recommend contacting your specific insurance provider for clarification on coverage related to travel vaccines.Thank you for your understanding.Regards, Crystal Servin, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html Thank you, Crystal MA \n", + "----------------------------------------\n", + "idx: 29559\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Crystal,I'll reach out to these locations. Can you please confirm my typical vaccines are up to date?Thanks,Alicia\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Alicia, My name is Tino Smith, I am one of the Nurse Practitioners covering clinical messages. I am happy to help you today.On our and it only shows that you are due for flu and COVID, which I would recommend getting prior to traveling as well. You can check the CDC website for travel recommendations for all the vaccines that you will need traveling to that area and please follow-up at one of the travel clinics listed below thank you.Thank you,Aarentino Smith MSN, FNP-c.Please note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. '\n", + "----------------------------------------\n", + "2025-06-17 14:11:03,066 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:03,067 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:03,068 - ✅ similarity: 0.4813\n", + "2025-06-17 14:11:03,069 - Sender: MARKS, LISA [ S0103934] -> the retrieved similar message : I'm going to Vietnam on January 19 to January 28. Are there any vaccination requirements for travel out of the country? Thank you.\n", + "2025-06-17 14:11:03,069 - Provider's response to this similar message: Dear Loan, Thank you for reaching out to our office with inquiries about your upcoming travel plans. In order for us to assist you effectively, we kindly request that you provide the following information:Travel dates, travel destinations and intervals of each location.Please note that insurance coverage for travel consultations and vaccines may vary. We advise you to contact your insurance provider to inquire about coverage before making an appointment with our office.If you choose to schedule an appointment with our office, please call our scheduling team. When you call, please be prepared to provide the dates, destinations, and intervals for each location. Your travel consultation appointment must be scheduled at least 4 weeks prior to your departure date. If your departure is sooner, we recommend contacting a travel clinic from the list provided.Should you have any further questions or require additional information, please do not hesitate to contact us.Warm regards,Marlene Aguilar-Duarte, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html \n", + "2025-06-17 14:11:03,070 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:03,072 - Thread ID: 254599980\n", + "--------------------------------------------------------------------------------\n", + "idx: 54662\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I'm going to Vietnam on January 19 to January 28. Are there any vaccination requirements for travel out of the country? Thank you.\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Loan, Thank you for reaching out to our office with inquiries about your upcoming travel plans. In order for us to assist you effectively, we kindly request that you provide the following information:Travel dates, travel destinations and intervals of each location.Please note that insurance coverage for travel consultations and vaccines may vary. We advise you to contact your insurance provider to inquire about coverage before making an appointment with our office.If you choose to schedule an appointment with our office, please call our scheduling team. When you call, please be prepared to provide the dates, destinations, and intervals for each location. Your travel consultation appointment must be scheduled at least 4 weeks prior to your departure date. If your departure is sooner, we recommend contacting a travel clinic from the list provided.Should you have any further questions or require additional information, please do not hesitate to contact us.Warm regards,Marlene Aguilar-Duarte, MASHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html \n", + "----------------------------------------\n", + "2025-06-17 14:11:03,073 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:03,074 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:03,075 - ✅ similarity: 0.4807\n", + "2025-06-17 14:11:03,076 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Krasny, I’m traveling to the Philippines on December 21st and wanted to know is if I need any vaccinations before I go.Thanks,Paul\n", + "2025-06-17 14:11:03,077 - Provider's response to this similar message: Dear Paul,I hope this message finds you well. I am writing to inform you that our clinic does not offer travel vaccines. However, there are several travel vaccine clinics listed in your area that may be able to assist you. Please be advised that this type of visit is typically not covered by insurance. I recommend contacting your specific insurance provider for clarification on coverage related to travel vaccines.Thank you for your understanding.Regards, Itzel HirlasSHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html\n", + "2025-06-17 14:11:03,077 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:03,081 - Thread ID: 250762052\n", + "--------------------------------------------------------------------------------\n", + "idx: 233388\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for the info.\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 233387\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Krasny, I’m traveling to the Philippines on December 21st and wanted to know is if I need any vaccinations before I go.Thanks,Paul\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Paul,I hope this message finds you well. I am writing to inform you that our clinic does not offer travel vaccines. However, there are several travel vaccine clinics listed in your area that may be able to assist you. Please be advised that this type of visit is typically not covered by insurance. I recommend contacting your specific insurance provider for clarification on coverage related to travel vaccines.Thank you for your understanding.Regards, Itzel HirlasSHC Travel Medicine clinichttps://stanfordhealthcare.org/medical-clinics/travel-medicine-clinic.html211 Quarry Road2nd Floor, Suite 202Palo Alto, CA 94304Phone: 650-736-5700 Passport Healthhttps://www.passporthealthusa.com/locations333 Hegenberger Road, Suite 311Oakland, CA 94621Phone: 510-564-4251 2372 Ellsworth Street Suite EBerkeley, CA 94704Phone: 510-328-7466 SF Dept of HealthAITC Immunization & Travel Clinic101 Grove St, Suite 102San Francisco, CA 94102Phone: 415-554-2625https://www.sf.gov/information/aitc-services-and-prices Walgreens Pharmacyhttps://www.walgreens.com/topic/pharmacy/scheduler/yellow-fever-vaccine.jsp Costco Pharmacy through SafeGardhttps://www.costco.com/immunizations.html Safeway Pharmacyhttps://www.safeway.com/pharmacy/care-services/travel-health.html\n", + "----------------------------------------\n", + "2025-06-17 14:11:03,081 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:03,082 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:03,082 - ✅ similarity: 0.4339\n", + "2025-06-17 14:11:03,083 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi I’ve been experiencing nausea for the past couple of weeks. It’s on and off so not sure what’s causing this. I also need my flu vaccine for work. Is there any way I can come in this week? Thanks \n", + "2025-06-17 14:11:03,083 - Provider's response to this similar message: Hello Grisel, Pease call the office to schedule an appointment for nausea and flu shot, 510-724-9110. Yazmin Rodriguez, MA, 10/29/2024, 9:37 AM\n", + "2025-06-17 14:11:03,084 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:03,087 - Thread ID: 249125723\n", + "--------------------------------------------------------------------------------\n", + "idx: 316583\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi I’ve been experiencing nausea for the past couple of weeks. It’s on and off so not sure what’s causing this. I also need my flu vaccine for work. Is there any way I can come in this week? Thanks \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Grisel, Pease call the office to schedule an appointment for nausea and flu shot, 510-724-9110. Yazmin Rodriguez, MA, 10/29/2024, 9:37 AM\n", + "----------------------------------------\n", + "2025-06-17 14:11:03,088 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:03,490 - Original Message:\n", + "2025-06-17 14:11:03,491 - original_query_message: Hi Dr. Chiang.My prescription for vitamin D3 50,000 I.u. Has expired. Can you please provide me a prescription for 50,000 I.u.'s taken for once a week, 6 week prescription with renewals to last one year.Thanks!Oscar\n", + "2025-06-17 14:11:05,109 - Query Parameters:\n", + "2025-06-17 14:11:05,109 - query_message: Hi Dr. Chiang, I hope you’re doing well. I’ve been feeling pretty tired lately, and I remember last year you had me on a high-dose vitamin D3 regimen because my levels were low. I just realized my prescription for the 50,000 IU weekly capsules has run out, and I’m not sure if it’s safe for me to just stop or try to switch to a lower-dose over-the-counter supplement. Would you be able to send in a new prescription for the 50,000 IU dose (the kind I take once a week)? I think it was for 6 weeks at a time before — is it possible to arrange for automatic renewals for the rest of the year, just so there’s no gap? I’ve also been having some minor muscle aches and trouble sleeping again, which is why I think it’d be good to stay on top of this. Let me know what you think! Thank you!\n", + "2025-06-17 14:11:05,109 - receiver: SIM WEST MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:11:05,111 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:11:05,112 - specialty: Primary Care\n", + "2025-06-17 14:11:06,567 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:06,568 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:06,568 - ✅ similarity: 0.8249\n", + "2025-06-17 14:11:06,569 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Chiang.My prescription for vitamin D3 50,000 I.u. Has expired. Can you please provide me a prescription for 50,000 I.u.'s taken for once a week, 6 week prescription with renewals to last one year.Thanks!Oscar\n", + "2025-06-17 14:11:06,569 - Provider's response to this similar message: Hi Oscar, I sent the RX. We should recheck your levels to make sure they are not too high. I have placed the order to Quest and you can go at your convenience, no need to fast! \n", + "2025-06-17 14:11:06,570 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:06,577 - Thread ID: 253044034\n", + "--------------------------------------------------------------------------------\n", + "idx: 123396\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sounds good.I will take care of it this week.Thank you!\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 123395\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chiang.My prescription for vitamin D3 50,000 I.u. Has expired. Can you please provide me a prescription for 50,000 I.u.'s taken for once a week, 6 week prescription with renewals to last one year.Thanks!Oscar\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Hi Oscar, I sent the RX. We should recheck your levels to make sure they are not too high. I have placed the order to Quest and you can go at your convenience, no need to fast! \n", + "----------------------------------------\n", + "2025-06-17 14:11:06,578 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:06,578 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:06,579 - ✅ similarity: 0.7335\n", + "2025-06-17 14:11:06,579 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr.The pharmacy is not filling out my Vitamin D prescription. Please can send authorization for it.ThanksVijay \n", + "2025-06-17 14:11:06,580 - Provider's response to this similar message: Sent to Walgreens. May not be covered as it is an over the counter vitamin.Regards,Bryant Lin, MD\n", + "2025-06-17 14:11:06,580 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:06,583 - Thread ID: 251546656\n", + "--------------------------------------------------------------------------------\n", + "idx: 192451\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.The pharmacy is not filling out my Vitamin D prescription. Please can send authorization for it.ThanksVijay \n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Sent to Walgreens. May not be covered as it is an over the counter vitamin.Regards,Bryant Lin, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:06,584 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:06,585 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:06,586 - ✅ similarity: 0.7167\n", + "2025-06-17 14:11:06,587 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Vitamin D, 25-Hydroxyvitamin resulted on 12/30/24 at 7:10 PM.Hi Dr Chiang,re. vitamin D3, I am currently taking 1800 IU units of Vitamin D3.1 pill of 1000 IU and 800 IU with the Calcium pills that I take.To increase, I can take one additional pill but that would result in 2800 IU. Should I do that?re. osteoporosis, and the referral to the endocrinologist... in Palo Alto, they only have availability in August. In Pleasanton, it could be sooner, but if I start there, I cannot change.Should I wait until August to see the endocrinologist?re. kidney, Dr Tan wants to do a kidney biopsy ... perhaps, it may be better to have that done before seen the endocrinologist... but I am still concerned in waiting until August ..Thanks,Marcia\n", + "2025-06-17 14:11:06,587 - Provider's response to this similar message: Hi Marcia,I think waiting for August is OK, maybe we can also get on a wait list for cancellations? They are asking for some additional labs before they can schedule your appointment. They are 24 hour urine tests (sorry!) I have placed the lab orders, and you can stop by our lab anytime to get this done. You do not need an appointment. Increasing the vitamin D to 2800 units daily will be fine!Best,Kim Chiang \n", + "2025-06-17 14:11:06,588 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:06,590 - Thread ID: 254981378\n", + "--------------------------------------------------------------------------------\n", + "idx: 34677\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Vitamin D, 25-Hydroxyvitamin resulted on 12/30/24 at 7:10 PM.Hi Dr Chiang,re. vitamin D3, I am currently taking 1800 IU units of Vitamin D3.1 pill of 1000 IU and 800 IU with the Calcium pills that I take.To increase, I can take one additional pill but that would result in 2800 IU. Should I do that?re. osteoporosis, and the referral to the endocrinologist... in Palo Alto, they only have availability in August. In Pleasanton, it could be sooner, but if I start there, I cannot change.Should I wait until August to see the endocrinologist?re. kidney, Dr Tan wants to do a kidney biopsy ... perhaps, it may be better to have that done before seen the endocrinologist... but I am still concerned in waiting until August ..Thanks,Marcia\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Hi Marcia,I think waiting for August is OK, maybe we can also get on a wait list for cancellations? They are asking for some additional labs before they can schedule your appointment. They are 24 hour urine tests (sorry!) I have placed the lab orders, and you can stop by our lab anytime to get this done. You do not need an appointment. Increasing the vitamin D to 2800 units daily will be fine!Best,Kim Chiang \n", + "----------------------------------------\n", + "idx: 34676\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Chiang,per recommendations from the other doctor, I had to change how I was taking my calcium supplement and wait 2 weeks before doing the 24 hours urine. She said the body cannot absorb more than 600mg of calcium at a time ... ( I was taking all at once, I changed to twice a day). I will be bringing the 24hr urine Tomorrow, and after getting the results, I can try to make the appointment with the endocrinologist, I will.ask.to be placed in the waiting list.Thanks,Marcia\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:11:06,598 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:06,599 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:06,619 - ✅ similarity: 0.6742\n", + "2025-06-17 14:11:06,652 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you as well for a fast reply. I was unaware I needed an appt for my next refill, since I do not always look at the bottle for instructions from my doctor’s office. Currently my last dose is Saturday and I’m frustrated that I am not being given my medication until my next physical. I am concerned about what this will do to my health, I feel as if I have no choice but to discontinue the medication since I’m sure you won’t have a physical before this Saturday. When speaking to Dr. Quach in the past she advised in the event I decide to stop taking this medication, it has to be gradual. What do you suggest I do from now? Please call my cell phone 415-756-6295. Thank you. \n", + "2025-06-17 14:11:06,715 - Provider's response to this similar message: Jennifer LazoHello, I can get you in today at 3:30 pm or tomorrow. Dr. Quach is out until the 16th, so this will be with one of her colleagues. Can you come in? I am on hold with an insurance company, so I can't call right now, but monitoring my messages. Thank you, Pam Lewis, RNC\n", + "2025-06-17 14:11:06,740 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:06,766 - Thread ID: 255295848\n", + "--------------------------------------------------------------------------------\n", + "idx: 20993\n", + "Subject: RE: refill and appointment\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Is this still at the Palo Alro location, 211 Quarry?\n", + "----------------------------------------\n", + "Provider Response by LEWIS, PAMELA:\n", + "Jennifer LazoYes, that is correct. Pam Lewis, RNC\n", + "----------------------------------------\n", + "idx: 20992\n", + "Subject: RE: refill and appointment\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I can be in today at 3:30pm\n", + "----------------------------------------\n", + "Provider Response by LEWIS, PAMELA:\n", + "Jennifer LazoHello, I have you scheduled at 3:20 pm with Dr. Skhiri. Dept. 305. Thank you for being so flexible! Pam Lewis, RNC\n", + "----------------------------------------\n", + "idx: 20991\n", + "Subject: RE: refill and appointment\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Let me speak to my boss to see if I can n leave today… give me a couple minutes. Thank you so much. \n", + "----------------------------------------\n", + "Provider Response by LEWIS, PAMELA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 20990\n", + "Subject: RE: refill and appointment\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you as well for a fast reply. I was unaware I needed an appt for my next refill, since I do not always look at the bottle for instructions from my doctor’s office. Currently my last dose is Saturday and I’m frustrated that I am not being given my medication until my next physical. I am concerned about what this will do to my health, I feel as if I have no choice but to discontinue the medication since I’m sure you won’t have a physical before this Saturday. When speaking to Dr. Quach in the past she advised in the event I decide to stop taking this medication, it has to be gradual. What do you suggest I do from now? Please call my cell phone 415-756-6295. Thank you. \n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Jennifer LazoHello, I can get you in today at 3:30 pm or tomorrow. Dr. Quach is out until the 16th, so this will be with one of her colleagues. Can you come in? I am on hold with an insurance company, so I can't call right now, but monitoring my messages. Thank you, Pam Lewis, RNC\n", + "----------------------------------------\n", + "2025-06-17 14:11:06,769 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:06,771 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:06,791 - ✅ similarity: 0.6738\n", + "2025-06-17 14:11:06,807 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Caceres,Happy New Year!I have a physical exam coming up on Feb. 19th and I thought I can do blood work before I see you so can you please order the full blood work including vitamin D ?I can then go to the lab when I have time before my appointment with you.Thank you,Margaret \n", + "2025-06-17 14:11:06,821 - Provider's response to this similar message: Dear Margaret Lee, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Respectfully,Jackie Olivo PCCStanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "2025-06-17 14:11:06,833 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:06,858 - Thread ID: 255235996\n", + "--------------------------------------------------------------------------------\n", + "idx: 23641\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Margaret Lee, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Respectfully,Jackie Olivo PCCStanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "Provider Response by CACERES, WENDY:\n", + "Hello Margaret, Dr. Caceres is out of the office currently. I am one of the other physicians in clinic helping to cover her messages today. She will be back in clinic next week. I placed some routine blood test orders for you including vitamin D which you can have completed at your convenience. Some insurances don't cover vitamin D as a routine screening lab, but it looks like you've had this checked before with your routine labs in the past so if you haven't had any issues before it shouldn't be an issue this time, but I like to give patient's a heads up that vitamin D tests are sometimes not covered. Please let us know if you have any questions. Best wishes, Kevin Lutley, MD \n", + "----------------------------------------\n", + "idx: 23640\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Caceres,Happy New Year!I have a physical exam coming up on Feb. 19th and I thought I can do blood work before I see you so can you please order the full blood work including vitamin D ?I can then go to the lab when I have time before my appointment with you.Thank you,Margaret \n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Dear Margaret Lee, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Respectfully,Jackie Olivo PCCStanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "2025-06-17 14:11:06,868 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:07,343 - Original Message:\n", + "2025-06-17 14:11:07,343 - original_query_message: Hi Emily,I did my labs on 1/8. Could you please fax the results to one of my doctors, she is the only one not at Stanford or Menlo Medical.Vanna Sutherland, MD(650)357-1067Thank you,Maureen \n", + "2025-06-17 14:11:08,933 - Query Parameters:\n", + "2025-06-17 14:11:08,934 - query_message: Hi Emily,Hope you’re well. I had some blood work done on January 8th and was wondering if you could share the results with my new primary care physician, Dr. Lisa Chen (her office number is (650)529-8231). She isn’t connected with Stanford or Menlo, so she doesn’t have access to my records there.Also, I’ve still been feeling pretty tired lately and just want to make sure everything looks okay with my thyroid and vitamin levels. If you could let me know if you see anything that stands out, I’d really appreciate it.Thank you so much for your help!Best,Alyssa\n", + "2025-06-17 14:11:08,937 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:11:08,938 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:11:08,939 - specialty: Internal Medicine\n", + "2025-06-17 14:11:13,054 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:13,054 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:13,055 - ✅ similarity: 0.7615\n", + "2025-06-17 14:11:13,055 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Jemelian,Can you please send in a referral to Quest to get our ( Husband and I) blood work before our appointment, please. On my referral please have them check for thyroid. Thanks\n", + "2025-06-17 14:11:13,056 - Provider's response to this similar message: Hi Erika, Thank you for your message. We can send over your lab orders electronically to Quest for your upcoming physical exam with Dr. Jemelian. These labs will include a thyroid blood test along with the other standard lab tests. Please have your husband send us a Myhealth message using his own account, so we can have this information documented in his chart. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:13,057 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:13,059 - Thread ID: 254499891\n", + "--------------------------------------------------------------------------------\n", + "idx: 59270\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Erika, Thank you for your message. We can send over your lab orders electronically to Quest for your upcoming physical exam with Dr. Jemelian. These labs will include a thyroid blood test along with the other standard lab tests. Please have your husband send us a Myhealth message using his own account, so we can have this information documented in his chart. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by JEMELIAN_PAUL_MMC_MD:\n", + "No response\n", + "----------------------------------------\n", + "idx: 59269\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Jemelian,Can you please send in a referral to Quest to get our ( Husband and I) blood work before our appointment, please. On my referral please have them check for thyroid. Thanks\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Erika, Thank you for your message. We can send over your lab orders electronically to Quest for your upcoming physical exam with Dr. Jemelian. These labs will include a thyroid blood test along with the other standard lab tests. Please have your husband send us a Myhealth message using his own account, so we can have this information documented in his chart. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:13,060 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:13,061 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:13,062 - ✅ similarity: 0.7476\n", + "2025-06-17 14:11:13,062 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Fresco,Hope you’re doing well! I wanted to see if I could do a general blood panel to see how my levels are at as well test my thyroid. Over the past few months I have been consistently tired and been gaining weight. I was hoping doing some blood work could give some insight. Thanks,Ashley \n", + "2025-06-17 14:11:13,063 - Provider's response to this similar message: Hi Ashley, Thank you for your message. Dr. Fresco reviewed your message and states that you are due for a physical exam. Please call our scheduling desk at 650-498-6500, so they can assist you with an appointment. Once you have been scheduled, blood tests will be ordered for you to complete prior to your appointment. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:13,063 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:13,065 - Thread ID: 252048683\n", + "--------------------------------------------------------------------------------\n", + "idx: 166519\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Jessica, Thank you for getting back to me. I was actually able to go online and book an appointment for tomorrow at 1:30. Thanks, Ashley\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 166518\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Fresco,Hope you’re doing well! I wanted to see if I could do a general blood panel to see how my levels are at as well test my thyroid. Over the past few months I have been consistently tired and been gaining weight. I was hoping doing some blood work could give some insight. Thanks,Ashley \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ashley, Thank you for your message. Dr. Fresco reviewed your message and states that you are due for a physical exam. Please call our scheduling desk at 650-498-6500, so they can assist you with an appointment. Once you have been scheduled, blood tests will be ordered for you to complete prior to your appointment. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:13,066 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:13,067 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:13,068 - ✅ similarity: 0.7294\n", + "2025-06-17 14:11:13,068 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello DoctorI wanted to know if I can go over my blood test results from last time if that is okay with you because I don’t know how to read the results. Please call me as soon as you can. Thank you. 650-387-0702\n", + "2025-06-17 14:11:13,069 - Provider's response to this similar message: Hi Ms. Moreno,Please call our office if you'd like to schedule an appointment (in person or video visit) if you'd like to further discuss your lab results and his recommendations. Phone: 650-498-6500 or self-schedule through myhealth Appointments. He had reviewed your 10/4 test results and advised:\"Your screening tests for rheumatoid arthritis or other autoimmune conditions were normal. Be well,Alan Pinyavat, MD, 10/8/2024, 8:35 AM Written by Alan Pinyavat, MD on 10/8/2024 8:36 AM PDT\" Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:13,069 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:13,071 - Thread ID: 248876120\n", + "--------------------------------------------------------------------------------\n", + "idx: 329517\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello DoctorI wanted to know if I can go over my blood test results from last time if that is okay with you because I don’t know how to read the results. Please call me as soon as you can. Thank you. 650-387-0702\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Moreno,Please call our office if you'd like to schedule an appointment (in person or video visit) if you'd like to further discuss your lab results and his recommendations. Phone: 650-498-6500 or self-schedule through myhealth Appointments. He had reviewed your 10/4 test results and advised:\"Your screening tests for rheumatoid arthritis or other autoimmune conditions were normal. Be well,Alan Pinyavat, MD, 10/8/2024, 8:35 AM Written by Alan Pinyavat, MD on 10/8/2024 8:36 AM PDT\" Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:13,072 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:13,072 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:13,073 - ✅ similarity: 0.7147\n", + "2025-06-17 14:11:13,073 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you - I’ll go tomorrow. Please confirm that the blood draw is a comprehensive one, including thyroid and cholesterol levels.Valerie\n", + "2025-06-17 14:11:13,073 - Provider's response to this similar message: Hello Valerie,Yes, the labs ordered for you are all of Dr. Waltuch's routine ones for her physical, as well as a Hepatitis B screening (which we do at least once for all of our patients aged 18-79 as a routine health maintenance measure). Best,Dana\n", + "2025-06-17 14:11:13,074 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:13,075 - Thread ID: 254876861\n", + "--------------------------------------------------------------------------------\n", + "idx: 39871\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you - I’ll go tomorrow. Please confirm that the blood draw is a comprehensive one, including thyroid and cholesterol levels.Valerie\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Valerie,Yes, the labs ordered for you are all of Dr. Waltuch's routine ones for her physical, as well as a Hepatitis B screening (which we do at least once for all of our patients aged 18-79 as a routine health maintenance measure). Best,Dana\n", + "----------------------------------------\n", + "idx: 39870\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Waltuch,I have an annual exam with you scheduled for January 13. I went to the lab for a blood draw on January 6. There was no blood draw order available for me from your office. And the waiting room was overflowing. The nurse said she had to obtain an order from your office and in the interim, I left. I presume there will be an order on file tomorrow January 7 when I return for the blood draw.Please confirm. Thank you.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Valerie,I've just placed the lab orders for you, so if you're still fasting (nothing to eat or drink except plain water for 10 hours prior), you can return to the lab for your blood draw! Otherwise, you can return tomorrow.Take care,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Monday 1/20 for MLK Jr Day\n", + "----------------------------------------\n", + "2025-06-17 14:11:13,076 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:13,076 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:13,077 - ✅ similarity: 0.7062\n", + "2025-06-17 14:11:13,077 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Pinyavat,Good morning. Just looked at my test results. Seems like most of it is fine except for Thyroid related tests but I’m certainly no expert. When you have a moment, please let me know what you think. BestPaul\n", + "2025-06-17 14:11:13,077 - Provider's response to this similar message: Hi Mr. Rydberg,Dr. Pinyavat had reviewed this test result, and advised:\"Your testing showed hypothyroidism and you would benefit from a low dose thyroid medication. I would suggest starting with synthroid 25mcg and repeating testing in about 6 weeks. I will send the script to the pharmacy. Written by Alan Pinyavat, MD on 11/15/2024 8:46 AM PST\" Please confirm that you have received this message, and let us know if any further questions/concerns. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:13,078 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:13,080 - Thread ID: 250750323\n", + "--------------------------------------------------------------------------------\n", + "idx: 234076\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks. I’m out of town but can pick up on Monday. Paul\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 234075\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Pinyavat,Good morning. Just looked at my test results. Seems like most of it is fine except for Thyroid related tests but I’m certainly no expert. When you have a moment, please let me know what you think. BestPaul\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Rydberg,Dr. Pinyavat had reviewed this test result, and advised:\"Your testing showed hypothyroidism and you would benefit from a low dose thyroid medication. I would suggest starting with synthroid 25mcg and repeating testing in about 6 weeks. I will send the script to the pharmacy. Written by Alan Pinyavat, MD on 11/15/2024 8:46 AM PST\" Please confirm that you have received this message, and let us know if any further questions/concerns. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:13,081 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:13,840 - Original Message:\n", + "2025-06-17 14:11:13,842 - original_query_message: Dr Manugian,1). Last week I had ultra sound scan of my neck area I think as follow up of previous scan. 2). Recently I talked to the heart rhythm nurse practitioner about the Zio heart rhythm data collection. She said she’d reach out to you regarding a referral to cardiology. I’m not fully clear the reason why the referral since there was no incident of AFIB. Would you mind elaborating further?3) I’m wondering if you have a recommendation regarding ear canal care regarding ear wax hygiene. I recently acquired hearing aids that get clogged. I did ask the audiologist this question. 4) I see a therapist from the list you provided. I have a session every other week. Suzanne is a soldier with infusion regiment and experienced an unexpected lung and knee inflammation side effects, hospitalization for two weeks. The oncologist suggests holiday infusion reprieve (after 15 rounds) My family dynamic (kids) is shifting, Suzanne has a needed therapist now . Regards wr\n", + "2025-06-17 14:11:15,586 - Query Parameters:\n", + "2025-06-17 14:11:15,588 - query_message: Hi Dr. Manugian,I wanted to check in with a few things that have been on my mind lately. Last week, I went in for another neck ultrasound—my doctor said it was just to “monitor” some things from my last visit, but I wasn’t completely sure if they saw something new or if this is just routine. If you have any insights on what specifically they’re looking for, I’d really appreciate it.On another note, I’ve been in touch with the cardiac clinic about my recent Zio monitor recording. Even though I didn’t feel any episodes and haven’t been told I have AFib, they mentioned a possible follow-up with a cardiologist. Does this mean they found something they’re concerned about, or is it just standard protocol to get a second opinion?Switching gears, I recently started using hearing aids, and I’m having trouble keeping them clean—seems like ear wax builds up much faster now. The audiologist mentioned over-the-counter drops, but I’m worried about using those too often. Do you have any tips on how to manage ear wax, especially now that I’m wearing this device most of the day?Therapy-wise, I took your advice and started seeing someone regularly, which has really helped. Our family has had a rough patch recently—my sister, who’s undergoing infusion treatments, ended up in the hospital unexpectedly with some lung issues, and it’s thrown us all for a loop. The oncologist is thinking about pausing her treatments for a bit. All of this is weighing on me, especially as my kids are getting older and our routines are changing. Appreciate any guidance you can offer—thanks again for your support!Best, Alex\n", + "2025-06-17 14:11:15,589 - receiver: PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL\n", + "2025-06-17 14:11:15,590 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:11:15,591 - specialty: Primary Care\n", + "2025-06-17 14:11:16,095 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:16,095 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:16,096 - ✅ similarity: 0.8635\n", + "2025-06-17 14:11:16,096 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Manugian,1). Last week I had ultra sound scan of my neck area I think as follow up of previous scan. 2). Recently I talked to the heart rhythm nurse practitioner about the Zio heart rhythm data collection. She said she’d reach out to you regarding a referral to cardiology. I’m not fully clear the reason why the referral since there was no incident of AFIB. Would you mind elaborating further?3) I’m wondering if you have a recommendation regarding ear canal care regarding ear wax hygiene. I recently acquired hearing aids that get clogged. I did ask the audiologist this question. 4) I see a therapist from the list you provided. I have a session every other week. Suzanne is a soldier with infusion regiment and experienced an unexpected lung and knee inflammation side effects, hospitalization for two weeks. The oncologist suggests holiday infusion reprieve (after 15 rounds) My family dynamic (kids) is shifting, Suzanne has a needed therapist now . Regards wr\n", + "2025-06-17 14:11:16,099 - Provider's response to this similar message: Hi Wes, Thanks for reaching out and thanks for the update about this difficult time that your family is going through. 1) the follow-up thyroid ultrasound was stable, and we should plan on rechecking one additional ultrasound in two years to ensure continued stability 2) I haven't heard from cardiology yet about heart rhythm data collection, I'll follow-up with you. 3) Definitely, debrox is a useful way to manage ear wax at home. I'll include some more info below. 4) Glad that you're both seeing therapy currently, I hope that it's helpful. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.Earwax Blockage: Care InstructionsOverview Earwax is a natural substance that protects the ear canal. Normally, earwax drains from the ears and does not cause problems. Sometimes earwax builds up in the ear canal and hardens. Earwax blockage (also called cerumen impaction) can cause some loss of hearing and pain. When wax is tightly packed, you will need to have your doctor remove it.Follow-up care is a key part of your treatment and safety. Be sure to make and go to all appointments, and call your doctor if you are having problems. It's also a good idea to know your test results and keep a list of the medicines you take.How can you care for yourself at home?Do not try to remove earwax with cotton swabs, fingers, or other objects. This can make the blockage worse and damage the eardrum.If your doctor recommends that you try to remove earwax at home:Soften and loosen the earwax with warm mineral oil. You also can try hydrogen peroxide mixed with an equal amount of room temperature water. Place 2 drops of the fluid, warmed to body temperature, in the ear two times a day for up to 5 days.Once the wax is loose and soft, all that is usually needed to remove it from the ear canal is a gentle, warm shower. Direct the water into the ear, then tip your head to let the earwax drain out. Use a towel to gently dry your ear.If the warm mineral oil and shower do not work, use an over-the-counter wax softener. Read and follow all instructions on the label. After using the wax softener, use an ear syringe to gently flush the ear. Make sure the flushing solution is body temperature. Cool or hot fluids in the ear can cause dizziness.When should you call for help? Call your doctor now or seek immediate medical care if: Pus or blood drains from your ear. Your ears are ringing or feel full. You have a loss of hearing. Watch closely for changes in your health, and be sure to contact your doctor if: You have pain or reduced hearing after 1 week of home treatment. You have any new symptoms, such as nausea or balance problems. Where can you learn more?Login to MyHealth at https://myhealth.stanfordhealthcare.org. Enter Q495 in the search box to get more information about this topic.Not on MyHealth? Go to https://myhealth.stanfordhealthcare.org and click the \"Create New Account\" link to enter the access code on the MyHealth activation letter you received during a recent visit to Stanford Health Care.Current as of: September 27, 2023Content Version: 14.2© 2024 Ignite Healthwise, LLC. Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "2025-06-17 14:11:16,101 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:16,109 - Thread ID: 250850973\n", + "--------------------------------------------------------------------------------\n", + "idx: 229015\n", + "Subject: RE:Test Results Question; metoprolol side effect\n", + "----------------------------------------\n", + "Date Sent: 2024-11-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Manugian,Thank you.My daily med regimen includes Claritin. It does not suppress metoprolol itching.Regards,Wes\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 229014\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Wes, Thanks for reaching out. Skin rash and itching can be a side effect of metoprolol. It would be reasonable to consider an alternative medication with cardiology, I'll reach out to them as well. You can use antihistamines like claritin to manage the itching. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "Provider Response by OSTER, MADELEINE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 229013\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Manugian,I recently sent this question to the heart rhythm NP ….—————————Hi Madeleine,I’m experiencing the metoprolol pill side effect of strong itching primarily across my back. The itching is quite disruptive throughout the day. I take this pill in the morning with the daily Eliquist blood thinner (1st if 2) and Claritin antihistamine. Is there an alternative medication?RegardsWes————————-Doctor, is there something we can do to address my itching side effect of the metoprolol?RegardsWes\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Wes, Thanks for reaching out. Skin rash and itching can be a side effect of metoprolol. It would be reasonable to consider an alternative medication with cardiology, I'll reach out to them as well. You can use antihistamines like claritin to manage the itching. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 229012\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Wes, Just following up on the rhythm clinic's recommendation. They requested referral to general cardiology to work up the non-sustained ventricular tachycardia episodes that were noted on the heart monitor. Often times general cardiology will start with a kind of stress test to evaluate for decreased blood flow to parts of the heart that can trigger these episodes. I went ahead and sent the referral for you. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "Provider Response by OSTER, MADELEINE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 229011\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Wes, Thanks for reaching out and thanks for the update about this difficult time that your family is going through. 1) the follow-up thyroid ultrasound was stable, and we should plan on rechecking one additional ultrasound in two years to ensure continued stability 2) I haven't heard from cardiology yet about heart rhythm data collection, I'll follow-up with you. 3) Definitely, debrox is a useful way to manage ear wax at home. I'll include some more info below. 4) Glad that you're both seeing therapy currently, I hope that it's helpful. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.Earwax Blockage: Care InstructionsOverview Earwax is a natural substance that protects the ear canal. Normally, earwax drains from the ears and does not cause problems. Sometimes earwax builds up in the ear canal and hardens. Earwax blockage (also called cerumen impaction) can cause some loss of hearing and pain. When wax is tightly packed, you will need to have your doctor remove it.Follow-up care is a key part of your treatment and safety. Be sure to make and go to all appointments, and call your doctor if you are having problems. It's also a good idea to know your test results and keep a list of the medicines you take.How can you care for yourself at home?Do not try to remove earwax with cotton swabs, fingers, or other objects. This can make the blockage worse and damage the eardrum.If your doctor recommends that you try to remove earwax at home:Soften and loosen the earwax with warm mineral oil. You also can try hydrogen peroxide mixed with an equal amount of room temperature water. Place 2 drops of the fluid, warmed to body temperature, in the ear two times a day for up to 5 days.Once the wax is loose and soft, all that is usually needed to remove it from the ear canal is a gentle, warm shower. Direct the water into the ear, then tip your head to let the earwax drain out. Use a towel to gently dry your ear.If the warm mineral oil and shower do not work, use an over-the-counter wax softener. Read and follow all instructions on the label. After using the wax softener, use an ear syringe to gently flush the ear. Make sure the flushing solution is body temperature. Cool or hot fluids in the ear can cause dizziness.When should you call for help? Call your doctor now or seek immediate medical care if: Pus or blood drains from your ear. Your ears are ringing or feel full. You have a loss of hearing. Watch closely for changes in your health, and be sure to contact your doctor if: You have pain or reduced hearing after 1 week of home treatment. You have any new symptoms, such as nausea or balance problems. Where can you learn more?Login to MyHealth at https://myhealth.stanfordhealthcare.org. Enter Q495 in the search box to get more information about this topic.Not on MyHealth? Go to https://myhealth.stanfordhealthcare.org and click the \"Create New Account\" link to enter the access code on the MyHealth activation letter you received during a recent visit to Stanford Health Care.Current as of: September 27, 2023Content Version: 14.2© 2024 Ignite Healthwise, LLC. Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "----------------------------------------\n", + "Provider Response by OSTER, MADELEINE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 229010\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Manugian,1). Last week I had ultra sound scan of my neck area I think as follow up of previous scan. 2). Recently I talked to the heart rhythm nurse practitioner about the Zio heart rhythm data collection. She said she’d reach out to you regarding a referral to cardiology. I’m not fully clear the reason why the referral since there was no incident of AFIB. Would you mind elaborating further?3) I’m wondering if you have a recommendation regarding ear canal care regarding ear wax hygiene. I recently acquired hearing aids that get clogged. I did ask the audiologist this question. 4) I see a therapist from the list you provided. I have a session every other week. Suzanne is a soldier with infusion regiment and experienced an unexpected lung and knee inflammation side effects, hospitalization for two weeks. The oncologist suggests holiday infusion reprieve (after 15 rounds) My family dynamic (kids) is shifting, Suzanne has a needed therapist now . Regards wr\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Wes, Thanks for reaching out and thanks for the update about this difficult time that your family is going through. 1) the follow-up thyroid ultrasound was stable, and we should plan on rechecking one additional ultrasound in two years to ensure continued stability 2) I haven't heard from cardiology yet about heart rhythm data collection, I'll follow-up with you. 3) Definitely, debrox is a useful way to manage ear wax at home. I'll include some more info below. 4) Glad that you're both seeing therapy currently, I hope that it's helpful. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.Earwax Blockage: Care InstructionsOverview Earwax is a natural substance that protects the ear canal. Normally, earwax drains from the ears and does not cause problems. Sometimes earwax builds up in the ear canal and hardens. Earwax blockage (also called cerumen impaction) can cause some loss of hearing and pain. When wax is tightly packed, you will need to have your doctor remove it.Follow-up care is a key part of your treatment and safety. Be sure to make and go to all appointments, and call your doctor if you are having problems. It's also a good idea to know your test results and keep a list of the medicines you take.How can you care for yourself at home?Do not try to remove earwax with cotton swabs, fingers, or other objects. This can make the blockage worse and damage the eardrum.If your doctor recommends that you try to remove earwax at home:Soften and loosen the earwax with warm mineral oil. You also can try hydrogen peroxide mixed with an equal amount of room temperature water. Place 2 drops of the fluid, warmed to body temperature, in the ear two times a day for up to 5 days.Once the wax is loose and soft, all that is usually needed to remove it from the ear canal is a gentle, warm shower. Direct the water into the ear, then tip your head to let the earwax drain out. Use a towel to gently dry your ear.If the warm mineral oil and shower do not work, use an over-the-counter wax softener. Read and follow all instructions on the label. After using the wax softener, use an ear syringe to gently flush the ear. Make sure the flushing solution is body temperature. Cool or hot fluids in the ear can cause dizziness.When should you call for help? Call your doctor now or seek immediate medical care if: Pus or blood drains from your ear. Your ears are ringing or feel full. You have a loss of hearing. Watch closely for changes in your health, and be sure to contact your doctor if: You have pain or reduced hearing after 1 week of home treatment. You have any new symptoms, such as nausea or balance problems. Where can you learn more?Login to MyHealth at https://myhealth.stanfordhealthcare.org. Enter Q495 in the search box to get more information about this topic.Not on MyHealth? Go to https://myhealth.stanfordhealthcare.org and click the \"Create New Account\" link to enter the access code on the MyHealth activation letter you received during a recent visit to Stanford Health Care.Current as of: September 27, 2023Content Version: 14.2© 2024 Ignite Healthwise, LLC. Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "----------------------------------------\n", + "2025-06-17 14:11:16,110 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:16,111 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:16,111 - ✅ similarity: 0.6763\n", + "2025-06-17 14:11:16,112 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi ZhiI hope you are doing well. I had a few follow ups. For the colon cancer test, can you please send me the kit version vs the in hospital test? For the cardiology check, you had mentioned that we can also request an offline review of the historical results for feedback if there are any false positives. Can you please share some details on that?Thanks!!\n", + "2025-06-17 14:11:16,112 - Provider's response to this similar message: Hi Amit,I've placed an order for the FIT test for you. You may pick up a test from our office. Ideally, you would establish with preventative cardiology as discussed in our visit, but we could do an e-consult, where I write the question on next steps for prevention on your cholesterol given your elevated Lpa and Ca score of 0. Given your LDL is 147, I've seen another patient with similar history managed by cardiology who recommended an LDL goal of <70, but we could present this question to cardiology to see their personalized recommendation. It may have an additional cost of ~$30, but the response time is within 72 business hours.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:11:16,113 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:16,116 - Thread ID: 252578851\n", + "--------------------------------------------------------------------------------\n", + "idx: 142132\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! Please request the e-consult. Please let me know what we hear back. \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Amit,I've heard back from cardiology. They do not recommend statin for you at this time. Please see the response below:Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley=============================My Clinical Question (condition: hyperlipidemia): 47 y M with FMHx late CAD, ASCVD 3.7%, calcium score 0 2020 elevated LpA 129 with LDL 147. Would you recommend starting on a statin?The 10-year ASCVD risk score (Arnett DK, et al., 2019) is: 3.7% Values used to calculate the score: Age: 47 years Sex: Male Is Non-Hispanic African American: No Diabetic: No Tobacco smoker: No Systolic Blood Pressure: 123 mmHg Is BP treated: No HDL Cholesterol: 38 mg/dL Total Cholesterol: 218 mg/dL My most current assessment of this problem can be found in the note dated 10/11/2024. eCONSULT RESPONSE - based on chart review only Recommendation and Rationale:Based on the provided data, given ASCVD risk is well below 7.5% over the next 10 years, and the fact that his CAC is zero, statin therapy is not needed at this time. Contingency Plan: If CAC is repeated in the future, and the score is non-zero, can favor statin if score is 1-99, and recommend statin if CAC is 100 or above. Justin C. Lee, MD, FACC \n", + "----------------------------------------\n", + "idx: 142131\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi ZhiI hope you are doing well. I had a few follow ups. For the colon cancer test, can you please send me the kit version vs the in hospital test? For the cardiology check, you had mentioned that we can also request an offline review of the historical results for feedback if there are any false positives. Can you please share some details on that?Thanks!!\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Amit,I've placed an order for the FIT test for you. You may pick up a test from our office. Ideally, you would establish with preventative cardiology as discussed in our visit, but we could do an e-consult, where I write the question on next steps for prevention on your cholesterol given your elevated Lpa and Ca score of 0. Given your LDL is 147, I've seen another patient with similar history managed by cardiology who recommended an LDL goal of <70, but we could present this question to cardiology to see their personalized recommendation. It may have an additional cost of ~$30, but the response time is within 72 business hours.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:11:16,117 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:16,118 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:16,120 - ✅ similarity: 0.6726\n", + "2025-06-17 14:11:16,120 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good afternoon,I really enjoyed our first meeting. Thank you for being my new PCP. There are three things remaining from our initial meeting.1. We did not have time to discuss my IT issue which started September 14. I still am having significant pain in my lower back and down my left leg. Wondering if an MRI is in order? 2. Can I get a blood test for alpha gal?3. I would like to transfer the cardiology care to Stanford also. My cardiologist referred me for ablation. Can you refer me within Stanford? Thanks so much and Happy Holidays\n", + "2025-06-17 14:11:16,121 - Provider's response to this similar message: Hi Fred, Thanks for reaching out, it was nice to meet you as well. Would you arrange a follow-up video visit to discuss the remaining issues? You should be able to use the MyHealth app. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:11:16,121 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:16,123 - Thread ID: 253289630\n", + "--------------------------------------------------------------------------------\n", + "idx: 114224\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon,I really enjoyed our first meeting. Thank you for being my new PCP. There are three things remaining from our initial meeting.1. We did not have time to discuss my IT issue which started September 14. I still am having significant pain in my lower back and down my left leg. Wondering if an MRI is in order? 2. Can I get a blood test for alpha gal?3. I would like to transfer the cardiology care to Stanford also. My cardiologist referred me for ablation. Can you refer me within Stanford? Thanks so much and Happy Holidays\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Fred, Thanks for reaching out, it was nice to meet you as well. Would you arrange a follow-up video visit to discuss the remaining issues? You should be able to use the MyHealth app. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:11:16,125 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:16,126 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:16,129 - ✅ similarity: 0.6587\n", + "2025-06-17 14:11:16,129 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Arek,Thank you so very much for your careful and thoughtful research on this. I truly appreciate it. I completed all the lab tests this morning. I have the Echo scheduled for Jan 6 and am working on scheduling the other referral appointments. Kindest regards,Carla\n", + "2025-06-17 14:11:16,130 - Provider's response to this similar message: Sounds good! I'll follow-up with you with the results. \n", + "2025-06-17 14:11:16,130 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:16,132 - Thread ID: 253494001\n", + "--------------------------------------------------------------------------------\n", + "idx: 105088\n", + "Subject: RE:Bloating after COVID vaccine\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Arek,Thank you so very much for your careful and thoughtful research on this. I truly appreciate it. I completed all the lab tests this morning. I have the Echo scheduled for Jan 6 and am working on scheduling the other referral appointments. Kindest regards,Carla\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Sounds good! I'll follow-up with you with the results. \n", + "----------------------------------------\n", + "2025-06-17 14:11:16,132 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:16,133 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:16,133 - ✅ similarity: 0.6517\n", + "2025-06-17 14:11:16,134 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Shah,Today, I came in to have wax removed from both ears so that I would be ready for the hearing exam on January 9. Dr. Manugian was called into the room to take a look at the blockage in my right ear. He concluded that it is very impacted and said he would make a referral to an ear specialist.I don't see anything yet about that referral and would very much like to see an ear doctor. My hearing has been extremely poor for the past 4 or four months.\n", + "2025-06-17 14:11:16,134 - Provider's response to this similar message: Hi Sharon,Dr. Shah is out of the office and I am the provider answering messages.I reviewed your chart and see Dr. Manugian had placed an ENT referral for you on 12/20/204.Please go ahead and call the main number at 650-723-4000 and ask for ENT department to schedule the appointment.If you cannot get a timely appointment in Stanford ENT, let us know if you would prefer a referral to an outside ENT (check with your insurance and find a local covered provider). We can place what is called an \"external\" referral for you.If you develop worsening symptoms while waiting for your ENT appointment, please schedule an appointment to be seen in person so we can take a look again.Laura Gross, MD\n", + "2025-06-17 14:11:16,134 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:16,137 - Thread ID: 253927451\n", + "--------------------------------------------------------------------------------\n", + "idx: 85322\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks so much, Drew. Gross. I appreciate your help.\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 85321\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Shah,Today, I came in to have wax removed from both ears so that I would be ready for the hearing exam on January 9. Dr. Manugian was called into the room to take a look at the blockage in my right ear. He concluded that it is very impacted and said he would make a referral to an ear specialist.I don't see anything yet about that referral and would very much like to see an ear doctor. My hearing has been extremely poor for the past 4 or four months.\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Sharon,Dr. Shah is out of the office and I am the provider answering messages.I reviewed your chart and see Dr. Manugian had placed an ENT referral for you on 12/20/204.Please go ahead and call the main number at 650-723-4000 and ask for ENT department to schedule the appointment.If you cannot get a timely appointment in Stanford ENT, let us know if you would prefer a referral to an outside ENT (check with your insurance and find a local covered provider). We can place what is called an \"external\" referral for you.If you develop worsening symptoms while waiting for your ENT appointment, please schedule an appointment to be seen in person so we can take a look again.Laura Gross, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:16,137 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:16,773 - Original Message:\n", + "2025-06-17 14:11:16,773 - original_query_message: Hi Dr. Saverio, hope you’re doing well. My pharmacy needed to order the Zepbound 5 mg and it took a bit of time to get in. Would it be possible to get the next dose of Zepbound prescribed so that I can make sure that it’s ready for me at the appropriate time?\n", + "2025-06-17 14:11:18,247 - Query Parameters:\n", + "2025-06-17 14:11:18,248 - query_message: Hi Dr. Saverio, I hope you’re having a good week. I wanted to reach out because I’ve been having a hard time getting my Zepbound 5 mg filled on time—the pharmacy keeps saying it’s on backorder and sometimes there are delays. Last month I missed a dose by a couple of days because they didn’t have it when I needed it. Since I’ve started on Zepbound, I’ve really noticed improvement with my weight and my blood sugar is more stable, so I’m concerned about missing doses or interruptions in the treatment. Is there any way we can send in my next prescription a little early, or maybe even have a backup plan in case the pharmacy runs out again? I’m just anxious about keeping everything on track. Thanks so much for your help!\n", + "2025-06-17 14:11:18,249 - receiver: SFM TASK POOL POD 2\n", + "2025-06-17 14:11:18,250 - department: STANFORD FAMILY MEDICINE\n", + "2025-06-17 14:11:18,251 - specialty: Primary Care\n", + "2025-06-17 14:11:18,626 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:18,626 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:18,627 - ✅ similarity: 0.8473\n", + "2025-06-17 14:11:18,630 - Sender: SALANGA, MARIZ [ S0185574] -> the retrieved similar message : Hi Dr. Saverio, hope you’re doing well. My pharmacy needed to order the Zepbound 5 mg and it took a bit of time to get in. Would it be possible to get the next dose of Zepbound prescribed so that I can make sure that it’s ready for me at the appropriate time?\n", + "2025-06-17 14:11:18,631 - Provider's response to this similar message: Hello, I sent your request to your provider to review.Thank You,Karen OpinaldoPractice Care Coordinator IIFamily MedicineP: (650) 498-9000F: (650) 498-7750Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "2025-06-17 14:11:18,631 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:18,636 - Thread ID: 255049584\n", + "--------------------------------------------------------------------------------\n", + "idx: 31995\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks, can you please apologize to him for me spelling his name incorrectly. I’m using voice to text.\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 31994\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Saverio, hope you’re doing well. My pharmacy needed to order the Zepbound 5 mg and it took a bit of time to get in. Would it be possible to get the next dose of Zepbound prescribed so that I can make sure that it’s ready for me at the appropriate time?\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hello, I sent your request to your provider to review.Thank You,Karen OpinaldoPractice Care Coordinator IIFamily MedicineP: (650) 498-9000F: (650) 498-7750Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "----------------------------------------\n", + "2025-06-17 14:11:18,638 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:18,638 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:18,639 - ✅ similarity: 0.7413\n", + "2025-06-17 14:11:18,640 - Sender: ROBLES-MONTANO, VANESSA [ S0201163] -> the retrieved similar message : Good morning Connie and team,I hope this message finds you well! I see that my Zepbound medication has increased to 15mg however I am still on the 10mg and have yet to take the 12.5mg. Can I please get another refill of the 10mg to take for one more month prior to going up to 12.5? Thank you in advance!Jessica Padilla \n", + "2025-06-17 14:11:18,640 - Provider's response to this similar message: Good afternoon the zepbound was sent to the pharmacy on 11/18/24 for 10 mg, let us know if you need further assistanceMedication : ZEPBOUND 10 MG/0.5 ML SC PNIJ Quantity Refills Start Date End Date Route DAW 2 mL 0 No Sig : Inject 1 Pre-filled Pen Syringe (10 mg total) subcutaneous (under the skin) every 7 days Best Regards, Sandra Aguilar MA Covering Care Practice CoordinatorStanford Family Medicine 211 Quarry Road Palo Alto, CA 94304 Phone (650) 498-9000 Fax (650) 498-7750 \n", + "2025-06-17 14:11:18,641 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:18,643 - Thread ID: 251274131\n", + "--------------------------------------------------------------------------------\n", + "idx: 206571\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for your help Essie! Have a great day!\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 206570\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Sandra, I spoke with the pharmacy who informed me that they received an order for the 15mg on the 18th and they do not have any orders for the 10mg. My medication list here on the app states 15mg as well so I’m unable to request the refill of the 10mg myself. Please assist in ordering a refill of the 10mg. Thank you in advance,Jessica Padilla \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Good morning JessicaMy apologies for the mix up. I have a sent a new request to your provider. Please allow 24-48 hours for you refill to be processed.Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Road, 4th Floor Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 206569\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Connie and team,I hope this message finds you well! I see that my Zepbound medication has increased to 15mg however I am still on the 10mg and have yet to take the 12.5mg. Can I please get another refill of the 10mg to take for one more month prior to going up to 12.5? Thank you in advance!Jessica Padilla \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Good afternoon the zepbound was sent to the pharmacy on 11/18/24 for 10 mg, let us know if you need further assistanceMedication : ZEPBOUND 10 MG/0.5 ML SC PNIJ Quantity Refills Start Date End Date Route DAW 2 mL 0 No Sig : Inject 1 Pre-filled Pen Syringe (10 mg total) subcutaneous (under the skin) every 7 days Best Regards, Sandra Aguilar MA Covering Care Practice CoordinatorStanford Family Medicine 211 Quarry Road Palo Alto, CA 94304 Phone (650) 498-9000 Fax (650) 498-7750 \n", + "----------------------------------------\n", + "2025-06-17 14:11:18,644 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:18,644 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:18,645 - ✅ similarity: 0.7243\n", + "2025-06-17 14:11:18,645 - Sender: GUIANG, MELODY [ S0196855] -> the retrieved similar message : Hi Dr. Sattler! My CVS prescription for Zepbound says it’s not processed yet since it’s waiting on insurance approval, and that the insurance has reached out to your office for approval. Is there a way you can expedite approval so that I can refill my medicine? Thanks so much, Suzette\n", + "2025-06-17 14:11:18,646 - Provider's response to this similar message: Good morning SuzetteI hope you are doing well. I would like to kindly ask if you can you please provide us with a current weight. We are not able to process your prior authorization for your Zepbound with a recent weight.Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Road, 4th Floor Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:11:18,646 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:18,649 - Thread ID: 251046840\n", + "--------------------------------------------------------------------------------\n", + "idx: 217960\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Essie,My current weight is 211 lbs.Thanks,Suzette\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "My apologies SuzetteI was just informed by our PA team that a verbal weight is no longer accepted. We will need to schedule you an in person nurse visit for a weight check. We wanted to let you know that an invitation to schedule your nurse visit has been sent to you via MyHealth. Please check your MyHealth account to view the details and select a convenient time for your appointment.If you have any questions or need assistance, feel free to reach out.Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 **To Schedule an Appointment from an Invitation**From the MyHealth website: Select \"Appointments\" along the top, then \"Invitations\" along the left side. Next to the invitation from our clinic, click \"Schedule Now.\" From the MyHealth app: Select \"Appointments\" on the left, and look at the top of the screen. Select the invitation from our clinic, then \"Begin Scheduling.\" Follow the prompts, and choose from the appointments available.\n", + "----------------------------------------\n", + "idx: 217959\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Sattler! My CVS prescription for Zepbound says it’s not processed yet since it’s waiting on insurance approval, and that the insurance has reached out to your office for approval. Is there a way you can expedite approval so that I can refill my medicine? Thanks so much, Suzette\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Good morning SuzetteI hope you are doing well. I would like to kindly ask if you can you please provide us with a current weight. We are not able to process your prior authorization for your Zepbound with a recent weight.Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Road, 4th Floor Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:11:18,649 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:18,650 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:18,650 - ✅ similarity: 0.7195\n", + "2025-06-17 14:11:18,650 - Sender: SALANGA, MARIZ [ S0185574] -> the retrieved similar message : Hi Dr. Weinlander, Sorry to send a bit of an out of the blue note, but I'm hoping I can get your help with renewal of a prescription. You may recall that early last year I asked for your help to try Zepbound (tirzepatide). I ended up transitioning to using the Noom program for food logging, coaching, and diet support. Through them, I've been doing Zepbound, lost about 20lbs and gotten my BMI in line. I'm now talking to them about titrating back down (and possibly off), but there is some glitch going on between them and UHC with the turn of the new year and UHC will not approve them as \"in-network\" to fill the prescription. I've been fighting this for a week and am now getting pretty desperate to just get it filled for Jan. as I can't go off cold turkey. Would you be willing to write me a prescription for Zepbound 7.5 to the CVS I have on file while this gets figured out by Noom and UHC? I recently had new tests done for thyroid, etc. and am happy to share if helpful. Thank you! Sarah\n", + "2025-06-17 14:11:18,651 - Provider's response to this similar message: Hello Sarah Herrlinger,Thank you for your message. MyHealth messages can be a helpful way to communicate directly with our team, but I'm concerned that this would be better addressed with an appointment. To be sure that you get the best possible care, I wanted to offer you a video appointment on 1/14/2025 at 7:45 AM with Dr.Weinlander.Please let me know if this time and date works with your schedule.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due COVID-19 Vaccine (7 - 2024-25 season) 12/16/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:11:18,651 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:18,653 - Thread ID: 255101854\n", + "--------------------------------------------------------------------------------\n", + "idx: 29637\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Weinlander, Sorry to send a bit of an out of the blue note, but I'm hoping I can get your help with renewal of a prescription. You may recall that early last year I asked for your help to try Zepbound (tirzepatide). I ended up transitioning to using the Noom program for food logging, coaching, and diet support. Through them, I've been doing Zepbound, lost about 20lbs and gotten my BMI in line. I'm now talking to them about titrating back down (and possibly off), but there is some glitch going on between them and UHC with the turn of the new year and UHC will not approve them as \"in-network\" to fill the prescription. I've been fighting this for a week and am now getting pretty desperate to just get it filled for Jan. as I can't go off cold turkey. Would you be willing to write me a prescription for Zepbound 7.5 to the CVS I have on file while this gets figured out by Noom and UHC? I recently had new tests done for thyroid, etc. and am happy to share if helpful. Thank you! Sarah\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hello Sarah Herrlinger,Thank you for your message. MyHealth messages can be a helpful way to communicate directly with our team, but I'm concerned that this would be better addressed with an appointment. To be sure that you get the best possible care, I wanted to offer you a video appointment on 1/14/2025 at 7:45 AM with Dr.Weinlander.Please let me know if this time and date works with your schedule.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due COVID-19 Vaccine (7 - 2024-25 season) 12/16/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 29636\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy to take that. Thank you!\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Sarah,We appreciate you confirming the appointment. If you need to reschedule you may do so by using the myhealth app or calling us at 650-498-9000.Best regards, Carolina VergilPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due COVID-19 Vaccine (7 - 2024-25 season) 12/16/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:11:18,654 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:18,654 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:18,654 - ✅ similarity: 0.6694\n", + "2025-06-17 14:11:18,655 - Sender: AGUILAR, SANDRA [ S0183817] -> the retrieved similar message : Hi Dr. Sattler,Can you please send in a prescription for 7.5 mg of Zepbound? I'm noticing an uptick in food noise and a prolonged slowing of weight loss (I'm still down to 217, though).I have a new patient appointment with a new primary care MD in a few weeks, so I should be able to transfer my care soon.Thanks so much,Chrissy\n", + "2025-06-17 14:11:18,655 - Provider's response to this similar message: Dear Chrissy,Your prescription request has been sent to Dr. Sattler, Amelia Louise. Please allow 24 hours for your request to be reviewed and sent in to your pharmacy. If your pharmacy does not receive the prescription, please let me know. Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Road, 4th Floor Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:11:18,657 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:18,658 - Thread ID: 251013894\n", + "--------------------------------------------------------------------------------\n", + "idx: 219640\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Essie,I saw that the 15 mg prescription was sent (thank you) but it was for Mounjaro. My copay assistance card is for Zepbound so I don’t think that will work. Can you please resend as 15 mg of Zepbound?Thanks so much,Chrissy\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 219639\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Essie,I’m so sorry, I meant to ask for a prescription for 15 mg so I can split it into 7.5 mg doses (Dr. Sattler is aware). Can you please resend it?Thank you,Chrissy\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 219638\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Sattler,Can you please send in a prescription for 7.5 mg of Zepbound? I'm noticing an uptick in food noise and a prolonged slowing of weight loss (I'm still down to 217, though).I have a new patient appointment with a new primary care MD in a few weeks, so I should be able to transfer my care soon.Thanks so much,Chrissy\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Dear Chrissy,Your prescription request has been sent to Dr. Sattler, Amelia Louise. Please allow 24 hours for your request to be reviewed and sent in to your pharmacy. If your pharmacy does not receive the prescription, please let me know. Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Road, 4th Floor Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:11:18,659 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:18,737 - Original Message:\n", + "2025-06-17 14:11:18,738 - original_query_message: Hello Doctor, I am having flu like symptoms. My wife diagnosed with Influenza A. And she is taking Tamiflu. So wondering if it is possible to prescribe it for me on the CVS pharmacy on the file. Please let me know.Thanks,Keshav \n", + "2025-06-17 14:11:19,877 - Query Parameters:\n", + "2025-06-17 14:11:19,878 - query_message: Hi there,I started feeling pretty run down yesterday—sore throat, mild fever, body aches, and a bit of a cough. My husband actually tested positive for the flu (Influenza A) a couple of days ago, and his doctor started him on Tamiflu. I’m a little worried I might have caught it from him since we’ve obviously been in close contact. Is there a way I could get Tamiflu prescribed too, just in case? I’d really like to avoid getting more sick and would prefer to pick it up at my local CVS if possible. Let me know what you think is best!Thanks so much,Rebecca\n", + "2025-06-17 14:11:19,878 - receiver: ROKICKIPARASHAR, JESSE\n", + "2025-06-17 14:11:19,879 - department: QUALCOMM HEALTH CENTER - SANTA CLARA\n", + "2025-06-17 14:11:19,880 - specialty: Primary Care\n", + "2025-06-17 14:11:20,808 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:20,811 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:20,812 - ✅ similarity: 0.7510\n", + "2025-06-17 14:11:20,812 - Sender: PETERSON, KELLY [ S0332307] -> the retrieved similar message : Hello Doctor, I am having flu like symptoms. My wife diagnosed with Influenza A. And she is taking Tamiflu. So wondering if it is possible to prescribe it for me on the CVS pharmacy on the file. Please let me know.Thanks,Keshav \n", + "2025-06-17 14:11:20,814 - Provider's response to this similar message: Hello Keshav,I'm sorry to hear that you are experiencing flu-like symptoms. Given that your wife has been diagnosed with Influenza A and you are showing similar symptoms, it would be reasonable to start Tamiflu. I will send the prescription to the CVS pharmacy on file for you.If your symptoms worsen or you have any concerns, please don't hesitate to reach out or schedule an appointment through the Stanford MyHealth app.Take care and feel better soon.Jesse Amanda Rokicki Parashar, MD\n", + "2025-06-17 14:11:20,815 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:20,820 - Thread ID: 251369064\n", + "--------------------------------------------------------------------------------\n", + "idx: 201714\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, I have completed dose of 5 tablets you prescribed(2 tablets a day). Pharmacist mentioned it is 10 tablet course. If you want me to complete 10 tablet course then please prescribe 5 more Tamiflu to the pharmacy on file. Which is cvs at camden and union in San Jose. Thanks for all your help! Keshav \n", + "----------------------------------------\n", + "Provider Response by QUALCOMM SJSC MYHEALTH MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 201713\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, Sorry to bother you but seems like CVS pharmacy has some question about prescription and trying to contact you. Please help responding to them. Regards,Keshav \n", + "----------------------------------------\n", + "Provider Response by QUALCOMM SJSC MYHEALTH MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 201712\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks you so much doctor. Really appreciate it. Have a great weekend!Keshav \n", + "----------------------------------------\n", + "Provider Response by QUALCOMM SJSC MYHEALTH MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 201711\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, I am having flu like symptoms. My wife diagnosed with Influenza A. And she is taking Tamiflu. So wondering if it is possible to prescribe it for me on the CVS pharmacy on the file. Please let me know.Thanks,Keshav \n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hello Keshav,I'm sorry to hear that you are experiencing flu-like symptoms. Given that your wife has been diagnosed with Influenza A and you are showing similar symptoms, it would be reasonable to start Tamiflu. I will send the prescription to the CVS pharmacy on file for you.If your symptoms worsen or you have any concerns, please don't hesitate to reach out or schedule an appointment through the Stanford MyHealth app.Take care and feel better soon.Jesse Amanda Rokicki Parashar, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:20,820 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:20,821 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:20,822 - ✅ similarity: 0.3593\n", + "2025-06-17 14:11:20,822 - Sender: UNGA, ELIZABETH [ S0179230] -> the retrieved similar message : Strep Throat again!Oh no I skipped antibiotics yesterday because I didn't know how to ready the medical note. I thought \"normal\" means I don't have strep throat. I do not have anymore headaches or fever but my throat starts to itch a lot more today.I'm back on med now.\n", + "2025-06-17 14:11:20,823 - Provider's response to this similar message: Perfect, no worries. Missing one day isn't ideal but it happens a lot.Yes-you have both \"normal\" flora and Result: Moderate growth of Group A Streptococcus Comment: Normal oropharyngeal flora also present. Finish out the whole course and let me know if the throat itching doesn't resolve!Best,Dr. Jesse Rokicki\n", + "2025-06-17 14:11:20,824 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:20,826 - Thread ID: 248560250\n", + "--------------------------------------------------------------------------------\n", + "idx: 345001\n", + "Subject: RE:Strep Throat\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I feel a lot better starting yesterday! Thank you!\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "That's great to hear! Please follow back up if your symptoms return or change!Best,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "idx: 345000\n", + "Subject: RE:Strep Throat\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Rokicki,I just had my last cough pill but my cough has shown no sign of getting better. I had this before and it actually never works but I thought to try again just in case this time is different. I am going to start taking the allergy medicine \"molex..\" and see how it goes.Thanks,Cinny\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Cinny-The antibiotic should have helped with the sore throat, but the cough I think is multifactorial-partly from your illness but partly from your allergies.Have you been able to reduce your exposure to Timothy Grass? How are you feeling since restarting the allergy medication?Best,Dr. Jesse Rokicki \n", + "----------------------------------------\n", + "idx: 344999\n", + "Subject: RE:Strep Throat\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Strep Throat again!Oh no I skipped antibiotics yesterday because I didn't know how to ready the medical note. I thought \"normal\" means I don't have strep throat. I do not have anymore headaches or fever but my throat starts to itch a lot more today.I'm back on med now.\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Perfect, no worries. Missing one day isn't ideal but it happens a lot.Yes-you have both \"normal\" flora and Result: Moderate growth of Group A Streptococcus Comment: Normal oropharyngeal flora also present. Finish out the whole course and let me know if the throat itching doesn't resolve!Best,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "2025-06-17 14:11:20,827 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:20,827 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:20,828 - ✅ similarity: 0.3422\n", + "2025-06-17 14:11:20,828 - Sender: UNGA, ELIZABETH [ S0179230] -> the retrieved similar message : Hi Dr. JesseI am okay, fever didn't come back. But unfortunately i forgot to take the antibiotics multiple times in multiple days. I think I just took it properly until Saturday. Today i came office even without it and forgot. Is it possible to restart the med from beginning?Sorry for this. RegardsSadia\n", + "2025-06-17 14:11:20,828 - Provider's response to this similar message: Hi Sadia,It's important to take antibiotics as prescribed to ensure the infection is fully treated. But whether we need to restart depends on a few things:1) How many doses do you have left?2) How are your sinuses feeling? Still with pressure and headache, or has that resolved with the antibiotics along with the fever?Keep taking the ones you have for now and let me know how you are doing. I'll be in the clinic on Thursday and Friday if you can come in we can re-evalute you.Best regards,Jesse Amanda Rokicki Parashar, MD\n", + "2025-06-17 14:11:20,836 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:20,841 - Thread ID: 253524398\n", + "--------------------------------------------------------------------------------\n", + "idx: 103630\n", + "Subject: RE: Urine Culture\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. JesseI am okay, fever didn't come back. But unfortunately i forgot to take the antibiotics multiple times in multiple days. I think I just took it properly until Saturday. Today i came office even without it and forgot. Is it possible to restart the med from beginning?Sorry for this. RegardsSadia\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Sadia,It's important to take antibiotics as prescribed to ensure the infection is fully treated. But whether we need to restart depends on a few things:1) How many doses do you have left?2) How are your sinuses feeling? Still with pressure and headache, or has that resolved with the antibiotics along with the fever?Keep taking the ones you have for now and let me know how you are doing. I'll be in the clinic on Thursday and Friday if you can come in we can re-evalute you.Best regards,Jesse Amanda Rokicki Parashar, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:20,843 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:20,854 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:20,859 - ✅ similarity: 0.3195\n", + "2025-06-17 14:11:20,861 - Sender: UNGA, ELIZABETH [ S0179230] -> the retrieved similar message : Hello Doctor, Can I take the pepcid in the morning along with Levothyroxine ?\n", + "2025-06-17 14:11:20,866 - Provider's response to this similar message: Hi-You can take it in the morning, but you need to wait 30 minutes after taking your levothyroxine before taking it so that it doesn’t interfere with your absorption of levothyroxine.Let me know if that makes sense and how you are feeling.Best,Dr. Jesse Rokicki\n", + "2025-06-17 14:11:20,867 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:20,883 - Thread ID: 249071642\n", + "--------------------------------------------------------------------------------\n", + "idx: 319295\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Welcome back Dr De Bruyne. My CT-angio also was normal. I mean I had < 25% minimal blockage but nothing that would explain the chest tightness either\n", + "----------------------------------------\n", + "Provider Response by DE BRUYNE, KORINA FRIEDA:\n", + "That is great news!\n", + "----------------------------------------\n", + "idx: 319294\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, I have just started Pepcid from yesterday. Will know if it makes any difference by the time we have appointment on Thursday. I took a chest X-ray on Friday 11/8 ( at Radnet ) and images are available online but I dont see any report. Please do let me know if everything is fine with the X-ray. I dont have any chest tightness, but still shortness of breath if I climb stairs or talk while walking ( I didnt have any of these a few weeks before). I have my pulmonologist first appointment on 11/20\n", + "----------------------------------------\n", + "Provider Response by DE BRUYNE, KORINA FRIEDA:\n", + "Hi,Your Chest Xray looked completely clear, so no explanation for your symptoms there.Best,Dr De Bruyne \n", + "----------------------------------------\n", + "idx: 319293\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, Can I take the pepcid in the morning along with Levothyroxine ?\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi-You can take it in the morning, but you need to wait 30 minutes after taking your levothyroxine before taking it so that it doesn’t interfere with your absorption of levothyroxine.Let me know if that makes sense and how you are feeling.Best,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "idx: 319292\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, To rule out acid reflux, is there any OTC acid blocker that you can suggest ?\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Manu-You can try otc pepcid 20mg twice daily-let me know if that helps!Please schedule some time with me next week and let me know how it goes if it is improving or staying the same, or of course sooner if anything worsens or changes.Best,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "idx: 319291\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, The abdominal pain issue subsided on its own after I removed Oats from diet and hence didnt go through the abdominal CT scan. I have another bigger issue though. I had tightness in chest and shortness of breath from 10/21. I contacted my cardiologist and they asked to get my EKG done in an urgent care nearby. I did the same and it was normal ( done on 10/23 ). The tightness is not all day.They have also asked me on 10/25 to schedule an CT angiogram. This is schedules on 11/4.My lung capacity has dropped and I am short of breath even after going up one flight of stairs which was not the case a couple of weeks ago.Do you think it would make sense to also have an appointment with a pulmonologist ? If yes, could you put a referral for the same ? \n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Manu,I'm glad to hear that your abdominal pain has subsided after adjusting your diet. Regarding your new symptoms of chest tightness and shortness of breath, it's good that you have already consulted with your cardiologist and have a CT angiogram scheduled. The next basic workup step would be a chest xray-did they do that in the urgent care? We will request records but I don't have access to them at this time.I went ahead an ordered a chest xray and put in a referral to pulmonology. If the shortness of breath is worsening or becomes constant or is accompanied by pain please go immediately to the ER. Take care, and please follow up with me by phone, video or in person appointment after you complete your chest xray.Jesse Amanda Rokicki Parashar, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:20,889 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:20,892 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:20,902 - ✅ similarity: 0.3086\n", + "2025-06-17 14:11:20,904 - Sender: UNGA, ELIZABETH [ S0179230] -> the retrieved similar message : Hi Dr. Parashar,I already had the anti biotics, shall I still go ahead and do the blood draw? Thanks, Komal\n", + "2025-06-17 14:11:20,940 - Provider's response to this similar message: Hi Komal,Yes-the blood tests are to look for causes of weight gain, so you should go ahead and do those.Liz has sent you the new order to do them at Quest, let us know if you have any questions!Best,Dr. Jesse Rokicki\n", + "2025-06-17 14:11:20,941 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:20,983 - Thread ID: 249646979\n", + "--------------------------------------------------------------------------------\n", + "idx: 289885\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I am coming for my pre-visit as a part of annual exam next week. Are all the tests a part of this requisition or are there going to be more? I thought we decided to do all of these during the annual exam blood draw. Thanks, Komal\n", + "----------------------------------------\n", + "Provider Response by QUALCOMM SJSC MYHEALTH MESSAGING:\n", + "Hi Komal, These test are not part of your annual physical. If you wish to complete along with your upcoming annual physical labs that should be ok.Regards,Elizabeth UngaPractice Care Coordinator IIIStanford Health Care- Qualcomm Health CenterPhone: 669-294-8555 Fax: 669-294-8567\n", + "----------------------------------------\n", + "idx: 289884\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Parashar,I already had the anti biotics, shall I still go ahead and do the blood draw? Thanks, Komal\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Komal,Yes-the blood tests are to look for causes of weight gain, so you should go ahead and do those.Liz has sent you the new order to do them at Quest, let us know if you have any questions!Best,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "idx: 289883\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Parashar,I got my periods on the 29th of October. Also, how did the blood test result look like?Thanks,Komal\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Komal-Labcorp only sent us your urine test results, so our team is following up with them.Your urine test was normal-no blood or infection. For the timing of your repeat US we will want to do it after your November period. If you have a 28 day cycle we would expect your next period around 11/25, so we can have you schedule your ultrasound during the 1st week of December.That is what I had put on the original order so VRI should be able to schedule you that week. Let me know if you have any trouble scheduling, and I'll message you again as soon as we get the LabCorp blood test results.Thanks!Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "idx: 289882\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Parashar,I just called VRI to schedule the ultrasound and they said that in your notes it says that I should repeat this order after two months and they wont be able to schedule an appointment for me for this week. In our video appointment last week, you asked me to get it done after my periods and also in your previous message you asked me to get it done in a months time from my last ultrasound and my previous one was done in the first week of October. When do you exactly want me to do the ultrasound? If right now, then can you please send an updated order to VRI Los Gatos?Thanks,Komal\n", + "----------------------------------------\n", + "Provider Response by ROKICKIPARASHAR, JESSE:\n", + "Hi Komal,Thanks for reaching out and sorry for the hassle in getting you scheduled at the right time.Ideally I would like you to have this scan done on 5-10 days after your period starts, and 2-3 periods after the first scan (about 2 months).Can you confirm the date that your last menstrual period started and we will coordinate with radiology?Thank you,Dr. Jesse Rokicki\n", + "----------------------------------------\n", + "2025-06-17 14:11:20,988 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:21,570 - Original Message:\n", + "2025-06-17 14:11:21,571 - original_query_message: Hello, I am due for Diabetic eye exam. Requesting to schedule the same.BestVadiraj\n", + "2025-06-17 14:11:23,591 - Query Parameters:\n", + "2025-06-17 14:11:23,592 - query_message: Hi there,I’ve been managing type 2 diabetes for a few years now, and lately my vision seems a bit blurrier than usual, especially in the evenings. I realized I haven’t had an eye checkup in over a year, and I know it’s important to stay on top of these exams. Could you please help me set up an appointment for a diabetic eye screening sometime soon? I just want to make sure everything looks okay.Thanks so much!\n", + "2025-06-17 14:11:23,592 - receiver: PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:11:23,593 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:11:23,594 - specialty: Primary Care\n", + "2025-06-17 14:11:24,152 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:24,152 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:24,153 - ✅ similarity: 0.6949\n", + "2025-06-17 14:11:24,153 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I am due for Diabetic eye exam. Requesting to schedule the same.BestVadiraj\n", + "2025-06-17 14:11:24,154 - Provider's response to this similar message: Hello Vadiraj,Please call the clinic to schedule the appointment for your diabetic eye exam with our AI Fundus machine: 408-688-9720Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:11:24,154 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:24,161 - Thread ID: 252080605\n", + "--------------------------------------------------------------------------------\n", + "idx: 165170\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I am due for Diabetic eye exam. Requesting to schedule the same.BestVadiraj\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + " Hello Vadiraj,Please call the clinic to schedule the appointment for your diabetic eye exam with our AI Fundus machine: 408-688-9720Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:11:24,161 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:24,162 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:24,162 - ✅ similarity: 0.6130\n", + "2025-06-17 14:11:24,163 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Tsai,I delayed my Lab tests earlier this year to make important life style changes that have resulted positive results. My weight has gone down due to periodic fasting and calorie reduction. I will be contacting you with tests before scheduling my Annual Review Medicare as we did last time..I am writing to ask you to prescribe a Age related exam of eyes Not a routine eye test but the following ..Rapoport notes that “by the time someone is of Medicare age, they should be getting a routine medical eye exam anyway to assess for cataracts, glaucoma and macular degeneration, and Medicare does cover all of these.”Please prescribe Medicare Age tests above and I can go to any center in Santa Clara San Jose or Fremont if available to get this Lab Eye Tests done. Or any center that can do these tests.Thank you Rajiv Badhwar\n", + "2025-06-17 14:11:24,166 - Provider's response to this similar message: Hi Mr. Badhwar, Yes, these routine eye exams are done by optometrists and you do not need a referral to an ophthalmologist to have these screenings done! Very important to get this done. Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730 \n", + "2025-06-17 14:11:24,167 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:24,169 - Thread ID: 250755891\n", + "--------------------------------------------------------------------------------\n", + "idx: 233712\n", + "Subject: RE:Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I forgot to add yes that would be a referral to a Medicare accepting. Ophthalmologist in network..\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello RajivThe referral for the Stanford Eye Clinic has been ordered. Please call the clinic to schedule your appointment:Eye Intake Phone: 650-723-6995 Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "idx: 233711\n", + "Subject: RE:Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsai, I followed your advice on this but the retail level optometrists sent me back to you as they do not take Medicare for these tests. Could you ask your team if there is a Dr. in Opthalmology in Stanford network who would take Medicare for this ..if possible. Thanks Rajiv Badhwar\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 233710\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Tsai,I delayed my Lab tests earlier this year to make important life style changes that have resulted positive results. My weight has gone down due to periodic fasting and calorie reduction. I will be contacting you with tests before scheduling my Annual Review Medicare as we did last time..I am writing to ask you to prescribe a Age related exam of eyes Not a routine eye test but the following ..Rapoport notes that “by the time someone is of Medicare age, they should be getting a routine medical eye exam anyway to assess for cataracts, glaucoma and macular degeneration, and Medicare does cover all of these.”Please prescribe Medicare Age tests above and I can go to any center in Santa Clara San Jose or Fremont if available to get this Lab Eye Tests done. Or any center that can do these tests.Thank you Rajiv Badhwar\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Badhwar, Yes, these routine eye exams are done by optometrists and you do not need a referral to an ophthalmologist to have these screenings done! Very important to get this done. Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730 \n", + "----------------------------------------\n", + "2025-06-17 14:11:24,170 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:24,170 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:24,171 - ✅ similarity: 0.5350\n", + "2025-06-17 14:11:24,172 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good evening Mr. Wesley,I forgot to mention if you can prescribe the Dexcom G6 or G7 to help monitor my blood glucose levels since I’ve been checking my sugars with the BG meter + lancets more frequently. Thank you! \n", + "2025-06-17 14:11:24,173 - Provider's response to this similar message: Hello,My name is Dr. Tsai. I am covering Lashbrook, Wesley Brian this weekend with Drs. Narula and Villalon, who you may have messages from as well. I reviewed your chart and see you have started a medication for your diabetes, great! I have sent a blood glucose monitor to the pharmacy. I also see a referral to our diabetic pharmacy team where you'll meet Nancy Shin, our pharmacist. Please let us know if you have any questions. Best,Dr. TsaiTimothy Tsai, DOStanford Primary Care Santa ClaraP: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:11:24,173 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:24,177 - Thread ID: 248981412\n", + "--------------------------------------------------------------------------------\n", + "idx: 324401\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Timothy, good morning! Thank you for your response to my inquiry. \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Manansala, Ofcourse, and happy birthday!Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "idx: 324400\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good evening Mr. Wesley,I forgot to mention if you can prescribe the Dexcom G6 or G7 to help monitor my blood glucose levels since I’ve been checking my sugars with the BG meter + lancets more frequently. Thank you! \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hello,My name is Dr. Tsai. I am covering Lashbrook, Wesley Brian this weekend with Drs. Narula and Villalon, who you may have messages from as well. I reviewed your chart and see you have started a medication for your diabetes, great! I have sent a blood glucose monitor to the pharmacy. I also see a referral to our diabetic pharmacy team where you'll meet Nancy Shin, our pharmacist. Please let us know if you have any questions. Best,Dr. TsaiTimothy Tsai, DOStanford Primary Care Santa ClaraP: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:11:24,193 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:24,217 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:24,218 - ✅ similarity: 0.5328\n", + "2025-06-17 14:11:24,247 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I need an annual eye exam from an optometrist. I’m already a patient with Dr. Stephen John Smith at Byers Eye Institute where I received treatment for torn retina earlier this year. I have a follow up appointment with Dr. Smith on Monday, November 11, 2024. Does Byers have an optometrist I can see? Please advise. Thank you Ellen Green \n", + "2025-06-17 14:11:24,291 - Provider's response to this similar message: Hi Ellen,I'm Dr Villalon, part of the team covering messages intermittently for our clinic after hours and over the weekend. Thank you for reaching out. I recommend contacting the Byers Eye Institute directly to inquire about scheduling an annual eye exam with an optometrist. They should be able to provide you with the information you need and help you schedule an appointment.If you need any further assistance, feel free to let us know.Best regards,Maria Norma Villalon Landeros, MD\n", + "2025-06-17 14:11:24,296 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:24,323 - Thread ID: 248964069\n", + "--------------------------------------------------------------------------------\n", + "idx: 325250\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I need an annual eye exam from an optometrist. I’m already a patient with Dr. Stephen John Smith at Byers Eye Institute where I received treatment for torn retina earlier this year. I have a follow up appointment with Dr. Smith on Monday, November 11, 2024. Does Byers have an optometrist I can see? Please advise. Thank you Ellen Green \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hi Ellen,I'm Dr Villalon, part of the team covering messages intermittently for our clinic after hours and over the weekend. Thank you for reaching out. I recommend contacting the Byers Eye Institute directly to inquire about scheduling an annual eye exam with an optometrist. They should be able to provide you with the information you need and help you schedule an appointment.If you need any further assistance, feel free to let us know.Best regards,Maria Norma Villalon Landeros, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:24,349 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:24,350 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:24,351 - ✅ similarity: 0.5226\n", + "2025-06-17 14:11:24,352 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Ms. Carranza,I'd like to have a referral for a neuro optometrist at Stanford. There are potentially two issues: 1) my regular eye doctor says I possibly need 'prism' for my glasses, and 2) I get blurred vision when I see fast moving objects like TV or when I am dizzier.Please see the messages below. Dr. Baron says I should ask you for a referral. Could you please do it? Thank you very much!--Peiwei Mi----From: Cindy Sam Klinker, RNReceived: 08/09/2024 02:50 PM PDT We have 3 neuro optometrists at Stanford's Byers Eye Institute. The soonest availability they currently have is in October. ... -----From: Richard Baron, MDSent:7/30/2024 6:33 PM PDTI think it would be fine to see a neuro-optometrist and get their opinion on your vision issues and if any glasses or devices would be helpful in addition to the vestibular exercises. \n", + "2025-06-17 14:11:24,406 - Provider's response to this similar message: Hello Peiwei MiMy name is Dr. Narula. I am covering your primary care provider this weekend with Dr. Tsai & Dr. Villalon, who you may see messages from as well. I've reviewed your message, and have placed a referral to our Neuro-ophthalmology department. Once they process your insurance, they will call you to schedule an appointment. Best, Dr. Narula, MDStanford Primary Care Santa ClaraP: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:11:24,442 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:24,445 - Thread ID: 251423257\n", + "--------------------------------------------------------------------------------\n", + "idx: 198817\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It's been two weeks. Nobody has contacted me yet. Where is this referral?Thanks.--Peiwei Mi\n", + "----------------------------------------\n", + "Provider Response by CARRANZA, GABRIELA:\n", + "Hello Peiwei,The referral is in place. Here is the number where you can call to schedule the appointment:Eye Intake Phone: 650-723-6995 Best,Gabriela\n", + "----------------------------------------\n", + "idx: 198816\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Well, Dr. Baron, my neurologist at Stanford Dizziness Clinic, told me specifically that I need to see a neuro-optometrist, not a neuro-ophthalmologist.All appointments here take a very long (3-6 months) wait time. I just don't want to wait that long and see a wrong doctor.Please correct. Thanks very much!--Peiwei Mi\n", + "----------------------------------------\n", + "Provider Response by CARRANZA, GABRIELA:\n", + "Mr. Mi, I am covering for Gabriela Carranza. The referral placed specifically states neuro-optometry - not to worry.\"Peiwei Mi 67m referred to Neuro-optometry for opinion on vision issues and if any glasses or devices would be helpful\" Should you have questions, please feel free to call or email us.Marcie Levine, MD\n", + "----------------------------------------\n", + "idx: 198815\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Narula,Thanks for your quick response.I just want to clarify (and most likely you already knew) that I need to see a neuro optometrist, not a neuro-ophthalmologist. But if they are in the same department, that should be fine.Thank you very much!--Peiwei Mi\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Mi, Dr. Tsai here. Yes, the neuro-ophthalmologist will also be well suited to help you with your symptoms. Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "idx: 198814\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Ms. Carranza,I'd like to have a referral for a neuro optometrist at Stanford. There are potentially two issues: 1) my regular eye doctor says I possibly need 'prism' for my glasses, and 2) I get blurred vision when I see fast moving objects like TV or when I am dizzier.Please see the messages below. Dr. Baron says I should ask you for a referral. Could you please do it? Thank you very much!--Peiwei Mi----From: Cindy Sam Klinker, RNReceived: 08/09/2024 02:50 PM PDT We have 3 neuro optometrists at Stanford's Byers Eye Institute. The soonest availability they currently have is in October. ... -----From: Richard Baron, MDSent:7/30/2024 6:33 PM PDTI think it would be fine to see a neuro-optometrist and get their opinion on your vision issues and if any glasses or devices would be helpful in addition to the vestibular exercises. \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hello Peiwei MiMy name is Dr. Narula. I am covering your primary care provider this weekend with Dr. Tsai & Dr. Villalon, who you may see messages from as well. I've reviewed your message, and have placed a referral to our Neuro-ophthalmology department. Once they process your insurance, they will call you to schedule an appointment. Best, Dr. Narula, MDStanford Primary Care Santa ClaraP: 408.688.9720 F: 408.688.9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:11:24,486 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:24,799 - Original Message:\n", + "2025-06-17 14:11:24,800 - original_query_message: Hello,I picked up the prescription but they gave me Wixela, not Advair HFA. Wixela is another diskus and I’m pretty sure I can’t use it with a spacer. Online it shows there is no generic for Advair HFA. Please advise. Thank you,Emily\n", + "2025-06-17 14:11:26,440 - Query Parameters:\n", + "2025-06-17 14:11:26,441 - query_message: Hi there, I just picked up my inhaler refill and noticed they gave me something called Wixela instead of my usual Advair HFA. I usually rely on the HFA version because I find the diskus ones tricky to use with my spacer, plus I sometimes get wheezy if I don’t use the inhaler correctly. I checked online and didn’t see a generic for the HFA, so I’m not sure what to do. Can you help me figure out if there’s an alternative I can use with my spacer, or suggest what my next steps should be? Thanks so much—Lisa\n", + "2025-06-17 14:11:26,442 - receiver: JEE, OLIVIA\n", + "2025-06-17 14:11:26,443 - department: STANFORD PRIMARY CARE LOS ALTOS\n", + "2025-06-17 14:11:26,443 - specialty: Primary Care\n", + "2025-06-17 14:11:28,773 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:28,773 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:28,774 - ✅ similarity: 0.8148\n", + "2025-06-17 14:11:28,775 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : Hello,I picked up the prescription but they gave me Wixela, not Advair HFA. Wixela is another diskus and I’m pretty sure I can’t use it with a spacer. Online it shows there is no generic for Advair HFA. Please advise. Thank you,Emily\n", + "2025-06-17 14:11:28,775 - Provider's response to this similar message: Hello Emily,I'm sorry to hear that the wrong medication got filled. I just went ahead and sent in the following prescription (which was really the only option in Epic): fluticasone propion-salmeteroL (Advair HFA) 115-21 mcg/actuation inhaler Please contact your pharmacy and let me know if they have any further advice to get the medication you are seeking!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "2025-06-17 14:11:28,777 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:28,783 - Thread ID: 248039039\n", + "--------------------------------------------------------------------------------\n", + "idx: 364710\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Chrystal,The alternative that was given is not equivalent to the Advair I requested. I already picked up the alternative and it is a diskus. What I requested and the doctor agreed with was Advair HFA, which is a traditional inhaler delivery. From my research, I do not believe there is a generic for Advair HFA.\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hi Emily,I asked my office to call the pharmacy, and they were able to find out that what was needed is a prior authorization and that they had the wrong fax number. My staff member graciously provided them with the correct fax number to start this process. I would advise to follow-up directly with your insurance or the pharmacy to confirm if/when it is approved!Sincerely,Olivia Jee, MDStanford primary care Los Altos\n", + "----------------------------------------\n", + "idx: 364709\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Jee,I’m not happy with the response that I’ve been receiving regarding this medication. Whomever is checking this message, I hope that they look at your response to me stating that you would make sure I got the right prescription, which is Advair HFA. I believe that someone actually did try to order Advair HFA again, but CVS then reached out to your office to understand why you were asking for Advair HFA. That is where everything seems to have come to a standstill. I then received a call a few days ago from an MA telling me that if I want this prescription that I have to schedule a video visit with you. I’m very confused if you already approved the prescription, why I’m now being asked to do a video visit. We already discussed my issues when I saw you a few weeks back, and you already agreed that I should try Advair HFA in this thread. What is the point of a video visit? I just want the medication you agreed that I should try. Can someone please make this happen?\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 364708\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,CVS stated they reached out to get more info regarding the Advair prescription and didn’t hear back. Please advise. Thank you,Emily\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS TASK POOL 3:\n", + "Hello,Thank you for your message. Just wanted to check in to see if you were able to pick up your inhaler. It looks like the pharmacy reached out to us an asked for an alternative that was covered by your insurance. We went ahead and sent the alternative on 10/17/2024.Please let me know if you have any questions or concernsSincerely, Chrystal NealPatient Care Coordinator II Stanford Primary Care Los AltosMyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth message are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. If you have an urgent concern, please call our office @ 650-498-9000, for our LGBTQ+ Health program please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 364707\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I picked up the prescription but they gave me Wixela, not Advair HFA. Wixela is another diskus and I’m pretty sure I can’t use it with a spacer. Online it shows there is no generic for Advair HFA. Please advise. Thank you,Emily\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hello Emily,I'm sorry to hear that the wrong medication got filled. I just went ahead and sent in the following prescription (which was really the only option in Epic): fluticasone propion-salmeteroL (Advair HFA) 115-21 mcg/actuation inhaler Please contact your pharmacy and let me know if they have any further advice to get the medication you are seeking!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "----------------------------------------\n", + "idx: 364706\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks so much!!\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:11:28,784 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:28,785 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:28,785 - ✅ similarity: 0.5118\n", + "2025-06-17 14:11:28,785 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : Update: Talked to Walgreens and they actually are only able to get the brand right now - my insurance will still (apparently from web site) cover brand name with prior authorization and rx is written for either one however only brand is in stock. They are unable to get the generic at all.\n", + "2025-06-17 14:11:28,786 - Provider's response to this similar message: Hi Ellen,Thank you for the updates. We can clarify further at your appointment later this morning! Apologies but I forgot to bring the book this morning! I did want to let you know in case you wanted to convert your visit to video. Looking forward to talking soon!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "2025-06-17 14:11:28,786 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:28,791 - Thread ID: 250656923\n", + "--------------------------------------------------------------------------------\n", + "idx: 238789\n", + "Subject: RE: Melatonin information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "That’s ok I will probably still come in person as I booked a PF PT across the street right after then might look at apartment \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 238788\n", + "Subject: RE: Melatonin information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Update: Talked to Walgreens and they actually are only able to get the brand right now - my insurance will still (apparently from web site) cover brand name with prior authorization and rx is written for either one however only brand is in stock. They are unable to get the generic at all.\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hi Ellen,Thank you for the updates. We can clarify further at your appointment later this morning! Apologies but I forgot to bring the book this morning! I did want to let you know in case you wanted to convert your visit to video. Looking forward to talking soon!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "----------------------------------------\n", + "idx: 238787\n", + "Subject: RE: Melatonin information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you - fyi Walgreens says there is insurance issue for new rx and when I check my insurance site, the generic is fully covered, it just requires prior authorization from provider so that may require something on your end for insurance to cover. First they said out of stock but it seems like prior authorization is the issue. Not sure if Walgreens will contact you but that is the issue why they can’t fill it (tho it doesn’t seen expensive).\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:11:28,792 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:28,793 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:28,793 - ✅ similarity: 0.4097\n", + "2025-06-17 14:11:28,794 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : This message has been sent by Almira Louise Corpus Sarmiento on behalf of Julianna-Ysabel Corpus SarmientoHello Dr. Jee,I hope you’re doing well. Julie has a refill for her inhaler, and I wanted to check with you before she uses it. As mentioned in our previous conversation, you were considering prescribing a lower dosage to gradually wean her off. Should she proceed with the refill, or would you prefer to adjust her dosage?Additionally, I’ve noticed that she is currently coughing with some phlegm and mild wheezing. She spent the entire day outdoors yesterday for a performance, which lasted until midnight. Could this be contributing to her symptoms?Looking forward to your advice.Thank you.Best regards,Almira\n", + "2025-06-17 14:11:28,794 - Provider's response to this similar message: Hello Almira,I hope you’re doing well too. Given Julie's current symptoms of coughing with phlegm and mild wheezing, it would be best for her to continue using her current inhaler dosage for now. Spending the entire day outdoors, especially if the air quality was poor or if she was exposed to allergens, could certainly contribute to her symptoms.Please monitor her symptoms closely. If they persist or worsen, we may need to reassess her treatment plan. If you have any concerns or if her symptoms do not improve, please schedule an appointment through the Stanford MyHealth app.Take care,Olivia Jee, MDStanford Primary Care Los Altos\n", + "2025-06-17 14:11:28,795 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:28,797 - Thread ID: 250249012\n", + "--------------------------------------------------------------------------------\n", + "idx: 259103\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Almira Louise Corpus Sarmiento on behalf of Julianna-Ysabel Corpus SarmientoHello Dr. Jee,I hope you’re doing well. Julie has a refill for her inhaler, and I wanted to check with you before she uses it. As mentioned in our previous conversation, you were considering prescribing a lower dosage to gradually wean her off. Should she proceed with the refill, or would you prefer to adjust her dosage?Additionally, I’ve noticed that she is currently coughing with some phlegm and mild wheezing. She spent the entire day outdoors yesterday for a performance, which lasted until midnight. Could this be contributing to her symptoms?Looking forward to your advice.Thank you.Best regards,Almira\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hello Almira,I hope you’re doing well too. Given Julie's current symptoms of coughing with phlegm and mild wheezing, it would be best for her to continue using her current inhaler dosage for now. Spending the entire day outdoors, especially if the air quality was poor or if she was exposed to allergens, could certainly contribute to her symptoms.Please monitor her symptoms closely. If they persist or worsen, we may need to reassess her treatment plan. If you have any concerns or if her symptoms do not improve, please schedule an appointment through the Stanford MyHealth app.Take care,Olivia Jee, MDStanford Primary Care Los Altos\n", + "----------------------------------------\n", + "2025-06-17 14:11:28,798 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:28,799 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:28,800 - ✅ similarity: 0.3222\n", + "2025-06-17 14:11:28,800 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : Thank you Dr. Jee. I just spoke with the pharmacy and both the 0.25 and 0.5 are in low supply. It’s probably safest to just keep the 0.25 refill as scheduled and once I have that in hand, increase the Rx to 0.5 right away. I’ll message you here once I have my 0.25 refill in hand. That provides sufficient lead time on the 0.5 and at least keeps the continuity of the treatment in place. Please let me know if that seems reasonable given the uncertainty of the supply chain. Thinking ahead on the 0.5 availability, do any patients just make a jump from 0.25 to 1.00? I’ve tolerated the minimum dose well and would be open to an unpleasant week of step up dosing if it eliminates availability issues. Please let me know that is an option. Thanks!Doug\n", + "2025-06-17 14:11:28,803 - Provider's response to this similar message: Hello Doug,Glad you got the 0.25 mg and I will go ahead right now and send in the 0.5 mg! To address your prior question, I would not suggest to go up directly to 1 mg but, once the 0.5 mg is filled, I would recommend for you to reach out so I can then send the next dosing in so that it is all set to go when you are ready to go up to the next dose. Please let me know if you have any further questions or concerns!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "2025-06-17 14:11:28,803 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:28,805 - Thread ID: 248549618\n", + "--------------------------------------------------------------------------------\n", + "idx: 345484\n", + "Subject: Semaglutide dosing\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Jee - quick question, I got the Wegovy 0.50 dosage refill filled today. I have 3 doses of 0.25 remaining from my last refill. Does it make sense to increase my next injection to two (2) 0.25 pens and then move onto the 0.50 doses? I’m working on the assumption that the refill schedule will continue as normal for the 0.50. Thanks,Doug\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hi Doug,Great to hear you got the 0.50 mg dosage refill. While it is probably not recommended by the manufacturer, it should essentially be the same thing to take two of the 0.25 mg doses as taking the 0.50 mg dose.If you have any other questions or need further clarification, feel free to reach out.Best,Olivia Jee, MDStanford Primary Care Los Altos\n", + "----------------------------------------\n", + "idx: 345483\n", + "Subject: Semaglutide dosing\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Perfect - thanks Dr Jee. I’ll be certain to follow up once the 0.5 mg cycle is filled.Much appreciated,Doug\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 345482\n", + "Subject: RE: Semaglutide dosing\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Jee,I got the .25 refill as this was a safer option and picked it up today. The pharmacy said that the .25 and 0.50 doses are in low supply and were not sure if timing would work.When you have a chance, please update the prescription to 0.50 mg for the next refill cycle. Thanks again for your help and please let me know any questions.Doug\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 345481\n", + "Subject: RE: Semaglutide dosing\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Dr. Jee. I just spoke with the pharmacy and both the 0.25 and 0.5 are in low supply. It’s probably safest to just keep the 0.25 refill as scheduled and once I have that in hand, increase the Rx to 0.5 right away. I’ll message you here once I have my 0.25 refill in hand. That provides sufficient lead time on the 0.5 and at least keeps the continuity of the treatment in place. Please let me know if that seems reasonable given the uncertainty of the supply chain. Thinking ahead on the 0.5 availability, do any patients just make a jump from 0.25 to 1.00? I’ve tolerated the minimum dose well and would be open to an unpleasant week of step up dosing if it eliminates availability issues. Please let me know that is an option. Thanks!Doug\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hello Doug,Glad you got the 0.25 mg and I will go ahead right now and send in the 0.5 mg! To address your prior question, I would not suggest to go up directly to 1 mg but, once the 0.5 mg is filled, I would recommend for you to reach out so I can then send the next dosing in so that it is all set to go when you are ready to go up to the next dose. Please let me know if you have any further questions or concerns!Sincerely,Olivia Jee, MDStanford Primary Care Los Altos\n", + "----------------------------------------\n", + "2025-06-17 14:11:28,805 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:28,806 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:28,806 - ✅ similarity: 0.3173\n", + "2025-06-17 14:11:28,806 - Sender: LIERA, EVA AUREA [ S0204648] -> the retrieved similar message : Hello,Unfortunately the pharmacy did not give me an anti-nausea medication when I picked up the Zepbound. I took the Zepbound today and asked the pharmacy to refill it, but they have no refills from you. I really need it. They said no refills came with the order back in the spring when I picked up the Wegovy, and none were sent this time with the Zepbound.Can you please send it? I really need it. Thank you\n", + "2025-06-17 14:11:28,807 - Provider's response to this similar message: Hello Arina,Thank you for reaching out. I have reordered the anti-nausea medication for you. If you have any further questions or need additional assistance, please let me know.Best regards,Olivia Dew Joan Jee, MD\n", + "2025-06-17 14:11:28,807 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:28,808 - Thread ID: 248244008\n", + "--------------------------------------------------------------------------------\n", + "idx: 361419\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,Unfortunately the pharmacy did not give me an anti-nausea medication when I picked up the Zepbound. I took the Zepbound today and asked the pharmacy to refill it, but they have no refills from you. I really need it. They said no refills came with the order back in the spring when I picked up the Wegovy, and none were sent this time with the Zepbound.Can you please send it? I really need it. Thank you\n", + "----------------------------------------\n", + "Provider Response by JEE, OLIVIA:\n", + "Hello Arina,Thank you for reaching out. I have reordered the anti-nausea medication for you. If you have any further questions or need additional assistance, please let me know.Best regards,Olivia Dew Joan Jee, MD\n", + "----------------------------------------\n", + "2025-06-17 14:11:28,809 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:29,193 - Original Message:\n", + "2025-06-17 14:11:29,194 - original_query_message: Hello, I would like to follow up on US results which I never received. Also would like to confirm reason for appointment scheduled this coming Friday? Want to make sure there is a need for it? I can't remember why the appointment was made and what we were going to discuss. I can cancel if the appointment is not necessary. I don't have any concerns but, if previous lab result discussion is needed I can keep the appointment.thanks \n", + "2025-06-17 14:11:30,745 - Query Parameters:\n", + "2025-06-17 14:11:30,749 - query_message: Hi there, I hope you’re well. I wanted to touch base regarding my recent ultrasound – I haven’t seen the results come through yet and was wondering if you could update me on that? Also, I noticed I have an appointment set up for this Friday, but I’m not exactly sure what it’s for. I’m feeling okay overall, though still having occasional abdominal discomfort, so if there’s something we need to follow up on, I’m happy to keep the slot. But if the appointment isn’t really necessary, I’m open to rescheduling. Can you please let me know if there’s anything specific we were supposed to go over? Thanks so much!\n", + "2025-06-17 14:11:30,750 - receiver: FMO CLINICAL CALL CENTER POOL\n", + "2025-06-17 14:11:30,754 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:11:30,755 - specialty: Family Medicine\n", + "2025-06-17 14:11:31,452 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:31,454 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:31,455 - ✅ similarity: 0.7307\n", + "2025-06-17 14:11:31,457 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Hi Dr Martinez,After our appointment I got really busy but this morning was finally able to call in and schedule an ultrasound. The pain in my abdomen wasn’t too bad for the last few weeks but this morning it got a lot worse and it was waking me up. Hopefully it will go away soon. I have my ultrasound scheduled for 11/26 but not sure if I should be doing anything else.Tracy\n", + "2025-06-17 14:11:31,459 - Provider's response to this similar message: Hi Tracy,I'm glad to hear you were able to schedule your ultrasound. Since your abdominal pain has worsened, I recommend continuing with the supportive care measures we discussed, such as using OTC analgesics, massage, and warm compresses. If the pain becomes severe or you experience any new symptoms like fever, vomiting, or changes in bowel movements, please seek immediate medical attention or go to the nearest emergency room.If you have any further concerns or if the pain persists, please schedule a follow-up appointment through the Stanford MyHealth app.Take care,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:11:31,460 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:31,465 - Thread ID: 250528789\n", + "--------------------------------------------------------------------------------\n", + "idx: 244872\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Martinez,After our appointment I got really busy but this morning was finally able to call in and schedule an ultrasound. The pain in my abdomen wasn’t too bad for the last few weeks but this morning it got a lot worse and it was waking me up. Hopefully it will go away soon. I have my ultrasound scheduled for 11/26 but not sure if I should be doing anything else.Tracy\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Tracy,I'm glad to hear you were able to schedule your ultrasound. Since your abdominal pain has worsened, I recommend continuing with the supportive care measures we discussed, such as using OTC analgesics, massage, and warm compresses. If the pain becomes severe or you experience any new symptoms like fever, vomiting, or changes in bowel movements, please seek immediate medical attention or go to the nearest emergency room.If you have any further concerns or if the pain persists, please schedule a follow-up appointment through the Stanford MyHealth app.Take care,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:11:31,467 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:31,467 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:31,467 - ✅ similarity: 0.7061\n", + "2025-06-17 14:11:31,468 - Sender: GUTIERREZ, KARINA [ S0339757] -> the retrieved similar message : Hey-just got a letter that I need to make follow up appointment for ultrasound at Carol Ann Reed.\n", + "2025-06-17 14:11:31,468 - Provider's response to this similar message: Hi Ahlaam,Thank you for letting me know. The order has been placed and you can schedule your breast ultrasound at your earliest convenience. Best regards,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:11:31,469 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:31,472 - Thread ID: 250295663\n", + "--------------------------------------------------------------------------------\n", + "idx: 256185\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey-just got a letter that I need to make follow up appointment for ultrasound at Carol Ann Reed.\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Ahlaam,Thank you for letting me know. The order has been placed and you can schedule your breast ultrasound at your earliest convenience. Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:11:31,472 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:31,473 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:31,474 - ✅ similarity: 0.7028\n", + "2025-06-17 14:11:31,474 - Sender: ARREOLA, MARIA [ S0096428] -> the retrieved similar message : hello I'm waiting to hear about the results of the ultrasound and pelvic ultrasound.ty\n", + "2025-06-17 14:11:31,475 - Provider's response to this similar message: Hi Kimberly,Your ultrasound results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review. The results were within normal limits, the thickness of your endometrium is normal at 6mm and there were no uterine fibroids identified.If you have any further questions or need to discuss the results, feel free to schedule an appointment through the Stanford MyHealth app.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:11:31,476 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:31,478 - Thread ID: 249040688\n", + "--------------------------------------------------------------------------------\n", + "idx: 321115\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hello I'm waiting to hear about the results of the ultrasound and pelvic ultrasound.ty\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Kimberly,Your ultrasound results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review. The results were within normal limits, the thickness of your endometrium is normal at 6mm and there were no uterine fibroids identified.If you have any further questions or need to discuss the results, feel free to schedule an appointment through the Stanford MyHealth app.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:11:31,479 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:31,479 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:31,480 - ✅ similarity: 0.6561\n", + "2025-06-17 14:11:31,481 - Sender: AGUILAR-DUARTE, MARLENE [ S0182720] -> the retrieved similar message : Thank you for reviewing my tests and sharing these tips, Christian! I got a pap smear (summer of 2021) which was normal from Planned Parenthood.Did you get the x-rays of my tailbone? I'm continuing to feel pain so I scheduled a late December physical therapy appointment, but do you think I should get an MRI? I also got a donut pillow but it seems to be persistent, especially at night. Thanks again, doc!\n", + "2025-06-17 14:11:31,481 - Provider's response to this similar message: Hi Risha,Thank you for the update. The x-rays of your tailbone are as follows:No displaced fracture of the sacrum or coccyx. It's great that you have scheduled a physical therapy appointment. If the pain persists despite physical therapy and using the donut pillow, we can consider an MRI to get a more detailed view of the area. Let's see how you respond to physical therapy first, and we can reassess if needed.Take care,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:11:31,482 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:31,485 - Thread ID: 250480750\n", + "--------------------------------------------------------------------------------\n", + "idx: 247216\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Can I get the xrays for my records? \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247215\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "That makes sense, thank you. My physical therapy appointment is on Jan 9 so I'll let you know in case it gets worse before then. \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247214\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for reviewing my tests and sharing these tips, Christian! I got a pap smear (summer of 2021) which was normal from Planned Parenthood.Did you get the x-rays of my tailbone? I'm continuing to feel pain so I scheduled a late December physical therapy appointment, but do you think I should get an MRI? I also got a donut pillow but it seems to be persistent, especially at night. Thanks again, doc!\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Risha,Thank you for the update. The x-rays of your tailbone are as follows:No displaced fracture of the sacrum or coccyx. It's great that you have scheduled a physical therapy appointment. If the pain persists despite physical therapy and using the donut pillow, we can consider an MRI to get a more detailed view of the area. Let's see how you respond to physical therapy first, and we can reassess if needed.Take care,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "idx: 247213\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Christian & team, Thank you so much for the referrals; I'm working on scheduling the respective appointments this week. Per our discussion, I wanted to share the reports from my physical earlier this year - please see attached. Do reach out in case I missed anything. Thanks,Risha\n", + "----------------------------------------\n", + "Provider Response by MARTINEZ, CHRISTIAN ELOY:\n", + "Hi Risha,Thanks for the upload. Do you have any pap smear records? I see your vit D was a bit low, which I recommend taking an OTC supplement 1000IU~ every day. Your LDL cholesterol was a bit elevated but not concerning. We recommend working on reducing saturated/trans fats, and refined sugars while increasing fiber rich foods. The remaining results were not concerning. Please let me know of any questions or concerns. Take care,Christian E. Martinez, MPA, PA-C11/14/2024\n", + "----------------------------------------\n", + "2025-06-17 14:11:31,486 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:31,486 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:31,487 - ✅ similarity: 0.6542\n", + "2025-06-17 14:11:31,487 - Sender: HIRLAS, ITZEL [ S0370903] -> the retrieved similar message : Hello, I would like to follow up on US results which I never received. Also would like to confirm reason for appointment scheduled this coming Friday? Want to make sure there is a need for it? I can't remember why the appointment was made and what we were going to discuss. I can cancel if the appointment is not necessary. I don't have any concerns but, if previous lab result discussion is needed I can keep the appointment.thanks \n", + "2025-06-17 14:11:31,488 - Provider's response to this similar message: Hi Lucrecia,Your ultrasound results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review.Regarding your appointment this coming Friday, it is to review the ultrasound/lab results and follow up on your symptoms. If OBGYN referral is needed, this will be discussed at the visit.Please let me know if you need any further assistance.Christian Eloy Martinez, PA\n", + "2025-06-17 14:11:31,488 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:31,490 - Thread ID: 253582029\n", + "--------------------------------------------------------------------------------\n", + "idx: 101131\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I would like to follow up on US results which I never received. Also would like to confirm reason for appointment scheduled this coming Friday? Want to make sure there is a need for it? I can't remember why the appointment was made and what we were going to discuss. I can cancel if the appointment is not necessary. I don't have any concerns but, if previous lab result discussion is needed I can keep the appointment.thanks \n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Lucrecia,Your ultrasound results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review.Regarding your appointment this coming Friday, it is to review the ultrasound/lab results and follow up on your symptoms. If OBGYN referral is needed, this will be discussed at the visit.Please let me know if you need any further assistance.Christian Eloy Martinez, PA\n", + "----------------------------------------\n", + "2025-06-17 14:11:31,491 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:31,963 - Original Message:\n", + "2025-06-17 14:11:31,964 - original_query_message: This message is being sent by Phyllis Chen on behalf of Jonathan T ChenDr. Harish H K Murthy's phone number (408-559-2011) listed on the referral letter was incorrect. The operator of Good Samaritan Hospital answered the phone, and asked us to call Dr. Murthy's office directly.Would you provide the office of Dr. Harish H K Murthy's phone number?Happy New Year,Jonathan\n", + "2025-06-17 14:11:33,479 - Query Parameters:\n", + "2025-06-17 14:11:33,481 - query_message: Hi there,I was recently referred to Dr. Harish H K Murthy for some ongoing stomach issues that just haven’t gotten better, like frequent cramping and bloating. I tried calling the phone number listed on the paperwork my primary care doctor gave me, but it connected me to Good Samaritan Hospital’s general line instead of Dr. Murthy’s office. The hospital operator wasn’t able to transfer me, and now I’m stuck not knowing how to actually reach Dr. Murthy’s clinic to make an appointment.Could you please share Dr. Murthy’s direct office phone number or let me know the best way to contact his staff? I want to get scheduled soon because my symptoms are really starting to affect my daily life. Thanks so much for any help!\n", + "2025-06-17 14:11:33,482 - receiver: KAUSHAL, MANIKA V\n", + "2025-06-17 14:11:33,483 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:11:33,483 - specialty: Family Medicine\n", + "2025-06-17 14:11:34,183 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:34,187 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:34,187 - ✅ similarity: 0.7694\n", + "2025-06-17 14:11:34,188 - Sender: PROVEDOR, JAQUELIN [ S0186529] -> the retrieved similar message : This message is being sent by Phyllis Chen on behalf of Jonathan T ChenDr. Harish H K Murthy's phone number (408-559-2011) listed on the referral letter was incorrect. The operator of Good Samaritan Hospital answered the phone, and asked us to call Dr. Murthy's office directly.Would you provide the office of Dr. Harish H K Murthy's phone number?Happy New Year,Jonathan\n", + "2025-06-17 14:11:34,191 - Provider's response to this similar message: The number is 408-356-8400\n", + "2025-06-17 14:11:34,192 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:34,216 - Thread ID: 254395514\n", + "--------------------------------------------------------------------------------\n", + "idx: 64979\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Phyllis Chen on behalf of Jonathan T ChenDr. Harish H K Murthy's phone number (408-559-2011) listed on the referral letter was incorrect. The operator of Good Samaritan Hospital answered the phone, and asked us to call Dr. Murthy's office directly.Would you provide the office of Dr. Harish H K Murthy's phone number?Happy New Year,Jonathan\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "The number is 408-356-8400\n", + "----------------------------------------\n", + "2025-06-17 14:11:34,216 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:34,217 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:34,217 - ✅ similarity: 0.6043\n", + "2025-06-17 14:11:34,218 - Sender: SILVA, ALONDRA [ S0368312] -> the retrieved similar message : Good morning Hui, Unfortunately, we do not have access to view appointment availability of the clinics we refer patients to. Another option you have is to contact your insurance and have them provide you with a list of locations that are covered by your plan. This way you can decided which location you would like to proceed with and we can facilitate the new referral to your preferred location.I have forwarded your message to Dr. Kaushal for review. It typically takes 24 to 48 hours for a turnaround response from the doctor. If you are in need of immediate medical assistance you can contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest, Alondra Silva, MA, 11/11/2024, 10:21 AM\n", + "2025-06-17 14:11:34,220 - Provider's response to this similar message: Hi HuiSorry to hear you are not feeling wellYou will need an appointment for evaluationFor more urgent help you can also go to Stanford Express Care:Stanford Express Care Palo AltoHoover Pavilion211 Quarry RoadSuite 102Palo Alto, CA 94304phone: 650-736-5211visit: 7 days/week, 9am-9pm Stanford Express Care San JoseRiver View Apartment Homes52 Skytop StreetSuite 10San Jose, CA 95134phone: 669-294-8888visit: 7 days/week, 9am-9pm Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pm \n", + "2025-06-17 14:11:34,220 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:34,224 - Thread ID: 250226389\n", + "--------------------------------------------------------------------------------\n", + "idx: 260388\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Hui, Unfortunately, we do not have access to view appointment availability of the clinics we refer patients to. Another option you have is to contact your insurance and have them provide you with a list of locations that are covered by your plan. This way you can decided which location you would like to proceed with and we can facilitate the new referral to your preferred location.I have forwarded your message to Dr. Kaushal for review. It typically takes 24 to 48 hours for a turnaround response from the doctor. If you are in need of immediate medical assistance you can contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest, Alondra Silva, MA, 11/11/2024, 10:21 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi HuiSorry to hear you are not feeling wellYou will need an appointment for evaluationFor more urgent help you can also go to Stanford Express Care:Stanford Express Care Palo AltoHoover Pavilion211 Quarry RoadSuite 102Palo Alto, CA 94304phone: 650-736-5211visit: 7 days/week, 9am-9pm Stanford Express Care San JoseRiver View Apartment Homes52 Skytop StreetSuite 10San Jose, CA 95134phone: 669-294-8888visit: 7 days/week, 9am-9pm Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pm \n", + "----------------------------------------\n", + "idx: 260387\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hi Dr my hemorrhoids like symptoms is getting worse, sometimes I saw a bit blood on toilet paper after bowel movement. and the hemorrhoids like lump prolapse after bowel movement and I had to push it back often. and it's getting more uncomfortable and painful sometimes.my current rectal colon specialist can only meet me in February 2025. could you refer another rectal colon specialist who can meet with me earlier?thankshui\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Hui, Unfortunately, we do not have access to view appointment availability of the clinics we refer patients to. Another option you have is to contact your insurance and have them provide you with a list of locations that are covered by your plan. This way you can decided which location you would like to proceed with and we can facilitate the new referral to your preferred location.I have forwarded your message to Dr. Kaushal for review. It typically takes 24 to 48 hours for a turnaround response from the doctor. If you are in need of immediate medical assistance you can contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest, Alondra Silva, MA, 11/11/2024, 10:21 AM\n", + "----------------------------------------\n", + "2025-06-17 14:11:34,224 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:34,225 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:34,229 - ✅ similarity: 0.5755\n", + "2025-06-17 14:11:34,230 - Sender: SILVA, ALONDRA [ S0368312] -> the retrieved similar message : Good morning Cristina, I have forwarded your message to Dr. Kaushal for review. Typically an appointment is required to receive a referral. While we wait for a response from Dr. Kaushal, I recommend that you contact our appointment line at 408-997-9155 option 1 to facilitate an appointment for a referral request. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may assist you with this matter. Best, Alondra Silva, MA, 11/4/2024, 9:52 AM\n", + "2025-06-17 14:11:34,231 - Provider's response to this similar message: Hi CristinaCan you make an appointment.Dr.Kaushal\n", + "2025-06-17 14:11:34,232 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:34,235 - Thread ID: 249612797\n", + "--------------------------------------------------------------------------------\n", + "idx: 292199\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kaushal,I made an appointment for next Wednesday.Thank you!\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 292198\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Cristina, I have forwarded your message to Dr. Kaushal for review. Typically an appointment is required to receive a referral. While we wait for a response from Dr. Kaushal, I recommend that you contact our appointment line at 408-997-9155 option 1 to facilitate an appointment for a referral request. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may assist you with this matter. Best, Alondra Silva, MA, 11/4/2024, 9:52 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi CristinaCan you make an appointment.Dr.Kaushal\n", + "----------------------------------------\n", + "idx: 292197\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Kaushal,I hope you’re doing well! I just recently received a positive pregnancy test! Dr. Christina My Dinh Lam as she was my obgyn last pregnancy, and I’d like to be referred to her if possible. Please let me know the next steps! Thank you,Cristina Tack\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Cristina, I have forwarded your message to Dr. Kaushal for review. Typically an appointment is required to receive a referral. While we wait for a response from Dr. Kaushal, I recommend that you contact our appointment line at 408-997-9155 option 1 to facilitate an appointment for a referral request. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may assist you with this matter. Best, Alondra Silva, MA, 11/4/2024, 9:52 AM\n", + "----------------------------------------\n", + "2025-06-17 14:11:34,235 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:34,236 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:34,236 - ✅ similarity: 0.5532\n", + "2025-06-17 14:11:34,237 - Sender: SILVA, ALONDRA [ S0368312] -> the retrieved similar message : Hi ,Can you please update my referral to digestive health? I forgot to make an appointment.Thanks!Joanna\n", + "2025-06-17 14:11:34,237 - Provider's response to this similar message: Hi Joannna A new referral has been placed as requested Are you currently having symptoms of hemorrhoids???\n", + "2025-06-17 14:11:34,238 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:34,239 - Thread ID: 253967290\n", + "--------------------------------------------------------------------------------\n", + "idx: 83580\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, I’ve been having them off and on but haven’t had the time to make my appointment with GI.Thanks for renewing my referral.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hi Joanna,You are welcomePlease do follow up with GI.And if your symptoms are worsening ( for example active bleeding, worsening rectal pain , etc) then you need to go to EmergencyDr.Kaushal\n", + "----------------------------------------\n", + "idx: 83579\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi ,Can you please update my referral to digestive health? I forgot to make an appointment.Thanks!Joanna\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi Joannna A new referral has been placed as requested Are you currently having symptoms of hemorrhoids???\n", + "----------------------------------------\n", + "2025-06-17 14:11:34,240 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:34,240 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:34,241 - ✅ similarity: 0.5309\n", + "2025-06-17 14:11:34,241 - Sender: SILVA, ALONDRA [ S0368312] -> the retrieved similar message : Good morning Danica,I have forwarded your message to Dr. Kaushal for review. However, an appointment is required for this request as your last visit was over 1 year ago on 922/23. Please contact our appointment line at 408-997-9155 option 1 to facilitate an appointment. This appointment can be scheduled at your convenience as a video visit or in person visit. If Dr. Kaushal has limited availability, you are welcome to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.Best regards,Alondra Silva, MA, 11/4/2024, 9:47 AM\n", + "2025-06-17 14:11:34,242 - Provider's response to this similar message: Hi DanicaCan you make an appointment Dr.KAushal\n", + "2025-06-17 14:11:34,242 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:34,245 - Thread ID: 249627596\n", + "--------------------------------------------------------------------------------\n", + "idx: 291165\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Kaushal,I have submitted the fecal lab test, but the lab says there is no request any blood work. Can you submit the order. Thank you,Danica\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi DanicaThank you for the updateThe lab have been ordered at Lab CorpDr.KAushal\n", + "----------------------------------------\n", + "idx: 291164\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Danica,I have forwarded your message to Dr. Kaushal for review. However, an appointment is required for this request as your last visit was over 1 year ago on 922/23. Please contact our appointment line at 408-997-9155 option 1 to facilitate an appointment. This appointment can be scheduled at your convenience as a video visit or in person visit. If Dr. Kaushal has limited availability, you are welcome to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.Best regards,Alondra Silva, MA, 11/4/2024, 9:47 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi DanicaCan you make an appointment Dr.KAushal\n", + "----------------------------------------\n", + "idx: 291163\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I need to get a follow-up fecal test for my pcr that showed a positive result for c diff. It's just a recheck. Also, on a totally different matter. I have been dealing with pain in my left heel. I have been working to see if it will get better over the last few months, but it just continues, and now the level of pain has increased over the last couple of weeks. Do I need a referral? Thank you,Danica Burge-Garside\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Danica,I have forwarded your message to Dr. Kaushal for review. However, an appointment is required for this request as your last visit was over 1 year ago on 922/23. Please contact our appointment line at 408-997-9155 option 1 to facilitate an appointment. This appointment can be scheduled at your convenience as a video visit or in person visit. If Dr. Kaushal has limited availability, you are welcome to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.Best regards,Alondra Silva, MA, 11/4/2024, 9:47 AM\n", + "----------------------------------------\n", + "2025-06-17 14:11:34,247 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:34,775 - Original Message:\n", + "2025-06-17 14:11:34,775 - original_query_message: Hello Dr Chaudhry,I was pretty sick a month ago and the coughing and sore throat lasted over 2 weeks. I seem to have the same thing again. Sore throat and chest aching from coughing. I seem to have a lot of phlegm (yellowish) along with the coughing. I tested for Covid and both times it’s been negative. I have had my flu shot already as well. Is there anything I should be doing at this point?Thank you,Azin\n", + "2025-06-17 14:11:36,378 - Query Parameters:\n", + "2025-06-17 14:11:36,380 - query_message: Hi Dr. Chaudhry,I wanted to get your advice because I’ve been feeling unwell again. About a month ago, I had this really persistent cough and sore throat that dragged on for more than two weeks, and now it’s come back. This time, I’m also feeling some pressure in my chest, and I'm coughing up yellowish mucus. My voice sounds hoarse, and I feel really tired, but so far my rapid COVID tests are negative, and I already got my flu vaccine this season. Is there anything else I should watch out for, or things I could do to help recover faster? Would you suggest I see someone in person, or is this likely just a lingering viral thing? Thanks so much for your help!\n", + "2025-06-17 14:11:36,381 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:11:36,382 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:11:36,383 - specialty: Internal Medicine\n", + "2025-06-17 14:11:39,702 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:39,703 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:39,704 - ✅ similarity: 0.8722\n", + "2025-06-17 14:11:39,704 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Chaudhry,I was pretty sick a month ago and the coughing and sore throat lasted over 2 weeks. I seem to have the same thing again. Sore throat and chest aching from coughing. I seem to have a lot of phlegm (yellowish) along with the coughing. I tested for Covid and both times it’s been negative. I have had my flu shot already as well. Is there anything I should be doing at this point?Thank you,Azin\n", + "2025-06-17 14:11:39,707 - Provider's response to this similar message: Hi Ms. Farassat,I tried to call you but was unable to get a hold of you and left a voice message. Please give our office a call back Phone: 650-498-6500 to schedule an appointment with Dr. Chaudhry for proper evaluation and discuss her recommendations.Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:39,708 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:39,712 - Thread ID: 251981841\n", + "--------------------------------------------------------------------------------\n", + "idx: 170234\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I have attached the test that I just took!No T line is visible. Should I come in for my appointment?Thanks,Azin\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Farassat,Yes please come in person for your visit today, arrive 15 mins prior and wear a mask while at the clinicBest wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 170233\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sure, I can come in today at 4:10! I’ll get the test done before I come in.Thank you,Azin\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Farassat,Thank you for your response. I do need to see the covid test result first (send a photo in reply to this message) to confirm if you're able to come in, otherwise I've scheduled you for a VIDEO visit today 4:10 pm for now until I hear back from you with the results. We can change it to in person once we receive the negative results. What date did your symptoms start again? Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 170232\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Karissa,Been in meetings. I just made an appointment for the next available on Monday.Thanks,Azin\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Farassat,Would you like to see her sooner today 4:10 pm, check-in 3:55 pm?Please repeat a covid test today and send us your photo result- this will help us determine if you're able to meet our clinic's criteria for entry (due to our protocol for upper respiratory & covid-like symptoms). I recommend seeing her sooner today if you'd like to rule out other respiratory conditions like flu, bronchitis, pneumonia etc. Otherwise, if generally feeling mild symptoms and symptoms are manageable at home then you can continue supportive home care, monitor and keep your Monday appt. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 170231\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Chaudhry,I was pretty sick a month ago and the coughing and sore throat lasted over 2 weeks. I seem to have the same thing again. Sore throat and chest aching from coughing. I seem to have a lot of phlegm (yellowish) along with the coughing. I tested for Covid and both times it’s been negative. I have had my flu shot already as well. Is there anything I should be doing at this point?Thank you,Azin\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Farassat,I tried to call you but was unable to get a hold of you and left a voice message. Please give our office a call back Phone: 650-498-6500 to schedule an appointment with Dr. Chaudhry for proper evaluation and discuss her recommendations.Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:39,713 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:39,714 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:39,714 - ✅ similarity: 0.8190\n", + "2025-06-17 14:11:39,715 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Fisher, welcome back! I wanted to ask your opinion… I got a cold on December 18, it ran its usual course and I was getting better however I had to take my mother-in-law to the urgent care and I’m sure I picked up something else on December 29… While my sputum is clear from my nose and my chest, I have a very persistent and nagging cough. I do have a history of getting bronchitis when I have a cold… It seems like I have been sick too long… Do you think I could benefit from antibiotics? I tested for Covid and I am negative… I have had a headache, but no other symptoms except fatigue..Thank you, Patience\n", + "2025-06-17 14:11:39,715 - Provider's response to this similar message: Good afternoon Patience,I recommend an office visit with Dr. Fisher so she can assess you further and listen to your lungs.At the time of this writing, she has the following appointment slots available this week (first-come, first-served):Tuesday 1/7 4:30pmWednesday 1/8 2:00pm, 3:45pm, 4:15pmThursday 1/9 9:00amFriday 1/10 9:00am, 12:15pmWhich would you like?It would also be reasonable to be seen at a local urgent care if our clinic is too far from your residence.Best,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Monday 1/20 for MLK Jr Day\n", + "2025-06-17 14:11:39,716 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:39,717 - Thread ID: 254931141\n", + "--------------------------------------------------------------------------------\n", + "idx: 37016\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dana- I am out of town so I will have to go to an urgent care -Thank you ,Patience \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 37015\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Fisher, welcome back! I wanted to ask your opinion… I got a cold on December 18, it ran its usual course and I was getting better however I had to take my mother-in-law to the urgent care and I’m sure I picked up something else on December 29… While my sputum is clear from my nose and my chest, I have a very persistent and nagging cough. I do have a history of getting bronchitis when I have a cold… It seems like I have been sick too long… Do you think I could benefit from antibiotics? I tested for Covid and I am negative… I have had a headache, but no other symptoms except fatigue..Thank you, Patience\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good afternoon Patience,I recommend an office visit with Dr. Fisher so she can assess you further and listen to your lungs.At the time of this writing, she has the following appointment slots available this week (first-come, first-served):Tuesday 1/7 4:30pmWednesday 1/8 2:00pm, 3:45pm, 4:15pmThursday 1/9 9:00amFriday 1/10 9:00am, 12:15pmWhich would you like?It would also be reasonable to be seen at a local urgent care if our clinic is too far from your residence.Best,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Monday 1/20 for MLK Jr Day\n", + "----------------------------------------\n", + "2025-06-17 14:11:39,718 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:39,719 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:39,719 - ✅ similarity: 0.8095\n", + "2025-06-17 14:11:39,723 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr GarayI have been struggling with a persistent cough since Oct 3. We were on a trip to Italy when I initially came down with a bad cough and flu symptoms. I tested three times for COVID and all tests came back negative. I thought once I arrived home things would improve but they have not. I am able to sleep through the night but once I awake the coughing persists all day. I don't have a fever. The cough is not really productive. My chest feels tight and my throat is sore all day long. I have taken Mucinex tablets with some relief for a couple of hours. I have done saline rinses which also help for the short term. I have used Afrin but only limited as I try to stay away from anything that will harm the mucosal lining of my nose. I am at my wits end. I haven't felt myself for over 6 weeks. Not sure where to go from here. Maybe a chest xray? Antibiotics? Looking forward to hearing from you!ThanksJanet\n", + "2025-06-17 14:11:39,724 - Provider's response to this similar message: Hi Janet, Thank you for your message and sorry to hear that you've been dealing with this persistent cough for so long. Given the duration and your symptoms, it would be a good idea to further evaluate the cause. Dr. Garay's first available appointment is not until Tuesday, 12/03 at 11:45 AM, check in time at 11:30 AM. Please let me know if this day and time works for you, or if you'd like to be seen sooner by another provider to discuss your symptoms in more detail and decide on the best course of action.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:39,725 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:39,727 - Thread ID: 251124475\n", + "--------------------------------------------------------------------------------\n", + "idx: 214159\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am willing to see someone else sooner. Please let me know at your earliest convenienceJanet\n", + "----------------------------------------\n", + "Provider Response by CRUZ, ALYSSA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 214158\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr GarayI have been struggling with a persistent cough since Oct 3. We were on a trip to Italy when I initially came down with a bad cough and flu symptoms. I tested three times for COVID and all tests came back negative. I thought once I arrived home things would improve but they have not. I am able to sleep through the night but once I awake the coughing persists all day. I don't have a fever. The cough is not really productive. My chest feels tight and my throat is sore all day long. I have taken Mucinex tablets with some relief for a couple of hours. I have done saline rinses which also help for the short term. I have used Afrin but only limited as I try to stay away from anything that will harm the mucosal lining of my nose. I am at my wits end. I haven't felt myself for over 6 weeks. Not sure where to go from here. Maybe a chest xray? Antibiotics? Looking forward to hearing from you!ThanksJanet\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Janet, Thank you for your message and sorry to hear that you've been dealing with this persistent cough for so long. Given the duration and your symptoms, it would be a good idea to further evaluate the cause. Dr. Garay's first available appointment is not until Tuesday, 12/03 at 11:45 AM, check in time at 11:30 AM. Please let me know if this day and time works for you, or if you'd like to be seen sooner by another provider to discuss your symptoms in more detail and decide on the best course of action.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:39,727 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:39,728 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:39,728 - ✅ similarity: 0.8036\n", + "2025-06-17 14:11:39,729 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr ShermanWe hope you are doing wellI could use some advice, as I have a cold or flu for the first time in decades.Scratchy sore throat Friday eveningVery sore throat Sat. Warm water gargle in the morning, throat lozenge in the eveningSun the sore throat was largely gone and I had a lot of congestion. Sun nite felt like some fluid was heading to my lungs, and this woke me up. TToday the congestion is more manageable, I cough up sputum and I had light activity. I keep hydrated.I look forward to your adviceIf this happens again, what do you recommend ?How long will i be contagious ?When can I have my Covid booster ?Thank you, Dr Sherman\n", + "2025-06-17 14:11:39,729 - Provider's response to this similar message: Hi Mr. Mills,Sorry to hear that you're not feeling well. You are doing the right things in terms of monitoring your symptoms, treating with supportive home care ex. Good rest and hydration, over the counter medications, gargling salt water etc for presumed viral infection. You can continue monitoring and home care as long as you are not feeling worse, and are seeing signs of improvement. You can take over the counter cough medication/decongestants like Robitussin or Mucinex as needed. Please check a home covid test. You can get a combo covid and flu antigen test over the counter. You are generally most contagious 1-2 days before symptoms, then for 5 days of symptoms, and less likely to be contagious after as long as no fever but still cover any coughs/sneezes, wear a mask in public areas, wash your hands, disinfect commonly used surfaces to help prevent spread of infection If not feeling better or feeling worse, please schedule an appointment with Dr. Sherman to rule out other respiratory illnesses that may be viral or bacterial ex. Pneumonia, bronchitis Phone: 650-498-6500 Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:39,731 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:39,733 - Thread ID: 250357024\n", + "--------------------------------------------------------------------------------\n", + "idx: 253643\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello KarissaThank you very much. I appreciate the message you created.Carl\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 253642\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr ShermanWe hope you are doing wellI could use some advice, as I have a cold or flu for the first time in decades.Scratchy sore throat Friday eveningVery sore throat Sat. Warm water gargle in the morning, throat lozenge in the eveningSun the sore throat was largely gone and I had a lot of congestion. Sun nite felt like some fluid was heading to my lungs, and this woke me up. TToday the congestion is more manageable, I cough up sputum and I had light activity. I keep hydrated.I look forward to your adviceIf this happens again, what do you recommend ?How long will i be contagious ?When can I have my Covid booster ?Thank you, Dr Sherman\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Mills,Sorry to hear that you're not feeling well. You are doing the right things in terms of monitoring your symptoms, treating with supportive home care ex. Good rest and hydration, over the counter medications, gargling salt water etc for presumed viral infection. You can continue monitoring and home care as long as you are not feeling worse, and are seeing signs of improvement. You can take over the counter cough medication/decongestants like Robitussin or Mucinex as needed. Please check a home covid test. You can get a combo covid and flu antigen test over the counter. You are generally most contagious 1-2 days before symptoms, then for 5 days of symptoms, and less likely to be contagious after as long as no fever but still cover any coughs/sneezes, wear a mask in public areas, wash your hands, disinfect commonly used surfaces to help prevent spread of infection If not feeling better or feeling worse, please schedule an appointment with Dr. Sherman to rule out other respiratory illnesses that may be viral or bacterial ex. Pneumonia, bronchitis Phone: 650-498-6500 Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:39,733 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:39,735 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:39,737 - ✅ similarity: 0.7944\n", + "2025-06-17 14:11:39,740 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Garay,I have had a persistent cough and cold for about the last 10-12 days. The symptoms are a very runny nose and a wet cough, sometimes resulting in coughing out mucus. I think I had a fever at one point last week, but I took Tylenol and it passed and has not recurred. I'm most concerned about the duration of the symptoms. It's very unusual for me to have a cold that lasts this long. I did receive COVID and flu vaccines in the early Fall.My wife (also a patient of yours, Helen Rutt) is experiencing the same symptoms. She came down with them a few days after I did.What should we do? I hesitate to ask for an appointment for what is a mild cold, but this is a lingering mild cold. I have not taken much in the way of over the counter cold meds, but will take whatever you recommend. Hopefully what Helen and I have is something you are seeing in other patients and you can tell us what we should do.Thanks in advance.Best regards, Gil Ohana\n", + "2025-06-17 14:11:39,741 - Provider's response to this similar message: Hi Gilad,Thank you for your message. You are scheduled a Video Visit with Dr. Fresco today 11/21 at 0410 PM to evaluate your cough. Please complete a COVID-19 test prior your appointment and send us the results. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:39,741 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:39,743 - Thread ID: 251310903\n", + "--------------------------------------------------------------------------------\n", + "idx: 204672\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Gilad,Thank you for your message. You are scheduled a Video Visit with Dr. Fresco today 11/21 at 0410 PM to evaluate your cough. Please complete a COVID-19 test prior your appointment and send us the results. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by FRESCO, LINDA,:\n", + "No response\n", + "----------------------------------------\n", + "idx: 204671\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Garay,I have had a persistent cough and cold for about the last 10-12 days. The symptoms are a very runny nose and a wet cough, sometimes resulting in coughing out mucus. I think I had a fever at one point last week, but I took Tylenol and it passed and has not recurred. I'm most concerned about the duration of the symptoms. It's very unusual for me to have a cold that lasts this long. I did receive COVID and flu vaccines in the early Fall.My wife (also a patient of yours, Helen Rutt) is experiencing the same symptoms. She came down with them a few days after I did.What should we do? I hesitate to ask for an appointment for what is a mild cold, but this is a lingering mild cold. I have not taken much in the way of over the counter cold meds, but will take whatever you recommend. Hopefully what Helen and I have is something you are seeing in other patients and you can tell us what we should do.Thanks in advance.Best regards, Gil Ohana\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Gilad,Thank you for your message. You are scheduled a Video Visit with Dr. Fresco today 11/21 at 0410 PM to evaluate your cough. Please complete a COVID-19 test prior your appointment and send us the results. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:39,745 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:40,371 - Original Message:\n", + "2025-06-17 14:11:40,372 - original_query_message: Hi there, I have a bladder infection. Can you please prescribe me something for it. Thank you.\n", + "2025-06-17 14:11:41,287 - Query Parameters:\n", + "2025-06-17 14:11:41,287 - query_message: Hi, I’ve been experiencing a lot of discomfort when I go to the bathroom—mostly burning and the urge to pee constantly, even though not much comes out. I’ve also noticed my urine is a bit cloudy and has a strong smell lately. I’ve had urinary tract infections before, so I’m worried it might be happening again. Is there anything I can take to help clear this up? Thanks for your advice.\n", + "2025-06-17 14:11:41,288 - receiver: PINOLE & SAN PABLO CARE TEAM POOL,\n", + "2025-06-17 14:11:41,288 - department: FAMILY MEDICINE AMG PINOLE\n", + "2025-06-17 14:11:41,289 - specialty: Family Medicine\n", + "2025-06-17 14:11:41,642 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:41,644 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:41,644 - ✅ similarity: 0.8137\n", + "2025-06-17 14:11:41,645 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Hi Dr Froz,Over the past 10 days i have noticed that my urine has a really strong (repugnant) smell to it and its also cloudy. I have not had any pain or discomfort but the smell is overwhelming.I was told its likely a UTI. I did some further research and this seems to be consistent with a UTI. I have started drinking cranberry juice and taking probiotics (via yogurt). Was wondering if there is something you could prescribe to help with this?Thank youTim\n", + "2025-06-17 14:11:41,647 - Provider's response to this similar message: Hi Mr. Timothy Bolick,My name is Jenny Quan, a physician assistant helping to cover messages today. Thank you for reaching out. The symptoms you describe could indeed be consistent with a urinary tract infection (UTI). Given your history of incomplete voiding, it is important to address this promptly.I recommend that you schedule an appointment for a urine test to confirm the presence of a UTI. Once we have the test results, we can determine the appropriate treatment. You can schedule this appointment using the Stanford MyHealth app.In the meantime, continue drinking plenty of fluids, including cranberry juice, and taking probiotics as you have been.If you experience any pain, fever, or other concerning symptoms, please seek medical attention immediately.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:11:41,648 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:41,658 - Thread ID: 250287746\n", + "--------------------------------------------------------------------------------\n", + "idx: 256647\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Froz,Over the past 10 days i have noticed that my urine has a really strong (repugnant) smell to it and its also cloudy. I have not had any pain or discomfort but the smell is overwhelming.I was told its likely a UTI. I did some further research and this seems to be consistent with a UTI. I have started drinking cranberry juice and taking probiotics (via yogurt). Was wondering if there is something you could prescribe to help with this?Thank youTim\n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL,:\n", + "Hi Mr. Timothy Bolick,My name is Jenny Quan, a physician assistant helping to cover messages today. Thank you for reaching out. The symptoms you describe could indeed be consistent with a urinary tract infection (UTI). Given your history of incomplete voiding, it is important to address this promptly.I recommend that you schedule an appointment for a urine test to confirm the presence of a UTI. Once we have the test results, we can determine the appropriate treatment. You can schedule this appointment using the Stanford MyHealth app.In the meantime, continue drinking plenty of fluids, including cranberry juice, and taking probiotics as you have been.If you experience any pain, fever, or other concerning symptoms, please seek medical attention immediately.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:11:41,658 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:41,659 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:41,659 - ✅ similarity: 0.6361\n", + "2025-06-17 14:11:41,660 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Hi there, I have a bladder infection. Can you please prescribe me something for it. Thank you.\n", + "2025-06-17 14:11:41,661 - Provider's response to this similar message: Hi Ms. Dorothy J Johnson ,I'm sorry to hear you're experiencing a bladder infection. To ensure we provide the most appropriate treatment, I recommend scheduling an appointment so we can evaluate your symptoms and possibly perform a urine test. You can schedule your appointment using the Stanford MyHealth app.In the meantime, make sure to stay hydrated and avoid any irritants like caffeine or alcohol.Take care, and I look forward to seeing you soon.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:11:41,662 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:41,666 - Thread ID: 249019190\n", + "--------------------------------------------------------------------------------\n", + "idx: 322753\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi there, I have a bladder infection. Can you please prescribe me something for it. Thank you.\n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL,:\n", + "Hi Ms. Dorothy J Johnson ,I'm sorry to hear you're experiencing a bladder infection. To ensure we provide the most appropriate treatment, I recommend scheduling an appointment so we can evaluate your symptoms and possibly perform a urine test. You can schedule your appointment using the Stanford MyHealth app.In the meantime, make sure to stay hydrated and avoid any irritants like caffeine or alcohol.Take care, and I look forward to seeing you soon.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:11:41,669 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:41,669 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:41,670 - ✅ similarity: 0.2673\n", + "2025-06-17 14:11:41,670 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Hello Doctor, Hope this message finds you well! I’ve been running for over a year now and I’m experiencing knee pain. The pain is on my right knee and it goes down my leg when I start running now. Do I need a referral to see a doctor? Please advise thanks! \n", + "2025-06-17 14:11:41,670 - Provider's response to this similar message: Hi Andrea,I hope you're doing well too! I'm sorry to hear about your knee pain. It sounds like it would be beneficial for you to have an appointment to evaluate your knee and leg pain. We can determine the need for imaging and a referral as appropriate yIn the meantime, try to rest and avoid activities that aggravate the pain. Applying ice and taking over-the-counter pain relievers may also help.Take care!Aarentino Maximillian Smith, NP\n", + "2025-06-17 14:11:41,671 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:41,676 - Thread ID: 250008733\n", + "--------------------------------------------------------------------------------\n", + "idx: 271451\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor, Hope this message finds you well! I’ve been running for over a year now and I’m experiencing knee pain. The pain is on my right knee and it goes down my leg when I start running now. Do I need a referral to see a doctor? Please advise thanks! \n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL,:\n", + "Hi Andrea,I hope you're doing well too! I'm sorry to hear about your knee pain. It sounds like it would be beneficial for you to have an appointment to evaluate your knee and leg pain. We can determine the need for imaging and a referral as appropriate yIn the meantime, try to rest and avoid activities that aggravate the pain. Applying ice and taking over-the-counter pain relievers may also help.Take care!Aarentino Maximillian Smith, NP\n", + "----------------------------------------\n", + "2025-06-17 14:11:41,677 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:41,677 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:41,678 - ✅ similarity: 0.1888\n", + "2025-06-17 14:11:41,678 - Sender: SERVIN, CRYSTAL [ S0381366] -> the retrieved similar message : Dr. Ikeda,During my home care from Health Flex the nurse checked my left arm for blood pressure and it was low, then was told to stop taking 2 out of 3 blood pressure medications. Now my blood pressure on my right arm is getting higher. I would like to make an appointment to see you sooner.Thanks,Edward Liang\n", + "2025-06-17 14:11:41,683 - Provider's response to this similar message: Edward,Thank you for reaching out. Given the changes in your blood pressure, it would be best to evaluate your current condition and medication regimen. Please schedule an appointment with me through the Stanford MyHealth app at your earliest convenience.Looking forward to seeing you soon.Aarentino Maximillian Smith, NP\n", + "2025-06-17 14:11:41,684 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:41,696 - Thread ID: 253767505\n", + "--------------------------------------------------------------------------------\n", + "idx: 92431\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Edward,Thank you for reaching out. Given the changes in your blood pressure, it would be best to evaluate your current condition and medication regimen. Please schedule an appointment with me through the Stanford MyHealth app at your earliest convenience.Looking forward to seeing you soon.Aarentino Maximillian Smith, NP\n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO ADMIN POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 92430\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Ikeda,During my home care from Health Flex the nurse checked my left arm for blood pressure and it was low, then was told to stop taking 2 out of 3 blood pressure medications. Now my blood pressure on my right arm is getting higher. I would like to make an appointment to see you sooner.Thanks,Edward Liang\n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL,:\n", + "Edward,Thank you for reaching out. Given the changes in your blood pressure, it would be best to evaluate your current condition and medication regimen. Please schedule an appointment with me through the Stanford MyHealth app at your earliest convenience.Looking forward to seeing you soon.Aarentino Maximillian Smith, NP\n", + "----------------------------------------\n", + "2025-06-17 14:11:41,698 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:41,699 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:41,700 - ✅ similarity: 0.1699\n", + "2025-06-17 14:11:41,707 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Hello,I was wondering if I will be able to get prescribed ozempic? Or some type of appetite suppressant. \n", + "2025-06-17 14:11:41,715 - Provider's response to this similar message: Hi Ms. Sasha Delmuro,My name is Jenny Quan, a physician assistant helping to cover messages today. Thank you for reaching out. I understand your interest in an appetite suppressant. It is important to evaluate your specific health needs and determine the most appropriate treatment for you.I recommend scheduling an appointment so we can discuss your concerns in detail and explore the best options for you. You can use the Stanford MyHealth app to schedule this appointment.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:11:41,719 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:41,724 - Thread ID: 249025195\n", + "--------------------------------------------------------------------------------\n", + "idx: 322337\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I was wondering if I will be able to get prescribed ozempic? Or some type of appetite suppressant. \n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL,:\n", + "Hi Ms. Sasha Delmuro,My name is Jenny Quan, a physician assistant helping to cover messages today. Thank you for reaching out. I understand your interest in an appetite suppressant. It is important to evaluate your specific health needs and determine the most appropriate treatment for you.I recommend scheduling an appointment so we can discuss your concerns in detail and explore the best options for you. You can use the Stanford MyHealth app to schedule this appointment.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:11:41,728 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:42,414 - Original Message:\n", + "2025-06-17 14:11:42,417 - original_query_message: Hello Dr. Gallagher,My daughter and my mother in law tested positive for quantiferon and now they are under treatment. could you order me a quantiferon test to check if I am ok?Best,Juan Berrocal \n", + "2025-06-17 14:11:44,055 - Query Parameters:\n", + "2025-06-17 14:11:44,058 - query_message: Hi Dr. Gallagher,I’m reaching out because I recently found out that both my husband and my son have been diagnosed with latent TB and are currently taking medication for it. I haven’t had any symptoms myself, but since we live together, I’m getting pretty anxious about possibly having it too. Would it be possible to arrange for me to get the QuantiFERON blood test as well, just to be safe? I really want to make sure I’m not at risk or unknowingly passing anything on to others.Thank you so much for your help!\n", + "2025-06-17 14:11:44,059 - receiver: GALLAGHER, KINDAL\n", + "2025-06-17 14:11:44,059 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:11:44,061 - specialty: Family Medicine\n", + "2025-06-17 14:11:44,621 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:44,622 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:44,622 - ✅ similarity: 0.7647\n", + "2025-06-17 14:11:44,623 - Sender: MEDINA, BRENDA [ S0321691] -> the retrieved similar message : Hello Dr. Gallagher,My daughter and my mother in law tested positive for quantiferon and now they are under treatment. could you order me a quantiferon test to check if I am ok?Best,Juan Berrocal \n", + "2025-06-17 14:11:44,623 - Provider's response to this similar message: Hi Juan.Thanks for letting me know. I have placed the order to be done at LabCorp. No fasting needed for this blood test.Kindal\n", + "2025-06-17 14:11:44,624 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:44,628 - Thread ID: 253528895\n", + "--------------------------------------------------------------------------------\n", + "idx: 103412\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Gallagher,My daughter and my mother in law tested positive for quantiferon and now they are under treatment. could you order me a quantiferon test to check if I am ok?Best,Juan Berrocal \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Juan.Thanks for letting me know. I have placed the order to be done at LabCorp. No fasting needed for this blood test.Kindal\n", + "----------------------------------------\n", + "2025-06-17 14:11:44,629 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:44,629 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:44,630 - ✅ similarity: 0.5701\n", + "2025-06-17 14:11:44,630 - Sender: MEDINA, BRENDA [ S0321691] -> the retrieved similar message : I need a TB test for my volunteer work at Stanford. Is there any chance that you can add that to my lab order that I am going to this week with LabCorp?Thanks,Jennifer\n", + "2025-06-17 14:11:44,631 - Provider's response to this similar message: Hi Jennifer.Yes, the order has been placed.Kindal\n", + "2025-06-17 14:11:44,631 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:44,633 - Thread ID: 248428796\n", + "--------------------------------------------------------------------------------\n", + "idx: 351778\n", + "Subject: RE:Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks very much!\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 351777\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I need a TB test for my volunteer work at Stanford. Is there any chance that you can add that to my lab order that I am going to this week with LabCorp?Thanks,Jennifer\n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Jennifer.Yes, the order has been placed.Kindal\n", + "----------------------------------------\n", + "2025-06-17 14:11:44,634 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:44,636 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:44,636 - ✅ similarity: 0.4928\n", + "2025-06-17 14:11:44,636 - Sender: VISPERAS, SHINE [ S0377724] -> the retrieved similar message : Hi, thanks for doing my physical today. I forgot to ask about my blood test for the physical since I haven’t done it yet, would you send the request to the lab? Shouldn’t I do it as part of my annual physical exam?\n", + "2025-06-17 14:11:44,637 - Provider's response to this similar message: Hi Claudia It was good seeing you. Thanks for your question. He did complete blood studies for you in June of this year, so you will be due for your next round of screening until June 2025. The only test that you can have done before then would be the lipid panel, due to an abnormality at last testing. I have placed an order for repeat test to be done in January (fasting) if interested. The remainder of your lab tests are up-to-date.Kindal\n", + "2025-06-17 14:11:44,637 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:44,639 - Thread ID: 252123193\n", + "--------------------------------------------------------------------------------\n", + "idx: 163119\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, thanks for doing my physical today. I forgot to ask about my blood test for the physical since I haven’t done it yet, would you send the request to the lab? Shouldn’t I do it as part of my annual physical exam?\n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Claudia It was good seeing you. Thanks for your question. He did complete blood studies for you in June of this year, so you will be due for your next round of screening until June 2025. The only test that you can have done before then would be the lipid panel, due to an abnormality at last testing. I have placed an order for repeat test to be done in January (fasting) if interested. The remainder of your lab tests are up-to-date.Kindal\n", + "----------------------------------------\n", + "2025-06-17 14:11:44,639 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:44,640 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:44,640 - ✅ similarity: 0.4876\n", + "2025-06-17 14:11:44,641 - Sender: MEDINA, BRENDA [ S0321691] -> the retrieved similar message : Hi Brenda,Since I will be there for a blood draw anyway is it possible to do an overall blood test including iron serum and saturation?Please let me know either way.Thank you,Kate\n", + "2025-06-17 14:11:44,641 - Provider's response to this similar message: Hi Kate.You had iron levels checked 4 months ago and they were normal, so you are not due for retest at this time. Additionally your normal screening labs were done February 2024, so you are not due to repeat these labs until February 2025. Insurance will not cover them until then.Kindal\n", + "2025-06-17 14:11:44,642 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:44,643 - Thread ID: 247633041\n", + "--------------------------------------------------------------------------------\n", + "idx: 368421\n", + "Subject: RE:RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Brenda,Since I will be there for a blood draw anyway is it possible to do an overall blood test including iron serum and saturation?Please let me know either way.Thank you,Kate\n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Kate.You had iron levels checked 4 months ago and they were normal, so you are not due for retest at this time. Additionally your normal screening labs were done February 2024, so you are not due to repeat these labs until February 2025. Insurance will not cover them until then.Kindal\n", + "----------------------------------------\n", + "idx: 368420\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,Today, 10/31, is my 6th dose of the vitamin D supplement. Based on our latest appointment I understand I should now retest my levels via labs. What is the ideal date to get new labs? Or is it just any day after 10/31? On that subject, did you already send over the blood work request? Thank you for sending in the Gabapentin. I haven't noticed a difference, yet, but I am continuing to try 600 mg. Sincerely,Kate\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hi Kate,There is a lab order for Vitamin D at Lab Corp.Thank youBrenda / MA\n", + "----------------------------------------\n", + "2025-06-17 14:11:44,644 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:44,644 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:44,645 - ✅ similarity: 0.4823\n", + "2025-06-17 14:11:44,645 - Sender: VISPERAS, SHINE [ S0377724] -> the retrieved similar message : Hi Kindal,I hope you are doing well! I wanted to know if you could please send a CBC with Differential lab test order to Quest Diagnostics, as well as the following tests ordered by my psychiatrist (order attached to this message):1) Oxcarbazepine Level (serum)2) Comprehensive Metabolic Panel (serum)3) Lithium Level (serum)4) TSH (serum)Thank you,Joaquin\n", + "2025-06-17 14:11:44,645 - Provider's response to this similar message: Hi Joaquin.I have placed the orders for you.Kindal :)\n", + "2025-06-17 14:11:44,651 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:44,653 - Thread ID: 251924754\n", + "--------------------------------------------------------------------------------\n", + "idx: 173675\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,So sorry for the late reply. Can it please be for every month? Thank you!Best,Joaquin \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Joaquin.The standing order has been placed for monthly testing x 1 year.Kindal\n", + "----------------------------------------\n", + "idx: 173674\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,Thanks again for sending these! I forgot to say can you make the CBC with Differential a standing order? Thank you!Best,Joaquin \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Joaquin.I can do that. Standing order for the cbc how often?Kindal\n", + "----------------------------------------\n", + "idx: 173673\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,Thank you so much!Joaquin :)\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 173672\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,I hope you are doing well! I wanted to know if you could please send a CBC with Differential lab test order to Quest Diagnostics, as well as the following tests ordered by my psychiatrist (order attached to this message):1) Oxcarbazepine Level (serum)2) Comprehensive Metabolic Panel (serum)3) Lithium Level (serum)4) TSH (serum)Thank you,Joaquin\n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Joaquin.I have placed the orders for you.Kindal :)\n", + "----------------------------------------\n", + "2025-06-17 14:11:44,654 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:45,247 - Original Message:\n", + "2025-06-17 14:11:45,248 - original_query_message: Ho Dr Sussman!Thanks again for today. Also, just following up on the constipation medication we talked about. When should I expect to see that come through? I gotta stay after CVS or they'll never fill it lol.\n", + "2025-06-17 14:11:46,794 - Query Parameters:\n", + "2025-06-17 14:11:46,795 - query_message: Hey Dr. Sussman, thanks for all your help earlier today! Quick question—did you have a chance to send in that prescription for something to help with my digestion issues? My stomach’s still feeling pretty backed up, and it’s getting uncomfortable. I also haven’t really had much of an appetite lately, and I’m not sure if that’s all related. Just wanted to check what the next step is, and whether I should expect to pick anything up from Walgreens soon. Thanks again!\n", + "2025-06-17 14:11:46,797 - receiver: FMASJ CARE TEAM POOL\n", + "2025-06-17 14:11:46,798 - department: FAMILY MEDICINE ASSOCIATES SAN JOSE\n", + "2025-06-17 14:11:46,798 - specialty: Family Medicine\n", + "2025-06-17 14:11:47,846 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:47,847 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:47,849 - ✅ similarity: 0.7570\n", + "2025-06-17 14:11:47,850 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Ho Dr Sussman!Thanks again for today. Also, just following up on the constipation medication we talked about. When should I expect to see that come through? I gotta stay after CVS or they'll never fill it lol.\n", + "2025-06-17 14:11:47,854 - Provider's response to this similar message: Jennifer L Bricen, We have received your message . I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. Sincerely, Alma Flores, MAYour CareTeam at Family Medicine Associates San Jose \n", + "2025-06-17 14:11:47,854 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:47,861 - Thread ID: 251313429\n", + "--------------------------------------------------------------------------------\n", + "idx: 204479\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "CVS advised that they are reaching out to get authorization to prescribe an alternate medication.\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 204478\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Jennifer L Bricen, We have received your message . I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. Sincerely, Alma Flores, MAYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "Provider Response by SUSSMAN, RACHEL:\n", + "Hi Jennifer L BricenI sent over the prescription to your pharmacy. Take care, Agnes Leung, PA\n", + "----------------------------------------\n", + "idx: 204477\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ho Dr Sussman!Thanks again for today. Also, just following up on the constipation medication we talked about. When should I expect to see that come through? I gotta stay after CVS or they'll never fill it lol.\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Jennifer L Bricen, We have received your message . I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. Sincerely, Alma Flores, MAYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "2025-06-17 14:11:47,861 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:47,862 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:47,862 - ✅ similarity: 0.7013\n", + "2025-06-17 14:11:47,863 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Dang,Sorry to keep bothering you. Can you send a referral for me to see a gastroenterologist for colonoscopy? I’m having lots of troublesome issues; bloating, burning sensation in my stomach, etc. Best,Grashella \n", + "2025-06-17 14:11:47,863 - Provider's response to this similar message: HI Grashella, I've placed the referral for you but I also recommend you get the h pylori testing done. I ordered for you before but it wasn't done. Regards, Dr. Dang\n", + "2025-06-17 14:11:47,864 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:47,866 - Thread ID: 250363350\n", + "--------------------------------------------------------------------------------\n", + "idx: 253308\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Dang,Sorry to keep bothering you. Can you send a referral for me to see a gastroenterologist for colonoscopy? I’m having lots of troublesome issues; bloating, burning sensation in my stomach, etc. Best,Grashella \n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "HI Grashella, I've placed the referral for you but I also recommend you get the h pylori testing done. I ordered for you before but it wasn't done. Regards, Dr. Dang\n", + "----------------------------------------\n", + "2025-06-17 14:11:47,866 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:47,867 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:47,868 - ✅ similarity: 0.6514\n", + "2025-06-17 14:11:47,868 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Chern, I want to schedule a follow-up appointment with you, but I was hoping to get my labs done first. I think I may have left it go too long as what you ordered is no longer showing up on myhealth. Would it be possible to put the order through again?At our next appointment, I would like to discuss:-updating you on my appointment with Dr Sussman -change of meds - reduced Lorazepam and changing to Busperone (hopefully no longer will need Oxycodone!)-discuss hormone meds and weight loss meds (mentioned at our last appointment)-I started therapy!\n", + "2025-06-17 14:11:47,869 - Provider's response to this similar message: Jennifer L Bricen, We received your request for lab orders. We don't see an upcoming visit on the schedule in the next three months.Some of our clinicians prefer to only order lab testing at the time of a visit or shortly prior to an upcoming visit. We've forwarded your lab order request to your clinician for review and will report back to you, usually within 3 business days.We'll let you know if your clinician has approved your lab orders and if they'd like you to schedule a visit to review results in the coming weeks.We have QUEST LAB on file as your preferred lab and will send all orders there unless you tell us otherwise. Please feel free to contact us if you have any questions. Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "2025-06-17 14:11:47,869 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:47,872 - Thread ID: 250631027\n", + "--------------------------------------------------------------------------------\n", + "idx: 240044\n", + "Subject: RE:RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Oh! I left a urine sample for drug screening when I was in office in May. Didn't realize that was on the labs as well. I will work to get that all done by next week. Sooner if possible. Thanks Dr Chern!\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Hello JenniferWe attempted to contact you at phone number 310-924-5031 . Please call 408-995-5453, option 1, at your earliest convenience to schedule an appointment with Dr. Sussman. Regards,Family Medicine Associates of San Jose \n", + "----------------------------------------\n", + "idx: 240043\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Janet!Yes, please send to Quest at 780 Vista Blvd in Sparks, NV 89434. Thanks l!Jen\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Great news!Yes - they likely expired.I re-ordered, included a urine drug screening that Dr. Sussman had ordered back in May but never was completed as well.Quest. - if you can be fasting, one component of the cholesterol panel will be slightly more accurate.Please call the office for an appt (don't use the online portal - it will show no openings) See you soon!-Best, Dr. Chern \n", + "----------------------------------------\n", + "idx: 240042\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Jennifer L Bricen, We received your request for lab orders. We don't see an upcoming visit on the schedule in the next three months.Some of our clinicians prefer to only order lab testing at the time of a visit or shortly prior to an upcoming visit. We've forwarded your lab order request to your clinician for review and will report back to you, usually within 3 business days.We'll let you know if your clinician has approved your lab orders and if they'd like you to schedule a visit to review results in the coming weeks.We have QUEST LAB on file as your preferred lab and will send all orders there unless you tell us otherwise. Please feel free to contact us if you have any questions. Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "Provider Response by CHERN, ANNIE BERTHA-CHAO:\n", + "No response\n", + "----------------------------------------\n", + "idx: 240041\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Chern, I want to schedule a follow-up appointment with you, but I was hoping to get my labs done first. I think I may have left it go too long as what you ordered is no longer showing up on myhealth. Would it be possible to put the order through again?At our next appointment, I would like to discuss:-updating you on my appointment with Dr Sussman -change of meds - reduced Lorazepam and changing to Busperone (hopefully no longer will need Oxycodone!)-discuss hormone meds and weight loss meds (mentioned at our last appointment)-I started therapy!\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Jennifer L Bricen, We received your request for lab orders. We don't see an upcoming visit on the schedule in the next three months.Some of our clinicians prefer to only order lab testing at the time of a visit or shortly prior to an upcoming visit. We've forwarded your lab order request to your clinician for review and will report back to you, usually within 3 business days.We'll let you know if your clinician has approved your lab orders and if they'd like you to schedule a visit to review results in the coming weeks.We have QUEST LAB on file as your preferred lab and will send all orders there unless you tell us otherwise. Please feel free to contact us if you have any questions. Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "2025-06-17 14:11:47,872 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:47,873 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:47,873 - ✅ similarity: 0.6437\n", + "2025-06-17 14:11:47,874 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Greetings Dr. Sussman,I hope you had a wonderful Thanksgiving with your family and friends. I just wanted to update my latest vaccination to my records. I had the flu shot & another COVID shot on 9/27 at Walgreens. I also would like to check if I need to make an appointment with you in the near future.Also, my husband's insurance has changed back to Blue Shield this year by his employer. He hopes to return under your care again. His name is Graham Teaford. Kindly,Uyen\n", + "2025-06-17 14:11:47,874 - Provider's response to this similar message: Good Morning Uyen, Can you please let me know what brand of Covid vaccine you received at Walgreens. Thank you, Catrena Law, MA\n", + "2025-06-17 14:11:47,874 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:47,876 - Thread ID: 251900694\n", + "--------------------------------------------------------------------------------\n", + "idx: 175178\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,It was Pfizer, I believe.Thank you,Uyen\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 175177\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It was Pfizer. Thank you,uyen\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 175176\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Greetings Dr. Sussman,I hope you had a wonderful Thanksgiving with your family and friends. I just wanted to update my latest vaccination to my records. I had the flu shot & another COVID shot on 9/27 at Walgreens. I also would like to check if I need to make an appointment with you in the near future.Also, my husband's insurance has changed back to Blue Shield this year by his employer. He hopes to return under your care again. His name is Graham Teaford. Kindly,Uyen\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Good Morning Uyen, Can you please let me know what brand of Covid vaccine you received at Walgreens. Thank you, Catrena Law, MA\n", + "----------------------------------------\n", + "2025-06-17 14:11:47,876 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:47,877 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:47,878 - ✅ similarity: 0.6376\n", + "2025-06-17 14:11:47,878 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Dang can you please write me a medicine for nausea?i’m nauseous all day and vomitted several times today. please send it to SAFEWAY on Almaden Expressway. thank you Raiden \n", + "2025-06-17 14:11:47,879 - Provider's response to this similar message: Raiden Miller, Thank you for your message. Your clinician is currently out of the office, returning 12/23/24. Another clinician in our office will review your message but will not act upon requests that can safely wait until your clinician's return. If your issue cannot wait until your clinician returns, please let us know. For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room. Sincerely, Alexandria Diaz, MAYour CareTeam at Family Medicine Associates San Jose\n", + "2025-06-17 14:11:47,879 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:47,881 - Thread ID: 253839664\n", + "--------------------------------------------------------------------------------\n", + "idx: 88937\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Dang can you please write me a medicine for nausea?i’m nauseous all day and vomitted several times today. please send it to SAFEWAY on Almaden Expressway. thank you Raiden \n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Raiden Miller, Thank you for your message. Your clinician is currently out of the office, returning 12/23/24. Another clinician in our office will review your message but will not act upon requests that can safely wait until your clinician's return. If your issue cannot wait until your clinician returns, please let us know. For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room. Sincerely, Alexandria Diaz, MAYour CareTeam at Family Medicine Associates San Jose\n", + "----------------------------------------\n", + "2025-06-17 14:11:47,882 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:48,572 - Original Message:\n", + "2025-06-17 14:11:48,575 - original_query_message: Hello Doctor,Sure thing. I called and scheduled an echocardiogram in January. Could you verify the plan for the colonoscopy and potential adhesions? I'm eager to be seen about those, but am waiting for a referral or for someone to reach out. Let me know if there's something I can do to help with the process. Sincerely,Michael \"Whit\" Anderson\n", + "2025-06-17 14:11:50,195 - Query Parameters:\n", + "2025-06-17 14:11:50,196 - query_message: Hi Doctor,I wanted to check in regarding a couple of ongoing issues I’ve been having. I’ve started noticing some irregular heartbeats and my primary suggested getting an echocardiogram, which I’ve already set up for next month. On another note, I’ve been dealing with pretty persistent abdominal pain, especially after meals—it feels like things just aren’t moving right, and I’m concerned it could be related to prior surgeries and possible scar tissue.Has there been any progress with the referral for a GI evaluation or scheduling the colonoscopy? I haven’t heard anything yet and I’m a bit anxious to get to the bottom of these stomach problems. Is there anything else I can do on my end to help speed up the process? Thanks for your help!Best, Sarah\n", + "2025-06-17 14:11:50,197 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:11:50,197 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:11:50,198 - specialty: Internal Medicine\n", + "2025-06-17 14:11:52,172 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:52,173 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:52,173 - ✅ similarity: 0.8080\n", + "2025-06-17 14:11:52,174 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Doctor,Sure thing. I called and scheduled an echocardiogram in January. Could you verify the plan for the colonoscopy and potential adhesions? I'm eager to be seen about those, but am waiting for a referral or for someone to reach out. Let me know if there's something I can do to help with the process. Sincerely,Michael \"Whit\" Anderson\n", + "2025-06-17 14:11:52,175 - Provider's response to this similar message: Hi Michael, Thank you for your message! I reviewed Dr. Chaudhry's office visit notes from 11/14/24 and she advised the following: \"An urgent referral to a gastroenterologist at Stanford has been initiated. He is advised to schedule an appointment with Menlo Medical Clinic for a colonoscopy.\"Please call 650-498-6500 to check on the status of your Gastroenterology referral and to also schedule your colonoscopy. Please let us know if you have additional questions or concerns.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:52,177 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:52,180 - Thread ID: 250917538\n", + "--------------------------------------------------------------------------------\n", + "idx: 224964\n", + "Subject: RE:Follow up EKG results\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor,Sure thing. I called and scheduled an echocardiogram in January. Could you verify the plan for the colonoscopy and potential adhesions? I'm eager to be seen about those, but am waiting for a referral or for someone to reach out. Let me know if there's something I can do to help with the process. Sincerely,Michael \"Whit\" Anderson\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Michael, Thank you for your message! I reviewed Dr. Chaudhry's office visit notes from 11/14/24 and she advised the following: \"An urgent referral to a gastroenterologist at Stanford has been initiated. He is advised to schedule an appointment with Menlo Medical Clinic for a colonoscopy.\"Please call 650-498-6500 to check on the status of your Gastroenterology referral and to also schedule your colonoscopy. Please let us know if you have additional questions or concerns.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:52,181 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:52,181 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:52,182 - ✅ similarity: 0.7239\n", + "2025-06-17 14:11:52,183 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Madi,Thank you for getting me in with Dr chauhdry am insuooosed to wait for gi to contact me about scheduling the colonoscopy?Lisa\n", + "2025-06-17 14:11:52,184 - Provider's response to this similar message: Hi Ms. Brasket,If they haven't contacted you yet, please call Menlo Gastroenterology to schedule your colonoscopy Phone: 650-498-6500Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:52,184 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:52,187 - Thread ID: 249214196\n", + "--------------------------------------------------------------------------------\n", + "idx: 312068\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Madi,Thank you for getting me in with Dr chauhdry am insuooosed to wait for gi to contact me about scheduling the colonoscopy?Lisa\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Brasket,If they haven't contacted you yet, please call Menlo Gastroenterology to schedule your colonoscopy Phone: 650-498-6500Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 312067\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello MaddieThanks for your message sorry it had been busy at work and I just saw your message I will give the office a call tomorrow to schedule an appointment.Thank you againLisa \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 312066\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon, does she have any availability next week I have to work Friday anything near lunchtime next week or in afternoon Monday or Tuesday or Friday? Sorry for the back and forthLisa \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Lisa,Thank you for your response. I reviewed your message and your chart.I tried calling you to offer an appointment that works with your schedule, unable to reach you and left you a voice message with call back number.I have an opening with Dr. Chaudhry on Monday at 12 pm. I will hold this slot until 4 pm today.I will have to release the slot to other patients if I don't hear back from you.Please let us know so that we can further assist you.All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "----------------------------------------\n", + "idx: 312065\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lisa,Looks like the scheduling desk will call you for the colonoscopy appointment. If you don't receive a call from them in next couple of weeks, please let us know so that we can further assist you.All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "----------------------------------------\n", + "Provider Response by CHAUDHRY, NIDHI SUNIL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 312064\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr chaudhry,I have an upcoming well visit scheduled with you 12/10. Was wondering if you would be able to order a colonoscopy for me as I have had some bloating and constipation lately and have never had a colonoscopy at my age. Please let me know if I need to do a telehealth visit for this.Best and thank you,Lisa \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Lisa,Looks like the scheduling desk will call you for the colonoscopy appointment. If you don't receive a call from them in next couple of weeks, please let us know so that we can further assist you.All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "----------------------------------------\n", + "2025-06-17 14:11:52,188 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:52,190 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:52,190 - ✅ similarity: 0.7217\n", + "2025-06-17 14:11:52,191 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Pinyavat,Thank you for the referral to the clinic's endoscopy group. I connected with them this morning. I have an appoint me in a couple of months. Would you be comfortable letting them know that getting me in earlier would be a good idea. They said absent directions from you that is the earliest they can do for the initial discussion. My gastro symptoms remain and to some degree are worsening....nausea now as well as eating difficulty. I don't want to displace someone who is in a more difficult condition than me but I would like to get some resolution to what. has been going on for the past 6 months. Thank you and Happy Thanksgiving. Tom Kelly\n", + "2025-06-17 14:11:52,192 - Provider's response to this similar message: Hi Thomas, Thank you for reaching out! I see that you have a follow up appointment scheduled with Dr. Mein on 01/16/2025 at the Menlo Medical Clinic GI department. The referral status has been changed to 'Urgent'. Please call the scheduling desk at 650-498-6500 to see if they can accommodate a sooner appointment. Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:52,193 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:52,194 - Thread ID: 251553544\n", + "--------------------------------------------------------------------------------\n", + "idx: 192107\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Pinyavat,Thank you for the referral to the clinic's endoscopy group. I connected with them this morning. I have an appoint me in a couple of months. Would you be comfortable letting them know that getting me in earlier would be a good idea. They said absent directions from you that is the earliest they can do for the initial discussion. My gastro symptoms remain and to some degree are worsening....nausea now as well as eating difficulty. I don't want to displace someone who is in a more difficult condition than me but I would like to get some resolution to what. has been going on for the past 6 months. Thank you and Happy Thanksgiving. Tom Kelly\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Thomas, Thank you for reaching out! I see that you have a follow up appointment scheduled with Dr. Mein on 01/16/2025 at the Menlo Medical Clinic GI department. The referral status has been changed to 'Urgent'. Please call the scheduling desk at 650-498-6500 to see if they can accommodate a sooner appointment. Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:52,195 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:52,195 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:52,195 - ✅ similarity: 0.7208\n", + "2025-06-17 14:11:52,195 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Garay, Did you ask me to get a new liver scan or ultra sound before seeing the new RWC liver specialist, Dr Sands, February 26th? If so, scheduling does not see anything in the system from you or Dr Nguyen (Eye Dr. who ordered last one and referred me to the liver specialist). I will ask Dr. Sands to send you appt. nots and ask about Hep vaccine per your request. I am scheduling colonoscopy and gynecology appts. today. Dr. Guardino wants fasting labs from me before next visit in April. He added back an old medication I was on, Benecar. He will restart Zocor statin if liver specialist approves. If not, Dr G will pick another medication to lower my cholesterol. My BP with him was 128/87. He said my pulse was a bit high (98) but may have been nerves. He will monitor. Wants me to drop some weight and said my EKG and Heart Scan looked fine. Holding 1.5 potassium tabs until next labs.Bone density scan is Jan 16th in RWC.\n", + "2025-06-17 14:11:52,196 - Provider's response to this similar message: Hi Holly, Thank you for your message. I reviewed your visit notes with Dr. Garay from the other day. Per her notes:Her AST is 123 and ALT is 175, which are elevated. She is advised to discuss these results with her hepatologist and discuss hepatitis vaccinations as she has no immunity on recent lab for either hep A or hep B. A liver ultrasound is scheduled for 07/16/2025. Do you already have a liver ultrasound scheduled?Please let us know, so we can further assist you. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:11:52,197 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:52,199 - Thread ID: 255302871\n", + "--------------------------------------------------------------------------------\n", + "idx: 20706\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "ok thank you. I will schedule next week.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 20705\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Jessica.I’m still unclear if Dr Garay wants another liver ultrasound or scan before seeing the hematology specialist in February. I do not see a referral from her and my referring eye Dr Nguyen put one in last year. Scheduling cannot find one. Dr G asked for copies of results and notes. My medical info is updated in the system for 2025. \n", + "----------------------------------------\n", + "Provider Response by GARAY, SUSAN:\n", + "Holly I have gone ahead to order fibroscan of your liver that gives us more information than a plain US test and is done at stanford. Radiology will call you to schedule and likely would be good to have that update before seeing hepatology (liver clinic 2/26/25) Best Susan Clare Garay, MD\n", + "----------------------------------------\n", + "idx: 20704\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Garay, Did you ask me to get a new liver scan or ultra sound before seeing the new RWC liver specialist, Dr Sands, February 26th? If so, scheduling does not see anything in the system from you or Dr Nguyen (Eye Dr. who ordered last one and referred me to the liver specialist). I will ask Dr. Sands to send you appt. nots and ask about Hep vaccine per your request. I am scheduling colonoscopy and gynecology appts. today. Dr. Guardino wants fasting labs from me before next visit in April. He added back an old medication I was on, Benecar. He will restart Zocor statin if liver specialist approves. If not, Dr G will pick another medication to lower my cholesterol. My BP with him was 128/87. He said my pulse was a bit high (98) but may have been nerves. He will monitor. Wants me to drop some weight and said my EKG and Heart Scan looked fine. Holding 1.5 potassium tabs until next labs.Bone density scan is Jan 16th in RWC.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Holly, Thank you for your message. I reviewed your visit notes with Dr. Garay from the other day. Per her notes:Her AST is 123 and ALT is 175, which are elevated. She is advised to discuss these results with her hepatologist and discuss hepatitis vaccinations as she has no immunity on recent lab for either hep A or hep B. A liver ultrasound is scheduled for 07/16/2025. Do you already have a liver ultrasound scheduled?Please let us know, so we can further assist you. Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:11:52,199 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:52,200 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:52,201 - ✅ similarity: 0.7070\n", + "2025-06-17 14:11:52,201 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi! Dr. Jemelian had ordered a heart test. Can you change the referral to a Sutter Health?Also, please pass on that I finally got my appendix out with Dr. Beeman Khalil. (Awesome). Turned out to be endometriosis in and around it.Thank you!Talk soon,Paula\n", + "2025-06-17 14:11:52,202 - Provider's response to this similar message: Hi Paula,Thank you for your message and updates. Good to hear that you've gotten your appendix out - hope you're recovering smoothly! Happy to change the CT referral to Sutter. Do you have a specific location in mind (eg. Mills Peninsula, PAMF Palo Alto?) Please advise so we can fax the referral to the appropriate location. Thank you!All the best,Shana, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:11:52,202 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:52,204 - Thread ID: 249092643\n", + "--------------------------------------------------------------------------------\n", + "idx: 318221\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Shana!Well, Good Samaritan cannot see me until April for my heart CT. I hate to ask but can we switch the referral back to Stanford? Insurance denied it anyway so it will be out of pocket.Thanks for your help. Sorry for the confusion! I thought insurance was going to pay for it.Take care and have a nice weekend!Paula\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good afternoon Ms. Clarkin,Thank you for your message - looks like the original order for this test at Stanford is still in place so you should be able to schedule by calling 650-723-6855. Let us know if you have any additional questions or run into any issues!All the best,Mari Wagsholm, RNInternal Medicine - Menlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025*Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "idx: 318220\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Shana!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 318219\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Paula,Thank you for your message. I've switched your CT order to external and faxed it to Palo Alto Center Imaging. Once they review your referral - they'll reach out to schedule. You can also give them a call at (650) 321-4121 to schedule an appointment if you don't hear from them. Thank you!All the best,Shana, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "Provider Response by JEMELIAN, PAUL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 318218\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Shana! Yes, I feel so much better!So I would love to go to Palo Alto Medical Foundation ideally Los Gatos, Mountain View, or Palo Alto.Thanks!Paula\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Paula,Thank you for your message. I've switched your CT order to external and faxed it to Palo Alto Center Imaging. Once they review your referral - they'll reach out to schedule. You can also give them a call at (650) 321-4121 to schedule an appointment if you don't hear from them. Thank you!All the best,Shana, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "idx: 318217\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! Dr. Jemelian had ordered a heart test. Can you change the referral to a Sutter Health?Also, please pass on that I finally got my appendix out with Dr. Beeman Khalil. (Awesome). Turned out to be endometriosis in and around it.Thank you!Talk soon,Paula\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Paula,Thank you for your message and updates. Good to hear that you've gotten your appendix out - hope you're recovering smoothly! Happy to change the CT referral to Sutter. Do you have a specific location in mind (eg. Mills Peninsula, PAMF Palo Alto?) Please advise so we can fax the referral to the appropriate location. Thank you!All the best,Shana, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:11:52,204 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:52,892 - Original Message:\n", + "2025-06-17 14:11:52,894 - original_query_message: I had requested an ultrasound for breast cancer screening, which you gave me. When I tried to make the appointment, they said I couldn’t get one because I’ve had top surgery. I still have breast tissue though(which I told them), and given my family history, it makes me very nervous not to get this checked. It was my understanding that I needed yearly MRIs and ultrasounds. I don’t understand why they can’t do the scan when the tissue is there. \n", + "2025-06-17 14:11:54,032 - Query Parameters:\n", + "2025-06-17 14:11:54,033 - query_message: Hi there, I’m hoping you can help me with something. I’m a transmasculine person who had top surgery a couple years ago, but the surgeon left some breast tissue (on purpose, for symmetry reasons). Recently, I noticed a bit of thickening in the left side and some tenderness, and since my mom had breast cancer, I’m getting a bit anxious. When I asked my doctor about getting an ultrasound or mammogram, the imaging center said they couldn’t do it because I’ve had top surgery, which seems odd to me, since there’s still tissue there. Shouldn’t I still be getting screened? Are there guidelines for people like me, or am I just stuck worrying in between appointments? Any advice would be appreciated.\n", + "2025-06-17 14:11:54,034 - receiver: TABAKA, MEG\n", + "2025-06-17 14:11:54,034 - department: STANFORD PRIMARY CARE LOS ALTOS\n", + "2025-06-17 14:11:54,036 - specialty: Primary Care\n", + "2025-06-17 14:11:54,372 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:54,372 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:54,373 - ✅ similarity: 0.7651\n", + "2025-06-17 14:11:54,374 - Sender: LIERA, EVA AUREA [ S0204648] -> the retrieved similar message : I had requested an ultrasound for breast cancer screening, which you gave me. When I tried to make the appointment, they said I couldn’t get one because I’ve had top surgery. I still have breast tissue though(which I told them), and given my family history, it makes me very nervous not to get this checked. It was my understanding that I needed yearly MRIs and ultrasounds. I don’t understand why they can’t do the scan when the tissue is there. \n", + "2025-06-17 14:11:54,375 - Provider's response to this similar message: Hi Jodie,I messaged the radiology folks for clarification and will let you know when I hear from them!Take care,Dr. Tabaka\n", + "2025-06-17 14:11:54,375 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:54,383 - Thread ID: 250293398\n", + "--------------------------------------------------------------------------------\n", + "idx: 256306\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I had requested an ultrasound for breast cancer screening, which you gave me. When I tried to make the appointment, they said I couldn’t get one because I’ve had top surgery. I still have breast tissue though(which I told them), and given my family history, it makes me very nervous not to get this checked. It was my understanding that I needed yearly MRIs and ultrasounds. I don’t understand why they can’t do the scan when the tissue is there. \n", + "----------------------------------------\n", + "Provider Response by TABAKA, MEG:\n", + "Hi Jodie,I messaged the radiology folks for clarification and will let you know when I hear from them!Take care,Dr. Tabaka\n", + "----------------------------------------\n", + "2025-06-17 14:11:54,385 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:54,386 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:54,386 - ✅ similarity: 0.4797\n", + "2025-06-17 14:11:54,386 - Sender: LIERA, EVA AUREA [ S0204648] -> the retrieved similar message : Ok. My concern though, is that I’ll be going from being screened every six months, as was recommended, to just yearly. Should I get twice yearly MRIs then?\n", + "2025-06-17 14:11:54,387 - Provider's response to this similar message: Hi Jodie,No, I clarified with the radiologist that yearly MRIs are the right schedule and they even suggested you could go to less frequently than that if you wanted to. They looked at your scan while I was on the phone with them and that was their recommendation. I'm happy to discuss more in an appointment if you would like!Take care,Dr. Tabaka\n", + "2025-06-17 14:11:54,388 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:54,395 - Thread ID: 251169773\n", + "--------------------------------------------------------------------------------\n", + "idx: 211765\n", + "Subject: RE: Follow up on breast imaging\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok. My concern though, is that I’ll be going from being screened every six months, as was recommended, to just yearly. Should I get twice yearly MRIs then?\n", + "----------------------------------------\n", + "Provider Response by TABAKA, MEG:\n", + "Hi Jodie,No, I clarified with the radiologist that yearly MRIs are the right schedule and they even suggested you could go to less frequently than that if you wanted to. They looked at your scan while I was on the phone with them and that was their recommendation. I'm happy to discuss more in an appointment if you would like!Take care,Dr. Tabaka\n", + "----------------------------------------\n", + "2025-06-17 14:11:54,396 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:54,396 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:54,397 - ✅ similarity: 0.3943\n", + "2025-06-17 14:11:54,398 - Sender: LIERA, EVA AUREA [ S0204648] -> the retrieved similar message : Hi Dr. Tabaka, I hope this message finds you well. I spoke to my therapist about getting a letter of support for top surgery. We looked at the template that your office sent to me, and while she is comfortable and happy to provide a letter of support, some of the language about meeting WPATH’s SOC8’s qualifications for competence gave her some pause, as she is not an expert in gender dysphoria or TGD people. You mentioned when we met that I could possibly get a letter through Stanford LGBTQ care program. How would I start this process? Would it still be beneficial to get some kind of letter from my current therapist? Sincerely,Cece Armstrong\n", + "2025-06-17 14:11:54,398 - Provider's response to this similar message: Hi Cece,No problem. I have placed a referral through our Stanford THRIVE clinic letting them know that you are needing a letter of support visit. They will be reaching out to you to start the process. You should not need an additional letter from your current provider. Let me know if you have any questions!Best,Dr. T\n", + "2025-06-17 14:11:54,399 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:54,404 - Thread ID: 252679691\n", + "--------------------------------------------------------------------------------\n", + "idx: 137335\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tabaka, I hope this message finds you well. I spoke to my therapist about getting a letter of support for top surgery. We looked at the template that your office sent to me, and while she is comfortable and happy to provide a letter of support, some of the language about meeting WPATH’s SOC8’s qualifications for competence gave her some pause, as she is not an expert in gender dysphoria or TGD people. You mentioned when we met that I could possibly get a letter through Stanford LGBTQ care program. How would I start this process? Would it still be beneficial to get some kind of letter from my current therapist? Sincerely,Cece Armstrong\n", + "----------------------------------------\n", + "Provider Response by TABAKA, MEG:\n", + "Hi Cece,No problem. I have placed a referral through our Stanford THRIVE clinic letting them know that you are needing a letter of support visit. They will be reaching out to you to start the process. You should not need an additional letter from your current provider. Let me know if you have any questions!Best,Dr. T\n", + "----------------------------------------\n", + "2025-06-17 14:11:54,406 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:54,406 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:54,407 - ✅ similarity: 0.3920\n", + "2025-06-17 14:11:54,408 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : Hi, Dr Tabaka,I had a question regarding my appointment on the 8th of Jan. Sometime near the end of November or early December I have to have my medications refilled so will do a blood test with my GP. Typically my GP just does hormones(oestrogen, testosterone, free testosterone and globulin) with me but I may do a comprehensive since it’s been about 9 months since my last one, I just wanted to check if there were any other tests you would like me to get done for when I come in?Kind Regards,Isha\n", + "2025-06-17 14:11:54,409 - Provider's response to this similar message: Hi Isha,No other labs are needed - looking forward to see you in January!Take care,Dr. Tabaka\n", + "2025-06-17 14:11:54,409 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:54,411 - Thread ID: 250387974\n", + "--------------------------------------------------------------------------------\n", + "idx: 251977\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, Dr Tabaka,I had a question regarding my appointment on the 8th of Jan. Sometime near the end of November or early December I have to have my medications refilled so will do a blood test with my GP. Typically my GP just does hormones(oestrogen, testosterone, free testosterone and globulin) with me but I may do a comprehensive since it’s been about 9 months since my last one, I just wanted to check if there were any other tests you would like me to get done for when I come in?Kind Regards,Isha\n", + "----------------------------------------\n", + "Provider Response by TABAKA, MEG:\n", + "Hi Isha,No other labs are needed - looking forward to see you in January!Take care,Dr. Tabaka\n", + "----------------------------------------\n", + "2025-06-17 14:11:54,412 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:54,413 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:54,416 - ✅ similarity: 0.3656\n", + "2025-06-17 14:11:54,419 - Sender: NEAL, CHRYSTAL [ S0330092] -> the retrieved similar message : Which is the provider that has experience working with trans patients? I believe Dr. Tabaka mentioned a particular provider. Can you also please forward a referral for physical therapy to kelly@westbaysmrc.com Thank you,Sam\n", + "2025-06-17 14:11:54,420 - Provider's response to this similar message: Hi Sam,Sorry for any miscommunication - there is not a nutritionist that works specifically with trans patients. Let us know if there is anything else we can help you with!Take care,Dr. Tabaka\n", + "2025-06-17 14:11:54,420 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:54,423 - Thread ID: 252108066\n", + "--------------------------------------------------------------------------------\n", + "idx: 163801\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sorry about that. Here’s the fax 650-685-4802 It’s at west sports medicine & rehab center Thank you!Sam\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS TASK POOL 2:\n", + "Hi Sam the PT referral has been faxed.Sincerely,Chana L.Practice Care Coordinator Stanford Primary Care- Los AltosMyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth message are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. If you have an urgent concern, please call our office @ 650-498-9000, for our LGBTQ+ Health program please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 163800\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok no problem. Can you also please forward a referral for physical therapy to kelly@westbaysmrc.com Thank you,Sam\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS TASK POOL 2:\n", + "Hello,Thank you for your message. Unfortunately, we're unable to e-mail the physical therapy referral. However, we can fax it to your preferred facility. Would you by any chance have their fax number?Sincerely, Chrystal NealPatient Care Coordinator II for Dr. Meg Tabaka Stanford Primary Care Los AltosMyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth message are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. If you have an urgent concern, please call our office @ 650-498-9000, for our LGBTQ+ Health program please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 163799\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Which is the provider that has experience working with trans patients? I believe Dr. Tabaka mentioned a particular provider. Can you also please forward a referral for physical therapy to kelly@westbaysmrc.com Thank you,Sam\n", + "----------------------------------------\n", + "Provider Response by TABAKA, MEG:\n", + "Hi Sam,Sorry for any miscommunication - there is not a nutritionist that works specifically with trans patients. Let us know if there is anything else we can help you with!Take care,Dr. Tabaka\n", + "----------------------------------------\n", + "idx: 163798\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tabaka,I am trying to schedule my appt with the dietician but I can’t seem to find the info for the referral. Would you mind sharing again? I looked under orders and referrals and under my prev visit notes and I didn’t find it. Thank you!Sam\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Good Afternoon,Thank you for your message. I have attached the information needed to contact the Clinical Nutrition department.Scheduling CoordinatorClinical NutritionStanford Health Care Phone: 650-723-5440Please let me know if you have any questions or concerns Sincerely, Chrystal NealPatient Care Coordinator II for Dr. Meg Tabaka Stanford Primary Care Los AltosMyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth message are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. If you have an urgent concern, please call our office @ 650-498-9000, for our LGBTQ+ Health program please call 650-724-8844.\n", + "----------------------------------------\n", + "2025-06-17 14:11:54,424 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:55,081 - Original Message:\n", + "2025-06-17 14:11:55,082 - original_query_message: Hello there just tried to renew my Kisquali hormone pill they say I owe $4,000.00 in copay, what’s going on you stated my insurance is covering it?????? What do I do?\n", + "2025-06-17 14:11:56,521 - Query Parameters:\n", + "2025-06-17 14:11:56,522 - query_message: Hi, I’m really stressed out right now—my prescription for Kisqali suddenly skyrocketed in price at the pharmacy. They told me I need to pay almost $4,000 just to pick up my next refill. Last month it was nothing close to that, so I’m confused and worried. My oncologist and I had talked about my insurance covering this, and I rely on this medication to help manage my metastatic breast cancer, so I can’t just stop taking it. Are there any options if insurance won’t help? Is this a mistake at the pharmacy? Has anyone else run into this?\n", + "2025-06-17 14:11:56,523 - receiver: BVD FAMILY MED MYHEALTH POOL\n", + "2025-06-17 14:11:56,525 - department: FAMILY MEDICINE BVMG DANVILLE\n", + "2025-06-17 14:11:56,526 - specialty: Family Medicine\n", + "2025-06-17 14:11:56,877 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:56,878 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:56,879 - ✅ similarity: 0.6877\n", + "2025-06-17 14:11:56,880 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello there just tried to renew my Kisquali hormone pill they say I owe $4,000.00 in copay, what’s going on you stated my insurance is covering it?????? What do I do?\n", + "2025-06-17 14:11:56,882 - Provider's response to this similar message: Good Morning Lindy Shibuya, Debra Kilborn, NP is out of office, she will be returning on 1/06/2025. One of our clinicians is covering while Debra is out of office. Our covering clinician, Meagan Pon, Np suggests to discuss this matter with your oncologist since he/she is the ordering prescriber. Please reach out if we can further assist, Warm Regards, Mercedes Valles, 1/3/2025, 9:15 AM\n", + "2025-06-17 14:11:56,883 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:56,890 - Thread ID: 254680432\n", + "--------------------------------------------------------------------------------\n", + "idx: 50350\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello there just tried to renew my Kisquali hormone pill they say I owe $4,000.00 in copay, what’s going on you stated my insurance is covering it?????? What do I do?\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Good Morning Lindy Shibuya, Debra Kilborn, NP is out of office, she will be returning on 1/06/2025. One of our clinicians is covering while Debra is out of office. Our covering clinician, Meagan Pon, Np suggests to discuss this matter with your oncologist since he/she is the ordering prescriber. Please reach out if we can further assist, Warm Regards, Mercedes Valles, 1/3/2025, 9:15 AM\n", + "----------------------------------------\n", + "2025-06-17 14:11:56,892 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:56,893 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:56,894 - ✅ similarity: 0.5515\n", + "2025-06-17 14:11:56,895 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Shah:I went to pick up my Wegovy prescription and the co-pay went up from $25 to $120. My insurance said a prior auth needed to be entered? My pharmacy said it’s authorized and the $120 is the co-pay. Also I picked up the Losartan but it was only a 30 day supply instead of 90. I have 8 refills listed. Did you do a 30 day supply because you might change my dose? Or was that a mistake?Elvin Tablan\n", + "2025-06-17 14:11:56,896 - Provider's response to this similar message: Hi Elvin The prior auth for Wegovy was completed on 12/27 by my team, and the medication was approved. I am not sure why the co-pay increased. Please check directly with your insurance.The losartan Rx was sent in for a 90d supply. Again, not sure what you're being told.Best, Dr. Shah\n", + "2025-06-17 14:11:56,897 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:56,900 - Thread ID: 254819408\n", + "--------------------------------------------------------------------------------\n", + "idx: 43401\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Shah:So I found out that the medical cards that I was issued had incorrect pharmacy information. The BIN, PCN, and Group were all wrong. The pharmacy now has the current information. They will be resending another prior authorization to you today 1/6/25. I’ll find out about the Losartan. Sometimes they’ll do a 30 day to align my prescriptions for the same pick up date. Thank YouElvin Tablan\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 43400\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Shah:I went to pick up my Wegovy prescription and the co-pay went up from $25 to $120. My insurance said a prior auth needed to be entered? My pharmacy said it’s authorized and the $120 is the co-pay. Also I picked up the Losartan but it was only a 30 day supply instead of 90. I have 8 refills listed. Did you do a 30 day supply because you might change my dose? Or was that a mistake?Elvin Tablan\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Elvin The prior auth for Wegovy was completed on 12/27 by my team, and the medication was approved. I am not sure why the co-pay increased. Please check directly with your insurance.The losartan Rx was sent in for a 90d supply. Again, not sure what you're being told.Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:11:56,901 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:56,901 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:56,902 - ✅ similarity: 0.5439\n", + "2025-06-17 14:11:56,902 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : dr shah my insurance is going to stop paying for vyvanse is there some thing different i can try \n", + "2025-06-17 14:11:56,903 - Provider's response to this similar message: Hello Mr. Sutton, You will need to contact your insurance and see what alternatives to the Vyvanse that will be covered through the plan\n", + "2025-06-17 14:11:56,903 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:56,905 - Thread ID: 250470879\n", + "--------------------------------------------------------------------------------\n", + "idx: 247700\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "dr shah my insurance is going to stop paying for vyvanse is there some thing different i can try \n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hello Mr. Sutton, You will need to contact your insurance and see what alternatives to the Vyvanse that will be covered through the plan\n", + "----------------------------------------\n", + "2025-06-17 14:11:56,906 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:56,906 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:56,907 - ✅ similarity: 0.5393\n", + "2025-06-17 14:11:56,908 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Meagan,I just got a phone call that my prescription was cancelled due to a shortage that they can not fill the order. They have asked that I have it re-prescribed to a different pharmacy for it to be filled.Any suggestionsThank youJeff\n", + "2025-06-17 14:11:56,908 - Provider's response to this similar message: Do you have another pharmacy you would like the rx to have the medication sent to? \n", + "2025-06-17 14:11:56,908 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:56,911 - Thread ID: 253689662\n", + "--------------------------------------------------------------------------------\n", + "idx: 96047\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m not sure which pharmacy is covered. I’m at the dentist currently and I think I will need to call my provider for a list unless you have that info already. -Jeff\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "You will need to check with the pharmacies and see if the medication is available \n", + "----------------------------------------\n", + "idx: 96046\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Meagan,I just got a phone call that my prescription was cancelled due to a shortage that they can not fill the order. They have asked that I have it re-prescribed to a different pharmacy for it to be filled.Any suggestionsThank youJeff\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Do you have another pharmacy you would like the rx to have the medication sent to? \n", + "----------------------------------------\n", + "idx: 96045\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello MeganMy provider uses express grips for the mailing and the zepbound is covered for $141.94 for the 90 day supply next year and at a $0 cost before the end of this year. Also does not require prior authorization.Let me know if you have any other questionsThank you and Happy Holidays!Jeff\n", + "----------------------------------------\n", + "Provider Response by PON, MEAGAN CLEARY:\n", + "Hi Jeff,Great! I sent the prescription to Express Scripts. Hoping you can get this filled quickly - keep me posted.Happy holidays,Meagan Pon, NP\n", + "----------------------------------------\n", + "2025-06-17 14:11:56,912 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:56,912 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:56,913 - ✅ similarity: 0.5115\n", + "2025-06-17 14:11:56,913 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Shah. Hope all is well. Looks like insurance is asking for an authorization for the refill of the terbinafine. Hopefully this is an easy thing as I am out of that medication as of tonight. Thanks very muchKen\n", + "2025-06-17 14:11:56,914 - Provider's response to this similar message: Hi Mr. Perino, I have initiated a request for a prior authorization for the medication, it can be up to 7 days to hear a response sometimes sooner. BestMariah \n", + "2025-06-17 14:11:56,914 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:56,917 - Thread ID: 253618506\n", + "--------------------------------------------------------------------------------\n", + "idx: 99421\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you again Mariah. On a separate note can you please confirm for me the street address where I will be going for my MRI today?\n", + "----------------------------------------\n", + "Provider Response by AFLLEJE, MARIAH:\n", + "213 Quarry Road, Basement FloorPalo Alto CA 94304 \n", + "----------------------------------------\n", + "idx: 99420\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi again. I talked with Walgreens and everything is supposedly corrected so no need for you to do anything after all. Thank you. \n", + "----------------------------------------\n", + "Provider Response by AFLLEJE, MARIAH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 99419\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "According to Walgreens the prescription has been cancelled. Is there something to be done on your end?\n", + "----------------------------------------\n", + "Provider Response by AFLLEJE, MARIAH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 99418\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok great. Does this mean the prescription can be filled at Walgreens now?\n", + "----------------------------------------\n", + "Provider Response by AFLLEJE, MARIAH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 99417\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. What can I do to help expedite this?\n", + "----------------------------------------\n", + "Provider Response by AFLLEJE, MARIAH:\n", + "Hi Mr. Perino, It looks like the medication was approved Authorized from December 18, 2024 to December 30, 2024 \n", + "----------------------------------------\n", + "idx: 99416\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Shah. Hope all is well. Looks like insurance is asking for an authorization for the refill of the terbinafine. Hopefully this is an easy thing as I am out of that medication as of tonight. Thanks very muchKen\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Mr. Perino, I have initiated a request for a prior authorization for the medication, it can be up to 7 days to hear a response sometimes sooner. BestMariah \n", + "----------------------------------------\n", + "2025-06-17 14:11:56,917 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:57,417 - Original Message:\n", + "2025-06-17 14:11:57,417 - original_query_message: Hi doctor,I have been taking 5mg for the past 4 weeks. There’s no been issues for one month, so should I continue with the same dose or will you reduce the dose in the upcoming weeks? Can you please prescribe hydroxyzine tablet for safety purpose?Thanks Chitra.\n", + "2025-06-17 14:11:59,003 - Query Parameters:\n", + "2025-06-17 14:11:59,004 - query_message: Hi doctor, I’ve been on a daily dose of 5mg for about a month now, and so far things have been pretty stable—no major problems or side effects, thankfully. I’m wondering if you think I should keep taking this same amount, or if there’s a possibility we could try lowering it soon? Also, sometimes I do get spells of anxiety at night, even though the medication has helped overall. Would it be okay to have something like hydroxyzine on hand for those occasional rough patches? Just want to be prepared in case anything flares up. Thanks so much!\n", + "2025-06-17 14:11:59,004 - receiver: THAKOR, DEEPA NARENDRA\n", + "2025-06-17 14:11:59,005 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:11:59,006 - specialty: Primary Care\n", + "2025-06-17 14:11:59,517 - \n", + "Number of results: 5\n", + "2025-06-17 14:11:59,520 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:59,521 - ✅ similarity: 0.7773\n", + "2025-06-17 14:11:59,522 - Sender: GARCIA, JAZMIN [ S0380322] -> the retrieved similar message : Hi doctor,I have been taking 7.5mg for the past 4 weeks since our last visit on the 21st. There’s no been issues for one month, so should I continue with the same dose or will you reduce the dose in the upcoming weeks? Thanks,Chitra \n", + "2025-06-17 14:11:59,522 - Provider's response to this similar message: Hi Chitra,I'm glad to hear that you haven't had any issues with the reduced dose. Since you have been doing well on 7.5 mg for the past month, we can consider reducing the dose further. You can reduce the dose to 5 mg daily for the next 4 weeks and monitor for any recurrent anxiety symptoms. If you continue to do well, we can discuss further reduction at that time.Please keep me updated on how you are feeling. If you have any concerns or experience any symptoms, don't hesitate to reach out.Take care,Dr Thakor\n", + "2025-06-17 14:11:59,523 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:59,534 - Thread ID: 251134393\n", + "--------------------------------------------------------------------------------\n", + "idx: 213524\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sure doctor. I will update you. I will start 5mg on tomorrow onwards.ThanksChitra \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 213523\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi doctor,I have been taking 7.5mg for the past 4 weeks since our last visit on the 21st. There’s no been issues for one month, so should I continue with the same dose or will you reduce the dose in the upcoming weeks? Thanks,Chitra \n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi Chitra,I'm glad to hear that you haven't had any issues with the reduced dose. Since you have been doing well on 7.5 mg for the past month, we can consider reducing the dose further. You can reduce the dose to 5 mg daily for the next 4 weeks and monitor for any recurrent anxiety symptoms. If you continue to do well, we can discuss further reduction at that time.Please keep me updated on how you are feeling. If you have any concerns or experience any symptoms, don't hesitate to reach out.Take care,Dr Thakor\n", + "----------------------------------------\n", + "2025-06-17 14:11:59,535 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:59,536 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:59,536 - ✅ similarity: 0.7334\n", + "2025-06-17 14:11:59,539 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi doctor,I have been taking 5mg for the past 4 weeks. There’s no been issues for one month, so should I continue with the same dose or will you reduce the dose in the upcoming weeks? Can you please prescribe hydroxyzine tablet for safety purpose?Thanks Chitra.\n", + "2025-06-17 14:11:59,540 - Provider's response to this similar message: Hi Chitra,I'm so glad to hear that you haven't had any issues with the reduced dose of 5mg for the past month. Since you are doing well, we can consider reducing the dose further. I recommend reducing the dose to 2.5mg daily for the next 4 weeks and monitoring for any recurrent anxiety symptoms. If you continue to do well, we can discuss the next steps.Regarding the hydroxyzine tablet, I will prescribe it for you as a safety measure. I will send the prescription to WALGREENS DRUG STORE 05480 - 1833 N. MILPITAS BLVD. - MILPITAS, CA. It will be available once processed by the pharmacy.Please continue to monitor your symptoms and let me know if you experience any changes.Happy Holidays!Dr Thakor\n", + "2025-06-17 14:11:59,541 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:59,543 - Thread ID: 254000304\n", + "--------------------------------------------------------------------------------\n", + "idx: 81630\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi doctor,I have been taking 5mg for the past 4 weeks. There’s no been issues for one month, so should I continue with the same dose or will you reduce the dose in the upcoming weeks? Can you please prescribe hydroxyzine tablet for safety purpose?Thanks Chitra.\n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi Chitra,I'm so glad to hear that you haven't had any issues with the reduced dose of 5mg for the past month. Since you are doing well, we can consider reducing the dose further. I recommend reducing the dose to 2.5mg daily for the next 4 weeks and monitoring for any recurrent anxiety symptoms. If you continue to do well, we can discuss the next steps.Regarding the hydroxyzine tablet, I will prescribe it for you as a safety measure. I will send the prescription to WALGREENS DRUG STORE 05480 - 1833 N. MILPITAS BLVD. - MILPITAS, CA. It will be available once processed by the pharmacy.Please continue to monitor your symptoms and let me know if you experience any changes.Happy Holidays!Dr Thakor\n", + "----------------------------------------\n", + "2025-06-17 14:11:59,544 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:59,544 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:59,546 - ✅ similarity: 0.6304\n", + "2025-06-17 14:11:59,549 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : I scheduled another appointment with you. Sorry again I don’t know what was going on with my phone. I have been having some increased anxiety and had a small panic attack in my sleep last week. I’m not too sure what’s going on I’ve been continuing therapy and I feel like it was and is helping but I don’t know what’s caused the increased anxiety. I also do feel like I have not been able to sleep as quickly as I was when I first started my sleep medication. It’s beginning to take about an hour or more for it to kick in and I find myself starting to wake up again throughout the night. I’m not sure if you would recommend me increasing my daytime anxiety pill dose but if that might be best I’m willing to try it I don’t want it to get to the point it was before. I’ve also had the same things start again like increased irritability during the day and just feeling like a heavy feeling in my chest. I also feel more emotional/sensitive. Please let me know what you recommend. Thank you\n", + "2025-06-17 14:11:59,550 - Provider's response to this similar message: Hi IdalisNo problem about the phone issue, sorry I missed you. Glad that you were able to speak with our nurse earlier today.It sounds as though you've had an increase in depression and anxiety symptoms. You can increase the hydroxyzine to take 10 mg in the morning and afternoon, and hydroxyzine 20 mg at bedtime (just monitor for increased drowsiness). Please try this over the next few days and we can follow-up on 1/21 to see how you're doing.Please reach out if you need anything before then.Take care,Dr D Thakor, MDStanford Primary Care\n", + "2025-06-17 14:11:59,550 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:59,552 - Thread ID: 255754437\n", + "--------------------------------------------------------------------------------\n", + "idx: 3015\n", + "Subject: RE: Check-in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I scheduled another appointment with you. Sorry again I don’t know what was going on with my phone. I have been having some increased anxiety and had a small panic attack in my sleep last week. I’m not too sure what’s going on I’ve been continuing therapy and I feel like it was and is helping but I don’t know what’s caused the increased anxiety. I also do feel like I have not been able to sleep as quickly as I was when I first started my sleep medication. It’s beginning to take about an hour or more for it to kick in and I find myself starting to wake up again throughout the night. I’m not sure if you would recommend me increasing my daytime anxiety pill dose but if that might be best I’m willing to try it I don’t want it to get to the point it was before. I’ve also had the same things start again like increased irritability during the day and just feeling like a heavy feeling in my chest. I also feel more emotional/sensitive. Please let me know what you recommend. Thank you\n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi IdalisNo problem about the phone issue, sorry I missed you. Glad that you were able to speak with our nurse earlier today.It sounds as though you've had an increase in depression and anxiety symptoms. You can increase the hydroxyzine to take 10 mg in the morning and afternoon, and hydroxyzine 20 mg at bedtime (just monitor for increased drowsiness). Please try this over the next few days and we can follow-up on 1/21 to see how you're doing.Please reach out if you need anything before then.Take care,Dr D Thakor, MDStanford Primary Care\n", + "----------------------------------------\n", + "idx: 3014\n", + "Subject: RE: Check-in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Thakor, Sorry I got a new phone and was having some issues. I’m able to talk now if we still can or I can let you know over message. My medication is okay. I actually wanted to talk more about it and the sleep one. \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "Hello Ms. DuranMy name is Angie, RN Coordinator at the Primary Care clinic in Santa Clara. You have reached us afterhours. Based on your message, additional information is needed for us to better assist you. To minimize delays in addressing your concerns, we recommend you contact our Clinical Advice Services where you can speak with our Advice Nurses. The Advice RN will be able to provide information on how to care for your illness or injury at home, and help direct you to appropriate level of care in a timely manner. Please call (650) 498 -9000 and ask to speak to an Advice Nurse. You may also make an appointment at one of our Express Care locations: Express Care Palo Alto 211 Quarry Rd Suite 102 Palo Alto, CA 94304Express Care San Jose52 Skytop St Suite 10San Jose, CA 95134Hours are Mon-Sun 9:00 am-9:00 pmAppointments are same day only and may be made online via MyHealth or by calling 650-736-5211 to check availability (phone lines open at 7:00 am).Thank you for allowing us to partner in your care. Please don't hesitate to reach out if you have any questions or concerns.Thank you, Angie M. Baron, RN BSNNurse CoordinatorStanford Health CarePrimary Care Clinic - Santa Clara2518 Mission College Blvd Suite 101 Santa Clara Office Phone #: 408-688-9720Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:11:59,553 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:59,554 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:59,554 - ✅ similarity: 0.6253\n", + "2025-06-17 14:11:59,555 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : Hi Dr Thakor:A couple of updates : 1. The liver team is not so hot on hysterectomy surgery due to risk of bleeding so I took Lysteda this cycle (reduced flow by 30-40 percent) - can I please ask to renew that prescription ? Thanks 2. I have not taken Hydroxizine yet - wanted to discuss if lexapro 5 mg will be a better fit - since I am now getting 2-5 days of significant depression every cycle. Combined that with period, thyroid and pbc fatigue , it can feel very overwhelming. I can start anytime if you think it’s a good fit 3. I have scheduled an appointment for end of this month to discuss labs (will do them end of Oct) I have not missed any thyroid doses this time around.ThanksSanjana \n", + "2025-06-17 14:11:59,555 - Provider's response to this similar message: Hello Sanjana , my name is Lauren Taylor, PA-C and I am covering for Dr. Deepa Thakor, Thank you for your message. Dr. Thakor will back back in clinic next week. Will leave this message for her review. Since you are scheduled to see her on 10/31 you can discuss your concerns in detail with her at that time. Thank you, Lauren Taylor, PA-C\n", + "2025-06-17 14:11:59,556 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:59,559 - Thread ID: 248315938\n", + "--------------------------------------------------------------------------------\n", + "idx: 357941\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr ThakoreCan we add a hormonal panel to assess how far I might be from menopause ? Eg day 3 FSH or any others you may know of ?ThanksSanjana \n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi SanjanaAs you are still having periods, blood tests are unlikely to be helpful and will likely be normal. Your period cycles (and if/when they start to change) will be the best indicator. Take care,Dr D Thakor, MDStanford Primary Care\n", + "----------------------------------------\n", + "idx: 357940\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I will check with the liver team - I did take Hydroxizine for a panic attack on Friday and did not do well at all - dizzy , drowsy and panic became worse with the additional symptoms. It’s possible that I don’t do well with meds in general although low dose Xanax 0.25 worked well - I only took it a handful of times though over 10 years. I will try magnesium and chamomile extract as well.\n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi SanjanaSorry to hear you had a panic attack on Friday. Let me know what the liver team says.In the meantime, see below for some general relaxation techniques. Chamomile tea is a great idea too.Take care,Dr D Thakor, MDStanford Primary CareRelaxation techniquesDo relaxation exercises for 10 to 20 minutes a day. You can play soothing, relaxing music while you do them, if you wish.Tell others in your house that you are going to do your relaxation exercises. Ask them not to disturb you.Find a comfortable place, away from all distractions and noise.Lie down on your back, or sit with your back straight.Focus on your breathing. Make it slow and steady.Breathe in through your nose. Breathe out through either your nose or mouth.Breathe deeply, filling up the area between your navel and your rib cage. Breathe so that your belly goes up and down.Do not hold your breath.Breathe like this for 5 to 10 minutes. Notice the feeling of calmness throughout your whole body.As you continue to breathe slowly and deeply, relax by doing the following for another 5 to 10 minutes:Tighten and relax each muscle group in your body. You can begin at your toes and work your way up to your head.Imagine your muscle groups relaxing and becoming heavy.Empty your mind of all thoughts.Let yourself relax more and more deeply.Become aware of the state of calmness that surrounds you.When your relaxation time is over, you can bring yourself back to alertness by moving your fingers and toes and then your hands and feet and then stretching and moving your entire body. Sometimes people fall asleep during relaxation, but they usually wake up shortly afterward.Always give yourself time to return to full alertness before you drive a car or do anything that might cause an accident if you are not fully alert. Never play a relaxation tape while driving a car.\n", + "----------------------------------------\n", + "idx: 357939\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes sounds good \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 357938\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Thakor:A couple of updates : 1. The liver team is not so hot on hysterectomy surgery due to risk of bleeding so I took Lysteda this cycle (reduced flow by 30-40 percent) - can I please ask to renew that prescription ? Thanks 2. I have not taken Hydroxizine yet - wanted to discuss if lexapro 5 mg will be a better fit - since I am now getting 2-5 days of significant depression every cycle. Combined that with period, thyroid and pbc fatigue , it can feel very overwhelming. I can start anytime if you think it’s a good fit 3. I have scheduled an appointment for end of this month to discuss labs (will do them end of Oct) I have not missed any thyroid doses this time around.ThanksSanjana \n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hello Sanjana , my name is Lauren Taylor, PA-C and I am covering for Dr. Deepa Thakor, Thank you for your message. Dr. Thakor will back back in clinic next week. Will leave this message for her review. Since you are scheduled to see her on 10/31 you can discuss your concerns in detail with her at that time. Thank you, Lauren Taylor, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:11:59,560 - ################################################################################END################################################################################\n", + "2025-06-17 14:11:59,561 - ################################################################################START################################################################################\n", + "2025-06-17 14:11:59,561 - ✅ similarity: 0.5926\n", + "2025-06-17 14:11:59,562 - Sender: GARCIA, JAZMIN [ S0380322] -> the retrieved similar message : Hi Dr. Thakor,Thanks for all your help today! I forgot to ask during the appointment but I just want to confirm that I am supposed to continue taking nortriptyline with the wellbutrin right? Sorry for the confusion!Thank you!Ammu\n", + "2025-06-17 14:11:59,563 - Provider's response to this similar message: Hi Ammu,Yes, you should continue taking nortriptyline along with the wellbutrin. If you have any further questions or concerns, feel free to reach out.Speak to you in a few weeks.Take care,Dr Thakor\n", + "2025-06-17 14:11:59,563 - -----------printing the whole thread-------------\n", + "2025-06-17 14:11:59,564 - Thread ID: 251132242\n", + "--------------------------------------------------------------------------------\n", + "idx: 213696\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Thakor,Thanks for all your help today! I forgot to ask during the appointment but I just want to confirm that I am supposed to continue taking nortriptyline with the wellbutrin right? Sorry for the confusion!Thank you!Ammu\n", + "----------------------------------------\n", + "Provider Response by THAKOR, DEEPA NARENDRA:\n", + "Hi Ammu,Yes, you should continue taking nortriptyline along with the wellbutrin. If you have any further questions or concerns, feel free to reach out.Speak to you in a few weeks.Take care,Dr Thakor\n", + "----------------------------------------\n", + "2025-06-17 14:11:59,565 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:00,185 - Original Message:\n", + "2025-06-17 14:12:00,186 - original_query_message: Good Afternoon Gabriela,I am super frustrated that my referral request to see Dr Morrell is not showing up on my requests for authorization to see Dr Morrell with my insurance...I need a referral to see Dr Morrell for the following code: \"Primary Diagnosis/Description Localization-related (focal) (partial) symptomatic epilepsy and epileptic syndromes with simple partial seizures, not intractable, without status epilepticus\"Please help me as I really need to see her and I can't do it without a referral from you.Thank you in advance.\n", + "2025-06-17 14:12:02,281 - Query Parameters:\n", + "2025-06-17 14:12:02,283 - query_message: Hi there,I’m sorry to bother you again, but I’m having trouble getting an appointment with Dr. Morrell. My insurance still isn’t showing any approved referral, and I’m starting to get really anxious because I need to follow up on my recent seizure episodes. My neurologist mentioned something about “focal seizures” that aren’t considered intractable (I think the term was localization-related epilepsy with simple partial seizures, not intractable, without status epilepticus). I’ve been having these occasional episodes where I zone out, lose awareness for a minute, and sometimes get tingling in my left hand, and it’s impacting my ability to drive and work.Can someone please check on the referral for me and let me know if there’s anything else I need to do to get this sent? I’d really appreciate your help—I’m just hoping to get in with Dr. Morrell soon for better management and peace of mind.Thanks so much!\n", + "2025-06-17 14:12:02,284 - receiver: SANTA CLARA PRIMARY CARE TASK POOL TEAM 2\n", + "2025-06-17 14:12:02,285 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:12:02,285 - specialty: Primary Care\n", + "2025-06-17 14:12:02,714 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:02,715 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:02,716 - ✅ similarity: 0.7728\n", + "2025-06-17 14:12:02,716 - Sender: LERMA, NANETTE [ S0325945] -> the retrieved similar message : Good Afternoon Gabriela,I am super frustrated that my referral request to see Dr Morrell is not showing up on my requests for authorization to see Dr Morrell with my insurance...I need a referral to see Dr Morrell for the following code: \"Primary Diagnosis/Description Localization-related (focal) (partial) symptomatic epilepsy and epileptic syndromes with simple partial seizures, not intractable, without status epilepticus\"Please help me as I really need to see her and I can't do it without a referral from you.Thank you in advance.\n", + "2025-06-17 14:12:02,719 - Provider's response to this similar message: Hello, Ms.Durbin I went ahead and requested an urgent authorization from Tricare, we should hear from them soon.WARF - Outpatient Request FormWARF Request ID: 6040103Patient DetailsType: SSNSSN: 2257First Name: tarynLast Name: durbinDate Of Birth : 02/14/1978Street Address : 126 Winslow Ct Apt 2City : campbellState : Postal Code : 50008Phone Number : Requesting Provider DetailsContact Name: lucyContact Phone Number: 4086889730Provider Name: CARRANZA, GABRIELAProvider NPI: 1306112933Provider Tax ID: 770465765Phone Number: 4086889720Fax Number: 4086889730Street Address: 2518 MISSION COLLEGE BLVDCity: SANTA CLARAState: CAPostal Code: 95054Specialty: Physician AssistantPriority And DiagnosisEvent Classification: UrgentClinical Justification: For partial epilepsy causing ocular seizures and hand tremors.Diagnosis Code: G40.109 Description: Localization-related (focal) (partial) symptomatic epilepsy andepileptic syndromes with simple partial seizures, not intractable, without status epilepticusRequest ProfileRequest Type: P1 - Evaluate and Treat Specialty ReferralServicing Provider DetailsProvider Name: MORRELL, MARTHAProvider NPI: 1174688980Provider Tax ID: 770465765Phone Number: 6507236469Fax Number: 650725745Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:02,721 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:02,724 - Thread ID: 249427240\n", + "--------------------------------------------------------------------------------\n", + "idx: 301601\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Afternoon Gabriela,I am super frustrated that my referral request to see Dr Morrell is not showing up on my requests for authorization to see Dr Morrell with my insurance...I need a referral to see Dr Morrell for the following code: \"Primary Diagnosis/Description Localization-related (focal) (partial) symptomatic epilepsy and epileptic syndromes with simple partial seizures, not intractable, without status epilepticus\"Please help me as I really need to see her and I can't do it without a referral from you.Thank you in advance.\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello, Ms.Durbin I went ahead and requested an urgent authorization from Tricare, we should hear from them soon.WARF - Outpatient Request FormWARF Request ID: 6040103Patient DetailsType: SSNSSN: 2257First Name: tarynLast Name: durbinDate Of Birth : 02/14/1978Street Address : 126 Winslow Ct Apt 2City : campbellState : Postal Code : 50008Phone Number : Requesting Provider DetailsContact Name: lucyContact Phone Number: 4086889730Provider Name: CARRANZA, GABRIELAProvider NPI: 1306112933Provider Tax ID: 770465765Phone Number: 4086889720Fax Number: 4086889730Street Address: 2518 MISSION COLLEGE BLVDCity: SANTA CLARAState: CAPostal Code: 95054Specialty: Physician AssistantPriority And DiagnosisEvent Classification: UrgentClinical Justification: For partial epilepsy causing ocular seizures and hand tremors.Diagnosis Code: G40.109 Description: Localization-related (focal) (partial) symptomatic epilepsy andepileptic syndromes with simple partial seizures, not intractable, without status epilepticusRequest ProfileRequest Type: P1 - Evaluate and Treat Specialty ReferralServicing Provider DetailsProvider Name: MORRELL, MARTHAProvider NPI: 1174688980Provider Tax ID: 770465765Phone Number: 6507236469Fax Number: 650725745Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:02,725 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:02,726 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:02,727 - ✅ similarity: 0.5510\n", + "2025-06-17 14:12:02,727 - Sender: LERMA, NANETTE [ S0325945] -> the retrieved similar message : Good Morning,We have not received a call for the neurology appointment. Can we connect with them directly?\n", + "2025-06-17 14:12:02,728 - Provider's response to this similar message: Hello, Please call and schedule.Neurology Intake DepartmentPhone: 650-723-6469Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:02,728 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:02,731 - Thread ID: 247315874\n", + "--------------------------------------------------------------------------------\n", + "idx: 370100\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "She only started the new cymbalta and lower Paxil dose this Monday. We were a little late to start for various reasons.Thank you for arranging a follow up. \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 370099\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Hung,She’s still in the first week of 30 mg Cymbalta and 10 mg Paxil. She is very very sleepy, but other than that, no pain or additional symptoms.Can we see you as our PCP. We don’t really know Dr. Villalon and just assigned to her as a PcP. \n", + "----------------------------------------\n", + "Provider Response by HUNG, SHARON:\n", + "She should be off of the paxil by now if it's been more than 2 weeksYou can stop the Paxil, increase the Cymbalta to 60mg and I will arrange for her to come into clinic in 2-3 weeksThank you for choosing Stanford Health Care, Sharon Hung, MD Stanford Santa Clara ClinicReminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 370098\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I called the number and they said they recommended a different path, to go to Nuero Psychology first. According to the neurology department, these notes were sent to the referring doctor. Can you please advise on next steps.\n", + "----------------------------------------\n", + "Provider Response by HUNG, SHARON,:\n", + "Hello, I have noticed that both our neurology and neuropsych departments are quite impacted at this time, so they are aggressively triaging patients. I would recommend we bring her back for a more extensive memory related test (MOCA), after she is on the cymbalta for some time. She is currently on the Cymbalta 60mg?We can arrange to bring her back to see her primary care provider Dr. Villalon if you'd likeS. Hung MD\n", + "----------------------------------------\n", + "idx: 370097\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Morning,We have not received a call for the neurology appointment. Can we connect with them directly?\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello, Please call and schedule.Neurology Intake DepartmentPhone: 650-723-6469Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:02,732 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:02,733 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:02,733 - ✅ similarity: 0.5481\n", + "2025-06-17 14:12:02,733 - Sender: GREKSOUK, ELIZABETH [ S0310391] -> the retrieved similar message : Hi Dr Elizabeth, I’m so Sorry that I missed the follow up meeting last week. I’ll reschedule one soon.I’ve contact with the physical therapist but they also can’t schedule an appointment very recent so I found another one which called “California rehabilitation and sports therapy - San Jose” they said need a referral from the doctor, could u help me to send a referral? Thank u so much!ThanksKai\n", + "2025-06-17 14:12:02,734 - Provider's response to this similar message: Hello, We faxed the referral to “California rehabilitation and sports San Jose, please call them to follow up. Phone number: 669-247-6170Fax: 669-253-2092.Please let us know if you have additional questions.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:12:02,735 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:02,737 - Thread ID: 250581947\n", + "--------------------------------------------------------------------------------\n", + "idx: 242304\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "thanks! They have received and scheduled an appointment with me\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 242303\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hi I talked with them, they said not received the referral, they are asking whether u guys send to California rehabilitation and sports in San JosePlease help to confirm thanks\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello, We re faxed the PT referral to california rehab today to fax number that you provided to us 669-253-2085, phone number: 669-202-5383.Please let us know if you have any questions.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "idx: 242302\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I think the one I’m going to is Brokaw RD which fax number is 669 253 2085\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 242301\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Elizabeth, I’m so Sorry that I missed the follow up meeting last week. I’ll reschedule one soon.I’ve contact with the physical therapist but they also can’t schedule an appointment very recent so I found another one which called “California rehabilitation and sports therapy - San Jose” they said need a referral from the doctor, could u help me to send a referral? Thank u so much!ThanksKai\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello, We faxed the referral to “California rehabilitation and sports San Jose, please call them to follow up. Phone number: 669-247-6170Fax: 669-253-2092.Please let us know if you have additional questions.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:12:02,737 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:02,738 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:02,738 - ✅ similarity: 0.5191\n", + "2025-06-17 14:12:02,739 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : please give me a call.209 209 202 8057 have concern with recent er visit. 12/17\n", + "2025-06-17 14:12:02,739 - Provider's response to this similar message: Hello, Appt is now scheduled.12/20/2024 at 10:50 AM Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:02,740 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:02,743 - Thread ID: 253791766\n", + "--------------------------------------------------------------------------------\n", + "idx: 91214\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "please give me a call.209 209 202 8057 have concern with recent er visit. 12/17\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello, Appt is now scheduled.12/20/2024 at 10:50 AM Best, Lucerito (Lucy)Mendoza-Rivera, MA, Care CoordinatorStanford Primary Care Santa Clara 2518 Mission College Blvd., Suite 101Santa Clara, CA 95054Phone: 408-688-9720 Fax: 408-688-9730Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:02,743 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:02,744 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:02,744 - ✅ similarity: 0.5176\n", + "2025-06-17 14:12:02,744 - Sender: GAUTAM, NEETA [ S0098691] -> the retrieved similar message : Thanks for meeting with me and my mom again, Dr. Gautam. I got a good bit of hope back after my last appt with you. I'm incredibly grateful that you're willing to explore disability, as this situation is truly disabling to me, and has been for a while. Even leaving the house is a huge challenge. I do believe it can be managed, I just don't think I'm at the point yet where I've figured it out. I hope to get there soon.Regarding the referral, here is the information:Physician: Edward H. Nahabet, MD - Plastic and Reconstructive Surgery (UCLA)Fax #: 310-206-7579This is for a consult for top surgery. I spoke to Dr. Nahabet's office, and they said this: \"the referral just needs to state that you're being referred to Dr. Edward Nahabet for top surgery (or however the doctor wishes to word that).\"I hope this info is helpful to you.Happiest holidays to you from me and my mom. Thank you for all your tireless support in my health.\n", + "2025-06-17 14:12:02,745 - Provider's response to this similar message: Hello Ms. Olsen,Dr. Gautam has placed the referral and has ben faxed as of now. Best regards,Ariana CortesStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:12:02,745 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:02,747 - Thread ID: 254150941\n", + "--------------------------------------------------------------------------------\n", + "idx: 76552\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much. Happy holidays\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 76551\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks for meeting with me and my mom again, Dr. Gautam. I got a good bit of hope back after my last appt with you. I'm incredibly grateful that you're willing to explore disability, as this situation is truly disabling to me, and has been for a while. Even leaving the house is a huge challenge. I do believe it can be managed, I just don't think I'm at the point yet where I've figured it out. I hope to get there soon.Regarding the referral, here is the information:Physician: Edward H. Nahabet, MD - Plastic and Reconstructive Surgery (UCLA)Fax #: 310-206-7579This is for a consult for top surgery. I spoke to Dr. Nahabet's office, and they said this: \"the referral just needs to state that you're being referred to Dr. Edward Nahabet for top surgery (or however the doctor wishes to word that).\"I hope this info is helpful to you.Happiest holidays to you from me and my mom. Thank you for all your tireless support in my health.\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 2:\n", + "Hello Ms. Olsen,Dr. Gautam has placed the referral and has ben faxed as of now. Best regards,Ariana CortesStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:12:02,747 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:03,500 - Original Message:\n", + "2025-06-17 14:12:03,501 - original_query_message: Hi Cathina, I sent this message to Dominique yesterday but wanted to message you too. Thank you for providing this note, my HR needs the note to say 8-10 patients with growth overtime, instead of just 8 patients. And they need this as soon as possible, is there anyway you adjust the note to say I need accommodations to see: 8-10 patients from 11/18/24- 11/29/24, then 12-14 patients from 12/2/24-12/13/24 and then full capacity at 16 patients a day starting 12/16/24. If she could do this by the end of today or by the latest end of tomorrow I’d be so grateful so my management can be updated. Thanks so much, Devon Herbst \n", + "2025-06-17 14:12:04,637 - Query Parameters:\n", + "2025-06-17 14:12:04,637 - query_message: Hi Cathina, I hope you’re doing well. I wanted to reach out because I’ve been experiencing ongoing fatigue and concentration issues as I transition back into my workload. My energy levels still aren’t quite where they need to be, and I’m finding it difficult to keep up with my typical patient schedule. I spoke with HR and they’d like documentation that outlines a gradual return-to-work plan with specific numbers. Would it be possible for you to provide a note that states I should start by seeing about 9 patients a day for the two weeks after Thanksgiving (11/25–12/6), then move up to 13 patients daily for the next two weeks (12/9–12/20), and then aim for my normal 15–16 patients each day after that? They’re hoping to have this as soon as possible for planning purposes.Thank you so much for your help with this—I really appreciate your understanding and support as I try to get back to full capacity. Let me know if you need any more info from me!\n", + "2025-06-17 14:12:04,638 - receiver: NGUYEN, CATHINA\n", + "2025-06-17 14:12:04,639 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:12:04,640 - specialty: Primary Care\n", + "2025-06-17 14:12:05,005 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:05,005 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:05,006 - ✅ similarity: 0.7001\n", + "2025-06-17 14:12:05,006 - Sender: SOTO, EDGAR [ S0319987] -> the retrieved similar message : Hi Cathina, I sent this message to Dominique yesterday but wanted to message you too. Thank you for providing this note, my HR needs the note to say 8-10 patients with growth overtime, instead of just 8 patients. And they need this as soon as possible, is there anyway you adjust the note to say I need accommodations to see: 8-10 patients from 11/18/24- 11/29/24, then 12-14 patients from 12/2/24-12/13/24 and then full capacity at 16 patients a day starting 12/16/24. If she could do this by the end of today or by the latest end of tomorrow I’d be so grateful so my management can be updated. Thanks so much, Devon Herbst \n", + "2025-06-17 14:12:05,007 - Provider's response to this similar message: Dear Devon,I have provided you a new letter. You should be able to see it in your MyHealth account. Best,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "2025-06-17 14:12:05,008 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:05,021 - Thread ID: 251047819\n", + "--------------------------------------------------------------------------------\n", + "idx: 217920\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cathina,Thank you SO much, I know how time consuming all the paperwork is so I greatly appreciate it. HR will also need an updated HR Work Accommodation form as soon as possible if you don’t mind sending that at your convenience. I spoke with them about going part-time and they won’t allow it so I am just gonna hope things get better still easing in. Thanks again for everything,Devon \n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Hi Devon,I re-completed the forms. We should be send them back to you today. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "idx: 217919\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cathina, I sent this message to Dominique yesterday but wanted to message you too. Thank you for providing this note, my HR needs the note to say 8-10 patients with growth overtime, instead of just 8 patients. And they need this as soon as possible, is there anyway you adjust the note to say I need accommodations to see: 8-10 patients from 11/18/24- 11/29/24, then 12-14 patients from 12/2/24-12/13/24 and then full capacity at 16 patients a day starting 12/16/24. If she could do this by the end of today or by the latest end of tomorrow I’d be so grateful so my management can be updated. Thanks so much, Devon Herbst \n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Dear Devon,I have provided you a new letter. You should be able to see it in your MyHealth account. Best,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "2025-06-17 14:12:05,025 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:05,026 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:05,028 - ✅ similarity: 0.5650\n", + "2025-06-17 14:12:05,029 - Sender: SOTO, EDGAR [ S0319987] -> the retrieved similar message : Hi CatrinaMy mom Gloria switched to a new insurance. She now has Medicare plus supplemental. Apparently we need a new PT order. Can we get one for 2-3 times per week. As a reminder - she had her hip replaced in August. She still needs balance work and fall prevention training. Thanks. LMK if any questionsJerome Liu\n", + "2025-06-17 14:12:05,031 - Provider's response to this similar message: Dear Ms. Liu and Jerome,Happy New Year!I have placed a new order for physical therapy to continue her work on her hip, strengthening, balance 2-3 times a weekly for at least 12 weeks. We will send it to Channing House. Please let us know if you have any questions. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "2025-06-17 14:12:05,031 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:05,035 - Thread ID: 254662670\n", + "--------------------------------------------------------------------------------\n", + "idx: 51285\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "OMG thank you so much not only for doing it so quickly but also for sending it to Channing house directly. So few go the extra mile in health care now so I thought it deserving of recognition! Thank you thank you thank you!Happy new year to you and your family.JL\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 51284\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi CatrinaMy mom Gloria switched to a new insurance. She now has Medicare plus supplemental. Apparently we need a new PT order. Can we get one for 2-3 times per week. As a reminder - she had her hip replaced in August. She still needs balance work and fall prevention training. Thanks. LMK if any questionsJerome Liu\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Dear Ms. Liu and Jerome,Happy New Year!I have placed a new order for physical therapy to continue her work on her hip, strengthening, balance 2-3 times a weekly for at least 12 weeks. We will send it to Channing House. Please let us know if you have any questions. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "2025-06-17 14:12:05,037 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:05,037 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:05,038 - ✅ similarity: 0.5014\n", + "2025-06-17 14:12:05,038 - Sender: ERISGEN, KERYLYN [ S0366649] -> the retrieved similar message : I would like to Schedule an Appointment with you However, Since i moved to Fairfield my 2nd insurance (medi-cal Coverage) got changed to something else and Now they are wanting me to be seen at Kiasier. I have yet to make any appointments with them because Ive only ever been a Stanford Patient. I am unsure now how this change will effect my coverage and ability to see you without being financially responsible for the appointments. My 1st Medical Insurance is Still MEDICARE and will not change. its the 2nd insurance im worried about. ive attached a copy of the New Insurance card they sent me. Im hoping that maybe someone in the office will have more clarity on this. ive been calling the insurance office to get it changed back to what I originally had however still no luck. (waiting on return call from Social worker). Because im covered by medicare i was told i can go anywhere and that the medi-cal would cover the rest. please let me know if i will be able to schedule an appointment. TY\n", + "2025-06-17 14:12:05,039 - Provider's response to this similar message: Hi Maria,Thanks for letting us know. On our end it looks like your insurance should be accepted and okay to be seen at Stanford. However, to be sure I would recommend you talk to a financial counselor at Stanford Health Care who might be able to give you more concrete numbers (844-498-2900).Best,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "2025-06-17 14:12:05,039 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:05,041 - Thread ID: 254984387\n", + "--------------------------------------------------------------------------------\n", + "idx: 34467\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "please disregard my last message and question I was reading the incorrect information\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Dear Maria,I'm sorry for any confusion, and I hope everything got sorted out. It has been a while since we've seen each other in person though, so please make an appointment with me at your earliest convenience. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "idx: 34466\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I would like to Schedule an Appointment with you However, Since i moved to Fairfield my 2nd insurance (medi-cal Coverage) got changed to something else and Now they are wanting me to be seen at Kiasier. I have yet to make any appointments with them because Ive only ever been a Stanford Patient. I am unsure now how this change will effect my coverage and ability to see you without being financially responsible for the appointments. My 1st Medical Insurance is Still MEDICARE and will not change. its the 2nd insurance im worried about. ive attached a copy of the New Insurance card they sent me. Im hoping that maybe someone in the office will have more clarity on this. ive been calling the insurance office to get it changed back to what I originally had however still no luck. (waiting on return call from Social worker). Because im covered by medicare i was told i can go anywhere and that the medi-cal would cover the rest. please let me know if i will be able to schedule an appointment. TY\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Hi Maria,Thanks for letting us know. On our end it looks like your insurance should be accepted and okay to be seen at Stanford. However, to be sure I would recommend you talk to a financial counselor at Stanford Health Care who might be able to give you more concrete numbers (844-498-2900).Best,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "2025-06-17 14:12:05,042 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:05,042 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:05,042 - ✅ similarity: 0.4985\n", + "2025-06-17 14:12:05,043 - Sender: ERISGEN, KERYLYN [ S0366649] -> the retrieved similar message : Hi Cathina,Hope you are doing well and enjoying your holidays.Within the next month or so I will be changing insurance providers because of a management change where I work. Unfortunately, I will no longer have Stanford medicine as my provider. I'm sorry to leave but I have no choice. You have been so helpful, kind and concerned over the last couple years. I will miss you all! My question is, can my girlfriend Hien Ton take my spot under your care. She is already in Stanford's system and on the waiting list for a Primary. This would a perfect opportunity for her to finally have a PP. Please let me know if this works for you and what I should do to move forward with this? Thank you Cathina and Happy Holidays to you and your family!\n", + "2025-06-17 14:12:05,043 - Provider's response to this similar message: Dear Mr. Foard,Thank you for letting me know! It has been great working with you on your health. Please let me know how I can help with your upcoming transition. Thank you for asking about my panel. I am a same day provider at this time and am not taking on new patients (I was able to keep a small number of patients when I made this transfer including yourself, but with the expectation that I would not take on more). Please have your partner call the Stanford Primary Care line to establish with one of the wonderful primary care providers at Stanford. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "2025-06-17 14:12:05,043 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:05,046 - Thread ID: 252653803\n", + "--------------------------------------------------------------------------------\n", + "idx: 138447\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cathina,Hope you are doing well and enjoying your holidays.Within the next month or so I will be changing insurance providers because of a management change where I work. Unfortunately, I will no longer have Stanford medicine as my provider. I'm sorry to leave but I have no choice. You have been so helpful, kind and concerned over the last couple years. I will miss you all! My question is, can my girlfriend Hien Ton take my spot under your care. She is already in Stanford's system and on the waiting list for a Primary. This would a perfect opportunity for her to finally have a PP. Please let me know if this works for you and what I should do to move forward with this? Thank you Cathina and Happy Holidays to you and your family!\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Dear Mr. Foard,Thank you for letting me know! It has been great working with you on your health. Please let me know how I can help with your upcoming transition. Thank you for asking about my panel. I am a same day provider at this time and am not taking on new patients (I was able to keep a small number of patients when I made this transfer including yourself, but with the expectation that I would not take on more). Please have your partner call the Stanford Primary Care line to establish with one of the wonderful primary care providers at Stanford. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-CStanford Coordinated Care\n", + "----------------------------------------\n", + "2025-06-17 14:12:05,046 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:05,047 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:05,048 - ✅ similarity: 0.4821\n", + "2025-06-17 14:12:05,048 - Sender: SOTO, EDGAR [ S0319987] -> the retrieved similar message : You had been my PCP but I was shifted to someone else because you had left the practice. If you're back now and accepting patients, I would LOVE to be moved back to your care. Thank you!!\n", + "2025-06-17 14:12:05,048 - Provider's response to this similar message: Dear Ms. Kline,Thank you for your message and it is lovely to hear from you!I did leave Stanford Family Medicine practice about 2 years ago, which was when you were assigned to Dr. Unzueta. I am currently still at a different practice and working as a same-day provider supporting others, not currently carrying my own panel at this time. But thank you for inquiring. I hope you are having a lovely holiday season. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-C\n", + "2025-06-17 14:12:05,049 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:05,051 - Thread ID: 252201742\n", + "--------------------------------------------------------------------------------\n", + "idx: 159260\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "You had been my PCP but I was shifted to someone else because you had left the practice. If you're back now and accepting patients, I would LOVE to be moved back to your care. Thank you!!\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, CATHINA:\n", + "Dear Ms. Kline,Thank you for your message and it is lovely to hear from you!I did leave Stanford Family Medicine practice about 2 years ago, which was when you were assigned to Dr. Unzueta. I am currently still at a different practice and working as a same-day provider supporting others, not currently carrying my own panel at this time. But thank you for inquiring. I hope you are having a lovely holiday season. Sincerely,Cathina Nguyen-Lee, MSN, MPH, FNP-C\n", + "----------------------------------------\n", + "2025-06-17 14:12:05,051 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:05,556 - Original Message:\n", + "2025-06-17 14:12:05,562 - original_query_message: Hi Dr. Alpher,I had a video apt scheduled with you for Friday, unfortunately I have a funeral to attend, I made the appointment for the 10th at 4:10pm. I did ask if you had anything this week before Friday, you’re booked ;) I wanted to see if there is anyway to get the Refil before then since I will be out Wednesday. I hope you and your family had a wonderful thanksgiving!Jennifer Martinez \n", + "2025-06-17 14:12:07,277 - Query Parameters:\n", + "2025-06-17 14:12:07,278 - query_message: Hi Dr. Alpher,I hope you’re doing well and that you had a relaxing Thanksgiving. I wanted to reach out because I’ve been having some trouble with my prescription running low—my refill is due, but I just realized I’ll be out of town this Thursday through the weekend for a family obligation. I booked the next available virtual appointment for Tuesday the 12th, but that’s a bit after I’ll be out of my medication. Last time I had to go a few days without, I started having some trouble focusing and felt pretty irritable, so I’m hoping to avoid that if possible.Is there any chance you could send in a short-term refill for me before my appointment? Please let me know if you need any info from my end. Thanks so much for your help!Best, Matthew\n", + "2025-06-17 14:12:07,279 - receiver: VCPA IM 1133 # 203 MA POOL\n", + "2025-06-17 14:12:07,280 - department: INTERNAL MEDICINE VCL 1133 203\n", + "2025-06-17 14:12:07,283 - specialty: Internal Medicine\n", + "2025-06-17 14:12:08,944 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:08,944 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:08,945 - ✅ similarity: 0.7758\n", + "2025-06-17 14:12:08,945 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Lo,I missed the date of picking up the prescription from drugstore last month as I was in China. Now I am back and have requested refills, could you please approve it at your earliest convenience. Thank you!Haiming\n", + "2025-06-17 14:12:08,948 - Provider's response to this similar message: Dear Haiming WangThank you for your message. Alicia Lo, MD is currently out of the office. One of our team providers will review your message and respond within 48 business hours. If you need immediate assistance please call 925-373-4541to schedule an appointment with one of our providers. For medication refill, please have your pharmacy send us a request electronically. Please don't hesitate to contact our office if you have additional questions or concerns.Stanford Medicine Partners \n", + "2025-06-17 14:12:08,948 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:08,952 - Thread ID: 253248953\n", + "--------------------------------------------------------------------------------\n", + "idx: 115586\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Lo,I missed the date of picking up the prescription from drugstore last month as I was in China. Now I am back and have requested refills, could you please approve it at your earliest convenience. Thank you!Haiming\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Dear Haiming WangThank you for your message. Alicia Lo, MD is currently out of the office. One of our team providers will review your message and respond within 48 business hours. If you need immediate assistance please call 925-373-4541to schedule an appointment with one of our providers. For medication refill, please have your pharmacy send us a request electronically. Please don't hesitate to contact our office if you have additional questions or concerns.Stanford Medicine Partners \n", + "----------------------------------------\n", + "2025-06-17 14:12:08,953 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:08,953 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:08,954 - ✅ similarity: 0.7624\n", + "2025-06-17 14:12:08,955 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Alper,I have requested refills needing refills. I’m asking that if you need me to make an appointment I will, as I will pay for January refills. Just please be aware that my insurance won’t be available until February 1st because United Healthcare was dropped by Stanford and I was unaware of the full ramifications until recently. Regards,Regina Innamorato \n", + "2025-06-17 14:12:08,957 - Provider's response to this similar message: Hello regina, Please specify which refills you need for which medications?Serenity Das, MA, 1/13/2025, 10:06 AM \n", + "2025-06-17 14:12:08,958 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:08,961 - Thread ID: 255521258\n", + "--------------------------------------------------------------------------------\n", + "idx: 11710\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Lorazepam .5mg. Qty: 120Tizanidine 4mgQty:2703monthsHydrocodone-Acetaminophen 10/325Qty/ 40Any questions please let me know. Thank you,Regina Innamorato \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 11709\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Alper,I have requested refills needing refills. I’m asking that if you need me to make an appointment I will, as I will pay for January refills. Just please be aware that my insurance won’t be available until February 1st because United Healthcare was dropped by Stanford and I was unaware of the full ramifications until recently. Regards,Regina Innamorato \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello regina, Please specify which refills you need for which medications?Serenity Das, MA, 1/13/2025, 10:06 AM \n", + "----------------------------------------\n", + "2025-06-17 14:12:08,962 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:08,962 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:08,963 - ✅ similarity: 0.7561\n", + "2025-06-17 14:12:08,963 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Alper,I am almost out of the Lorazepam and we leave for a family trip 11/20, Wed. Can you please approve the refill today so I can pick up before our 7am flight Wednesday morning? I come in 12/2 for a physical. Thank you,Brian \n", + "2025-06-17 14:12:08,963 - Provider's response to this similar message: Hello Brian, The lorazepam prescription was sent yesterday to the pharmacy CVS/PHARMACY #9678 - LIVERMORE, CA - 1500 FIRST ST Please let me know if you had any issues picking this up. Kind regards,Serenity Das, MA, 11/19/2024, 8:35 AM \n", + "2025-06-17 14:12:08,964 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:08,968 - Thread ID: 250906674\n", + "--------------------------------------------------------------------------------\n", + "idx: 225567\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much.Brian\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 225566\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Alper,I am almost out of the Lorazepam and we leave for a family trip 11/20, Wed. Can you please approve the refill today so I can pick up before our 7am flight Wednesday morning? I come in 12/2 for a physical. Thank you,Brian \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Brian, The lorazepam prescription was sent yesterday to the pharmacy CVS/PHARMACY #9678 - LIVERMORE, CA - 1500 FIRST ST Please let me know if you had any issues picking this up. Kind regards,Serenity Das, MA, 11/19/2024, 8:35 AM \n", + "----------------------------------------\n", + "2025-06-17 14:12:08,969 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:08,970 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:08,971 - ✅ similarity: 0.7472\n", + "2025-06-17 14:12:08,971 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Dr. Lo!I wanted to follow up on my levothyroxine refill request. I apologize for the late request. I didn’t realize I was out of refills and I’ve been out since Sunday. Thank you for your assistance \n", + "2025-06-17 14:12:08,972 - Provider's response to this similar message: Hi there,Medication has already been sent.Thank you,Aileen Gonzalez, MA \n", + "2025-06-17 14:12:08,973 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:08,980 - Thread ID: 252208055\n", + "--------------------------------------------------------------------------------\n", + "idx: 158959\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Lo!I wanted to follow up on my levothyroxine refill request. I apologize for the late request. I didn’t realize I was out of refills and I’ve been out since Sunday. Thank you for your assistance \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hi there,Medication has already been sent.Thank you,Aileen Gonzalez, MA \n", + "----------------------------------------\n", + "2025-06-17 14:12:08,984 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:08,990 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:08,991 - ✅ similarity: 0.7443\n", + "2025-06-17 14:12:08,992 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Ratti, I’m just sending a reminder to please send my pain medication refill to the pharmacy today so they can order it for Tuesday. Have a wonderful weekend. Thank you, Angela \n", + "2025-06-17 14:12:08,992 - Provider's response to this similar message: Hi Angela,Can you verify which medication and the pharmacy these medications are going to?Kind Regards,Rachel Keel, MA, 11/4/2024, 2:49 PM\n", + "2025-06-17 14:12:08,995 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:09,066 - Thread ID: 249487530\n", + "--------------------------------------------------------------------------------\n", + "idx: 298538\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Rachel,The prescription I was asking about is the oxycodone hcl going to CVS in Castro Valley. Dr Ratti already sent it to the pharmacy on Friday afternoon so you can disregard the message below. Thanks,Angela\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 298537\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Ratti, I’m just sending a reminder to please send my pain medication refill to the pharmacy today so they can order it for Tuesday. Have a wonderful weekend. Thank you, Angela \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hi Angela,Can you verify which medication and the pharmacy these medications are going to?Kind Regards,Rachel Keel, MA, 11/4/2024, 2:49 PM\n", + "----------------------------------------\n", + "2025-06-17 14:12:09,107 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:09,434 - Original Message:\n", + "2025-06-17 14:12:09,435 - original_query_message: Hi Laura,Thank you for your message. I am happy to let you know that I have a mammogram scheduled for tomorrow at the Blake Wilbur clinic.Kathy\n", + "2025-06-17 14:12:11,330 - Query Parameters:\n", + "2025-06-17 14:12:11,335 - query_message: Hi Laura,I hope you’re doing well! I wanted to reach out because I’ve been having some discomfort and tenderness in my left breast over the past couple of weeks, and I just scheduled a diagnostic screening at the Stanford Women’s Health Center next Monday. I had a clear mammogram a year ago, but I’m a little anxious since this is the first time I’ve felt any noticeable changes. Is there anything in particular I should be keeping an eye out for until my appointment? And are there things I should mention to the technician before the scan? Thank you so much for your guidance—I really appreciate it!\n", + "2025-06-17 14:12:11,336 - receiver: SHC POPULATION HEALTH TEAM\n", + "2025-06-17 14:12:11,338 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:12:11,339 - specialty: Primary Care\n", + "2025-06-17 14:12:11,943 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:11,944 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:11,944 - ✅ similarity: 0.7079\n", + "2025-06-17 14:12:11,945 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Laura,Thank you for your message. I am happy to let you know that I have a mammogram scheduled for tomorrow at the Blake Wilbur clinic.Kathy\n", + "2025-06-17 14:12:11,946 - Provider's response to this similar message: Thank you for staying on top of your breast cancer screening, Kathleen.Best Regards,Laura La Roque, LVNPopulation Health Coordinator\n", + "2025-06-17 14:12:11,948 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:11,956 - Thread ID: 252099428\n", + "--------------------------------------------------------------------------------\n", + "idx: 164195\n", + "Subject: RE: You're Due for a Mammogram\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Laura,Thank you for your message. I am happy to let you know that I have a mammogram scheduled for tomorrow at the Blake Wilbur clinic.Kathy\n", + "----------------------------------------\n", + "Provider Response by SHC POPULATION HEALTH TEAM:\n", + "Thank you for staying on top of your breast cancer screening, Kathleen.Best Regards,Laura La Roque, LVNPopulation Health Coordinator\n", + "----------------------------------------\n", + "2025-06-17 14:12:11,956 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:11,957 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:11,957 - ✅ similarity: 0.6799\n", + "2025-06-17 14:12:11,958 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Laura,I did have a routine mammogram a couple of weeks ago . I just had a video appointment with my primary, Dr. Narula and she has put in a request for further diagnostic and an ultrasound so I will wait to hear back when I can schedule that hopefully sooner than later, but I’ll take what I can get. I know this is a super busy time of yearThank you so much and I hope you have a great happy new year .Theresa \n", + "2025-06-17 14:12:11,958 - Provider's response to this similar message: Hi Theresa,Thank you for letting us know. I have forwarded your message to Dr. Narula to review. If don't hear back after 2 weeks, please follow-up with us or your PCP again.Happy holidays!Best Regards, Bao MaiPopulation Health Coordinator\n", + "2025-06-17 14:12:11,958 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:11,960 - Thread ID: 253523916\n", + "--------------------------------------------------------------------------------\n", + "idx: 103647\n", + "Subject: RE: You're Due for a Mammogram\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Laura,I did have a routine mammogram a couple of weeks ago . I just had a video appointment with my primary, Dr. Narula and she has put in a request for further diagnostic and an ultrasound so I will wait to hear back when I can schedule that hopefully sooner than later, but I’ll take what I can get. I know this is a super busy time of yearThank you so much and I hope you have a great happy new year .Theresa \n", + "----------------------------------------\n", + "Provider Response by SHC POPULATION HEALTH TEAM:\n", + "Hi Theresa,Thank you for letting us know. I have forwarded your message to Dr. Narula to review. If don't hear back after 2 weeks, please follow-up with us or your PCP again.Happy holidays!Best Regards, Bao MaiPopulation Health Coordinator\n", + "----------------------------------------\n", + "2025-06-17 14:12:11,961 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:11,961 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:11,961 - ✅ similarity: 0.6747\n", + "2025-06-17 14:12:11,962 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Laura,I have my mammogram today at Good Samaritan Breast Care Center. I will have them send the report to Dr Thakor.Best,Kathy\n", + "2025-06-17 14:12:11,962 - Provider's response to this similar message: Thank you for staying on top of your breast cancer screening, Kathleen.Best Regards,Laura La Roque, LVNPopulation Health Coordinator\n", + "2025-06-17 14:12:11,963 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:11,966 - Thread ID: 253523942\n", + "--------------------------------------------------------------------------------\n", + "idx: 103645\n", + "Subject: RE:You're Due for a Mammogram\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Laura,I have my mammogram today at Good Samaritan Breast Care Center. I will have them send the report to Dr Thakor.Best,Kathy\n", + "----------------------------------------\n", + "Provider Response by SHC POPULATION HEALTH TEAM:\n", + "Thank you for staying on top of your breast cancer screening, Kathleen.Best Regards,Laura La Roque, LVNPopulation Health Coordinator\n", + "----------------------------------------\n", + "2025-06-17 14:12:11,975 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:11,979 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:11,982 - ✅ similarity: 0.6266\n", + "2025-06-17 14:12:11,983 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Bao,Unfortunately, I had to cancel my appointment with Dr. Vaughn and have rescheduled for March 3rd. I just got back from being out of the country for a month and I got sick. I live 3.5 hours south in the San Luis Obispo area and cannot make the drive this soon. I will work locally with Dignity Health where I got my last breast exam and have that done prior to my appointment in March. I will try to get in sooner before March by looking out for upcoming appointments in January too. Thank you!Michelle\n", + "2025-06-17 14:12:11,983 - Provider's response to this similar message: Hi Michelle, Thank you for letting me know. I hope you get well soon! Best Regards, Bao MaiPopulation Health Coordinator\n", + "2025-06-17 14:12:11,984 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:11,986 - Thread ID: 251826830\n", + "--------------------------------------------------------------------------------\n", + "idx: 178429\n", + "Subject: RE:Coordinating Care in Advance For Your Upcoming Primary Care Visit\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Bao,Unfortunately, I had to cancel my appointment with Dr. Vaughn and have rescheduled for March 3rd. I just got back from being out of the country for a month and I got sick. I live 3.5 hours south in the San Luis Obispo area and cannot make the drive this soon. I will work locally with Dignity Health where I got my last breast exam and have that done prior to my appointment in March. I will try to get in sooner before March by looking out for upcoming appointments in January too. Thank you!Michelle\n", + "----------------------------------------\n", + "Provider Response by SHC POPULATION HEALTH TEAM:\n", + "Hi Michelle, Thank you for letting me know. I hope you get well soon! Best Regards, Bao MaiPopulation Health Coordinator\n", + "----------------------------------------\n", + "2025-06-17 14:12:11,987 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:11,987 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:11,988 - ✅ similarity: 0.6217\n", + "2025-06-17 14:12:11,988 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello,Thank you, it should be noted in my chart that I don't do mammograms. I have repeated this to everyone I have seen. Please see that this is put in my chart so I don't have to repeat myself again.\n", + "2025-06-17 14:12:11,989 - Provider's response to this similar message: Hi, Tedi.Thank you for your message. I will make sure your preference is noted in your chart and will also notify your PCP to ensure this is documented appropriately moving forward. Please let me know if you have any other concerns.Best regards,Laura\n", + "2025-06-17 14:12:11,989 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:11,994 - Thread ID: 248570781\n", + "--------------------------------------------------------------------------------\n", + "idx: 344482\n", + "Subject: RE:Making the most out of your time in Primary Care\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, Tedi.Thank you for your message. I will make sure your preference is noted in your chart and will also notify your PCP to ensure this is documented appropriately moving forward. Please let me know if you have any other concerns.Best regards,Laura\n", + "----------------------------------------\n", + "Provider Response by DARWIN, ALICIA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 344481\n", + "Subject: RE:Making the most out of your time in Primary Care\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,Thank you, it should be noted in my chart that I don't do mammograms. I have repeated this to everyone I have seen. Please see that this is put in my chart so I don't have to repeat myself again.\n", + "----------------------------------------\n", + "Provider Response by SHC POPULATION HEALTH TEAM:\n", + "Hi, Tedi.Thank you for your message. I will make sure your preference is noted in your chart and will also notify your PCP to ensure this is documented appropriately moving forward. Please let me know if you have any other concerns.Best regards,Laura\n", + "----------------------------------------\n", + "2025-06-17 14:12:11,996 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:12,542 - Original Message:\n", + "2025-06-17 14:12:12,543 - original_query_message: Good morning, Dr. Baule,Hope you had a nice Thanksgiving. At our last appointment, we discussed scheduling a colonoscopy. I received a questionnaire, from Dr. Sun’s office, however, it expired and I’m unable to complete the pre screening process. Can the questionnaire, be resent. Thank you,Marco \n", + "2025-06-17 14:12:14,076 - Query Parameters:\n", + "2025-06-17 14:12:14,076 - query_message: Hi Dr. Baule,I hope you’re doing well. I wanted to follow up because we had talked about setting up a colonoscopy with Dr. Sun’s team during my last visit, since I’ve been having some ongoing stomach cramps and irregular bowel habits. I actually got an email about some kind of pre-procedure form, but I missed the deadline and now the link doesn’t seem to work.Would it be possible to have that form sent to me again? I’m trying to stay on top of this since my uncle recently had some polyps found, and I want to make sure I’m not missing anything important.Thanks so much for your help,David\n", + "2025-06-17 14:12:14,077 - receiver: FMSLG CARE TEAM POOL\n", + "2025-06-17 14:12:14,077 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:12:14,078 - specialty: Family Medicine\n", + "2025-06-17 14:12:14,936 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:14,938 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:14,940 - ✅ similarity: 0.8195\n", + "2025-06-17 14:12:14,941 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Would it be possible to have another colonoscopy referral be sent. I’m having trouble reaching somebody at Dr. Sun’s office. I’ve been calling since yesterday. Thank you \n", + "2025-06-17 14:12:14,942 - Provider's response to this similar message: Hey Marco, a new GI referral has been placed. Kim, Suejin Son, MD 2585 Samaritan Dr Ste 25 2nd Floor San Jose CA 95124 Phone: (650)736-5555 Please call Dr. Kim's office at your earliest convenience to schedule a colonoscopy. -Isaac Lara, CCMA\n", + "2025-06-17 14:12:14,944 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:14,948 - Thread ID: 251959788\n", + "--------------------------------------------------------------------------------\n", + "idx: 171467\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Would it be possible to have another colonoscopy referral be sent. I’m having trouble reaching somebody at Dr. Sun’s office. I’ve been calling since yesterday. Thank you \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Marco, a new GI referral has been placed. Kim, Suejin Son, MD 2585 Samaritan Dr Ste 25 2nd Floor San Jose CA 95124 Phone: (650)736-5555 Please call Dr. Kim's office at your earliest convenience to schedule a colonoscopy. -Isaac Lara, CCMA\n", + "----------------------------------------\n", + "idx: 171466\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning, Dr. Baule,Hope you had a nice Thanksgiving. At our last appointment, we discussed scheduling a colonoscopy. I received a questionnaire, from Dr. Sun’s office, however, it expired and I’m unable to complete the pre screening process. Can the questionnaire, be resent. Thank you,Marco \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Marco,Unfortunately, we do not handle any pre screening questionnaires that are sent by Dr. Sun's office. Please give them a call in regards to the questionnaire, if they are able to resend it or maybe do it over the phone with you. Let us know. Thank you.Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "----------------------------------------\n", + "2025-06-17 14:12:14,949 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:14,950 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:14,950 - ✅ similarity: 0.7772\n", + "2025-06-17 14:12:14,952 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning, Dr. Baule,Hope you had a nice Thanksgiving. At our last appointment, we discussed scheduling a colonoscopy. I received a questionnaire, from Dr. Sun’s office, however, it expired and I’m unable to complete the pre screening process. Can the questionnaire, be resent. Thank you,Marco \n", + "2025-06-17 14:12:14,952 - Provider's response to this similar message: Hi Marco,Unfortunately, we do not handle any pre screening questionnaires that are sent by Dr. Sun's office. Please give them a call in regards to the questionnaire, if they are able to resend it or maybe do it over the phone with you. Let us know. Thank you.Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "2025-06-17 14:12:14,953 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:14,956 - Thread ID: 251959788\n", + "--------------------------------------------------------------------------------\n", + "idx: 171467\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Would it be possible to have another colonoscopy referral be sent. I’m having trouble reaching somebody at Dr. Sun’s office. I’ve been calling since yesterday. Thank you \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Marco, a new GI referral has been placed. Kim, Suejin Son, MD 2585 Samaritan Dr Ste 25 2nd Floor San Jose CA 95124 Phone: (650)736-5555 Please call Dr. Kim's office at your earliest convenience to schedule a colonoscopy. -Isaac Lara, CCMA\n", + "----------------------------------------\n", + "idx: 171466\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning, Dr. Baule,Hope you had a nice Thanksgiving. At our last appointment, we discussed scheduling a colonoscopy. I received a questionnaire, from Dr. Sun’s office, however, it expired and I’m unable to complete the pre screening process. Can the questionnaire, be resent. Thank you,Marco \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Marco,Unfortunately, we do not handle any pre screening questionnaires that are sent by Dr. Sun's office. Please give them a call in regards to the questionnaire, if they are able to resend it or maybe do it over the phone with you. Let us know. Thank you.Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "----------------------------------------\n", + "2025-06-17 14:12:14,957 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:14,958 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:14,959 - ✅ similarity: 0.7748\n", + "2025-06-17 14:12:14,959 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I forgot to schedule my colonoscopy last November and my referral expired. I'm sorry. Can you send a new one to Dr. Suejin Kim with Stanford medicine? \n", + "2025-06-17 14:12:14,960 - Provider's response to this similar message: Dear Jennifer ConstantinoReferral placed for location below. Please contact facility for scheduling.Kim, Suejin Son, MD 2585 Samaritan Dr Ste 25 2nd Floor San Jose CA 95124 Phone: (650)736-5555 Fax: 650-724-6828 Please let me know if I can help you further.Take care,Nayeli TorresMedical AssistantPlease note, we do not review MyHealth messages sent outside of office hours. This includes nights, weekends, and holidays. MyHealth messaging is for non-urgent questions only. Due to the high volume of messages, we receive, please allow our staff 2-3 business days to reply.Stanford Family Medicine Samaritan Los Gatos15425 Los Gatos BLVD Suite 101O: (408)340-5700F: (408) 358-3430Myhealth Help Deskhttp://myhealth.stanfordhealthcare.org/ContactHelpDeskNON-MEDICAL QUESTIONS ONLY(866)367-0758\n", + "2025-06-17 14:12:14,960 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:14,964 - Thread ID: 255581388\n", + "--------------------------------------------------------------------------------\n", + "idx: 9065\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Jennifer,No problem at all. I will review your request and place a new referral for your colonoscopy if appropriate. You should receive a notification once the referral has been processed.Take care, Alla P Rozova, PA\n", + "----------------------------------------\n", + "Provider Response by TORRES, NAYELI:\n", + "No response\n", + "----------------------------------------\n", + "idx: 9064\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I forgot to schedule my colonoscopy last November and my referral expired. I'm sorry. Can you send a new one to Dr. Suejin Kim with Stanford medicine? \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Dear Jennifer ConstantinoReferral placed for location below. Please contact facility for scheduling.Kim, Suejin Son, MD 2585 Samaritan Dr Ste 25 2nd Floor San Jose CA 95124 Phone: (650)736-5555 Fax: 650-724-6828 Please let me know if I can help you further.Take care,Nayeli TorresMedical AssistantPlease note, we do not review MyHealth messages sent outside of office hours. This includes nights, weekends, and holidays. MyHealth messaging is for non-urgent questions only. Due to the high volume of messages, we receive, please allow our staff 2-3 business days to reply.Stanford Family Medicine Samaritan Los Gatos15425 Los Gatos BLVD Suite 101O: (408)340-5700F: (408) 358-3430Myhealth Help Deskhttp://myhealth.stanfordhealthcare.org/ContactHelpDeskNON-MEDICAL QUESTIONS ONLY(866)367-0758\n", + "----------------------------------------\n", + "2025-06-17 14:12:14,965 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:14,965 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:14,966 - ✅ similarity: 0.7339\n", + "2025-06-17 14:12:14,967 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Shah can you send a referral for a colonoscopy to Gastroenterology South Bay please. I didn’t get it done last year and had trouble scheduling the appt. I had another incident with a bleeding hemorrhoid this past weekend so I’d like to get this scheduled soon thx \n", + "2025-06-17 14:12:14,968 - Provider's response to this similar message: Hi Laurie,I have renewed your referral. Please call Dr. Zhang's office to schedule your colonoscopy. Best,Parveen Bhatia, FNP-BC\n", + "2025-06-17 14:12:14,972 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:14,976 - Thread ID: 249646475\n", + "--------------------------------------------------------------------------------\n", + "idx: 289901\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Shah can you send a referral for a colonoscopy to Gastroenterology South Bay please. I didn’t get it done last year and had trouble scheduling the appt. I had another incident with a bleeding hemorrhoid this past weekend so I’d like to get this scheduled soon thx \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Laurie,I have renewed your referral. Please call Dr. Zhang's office to schedule your colonoscopy. Best,Parveen Bhatia, FNP-BC\n", + "----------------------------------------\n", + "2025-06-17 14:12:14,976 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:14,976 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:14,977 - ✅ similarity: 0.7311\n", + "2025-06-17 14:12:14,977 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Jovanne,Can I get a new colonoscopy referral request? I was finally getting around to schedule the colonoscopy you recommended back in August and was told I will need a new referral because too much time has passed and it would be expired by the time of the procedure.Thanks,Bill \n", + "2025-06-17 14:12:14,979 - Provider's response to this similar message: Hey Bill, a referral to gastroenterology was placed as requested.Gastroenterology South Bay 2585 Samaritan Drive Second Floor, Ste 25 SAN JOSE CA 95124-4150 Phone: 650-736-5555 Please reach out to the phone number above to schedule your colonoscopy.Isaac Lara, CCMA15425 Los Gatos BlvdLos Gatos, CA 95032408-340-5700Office hours:Monday-Friday: 8am-5pmWeekends: closed\n", + "2025-06-17 14:12:14,980 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:14,984 - Thread ID: 255055618\n", + "--------------------------------------------------------------------------------\n", + "idx: 31693\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Bill,I will review your request and place a new referral for your colonoscopy if appropriate. You should receive a notification once the referral has been processed.Best regards,Alla P Rozova, PA\n", + "----------------------------------------\n", + "Provider Response by MENDOZA, JESUS EMMANUEL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 31692\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Jovanne,Can I get a new colonoscopy referral request? I was finally getting around to schedule the colonoscopy you recommended back in August and was told I will need a new referral because too much time has passed and it would be expired by the time of the procedure.Thanks,Bill \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Bill, a referral to gastroenterology was placed as requested.Gastroenterology South Bay 2585 Samaritan Drive Second Floor, Ste 25 SAN JOSE CA 95124-4150 Phone: 650-736-5555 Please reach out to the phone number above to schedule your colonoscopy.Isaac Lara, CCMA15425 Los Gatos BlvdLos Gatos, CA 95032408-340-5700Office hours:Monday-Friday: 8am-5pmWeekends: closed\n", + "----------------------------------------\n", + "idx: 31691\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Isaac,I was not able to schedule the colonoscopy until I have a consultation meeting. The first available consultation appointment was April 25th that I scheduled. They couldn’t give me a timeframe for when the procedure would be, but said they are booked pretty far out. Regards,Bill \n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "Hi BillThank you for the update. I am glad they scheduled you an appointment in April for consultation. I recommend keeping this appointment. Sometimes it can take a while to get a consultation for colonoscopy. Alternatively, if you would like, we could place a new referral; however, there is no guarantee to be seen sooner if you go to a different location.I would recommend keeping your appointment as planned. After consultation in April, hopefully they can get you in for the procedure in a timely manner.Best,Timothy Ulleseit, PA-CAssisting Dr. Tamparon\n", + "----------------------------------------\n", + "2025-06-17 14:12:14,984 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:15,224 - Original Message:\n", + "2025-06-17 14:12:15,225 - original_query_message: hi can you call in my estring prescription renewal?thanks!\n", + "2025-06-17 14:12:16,708 - Query Parameters:\n", + "2025-06-17 14:12:16,708 - query_message: Hi, I’ve been dealing with a lot of dryness and discomfort again lately, and I realized my estrogen ring is pretty much due for a change. Could you help me get a new prescription sent in to the pharmacy? Also, I was wondering if there are any other options that might help with irritation, since it’s been flaring up more than usual. Thanks so much!\n", + "2025-06-17 14:12:16,709 - receiver: FMO MY HEALTH POOL\n", + "2025-06-17 14:12:16,709 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:12:16,710 - specialty: Family Medicine\n", + "2025-06-17 14:12:17,702 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:17,707 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:17,708 - ✅ similarity: 0.6827\n", + "2025-06-17 14:12:17,708 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I don't recall who my OB/GYN doctor is. I would like to try and use that vaginal cream she prescribed for me a few years ago because sex was painful. Are you able to put that prescription back on my medicine list? I would like to try it again and be better at using it nightly as directed. I forgot to use it a lot of the time so I can't really say if it worked or not. Please have that prescription sent to CVS on Alcosta Blvd, San Ramon. I will be here in San Ramon until the end of the year recovering from a knee replacement surgery. Thanks. Christina Curie\n", + "2025-06-17 14:12:17,708 - Provider's response to this similar message: Hello Christina,Per the provider they advised an appointment is required. Please contact our office at 510-286-8160 for an appointment.Kindest regards,Itzel H.\n", + "2025-06-17 14:12:17,709 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:17,713 - Thread ID: 251696189\n", + "--------------------------------------------------------------------------------\n", + "idx: 184728\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I don't recall who my OB/GYN doctor is. I would like to try and use that vaginal cream she prescribed for me a few years ago because sex was painful. Are you able to put that prescription back on my medicine list? I would like to try it again and be better at using it nightly as directed. I forgot to use it a lot of the time so I can't really say if it worked or not. Please have that prescription sent to CVS on Alcosta Blvd, San Ramon. I will be here in San Ramon until the end of the year recovering from a knee replacement surgery. Thanks. Christina Curie\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello Christina,Per the provider they advised an appointment is required. Please contact our office at 510-286-8160 for an appointment.Kindest regards,Itzel H.\n", + "----------------------------------------\n", + "2025-06-17 14:12:17,713 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:17,714 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:17,715 - ✅ similarity: 0.6763\n", + "2025-06-17 14:12:17,716 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Lin,My prescription insurance denied the requests for coverage of the Estring. My prescription for the Estradiol Vaginal Cream is no longer valid and I don't see it on the refill page. Would you be able to issue another prescription for this?Thanks,Kate\n", + "2025-06-17 14:12:17,717 - Provider's response to this similar message: Hello Kate, Which pharmacy would you like to use? There are 3 listed in your chart. Yazmin Rodriguez, MA, 11/21/2024, 3:32 PM\n", + "2025-06-17 14:12:17,717 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:17,719 - Thread ID: 251316934\n", + "--------------------------------------------------------------------------------\n", + "idx: 204326\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please send it to the Emeryville pharmacy. Thank you \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello,Your Estradiol prescription has been approved and sent to the pharmacy.Take care \n", + "----------------------------------------\n", + "idx: 204325\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Lin,My prescription insurance denied the requests for coverage of the Estring. My prescription for the Estradiol Vaginal Cream is no longer valid and I don't see it on the refill page. Would you be able to issue another prescription for this?Thanks,Kate\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello Kate, Which pharmacy would you like to use? There are 3 listed in your chart. Yazmin Rodriguez, MA, 11/21/2024, 3:32 PM\n", + "----------------------------------------\n", + "2025-06-17 14:12:17,719 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:17,720 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:17,720 - ✅ similarity: 0.6659\n", + "2025-06-17 14:12:17,721 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning,My work place offers menopause consultations and o started taking advantage of this service.Although I have presented some cutaneous reaction to adhesives in the past, the doctor recommended I switch to the twice a week patch formulation. The patch is smaller and thiner than the once a week one and it’s well tolerated overall.Given that there are less side effects with transdermal vs oral estradiol, please let me try the twice a week patch. Could you send a prescription to my pharmacy, CVS on Fruitvale Ave, for the twice a week patch?Thanks!Sandra\n", + "2025-06-17 14:12:17,721 - Provider's response to this similar message: Hi Sandra,I sent in the patch, make sure to take the progesterone daily with it. Best, Rebecca Riseman\n", + "2025-06-17 14:12:17,722 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:17,726 - Thread ID: 249311061\n", + "--------------------------------------------------------------------------------\n", + "idx: 307591\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks! I started with the once a week last Friday because it has a lower dose. I didn’t have any skin reaction, I guess adhesive materials have improved since the last time I used one. I didn’t notice any other issue or hot flashes or anything. It seems the 0.025 mg/day works well and I’d prefer not to take a higher dose. Does that make sense to you? O will request the refill when I wear the last patch.Again, thank you very much!Sandra\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 307590\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you!I received 2 prescriptions: estradiol 0.0375mg patch (2/wk) and estradiol 0.025 mg patch (1/wk). Which one should I use?Thanks!Sandra\n", + "----------------------------------------\n", + "Provider Response by RISEMAN, REBECCA:\n", + "Hi-sorry about that. I had called in the once weekly patch but then re-read your message that said you wanted the 2x/week patch. You can use whichever one you prefer-they both work. The 2x/week patch is smaller, however, if that was your goal because of the adhesive reaction. Best, Rebecca Riseman\n", + "----------------------------------------\n", + "idx: 307589\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,My work place offers menopause consultations and o started taking advantage of this service.Although I have presented some cutaneous reaction to adhesives in the past, the doctor recommended I switch to the twice a week patch formulation. The patch is smaller and thiner than the once a week one and it’s well tolerated overall.Given that there are less side effects with transdermal vs oral estradiol, please let me try the twice a week patch. Could you send a prescription to my pharmacy, CVS on Fruitvale Ave, for the twice a week patch?Thanks!Sandra\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Sandra,I sent in the patch, make sure to take the progesterone daily with it. Best, Rebecca Riseman\n", + "----------------------------------------\n", + "2025-06-17 14:12:17,726 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:17,727 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:17,728 - ✅ similarity: 0.6606\n", + "2025-06-17 14:12:17,728 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Lin,Did you read my last message? Could you plz order me the next level of estrogen patches. I would like to be in it & report how it’s making me feel before our next appointment. Kindly, Norma\n", + "2025-06-17 14:12:17,729 - Provider's response to this similar message: Hi Norma,This message was routed to me, but I'm happy to send you the higher dose. I put in for 0.05mg weekly patches to your pharmacy.Take care,Jennifer Tsai, MD\n", + "2025-06-17 14:12:17,729 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:17,739 - Thread ID: 248810575\n", + "--------------------------------------------------------------------------------\n", + "idx: 332936\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Dr Tsai for your pro-active response, much appreciated! And finally, UC Davis vascular clinic got back to me the quickest out of all the specialist I’ve seen in the last year & didn’t require me to chase them for months on end to get an appt & were able to be put me on a waitlist where I do not have to call them weekly…Kindly,Norma\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 332935\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Lin,Did you read my last message? Could you plz order me the next level of estrogen patches. I would like to be in it & report how it’s making me feel before our next appointment. Kindly, Norma\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Norma,This message was routed to me, but I'm happy to send you the higher dose. I put in for 0.05mg weekly patches to your pharmacy.Take care,Jennifer Tsai, MD\n", + "----------------------------------------\n", + "2025-06-17 14:12:17,741 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:17,741 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:17,747 - ✅ similarity: 0.6497\n", + "2025-06-17 14:12:17,748 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Dr. Tsai,I hope this message finds you well. I am writing to follow up regarding my HRT treatment. During our last discussion, we had talked about the possibility of transitioning from the pill to the patch. If you could kindly send the updated prescription to the Walgreens on Gilman, I would greatly appreciate it.Thank you for your assistance.Best regards, Netsanet Melaku I would appreciate it. If you have any questions, please reach out to me at 510-434-4529. Thank you\n", + "2025-06-17 14:12:17,748 - Provider's response to this similar message: Hi Netsanet,I put in for the estrogen patch, which you should replace twice a week as well as a progesterone pill, to prevent uterine cancer. The dosing is slightly different than your oral medication because of the formulation and how you absorb it. They have both been sent to your Gilman pharmacy. Schedule a follow up if you feel this dose is not helping your symptoms enough.Take care,Jennifer Tsai, MD\n", + "2025-06-17 14:12:17,762 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:17,832 - Thread ID: 252505446\n", + "--------------------------------------------------------------------------------\n", + "idx: 145285\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Tsai,I hope this message finds you well. I am writing to follow up regarding my HRT treatment. During our last discussion, we had talked about the possibility of transitioning from the pill to the patch. If you could kindly send the updated prescription to the Walgreens on Gilman, I would greatly appreciate it.Thank you for your assistance.Best regards, Netsanet Melaku I would appreciate it. If you have any questions, please reach out to me at 510-434-4529. Thank you\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Netsanet,I put in for the estrogen patch, which you should replace twice a week as well as a progesterone pill, to prevent uterine cancer. The dosing is slightly different than your oral medication because of the formulation and how you absorb it. They have both been sent to your Gilman pharmacy. Schedule a follow up if you feel this dose is not helping your symptoms enough.Take care,Jennifer Tsai, MD\n", + "----------------------------------------\n", + "2025-06-17 14:12:17,858 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:18,426 - Original Message:\n", + "2025-06-17 14:12:18,428 - original_query_message: Could you please ask the doctor to refer me to an Orthopedic doctor for my right hip? I have arthritis in it and have been going to physical therapy for a couple of months. My therapist suggests that it would be a good idea to see an Orthopedic doctor. I had X-rays in Ohio in June, which indicated I have arthritis (I moved from there to Sunnyvale), but I have not seen a specialist. Thanks!\n", + "2025-06-17 14:12:20,128 - Query Parameters:\n", + "2025-06-17 14:12:20,129 - query_message: Hi, I was hoping to talk about my ongoing right hip pain. I've been dealing with stiffness and soreness for a while now, and my movement is getting more limited despite doing regular physical therapy. My PT thinks it might help to see an Orthopedic specialist to look into things further, maybe to see if there are any other treatment options. I had some imaging done (X-rays) last summer before I moved here from Ohio, which showed some joint changes, but I haven't actually met with a specialist about it yet. Could you help me get a referral to somebody? I just want to make sure I'm doing everything I can to stay active and manage the pain. Thanks so much!\n", + "2025-06-17 14:12:20,130 - receiver: UMG LGCPC MYHEALTH POOL\n", + "2025-06-17 14:12:20,130 - department: COLLABORATIVE PRIMARY CARE LOS GATOS\n", + "2025-06-17 14:12:20,131 - specialty: Internal Medicine\n", + "2025-06-17 14:12:21,015 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:21,016 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:21,017 - ✅ similarity: 0.8600\n", + "2025-06-17 14:12:21,018 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Could you please ask the doctor to refer me to an Orthopedic doctor for my right hip? I have arthritis in it and have been going to physical therapy for a couple of months. My therapist suggests that it would be a good idea to see an Orthopedic doctor. I had X-rays in Ohio in June, which indicated I have arthritis (I moved from there to Sunnyvale), but I have not seen a specialist. Thanks!\n", + "2025-06-17 14:12:21,019 - Provider's response to this similar message: Hi Dorothy Jillane Terleski,Dr. Singh is out of the office today, Our PA Bobby is helping with message. He reviewed your message and sent a referral as requested. They should be reaching out to you shortly. In case you don't hear back, please give them a call to schedule.Los Gatos Ortho Surg 555 Knowles Dr, Ste 201 LOS GATOS CA 95032 Phone: 408-866-6651 Fax: 408-866-6681 Stephanie Machorro Reynoso, MA, 11/18/2024, 4:11 PM\n", + "2025-06-17 14:12:21,020 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:21,029 - Thread ID: 250940394\n", + "--------------------------------------------------------------------------------\n", + "idx: 223671\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Stephanie, I tried to make an appointment with Orthopedic in Los Gatos for my hip, for which Dr. Singh has written the referral. They had nothing available until February. I had an appointment with Dr. Chueng for my shoulder, and she let me know several doctors could help at the Redwood City location. So I called, and they got me an appointment on December 17th. Thanks for your help. Tell Dr. thank you for her help, and have a great Thanksgiving!\n", + "----------------------------------------\n", + "Provider Response by MACHORRO REYNOSO, STEPHANIE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 223670\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Could you please ask the doctor to refer me to an Orthopedic doctor for my right hip? I have arthritis in it and have been going to physical therapy for a couple of months. My therapist suggests that it would be a good idea to see an Orthopedic doctor. I had X-rays in Ohio in June, which indicated I have arthritis (I moved from there to Sunnyvale), but I have not seen a specialist. Thanks!\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Dorothy Jillane Terleski,Dr. Singh is out of the office today, Our PA Bobby is helping with message. He reviewed your message and sent a referral as requested. They should be reaching out to you shortly. In case you don't hear back, please give them a call to schedule.Los Gatos Ortho Surg 555 Knowles Dr, Ste 201 LOS GATOS CA 95032 Phone: 408-866-6651 Fax: 408-866-6681 Stephanie Machorro Reynoso, MA, 11/18/2024, 4:11 PM\n", + "----------------------------------------\n", + "2025-06-17 14:12:21,029 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:21,030 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:21,030 - ✅ similarity: 0.8096\n", + "2025-06-17 14:12:21,031 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Pandey and team, I'm wondering if I can get a referral to an Orthopedist to go over the results of the recent MRI on my hip. I'd like to be able to discuss the results with someone. I've been going to PT and seeing my acupuncture therapist, continuing to work through ongoing pain. I look forward to hearing back from you. All the best,Shannon\n", + "2025-06-17 14:12:21,031 - Provider's response to this similar message: Hi Ms. Shannon Chastaine,Referral to orthopedics has been placed by our PA Bobby. Dr. Pandey is not in the week and he is helping out with messages!Orthopaedics Intake 450 Broadway St Redwood City CA 94063 Phone: 650-723-5643 Stephanie Machorro Reynoso, MA, 12/24/2024, 9:04 AM\n", + "2025-06-17 14:12:21,032 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:21,036 - Thread ID: 253994326\n", + "--------------------------------------------------------------------------------\n", + "idx: 81936\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Pandey and team, I'm wondering if I can get a referral to an Orthopedist to go over the results of the recent MRI on my hip. I'd like to be able to discuss the results with someone. I've been going to PT and seeing my acupuncture therapist, continuing to work through ongoing pain. I look forward to hearing back from you. All the best,Shannon\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Ms. Shannon Chastaine,Referral to orthopedics has been placed by our PA Bobby. Dr. Pandey is not in the week and he is helping out with messages!Orthopaedics Intake 450 Broadway St Redwood City CA 94063 Phone: 650-723-5643 Stephanie Machorro Reynoso, MA, 12/24/2024, 9:04 AM\n", + "----------------------------------------\n", + "2025-06-17 14:12:21,037 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:21,037 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:21,038 - ✅ similarity: 0.7650\n", + "2025-06-17 14:12:21,041 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Bommakanti,Hope you are well. I visited our family podiatrist who will be ordering me custom orthodics to help with my left hip tightness (shorter) and all the walking I’ve been doing this year!She suggested i see an orthopedist to check for bursitis etc. Can you send me a referral? Prefer someone near Campbell/Los Gatos/San Jose/Good Samaritan if possible. Thanks!Many \n", + "2025-06-17 14:12:21,043 - Provider's response to this similar message: Hi Gale, Thank you for reaching out,. Please call our office to schedule an appointment with Dr Bommakanti . For all new referrals she would like to evaluate/assess the patients before ordering it. Best Regards, Michelle \n", + "2025-06-17 14:12:21,048 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:21,051 - Thread ID: 250544554\n", + "--------------------------------------------------------------------------------\n", + "idx: 244248\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Michelle,I have an open access Cigna plan that does not require visits for referrals AND I do not like to bill insurance unnecessarily. Let Dr B know I have previously seen Dr Ted Robinson and will call his office for appt or referral If she can’t provide one.Gale\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 244247\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Bommakanti,Hope you are well. I visited our family podiatrist who will be ordering me custom orthodics to help with my left hip tightness (shorter) and all the walking I’ve been doing this year!She suggested i see an orthopedist to check for bursitis etc. Can you send me a referral? Prefer someone near Campbell/Los Gatos/San Jose/Good Samaritan if possible. Thanks!Many \n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Gale, Thank you for reaching out,. Please call our office to schedule an appointment with Dr Bommakanti . For all new referrals she would like to evaluate/assess the patients before ordering it. Best Regards, Michelle \n", + "----------------------------------------\n", + "2025-06-17 14:12:21,052 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:21,052 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:21,053 - ✅ similarity: 0.7543\n", + "2025-06-17 14:12:21,053 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Tran,Could you please refer me to my physical therapy at Silver Creek Physical Therapy 14107 Winchester Blvd Ste O, Los Gatos, CA 95032 This is for my right hip replacement surgery as it seems I need a need referral after three month. I also seem to have really bad sciatica pain on my left leg. Could they also help?Thank you so muchMina\n", + "2025-06-17 14:12:21,053 - Provider's response to this similar message: Hi Ms. Mina Rohani Pichavant,Dr. Tran is currently out of the office. Our covering provider, PA Bobby, reviewed your message and sent the PT referral as requested. He also wrote- Yes, they could help with sciatica; however, if this is a new problem, then I recommend evaluation to ensure this is the correct diagnosis. SILVER CREEK PHYSICAL THERAPY LOS GATOS 14103 WINCHESTER BLVD STE F LOS GATOS CA 95032-1835 Phone: 408-874-6953 Fax: 408-877-4718 Stephanie Machorro Reynoso, MA, 1/2/2025, 11:23 AMReferral FormDepartmentName Address Phone Fax Collaborative Primary Care 14251 Winchester BlvdLos Gatos CA 95032 408-426-5540 650-724-2430 Patient DemographicsPatient NameRohani Pichavant, Mina Legal SexFemale DOB7/11/1981 SSNxxx-xx-6387 Address4623 Fallstone CtSan Jose CA 95124-3463 Phone408-674-6029 (Home)408-674-6029 (Mobile) *Preferred* Insurance Information: Primary Insurance: Secondary Insurance: Carrier Code SRCTR Ins Co Name: AETNA EPO Address 1: PO BOX 14079 Address 2: City, State Zip: LEXINGTON, KY 40512-4079 Policy Number: W232168979 Group #: 023236101000001 Carrier Code Ins Co Name: Address 1: Address 2: City, State Zip: Policy Number: Group #: Primary Policy Holder / Insured: Secondary Policy Holder / Insured: Name: ROHANI PICHAVANT,MINA Address: 4623 FALLSTONE CT SAN JOSE, CA 95124 Pt Relation to Subscriber: Self Name: Address: Pt Relation to Subscriber: Order InformationDate Department Ordering/Authorizing 1/2/2025 Collaborative Primary Care Enright, Robert Joseph, PA Procedure Requested:Referral To Physical Therapy - External Comment: Reason for Referral: Evaluate and Treat right hip and right leg sciatic pain. Referral Priority: Routine [1] Referral ID: 29719420Associated DiagnosesRight hip pain [M25.551] - Primary Sciatic pain, right [M54.31] Provider InformationElectronically signed by Enright, Robert Joseph, PA Referral DetailsReferred By Referred To Enright, Robert Joseph, PA 14251 Winchester Blvd Ste 200 Los Gatos CA 95032 Phone: (408)426-5540 Fax: 650-724-2430 Diagnoses: Right hip pain Sciatic pain, right Order: Referral To Physical Therapy - External Pt Eval High Complex 45 Min Reason: Specialty Services Requested SILVER CREEK PHYSICAL THERAPY LOS GATOS 14103 WINCHESTER BLVD STE F LOS GATOS CA 95032-1835 Phone: 408-874-6953 Fax: 408-877-4718 \n", + "2025-06-17 14:12:21,054 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:21,056 - Thread ID: 254606053\n", + "--------------------------------------------------------------------------------\n", + "idx: 54234\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Will do! Happy new year!Mina\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 54233\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much Stephanie. Would you be able to book me an appoint with Dr Tran then to check the sciatica? ThanksMina\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Please call our office to better assist you in scheduling! Dr. Tran will be out until 1/13/2025 but we can schedule you in the meantime with another provider. Our office number is 408-426-5540.Stephanie Machorro Reynoso, MA, 1/2/2025, 11:36 AM\n", + "----------------------------------------\n", + "idx: 54232\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Tran,Could you please refer me to my physical therapy at Silver Creek Physical Therapy 14107 Winchester Blvd Ste O, Los Gatos, CA 95032 This is for my right hip replacement surgery as it seems I need a need referral after three month. I also seem to have really bad sciatica pain on my left leg. Could they also help?Thank you so muchMina\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Ms. Mina Rohani Pichavant,Dr. Tran is currently out of the office. Our covering provider, PA Bobby, reviewed your message and sent the PT referral as requested. He also wrote- Yes, they could help with sciatica; however, if this is a new problem, then I recommend evaluation to ensure this is the correct diagnosis. SILVER CREEK PHYSICAL THERAPY LOS GATOS 14103 WINCHESTER BLVD STE F LOS GATOS CA 95032-1835 Phone: 408-874-6953 Fax: 408-877-4718 Stephanie Machorro Reynoso, MA, 1/2/2025, 11:23 AMReferral FormDepartmentName Address Phone Fax Collaborative Primary Care 14251 Winchester BlvdLos Gatos CA 95032 408-426-5540 650-724-2430 Patient DemographicsPatient NameRohani Pichavant, Mina Legal SexFemale DOB7/11/1981 SSNxxx-xx-6387 Address4623 Fallstone CtSan Jose CA 95124-3463 Phone408-674-6029 (Home)408-674-6029 (Mobile) *Preferred* Insurance Information: Primary Insurance: Secondary Insurance: Carrier Code SRCTR Ins Co Name: AETNA EPO Address 1: PO BOX 14079 Address 2: City, State Zip: LEXINGTON, KY 40512-4079 Policy Number: W232168979 Group #: 023236101000001 Carrier Code Ins Co Name: Address 1: Address 2: City, State Zip: Policy Number: Group #: Primary Policy Holder / Insured: Secondary Policy Holder / Insured: Name: ROHANI PICHAVANT,MINA Address: 4623 FALLSTONE CT SAN JOSE, CA 95124 Pt Relation to Subscriber: Self Name: Address: Pt Relation to Subscriber: Order InformationDate Department Ordering/Authorizing 1/2/2025 Collaborative Primary Care Enright, Robert Joseph, PA Procedure Requested:Referral To Physical Therapy - External Comment: Reason for Referral: Evaluate and Treat right hip and right leg sciatic pain. Referral Priority: Routine [1] Referral ID: 29719420Associated DiagnosesRight hip pain [M25.551] - Primary Sciatic pain, right [M54.31] Provider InformationElectronically signed by Enright, Robert Joseph, PA Referral DetailsReferred By Referred To Enright, Robert Joseph, PA 14251 Winchester Blvd Ste 200 Los Gatos CA 95032 Phone: (408)426-5540 Fax: 650-724-2430 Diagnoses: Right hip pain Sciatic pain, right Order: Referral To Physical Therapy - External Pt Eval High Complex 45 Min Reason: Specialty Services Requested SILVER CREEK PHYSICAL THERAPY LOS GATOS 14103 WINCHESTER BLVD STE F LOS GATOS CA 95032-1835 Phone: 408-874-6953 Fax: 408-877-4718 \n", + "----------------------------------------\n", + "2025-06-17 14:12:21,057 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:21,058 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:21,060 - ✅ similarity: 0.7277\n", + "2025-06-17 14:12:21,060 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Pandey, Over the last week I’ve noticed progressive R hip pain. I am hoping you can order a right hip/femur X-ray so I can have it looked at. I’m not sure if it’s muscular vs skeletal. Thank you!Best,Ethan \n", + "2025-06-17 14:12:21,062 - Provider's response to this similar message: Hi Ethan,I hope your doing well, please call our office and schedule an appointment with one of our doctors here so you can discuss this with them since Dr.Pandey is not in.Sincerely,Joanna Lamas,MACollaborative Primary Care408-426-5540Please note: It may take up to 48 hours to respond to your emails. If you have any urgent concerns, please call our office. Messages sent after 5 pm will not be addressed until the following workday.\n", + "2025-06-17 14:12:21,063 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:21,066 - Thread ID: 250991306\n", + "--------------------------------------------------------------------------------\n", + "idx: 220989\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Pandey, Over the last week I’ve noticed progressive R hip pain. I am hoping you can order a right hip/femur X-ray so I can have it looked at. I’m not sure if it’s muscular vs skeletal. Thank you!Best,Ethan \n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Ethan,I hope your doing well, please call our office and schedule an appointment with one of our doctors here so you can discuss this with them since Dr.Pandey is not in.Sincerely,Joanna Lamas,MACollaborative Primary Care408-426-5540Please note: It may take up to 48 hours to respond to your emails. If you have any urgent concerns, please call our office. Messages sent after 5 pm will not be addressed until the following workday.\n", + "----------------------------------------\n", + "2025-06-17 14:12:21,069 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:21,979 - Original Message:\n", + "2025-06-17 14:12:21,980 - original_query_message: Hi Dr Chung, it's been a while since my blood test. would it be possible to order blood works for me? please also include thyroid tests. you can send it to labcorp in Fremont.thank you!\n", + "2025-06-17 14:12:24,321 - Query Parameters:\n", + "2025-06-17 14:12:24,325 - query_message: Hi Dr. Chung, I hope you’re doing well. I’ve been feeling more tired than usual lately and noticed some changes in my energy levels and weight. I realized it’s been quite some time since my last blood work, so I wanted to see if we could check my labs again—including my thyroid just to be safe. Also, if possible, could you send the order to Quest Diagnostics in Newark? Thanks so much for your help!\n", + "2025-06-17 14:12:24,326 - receiver: PORTOLA VALLEY PROVIDERS TEAM 2 POOL\n", + "2025-06-17 14:12:24,326 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:12:24,329 - specialty: Primary Care\n", + "2025-06-17 14:12:24,838 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:24,838 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:24,839 - ✅ similarity: 0.8266\n", + "2025-06-17 14:12:24,839 - Sender: FONSECA, GABRIELA [ S0190178] -> the retrieved similar message : Hi Dr. Angelo,At my last appointment we did some labs and you wanted to do some follow up labs to recheck the levels of my thyroid. Can you please send this request to Sutter Coast Hospital Laboratory in Crescent City, CA? Their fax number is 707-464-8937. I hope you are doing well!Thank you,Rikki Hautala\n", + "2025-06-17 14:12:24,840 - Provider's response to this similar message: Hello Rikki,We have faxed over the lab order to the fax number provided. Please connect with there lab to complete lab work. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:12:24,841 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:24,846 - Thread ID: 248723903\n", + "--------------------------------------------------------------------------------\n", + "idx: 336749\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy Monday,I am confirming that I got the lab done this past Friday, 10/25.Thank you,Rikki Hautala\n", + "----------------------------------------\n", + "Provider Response by ANGELO, PADEN:\n", + "Thank you for completing your labs. Your thyroid function is completely normal, no further follow up is needed.Take care,Paden Angelo, MDInternal Medicine and PediatricsStanford Primary Care Portola Valley \n", + "----------------------------------------\n", + "idx: 336748\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Andrea!\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 336747\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Angelo,At my last appointment we did some labs and you wanted to do some follow up labs to recheck the levels of my thyroid. Can you please send this request to Sutter Coast Hospital Laboratory in Crescent City, CA? Their fax number is 707-464-8937. I hope you are doing well!Thank you,Rikki Hautala\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Rikki,We have faxed over the lab order to the fax number provided. Please connect with there lab to complete lab work. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:12:24,846 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:24,847 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:24,848 - ✅ similarity: 0.7757\n", + "2025-06-17 14:12:24,848 - Sender: ANGEL, VALERIE [ S0384043] -> the retrieved similar message : Hi Dr Chung, it's been a while since my blood test. would it be possible to order blood works for me? please also include thyroid tests. you can send it to labcorp in Fremont.thank you!\n", + "2025-06-17 14:12:24,849 - Provider's response to this similar message: Good morning Jackson,I hope this message finds you well.Dr. Chung is out of office through December 2nd. Our records indicate you are due for a physical since you were last seen by Dr. Chung in 2022. We can schedule your physical and you can discuss this request further during this visit. Please let me know if you would like to proceed with scheduling this appointment. This appointment will be placed on hold for the next 24 hours.Date: Monday, December 9thTime: 10:30 amWe look forward to hearing from you.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)489-9000Fax (650)736-0647Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:12:24,850 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:24,852 - Thread ID: 251515431\n", + "--------------------------------------------------------------------------------\n", + "idx: 194308\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Chung, it's been a while since my blood test. would it be possible to order blood works for me? please also include thyroid tests. you can send it to labcorp in Fremont.thank you!\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Jackson,I hope this message finds you well.Dr. Chung is out of office through December 2nd. Our records indicate you are due for a physical since you were last seen by Dr. Chung in 2022. We can schedule your physical and you can discuss this request further during this visit. Please let me know if you would like to proceed with scheduling this appointment. This appointment will be placed on hold for the next 24 hours.Date: Monday, December 9thTime: 10:30 amWe look forward to hearing from you.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)489-9000Fax (650)736-0647Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:12:24,853 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:24,853 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:24,854 - ✅ similarity: 0.7736\n", + "2025-06-17 14:12:24,854 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Hi Dr Chung,I wanted to let you know that for many months now, I have been very fatigued - and realized I haven’t had labs recently and have wondered about anemia or thyroid issues or other possible causes. I reliably get eight hours of sleep every night, but still wake up, exhausted and spend most of the day tired as well. Wanted to see if you had thoughts on labs and/or an appointment to check in on this. If I really reflect, I think this has been at least a year without any improvement. Appreciate your insights on this.ThanksAnanta \n", + "2025-06-17 14:12:24,854 - Provider's response to this similar message: Good afternoon Ananta,I hope this message finds you well.Are you available for an in person appointment on Monday, 12/9 at 9:00am?Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:12:24,855 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:24,857 - Thread ID: 252233880\n", + "--------------------------------------------------------------------------------\n", + "idx: 157612\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am notI looked ahead at her availability on my chart and I did not see anything that was going to be soon that coincided with my availabilities so that’s why I had sent the messageI can also plan to schedule whatever works next for me and let her decide if any lab work or anything else beforehand would help that visit. Or of course I can just come there and work it out.Ananta \n", + "----------------------------------------\n", + "Provider Response by CHUNG, ALICE:\n", + "Hi Ananta,Thank you for reaching out. Given your ongoing fatigue, it would be a good idea to check for potential causes such as anemia or thyroid issues. I recommend scheduling an appointment so we can discuss this further and order the appropriate lab tests. We could start with these labs and other routine labs (screening for hep B and C and repeat comprehensive metabolic panel since your liver enzymes were out of range 6/2024) but you may need other tests depending on what we discuss during the visit. If you are ok with getting labs drawn twice then you may go ahead and get these tests prior to your appointment. Your chart is flagging that you are due for the following health maintenance items. We can discuss more about the pap smear and mammogram during your upcoming visit. Looking forward to seeing you soon.Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done PAP SMEAR Never done MAMMOGRAM Never done Best regards,Alice A. Chung, MDStanford Labs: Stanford Blood Draw SitesHoover Pavilion 211 Quarry Road, Palo Alto 7:00 am-7:00 pm Monday-Friday, no appointment needed. (650) 497-0086 Menlo Medical Clinic 1300 Crane Street, Menlo Park 7:00 am-6:00 pm Monday-Friday and 8:00 am- 12:30 pm Saturday, no appointment needed (650) 498-6516 Stanford Medicine Outpatient Center 450 Broadway street Redwood City 8:00 am-6:00 pm Monday-Friday, no appointment needed. (650) 721-7324 The hospital has a lab that is open 24 hours a day, 7 days a week. main hospital 300 Pasteur Drive Room H1524 (650) 723-6111 Stanford Outpatient LabsMenlo Park, CA 94025Menlo Medical Clinic (Adult) 1300 Crane Street Menlo Park, CA 94025Phone: (650) 498-6516Hours: Monday-Friday 7am-6pm, Saturday 8am-12:30pm Menlo Medical Clinic (Adult) 321 Middlefield RoadMenlo Park, CA 94025Phone: (650) 498-3514Hours: Monday-Friday 8:30am-5 pm, closed 12:30pm-1:30pmPalo Alto, CA 94305Hoover Pavilion (Adult) 211 Quarry Road, Suite 101Palo Alto, CA 94304Phone: (650) 497-0086Hours: Monday-Friday 7am-7pmMary L. Johnson (Pediatric) 730 Welch Road, First floorPalo Alto, CA 94304Phone: (650) 725-9302Hours: Monday-Friday 7:30am-5:30pmStanford, CA 94305300 Pasteur Drive, Pavilion E, Level 1, E12 (Adult and Pediatric)Stanford, CA 94305Phone: (650) 723-6111Hours: Monday-Friday 7am-5pm, Saturday and Sunday 7am-3:30pmBoswell Clinic, Pavilion A, Level 1, A12 (Adult)Stanford, CA 94305Phone: (650) 724-1215Hours: Monday-Friday 7am-5:30pmBlake Wilbur Building, 1st floor, Room W1083 (Adult)Stanford, CA 94305Phone: (650) 725-8612Hours: Monday-Friday 7:30am-5:30pmRedwood City, CA 94063Stanford Medicine Outpatient Center450 Broadway StreetRedwood City, CA 94063Phone: 650-721-7324Hours: Monday-Friday 7am-6pmSan Jose, 95124 Stanford Cancer Center South Bay2589 Samaritan Drive, 4th FloorSan Jose, CA Phone: 408-426-4900Hours: Monday - Friday, 7 am-7 pmEmeryville, CA 94608Stanford Health Care (Adult)5800 Hollis St, First Floor, Pavilion BEmeryville, CA 94608Phone: (650) 723-6111Hours: Monday-Friday 7:30am-5pm\n", + "----------------------------------------\n", + "idx: 157611\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Chung,I wanted to let you know that for many months now, I have been very fatigued - and realized I haven’t had labs recently and have wondered about anemia or thyroid issues or other possible causes. I reliably get eight hours of sleep every night, but still wake up, exhausted and spend most of the day tired as well. Wanted to see if you had thoughts on labs and/or an appointment to check in on this. If I really reflect, I think this has been at least a year without any improvement. Appreciate your insights on this.ThanksAnanta \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good afternoon Ananta,I hope this message finds you well.Are you available for an in person appointment on Monday, 12/9 at 9:00am?Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:12:24,858 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:24,858 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:24,858 - ✅ similarity: 0.7276\n", + "2025-06-17 14:12:24,859 - Sender: GROSS, LAURA [ S0040927] -> the retrieved similar message : Would you please order some lab tests for my annual visit on December 4. I would like to test current CRP and glucose levels. Anything else you think would be appropriate please add. We did some recent blood panels that might be adequate. I have an outstanding order for thyroid that I can use.Thanks, Sandra \n", + "2025-06-17 14:12:24,859 - Provider's response to this similar message: Good morning Sandra,I hope this message finds you well.Your labs have been ordered, please complete these while fasting.FASTING INSTRUCTIONS: No food or beverages (with the exception of water) for 8-10 hours before your blood draw. You can complete your test without an appointment at the following locations: 1) Hoover Pavilion Laboratory, 211 Quarry Road, Suite 101, Palo Alto. 2) Stanford Medicine Outpatient Center, 450 Broadway Street, Redwood City. 3) Stanford Cancer Center South Bay, 2589 Samaritan Dr, San Jose. For a full list of lab sites, please visit https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:12:24,859 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:24,865 - Thread ID: 251812506\n", + "--------------------------------------------------------------------------------\n", + "idx: 179050\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Would you please order some lab tests for my annual visit on December 4. I would like to test current CRP and glucose levels. Anything else you think would be appropriate please add. We did some recent blood panels that might be adequate. I have an outstanding order for thyroid that I can use.Thanks, Sandra \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Sandra,I hope this message finds you well.Your labs have been ordered, please complete these while fasting.FASTING INSTRUCTIONS: No food or beverages (with the exception of water) for 8-10 hours before your blood draw. You can complete your test without an appointment at the following locations: 1) Hoover Pavilion Laboratory, 211 Quarry Road, Suite 101, Palo Alto. 2) Stanford Medicine Outpatient Center, 450 Broadway Street, Redwood City. 3) Stanford Cancer Center South Bay, 2589 Samaritan Dr, San Jose. For a full list of lab sites, please visit https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:12:24,866 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:24,867 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:24,868 - ✅ similarity: 0.7230\n", + "2025-06-17 14:12:24,895 - Sender: MANUGIAN, AREK [ S0195819] -> the retrieved similar message : Hello, Could you put in an order for all the same blood work I had done 10/2? I would like to redo it before the end of the calendar year since I've reached my out of pocket max. I would also like to set up a follow-up with Dr. Chung to discuss the results. I'm alarmed by my iron level and cholesterol test results from 10/2.Thanks,Sandy\n", + "2025-06-17 14:12:25,067 - Provider's response to this similar message: Good morning Sandy,I hope this message finds you well.Dr. Chung is out of office until 1/5/2025. I have sent your request to a covering provider for them to review.Dr. Chung's next available video appointment is Monday 1/6 4:00pm. Please let me know if you would like to proceed with scheduling this.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:12:25,072 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:25,075 - Thread ID: 254370621\n", + "--------------------------------------------------------------------------------\n", + "idx: 66464\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "First thing tomorrow morning, 12/31, is preferred so 9am works great or even earlier if it's available. I'd like to come to the Portola Valley office. I want to repeat all the same labs I did on 10/2. If I fasted for those labs, please let me know so that I can be consistent.Thanks,Sandy\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "I have scheduled you for tomorrow at 8:30am. Yes, we have ordered the same labs and these are fastin.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 66463\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks I spoke to someone this morning who scheduled an in-person visit with Dr. Chung for me. \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Thank you, also for your labs do you have a preferred time tomorrow or would 9:00 am work for you? We are only opened until 11:00am for labs.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 66462\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, Could you put in an order for all the same blood work I had done 10/2? I would like to redo it before the end of the calendar year since I've reached my out of pocket max. I would also like to set up a follow-up with Dr. Chung to discuss the results. I'm alarmed by my iron level and cholesterol test results from 10/2.Thanks,Sandy\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Sandy,I hope this message finds you well.Dr. Chung is out of office until 1/5/2025. I have sent your request to a covering provider for them to review.Dr. Chung's next available video appointment is Monday 1/6 4:00pm. Please let me know if you would like to proceed with scheduling this.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:12:25,076 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:25,750 - Original Message:\n", + "2025-06-17 14:12:25,751 - original_query_message: hi Dr. Xu,Mt husband and I would like to talk with a sex therapist to address some concerns. can you please place a referral.\n", + "2025-06-17 14:12:26,830 - Query Parameters:\n", + "2025-06-17 14:12:26,831 - query_message: Hi Dr. Xu, I'm hoping you can help me with something a bit personal. My partner and I have been having some challenges with intimacy and communication in our relationship lately. We've noticed it's affecting our emotional connection, and it's starting to cause some stress for both of us. We're interested in finding someone who specializes in this area and can give us some guidance. Could you recommend or refer us to a counselor or therapist who has experience with couples facing relationship and intimacy issues? Thank you!\n", + "2025-06-17 14:12:26,831 - receiver: XU, LING\n", + "2025-06-17 14:12:26,832 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS CASTRO VALLEY\n", + "2025-06-17 14:12:26,833 - specialty: Primary Care\n", + "2025-06-17 14:12:27,460 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:27,461 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:27,461 - ✅ similarity: 0.6990\n", + "2025-06-17 14:12:27,462 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : hi Dr. Xu,Mt husband and I would like to talk with a sex therapist to address some concerns. can you please place a referral.\n", + "2025-06-17 14:12:27,463 - Provider's response to this similar message: Hi Kashifa,Thank you for reaching out. Sex therapy is in the field of psychology/psychiatry under the category of mental health. I can provide you with some reach out information or you can reach out to your insurance carried to find out the provider take your insurance.Take care,Ling Xu MDOutpatient Behavioral Health Group Practice Options Accepting Most Major Commercial Insurance Plans: 1) Baywell Psychiatry GroupOffice locations in San Francisco and San Mateo.Provide medication management and psychotherapy services.415-922-9122Http://baywellpsych.com/baywell_wp/ 2) Psychiatric AlternativesOffices in SF, Oakland, Berkeley, Orinda, Sausalito and San Rafael.Provides medication management and psychotherapy services. Please note, this group does not provide new appointments to persons 65 and older, and may defer new referral to person(s) hospitalized within the last 6 months.(415) 237-0377www.psychiatricalternatives.com 3) Life Stance Health (formerly known as Pacific Coast Psychiatric Associates)Offices across California and via telehealth.Provides medication management and psychotherapy services. You may be able to book your first appointment online by completing their new patient tabs/questionaire as well.T: 415.296.5290T: 415.409.0944Http://www.pcpasf.com 4) Bright Heart HealthBright Heart Health offers mental health outpatient and telehealth care to individuals with mood, personality, and other mental health issues. Patients meet with providers in both individual and group sessions. Each patient is assigned a multi-disciplinary team of professionals who take a patient-centered approach to care.Call: (800) 892-2695 or Visit the Virtual Clinichttps://www.brighthearthealth.com/ 5) Community PsychiatryProvides medication management only.Offices in larger SF bay area (including Marin and the Peninsula), East Bay, Central Valley, Sacramento, Chico and San Luis Obispo.855-427-2778Http://www.communitypsychiatry.com/home.html 6) Comprehensive Psychiatric ServiceProvides medication management and may have some availability for supportive therapy. (Clinics have psychiatrists in office only so psychotherapy services may be more limited.) Locations in San Francisco, Peninsula, East Bay, San Jose and Fairfield. Please visit the website (see below) to obtain the phone numbers for each office location to make a new referral. You may also call the central answering service at (925) 944-9711 for help.http://www.psych-doctor.com 7) Foresight Mental HealthProvides mostly outpatient psychotherapy with some medication management. Locations across bay area. https://www.foresightmentalhealth.com/Patients can either book initial consultation online or call (888) 588-8995 8. Prodigy Psychiatry group 510-875-7721322 Piercy Road, Suite A, San Jose 95138 County Mental Health Access Services If patients have Medi-cal, and wish to seek therapy and/or other medication services, they will need to access the county which accepts payment/coverage via Medi-cal. Please have the patient contact their county of residence Mental Health Access line for referral assistance. Below are multiple mh access lines in the larger bay area. However, there are mental health access lines for each respective county in the state of California. If you are outside of the bay area, please search for the affiliated county mental health access line via Internet search or call the respective county's 2-1-1 essential community service/United Way hotline. Most access hotlines, and 2-1-1, are available 24/7. San Francisco 1.800.750.2727 or 415.255.3737 or 1.888.246.3333 Alameda 1-800-491-9099 Contra Costa 1-888-678-727 Marin (888) 818-1115 Sonoma (707) 565-6900 or (800) 870-8786 Solano (800) 547-0495 San Mateo (800) 686-0101 Santa Clara 1 (800) 704-0900 Telehealth Platforms for Therapy and Mental Health Services There are multiple telehealth platforms now offering therapy services with the above listed therapy and medication management services. These platforms vary in methods of payment including: self payment at varying ranges, subscription payments, coverage via health insurance, and/or EAPs (employee assistance programs). For details please review each respective service's websites and contact the service directly with questions/for more information. Please note services marked with an asterisk* may also offer medication assessment and management services via licensed psychiatrists and nurse practitioners in addition to psychotherapy services. 1) Better Helphttps://www.betterhelp.com/ 2) Talk Space*https://www.talkspace.com/Has some insurance coverages, in particular cigna and some UHC/optum plans 3) Cerebralhttps://getcerebral.com/ 4) Reflect*https://www.joinreflect.com/ 5) Two Chairs (also has some in person services available)https://www.twochairs.com/ 6) Done.Provides assessment and medication management specifically for persons diagnosed with and seeking treatment services for ADHD. Services are available on line and some services are available in person in select nationwide locations (San Diego, LA, Bay Area, Austin TX, NYC). Appears service may specific to medication management of ADHD only and specifically.https://www.donefirst.com/ \n", + "2025-06-17 14:12:27,463 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:27,471 - Thread ID: 249604920\n", + "--------------------------------------------------------------------------------\n", + "idx: 292617\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for the information. I will reach out to them\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 292616\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hi Dr. Xu,Mt husband and I would like to talk with a sex therapist to address some concerns. can you please place a referral.\n", + "----------------------------------------\n", + "Provider Response by XU, LING:\n", + "Hi Kashifa,Thank you for reaching out. Sex therapy is in the field of psychology/psychiatry under the category of mental health. I can provide you with some reach out information or you can reach out to your insurance carried to find out the provider take your insurance.Take care,Ling Xu MDOutpatient Behavioral Health Group Practice Options Accepting Most Major Commercial Insurance Plans: 1) Baywell Psychiatry GroupOffice locations in San Francisco and San Mateo.Provide medication management and psychotherapy services.415-922-9122Http://baywellpsych.com/baywell_wp/ 2) Psychiatric AlternativesOffices in SF, Oakland, Berkeley, Orinda, Sausalito and San Rafael.Provides medication management and psychotherapy services. Please note, this group does not provide new appointments to persons 65 and older, and may defer new referral to person(s) hospitalized within the last 6 months.(415) 237-0377www.psychiatricalternatives.com 3) Life Stance Health (formerly known as Pacific Coast Psychiatric Associates)Offices across California and via telehealth.Provides medication management and psychotherapy services. You may be able to book your first appointment online by completing their new patient tabs/questionaire as well.T: 415.296.5290T: 415.409.0944Http://www.pcpasf.com 4) Bright Heart HealthBright Heart Health offers mental health outpatient and telehealth care to individuals with mood, personality, and other mental health issues. Patients meet with providers in both individual and group sessions. Each patient is assigned a multi-disciplinary team of professionals who take a patient-centered approach to care.Call: (800) 892-2695 or Visit the Virtual Clinichttps://www.brighthearthealth.com/ 5) Community PsychiatryProvides medication management only.Offices in larger SF bay area (including Marin and the Peninsula), East Bay, Central Valley, Sacramento, Chico and San Luis Obispo.855-427-2778Http://www.communitypsychiatry.com/home.html 6) Comprehensive Psychiatric ServiceProvides medication management and may have some availability for supportive therapy. (Clinics have psychiatrists in office only so psychotherapy services may be more limited.) Locations in San Francisco, Peninsula, East Bay, San Jose and Fairfield. Please visit the website (see below) to obtain the phone numbers for each office location to make a new referral. You may also call the central answering service at (925) 944-9711 for help.http://www.psych-doctor.com 7) Foresight Mental HealthProvides mostly outpatient psychotherapy with some medication management. Locations across bay area. https://www.foresightmentalhealth.com/Patients can either book initial consultation online or call (888) 588-8995 8. Prodigy Psychiatry group 510-875-7721322 Piercy Road, Suite A, San Jose 95138 County Mental Health Access Services If patients have Medi-cal, and wish to seek therapy and/or other medication services, they will need to access the county which accepts payment/coverage via Medi-cal. Please have the patient contact their county of residence Mental Health Access line for referral assistance. Below are multiple mh access lines in the larger bay area. However, there are mental health access lines for each respective county in the state of California. If you are outside of the bay area, please search for the affiliated county mental health access line via Internet search or call the respective county's 2-1-1 essential community service/United Way hotline. Most access hotlines, and 2-1-1, are available 24/7. San Francisco 1.800.750.2727 or 415.255.3737 or 1.888.246.3333 Alameda 1-800-491-9099 Contra Costa 1-888-678-727 Marin (888) 818-1115 Sonoma (707) 565-6900 or (800) 870-8786 Solano (800) 547-0495 San Mateo (800) 686-0101 Santa Clara 1 (800) 704-0900 Telehealth Platforms for Therapy and Mental Health Services There are multiple telehealth platforms now offering therapy services with the above listed therapy and medication management services. These platforms vary in methods of payment including: self payment at varying ranges, subscription payments, coverage via health insurance, and/or EAPs (employee assistance programs). For details please review each respective service's websites and contact the service directly with questions/for more information. Please note services marked with an asterisk* may also offer medication assessment and management services via licensed psychiatrists and nurse practitioners in addition to psychotherapy services. 1) Better Helphttps://www.betterhelp.com/ 2) Talk Space*https://www.talkspace.com/Has some insurance coverages, in particular cigna and some UHC/optum plans 3) Cerebralhttps://getcerebral.com/ 4) Reflect*https://www.joinreflect.com/ 5) Two Chairs (also has some in person services available)https://www.twochairs.com/ 6) Done.Provides assessment and medication management specifically for persons diagnosed with and seeking treatment services for ADHD. Services are available on line and some services are available in person in select nationwide locations (San Diego, LA, Bay Area, Austin TX, NYC). Appears service may specific to medication management of ADHD only and specifically.https://www.donefirst.com/ \n", + "----------------------------------------\n", + "2025-06-17 14:12:27,472 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:27,472 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:27,473 - ✅ similarity: 0.4243\n", + "2025-06-17 14:12:27,473 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : I know that I need to come in to have a routine ck and blood work. I will schedule that today. I wanted a referral to a urologist. I have been seeing Michael Nickas. I highly suspect that I need a penile implant and he said he couldn't remember the last time he did one. Hoping you could refer me to someone who did the procedure more routinely. Thank you.\n", + "2025-06-17 14:12:27,473 - Provider's response to this similar message: Hello Stephen,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Xu) and I will be responding to your message today.I recommend you see Stanford Urology for an evaluation. I will place the referral for you. Regards,Corina Scheel Clark, PA\n", + "2025-06-17 14:12:27,474 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:27,478 - Thread ID: 253440374\n", + "--------------------------------------------------------------------------------\n", + "idx: 107446\n", + "Subject: RE:RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "ok. Thx\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 107445\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have scheduled the urology appt.But, have another question.I have scheduled the routine check up appt with an associate of Dr Xu. I am conused in that I mentioned that I thought an ultrasound on my liver might be prescribed at that appointment. Then, I thought someone called to schedule it before the March visit. I can't find a record of that so I am wondering if I just dreamt that or if I should be making that appointment for the liver ultrasound.Thank you.Stephen Voyne\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "Hello Stephen S Voyne Your message has been received and reviewed. I do not see any record of you needing to schedule an ultrasound. Best Regards, Veronica Villanueva, MA\n", + "----------------------------------------\n", + "idx: 107444\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I know that I need to come in to have a routine ck and blood work. I will schedule that today. I wanted a referral to a urologist. I have been seeing Michael Nickas. I highly suspect that I need a penile implant and he said he couldn't remember the last time he did one. Hoping you could refer me to someone who did the procedure more routinely. Thank you.\n", + "----------------------------------------\n", + "Provider Response by XU, LING:\n", + "Hello Stephen,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Xu) and I will be responding to your message today.I recommend you see Stanford Urology for an evaluation. I will place the referral for you. Regards,Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "2025-06-17 14:12:27,479 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:27,480 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:27,480 - ✅ similarity: 0.4226\n", + "2025-06-17 14:12:27,480 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Dear Dr. Xu I met with Dr. Bao yesterday to get a second opinion to help me to decide my next breast cancer treatment plan. Dr. Hom suggests mastectomy + breast reconstruction. We also explore other options in the meantime. It's a hard decision that's why we went to Dr. Bao to get a second opinion. Dr. Bao already sent message regarding the tests she'd like to do and layout the treatmentplan she envision. One thing I'd like to clarify is that Dr. Bao is working on the second opinion task. There is no change to my current care team (Dr. Xu, Dr. Hom, and Dr. Joshi)..Any comments or suggestions are welcomed.Sincerely,Kueiying Lee\n", + "2025-06-17 14:12:27,481 - Provider's response to this similar message: Dear Kueiying,Thank you for updating me on your recent visit with Dr. Bao. It's completely understandable that you would seek a second opinion for such an important decision. I'm glad to hear that you are exploring all your options.It's good to know that Dr. Bao is working on the second opinion and that your current care team remains unchanged. I trust Dr. Hom and Dr. Joshi will continue to provide you with excellent care. If you have any specific questions or need further clarification on the treatment plans, please feel free to reach out. Remember, you can always schedule an appointment through the Stanford MyHealth app if you need to discuss anything in more detail.Best regards,Ling Xu, MD\n", + "2025-06-17 14:12:27,481 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:27,482 - Thread ID: 249937594\n", + "--------------------------------------------------------------------------------\n", + "idx: 274924\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Xu I met with Dr. Bao yesterday to get a second opinion to help me to decide my next breast cancer treatment plan. Dr. Hom suggests mastectomy + breast reconstruction. We also explore other options in the meantime. It's a hard decision that's why we went to Dr. Bao to get a second opinion. Dr. Bao already sent message regarding the tests she'd like to do and layout the treatmentplan she envision. One thing I'd like to clarify is that Dr. Bao is working on the second opinion task. There is no change to my current care team (Dr. Xu, Dr. Hom, and Dr. Joshi)..Any comments or suggestions are welcomed.Sincerely,Kueiying Lee\n", + "----------------------------------------\n", + "Provider Response by XU, LING:\n", + "Dear Kueiying,Thank you for updating me on your recent visit with Dr. Bao. It's completely understandable that you would seek a second opinion for such an important decision. I'm glad to hear that you are exploring all your options.It's good to know that Dr. Bao is working on the second opinion and that your current care team remains unchanged. I trust Dr. Hom and Dr. Joshi will continue to provide you with excellent care. If you have any specific questions or need further clarification on the treatment plans, please feel free to reach out. Remember, you can always schedule an appointment through the Stanford MyHealth app if you need to discuss anything in more detail.Best regards,Ling Xu, MD\n", + "----------------------------------------\n", + "2025-06-17 14:12:27,483 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:27,483 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:27,483 - ✅ similarity: 0.3528\n", + "2025-06-17 14:12:27,484 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Dr. Xu: I have a couple of questions: if the tests have determined that the cause of my kidney issue is a blocked prostate, do I continue to take the Allopurinol that you prescribed? I have made an appointment with Dr. Nickas which is scheduled for Feb 3, 2025. When you advised me to have an ultrasound done, your second email indicated that I needed to see a kidney clinic is that still the case? I haven’t yet scheduled an appointment.\n", + "2025-06-17 14:12:27,484 - Provider's response to this similar message: Hi Richard,it is still important to continue taking the Allopurinol as prescribed to manage your gout and uric acid levels. Regarding the ultrasound and the kidney clinic, it is still advisable to follow through with the kidney clinic appointment to ensure comprehensive evaluation and management of your kidney health. Please schedule an appointment with the kidney clinic at your earliest convenience.If you have any further questions or need assistance, feel free to reach out.Best regards,Ling Xu, MD\n", + "2025-06-17 14:12:27,486 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:27,487 - Thread ID: 252320999\n", + "--------------------------------------------------------------------------------\n", + "idx: 153309\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Xu: I have a couple of questions: if the tests have determined that the cause of my kidney issue is a blocked prostate, do I continue to take the Allopurinol that you prescribed? I have made an appointment with Dr. Nickas which is scheduled for Feb 3, 2025. When you advised me to have an ultrasound done, your second email indicated that I needed to see a kidney clinic is that still the case? I haven’t yet scheduled an appointment.\n", + "----------------------------------------\n", + "Provider Response by XU, LING:\n", + "Hi Richard,it is still important to continue taking the Allopurinol as prescribed to manage your gout and uric acid levels. Regarding the ultrasound and the kidney clinic, it is still advisable to follow through with the kidney clinic appointment to ensure comprehensive evaluation and management of your kidney health. Please schedule an appointment with the kidney clinic at your earliest convenience.If you have any further questions or need assistance, feel free to reach out.Best regards,Ling Xu, MD\n", + "----------------------------------------\n", + "2025-06-17 14:12:27,488 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:27,488 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:27,489 - ✅ similarity: 0.3394\n", + "2025-06-17 14:12:27,489 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Hi Dr. Xu,The last time I saw you in your office, you prescribed me some liquid medication for my eczema on my face but I’d like a cream alternative. Thank you. \n", + "2025-06-17 14:12:27,490 - Provider's response to this similar message: Hello, my name is Zack O'Leary, PA-C. I'm helping your primary care provider (Dr. Xu) with their inbox, and I wanted to make sure you got a quick reply.I just wanted to confirm, this medication was previously prescribed in that form so you can also apply it to your scalp. Have scalp issues resolved? Or would you like a cream for your face in addition to the solution for your scalp?\n", + "2025-06-17 14:12:27,490 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:27,493 - Thread ID: 250893050\n", + "--------------------------------------------------------------------------------\n", + "idx: 226566\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi thank you!I would like the cream for my face because thats the one I asked for and it helped me a lot. \n", + "----------------------------------------\n", + "Provider Response by O'LEARY, ZACHARY:\n", + "I just updated your prescription.\n", + "----------------------------------------\n", + "idx: 226565\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Xu,The last time I saw you in your office, you prescribed me some liquid medication for my eczema on my face but I’d like a cream alternative. Thank you. \n", + "----------------------------------------\n", + "Provider Response by XU, LING:\n", + "Hello, my name is Zack O'Leary, PA-C. I'm helping your primary care provider (Dr. Xu) with their inbox, and I wanted to make sure you got a quick reply.I just wanted to confirm, this medication was previously prescribed in that form so you can also apply it to your scalp. Have scalp issues resolved? Or would you like a cream for your face in addition to the solution for your scalp?\n", + "----------------------------------------\n", + "2025-06-17 14:12:27,495 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:28,175 - Original Message:\n", + "2025-06-17 14:12:28,176 - original_query_message: Hi Dr. Tim, I hope you are doing well. I received a text message from Quest that said “Your healthcare provider ordered your testing.” Is this true. My next appointment with you is June 3, 2025. Kind regards,Diana Kay\n", + "2025-06-17 14:12:29,557 - Query Parameters:\n", + "2025-06-17 14:12:29,558 - query_message: Hi Dr. Tim, I hope this message finds you well. I wanted to check in about something a bit confusing—I got an alert from Quest Diagnostics today saying my doctor requested some lab work. I wasn’t expecting this and don’t remember discussing any new tests at my last visit (which was a while ago). I’ve been feeling more tired than usual lately and have had some headaches, so maybe it’s related, but I wanted to make sure this was actually ordered by you and find out what it’s for. My next appointment isn’t until next year, so I just wanted to double-check before doing anything. Thanks for your help!\n", + "2025-06-17 14:12:29,559 - receiver: SMP PRIMARYCAREEV CARE TEAM POOL\n", + "2025-06-17 14:12:29,559 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:12:29,560 - specialty: Primary Care\n", + "2025-06-17 14:12:30,252 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:30,253 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:30,253 - ✅ similarity: 0.7980\n", + "2025-06-17 14:12:30,253 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Hi Dr. Tim, I hope you are doing well. I received a text message from Quest that said “Your healthcare provider ordered your testing.” Is this true. My next appointment with you is June 3, 2025. Kind regards,Diana Kay\n", + "2025-06-17 14:12:30,254 - Provider's response to this similar message: Hello Diana, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. I am helping Dr. Tim with her messages today.I see that Dr. Dolezol may have sent some orders to Quest yesterday, but then changed it to the Emeryville lab. That is probably why you got a notification from Quest. I do not see anything ordered by Dr. Tim at this time. No need for you to do anything on your end!Julia Fellows \n", + "2025-06-17 14:12:30,256 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:30,258 - Thread ID: 255787018\n", + "--------------------------------------------------------------------------------\n", + "idx: 1945\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Julia for the fast response. I hope you have a nice day.Kind regards,Diana Kay\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 1944\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tim, I hope you are doing well. I received a text message from Quest that said “Your healthcare provider ordered your testing.” Is this true. My next appointment with you is June 3, 2025. Kind regards,Diana Kay\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hello Diana, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. I am helping Dr. Tim with her messages today.I see that Dr. Dolezol may have sent some orders to Quest yesterday, but then changed it to the Emeryville lab. That is probably why you got a notification from Quest. I do not see anything ordered by Dr. Tim at this time. No need for you to do anything on your end!Julia Fellows \n", + "----------------------------------------\n", + "2025-06-17 14:12:30,259 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:30,260 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:30,260 - ✅ similarity: 0.7537\n", + "2025-06-17 14:12:30,261 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Hi Dr Tim,At my visit on 8/15/24 you told me to get labs in 3 months, before my visit on 11/25 and order would be sent to Labcorp electronically. Labcorp says they do not have any orders for me. I called your office yesterday, but am following up because I still don’t see a lab order in MyHealth. I have an appointment at LabCorp tomorrow morning. Please advise.Thank you.Tina\n", + "2025-06-17 14:12:30,261 - Provider's response to this similar message: Hi Tina, This is Samantha Spinner PA responding on behalf of your PCP. We did receive your call, thank you for following up. I am not sure which labs that Dr. Tim wanted to recheck, so I will defer to her on this. Please allow a few days for a response. Take care, Samantha Spinner, PA\n", + "2025-06-17 14:12:30,262 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:30,264 - Thread ID: 250661778\n", + "--------------------------------------------------------------------------------\n", + "idx: 238564\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Tina, This is Samantha Spinner PA responding on behalf of your PCP. We did receive your call, thank you for following up. I am not sure which labs that Dr. Tim wanted to recheck, so I will defer to her on this. Please allow a few days for a response. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "No response\n", + "----------------------------------------\n", + "idx: 238563\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Tim,At my visit on 8/15/24 you told me to get labs in 3 months, before my visit on 11/25 and order would be sent to Labcorp electronically. Labcorp says they do not have any orders for me. I called your office yesterday, but am following up because I still don’t see a lab order in MyHealth. I have an appointment at LabCorp tomorrow morning. Please advise.Thank you.Tina\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Tina, This is Samantha Spinner PA responding on behalf of your PCP. We did receive your call, thank you for following up. I am not sure which labs that Dr. Tim wanted to recheck, so I will defer to her on this. Please allow a few days for a response. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "2025-06-17 14:12:30,265 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:30,265 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:30,266 - ✅ similarity: 0.7216\n", + "2025-06-17 14:12:30,266 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Hi Dr. Tim At my last appointment with you, I thought you wanted me to have lab tests some time at the end of October. When I called to arrange an appointment time at the Stanford facility in Castro Valley, I was told that the labs ordered was for my next appointment in April, 2025. Do you want labs drawn this month? Also, can you specify Lab Corp instead of Quest?Thank you.Judy\n", + "2025-06-17 14:12:30,267 - Provider's response to this similar message: Hi Judy, This is Samantha Spinner PA responding on behalf of your PCP. It looks like Dr. Tim ordered 2 sets of labs, one set to be completed now and the other to be completed prior to your next appointment in April. Our team changed the lab orders to be done at LabCorp per your request, but I just want to confirm if that is what you want? I see that you still have an appointment at the Stanford Castro Valley facility tomorrow. Please let us know. Take care, Samantha Spinner, PA\n", + "2025-06-17 14:12:30,267 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:30,269 - Thread ID: 249075581\n", + "--------------------------------------------------------------------------------\n", + "idx: 319101\n", + "Subject: RE:Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Samantha,Yes, I would like my labs sent to labCorp. Thank you for following up.Judy\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Thanks for confirming. They have your lab order on file. \n", + "----------------------------------------\n", + "idx: 319100\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tim At my last appointment with you, I thought you wanted me to have lab tests some time at the end of October. When I called to arrange an appointment time at the Stanford facility in Castro Valley, I was told that the labs ordered was for my next appointment in April, 2025. Do you want labs drawn this month? Also, can you specify Lab Corp instead of Quest?Thank you.Judy\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Judy, This is Samantha Spinner PA responding on behalf of your PCP. It looks like Dr. Tim ordered 2 sets of labs, one set to be completed now and the other to be completed prior to your next appointment in April. Our team changed the lab orders to be done at LabCorp per your request, but I just want to confirm if that is what you want? I see that you still have an appointment at the Stanford Castro Valley facility tomorrow. Please let us know. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "2025-06-17 14:12:30,269 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:30,270 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:30,270 - ✅ similarity: 0.7069\n", + "2025-06-17 14:12:30,270 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Good Morning Dr. Nickles,Can your team orders blood tests for me at Quest Diagnostics (2999 Regent in Berkeley)?Make it a great day.Take Care,Mark Drexler\n", + "2025-06-17 14:12:30,271 - Provider's response to this similar message: Hello Mark, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. I am helping Dr. Nickles with his messages today. Dr. Nickles already placed orders for repeat tests at Quest at your October visit. He intended for you to do them around 3/4/25, or 4 months after your last round. I have attached a copy of the orders to this message for you as well.Julia Fellows\n", + "2025-06-17 14:12:30,271 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:30,273 - Thread ID: 255670046\n", + "--------------------------------------------------------------------------------\n", + "idx: 5637\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Morning Dr. Nickles,Can your team orders blood tests for me at Quest Diagnostics (2999 Regent in Berkeley)?Make it a great day.Take Care,Mark Drexler\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hello Mark, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. I am helping Dr. Nickles with his messages today. Dr. Nickles already placed orders for repeat tests at Quest at your October visit. He intended for you to do them around 3/4/25, or 4 months after your last round. I have attached a copy of the orders to this message for you as well.Julia Fellows\n", + "----------------------------------------\n", + "2025-06-17 14:12:30,274 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:30,274 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:30,275 - ✅ similarity: 0.6991\n", + "2025-06-17 14:12:30,275 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : Dr. Tim, I received an email from Quest on 10/24 that a test has been ordered by a provider. Assuming it was you. If so, do I need to fast for this test? Thank you, Carolyn Hayashida\n", + "2025-06-17 14:12:30,275 - Provider's response to this similar message: Hi Carolyn, This is Samantha Spinner PA responding on behalf of your PCP. I see that Dr. Tim did place lab orders for you at your recent annual wellness visit in September, but these are meant to be completed in ~March 2025 (6 months from your recent visit). Please put a reminder in your calendar to get these labs done at that time. These are meant to be done fasting for at least 8-10 hours. Take care, Samantha Spinner, PA\n", + "2025-06-17 14:12:30,276 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:30,278 - Thread ID: 249581113\n", + "--------------------------------------------------------------------------------\n", + "idx: 293951\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Tim, I received an email from Quest on 10/24 that a test has been ordered by a provider. Assuming it was you. If so, do I need to fast for this test? Thank you, Carolyn Hayashida\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Carolyn, This is Samantha Spinner PA responding on behalf of your PCP. I see that Dr. Tim did place lab orders for you at your recent annual wellness visit in September, but these are meant to be completed in ~March 2025 (6 months from your recent visit). Please put a reminder in your calendar to get these labs done at that time. These are meant to be done fasting for at least 8-10 hours. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "2025-06-17 14:12:30,278 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:30,698 - Original Message:\n", + "2025-06-17 14:12:30,699 - original_query_message: Hello, I am trying to renew the prescription prednisone for my face I have not seen a dermatologist yet my face still itches and it was well with the prescription \n", + "2025-06-17 14:12:32,194 - Query Parameters:\n", + "2025-06-17 14:12:32,196 - query_message: Hi there, I’ve been struggling with a stubborn rash on my face that’s really red and super itchy—it sometimes even gets a bit swollen. My family doctor gave me a short course of prednisone a while back, and that really calmed things down, but now it’s flaring up again. I haven’t had a chance to get in with a dermatologist yet, but I’m wondering if it would be safe to try prednisone again or if there’s something else you’d recommend until I can see a specialist? It's really starting to affect my confidence at work, so any advice would be appreciated!\n", + "2025-06-17 14:12:32,196 - receiver: ALFP CARE TEAM POOL\n", + "2025-06-17 14:12:32,197 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:12:32,198 - specialty: Family Medicine\n", + "2025-06-17 14:12:33,615 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:33,615 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:33,616 - ✅ similarity: 0.6858\n", + "2025-06-17 14:12:33,617 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I am trying to renew the prescription prednisone for my face I have not seen a dermatologist yet my face still itches and it was well with the prescription \n", + "2025-06-17 14:12:33,619 - Provider's response to this similar message: Hello, Prednisone is not recommended for longer periods of time, when is your appt with the dermatologist?Nadia Hernandez, MA, 10/21/2024, 2:04 PM\n", + "2025-06-17 14:12:33,620 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:33,629 - Thread ID: 248474806\n", + "--------------------------------------------------------------------------------\n", + "idx: 349364\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No one has called me for an appt yet I was taking it as needed cause I felt the rash coming back once a week usually the beginning of the weeks\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Please give them a call.Morales, Anjali Varma, MD 2420 Samaritan Dr San Jose CA 95124 Phone: (408)369-5600 Fax: 408-369-5625 Nadia Hernandez, MA, 10/21/2024, 2:17 PM\n", + "----------------------------------------\n", + "idx: 349363\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I am trying to renew the prescription prednisone for my face I have not seen a dermatologist yet my face still itches and it was well with the prescription \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello, Prednisone is not recommended for longer periods of time, when is your appt with the dermatologist?Nadia Hernandez, MA, 10/21/2024, 2:04 PM\n", + "----------------------------------------\n", + "2025-06-17 14:12:33,635 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:33,636 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:33,636 - ✅ similarity: 0.6206\n", + "2025-06-17 14:12:33,637 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Kindal,I’ve been suffering from rashes around back of my neck for around a month. Now the symptoms also spread to my right and right shoulder and is only getting worse. The areas are itchy and burns all the time, and there’re goose bumps showing up. Should I schedule an appointment with you? Or do you think it’s better for you to refer me to see a dermatologist? Thank you for your time!Best,Amanda\n", + "2025-06-17 14:12:33,637 - Provider's response to this similar message: Hi Amanda,Please call and schedule a appointment to see Kindal or any other MD here in the office.Thank youBrenda / MA\n", + "2025-06-17 14:12:33,638 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:33,706 - Thread ID: 250230497\n", + "--------------------------------------------------------------------------------\n", + "idx: 260138\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, The earliest appointment I could get is in December, is it possible to schedule an earlier date?Thank you.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "You can call the front desk and ask to schedule with Dr Ferjani.\n", + "----------------------------------------\n", + "idx: 260137\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Kindal,I’ve been suffering from rashes around back of my neck for around a month. Now the symptoms also spread to my right and right shoulder and is only getting worse. The areas are itchy and burns all the time, and there’re goose bumps showing up. Should I schedule an appointment with you? Or do you think it’s better for you to refer me to see a dermatologist? Thank you for your time!Best,Amanda\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hi Amanda,Please call and schedule a appointment to see Kindal or any other MD here in the office.Thank youBrenda / MA\n", + "----------------------------------------\n", + "2025-06-17 14:12:33,716 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:33,717 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:33,717 - ✅ similarity: 0.5435\n", + "2025-06-17 14:12:33,717 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Kaushal,I had an appointment with my oncologist this morning and he and I also discussed my skin care rashes. He wants me to see a dermatologist as he is concerned it may be skin cancer. Please provide me with a referral so I can schedule an appointment with a dermatologist asap please. My care team are all a part of the Stanford network. Please let me know soon. Thank you.\n", + "2025-06-17 14:12:33,718 - Provider's response to this similar message: Good morning, An appointment is required in order to place a new referral. Please contact our appointment line at 408-997-9155 option 1 to facilitate an appointment for a referral request. This can be scheduled at your convenience as a video visit or in person appointment. In the case that Dr. Kaushal has limited availability, you are welcome to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.Best regards,Alondra Silva, MA, 12/11/2024, 8:31 AM\n", + "2025-06-17 14:12:33,759 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:33,764 - Thread ID: 252633775\n", + "--------------------------------------------------------------------------------\n", + "idx: 139349\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Myhanh Nguyen on behalf of Bay NguyenI had a video visit today and the doctor said the referral was placed. What is the name of the dermatology clinic and name of the doctor that the referral had been placed? Please advise as I want to follow up to schedule an appointment. Thank you.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning, Mr. Nguyen has been referred to:Mak-Fung, Michele Wing-Sze, MD 2420 Samaritan Dr San Jose CA 95124 Phone: (408)369-5600 Fax: 408-369-5625 Please see attached for a copy of his referral form. Best regards,Alondra Silva, MA, 12/16/2024, 8:08 AM\n", + "----------------------------------------\n", + "idx: 139348\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Kaushal,I had an appointment with my oncologist this morning and he and I also discussed my skin care rashes. He wants me to see a dermatologist as he is concerned it may be skin cancer. Please provide me with a referral so I can schedule an appointment with a dermatologist asap please. My care team are all a part of the Stanford network. Please let me know soon. Thank you.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning, An appointment is required in order to place a new referral. Please contact our appointment line at 408-997-9155 option 1 to facilitate an appointment for a referral request. This can be scheduled at your convenience as a video visit or in person appointment. In the case that Dr. Kaushal has limited availability, you are welcome to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.Best regards,Alondra Silva, MA, 12/11/2024, 8:31 AM\n", + "----------------------------------------\n", + "2025-06-17 14:12:33,766 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:33,766 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:33,767 - ✅ similarity: 0.5300\n", + "2025-06-17 14:12:33,768 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : No one has called me for an appt yet I was taking it as needed cause I felt the rash coming back once a week usually the beginning of the weeks\n", + "2025-06-17 14:12:33,769 - Provider's response to this similar message: Please give them a call.Morales, Anjali Varma, MD 2420 Samaritan Dr San Jose CA 95124 Phone: (408)369-5600 Fax: 408-369-5625 Nadia Hernandez, MA, 10/21/2024, 2:17 PM\n", + "2025-06-17 14:12:33,769 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:33,771 - Thread ID: 248474806\n", + "--------------------------------------------------------------------------------\n", + "idx: 349364\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No one has called me for an appt yet I was taking it as needed cause I felt the rash coming back once a week usually the beginning of the weeks\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Please give them a call.Morales, Anjali Varma, MD 2420 Samaritan Dr San Jose CA 95124 Phone: (408)369-5600 Fax: 408-369-5625 Nadia Hernandez, MA, 10/21/2024, 2:17 PM\n", + "----------------------------------------\n", + "idx: 349363\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I am trying to renew the prescription prednisone for my face I have not seen a dermatologist yet my face still itches and it was well with the prescription \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello, Prednisone is not recommended for longer periods of time, when is your appt with the dermatologist?Nadia Hernandez, MA, 10/21/2024, 2:04 PM\n", + "----------------------------------------\n", + "2025-06-17 14:12:33,771 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:33,772 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:33,772 - ✅ similarity: 0.5221\n", + "2025-06-17 14:12:33,772 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hey Dr. Ilic,I’ve noticed that my knuckles have been swelling on and off, which didn’t really bother me much, but then this year I developed an eczema-like rash on the backs of my knees. This hasn’t happened since I was a little kid. I haven’t changed lotions, laundry detergent, anything. I was hoping you could provide some insight.Thanks,Rosalie\n", + "2025-06-17 14:12:33,773 - Provider's response to this similar message: Hello,Per Dr. Ilic please schedule an appointmentScheduling desk 408-997-9155 OPTION 1Thank you\n", + "2025-06-17 14:12:33,773 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:33,782 - Thread ID: 248399623\n", + "--------------------------------------------------------------------------------\n", + "idx: 353716\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey Dr. Ilic,I’ve noticed that my knuckles have been swelling on and off, which didn’t really bother me much, but then this year I developed an eczema-like rash on the backs of my knees. This hasn’t happened since I was a little kid. I haven’t changed lotions, laundry detergent, anything. I was hoping you could provide some insight.Thanks,Rosalie\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello,Per Dr. Ilic please schedule an appointmentScheduling desk 408-997-9155 OPTION 1Thank you\n", + "----------------------------------------\n", + "2025-06-17 14:12:33,798 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:34,154 - Original Message:\n", + "2025-06-17 14:12:34,155 - original_query_message: Hi,I have an apt with Dr Sattler on Monday for my annual physical. I also have to come to Stanford Tuesday for my Botox with neurology. Any chance Dr Sattler has availability Tuesday around 9:15 so I can have the appointments back to back? I live in SF and would live to avoid an extra commute!\n", + "2025-06-17 14:12:35,495 - Query Parameters:\n", + "2025-06-17 14:12:35,495 - query_message: Hi there, I’m scheduled for my yearly check-up with Dr. Sattler this coming Monday, but I actually also have a neurology appointment at Stanford early Tuesday morning for my Dystonia treatments (I usually get Xeomin injections). I live in Marin, so driving down twice in two days is a bit of a trek for me. Is there any possibility Dr. Sattler might have a slot Tuesday morning, maybe around the same time as my neurology visit, so I can take care of both in one trip? It’d really help, especially since I’ve been dealing with more frequent muscle tightness lately and I’d like to discuss that too. Thanks so much!\n", + "2025-06-17 14:12:35,496 - receiver: SFM TASK POOL POD 2\n", + "2025-06-17 14:12:35,497 - department: STANFORD FAMILY MEDICINE\n", + "2025-06-17 14:12:35,498 - specialty: Primary Care\n", + "2025-06-17 14:12:35,856 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:35,856 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:35,857 - ✅ similarity: 0.8981\n", + "2025-06-17 14:12:35,857 - Sender: PULIDO, KAREN [ S0323752] -> the retrieved similar message : Hi,I have an apt with Dr Sattler on Monday for my annual physical. I also have to come to Stanford Tuesday for my Botox with neurology. Any chance Dr Sattler has availability Tuesday around 9:15 so I can have the appointments back to back? I live in SF and would live to avoid an extra commute!\n", + "2025-06-17 14:12:35,858 - Provider's response to this similar message: Leslie,Dr.Sattler, Amelia Louise is only in clinic Monday and Thursdays. Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Hepatitis B Screening Discussion Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:12:35,859 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:35,863 - Thread ID: 249719690\n", + "--------------------------------------------------------------------------------\n", + "idx: 285766\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I have an apt with Dr Sattler on Monday for my annual physical. I also have to come to Stanford Tuesday for my Botox with neurology. Any chance Dr Sattler has availability Tuesday around 9:15 so I can have the appointments back to back? I live in SF and would live to avoid an extra commute!\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Leslie,Dr.Sattler, Amelia Louise is only in clinic Monday and Thursdays. Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Hepatitis B Screening Discussion Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:12:35,863 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:35,864 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:35,865 - ✅ similarity: 0.7249\n", + "2025-06-17 14:12:35,865 - Sender: AGUILAR, SANDRA [ S0183817] -> the retrieved similar message : Thanks! I actually can’t make that time, and I’d like to see Dr Sattler if possible. Does she have any appointments the week of 1/6?\n", + "2025-06-17 14:12:35,866 - Provider's response to this similar message: Molly,Dr.Sattler is out of the office until end of January. Ok to schedule you under her next available in person visit 3/10/2025 at 8:15 AM.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need It.For urgent issues, call 650-498-9000,24 hours/day assistance. \n", + "2025-06-17 14:12:35,866 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:35,869 - Thread ID: 254409648\n", + "--------------------------------------------------------------------------------\n", + "idx: 63983\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks for letting me know! I’d like to see someone sooner, is the 1/2 appointment at 12:30 still available?\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Molly,You are scheduled for 1/2/2025 @12:30pm with Dr.Braunschweig.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. **Please note that Stanford Family Medicine will be observing the upcoming holiday, we will be closed on Tuesday 12/31/24 11:00am-7:00pm and all day Wednesday 1/1/2025. Messages will be addressed 24-48 hours after we return to clinic on Thursday, 1/2/2025. You can still reach our Clinical Advice Service at 650-498-9000 for urgent needs.**\n", + "----------------------------------------\n", + "idx: 63982\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks! I actually can’t make that time, and I’d like to see Dr Sattler if possible. Does she have any appointments the week of 1/6?\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Molly,Dr.Sattler is out of the office until end of January. Ok to schedule you under her next available in person visit 3/10/2025 at 8:15 AM.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need It.For urgent issues, call 650-498-9000,24 hours/day assistance. \n", + "----------------------------------------\n", + "idx: 63981\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Sattler,Two questions:1. My throat has been irritated for some time now, since a bad cough I had in March-ish. I was wondering if you could take a look at it, or refer me to an ENT or anyone else you think I should see?2. Is it possible to change my pharmacy to the Safeway on union street in Los Gatos?Thanks!\n", + "----------------------------------------\n", + "Provider Response by SFM RNC POOL:\n", + "Dear Molly Davies,My name is Melody, Nurse Coordinator for Stanford Family Medicine.Thank you for reaching out. Dr. Sattler is currently on Sabbatical leave. 1.I'm sorry to hear about your throat irritation. I recommend scheduling an appointment so the provider can take a closer look and determine if a referral to an ENT is necessary. I've gone ahead and scheduled you an appointment with Dr. Braunschweig on 01/02 Thursday at 12:30 pm (appointment information is in your MyHealth). Please let us know if this works for you. 2. Your preferred pharmacy has been updated. Please feel free to respond with any additional questions. Thank you for allowing us to partner in your care. Kind regards,Melody Guiang, BSN, RNNurse CoordinatorStanford Health CarePrimary Care/Family Medicine Department211 Quarry Road Palo Alto CA 94304Office Phone #: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. Your message will be addressed by your care team within 2 business days (Monday-Friday except holidays). \n", + "----------------------------------------\n", + "2025-06-17 14:12:35,870 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:35,870 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:35,871 - ✅ similarity: 0.6982\n", + "2025-06-17 14:12:35,871 - Sender: SALANGA, MARIZ [ S0185574] -> the retrieved similar message : Hi Karen,Oh wow! Had no idea I was overdue for these items. I just went to schedule an appointment and the earliest I could find that works with my schedule is March 3! Is there any way to get an earlier appointment? Does Dr. Sattler only work on Mondays and Thursdays? Those were the only days of the week that came up and the earliest that popped up was in February!Thanks,Sonia\n", + "2025-06-17 14:12:35,872 - Provider's response to this similar message: Hi Sonia, I hope this message finds you well. Unfortunately that is the next available appt. Dr. Sattler is completely booked for the rest of the year and yes she's only in clinic Mon and Thursday. Best regards, Kasslen HinPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "2025-06-17 14:12:35,873 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:35,874 - Thread ID: 249769072\n", + "--------------------------------------------------------------------------------\n", + "idx: 283368\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Karen,Oh, I was not aware of that. Thank you for letting me know. I look forward to seeing her on March 3 for the appointment I made.Best,Sonia \n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 283367\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Alright, thank you. I will just have to wait the 4 months then. \n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "I just wanted to make you aware that Dr. Sattler will be on sabbatical leave until March 2025.Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done PAP SMEAR 07/29/2024 COVID-19 Vaccine (5 - 2024-25 season) 09/01/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 283366\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Karen,Oh wow! Had no idea I was overdue for these items. I just went to schedule an appointment and the earliest I could find that works with my schedule is March 3! Is there any way to get an earlier appointment? Does Dr. Sattler only work on Mondays and Thursdays? Those were the only days of the week that came up and the earliest that popped up was in February!Thanks,Sonia\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hi Sonia, I hope this message finds you well. Unfortunately that is the next available appt. Dr. Sattler is completely booked for the rest of the year and yes she's only in clinic Mon and Thursday. Best regards, Kasslen HinPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "----------------------------------------\n", + "idx: 283365\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Sattler,I’m considering having a baby in the next 1-2 years and I was wondering if there is any fertility testing I could get done? (I’m feeling a little nervous about waiting without knowing more about my fertility). If so, do you know if that would be covered my insurance? Thanks for your help,Sonia \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Dear Sonia,You are overdue for a clinic appointment with Dr. Sattler, Amelia Louise. Please call the clinic at (650)498-9000 or use MyHealth to schedule an appointment to further discuss. Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due HEPATITIS C SCREENING Never done Hepatitis B Screening Discussion Never done PAP SMEAR 07/29/2024 COVID-19 Vaccine (5 - 2024-25 season) 09/01/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:12:35,875 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:35,875 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:35,875 - ✅ similarity: 0.6854\n", + "2025-06-17 14:12:35,878 - Sender: ROBLES-MONTANO, VANESSA [ S0201163] -> the retrieved similar message : Dear Vanessa,Thank you for that option. That appointment will not work for us, so I will go ahead and cancel on MyHealth. When do you expect Dr. Sattler to return?Thank you,Joanne\n", + "2025-06-17 14:12:35,878 - Provider's response to this similar message: Joanne, Dr.Sattler, Amelia Louise is out until January 2025. Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due RSV Vaccine (1 - 1-dose 75+ series) Never done Medicare Annual Wellness Visit 07/24/2024 Advance Care Plan Discussion 07/24/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:12:35,878 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:35,880 - Thread ID: 251330270\n", + "--------------------------------------------------------------------------------\n", + "idx: 203681\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Vanessa,Thank you for that option. That appointment will not work for us, so I will go ahead and cancel on MyHealth. When do you expect Dr. Sattler to return?Thank you,Joanne\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Joanne, Dr.Sattler, Amelia Louise is out until January 2025. Best regards, Karen PulidoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due RSV Vaccine (1 - 1-dose 75+ series) Never done Medicare Annual Wellness Visit 07/24/2024 Advance Care Plan Discussion 07/24/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 203680\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Sattler,My mom was admitted to El Camino Hospital from 11/19-11/21 for what doctors think was a “mini stroke”. Are you able to see reports from the hospital? If not, I can send you a summary. My Health indicates your soonest availability is in March. I was hoping we could see you for a follow up visit to talk about meds and prevention measures sooner than that. Please let me know if this is possible. Thank you,Joanne\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hi Joanne,Today was Dr. Sattler's last day in clinic as she is now on sabbatical leave. I can offer you an in person visit with her colleague Constance Huynh, PA on 11/26/24 at 4pm. Please let us know if this date and time works for you.We are able to view the ER records.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due RSV Vaccine (1 - 1-dose 75+ series) Never done Medicare Annual Wellness Visit 07/24/2024 Advance Care Plan Discussion 07/24/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:12:35,880 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:35,881 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:35,881 - ✅ similarity: 0.6823\n", + "2025-06-17 14:12:35,882 - Sender: VERGIL, CAROLINA [ S0210146] -> the retrieved similar message : Hi Dr Sattler!Hope you’re doing well! I wanted to reach out and ask if there’s any chance you have scheduling availability for a physical the week before/during Christmas, since I’ll be visiting home having moved out of state to DC (I realized I had a visit scheduled from earlier for today that I had to “no show” to since I’m out on the East Coast still!)Looking forward to hopefully visiting soon,BestJess\n", + "2025-06-17 14:12:35,882 - Provider's response to this similar message: Hi Jessica SchmittI hope this message finds you well. Unfortunately Dr. Sattler currently has no open slots available and she'll be on Sabbatical starting 12/2/2024 to 1/9/2025. However we can help you schedule with one of our supporting providers. Please let us know if you need assistance in scheduling or you can call 650-498-9000 to schedule at your earliest convenience. Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Hepatitis B Screening Discussion Never done INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (2 - 2024-25 season) 09/01/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:12:35,883 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:35,885 - Thread ID: 251665094\n", + "--------------------------------------------------------------------------------\n", + "idx: 186186\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, Would you like me to schedule you an appointment?Thank You,Karen OpinaldoPractice Care Coordinator IIFamily MedicineP: (650) 498-9000F: (650) 498-7750Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Dear Jessica,We hope this message finds you well. Your labs has been ordered. We wanted to let you know that an invitation to schedule your physical exam has been sent to you via MyHealth. Please check your MyHealth account to view the details and select a convenient time for your appointment.If you have any questions or need assistance, feel free to reach out.Best regards, Karen OpinaldoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 **To Schedule an Appointment from an Invitation**From the MyHealth website: Select \"Appointments\" along the top, then \"Invitations\" along the left side. Next to the invitation from our clinic, click \"Schedule Now.\" From the MyHealth app: Select \"Appointments\" on the left, and look at the top of the screen. Select the invitation from our clinic, then \"Begin Scheduling.\" Follow the prompts, and choose from the appointments available.----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Hepatitis B Screening Discussion Never done INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (2 - 2024-25 season) 09/01/2024 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 186185\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Essie! No worries and hope she enjoys her much deserved time off! Would it be possible to help me order a full set of blood tests then instead that I can take while I’m home if I can stop by a Stanford clinic for a draw? Thanks so much! Best,Jess\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hello, Would you like me to schedule you an appointment?Thank You,Karen OpinaldoPractice Care Coordinator IIFamily MedicineP: (650) 498-9000F: (650) 498-7750Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into Myhealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. \n", + "----------------------------------------\n", + "idx: 186184\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Sattler!Hope you’re doing well! I wanted to reach out and ask if there’s any chance you have scheduling availability for a physical the week before/during Christmas, since I’ll be visiting home having moved out of state to DC (I realized I had a visit scheduled from earlier for today that I had to “no show” to since I’m out on the East Coast still!)Looking forward to hopefully visiting soon,BestJess\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 2:\n", + "Hi Jessica SchmittI hope this message finds you well. Unfortunately Dr. Sattler currently has no open slots available and she'll be on Sabbatical starting 12/2/2024 to 1/9/2025. However we can help you schedule with one of our supporting providers. Please let us know if you need assistance in scheduling or you can call 650-498-9000 to schedule at your earliest convenience. Best regards, Essie Rebecca BarreraPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Hepatitis B Screening Discussion Never done INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (2 - 2024-25 season) 09/01/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:12:35,885 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:36,384 - Original Message:\n", + "2025-06-17 14:12:36,395 - original_query_message: I am coming in next Monday (1/13) to have some medical forms completed. The forms request results of a recent TB test. Should I have this test before I am seen?Thank you.\n", + "2025-06-17 14:12:37,952 - Query Parameters:\n", + "2025-06-17 14:12:37,953 - query_message: Hi there! I have an appointment scheduled for next week (Monday, the 13th) to get some paperwork filled out for my new job. The forms are asking for info about a tuberculosis screening, but I haven’t had one done in over a year. I just wanted to check—should I get the TB test taken care of before my visit, or can that be done during the appointment? Also, I’ve had a mild cough for a couple weeks but no fever or chills—should I mention that, or will it complicate things with the TB paperwork? Thanks for your help!\n", + "2025-06-17 14:12:37,953 - receiver: AMGP MYHEALTH POOL\n", + "2025-06-17 14:12:37,954 - department: FAMILY MEDICINE AMG PINOLE\n", + "2025-06-17 14:12:37,956 - specialty: Family Medicine\n", + "2025-06-17 14:12:38,476 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:38,476 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:38,477 - ✅ similarity: 0.8425\n", + "2025-06-17 14:12:38,479 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I am coming in next Monday (1/13) to have some medical forms completed. The forms request results of a recent TB test. Should I have this test before I am seen?Thank you.\n", + "2025-06-17 14:12:38,481 - Provider's response to this similar message: Hello Susan, The appointment will need to take place prior to any labs being ordered. Thank you, Crystal MA \n", + "2025-06-17 14:12:38,481 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:38,491 - Thread ID: 254945034\n", + "--------------------------------------------------------------------------------\n", + "idx: 36453\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am coming in next Monday (1/13) to have some medical forms completed. The forms request results of a recent TB test. Should I have this test before I am seen?Thank you.\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Susan, The appointment will need to take place prior to any labs being ordered. Thank you, Crystal MA \n", + "----------------------------------------\n", + "2025-06-17 14:12:38,491 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:38,492 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:38,492 - ✅ similarity: 0.6943\n", + "2025-06-17 14:12:38,493 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Aloha Dr. Ikeda I got x-ray results but I didn’t take a TB blood test since there was no order for blood TB test. I need a clearance for the TB test and would you be able to write a clearance note for TB? I can pick up the note on the way to work when it is available. Thank you so much for your excellent care for my well-being. Have a great day! Minako\n", + "2025-06-17 14:12:38,494 - Provider's response to this similar message: Hello Minako,Lab work for TB was sent to quest I have attached the lab order as well. Alliance Medical Group Pinole2160 Appian WaySte 200Pinole CA 94564-2524Phone: 510-724-9110 Fax: 866-551-9877 LAB ACCOUNTS:QUEST #: 60004325 LABCORP #: 04368600 Patient Info Tsukahara,MinakoMRN: 87102414 Requisition Number: G637721778BLD 1003 Promenade StHercules CA 94547-2705 DOB: 1/23/1973 Phone: 808-777-0163 Sex: F Electronically Signed/Authorized by: Smith, Aarentino Maximillian, NP NPI: 1952964959 For your convenience, you can download the QuestDiagnostics lab scheduling app to your smart phone. Schedule an appointment online at QuestDiagnostics.com/patient, or call 1-888-277-8772 24 hours a day, 7 days a week. Order Date:Jan 6, 2025 Total Orders: 1 Class: Lab Collect Fasting? Yes / No QuantiFeron TB Gold in Tube (LC) (ORD #1016710328) Priority:Routine LabCorp Code: 182879 Quest Code: 36971 SHC Code: LABQFTBG Diagnosis(es):Z11.1 Specimen Type: Blood Specimen Source: Blood, from Venipuncture Questions:Scheduling Instructions:For SHC draw site Collections:Scheduling Instructions:Scheduling Instructions:Patients should be drawn at one of the following facilities: Scheduling Instructions:Scheduling Instructions:Draw Times: Scheduling Instructions:Scheduling Instructions:SHC , LPCH and ED patients : available 24/7. Scheduling Instructions:Blake Wilbur: Mon-Thur 7am-5:30pm. Scheduling Instructions:Boswell H1120: Mon-Fri 6am-5:30pm. Scheduling Instructions:Cancer Center: Mon-Thur 7am-5:30pm.Scheduling Instructions:Hoover: Mon-Thur 7am-6pm. Scheduling Instructions:Menlo-Crane: Mon-Fri 7am-6pm. Scheduling Instructions:Menlo-Middlefield: Mon-Thur 8:30am-5pm (closed 12:30-1:30). Scheduling Instructions:Redwood City: Mon-Thur 7am-6pm. Scheduling Instructions:Vaden: Mon-Fri 8am-5pm (closed 12:30-1:30). Scheduling Instructions:Emeryville: Mon-Thur 7:30am-5pm. Scheduling Instructions:CCSB at 2585: Mon-Thur 8am-4pm. Scheduling Instructions:CCSB at 2589: Mon-Thur 7am-6pm.Scheduling Instructions:730 Welch: Mon-Thur 7:30am-5:30pm.Scheduling Instructions:Sunnyvale: Mon-Thur 8:00am-5:00pm.Scheduling Instructions:Scheduling Instructions:Must be drawn only by trained phlebotomists into specialized tubes available only at the sites listed!Insurance Information Responsible Party / Guarantor Information: Name: TSUKAHARA,MINAKO Address: 1003 PROMENADE ST City, State Zip: Hercules, CA 94547-2705 Phone: 808-777-0163 Relation to Pt: Self Employer Name: CONTRA COSTA COMMUNITY COLLEGE ABN: Worker's Comp: N Date of Injury: Insurance Information: Primary Insurance: Secondary Insurance: Ins Code: BCPPO Ins Co Name: BLUE CROSS EPO Address 1: PO BOX 60007 Address 2: City, State Zip: LOS ANGELES, CA 90060-0007 Policy Number: xxxxxxxx7153 Group #: 277996M006 Ins Code: Ins Co Name: Address 1: Address 2: City, State Zip: Policy Number: Group #: Primary Policy Holder / Insured: Secondary Policy Holder / Insured: Name: TSUKAHARA,MINAKO Address: 1003 PROMENADE ST HERCULES, CA 94547-2705 Pt Relation to Subscriber: Self Name: Address: Pt Relation to Subscriber: Kindest regards,Itzel H.\n", + "2025-06-17 14:12:38,494 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:38,496 - Thread ID: 255680812\n", + "--------------------------------------------------------------------------------\n", + "idx: 5279\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much! I go to Quest at Hercules. Address is 500 Alfred Nobel Dr. suite 115Hercules, CA 94547\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Minako,You're welcome, I went ahead and faxed the orders to quest.Have a great day!\n", + "----------------------------------------\n", + "idx: 5278\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much for the email. So, when I called Quest, they said they didn’t have TB blood test request. Do they have the result of the TB test?Or, they didn’t take blood for the TB test? Thanks, Mina \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Minako,It does not look like they did the blood test I can re-fax the test to quest, please let me know which quest you go too?Kindest regards,Itzel H.\n", + "----------------------------------------\n", + "idx: 5277\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Aloha Dr. Ikeda I got x-ray results but I didn’t take a TB blood test since there was no order for blood TB test. I need a clearance for the TB test and would you be able to write a clearance note for TB? I can pick up the note on the way to work when it is available. Thank you so much for your excellent care for my well-being. Have a great day! Minako\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello Minako,Lab work for TB was sent to quest I have attached the lab order as well. Alliance Medical Group Pinole2160 Appian WaySte 200Pinole CA 94564-2524Phone: 510-724-9110 Fax: 866-551-9877 LAB ACCOUNTS:QUEST #: 60004325 LABCORP #: 04368600 Patient Info Tsukahara,MinakoMRN: 87102414 Requisition Number: G637721778BLD 1003 Promenade StHercules CA 94547-2705 DOB: 1/23/1973 Phone: 808-777-0163 Sex: F Electronically Signed/Authorized by: Smith, Aarentino Maximillian, NP NPI: 1952964959 For your convenience, you can download the QuestDiagnostics lab scheduling app to your smart phone. Schedule an appointment online at QuestDiagnostics.com/patient, or call 1-888-277-8772 24 hours a day, 7 days a week. Order Date:Jan 6, 2025 Total Orders: 1 Class: Lab Collect Fasting? Yes / No QuantiFeron TB Gold in Tube (LC) (ORD #1016710328) Priority:Routine LabCorp Code: 182879 Quest Code: 36971 SHC Code: LABQFTBG Diagnosis(es):Z11.1 Specimen Type: Blood Specimen Source: Blood, from Venipuncture Questions:Scheduling Instructions:For SHC draw site Collections:Scheduling Instructions:Scheduling Instructions:Patients should be drawn at one of the following facilities: Scheduling Instructions:Scheduling Instructions:Draw Times: Scheduling Instructions:Scheduling Instructions:SHC , LPCH and ED patients : available 24/7. Scheduling Instructions:Blake Wilbur: Mon-Thur 7am-5:30pm. Scheduling Instructions:Boswell H1120: Mon-Fri 6am-5:30pm. Scheduling Instructions:Cancer Center: Mon-Thur 7am-5:30pm.Scheduling Instructions:Hoover: Mon-Thur 7am-6pm. Scheduling Instructions:Menlo-Crane: Mon-Fri 7am-6pm. Scheduling Instructions:Menlo-Middlefield: Mon-Thur 8:30am-5pm (closed 12:30-1:30). Scheduling Instructions:Redwood City: Mon-Thur 7am-6pm. Scheduling Instructions:Vaden: Mon-Fri 8am-5pm (closed 12:30-1:30). Scheduling Instructions:Emeryville: Mon-Thur 7:30am-5pm. Scheduling Instructions:CCSB at 2585: Mon-Thur 8am-4pm. Scheduling Instructions:CCSB at 2589: Mon-Thur 7am-6pm.Scheduling Instructions:730 Welch: Mon-Thur 7:30am-5:30pm.Scheduling Instructions:Sunnyvale: Mon-Thur 8:00am-5:00pm.Scheduling Instructions:Scheduling Instructions:Must be drawn only by trained phlebotomists into specialized tubes available only at the sites listed!Insurance Information Responsible Party / Guarantor Information: Name: TSUKAHARA,MINAKO Address: 1003 PROMENADE ST City, State Zip: Hercules, CA 94547-2705 Phone: 808-777-0163 Relation to Pt: Self Employer Name: CONTRA COSTA COMMUNITY COLLEGE ABN: Worker's Comp: N Date of Injury: Insurance Information: Primary Insurance: Secondary Insurance: Ins Code: BCPPO Ins Co Name: BLUE CROSS EPO Address 1: PO BOX 60007 Address 2: City, State Zip: LOS ANGELES, CA 90060-0007 Policy Number: xxxxxxxx7153 Group #: 277996M006 Ins Code: Ins Co Name: Address 1: Address 2: City, State Zip: Policy Number: Group #: Primary Policy Holder / Insured: Secondary Policy Holder / Insured: Name: TSUKAHARA,MINAKO Address: 1003 PROMENADE ST HERCULES, CA 94547-2705 Pt Relation to Subscriber: Self Name: Address: Pt Relation to Subscriber: Kindest regards,Itzel H.\n", + "----------------------------------------\n", + "2025-06-17 14:12:38,497 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:38,497 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:38,498 - ✅ similarity: 0.6580\n", + "2025-06-17 14:12:38,498 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I’m applying for some substitute teaching jobs that require TB testWhat does this entail ?Can I just make an appointment now..I’m picking up the paperwork tomorrow.Thank you \n", + "2025-06-17 14:12:38,499 - Provider's response to this similar message: Dear Elsa,Please call the office to schedule a TB assessment. (Testing for Tuberculosis: Skin Test)(510)510-724-9110. Our scheduling team representatives will be happy to assist you! Sincerely,Yazmin Rodriguez, MA\n", + "2025-06-17 14:12:38,499 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:38,503 - Thread ID: 252688299\n", + "--------------------------------------------------------------------------------\n", + "idx: 136987\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I called and tried to make an appt but they said I needed an order from the doctor first .Thank you Elsa \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 136986\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m applying for some substitute teaching jobs that require TB testWhat does this entail ?Can I just make an appointment now..I’m picking up the paperwork tomorrow.Thank you \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Dear Elsa,Please call the office to schedule a TB assessment. (Testing for Tuberculosis: Skin Test)(510)510-724-9110. Our scheduling team representatives will be happy to assist you! Sincerely,Yazmin Rodriguez, MA\n", + "----------------------------------------\n", + "2025-06-17 14:12:38,503 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:38,504 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:38,504 - ✅ similarity: 0.6509\n", + "2025-06-17 14:12:38,505 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you so much for this info! Since we will have to get the MMR labs, it may be easier to just do the TB labs at the same time. Can she just walk in for these anytime or do we need to wait for an order to be put in?TB Questionnaire:Test is needed for grandchild's preschool.No current symptoms. No previous positive test/no medication for TB. Born in the US. Unsure if the BCG vaccine has been received. No known exposure to TB. Thank you,Jahrena\n", + "2025-06-17 14:12:38,505 - Provider's response to this similar message: Hello, an order for the MMR titer and TB test have been sent to LabCorp. You can go anytime to get these done. Someone from the clinic will reach out to you once the results are reviewed.\n", + "2025-06-17 14:12:38,506 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:38,508 - Thread ID: 249080820\n", + "--------------------------------------------------------------------------------\n", + "idx: 318874\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much for this info! Since we will have to get the MMR labs, it may be easier to just do the TB labs at the same time. Can she just walk in for these anytime or do we need to wait for an order to be put in?TB Questionnaire:Test is needed for grandchild's preschool.No current symptoms. No previous positive test/no medication for TB. Born in the US. Unsure if the BCG vaccine has been received. No known exposure to TB. Thank you,Jahrena\n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Hello, an order for the MMR titer and TB test have been sent to LabCorp. You can go anytime to get these done. Someone from the clinic will reach out to you once the results are reviewed.\n", + "----------------------------------------\n", + "idx: 318873\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi again Dr Krasny,in addition to the TB test that I previously mentioned, she will also need proof of MMR immunization. I was looking through her charts online here, and I don't see anything for MMR.Thank you,Jahrena\n", + "----------------------------------------\n", + "Provider Response by PINOLE & SAN PABLO CARE TEAM POOL:\n", + "Hi Ms. Jahrena,My name is Jenny Quan, a physician assistant helping to cover messages today. Thank you for reaching out. You're right, we don't see documentation of MMR vaccine. We can obtain labs for antibody titers to see if she's immune. Because she's on Actemra, I would not immediately recommend updating the MMR vaccine as it is a live vaccine. As far as the TB test, we can either do a skin test for which she'd have to return to the office within 48 to 72 hours to read the interpretation, or a blood test which may take about a week to return. You can make an appointment for a TB skin test at our clinic. Please answer the routine TB screening questions:TB Screening QuestionnaireWhy do you need the test?Currently any symptoms of cough, coughing up blood, fever, weight loss, tiredness, night sweats: Yes/NoHave you ever had a positive TB skin test or TB blood test?Have you ever taken medication for TB?What country were you born in?What countries have you lived in?Have you had the BCG vaccine?Have you been in contact with someone who has TB?Do you have any disease that affect your immune system (ie. Cancer, leukemia, HIV, etc.)?Please let us know if you have any other questions or concerns.Kindest regards,Jenny Quan, PA-CFamily Medicine San Pablo and PinolePlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:12:38,509 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:38,509 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:38,509 - ✅ similarity: 0.5330\n", + "2025-06-17 14:12:38,510 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I have an appointment on the 26th of this month. Do I need to complete any blood work before? \n", + "2025-06-17 14:12:38,510 - Provider's response to this similar message: Good afternoon Guadalupe, At your last appointment with Dr Ikeda 09/04/24 it looks like at that time they had ordered labs & advised you to get them done before your next appointment. Your after visit summary states the following:Please do 12 hours fasting blood work; IF YOU ARE FASTING, MAKE SURE TO CONTINUE DRINKING WATER DURING THE FASTING. PLEASE FINISH LAB 1 week before the next visit; Do not drink alcohol day before Take a glass of water prior to the lab Please call or go to web site for the lab and set up appointment. You should get your results within 1 week. If you do not hear from us, please contact us. PLEASE CHECK THE COST WITH LAB The labs were already sent electronically to Labcorp at the time they were ordered to their overall system this is so you can go to any Labcorp location. Please follow up with the lab directly.Thank you,Alicia R, MA\n", + "2025-06-17 14:12:38,511 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:38,512 - Thread ID: 253177950\n", + "--------------------------------------------------------------------------------\n", + "idx: 118550\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I have an appointment on the 26th of this month. Do I need to complete any blood work before? \n", + "----------------------------------------\n", + "Provider Response by AMGP MYHEALTH POOL:\n", + "Good afternoon Guadalupe, At your last appointment with Dr Ikeda 09/04/24 it looks like at that time they had ordered labs & advised you to get them done before your next appointment. Your after visit summary states the following:Please do 12 hours fasting blood work; IF YOU ARE FASTING, MAKE SURE TO CONTINUE DRINKING WATER DURING THE FASTING. PLEASE FINISH LAB 1 week before the next visit; Do not drink alcohol day before Take a glass of water prior to the lab Please call or go to web site for the lab and set up appointment. You should get your results within 1 week. If you do not hear from us, please contact us. PLEASE CHECK THE COST WITH LAB The labs were already sent electronically to Labcorp at the time they were ordered to their overall system this is so you can go to any Labcorp location. Please follow up with the lab directly.Thank you,Alicia R, MA\n", + "----------------------------------------\n", + "2025-06-17 14:12:38,513 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:38,798 - Original Message:\n", + "2025-06-17 14:12:38,801 - original_query_message: Addendum: I did a 24 hr. Holter Monitor in 2021 and the results came back \"a few extra( benign ) beats.\" See the attached test results.Do I need to monitor this in light of my cancer treatment?--------------------------------------Hi Dr. Rodriguez,I hope you had a nice holiday with your family.Just want to let you know that because of my recent diagnosis of invasive breast cancer, I will be starting the following treatments:1) Arimidex2) Reclast infusion3) Possibly chemotherapyWill any of these treatments affect my cardiovascular health and would you like me to do any labs now to get a baseline before I start treatment? I can do the labs as soon as possible. How would you like me to be monitored while on cancer treatment?I'm currently on rosuvastatin and amlodipine (and Synthroid & Fosamax).Thank you for your help.Best,-Anne \n", + "2025-06-17 14:12:40,258 - Query Parameters:\n", + "2025-06-17 14:12:40,260 - query_message: Hi Dr. Lee,I wanted to touch base before I move forward with my breast cancer treatment plan. As you know, I have a history of occasional irregular heartbeats, which were checked out a couple years ago with a Holter monitor. The results then didn’t show anything concerning, just a few harmless extra beats, but I’m a little anxious about how the upcoming therapies might affect my heart. I’m scheduled to start letrozole soon, and my oncologist also mentioned IV bisphosphonates for my bone health. There’s a possibility I might need chemo too, depending on how things go.Given my background (I’m already on levothyroxine for my thyroid, take atorvastatin, and use amlodipine for mild hypertension), should I have any blood work or cardiac tests done before I begin? I want to make sure we catch any potential issues early, especially since I know some of these medications can have cardiovascular side effects. Is there anything you’d recommend as far as baseline tests or follow-up while I’m on treatment? Thanks so much for your advice and for always helping me keep everything coordinated.Take care, Sarah\n", + "2025-06-17 14:12:40,261 - receiver: SFM TASK POOL POD 3\n", + "2025-06-17 14:12:40,261 - department: STANFORD FAMILY MEDICINE\n", + "2025-06-17 14:12:40,261 - specialty: Primary Care\n", + "2025-06-17 14:12:41,867 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:41,868 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:41,868 - ✅ similarity: 0.8611\n", + "2025-06-17 14:12:41,869 - Sender: AGUILAR, SANDRA [ S0183817] -> the retrieved similar message : Addendum: I did a 24 hr. Holter Monitor in 2021 and the results came back \"a few extra( benign ) beats.\" See the attached test results.Do I need to monitor this in light of my cancer treatment?--------------------------------------Hi Dr. Rodriguez,I hope you had a nice holiday with your family.Just want to let you know that because of my recent diagnosis of invasive breast cancer, I will be starting the following treatments:1) Arimidex2) Reclast infusion3) Possibly chemotherapyWill any of these treatments affect my cardiovascular health and would you like me to do any labs now to get a baseline before I start treatment? I can do the labs as soon as possible. How would you like me to be monitored while on cancer treatment?I'm currently on rosuvastatin and amlodipine (and Synthroid & Fosamax).Thank you for your help.Best,-Anne \n", + "2025-06-17 14:12:41,871 - Provider's response to this similar message: Hi Anne,I hope this message finds you well. Thank you for your message. MyHealth messages can be a helpful way to communicate directly with our team, but I'm concerned that this would be better addressed with an appointment. To be sure that you get the best possible care, I've scheduled a video appointment. Please confirm. Friday Jan 3, 2025 Appt at 9:30 AM (30 min)Video Unzueta, Crystal, MDPCPBest regards, Carolina VergilPatient Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:41,872 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:41,875 - Thread ID: 254407335\n", + "--------------------------------------------------------------------------------\n", + "idx: 64177\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Carolina,Thank you for your reply.I meant to address this with Dr. Rodriguez but accidentally sent it to Dr. Unzueta.So please disregard my earlier email. I'll reach out to Dr. Rodriguez.Thank you,-Anne\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hi Anne,Thank you for clarifying.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: There are no preventive care reminders to display for this patient.Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. \n", + "----------------------------------------\n", + "idx: 64176\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Addendum: I did a 24 hr. Holter Monitor in 2021 and the results came back \"a few extra( benign ) beats.\" See the attached test results.Do I need to monitor this in light of my cancer treatment?--------------------------------------Hi Dr. Rodriguez,I hope you had a nice holiday with your family.Just want to let you know that because of my recent diagnosis of invasive breast cancer, I will be starting the following treatments:1) Arimidex2) Reclast infusion3) Possibly chemotherapyWill any of these treatments affect my cardiovascular health and would you like me to do any labs now to get a baseline before I start treatment? I can do the labs as soon as possible. How would you like me to be monitored while on cancer treatment?I'm currently on rosuvastatin and amlodipine (and Synthroid & Fosamax).Thank you for your help.Best,-Anne \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hi Anne,I hope this message finds you well. Thank you for your message. MyHealth messages can be a helpful way to communicate directly with our team, but I'm concerned that this would be better addressed with an appointment. To be sure that you get the best possible care, I've scheduled a video appointment. Please confirm. Friday Jan 3, 2025 Appt at 9:30 AM (30 min)Video Unzueta, Crystal, MDPCPBest regards, Carolina VergilPatient Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:41,876 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:41,876 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:41,877 - ✅ similarity: 0.6132\n", + "2025-06-17 14:12:41,877 - Sender: BRAUNSCHWEIG, MICHELLE [ S0288469] -> the retrieved similar message : Dr. Braunschweig,My surgery went well but I am having some post surgery issues and ended up back at Stanford this week.Multiple tests were run to see if I had cervical issues, clots or heart issues.I think that my muscles have already split again and my BP and heart rate are all over the place.I have reached out to both Dr. Khush and Dr.Bruckman on those issues. I assume that you can see the more detailed comments I sent to them . The most important is my note to Dr. Khush.I believe that Dr. Ratliff’s team also reached out to you on some blood test issues.My biggest concern is my bp and heart rate. Not sure how much those readings are influenced by my anxiety. We probably need to discuss if I need something for that.Randy \n", + "2025-06-17 14:12:41,878 - Provider's response to this similar message: Hi Randy, Dr Braunschweig would like to have a follow up visit with you. I've scheduled a video visit for you tomorrow. This appointment can also be in person if you prefer an in person visit. Please confirm appointment. Tuesday Nov 26, 2024 Appt at 4:00 PM (30 min)Video Braunschweig, Michelle Elizabeth Yael, MDPCP Best regards, Carolina VergilPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Medicare Annual Wellness Visit 11/09/2024 Advance Care Plan Discussion 11/09/2024 Kidney Health Evaluation 01/25/2025 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:41,878 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:41,882 - Thread ID: 251396736\n", + "--------------------------------------------------------------------------------\n", + "idx: 200274\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Carolina,That works. Video call is fine. I have a call with Dr Khush this afternoon as well to discuss my bp and heart rate, as well as the scans that were done to my heart.Randy\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Hi Randy,Thank you for confirming.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Medicare Annual Wellness Visit 11/09/2024 Advance Care Plan Discussion 11/09/2024 Kidney Health Evaluation 01/25/2025 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 200273\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Braunschweig,My surgery went well but I am having some post surgery issues and ended up back at Stanford this week.Multiple tests were run to see if I had cervical issues, clots or heart issues.I think that my muscles have already split again and my BP and heart rate are all over the place.I have reached out to both Dr. Khush and Dr.Bruckman on those issues. I assume that you can see the more detailed comments I sent to them . The most important is my note to Dr. Khush.I believe that Dr. Ratliff’s team also reached out to you on some blood test issues.My biggest concern is my bp and heart rate. Not sure how much those readings are influenced by my anxiety. We probably need to discuss if I need something for that.Randy \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hi Randy, Dr Braunschweig would like to have a follow up visit with you. I've scheduled a video visit for you tomorrow. This appointment can also be in person if you prefer an in person visit. Please confirm appointment. Tuesday Nov 26, 2024 Appt at 4:00 PM (30 min)Video Braunschweig, Michelle Elizabeth Yael, MDPCP Best regards, Carolina VergilPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Medicare Annual Wellness Visit 11/09/2024 Advance Care Plan Discussion 11/09/2024 Kidney Health Evaluation 01/25/2025 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:41,883 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:41,883 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:41,884 - ✅ similarity: 0.5573\n", + "2025-06-17 14:12:41,884 - Sender: SALANGA, MARIZ [ S0185574] -> the retrieved similar message : Hi Dr. Zieske, I've been doing well. No signs of rocky mountain spotted fever OR rabies, so ... no complaints! :) At our last meeting you mentioned a referral to the gender care group, but I don't think I received the info I need to make that appointment. Can we do that now? Also, as part of moving away from PAMF and doing all my care through Stanford, I'd like to transfer my cardiology care. I had a pacemaker followup about a month ago with Dr. Shawn Cho who told me the PM was pacing about 15% of my heartbeats. I still need to get my iPhone working with Medtronics and just establish a relationship with a cardiologist. It's end of year and my deductibles & out-of-pocket are max'd out so I'd like to do as much as possible before 12/31. Thanks!\n", + "2025-06-17 14:12:41,884 - Provider's response to this similar message: Good afternoon your request was sent to the Doctor, we will get back to you as soon as we get a response.\n", + "2025-06-17 14:12:41,885 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:41,888 - Thread ID: 249172477\n", + "--------------------------------------------------------------------------------\n", + "idx: 314238\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon your request was sent to the Doctor, we will get back to you as soon as we get a response.\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hi Helen,We placed a referral to cardiology for you. Please call to schedule.Cardiovascular Medicine Intake Phone: 650-723-6459 Fax: 650-498-4531 For the Gender Care group please call 650-498-9000, select new patient and let them you that you have been referred to primary care-sub specialty clinic with Dr. LaniakeaBest regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due RSV Vaccine (1 - Risk 60-74 years 1-dose series) Never done Zoster Vaccine (2 of 3) 02/03/2015 BONE DENSITY SCREEN Never done INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (1 - 2024-25 season) Never done Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 314237\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zieske, I've been doing well. No signs of rocky mountain spotted fever OR rabies, so ... no complaints! :) At our last meeting you mentioned a referral to the gender care group, but I don't think I received the info I need to make that appointment. Can we do that now? Also, as part of moving away from PAMF and doing all my care through Stanford, I'd like to transfer my cardiology care. I had a pacemaker followup about a month ago with Dr. Shawn Cho who told me the PM was pacing about 15% of my heartbeats. I still need to get my iPhone working with Medtronics and just establish a relationship with a cardiologist. It's end of year and my deductibles & out-of-pocket are max'd out so I'd like to do as much as possible before 12/31. Thanks!\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Good afternoon your request was sent to the Doctor, we will get back to you as soon as we get a response.\n", + "----------------------------------------\n", + "2025-06-17 14:12:41,889 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:41,889 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:41,890 - ✅ similarity: 0.5472\n", + "2025-06-17 14:12:41,890 - Sender: ROBLES-MONTANO, VANESSA [ S0201163] -> the retrieved similar message : Hi Dr.Montacute,I’m finally being worked up for AUB and am nervously awaiting results of the biopsy.In the meantime, I had labs done preoperatively and was hoping you could take a look. BMP looks pretty stable. CBC shows elevated WBC, but not sure why. Platelet count has dropped and I was wondering if that’s related to taking Vitamin D3, 2000 IU daily.When things are settled with my gyn. I’m wondering if I could talk to you about the weight loss medication. Thanks so much,Anne Marie\n", + "2025-06-17 14:12:41,891 - Provider's response to this similar message: Hi Anne,Please let us know your availability so we can schedule a follow up with Dr. Montacute.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Kidney Health Evaluation Never done Zoster Vaccine (1 of 2) Never done RSV Vaccine (1 - Risk 60-74 years 1-dose series) Never done DTaP/Tdap/Td Immunizations (2 - Td or Tdap) 04/05/2022 PAP SMEAR 12/19/2022 INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (4 - 2024-25 season) 09/01/2024 FECAL OCCULT BLOOD TEST 1 YEAR 09/17/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "2025-06-17 14:12:41,891 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:41,893 - Thread ID: 251500604\n", + "--------------------------------------------------------------------------------\n", + "idx: 195313\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! You are very quick!\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 195312\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes that should be fine.\n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Hi Anne Marie,Thank you for confirming.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Kidney Health Evaluation Never done Zoster Vaccine (1 of 2) Never done RSV Vaccine (1 - Risk 60-74 years 1-dose series) Never done DTaP/Tdap/Td Immunizations (2 - Td or Tdap) 04/05/2022 PAP SMEAR 12/19/2022 INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (4 - 2024-25 season) 09/01/2024 FECAL OCCULT BLOOD TEST 1 YEAR 09/17/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 195311\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m available this week for a Telehealth if that works. \n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Hi Anne Marie,Are you available Wednesday at 1pm?Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Kidney Health Evaluation Never done Zoster Vaccine (1 of 2) Never done RSV Vaccine (1 - Risk 60-74 years 1-dose series) Never done DTaP/Tdap/Td Immunizations (2 - Td or Tdap) 04/05/2022 PAP SMEAR 12/19/2022 INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (4 - 2024-25 season) 09/01/2024 FECAL OCCULT BLOOD TEST 1 YEAR 09/17/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "idx: 195310\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Montacute,I’m finally being worked up for AUB and am nervously awaiting results of the biopsy.In the meantime, I had labs done preoperatively and was hoping you could take a look. BMP looks pretty stable. CBC shows elevated WBC, but not sure why. Platelet count has dropped and I was wondering if that’s related to taking Vitamin D3, 2000 IU daily.When things are settled with my gyn. I’m wondering if I could talk to you about the weight loss medication. Thanks so much,Anne Marie\n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hi Anne,Please let us know your availability so we can schedule a follow up with Dr. Montacute.Best regards, Vanessa Robles-MontanoPractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: Health Maintenance Due Topic Date Due Kidney Health Evaluation Never done Zoster Vaccine (1 of 2) Never done RSV Vaccine (1 - Risk 60-74 years 1-dose series) Never done DTaP/Tdap/Td Immunizations (2 - Td or Tdap) 04/05/2022 PAP SMEAR 12/19/2022 INFLUENZA VACCINE (1) 09/01/2024 COVID-19 Vaccine (4 - 2024-25 season) 09/01/2024 FECAL OCCULT BLOOD TEST 1 YEAR 09/17/2024 Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. \n", + "----------------------------------------\n", + "2025-06-17 14:12:41,894 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:41,894 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:41,895 - ✅ similarity: 0.5369\n", + "2025-06-17 14:12:41,895 - Sender: AGUILAR, SANDRA [ S0183817] -> the retrieved similar message : Hi there- In August I had several appointments to discuss weight loss medication but was advised to hold off because I had an irregular heart rate on an EKG that would need further assessment. I wanted to revisit both of these conversations! My husband and I would like to start trying for a baby in the spring and I want to ensure that I am at a healthy weight prior to the pregnancy and that my cardiac issues are sorted out. I haven’t had any heart palpitations since August and I believe my second EKG was normal. Based on this, would I be able to pursue weight loss medication and what (if any) are the next steps to assess my irregular heart rate. Thank you!!Loren \n", + "2025-06-17 14:12:41,896 - Provider's response to this similar message: Hello Loren RothberryI scheduled you a video visit with Dr Unzueta on 11/1 at 9:30 am to further discuss your concerns, please let us know if the date and time works for you.Best regards, Samantha LanePractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: There are no preventive care reminders to display for this patient.Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:41,897 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:41,900 - Thread ID: 248377849\n", + "--------------------------------------------------------------------------------\n", + "idx: 354982\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Works for me! \n", + "----------------------------------------\n", + "Provider Response by SFM MYHEALTH CLINIC MESSAGING:\n", + "Hello Loren RothberryThank you for confirming your appointment.Best regards, Samantha LanePractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: There are no preventive care reminders to display for this patient.Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 354981\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi there- In August I had several appointments to discuss weight loss medication but was advised to hold off because I had an irregular heart rate on an EKG that would need further assessment. I wanted to revisit both of these conversations! My husband and I would like to start trying for a baby in the spring and I want to ensure that I am at a healthy weight prior to the pregnancy and that my cardiac issues are sorted out. I haven’t had any heart palpitations since August and I believe my second EKG was normal. Based on this, would I be able to pursue weight loss medication and what (if any) are the next steps to assess my irregular heart rate. Thank you!!Loren \n", + "----------------------------------------\n", + "Provider Response by SFM TASK POOL POD 3:\n", + "Hello Loren RothberryI scheduled you a video visit with Dr Unzueta on 11/1 at 9:30 am to further discuss your concerns, please let us know if the date and time works for you.Best regards, Samantha LanePractice Care CoordinatorStanford Family Medicine211 Quarry Rd. Suite 405/MC5985Palo Alto, CA 94304(t) 650-498-9000(f) 650-498-7750 ----------------------------------------------------Preventive Health Reminders: There are no preventive care reminders to display for this patient.Please let me know if we can help you schedule any of these tests or vaccines. If this information is incorrect or if you have any questions, please let me know. Thank you for allowing us to partner in your care. Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:41,900 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:42,354 - Original Message:\n", + "2025-06-17 14:12:42,354 - original_query_message: OK, thanks. I'm familiar with the false positive rate for Cologuard. I'm in no better position than previously mentioned regarding social support, re, ride home from a colonoscopy (which is why I opted for Cologuard originally), so not much point in referring for scheduling until I have something in place. I'd do it unsedated, but my understanding is that most U.S. doctors won't.(Note: It's possible my sister in AZ would like a trip to SF, so I'll broach that with her during the Christmas holidays.)\n", + "2025-06-17 14:12:43,836 - Query Parameters:\n", + "2025-06-17 14:12:43,837 - query_message: I did the FIT test for colon cancer screening because I live alone and don't have anyone nearby who could give me a lift home if I went the colonoscopy route (since you need someone to drive you after sedation). My FIT came back positive, and I know sometimes that's a false alarm, but my doctor is recommending a colonoscopy for follow-up. I'm feeling stuck because I don't have help with transportation, and I’ve heard it’s hard to find places in the U.S. that’ll do the procedure without sedation. I don't have any major symptoms, just some occasional stomach cramping and bloating, but nothing alarming. Has anyone else dealt with this? Is there a way to manage the logistics, or other options people have tried? I appreciate any advice since my family’s pretty far and I don’t want to put anyone out unless it’s really necessary.\n", + "2025-06-17 14:12:43,838 - receiver: YOUNG-LEE, KATY\n", + "2025-06-17 14:12:43,839 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:12:43,841 - specialty: Primary Care\n", + "2025-06-17 14:12:44,578 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:44,579 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:44,579 - ✅ similarity: 0.6519\n", + "2025-06-17 14:12:44,580 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : OK, thanks. I'm familiar with the false positive rate for Cologuard. I'm in no better position than previously mentioned regarding social support, re, ride home from a colonoscopy (which is why I opted for Cologuard originally), so not much point in referring for scheduling until I have something in place. I'd do it unsedated, but my understanding is that most U.S. doctors won't.(Note: It's possible my sister in AZ would like a trip to SF, so I'll broach that with her during the Christmas holidays.)\n", + "2025-06-17 14:12:44,581 - Provider's response to this similar message: Ok, could you give me an update in a month or so? And if I run into our GI team, I'll ask them too.Katy Young-Lee M.D.\n", + "2025-06-17 14:12:44,583 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:44,589 - Thread ID: 252173324\n", + "--------------------------------------------------------------------------------\n", + "idx: 160631\n", + "Subject: RE:Positive Cologuard\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "OK, thanks. I'm familiar with the false positive rate for Cologuard. I'm in no better position than previously mentioned regarding social support, re, ride home from a colonoscopy (which is why I opted for Cologuard originally), so not much point in referring for scheduling until I have something in place. I'd do it unsedated, but my understanding is that most U.S. doctors won't.(Note: It's possible my sister in AZ would like a trip to SF, so I'll broach that with her during the Christmas holidays.)\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "Ok, could you give me an update in a month or so? And if I run into our GI team, I'll ask them too.Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "2025-06-17 14:12:44,589 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:44,590 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:44,590 - ✅ similarity: 0.5460\n", + "2025-06-17 14:12:44,590 - Sender: HOLMGREN, SARAH [ S0188220] -> the retrieved similar message : Thank you for your reply. Here’s the address and phone number I believe. But that’s the correct place that I went and have my colonoscopy done. Can you also let know Cathy if you can please because I’m very frustrated and nervous. They told me that I got cancer that’s what the dr say they foun something bad please if she can call me 510-488-8308 Anytime I’m very concerned.Here’s the info. Thank you so much.East Bay Centers for Digestive Health300 Frank Ogawa Plaza,Suite 450Oakland CA 94612510-444-3297510-444-6421 Fax\n", + "2025-06-17 14:12:44,591 - Provider's response to this similar message: The colonoscopy report said there were 3 small polyps. We don't have the biopsy results yet and it may take a week. I wanted to let you know that this is really common and probably 90% of people have these. The GI doctor did not say anything about lupus in the report and the GI doctor did not sound concerned. We'll see when the final biopsy report comes back but nothing sounds scary.Katy Young-Lee M.D.\n", + "2025-06-17 14:12:44,591 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:44,595 - Thread ID: 251546094\n", + "--------------------------------------------------------------------------------\n", + "idx: 192501\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Jose,This is Sabrina Kohli, NP. I'm helping with Katy Chien-Chien Young-Lee, MD's messages today.Thank you for your messages. We have not received the path report yet for your colonoscopy. I have forwarded your messages to Dr. Young-Lee for review upon her return. We will follow up with you when we receive the results.Take care,Sabrina Kohli, NP\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "The colon polyp is NOT a cancer. It was a tubular adenoma which is quite common. Because you had this kind of polyp, the GI doctors recommendation is that you have another colonoscopy in 5 years. Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "idx: 192500\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much for the response Katty I was asking because I was done he talk to me saying they where bad but IM STILL HAVE SOME OF THAT CANSER OR MAYBE I JUST UNDERSTAND ROUND THANK U but u say u talk to hem or sound \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Jose,This is Sabrina Kohli, NP. I'm helping with Katy Chien-Chien Young-Lee, MD's messages today.Thank you for your messages. We have not received the path report yet for your colonoscopy. I have forwarded your messages to Dr. Young-Lee for review upon her return. We will follow up with you when we receive the results.Take care,Sabrina Kohli, NP\n", + "----------------------------------------\n", + "idx: 192499\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi thank you very much for the response and happy new year merry Christmas. The reason that I sent her a message is because she knows that I’m very very concerned about my colonoscopy that it was done a week ago. She told me it takes one to two weeks, but I really need to know what’s going on if came back positive and cancer or not is worried you know I know that she’s probably on her holidays or resting, but I would’ve really appreciate and you will bring me peace of mind, especially that is the holidays that she respond and only telling me if negative or positive on my colonoscopy. Thank you so much for taking the time. Julia please le her know if u can ;(\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192498\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Urology follow up good morning Katty I only what to know to you I been following ALL ALL YOUR CONCERNS AND APPOINTMENTS. TO DAY I GOT MY WITH DR CHEN he say I will get a shot 1 each 2 weeks and im only worry on my results coloscopy. I have not sleep and worry but nothing we can do now only thing we are missing are two shots i believe one is will make me sick I believe & onen more im still doing good on ozempic but need to know on my high blood pressure but first i need to know my results thanks. Catty please Tex me call me or let me on my results on if i have canser on that or no \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192497\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello jose gaytan, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. Dr. Young-Lee is out of the office until 12/30/24.I have forwarded your message to her to review upon her return. If you have any urgent needs, please don't hesitate to call the office at 510-266-5400. Julia Fellows\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192496\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No news yet Katty well I whant to tell you have a good blessed weekend & hopefully soon will know if is canser or not I guess thanks u been to much support to me but to be honest, I’m scared \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hello jose gaytan, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. Dr. Young-Lee is out of the office until 12/30/24.I have forwarded your message to her to review upon her return. If you have any urgent needs, please don't hesitate to call the office at 510-266-5400. Julia Fellows\n", + "----------------------------------------\n", + "idx: 192495\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Katty so much I be waiting \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192494\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank Katty please if you Can soon you know please send a message or call me 510-4888308 or let me k is on the app i’m worry stress out on what dr say to me tnx god bless \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192493\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for your reply. Here’s the address and phone number I believe. But that’s the correct place that I went and have my colonoscopy done. Can you also let know Cathy if you can please because I’m very frustrated and nervous. They told me that I got cancer that’s what the dr say they foun something bad please if she can call me 510-488-8308 Anytime I’m very concerned.Here’s the info. Thank you so much.East Bay Centers for Digestive Health300 Frank Ogawa Plaza,Suite 450Oakland CA 94612510-444-3297510-444-6421 Fax\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "The colonoscopy report said there were 3 small polyps. We don't have the biopsy results yet and it may take a week. I wanted to let you know that this is really common and probably 90% of people have these. The GI doctor did not say anything about lupus in the report and the GI doctor did not sound concerned. We'll see when the final biopsy report comes back but nothing sounds scary.Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "idx: 192492\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Katy i’m so worried. I already did my colonoscopy, and they found. I believe they call lupus the dr cut them but say 2 they got CANSER HE explain to me that you were gonna receive the results. I’m so worried about this. Please. Can you let me know as soon as soon get the results. I believe biopsy or something that we’re going to do. I have not sleep over this because he said that they were very bad in my blood pressure I believe. Sky rocket On the procedure. Please let me know you can call me if you can. I will take your call anytime. I’m worried about it. Sorry to bother you, Katy, but I’ve been following everything what you’re asking me. Done everything and now this. He mentioned me, they were cancer.\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello, Unfortunately, we have not received any results yet. Can you please let us know the name and address of the facility you had it done at so we can request results.Thank you \n", + "----------------------------------------\n", + "idx: 192491\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-11-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy Thanksgiving I have a question from everything. I already got the appointment for the colonoscopy on the ninth December 9. I’m gonna cancel and I’m gonna follow your instructions to wait after the appointment that we have they were gonna see each other for the physical in December. Is that OK\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No, go ahead and keep the appointment for the colonoscopy on 12/9/24Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "2025-06-17 14:12:44,596 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:44,596 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:44,596 - ✅ similarity: 0.5456\n", + "2025-06-17 14:12:44,597 - Sender: KOHLI, SABRINA [ S0383270] -> the retrieved similar message : Hi Jose,This is Sabrina Kohli, NP. I'm helping with Katy Chien-Chien Young-Lee, MD's messages today.Thank you for your messages. We have not received the path report yet for your colonoscopy. I have forwarded your messages to Dr. Young-Lee for review upon her return. We will follow up with you when we receive the results.Take care,Sabrina Kohli, NP\n", + "2025-06-17 14:12:44,597 - Provider's response to this similar message: The colon polyp is NOT a cancer. It was a tubular adenoma which is quite common. Because you had this kind of polyp, the GI doctors recommendation is that you have another colonoscopy in 5 years. Katy Young-Lee M.D.\n", + "2025-06-17 14:12:44,597 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:44,599 - Thread ID: 251546094\n", + "--------------------------------------------------------------------------------\n", + "idx: 192501\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Jose,This is Sabrina Kohli, NP. I'm helping with Katy Chien-Chien Young-Lee, MD's messages today.Thank you for your messages. We have not received the path report yet for your colonoscopy. I have forwarded your messages to Dr. Young-Lee for review upon her return. We will follow up with you when we receive the results.Take care,Sabrina Kohli, NP\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "The colon polyp is NOT a cancer. It was a tubular adenoma which is quite common. Because you had this kind of polyp, the GI doctors recommendation is that you have another colonoscopy in 5 years. Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "idx: 192500\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much for the response Katty I was asking because I was done he talk to me saying they where bad but IM STILL HAVE SOME OF THAT CANSER OR MAYBE I JUST UNDERSTAND ROUND THANK U but u say u talk to hem or sound \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Jose,This is Sabrina Kohli, NP. I'm helping with Katy Chien-Chien Young-Lee, MD's messages today.Thank you for your messages. We have not received the path report yet for your colonoscopy. I have forwarded your messages to Dr. Young-Lee for review upon her return. We will follow up with you when we receive the results.Take care,Sabrina Kohli, NP\n", + "----------------------------------------\n", + "idx: 192499\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi thank you very much for the response and happy new year merry Christmas. The reason that I sent her a message is because she knows that I’m very very concerned about my colonoscopy that it was done a week ago. She told me it takes one to two weeks, but I really need to know what’s going on if came back positive and cancer or not is worried you know I know that she’s probably on her holidays or resting, but I would’ve really appreciate and you will bring me peace of mind, especially that is the holidays that she respond and only telling me if negative or positive on my colonoscopy. Thank you so much for taking the time. Julia please le her know if u can ;(\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192498\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Urology follow up good morning Katty I only what to know to you I been following ALL ALL YOUR CONCERNS AND APPOINTMENTS. TO DAY I GOT MY WITH DR CHEN he say I will get a shot 1 each 2 weeks and im only worry on my results coloscopy. I have not sleep and worry but nothing we can do now only thing we are missing are two shots i believe one is will make me sick I believe & onen more im still doing good on ozempic but need to know on my high blood pressure but first i need to know my results thanks. Catty please Tex me call me or let me on my results on if i have canser on that or no \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192497\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello jose gaytan, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. Dr. Young-Lee is out of the office until 12/30/24.I have forwarded your message to her to review upon her return. If you have any urgent needs, please don't hesitate to call the office at 510-266-5400. Julia Fellows\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192496\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No news yet Katty well I whant to tell you have a good blessed weekend & hopefully soon will know if is canser or not I guess thanks u been to much support to me but to be honest, I’m scared \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hello jose gaytan, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. Dr. Young-Lee is out of the office until 12/30/24.I have forwarded your message to her to review upon her return. If you have any urgent needs, please don't hesitate to call the office at 510-266-5400. Julia Fellows\n", + "----------------------------------------\n", + "idx: 192495\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Katty so much I be waiting \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192494\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank Katty please if you Can soon you know please send a message or call me 510-4888308 or let me k is on the app i’m worry stress out on what dr say to me tnx god bless \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 192493\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for your reply. Here’s the address and phone number I believe. But that’s the correct place that I went and have my colonoscopy done. Can you also let know Cathy if you can please because I’m very frustrated and nervous. They told me that I got cancer that’s what the dr say they foun something bad please if she can call me 510-488-8308 Anytime I’m very concerned.Here’s the info. Thank you so much.East Bay Centers for Digestive Health300 Frank Ogawa Plaza,Suite 450Oakland CA 94612510-444-3297510-444-6421 Fax\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "The colonoscopy report said there were 3 small polyps. We don't have the biopsy results yet and it may take a week. I wanted to let you know that this is really common and probably 90% of people have these. The GI doctor did not say anything about lupus in the report and the GI doctor did not sound concerned. We'll see when the final biopsy report comes back but nothing sounds scary.Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "idx: 192492\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Katy i’m so worried. I already did my colonoscopy, and they found. I believe they call lupus the dr cut them but say 2 they got CANSER HE explain to me that you were gonna receive the results. I’m so worried about this. Please. Can you let me know as soon as soon get the results. I believe biopsy or something that we’re going to do. I have not sleep over this because he said that they were very bad in my blood pressure I believe. Sky rocket On the procedure. Please let me know you can call me if you can. I will take your call anytime. I’m worried about it. Sorry to bother you, Katy, but I’ve been following everything what you’re asking me. Done everything and now this. He mentioned me, they were cancer.\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello, Unfortunately, we have not received any results yet. Can you please let us know the name and address of the facility you had it done at so we can request results.Thank you \n", + "----------------------------------------\n", + "idx: 192491\n", + "Subject: RE: Summary\n", + "----------------------------------------\n", + "Date Sent: 2024-11-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy Thanksgiving I have a question from everything. I already got the appointment for the colonoscopy on the ninth December 9. I’m gonna cancel and I’m gonna follow your instructions to wait after the appointment that we have they were gonna see each other for the physical in December. Is that OK\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No, go ahead and keep the appointment for the colonoscopy on 12/9/24Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "2025-06-17 14:12:44,599 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:44,600 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:44,601 - ✅ similarity: 0.5286\n", + "2025-06-17 14:12:44,601 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : It appears the first 3 tests mentioned require blood work. Correct? I don't think HIV is necessary however I suppose it must be ruled out and I imagine stranger things have occurred with normal life situations such as dental work or blood work being a factor in a positive HIV test. It is simply alarming to hear. Where would the spleen ultrasound take place?Tomorrow is my colonoscopy and I leave 12/21 returning 1/2/25.You can proceed and order the tests. Please let me know if I need a hard copy to take with me. The last few times at Labcorp it has been best to bring a hard copy with me. Please refresh my memory, can I print the orders from the myhealth account?Thank you.Teri\n", + "2025-06-17 14:12:44,602 - Provider's response to this similar message: Not a rush since its stable. You can check the labs non fasting at Labcorp.You can print lab orders using MyHealth on your computer.Click on My Medical Record located on the top left. Click on Ordered Tests in the left side of the screen.From there, you'll see a list of labs and I believe you will be able to print it out.And schedule the Ultrasound at Providence Imaging Center/ Summit Imaging3100 Summit St, GFOakland, CA 94609(general imaging, including CT)P 510-869-8800F 510-506-7713 (Xray, Ultrasound)Katy Young-Lee M.D. \n", + "2025-06-17 14:12:44,602 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:44,607 - Thread ID: 253368251\n", + "--------------------------------------------------------------------------------\n", + "idx: 110737\n", + "Subject: RE:Labs\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Okay, thank you.I successfully printed all 4 orders.Teri\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "No response\n", + "----------------------------------------\n", + "idx: 110736\n", + "Subject: RE:Labs\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have one last question. I do intermittent fasting so I never eat before noon and whenever I get blood drawn it is typically around 11:30am so I have not eaten. Therefore, most of or all of my blood work is done while fasting. Just wondering if the fasting could lower my WBC? Could we do a WBC blood test in the afternoon after I've eaten before doing all the other tests? OR do you think it is best to have all tests done?Thank you.Teri\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "Fasting should not impact the WBC count. Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "idx: 110735\n", + "Subject: RE:Labs\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It appears the first 3 tests mentioned require blood work. Correct? I don't think HIV is necessary however I suppose it must be ruled out and I imagine stranger things have occurred with normal life situations such as dental work or blood work being a factor in a positive HIV test. It is simply alarming to hear. Where would the spleen ultrasound take place?Tomorrow is my colonoscopy and I leave 12/21 returning 1/2/25.You can proceed and order the tests. Please let me know if I need a hard copy to take with me. The last few times at Labcorp it has been best to bring a hard copy with me. Please refresh my memory, can I print the orders from the myhealth account?Thank you.Teri\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "Not a rush since its stable. You can check the labs non fasting at Labcorp.You can print lab orders using MyHealth on your computer.Click on My Medical Record located on the top left. Click on Ordered Tests in the left side of the screen.From there, you'll see a list of labs and I believe you will be able to print it out.And schedule the Ultrasound at Providence Imaging Center/ Summit Imaging3100 Summit St, GFOakland, CA 94609(general imaging, including CT)P 510-869-8800F 510-506-7713 (Xray, Ultrasound)Katy Young-Lee M.D. \n", + "----------------------------------------\n", + "idx: 110734\n", + "Subject: RE:Labs\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Okay, thank you.Yes, I simply wonder if being vegan, running and being slim is the cause. I hope so.Also, I rarely get sick. I've not had a cold or flu in years. When I get anything, I usually have mild symptoms and recover very quickly. Anyway, I'm thinking positively.I'll wait to hear back from you regarding what Stanford Hematology has to say.Thank you.Teri\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "No response\n", + "----------------------------------------\n", + "idx: 110733\n", + "Subject: RE:Labs\n", + "----------------------------------------\n", + "Date Sent: 2024-12-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Katy,You have my permission for an econsult. I simply wonder if my being vegan and a runner can have any effect on my WBC count. I'm scheduled for a colonoscopy this Wednesday, 12/18. Is there any reason I should not have the test done?Thank you.Teri\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "You can proceed with the colonoscopy. Yes, I wonder if its because you're vegan and slim too.Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "2025-06-17 14:12:44,608 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:44,609 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:44,609 - ✅ similarity: 0.5240\n", + "2025-06-17 14:12:44,609 - Sender: FELLOWS, JULIA [ S0344707] -> the retrieved similar message : I have a question about COLONOSCOPY (MANUAL ENTRY) resulted on 12/9/24...abnormal. So i’m bad Katy :( i do have it —————-\n", + "2025-06-17 14:12:44,609 - Provider's response to this similar message: I wrote that because you had 3 small polyps. I write abnormal even if it is not cancer but because you had samples taken.Katy Young-Lee M.D.\n", + "2025-06-17 14:12:44,611 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:44,613 - Thread ID: 253289665\n", + "--------------------------------------------------------------------------------\n", + "idx: 114220\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about COLONOSCOPY (MANUAL ENTRY) resulted on 12/9/24...abnormal. So i’m bad Katy :( i do have it —————-\n", + "----------------------------------------\n", + "Provider Response by YOUNG-LEE, KATY:\n", + "I wrote that because you had 3 small polyps. I write abnormal even if it is not cancer but because you had samples taken.Katy Young-Lee M.D.\n", + "----------------------------------------\n", + "2025-06-17 14:12:44,614 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:45,001 - Original Message:\n", + "2025-06-17 14:12:45,002 - original_query_message: Hi Dr J, Analise went to a massage therapist recently who told her she had scoliosis. I would like to get this checked out because she does tend to hunch over. Where should I take her??thanksBarrie\n", + "2025-06-17 14:12:46,502 - Query Parameters:\n", + "2025-06-17 14:12:46,503 - query_message: Hi Dr. J, I’ve noticed lately that my daughter, Karina, seems to have a bit of a curve in her back when she stands, and she often slouches, especially when she’s on her phone or at her desk. A family friend mentioned she might have scoliosis, but I’m not sure how to tell for sure. She hasn’t complained about any pain, but I want to make sure we catch anything early. What’s the best type of doctor or clinic to have her assessed? Thanks so much!\n", + "2025-06-17 14:12:46,503 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:12:46,504 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:12:46,504 - specialty: Internal Medicine\n", + "2025-06-17 14:12:50,414 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:50,414 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:50,415 - ✅ similarity: 0.7529\n", + "2025-06-17 14:12:50,417 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr J, Analise went to a massage therapist recently who told her she had scoliosis. I would like to get this checked out because she does tend to hunch over. Where should I take her??thanksBarrie\n", + "2025-06-17 14:12:50,418 - Provider's response to this similar message: Hi Barrie, Thank you for your message. Did you want an appointment for yourself to be evaluated for scoliosis? If so, please schedule a follow up visit with Dr. Jemelian to discuss this further. You may self-schedule an appointment with Dr. Jemelian via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:12:50,420 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:50,424 - Thread ID: 254387292\n", + "--------------------------------------------------------------------------------\n", + "idx: 65418\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr J, Analise went to a massage therapist recently who told her she had scoliosis. I would like to get this checked out because she does tend to hunch over. Where should I take her??thanksBarrie\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Barrie, Thank you for your message. Did you want an appointment for yourself to be evaluated for scoliosis? If so, please schedule a follow up visit with Dr. Jemelian to discuss this further. You may self-schedule an appointment with Dr. Jemelian via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:12:50,425 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:50,426 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:50,427 - ✅ similarity: 0.5255\n", + "2025-06-17 14:12:50,428 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : In the last few months I have experienced what I believe is sciatica. Usually this occurs later in the day and I have tingling running down the back of both legs. Sometimes I also have some numbness in the bottom of my left foot. The last time is happened was 3 weeks ago but I probably need to get this checked out by someone. When it happens it is hard for me to walk but if I sit for a minute or bend down, in other words change my position from standing, that can help make it less painful and then it usually goes away after a few minutes.Who would you recommend I see for this?Thanks,Karin Klarreich650.575.4432\n", + "2025-06-17 14:12:50,429 - Provider's response to this similar message: Hi Ms. Klarreich,Please schedule an in person appointment with Dr. Chaudhry so that she can properly evaluate and diagnose, and discuss her recommendations (including treatment, possible imaging tests, potentially seeing a specialist if necessary) Phone: 650-498-6500Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:12:50,429 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:50,432 - Thread ID: 252937218\n", + "--------------------------------------------------------------------------------\n", + "idx: 127163\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "In the last few months I have experienced what I believe is sciatica. Usually this occurs later in the day and I have tingling running down the back of both legs. Sometimes I also have some numbness in the bottom of my left foot. The last time is happened was 3 weeks ago but I probably need to get this checked out by someone. When it happens it is hard for me to walk but if I sit for a minute or bend down, in other words change my position from standing, that can help make it less painful and then it usually goes away after a few minutes.Who would you recommend I see for this?Thanks,Karin Klarreich650.575.4432\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Klarreich,Please schedule an in person appointment with Dr. Chaudhry so that she can properly evaluate and diagnose, and discuss her recommendations (including treatment, possible imaging tests, potentially seeing a specialist if necessary) Phone: 650-498-6500Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:12:50,432 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:50,434 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:50,434 - ✅ similarity: 0.5015\n", + "2025-06-17 14:12:50,435 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Chen Thanks so much for the Dr Tay referral, unfortunately he’s not taking patients for scoliosis. I did get at appointment with a Dr Lionel Metz on November 12. I hope he’s helpful. CVS pharmacy keeps asking me to contact you to answer whatever they wanted about the new prescription. Hope you can do that. Connie \n", + "2025-06-17 14:12:50,436 - Provider's response to this similar message: Hi Connie, Thank you for your message and the updates. Can you please confirm which medication you are referring to, so we can call CVS to follow up on your prescription? Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:12:50,437 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:50,442 - Thread ID: 249128384\n", + "--------------------------------------------------------------------------------\n", + "idx: 316414\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It’s the one she just ordered last week—a diuretic pill (not one that also had blood pressure med). She wants me to be able to take them separately ì\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Connie,Thank you for the updates. I look forward to Dr. Metz's recommendations. We'll make sure to contact CVS. Best,vc \n", + "----------------------------------------\n", + "idx: 316413\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Chen Thanks so much for the Dr Tay referral, unfortunately he’s not taking patients for scoliosis. I did get at appointment with a Dr Lionel Metz on November 12. I hope he’s helpful. CVS pharmacy keeps asking me to contact you to answer whatever they wanted about the new prescription. Hope you can do that. Connie \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Connie, Thank you for your message and the updates. Can you please confirm which medication you are referring to, so we can call CVS to follow up on your prescription? Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:12:50,443 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:50,445 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:50,445 - ✅ similarity: 0.4960\n", + "2025-06-17 14:12:50,455 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dana,Now that she is sitting up, she has no pain. But she also took her usual Tylenol after breakfast. She woke up with achy back.She has had no tingling in her hand or feet.She says it’s on her left side mostly.She has also been spending most of her time in bed in the past week due to fatigue. :(I can bring her to see Dr. Waltuch, would that be after she gets an X-ray? Thank you-Homa\n", + "2025-06-17 14:12:50,457 - Provider's response to this similar message: Hello Homa,In that case, let's have your mom see Dr. Waltuch first. She currently has these slots this week:Today, Tuesday 1/14/25 3:45pmThursday 1/16/25 11:45am, 2:15pmWhich would you / your mom like?Best,Dana\n", + "2025-06-17 14:12:50,467 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:50,579 - Thread ID: 255687759\n", + "--------------------------------------------------------------------------------\n", + "idx: 5043\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Homa,I have just scheduled your mother with Dr. Waltuch today at 3:45pm. You should see this reflected in the Appointments section of her MyHealth account now!Take care,Dana\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 5042\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Would you be able to please add the appointment on my mom’s MyHealth account for today at 3:45, for easy reference and access? Thank you so much.Homa415.823.2164\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Homa,I have just scheduled your mother with Dr. Waltuch today at 3:45pm. You should see this reflected in the Appointments section of her MyHealth account now!Take care,Dana\n", + "----------------------------------------\n", + "idx: 5041\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Today at 3:45 would be great. \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 5040\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dana,Now that she is sitting up, she has no pain. But she also took her usual Tylenol after breakfast. She woke up with achy back.She has had no tingling in her hand or feet.She says it’s on her left side mostly.She has also been spending most of her time in bed in the past week due to fatigue. :(I can bring her to see Dr. Waltuch, would that be after she gets an X-ray? Thank you-Homa\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Homa,In that case, let's have your mom see Dr. Waltuch first. She currently has these slots this week:Today, Tuesday 1/14/25 3:45pmThursday 1/16/25 11:45am, 2:15pmWhich would you / your mom like?Best,Dana\n", + "----------------------------------------\n", + "idx: 5039\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,My mom is complaining of a new back pain and I am worried it might be related to her fall. Is it possible to request an X-ray to be done of her today? We have an appointment at 2:30 butt can be at Stanford by 4pm-ish.Thank you so much. Warmly,Homa415.823.2164\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good morning Homa, Would you be available to bring your mother in to see Dr. Waltuch today, Tuesday, 1/14/25, at 3:45pm? Or, are you only requesting an x-ray?Where is your mother's back pain (left side, middle along spine, right side ; upper, mid, lower)? Any radiation of pain down one leg? Any new weakness, numbness, tingling of her arms/legs?Best,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Monday 1/20 for MLK Jr Day\n", + "----------------------------------------\n", + "2025-06-17 14:12:50,581 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:50,582 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:50,584 - ✅ similarity: 0.4885\n", + "2025-06-17 14:12:50,586 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Sherman - I have been plagued by sciatica on and off for years, but it has usually subsided with stretching, heat, or sitting in on the floor. This time it has lasted for a couple of months and I am thinking that maybe I should see an orthopedist about it. What are your recommendations? could you give me a referral? I appreciate your answer!\n", + "2025-06-17 14:12:50,596 - Provider's response to this similar message: Hi Ms. Hills,Please schedule an in person appointment with Dr. Sherman so that she can properly evaluate you and discuss her recommendations. To schedule, call 650-498-6500 or self-schedule through myhealth Visits Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:12:50,602 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:50,607 - Thread ID: 251947347\n", + "--------------------------------------------------------------------------------\n", + "idx: 172186\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Sherman - I have been plagued by sciatica on and off for years, but it has usually subsided with stretching, heat, or sitting in on the floor. This time it has lasted for a couple of months and I am thinking that maybe I should see an orthopedist about it. What are your recommendations? could you give me a referral? I appreciate your answer!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Hills,Please schedule an in person appointment with Dr. Sherman so that she can properly evaluate you and discuss her recommendations. To schedule, call 650-498-6500 or self-schedule through myhealth Visits Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:12:50,609 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:51,217 - Original Message:\n", + "2025-06-17 14:12:51,218 - original_query_message: I have called and they provided a February date. I have been told that it’s the earliest they can do. I was actually hoping to get something in Dec itself. Thanks Nilanjana \n", + "2025-06-17 14:12:52,782 - Query Parameters:\n", + "2025-06-17 14:12:52,783 - query_message: Hi there,I've been struggling with pretty persistent digestive issues for the last few months, including ongoing stomach pain and some unexplained weight loss. I reached out to schedule a specialist appointment, but the soonest they could see me is late February. I’m a bit anxious because my symptoms seem to be getting worse, and I was hoping to be seen much sooner, maybe even in January if possible. Is there any way to get on a cancellation list, or do you recommend anything else I can do while I wait? It’s starting to impact my day-to-day life, so any advice would be really appreciated. Thank you, Arjun\n", + "2025-06-17 14:12:52,783 - receiver: SIM FRONT DESK POOL\n", + "2025-06-17 14:12:52,784 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:12:52,785 - specialty: Primary Care\n", + "2025-06-17 14:12:54,517 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:54,518 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:54,519 - ✅ similarity: 0.6472\n", + "2025-06-17 14:12:54,520 - Sender: RODRIGUEZ, ASHLI [ S0305374] -> the retrieved similar message : Hi,I would like to make an appointment. I have been having stomach aces, constipation and this has been ongoing for 2-3 months.Thank you.\n", + "2025-06-17 14:12:54,520 - Provider's response to this similar message: Dear Gary Dickerson, Thank you for your message, I can help schedule you for a video visit with Dr. Lin, please let me know if you prefer an in-office visit with another available provider? Thank you for allowing us to partner in your care. Ashli Rodriguez, MA PCCStanford Internal Medicine Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or any available provider in our clinic. If there is no availability in our office please reach out to the Express Care clinic at (650) 736-5211, they are open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:54,524 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:54,545 - Thread ID: 248381126\n", + "--------------------------------------------------------------------------------\n", + "idx: 354764\n", + "Subject: RE URGENT\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Out of Rosuvastatin today. Need 90 day prescription - otherwise Aetna insurance will not cover a 30 day prescription - a new requirement for prescriptions.Can you please have Dr. Lin write a 90-day prescription today!!!Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Hello Gary DickersonA refill request has been placed and forwarded to Dr. Lin as a high request. Dominique Vargas, MA\n", + "----------------------------------------\n", + "idx: 354763\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "The pharmacy - CVS - says they need more info from the provider Dr. Lin.Will be out of Rosuvastatin in a couple of days.Can you please help with this request to fill this prescription!!!Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 354762\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Trying to get new prescription for Rosuvastatin. Dr. David Liu was the former doctor who prescribed this into the CVS pharmacy. CVS cannot get Dr. Daivd Liu's response (after trying for over a week), so can Dr. Lin please submit this prescription to CVS? Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Hi Gary, I have sent your request to Dr. Lin.Thank you,JPStanford Internal Medicine Assistant Clinic Manager \n", + "----------------------------------------\n", + "idx: 354761\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This is a video call at 8a Nov 6, correct?\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 354760\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes. Confirmed for 8a Wed, Nov 6.Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 354759\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "A video with Dr. Lin will work. Can you please advise some options that work for Dr. Lin.Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Dear Gary Dickerson, Thank you for your message, Dr. Lin's first available will be Wed. 11/6 at 8am, would you like to book this? Name: Dickerson, Gary MRN: 16091977 Date: Wed 11/6/24 Status: Sch Time: 8:00 AM Length: 30 Visit Type: MYHEALTH VIDEO VISIT RPV [300013610] Copay Due $0.00 Deductible Info Not Available Provider: Lin, Bryant Yenfong, MD Department: STANFORD INTERNAL MEDICINE WEST Dept Address: 211 Quarry Road, 3rd FloorPALO ALTO CA 94304 Dept Phone #: 650-498-9000 Thank you for allowing us to partner in your care. Ashli Rodriguez, MA PCCStanford Internal Medicine Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or any available provider in our clinic. If there is no availability in our office please reach out to the Express Care clinic at (650) 736-5211, they are open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 354758\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I would like to make an appointment. I have been having stomach aces, constipation and this has been ongoing for 2-3 months.Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Dear Gary Dickerson, Thank you for your message, I can help schedule you for a video visit with Dr. Lin, please let me know if you prefer an in-office visit with another available provider? Thank you for allowing us to partner in your care. Ashli Rodriguez, MA PCCStanford Internal Medicine Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or any available provider in our clinic. If there is no availability in our office please reach out to the Express Care clinic at (650) 736-5211, they are open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 354757\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "The sample container was left at the Good Samaritan lab this afternoon.Will await your report.Thank you.\n", + "----------------------------------------\n", + "Provider Response by LIN, BRYANT:\n", + "It's listed as in process. Can take several days to a week.Regards,Bryant Lin, MD\n", + "----------------------------------------\n", + "idx: 354756\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My wife tested positive for h pylori bacteria.Should I test for this?Please advise.Thank you.\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Reasonable to test. We primarily test people who are symptomatic and don't have good evidence/guidelines regarding asymptomatic testing. However, low harms to test.I have ordered the test. Please go to the lab. It is a stool based test.Regards,Bryant Lin, MD\n", + "----------------------------------------\n", + "2025-06-17 14:12:54,548 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:54,548 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:54,549 - ✅ similarity: 0.6342\n", + "2025-06-17 14:12:54,593 - Sender: DHILLON, SARBJIT [ S0075799] -> the retrieved similar message : Dr. Chiang On my biopsies that came back... they Are all clear & cancer free, and I am very thankful for that… But it has not resolved the problem that I have with food being stuck in my esophagus, but only certain foods… There was no answer to that plus nothing was mentioned about The Colon except the polyps were clear.. rectal, bleed with the hemorrhoidsNo advice was given about diet or how to solve the problem… I have a zoom meeting with you but not until January 3. You have nothing open. ..I had a zoom this morning with NP.. she order something for digestive… As I think I don't really have a digestive problem. It's more of a problem the food not reaching the stomach to digest...She does not know my case or know my needs…Maybe some advice you might have… ??Plus, I am now wearing a heart monitor for 14 days plus they're going to put me on a stress test after the heart monitor.. ..Shirley Prickett \n", + "2025-06-17 14:12:54,617 - Provider's response to this similar message: Dear Shirley Prickett, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Thank you, Jeraldine C. Patient Care Coordinator III Stanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "2025-06-17 14:12:54,654 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:54,657 - Thread ID: 251085661\n", + "--------------------------------------------------------------------------------\n", + "idx: 216084\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Chiang On my biopsies that came back... they Are all clear & cancer free, and I am very thankful for that… But it has not resolved the problem that I have with food being stuck in my esophagus, but only certain foods… There was no answer to that plus nothing was mentioned about The Colon except the polyps were clear.. rectal, bleed with the hemorrhoidsNo advice was given about diet or how to solve the problem… I have a zoom meeting with you but not until January 3. You have nothing open. ..I had a zoom this morning with NP.. she order something for digestive… As I think I don't really have a digestive problem. It's more of a problem the food not reaching the stomach to digest...She does not know my case or know my needs…Maybe some advice you might have… ??Plus, I am now wearing a heart monitor for 14 days plus they're going to put me on a stress test after the heart monitor.. ..Shirley Prickett \n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Dear Shirley Prickett, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Thank you, Jeraldine C. Patient Care Coordinator III Stanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "2025-06-17 14:12:54,658 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:54,658 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:54,659 - ✅ similarity: 0.6329\n", + "2025-06-17 14:12:54,659 - Sender: OLIVO, JACKIE [ S0082317] -> the retrieved similar message : Dear Dr. Sharp,I'm having a colonoscopy on December 17th morning.Can I schedule an appointment with you in December or earlier January?I have some other issues that would like to talk to you.Thanks.Andrew\n", + "2025-06-17 14:12:54,659 - Provider's response to this similar message: Dear Andrew Peng, Thank you for your message. Unfortunately, Dr. Sharps soonest appointment is not until 1/30 at 4:30pm. Please let us know if you would like to be schedule in this slot or if you like to address your concerns with a different provider with sooner availability at time. Thank you for allowing us to partner in your care. Best,Elizabeth PCC IIStanford Internal Medicine Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:12:54,660 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:54,665 - Thread ID: 252572350\n", + "--------------------------------------------------------------------------------\n", + "idx: 142426\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Elzabeth,Sorry, I may not be able to stay in Bay Area until Jan. 30, but it should be fine to see Dr. Sharp next time when I come back from oversea travel in March.Thanks.Andrew\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 142425\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Sharp,I'm having a colonoscopy on December 17th morning.Can I schedule an appointment with you in December or earlier January?I have some other issues that would like to talk to you.Thanks.Andrew\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Dear Andrew Peng, Thank you for your message. Unfortunately, Dr. Sharps soonest appointment is not until 1/30 at 4:30pm. Please let us know if you would like to be schedule in this slot or if you like to address your concerns with a different provider with sooner availability at time. Thank you for allowing us to partner in your care. Best,Elizabeth PCC IIStanford Internal Medicine Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:12:54,665 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:54,666 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:54,666 - ✅ similarity: 0.6277\n", + "2025-06-17 14:12:54,667 - Sender: TAMAYO, VANESSA [ S0179938] -> the retrieved similar message : Hello,I have been having gut issues for some time. The primary issue is constant constipation and difficulty in bowel movement. I would like to see a gastroenterologist to discuss my history with this issue and seek treatment. Can I please get a referral to see a specialist.Thanks,Rishabh \n", + "2025-06-17 14:12:54,668 - Provider's response to this similar message: Hi RishabhAre you available for a Video Visit Appointment with Marina Mitchell McIver, NP 11/06/2024 at 8:00 AM ? I have booked this appointment for you so it is not taken. If this does not work no problem at all, you can call us at 650-498-9000 and we will be able to assist you with rescheduling. You can also self schedule on MyHealth. Please let me know if you have any further questions or concerns.Thank you!David GarciaPatient Care CoordinatorStanford Internal MedicineReminder: MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000. \n", + "2025-06-17 14:12:54,668 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:54,670 - Thread ID: 249623979\n", + "--------------------------------------------------------------------------------\n", + "idx: 291473\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I have been having gut issues for some time. The primary issue is constant constipation and difficulty in bowel movement. I would like to see a gastroenterologist to discuss my history with this issue and seek treatment. Can I please get a referral to see a specialist.Thanks,Rishabh \n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Hi RishabhAre you available for a Video Visit Appointment with Marina Mitchell McIver, NP 11/06/2024 at 8:00 AM ? I have booked this appointment for you so it is not taken. If this does not work no problem at all, you can call us at 650-498-9000 and we will be able to assist you with rescheduling. You can also self schedule on MyHealth. Please let me know if you have any further questions or concerns.Thank you!David GarciaPatient Care CoordinatorStanford Internal MedicineReminder: MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000. \n", + "----------------------------------------\n", + "2025-06-17 14:12:54,671 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:54,678 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:54,682 - ✅ similarity: 0.6104\n", + "2025-06-17 14:12:54,684 - Sender: TAMAYO, VANESSA [ S0179938] -> the retrieved similar message : Hi Dr. Lin,I have a colonoscopy scheduled for March 4. Is it possible for you to put in a referral for Gastroscopy as well so that I can try to schedule it together with colonoscopy? The reason why I want a Gastroscopy too is that I frequently have heartburns and want to have a check on my upper digestive system. Thanks!Xiujuan\n", + "2025-06-17 14:12:54,684 - Provider's response to this similar message: Hello Xiujuan LiI have forwarded your message to Dr. Lin.Dominique Vargas, MA\n", + "2025-06-17 14:12:54,693 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:54,695 - Thread ID: 255168956\n", + "--------------------------------------------------------------------------------\n", + "idx: 26610\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Lin,I have a colonoscopy scheduled for March 4. Is it possible for you to put in a referral for Gastroscopy as well so that I can try to schedule it together with colonoscopy? The reason why I want a Gastroscopy too is that I frequently have heartburns and want to have a check on my upper digestive system. Thanks!Xiujuan\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Hello Xiujuan LiI have forwarded your message to Dr. Lin.Dominique Vargas, MA\n", + "----------------------------------------\n", + "2025-06-17 14:12:54,696 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:55,427 - Original Message:\n", + "2025-06-17 14:12:55,428 - original_query_message: CostCo hearing dept. gave me 2 forms to see a ENT doctor. Your instructions are lacking on how to send them to Dr. Ackerman? Front desk was no help at all. More delays on my hearing needs from months ago. Loretta\n", + "2025-06-17 14:12:56,356 - Query Parameters:\n", + "2025-06-17 14:12:56,357 - query_message: Hi, I recently had a hearing test at Costco and they recommended that I follow up with an ENT specialist. I was given a couple of referral papers, but I’m confused about what I’m supposed to do next. Are these forms something I need to send in myself, or does your office handle that? I tried to ask the front desk, but I didn’t really get clear instructions, and I just don’t want to have any more delays. My hearing’s been getting worse over the last year, and I’m starting to have trouble with balance sometimes too. Can someone let me know the best way to make sure these forms get to Dr. Ackerman? Thanks!\n", + "2025-06-17 14:12:56,357 - receiver: LABRIE, VICTORIA\n", + "2025-06-17 14:12:56,358 - department: INTERNAL MEDICINE SAMARITAN SAN JOSE\n", + "2025-06-17 14:12:56,359 - specialty: Internal Medicine\n", + "2025-06-17 14:12:56,840 - \n", + "Number of results: 5\n", + "2025-06-17 14:12:56,843 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:56,847 - ✅ similarity: 0.8265\n", + "2025-06-17 14:12:56,847 - Sender: ACKERMAN, JACK [ S0028226] -> the retrieved similar message : CostCo hearing dept. gave me 2 forms to see a ENT doctor. Your instructions are lacking on how to send them to Dr. Ackerman? Front desk was no help at all. More delays on my hearing needs from months ago. Loretta\n", + "2025-06-17 14:12:56,848 - Provider's response to this similar message: Hi Ms Swanson, Attached is a copy of the sign form you dropped off as well as an ENT referral that Dr Ackerman has placed. Please give their office a call to schedule. Best,Your Care Team \n", + "2025-06-17 14:12:56,850 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:56,856 - Thread ID: 253774407\n", + "--------------------------------------------------------------------------------\n", + "idx: 92075\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "CostCo hearing dept. gave me 2 forms to see a ENT doctor. Your instructions are lacking on how to send them to Dr. Ackerman? Front desk was no help at all. More delays on my hearing needs from months ago. Loretta\n", + "----------------------------------------\n", + "Provider Response by LABRIE, VICTORIA:\n", + "Hi Ms Swanson, Attached is a copy of the sign form you dropped off as well as an ENT referral that Dr Ackerman has placed. Please give their office a call to schedule. Best,Your Care Team \n", + "----------------------------------------\n", + "2025-06-17 14:12:56,857 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:56,858 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:56,858 - ✅ similarity: 0.6329\n", + "2025-06-17 14:12:56,859 - Sender: WU, WING [ S0375674] -> the retrieved similar message : Dr Ackerman,I have two request that I am hoping you can help me with1) Can you please give me a referral to Dr William Spencer Lewis, for a complete ear checkup. There is a slight ringing on my right year, but I never had a ear checkup2) Can you please make a request for all the blood test you need for my physical. The endocrinologist has made a few request. We can get it all done in one drawThanksDevendra\n", + "2025-06-17 14:12:56,860 - Provider's response to this similar message: Hi Mr Vamathevan, In regards to the referral request the clinician has advised that a visit with our office first as ear ringing can have many causes, so proper evaluation is needed. For lab work for physicals, Dr Ackerman will order those 1 month prior to your schedule visit and asked that you complete no earlier than 1-2 weeks prior to scheduled visit. We will send you a my health message when those are placed to remind you. Please call our office to schedule a visit for an evaluation of your ear at 408-371-9010. Best, Your Care Team \n", + "2025-06-17 14:12:56,860 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:56,863 - Thread ID: 249913507\n", + "--------------------------------------------------------------------------------\n", + "idx: 276249\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Ackerman,I have two request that I am hoping you can help me with1) Can you please give me a referral to Dr William Spencer Lewis, for a complete ear checkup. There is a slight ringing on my right year, but I never had a ear checkup2) Can you please make a request for all the blood test you need for my physical. The endocrinologist has made a few request. We can get it all done in one drawThanksDevendra\n", + "----------------------------------------\n", + "Provider Response by LABRIE, VICTORIA:\n", + "Hi Mr Vamathevan, In regards to the referral request the clinician has advised that a visit with our office first as ear ringing can have many causes, so proper evaluation is needed. For lab work for physicals, Dr Ackerman will order those 1 month prior to your schedule visit and asked that you complete no earlier than 1-2 weeks prior to scheduled visit. We will send you a my health message when those are placed to remind you. Please call our office to schedule a visit for an evaluation of your ear at 408-371-9010. Best, Your Care Team \n", + "----------------------------------------\n", + "2025-06-17 14:12:56,864 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:56,865 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:56,866 - ✅ similarity: 0.4849\n", + "2025-06-17 14:12:56,867 - Sender: YODER, CARRIE [ S0089129] -> the retrieved similar message : Dr Ackerman, I cannot go to the Los Olivis Medical group on National Ave. because they do not bill through Stanford. Every Doctor or clinic I go to or Larry goes to must bill through Stanford for the Insurance to pay the bill. I need a referral for Larry and for me to be seen at the Urology clinic at 1000 welch Rd Palo Alto Ca. I canceled the referal at the south bay clinic because I want Larry to be seen by a specialist for his enlarged prostate with Dr. Craig Comiter and not a physcian assistant which is who he was suppose to see at South bay. I also want to be seen by the same doctor at the same clinic as well for my pelvic floor prolapse and rectocele issue. I also want a defecography. I'm having leakage issues which I didn't have before. Thanks celia\n", + "2025-06-17 14:12:56,868 - Provider's response to this similar message: Hi Ms Schleeter, The referral has been redirected to Dr. Craig Comiter with Stanford. Tests for incontinence can be discussed and ordered by the specialist. Best, Your Care Team \n", + "2025-06-17 14:12:56,869 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:56,874 - Thread ID: 254400322\n", + "--------------------------------------------------------------------------------\n", + "idx: 64694\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Ackerman, I cannot go to the Los Olivis Medical group on National Ave. because they do not bill through Stanford. Every Doctor or clinic I go to or Larry goes to must bill through Stanford for the Insurance to pay the bill. I need a referral for Larry and for me to be seen at the Urology clinic at 1000 welch Rd Palo Alto Ca. I canceled the referal at the south bay clinic because I want Larry to be seen by a specialist for his enlarged prostate with Dr. Craig Comiter and not a physcian assistant which is who he was suppose to see at South bay. I also want to be seen by the same doctor at the same clinic as well for my pelvic floor prolapse and rectocele issue. I also want a defecography. I'm having leakage issues which I didn't have before. Thanks celia\n", + "----------------------------------------\n", + "Provider Response by LABRIE, VICTORIA:\n", + "Hi Ms Schleeter, The referral has been redirected to Dr. Craig Comiter with Stanford. Tests for incontinence can be discussed and ordered by the specialist. Best, Your Care Team \n", + "----------------------------------------\n", + "idx: 64693\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Ackerman I asked to go to Los Gatos orthopedic dept. (Stanford). I cannot see anyone out of network. This referral has to be changed to Stanford. I cannot use that referral. I did not asked for this doctor. I don't know anyone who works at that location. Please refer me to Stanford hospital and clinics in Palo Alto or redwood city. \n", + "----------------------------------------\n", + "Provider Response by ACKERMAN, JACK:\n", + "Dr. Vivian Shih is with Stanford and works in the same office as the other Stanford orthopedic physicians. Jack Lee Ackerman, DO \n", + "----------------------------------------\n", + "2025-06-17 14:12:56,875 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:56,877 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:56,887 - ✅ similarity: 0.4596\n", + "2025-06-17 14:12:56,887 - Sender: ACKERMAN, JACK [ S0028226] -> the retrieved similar message : I use a CPAP machine and need a medical doctor to fill out the PGE forms. I know you have my current prescription for the CPAP is this something your office can do?Thank you for your time \n", + "2025-06-17 14:12:56,900 - Provider's response to this similar message: Hi Mr Weeks, Dr Ackerman will be able to fill out the form for you. Please upload the form to this message or you may also drop of the form at our office. Best, Your Care Team \n", + "2025-06-17 14:12:56,901 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:56,944 - Thread ID: 254962156\n", + "--------------------------------------------------------------------------------\n", + "idx: 35606\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "they ask that you go to this https://www.pge.com/medicalpractitionerand use this password On this page, they will need to fill out all of the form fields and enter your 12-digit application confirmation number: PqU2MRjTnmNY\n", + "----------------------------------------\n", + "Provider Response by ACKERMAN, JACK:\n", + "I do not have an account for PGE - you will need to pick up the form from our office and fill out your portion, I have already filled out my portion. Jack Lee Ackerman, DO\n", + "----------------------------------------\n", + "idx: 35605\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I use a CPAP machine and need a medical doctor to fill out the PGE forms. I know you have my current prescription for the CPAP is this something your office can do?Thank you for your time \n", + "----------------------------------------\n", + "Provider Response by LABRIE, VICTORIA:\n", + "Hi Mr Weeks, Dr Ackerman will be able to fill out the form for you. Please upload the form to this message or you may also drop of the form at our office. Best, Your Care Team \n", + "----------------------------------------\n", + "idx: 35604\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Will do thank you for taking the time with this. Josh\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Mr Weeks, We have placed the form in our front office for pick up. You may pick it up at your convenience, Monday- Friday 8am-5pm. We are closed from 12pm-1pm for lunch. Best, Your Care Team\n", + "----------------------------------------\n", + "2025-06-17 14:12:56,948 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:56,959 - ################################################################################START################################################################################\n", + "2025-06-17 14:12:56,960 - ✅ similarity: 0.4115\n", + "2025-06-17 14:12:56,964 - Sender: LACHER, LAURA [ S0365409] -> the retrieved similar message : Can you confirm who approved? Was it insurance? The last message I received from Dr Ackerman said insurance would not approve it until 12 months passed so I shouldn’t schedule until late may\n", + "2025-06-17 14:12:56,967 - Provider's response to this similar message: Hi Mr Leblance, The authorization came from the insurance and was sent to Good Samaritan Copy of the authorization information is below:Plan: Aetna Authorizing Organization: Evicore Obtained via: portal Authorization Number: A229369088 Dates Authorization Valid: 11/04/24 - 05/11/25 CPT Code(s): 71250 Comments: Approved Best, Your Care Team \n", + "2025-06-17 14:12:56,968 - -----------printing the whole thread-------------\n", + "2025-06-17 14:12:56,972 - Thread ID: 250442305\n", + "--------------------------------------------------------------------------------\n", + "idx: 249147\n", + "Subject: RE: CT of chest\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Cool thank you. I hadn’t seen this insurance letter, only the letter from Stanford \n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 249146\n", + "Subject: RE: CT of chest\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you confirm who approved? Was it insurance? The last message I received from Dr Ackerman said insurance would not approve it until 12 months passed so I shouldn’t schedule until late may\n", + "----------------------------------------\n", + "Provider Response by LABRIE, VICTORIA:\n", + "Hi Mr Leblance, The authorization came from the insurance and was sent to Good Samaritan Copy of the authorization information is below:Plan: Aetna Authorizing Organization: Evicore Obtained via: portal Authorization Number: A229369088 Dates Authorization Valid: 11/04/24 - 05/11/25 CPT Code(s): 71250 Comments: Approved Best, Your Care Team \n", + "----------------------------------------\n", + "idx: 249145\n", + "Subject: RE: CT of chest\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "To clarify, I received a letter after this message saying the ct was approved. I assume this is by Good Samaritan. So am I correct that I am cleared to schedule it now, but just do so for late May early June so insurance covers correct? \n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Mr Leblanc, The approval dates for the CT are, Dates Authorization Valid: 11/04/24 - 05/11/25. You may schedule within that time frame. Best, Your Care Team \n", + "----------------------------------------\n", + "idx: 249144\n", + "Subject: RE: CT of chest\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok. Sounds good. Thank you \n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:12:56,973 - ################################################################################END################################################################################\n", + "2025-06-17 14:12:57,508 - Original Message:\n", + "2025-06-17 14:12:57,509 - original_query_message: Hello,I am slowly regaining mobility in dealing with my RA, and since I have gained the weight I had lost when I was walking, hiking and just moving, I feel that it's a good time to go ahead with the weight management shots. Please let me know what the procedure is. Thank you.\n", + "2025-06-17 14:12:59,038 - Query Parameters:\n", + "2025-06-17 14:12:59,039 - query_message: Hi there, I’ve been dealing with rheumatoid arthritis for a couple of years now, and while my joint pain is getting more manageable, I’ve noticed that the less active lifestyle has led me to put on quite a bit of weight. Now that my flare-ups are less frequent and I can do a little more physical activity, I really want to tackle my weight, but it’s been hard to make progress on my own. I’ve heard about some injectable medications for weight loss, and I’m curious if they might be an option for me considering my RA and the meds I’m already on. Could you tell me a bit about how the process works and what I’d need to do to get started? Thank you so much!\n", + "2025-06-17 14:12:59,040 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:12:59,042 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:12:59,043 - specialty: Internal Medicine\n", + "2025-06-17 14:13:01,891 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:01,891 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:01,892 - ✅ similarity: 0.6633\n", + "2025-06-17 14:13:01,892 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello,I am slowly regaining mobility in dealing with my RA, and since I have gained the weight I had lost when I was walking, hiking and just moving, I feel that it's a good time to go ahead with the weight management shots. Please let me know what the procedure is. Thank you.\n", + "2025-06-17 14:13:01,893 - Provider's response to this similar message: Hi Evelyne, Thank you for your message. Dr. Thornton reviewed and advises the following:\"I sent an rx for Mounjaro, which will likely be denied. PA team should try. Let her know if denied, the next option is self pay through Eli Lilly (~ $500 per month, versus 1300/mo). \"Dr. Thornton sent in a prescription for: tirzepatide (weight loss) (Zepbound) 2.5 mg/0.5 mL prefilled pen; Sig: Inject 1 prefilled pen syringe (2.5 mg total) subcutaneous (under the skin) every 7 days.The prior authorization request has been placed. We will let you know as soon as we hear back from our PA team. Please let us know if you have any questions or concerns.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:01,894 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:01,900 - Thread ID: 250276960\n", + "--------------------------------------------------------------------------------\n", + "idx: 257224\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I will go ahead with Lilly direct. Thank you.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 257223\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I forgot to ask how one gets Eli Lilly (~ $500 per month, versus 1300/mo)?Maybe I will be lucky and it will be covered:)Thank you.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Evelyne,Thank you for your response. It looks like Dr. Thornton did send in a prescription for Zepbound initially and currently it looks like this medication has been denied by insurance as it is a plan exclusion. Mounjaro and Zepbound are the same medication (tirzepatide) - but different brand names.Lilly Direct Pharmacy is an option for patients to self-pay if their insurance doesn't cover. It is usually at a discounted price of $399 for a 1-month prescription of 2.5 mg (starting dose) or $549 for 5 mg.Would you like us to proceed with sending the prescription to Lilly Direct? All the best,Shana, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "idx: 257222\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I understand about waiting to see if the insurance will cover mounjaro, but confused about the Rx for Zepbound. Isn’t it one or the other ?Thank you.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 257221\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I am slowly regaining mobility in dealing with my RA, and since I have gained the weight I had lost when I was walking, hiking and just moving, I feel that it's a good time to go ahead with the weight management shots. Please let me know what the procedure is. Thank you.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Evelyne, Thank you for your message. Dr. Thornton reviewed and advises the following:\"I sent an rx for Mounjaro, which will likely be denied. PA team should try. Let her know if denied, the next option is self pay through Eli Lilly (~ $500 per month, versus 1300/mo). \"Dr. Thornton sent in a prescription for: tirzepatide (weight loss) (Zepbound) 2.5 mg/0.5 mL prefilled pen; Sig: Inject 1 prefilled pen syringe (2.5 mg total) subcutaneous (under the skin) every 7 days.The prior authorization request has been placed. We will let you know as soon as we hear back from our PA team. Please let us know if you have any questions or concerns.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:01,901 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:01,901 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:01,902 - ✅ similarity: 0.5699\n", + "2025-06-17 14:13:01,903 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Pinyavat, Hope all is well. Just wanted to ask you a question. Are you able to prescribe weight loss meds or would I have to see someone from the weight loss clinic? Thanks and happy holidays,Vanessa Ochoa \n", + "2025-06-17 14:13:01,903 - Provider's response to this similar message: Hi Vanessa, Thank you for your message.Dr. Pinyavat is out of the office this week and will return to clinic on Tuesday 12/31/24.I recommend scheduling a follow up visit with Dr. Pinyavat to discuss weight loss medications further with you. You may self-schedule an appointment with Dr. Pinyavat via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:01,904 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:01,906 - Thread ID: 254263767\n", + "--------------------------------------------------------------------------------\n", + "idx: 71248\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Pinyavat, Hope all is well. Just wanted to ask you a question. Are you able to prescribe weight loss meds or would I have to see someone from the weight loss clinic? Thanks and happy holidays,Vanessa Ochoa \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Vanessa, Thank you for your message.Dr. Pinyavat is out of the office this week and will return to clinic on Tuesday 12/31/24.I recommend scheduling a follow up visit with Dr. Pinyavat to discuss weight loss medications further with you. You may self-schedule an appointment with Dr. Pinyavat via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:01,907 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:01,908 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:01,908 - ✅ similarity: 0.5422\n", + "2025-06-17 14:13:01,908 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Chaudhry, I hope you are doing well. I want to update you with my progress. Im doing Weight Loss treatment/injection for exactly 4 months now. My total loss is 15 lbs. im not eating much but I expect more progress. Is it normal? Thank you for your input. Best, Lena\n", + "2025-06-17 14:13:01,909 - Provider's response to this similar message: Hi Yelena, Thank you for your message! Dr. Chaudhry reviewed and requested to schedule a video visit with her for further discussion. Please self-schedule an appointment via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:01,909 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:01,912 - Thread ID: 255492496\n", + "--------------------------------------------------------------------------------\n", + "idx: 13168\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chaudhry, I hope you are doing well. I want to update you with my progress. Im doing Weight Loss treatment/injection for exactly 4 months now. My total loss is 15 lbs. im not eating much but I expect more progress. Is it normal? Thank you for your input. Best, Lena\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Yelena, Thank you for your message! Dr. Chaudhry reviewed and requested to schedule a video visit with her for further discussion. Please self-schedule an appointment via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:01,913 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:01,913 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:01,913 - ✅ similarity: 0.5415\n", + "2025-06-17 14:13:01,914 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Dr. Kuo,I understand there are a lot of weight lose drugs on the market. I need to loose about 30 pounds. Can you prescribe a weight lose drug for me?Merry Christmas, Happy New Year and Happy Hanukkah! Thank you,Barbara Yee\n", + "2025-06-17 14:13:01,915 - Provider's response to this similar message: Hi Barbara, Thank you for your message. A follow up visit with Dr. Kuo is needed to discuss any weight loss medications. You may self-schedule an appointment with Dr. Kuo via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:01,915 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:01,919 - Thread ID: 253978336\n", + "--------------------------------------------------------------------------------\n", + "idx: 82982\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Kuo,I understand there are a lot of weight lose drugs on the market. I need to loose about 30 pounds. Can you prescribe a weight lose drug for me?Merry Christmas, Happy New Year and Happy Hanukkah! Thank you,Barbara Yee\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Barbara, Thank you for your message. A follow up visit with Dr. Kuo is needed to discuss any weight loss medications. You may self-schedule an appointment with Dr. Kuo via Myhealth or by calling our scheduling desk at 650-498-6500.Thank you,Jessica Gonzales, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:01,920 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:01,920 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:01,921 - ✅ similarity: 0.5302\n", + "2025-06-17 14:13:01,921 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Bennitt, I hope you're well!Last time I had a physical, I talked about my struggles with weight loss (and hair loss, fatigue, brain fog, irritability). I believe all of my bloodwork came back normal. I mentioned I wanted to try to continue losing weight naturally before trying any medications. I am active (box, HIIT workouts 4-5x/week, walk my dog daily). I've tried intermittent fasting, increasing protein, cutting back on carbs, sugars, etc., counting steps, berberine supplements, and took out my nexplanon. The biggest drop in weight has been ~5 lbs. The last time I was able to lose a significant amount of weight was in my early 20's when I was able to go to the gym daily for 1-2 hours and counted/logged every calorie (religiously sticking to 1200 calories/day). I think you had mentioned metformin as a potential option to explore for weight loss and I'd be curious to learn more. I'm also wondering if I should redo some of my blood work to see if any issues arise.Thanks!\n", + "2025-06-17 14:13:01,922 - Provider's response to this similar message: Good afternoon Caitlin,My name is Lillian, Medical Assistant to Dr. Bennitt, Eliza Gaenger. I just left you a voicemail, but I will relay the message here in this myHealth message as well. We'd like for you to schedule a visit with Dr. Bennitt to discuss weight loss and medication options. For insurance purposes, if a new medication were to be dispensed, we would need to document a height and weight check. Please schedule an appointment in the myHealth app or give our scheduling department a call at 650-498-6500 and one of our representatives would gladly assist you.Best,Lillian Wang, MAInternal MedicineMenlo Medical Clinic650-498-6500\n", + "2025-06-17 14:13:01,923 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:01,925 - Thread ID: 252053734\n", + "--------------------------------------------------------------------------------\n", + "idx: 166152\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sounds good, I will be there early. Thanks again! \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 166151\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Caitlin,I have moved up your appointment with Dr. Bennitt to tomorrow, Wednesday, 12/4/24, at 9:40am. You should see this reflected in the Appointments section of your MyHealth account. We'd very much appreciate it if you can arrive 10-15 minutes early for the check-in and rooming process! Take care,Dana\n", + "----------------------------------------\n", + "Provider Response by BENNITT, ELIZA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 166150\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dana, that’s great! I can make it tomorrow.Thank you! \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Caitlin,I have moved up your appointment with Dr. Bennitt to tomorrow, Wednesday, 12/4/24, at 9:40am. You should see this reflected in the Appointments section of your MyHealth account. We'd very much appreciate it if you can arrive 10-15 minutes early for the check-in and rooming process! Take care,Dana\n", + "----------------------------------------\n", + "idx: 166149\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lillian, thanks so much for the call.I just called the office and it looks like the next available appointment isn't until January 8th. I live close by, so I'm happy to come in sooner if any availability opens up earlier than that. I'm also open to coming in for the weigh-in and measurements and having a separate appointment virtually with Dr. Bennitt. Otherwise, I will be there on January 8th. Thanks!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Caitlin,There is a cancellation tomorrow, Wed, 12/4 at 9:40am with Dr. Bennitt! Are you available to come in then?Best,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Tuesday 12/24 afternoon and Wednesday 12/25 for Christmas\n", + "----------------------------------------\n", + "idx: 166148\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Bennitt, I hope you're well!Last time I had a physical, I talked about my struggles with weight loss (and hair loss, fatigue, brain fog, irritability). I believe all of my bloodwork came back normal. I mentioned I wanted to try to continue losing weight naturally before trying any medications. I am active (box, HIIT workouts 4-5x/week, walk my dog daily). I've tried intermittent fasting, increasing protein, cutting back on carbs, sugars, etc., counting steps, berberine supplements, and took out my nexplanon. The biggest drop in weight has been ~5 lbs. The last time I was able to lose a significant amount of weight was in my early 20's when I was able to go to the gym daily for 1-2 hours and counted/logged every calorie (religiously sticking to 1200 calories/day). I think you had mentioned metformin as a potential option to explore for weight loss and I'd be curious to learn more. I'm also wondering if I should redo some of my blood work to see if any issues arise.Thanks!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good afternoon Caitlin,My name is Lillian, Medical Assistant to Dr. Bennitt, Eliza Gaenger. I just left you a voicemail, but I will relay the message here in this myHealth message as well. We'd like for you to schedule a visit with Dr. Bennitt to discuss weight loss and medication options. For insurance purposes, if a new medication were to be dispensed, we would need to document a height and weight check. Please schedule an appointment in the myHealth app or give our scheduling department a call at 650-498-6500 and one of our representatives would gladly assist you.Best,Lillian Wang, MAInternal MedicineMenlo Medical Clinic650-498-6500\n", + "----------------------------------------\n", + "2025-06-17 14:13:01,926 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:02,602 - Original Message:\n", + "2025-06-17 14:13:02,605 - original_query_message: Good morning! I would like to see if you have any good recommendations for a Chinese speaking (either Cantonese or Mandarin) male or female physician for my father, who is currently in Eden for a hepatic cyst hemorrhage, E coli sepsis, and biliary obstruction. He's developed a. flutter as well. I would love someone detail oriented and proactive, who doesn't mind explaining details to my dad who is a retired biochemist who worked for decades with CIBA-Geigy (now Novartis) in pharm research. Any help would be greatly appreciated! We are expecting him to need to first go to a SNF to get strong before he goes home and I will probably be the person organizing all of his post op appts. Thank you! Berenice\n", + "2025-06-17 14:13:03,833 - Query Parameters:\n", + "2025-06-17 14:13:03,834 - query_message: Hi there, I’m hoping to get some advice for my mom, who’s currently staying at Eden hospital after a rough couple of weeks. She was admitted with a large liver cyst that ended up bleeding, and things got complicated with a bile duct blockage and a pretty serious E. coli infection. Now to top it off, she’s been having some irregular heart rhythms the doctors called atrial flutter. It’s been a lot to process.We’re a Mandarin-speaking family, and while my mom understands some English, she feels much more comfortable discussing her health in her native language. She’s a retired chemistry professor and likes to have everything explained in detail—it helps her feel less anxious and more involved. I’d be super grateful for any recommendations for either a Mandarin or Cantonese-speaking doctor (male or female) who’s thorough, patient, and used to complex cases like this. My mom will likely need some time in a skilled nursing facility before she’s strong enough to come home, and I’ll be organizing follow-ups and post-hospital care for her.If anyone has personal experience with compassionate, detail-oriented providers in the area, please let me know! I appreciate any help as we try to get my mom back on her feet. Thank you so much!\n", + "2025-06-17 14:13:03,836 - receiver: SHARIFI, HOUMAN\n", + "2025-06-17 14:13:03,837 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS CASTRO VALLEY\n", + "2025-06-17 14:13:03,838 - specialty: Primary Care\n", + "2025-06-17 14:13:04,393 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:04,394 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:04,394 - ✅ similarity: 0.7801\n", + "2025-06-17 14:13:04,396 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Good morning! I would like to see if you have any good recommendations for a Chinese speaking (either Cantonese or Mandarin) male or female physician for my father, who is currently in Eden for a hepatic cyst hemorrhage, E coli sepsis, and biliary obstruction. He's developed a. flutter as well. I would love someone detail oriented and proactive, who doesn't mind explaining details to my dad who is a retired biochemist who worked for decades with CIBA-Geigy (now Novartis) in pharm research. Any help would be greatly appreciated! We are expecting him to need to first go to a SNF to get strong before he goes home and I will probably be the person organizing all of his post op appts. Thank you! Berenice\n", + "2025-06-17 14:13:04,397 - Provider's response to this similar message: Hello Ellen,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.Dr Richard Ho and Dr Ling Xu are Chinese speaking physicians in our practice. They are both wonderful doctors and will take great care of your father. Best regards,Corina Scheel Clark, PA\n", + "2025-06-17 14:13:04,398 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:04,402 - Thread ID: 253956496\n", + "--------------------------------------------------------------------------------\n", + "idx: 84147\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning! I would like to see if you have any good recommendations for a Chinese speaking (either Cantonese or Mandarin) male or female physician for my father, who is currently in Eden for a hepatic cyst hemorrhage, E coli sepsis, and biliary obstruction. He's developed a. flutter as well. I would love someone detail oriented and proactive, who doesn't mind explaining details to my dad who is a retired biochemist who worked for decades with CIBA-Geigy (now Novartis) in pharm research. Any help would be greatly appreciated! We are expecting him to need to first go to a SNF to get strong before he goes home and I will probably be the person organizing all of his post op appts. Thank you! Berenice\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Hello Ellen,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.Dr Richard Ho and Dr Ling Xu are Chinese speaking physicians in our practice. They are both wonderful doctors and will take great care of your father. Best regards,Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "2025-06-17 14:13:04,403 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:04,404 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:04,405 - ✅ similarity: 0.5539\n", + "2025-06-17 14:13:04,406 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Dear Dr. Sharifi,Since I wrote you yesterday I have been in touch by phone with Dr. Johnson's on-call colleague. He suggested that I take another metoprolol to see if I could get my heart rate down. (I was trying to decide if I needed to go to urgent care. )My rate did come down and I have felt better since. I will try to get an appointment Monday with Dr. Johnson, but have my doubts.(Dr. Johnson left Stanford so if you have someone you think would see me that you like I don't mind changing.) I definitely do not feel my normal healthy self. ANy advice you could give me, I would appreciate.When I just checked my Apple Watch, I am back in AFib again.\n", + "2025-06-17 14:13:04,407 - Provider's response to this similar message: Hello Terry,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.I'm glad you were able to be seen in the Express Care Clinic over the holiday weekend. I'm also glad to hear that taking another metoprolol helped bring your heart rate down and that you felt better afterward. I recommend scheduling an appointment with your current cardiologist as soon as possible. It may take weeks or months to establish care with a new cardiologist. In the meantime, continue to monitor your symptoms and if you experience any severe symptoms such as chest pain, shortness of breath, or dizziness, please seek immediate medical attention.If you have any further questions or concerns, feel free to reach out.Take care,Corina Scheel Clark, PA\n", + "2025-06-17 14:13:04,407 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:04,410 - Thread ID: 251873892\n", + "--------------------------------------------------------------------------------\n", + "idx: 176475\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Sharifi,Since I wrote you yesterday I have been in touch by phone with Dr. Johnson's on-call colleague. He suggested that I take another metoprolol to see if I could get my heart rate down. (I was trying to decide if I needed to go to urgent care. )My rate did come down and I have felt better since. I will try to get an appointment Monday with Dr. Johnson, but have my doubts.(Dr. Johnson left Stanford so if you have someone you think would see me that you like I don't mind changing.) I definitely do not feel my normal healthy self. ANy advice you could give me, I would appreciate.When I just checked my Apple Watch, I am back in AFib again.\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Hello Terry,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.I'm glad you were able to be seen in the Express Care Clinic over the holiday weekend. I'm also glad to hear that taking another metoprolol helped bring your heart rate down and that you felt better afterward. I recommend scheduling an appointment with your current cardiologist as soon as possible. It may take weeks or months to establish care with a new cardiologist. In the meantime, continue to monitor your symptoms and if you experience any severe symptoms such as chest pain, shortness of breath, or dizziness, please seek immediate medical attention.If you have any further questions or concerns, feel free to reach out.Take care,Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "2025-06-17 14:13:04,410 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:04,412 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:04,413 - ✅ similarity: 0.5056\n", + "2025-06-17 14:13:04,413 - Sender: TREJO, MIRIAM [ S0322530] -> the retrieved similar message : Dear Dr. Sharifi, With great regret due to the non acceptance of Blue Shield PPOs by UHC, all my care team is now out of network.With surgery scheduled, my physical with you to review the ‘eye opening” raise in my cholesterol to the surgery for hernia on 11/27 with Dr. Hom are all off. I am devastated I am loosing you as my PCP and Dr. Hom for the surgery. Is there any way you could give some opinion of a Dr you share space at Calaroga? Dr. Marchiano, caught my eye. I want to stay in CV also. If you have recommendations I would appreciate. I loved your approach to my care and thank you so much. It kills me to say goodbye. Greg King\n", + "2025-06-17 14:13:04,419 - Provider's response to this similar message: Dear Gregory,I'm truly sorry to hear about the insurance changes and the impact on your care. It's been a pleasure working with you, and I understand how frustrating this situation must be. Stanford got back most of Blue shield products except 1. IFP PPO and Covered California products. So if you insurance is none of the above then you may still can see us.Regarding your request for a recommendation, I do not know Dr. Marchiano in person but have few patients with him and they were all happy. If you have any further questions or need assistance with your transition, please don't hesitate to reach out.Wishing you all the best with your upcoming surgery and future healthcare.Houman Sharifi, MD\n", + "2025-06-17 14:13:04,426 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:04,430 - Thread ID: 248240687\n", + "--------------------------------------------------------------------------------\n", + "idx: 361542\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Sharifi, With great regret due to the non acceptance of Blue Shield PPOs by UHC, all my care team is now out of network.With surgery scheduled, my physical with you to review the ‘eye opening” raise in my cholesterol to the surgery for hernia on 11/27 with Dr. Hom are all off. I am devastated I am loosing you as my PCP and Dr. Hom for the surgery. Is there any way you could give some opinion of a Dr you share space at Calaroga? Dr. Marchiano, caught my eye. I want to stay in CV also. If you have recommendations I would appreciate. I loved your approach to my care and thank you so much. It kills me to say goodbye. Greg King\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Dear Gregory,I'm truly sorry to hear about the insurance changes and the impact on your care. It's been a pleasure working with you, and I understand how frustrating this situation must be. Stanford got back most of Blue shield products except 1. IFP PPO and Covered California products. So if you insurance is none of the above then you may still can see us.Regarding your request for a recommendation, I do not know Dr. Marchiano in person but have few patients with him and they were all happy. If you have any further questions or need assistance with your transition, please don't hesitate to reach out.Wishing you all the best with your upcoming surgery and future healthcare.Houman Sharifi, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:04,431 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:04,431 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:04,432 - ✅ similarity: 0.4927\n", + "2025-06-17 14:13:04,433 - Sender: CLARK, CORINA [ S0333480] -> the retrieved similar message : Hello David,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.The emergency department visit notes are in your chart. Dr Sharifi will review the notes at your upcoming appointment. In the meantime, continue taking the Eliquis as prescribed by the emergency department. Take care.Corina Scheel Clark, PA\n", + "2025-06-17 14:13:04,435 - Provider's response to this similar message: Yes, I have the records, please keep taking the medicine ( blood thinner) until you see me on 2/3/25.Houman Sharifi MD\n", + "2025-06-17 14:13:04,436 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:04,449 - Thread ID: 255711333\n", + "--------------------------------------------------------------------------------\n", + "idx: 4384\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello David,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.The emergency department visit notes are in your chart. Dr Sharifi will review the notes at your upcoming appointment. In the meantime, continue taking the Eliquis as prescribed by the emergency department. Take care.Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Yes, I have the records, please keep taking the medicine ( blood thinner) until you see me on 2/3/25.Houman Sharifi MD\n", + "----------------------------------------\n", + "idx: 4383\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "On sat-1/11-er Eden found blood clot right calf- put me on Eliquis 5mg—-10mg bid x 7 days—then 5mg bid—they said they would send all detail to u and Dr,An\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Hello David,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Sharifi) and I will be responding to your message today.The emergency department visit notes are in your chart. Dr Sharifi will review the notes at your upcoming appointment. In the meantime, continue taking the Eliquis as prescribed by the emergency department. Take care.Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "2025-06-17 14:13:04,463 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:04,463 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:04,465 - ✅ similarity: 0.4854\n", + "2025-06-17 14:13:04,472 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Ba DroodThis is regarding my father inlow if is OK for you please take him as a new patient. you can call me 510 276 6663 or my wife 510 314 6668thanks Mahmoud Afkhami\n", + "2025-06-17 14:13:04,473 - Provider's response to this similar message: Heather from our office will call and check insurance eligibility. If his insurance accepted by Stanford I am more than happy to take care of him.Houman Sharifi MD\n", + "2025-06-17 14:13:04,490 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:04,523 - Thread ID: 253437599\n", + "--------------------------------------------------------------------------------\n", + "idx: 107638\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "thanks his insurance is fin\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 107637\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ba DroodThis is regarding my father inlow if is OK for you please take him as a new patient. you can call me 510 276 6663 or my wife 510 314 6668thanks Mahmoud Afkhami\n", + "----------------------------------------\n", + "Provider Response by SHARIFI, HOUMAN:\n", + "Heather from our office will call and check insurance eligibility. If his insurance accepted by Stanford I am more than happy to take care of him.Houman Sharifi MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:04,524 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:05,337 - Original Message:\n", + "2025-06-17 14:13:05,339 - original_query_message: Hi Dr Shah,I am feeling so much better today! Thank you!Also my husband reminded that in terms of change in exercise, I stopped doing yoga ever since we moved a year ago but previously I would do that 2-3 times per week, with a lot of focus on core and pelvic floor strengthening - perhaps that is a cause and it’ll be something I’ll try to add back into my routine. I was reading a weak pelvic floor can manifest in similar sensations as a UTI (pressure, sense of urgency, burning).Also I have my ultrasound Friday.Thanks so much,Stephanie \n", + "2025-06-17 14:13:06,906 - Query Parameters:\n", + "2025-06-17 14:13:06,908 - query_message: Hi Dr. Shah, hope you’re having a good day! I wanted to get your opinion on something—I’ve been dealing with some bladder discomfort lately, like this weird pressure and occasional urgency, but my tests for a UTI keep coming back negative. I realized that ever since my job got a lot busier, I haven’t been doing my Pilates classes, which used to really help with my core and pelvic strength. Could that break from exercise be related to these symptoms? I’ve heard that pelvic floor issues can sometimes mimic urinary tract problems, but I’m not sure if that applies in my situation. I’m also waiting for results from a pelvic ultrasound this week and just wanted to check if there’s anything specific I should mention or look out for. Thanks so much for your help!\n", + "2025-06-17 14:13:06,909 - receiver: BVD FAMILY MED MYHEALTH POOL\n", + "2025-06-17 14:13:06,910 - department: FAMILY MEDICINE BVMG DANVILLE\n", + "2025-06-17 14:13:06,910 - specialty: Family Medicine\n", + "2025-06-17 14:13:07,838 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:07,838 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:07,839 - ✅ similarity: 0.8016\n", + "2025-06-17 14:13:07,840 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Shah,I am feeling so much better today! Thank you!Also my husband reminded that in terms of change in exercise, I stopped doing yoga ever since we moved a year ago but previously I would do that 2-3 times per week, with a lot of focus on core and pelvic floor strengthening - perhaps that is a cause and it’ll be something I’ll try to add back into my routine. I was reading a weak pelvic floor can manifest in similar sensations as a UTI (pressure, sense of urgency, burning).Also I have my ultrasound Friday.Thanks so much,Stephanie \n", + "2025-06-17 14:13:07,840 - Provider's response to this similar message: Great to hear, Stephanie.Let's see if you can restart those exercises which perhaps can help minimize your symptoms over time. Again, we should consider pelvic floor physical therapy which may be quite valuable to you.Keep me posted.Best, Dr. Shah\n", + "2025-06-17 14:13:07,841 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:07,849 - Thread ID: 252832772\n", + "--------------------------------------------------------------------------------\n", + "idx: 131208\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Shah,Can you have your office fax a referral to John Muir PT in Concord? It’s in network for me.Fax # 925.674.2378Thanks!\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 131207\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’d love to do the pelvic floor therapy - can you send a referral or do you want to wait until we get ultrasound results - thanks!\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Sure, will send it here. Please call in a day or two to schedule if you don't hear from them.Reclaim Pelvic Therapy380 Civic Dr., Ste 100, Pleasant Hill, CA 94523Phone: (925) 683-7551 Other option is Pelvic health and rehab in Walnut Creek. (925) 954-7982Best, Dr. Shah\n", + "----------------------------------------\n", + "idx: 131206\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Shah,I am feeling so much better today! Thank you!Also my husband reminded that in terms of change in exercise, I stopped doing yoga ever since we moved a year ago but previously I would do that 2-3 times per week, with a lot of focus on core and pelvic floor strengthening - perhaps that is a cause and it’ll be something I’ll try to add back into my routine. I was reading a weak pelvic floor can manifest in similar sensations as a UTI (pressure, sense of urgency, burning).Also I have my ultrasound Friday.Thanks so much,Stephanie \n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Great to hear, Stephanie.Let's see if you can restart those exercises which perhaps can help minimize your symptoms over time. Again, we should consider pelvic floor physical therapy which may be quite valuable to you.Keep me posted.Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:13:07,849 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:07,850 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:07,850 - ✅ similarity: 0.5567\n", + "2025-06-17 14:13:07,851 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Ms. Pon,I hope this message finds you well. I’m experiencing UTI/kidney stone symptoms again and was wondering if you have any recommendations for home care or over-the-counter medications that might help in the meantime. I can also schedule another PCP appointment if necessary.Thank you for your guidance.Best regards,Nisha\n", + "2025-06-17 14:13:07,851 - Provider's response to this similar message: Hi Nisha, Meagan is not in office today, If you are having symptoms of a UTI, it is best that you are scheduled an in person visit so that you may leave a urine sample and it can be tested. I can help you schedule today with an available clinic or you may go to the closet Urgent care to be treated. \n", + "2025-06-17 14:13:07,852 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:07,854 - Thread ID: 253977181\n", + "--------------------------------------------------------------------------------\n", + "idx: 83069\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Ms. Pon,I hope this message finds you well. I’m experiencing UTI/kidney stone symptoms again and was wondering if you have any recommendations for home care or over-the-counter medications that might help in the meantime. I can also schedule another PCP appointment if necessary.Thank you for your guidance.Best regards,Nisha\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Nisha, Meagan is not in office today, If you are having symptoms of a UTI, it is best that you are scheduled an in person visit so that you may leave a urine sample and it can be tested. I can help you schedule today with an available clinic or you may go to the closet Urgent care to be treated. \n", + "----------------------------------------\n", + "2025-06-17 14:13:07,854 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:07,855 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:07,855 - ✅ similarity: 0.5522\n", + "2025-06-17 14:13:07,855 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Dr. Kilborn,It seems as though I may have some sort of urinary tract infection. My urine seems to be darker in color than it usually is and has a strong odor. I am also urinating more than usual but not drinking more water than usual.What are your thoughts and do you think I may need some sort of antibiotic? Thank you Nada\n", + "2025-06-17 14:13:07,855 - Provider's response to this similar message: Good morning Nada, It is best that you are seen for this. I can assist you with scheduling an appointment. Would you be able to come in this afternoon at 2:40? \n", + "2025-06-17 14:13:07,856 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:07,859 - Thread ID: 248895974\n", + "--------------------------------------------------------------------------------\n", + "idx: 328437\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Kilborn,It seems as though I may have some sort of urinary tract infection. My urine seems to be darker in color than it usually is and has a strong odor. I am also urinating more than usual but not drinking more water than usual.What are your thoughts and do you think I may need some sort of antibiotic? Thank you Nada\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Good morning Nada, It is best that you are seen for this. I can assist you with scheduling an appointment. Would you be able to come in this afternoon at 2:40? \n", + "----------------------------------------\n", + "2025-06-17 14:13:07,860 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:07,861 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:07,861 - ✅ similarity: 0.5466\n", + "2025-06-17 14:13:07,862 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Parekh, I hope you are well. I have been struggling with a UTI for the past few days. I have taken OTC medicines but symptoms persist. Do you have any recommendations for me? I have taken an Rx in the past but I'm not sure what's appropriate for this time. Thank you,Perri\n", + "2025-06-17 14:13:07,863 - Provider's response to this similar message: Good morning Perri, You will need to be seen to discuss these symptoms and also we need to get a Urine sample. I have scheduled you with Dr. Parekh at 3:20 am today, does that work for you? \n", + "2025-06-17 14:13:07,863 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:07,866 - Thread ID: 251148914\n", + "--------------------------------------------------------------------------------\n", + "idx: 212838\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Parekh, I hope you are well. I have been struggling with a UTI for the past few days. I have taken OTC medicines but symptoms persist. Do you have any recommendations for me? I have taken an Rx in the past but I'm not sure what's appropriate for this time. Thank you,Perri\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Good morning Perri, You will need to be seen to discuss these symptoms and also we need to get a Urine sample. I have scheduled you with Dr. Parekh at 3:20 am today, does that work for you? \n", + "----------------------------------------\n", + "2025-06-17 14:13:07,867 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:07,868 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:07,868 - ✅ similarity: 0.5436\n", + "2025-06-17 14:13:07,868 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Urinalysis with Microscopic resulted on 12/28/24 at 12:59 AM.hello doctor, these results don't show a test for Chlamydia and Gonorrhea? can you please order those asap so I can get those done today. thanks\n", + "2025-06-17 14:13:07,869 - Provider's response to this similar message: Good Morning Sumit Sarin, Dr. Parekh has ordered a STD panel for you on 12/26/2024. You may go to any Labcorp to complete these labs. Warm Regards, Mercedes Valles, 12/30/2024, 10:19 AM\n", + "2025-06-17 14:13:07,869 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:07,871 - Thread ID: 254424594\n", + "--------------------------------------------------------------------------------\n", + "idx: 63027\n", + "Subject: RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hello, can you please send the order to Quest Pleasanton so I can stay with the same test provider? thanks please let me know as soon as it's sent to Quest. I would like to go there today\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63026\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "also is at LabCorp or quest ?\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Tests have been ordered to Labcorp. Warm Regards, Mercedes Valles, 12/30/2024, 1:50 PM\n", + "----------------------------------------\n", + "idx: 63025\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "the std panel test is a blood test , I want the urine tests for Chlamydia and gonorrhea. please order the urine std test thanks\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63024\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hello, yes but I want urine based Chlamydia and gonorrhea tests , so if you can please order those. thanks\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63023\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Morning Sumit Sarin, Dr. Parekh has ordered a STD panel for you on 12/26/2024. You may go to any Labcorp to complete these labs. Warm Regards, Mercedes Valles, 12/30/2024, 10:19 AM\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63022\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Urinalysis with Microscopic resulted on 12/28/24 at 12:59 AM.hello doctor, these results don't show a test for Chlamydia and Gonorrhea? can you please order those asap so I can get those done today. thanks\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Good Morning Sumit Sarin, Dr. Parekh has ordered a STD panel for you on 12/26/2024. You may go to any Labcorp to complete these labs. Warm Regards, Mercedes Valles, 12/30/2024, 10:19 AM\n", + "----------------------------------------\n", + "2025-06-17 14:13:07,872 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:08,806 - Original Message:\n", + "2025-06-17 14:13:08,809 - original_query_message: Hello Dr. Wuchenich,I had the esophagram November 12, and was told that I might need a follow-up visit to ENT to scope my esophagus. I have not heard back since receiving the esophagram report. I don't know if this means there is no follow-up needed, which leaves me at the same place I was when I saw you, or that I was lost in the system. Since then I've had additional discomfort. It may be that there is no treatment other than surgery which I would most likely not consider. Could you please review my chart to see what if any next steps there are? Thank you,Carol Danaher\n", + "2025-06-17 14:13:09,938 - Query Parameters:\n", + "2025-06-17 14:13:09,939 - query_message: Hi Dr. Wuchenich,I hope you’re well. I had a barium swallow test back in November to help figure out what’s going on with my throat. At the time, there was some talk about maybe seeing an ENT to get a better look at my esophagus, but I haven’t heard anything since getting the test results. I’m starting to feel a bit anxious, because the soreness and tightness in my throat have actually gotten a bit worse, and occasionally I feel like food is getting stuck.I know surgery is sometimes mentioned as an option, but honestly, that feels like a big step—I’m really hoping there might be other things we could try first. Is it possible to check my records and see if another appointment should be scheduled, or if there’s any advice on next steps? I’m just hoping to figure out what’s causing all this discomfort and if there’s any way to manage it better.Thank you so much for your help!Best, Kathy Sullivan\n", + "2025-06-17 14:13:09,939 - receiver: QUACH, LISA NGUY,\n", + "2025-06-17 14:13:09,940 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:13:09,942 - specialty: Primary Care\n", + "2025-06-17 14:13:10,245 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:10,246 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:10,246 - ✅ similarity: 0.7107\n", + "2025-06-17 14:13:10,247 - Sender: IBARRA, ELIZABETH [ S0366758] -> the retrieved similar message : Hello Dr. Wuchenich,I had the esophagram November 12, and was told that I might need a follow-up visit to ENT to scope my esophagus. I have not heard back since receiving the esophagram report. I don't know if this means there is no follow-up needed, which leaves me at the same place I was when I saw you, or that I was lost in the system. Since then I've had additional discomfort. It may be that there is no treatment other than surgery which I would most likely not consider. Could you please review my chart to see what if any next steps there are? Thank you,Carol Danaher\n", + "2025-06-17 14:13:10,247 - Provider's response to this similar message: Hi Ms. Danaher:My apologies, I thought I'd sent you a message when I'd received the results.My impression would be that it would be worth a chat with the ENT doctors, at least to review options. I know you're not wanting surgery, but my impression is that sometimes there are minor procedures (that don't need anesthesia), that might be suitable.I'll put in for the referral.John\n", + "2025-06-17 14:13:10,250 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:10,255 - Thread ID: 253106531\n", + "--------------------------------------------------------------------------------\n", + "idx: 121054\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Wuchenich,I had the esophagram November 12, and was told that I might need a follow-up visit to ENT to scope my esophagus. I have not heard back since receiving the esophagram report. I don't know if this means there is no follow-up needed, which leaves me at the same place I was when I saw you, or that I was lost in the system. Since then I've had additional discomfort. It may be that there is no treatment other than surgery which I would most likely not consider. Could you please review my chart to see what if any next steps there are? Thank you,Carol Danaher\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY,:\n", + "Hi Ms. Danaher:My apologies, I thought I'd sent you a message when I'd received the results.My impression would be that it would be worth a chat with the ENT doctors, at least to review options. I know you're not wanting surgery, but my impression is that sometimes there are minor procedures (that don't need anesthesia), that might be suitable.I'll put in for the referral.John\n", + "----------------------------------------\n", + "2025-06-17 14:13:10,256 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:10,256 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:10,257 - ✅ similarity: 0.4695\n", + "2025-06-17 14:13:10,258 - Sender: RODRIGUEZ, ASHLI [ S0305374] -> the retrieved similar message : Good morning Dr.Jo-Anne, It was really pleasure to meet you. Thank you verymuch for taking care of me.I'm feeling little better now. But there is still cough and mucus. I have taken last dose of antibiotics today.Daljit Bhambra 510 209 3226\n", + "2025-06-17 14:13:10,258 - Provider's response to this similar message: Hello, Daljit-I apologize for my delayed response. I got sick last week as well and have been out of the office. It is natural to have some cough and mucous still as long as the mucous is becoming thinner and is loosening up. Please continue to take the over the counter Flonase nasal sprays and the Mucinex to continue to help with this. Even though the course of two antibiotics was just for 5 days, the azithromycin has a long half-life and will work in your body for several more days to continue to fight infection. Please let Dr. Quach know if your symptoms get worse instead of better. I hope you feel better soon!Jo-Anne Landry Suffoletto, MD, MScStanford Internal MedicineReminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. The Walk-In Clinic on the 4th floor of Hoover Pavilion is also open for same-day urgent needs from 2:30-10p.\n", + "2025-06-17 14:13:10,259 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:10,262 - Thread ID: 248973903\n", + "--------------------------------------------------------------------------------\n", + "idx: 324869\n", + "Subject: RE:Results\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, Daljit-I apologize for my delayed response. I got sick last week as well and have been out of the office. It is natural to have some cough and mucous still as long as the mucous is becoming thinner and is loosening up. Please continue to take the over the counter Flonase nasal sprays and the Mucinex to continue to help with this. Even though the course of two antibiotics was just for 5 days, the azithromycin has a long half-life and will work in your body for several more days to continue to fight infection. Please let Dr. Quach know if your symptoms get worse instead of better. I hope you feel better soon!Jo-Anne Landry Suffoletto, MD, MScStanford Internal MedicineReminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. The Walk-In Clinic on the 4th floor of Hoover Pavilion is also open for same-day urgent needs from 2:30-10p.\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY:\n", + "No response\n", + "----------------------------------------\n", + "idx: 324868\n", + "Subject: RE:Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr.Jo-Anne, It was really pleasure to meet you. Thank you verymuch for taking care of me.I'm feeling little better now. But there is still cough and mucus. I have taken last dose of antibiotics today.Daljit Bhambra 510 209 3226\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY,:\n", + "Hello, Daljit-I apologize for my delayed response. I got sick last week as well and have been out of the office. It is natural to have some cough and mucous still as long as the mucous is becoming thinner and is loosening up. Please continue to take the over the counter Flonase nasal sprays and the Mucinex to continue to help with this. Even though the course of two antibiotics was just for 5 days, the azithromycin has a long half-life and will work in your body for several more days to continue to fight infection. Please let Dr. Quach know if your symptoms get worse instead of better. I hope you feel better soon!Jo-Anne Landry Suffoletto, MD, MScStanford Internal MedicineReminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. The Walk-In Clinic on the 4th floor of Hoover Pavilion is also open for same-day urgent needs from 2:30-10p.\n", + "----------------------------------------\n", + "idx: 324867\n", + "Subject: Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, Daljit-It was a pleasure to meet you and your husband this afternoon. The chest x-ray showed similar to possibly increased multifocal reticulonodular opacities which may be a sign of pneumonia which the antibiotics will help, but may also be a sign of progression of your lung fibrosis which is related to your rheumatoid arthritis. Please take both antibiotics and send a MyHealth message early next week to let me know how your cough is doing and how you are feeling after a few days of antibiotics. I sent a note to Dr. Katsumoto as we discussed. For now please HOLD the plaquenil while taking your antibiotics and continue to take the mycophenolate.All the best,Jo-Anne Landry Suffoletto, MD, MScStanford Internal MedicineReminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. The Walk-In Clinic on the 4th floor of Hoover Pavilion is also open for same-day urgent needs from 2:30-10p.\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:13:10,263 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:10,263 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:10,264 - ✅ similarity: 0.3481\n", + "2025-06-17 14:13:10,265 - Sender: ERISGEN, KERYLYN [ S0366649] -> the retrieved similar message : Hello Dr Quach. Hope you are well.Would it be possible to secure a referral to a urologist for me please. I am having some changes in urinary behavior and want to have it looked at.Thank you,John\n", + "2025-06-17 14:13:10,266 - Provider's response to this similar message: Hi John,This is Dr. Lutley, one of the other doctors in clinic. I'm helping Dr. Quach with messages today. I got some additional details from one of the nurses in our clinic that you spoke with and understand that you would prefer to have a referral directly to urology, so I will go ahead and place a referral for you and they should reach out to help schedule an appointment. Sometimes the speciality clinics may have long waiting times, if this is the case let us know as we may be able to assist with diagnosis and treatment of these types of symptoms in primary care clinic as well, and someone from our team can help with setting up a sooner appointment if needed. Please let us know if you have any questions. Best wishes, Kevin Lutley, MD \n", + "2025-06-17 14:13:10,266 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:10,268 - Thread ID: 250820282\n", + "--------------------------------------------------------------------------------\n", + "idx: 230305\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Quach. Hope you are well.Would it be possible to secure a referral to a urologist for me please. I am having some changes in urinary behavior and want to have it looked at.Thank you,John\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY,:\n", + "Hi John,This is Dr. Lutley, one of the other doctors in clinic. I'm helping Dr. Quach with messages today. I got some additional details from one of the nurses in our clinic that you spoke with and understand that you would prefer to have a referral directly to urology, so I will go ahead and place a referral for you and they should reach out to help schedule an appointment. Sometimes the speciality clinics may have long waiting times, if this is the case let us know as we may be able to assist with diagnosis and treatment of these types of symptoms in primary care clinic as well, and someone from our team can help with setting up a sooner appointment if needed. Please let us know if you have any questions. Best wishes, Kevin Lutley, MD \n", + "----------------------------------------\n", + "2025-06-17 14:13:10,269 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:10,269 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:10,269 - ✅ similarity: 0.3035\n", + "2025-06-17 14:13:10,270 - Sender: ERISGEN, KERYLYN [ S0366649] -> the retrieved similar message : Dr. Kenny and Dr. Quach, after doing some reading in the good medical literature, I have a suspicion that I may have developed “diabetes insipidus “ over the past year or so. Thirsty all the time, preference for very cold ice water, frequent urination, weight loss ( more than expected from dieting), fatigue, etc. I will see Lisa Q next week and Tracy M in endocrine on Nov 6. I understand that 2 or more hormones may be involved. Are there diagnostic lab tests that can be ordered sooner than later? Thank you.\n", + "2025-06-17 14:13:10,271 - Provider's response to this similar message: Hello,I am covering today for Dr. Kenny who is out of the office until early December. Dr. Quach is also out of the office today and will be back next week. I think it is best to discuss your recent symptoms with Dr. Quach next week so she can decide which types of testing are most appropriate. Best,Nicole Sokol PA-C\n", + "2025-06-17 14:13:10,271 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:10,273 - Thread ID: 248251717\n", + "--------------------------------------------------------------------------------\n", + "idx: 361020\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Background sourse for Diabetes Insipitus from Cleveland Clinic\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 361019\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes I can wait but it takes so long at Stanford to get a follow up appointment that I try to anticipate the recommended test and have results available for the in person appointment.\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 361018\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Kenny and Dr. Quach, after doing some reading in the good medical literature, I have a suspicion that I may have developed “diabetes insipidus “ over the past year or so. Thirsty all the time, preference for very cold ice water, frequent urination, weight loss ( more than expected from dieting), fatigue, etc. I will see Lisa Q next week and Tracy M in endocrine on Nov 6. I understand that 2 or more hormones may be involved. Are there diagnostic lab tests that can be ordered sooner than later? Thank you.\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY,:\n", + "Hello,I am covering today for Dr. Kenny who is out of the office until early December. Dr. Quach is also out of the office today and will be back next week. I think it is best to discuss your recent symptoms with Dr. Quach next week so she can decide which types of testing are most appropriate. Best,Nicole Sokol PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:13:10,273 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:10,275 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:10,275 - ✅ similarity: 0.1890\n", + "2025-06-17 14:13:10,276 - Sender: ERISGEN, KERYLYN [ S0366649] -> the retrieved similar message : Thank you. I think it would be a good idea for me to meet with someone in genetic testing to make sure all bases are covered. Would you be able to refer me?Thank you,Ann\n", + "2025-06-17 14:13:10,277 - Provider's response to this similar message: Hi Ms. Begun:I've placed the referral to the cancer genetics clinic.John\n", + "2025-06-17 14:13:10,277 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:10,280 - Thread ID: 254424460\n", + "--------------------------------------------------------------------------------\n", + "idx: 63034\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I think it would be a good idea for me to meet with someone in genetic testing to make sure all bases are covered. Would you be able to refer me?Thank you,Ann\n", + "----------------------------------------\n", + "Provider Response by QUACH, LISA NGUY,:\n", + "Hi Ms. Begun:I've placed the referral to the cancer genetics clinic.John\n", + "----------------------------------------\n", + "idx: 63033\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I was listening to a program by NYU Langone this morning. It stated than anyone 25% of Ashkenazi Jewish heritage should undergo genetic testing for cancer genes. Not sure if it’s just for BRCA? I’m 100% Ashkenazi Jew. So it seems like this is something I should undergo?Thank you,Ann\n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Hi Ms. Begun,Thank you for your message! I have forwarded it to your provider, or a provider who is covering their inbox to advise. A member of our team will reach out to you as necessary.Please let me know if you have any questions. Thank you!Warmest Regards,Aury, PCCEMT-B | CPT-1 | BA PsychologyPronouns: They | Them | Theirs----------------------------------------------Stanford Internal Medicine - Stanford Health Care211 Quarry Road, STE 302/305 Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "2025-06-17 14:13:10,281 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:10,787 - Original Message:\n", + "2025-06-17 14:13:10,788 - original_query_message: Can you fax referral form for hospital bed to Horsesnyder Pharmacy 831-534-7052Fully electric with air mattress/pad. Their phone number is 831-423-2315. They need diagnosis codes too. I read them the notes off our Referral Form but apparently they said they prefer it come from the doctor and then form goes to their staff. Omg!!!! Whatever. I know. Breathe Dorie. ThxDORIE Pierce \n", + "2025-06-17 14:13:12,277 - Query Parameters:\n", + "2025-06-17 14:13:12,277 - query_message: Hi there,I'm hoping you can help me out with getting a hospital bed and specialized air mattress. My mobility has gotten worse lately and my pressure sores are making it nearly impossible to sleep. Could you please send the referral paperwork, with the diagnosis codes, over to Seaside Medical Supply (fax: 831-555-2290)? They asked that it comes directly from your office, not from me, and I think that will make the approval process smoother. Their phone number is 831-555-8899 if you need to confirm anything with them.I really appreciate your help, as I'm not having much luck getting comfortable or moving around at home. Thank you so much for making this a priority—this has been taking a real toll on me lately.Best, Linda\n", + "2025-06-17 14:13:12,279 - receiver: FMSLG CARE TEAM POOL\n", + "2025-06-17 14:13:12,281 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:13:12,281 - specialty: Family Medicine\n", + "2025-06-17 14:13:12,740 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:12,741 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:12,742 - ✅ similarity: 0.7785\n", + "2025-06-17 14:13:12,744 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Can you fax referral form for hospital bed to Horsesnyder Pharmacy 831-534-7052Fully electric with air mattress/pad. Their phone number is 831-423-2315. They need diagnosis codes too. I read them the notes off our Referral Form but apparently they said they prefer it come from the doctor and then form goes to their staff. Omg!!!! Whatever. I know. Breathe Dorie. ThxDORIE Pierce \n", + "2025-06-17 14:13:12,746 - Provider's response to this similar message: hey Elden & Dorie, I have faxed horsnyder the new order dr baule placed.please follow up with them regarding the medical equipment. feel free to reach out to us if you need anything else!isaac lara, ccma stanford medicine partners15425 los gatos blvdlos gatos, ca 95032408-340-5700office hours:monday-friday: 8am-5pmweekends: closed\n", + "2025-06-17 14:13:12,748 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:12,756 - Thread ID: 254733055\n", + "--------------------------------------------------------------------------------\n", + "idx: 47536\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Horsnyders pharmacy cannot deliver bed. They only deliver to my area in Watsonville on Thursday. They are full for this week. Dr. Baule mentioned there is a place there that might be able to assist us. Please call to see if they deliver to my area in Watsonville All locations here have zero beds. Very frustrating. Dorie\n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "Hey Elden, our referral coordinator got back to us today and let us know that due to your insurance, it may be more difficult to find a place in network. There is another place in your area that may be able to provide a hospital bed: LINCARE, CHME or Medicare Drop. We recommend you call your insurance provider and ask if there is a place in your area that can provide the hospital bed and is covered. Once you get that information please let us know so we can place a referral there. Isaac Lara, CCMA15425 Los Gatos BlvdLos Gatos, CA 95032408-340-5700Office hours:Monday-Friday: 8am-5pmWeekends: closed\n", + "----------------------------------------\n", + "idx: 47535\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "They also need cover sheet attached to Referral Form for the bed. They did not mention this when I spoke to them on Friday. Sorry for the bS. Dorie 831-421-2800\n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "No response\n", + "----------------------------------------\n", + "idx: 47534\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you refax the order for hospital bed WITH Chart Notes. Per Horsnyders Pharmacy They said they did not receive it. Fax is 831.534.7052Ph. 831.423-2315Thx Dorie\n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "No response\n", + "----------------------------------------\n", + "idx: 47533\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you fax referral form for hospital bed to Horsesnyder Pharmacy 831-534-7052Fully electric with air mattress/pad. Their phone number is 831-423-2315. They need diagnosis codes too. I read them the notes off our Referral Form but apparently they said they prefer it come from the doctor and then form goes to their staff. Omg!!!! Whatever. I know. Breathe Dorie. ThxDORIE Pierce \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "hey Elden & Dorie, I have faxed horsnyder the new order dr baule placed.please follow up with them regarding the medical equipment. feel free to reach out to us if you need anything else!isaac lara, ccma stanford medicine partners15425 los gatos blvdlos gatos, ca 95032408-340-5700office hours:monday-friday: 8am-5pmweekends: closed\n", + "----------------------------------------\n", + "idx: 47532\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok. Thank you!Surgery is next Tuesday. \n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:13:12,757 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:12,757 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:12,758 - ✅ similarity: 0.5849\n", + "2025-06-17 14:13:12,758 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Kamaraju, I hope this finds you well this holiday season. Could you please provide some names of sleep medicine doctors in or near Los Gatos? My previous one left his group practice some time back, and my CPAP machine is so old it's giving me a message that it is past it's expected lifespan. Since I'd be procuring a different machine and it would require setup, I'd like to go to a sleep medicine clinic and become the patient of a new sleep medicine doctor. Many thanks! -Lance\n", + "2025-06-17 14:13:12,759 - Provider's response to this similar message: Hi Lance,Thank you for your message. I hope you are doing well too. Dr Anagnos, Angela-408-247-5337, or Dr. Clerk, Alex-408-295-4532. Let us know if you need to get referral. Take care and happy holidays!Alla P Rozova, PA\n", + "2025-06-17 14:13:12,759 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:12,762 - Thread ID: 252156891\n", + "--------------------------------------------------------------------------------\n", + "idx: 161546\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kamaraju, I hope this finds you well this holiday season. Could you please provide some names of sleep medicine doctors in or near Los Gatos? My previous one left his group practice some time back, and my CPAP machine is so old it's giving me a message that it is past it's expected lifespan. Since I'd be procuring a different machine and it would require setup, I'd like to go to a sleep medicine clinic and become the patient of a new sleep medicine doctor. Many thanks! -Lance\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Lance,Thank you for your message. I hope you are doing well too. Dr Anagnos, Angela-408-247-5337, or Dr. Clerk, Alex-408-295-4532. Let us know if you need to get referral. Take care and happy holidays!Alla P Rozova, PA\n", + "----------------------------------------\n", + "2025-06-17 14:13:12,762 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:12,763 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:12,763 - ✅ similarity: 0.5436\n", + "2025-06-17 14:13:12,764 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Baule,We have not worked with home health before, is there any action for me? I know you were exploring solutions during our video visit, but because I have no prior experience I was not sure of the process. Is it lengthy to get set up and approved? Do I reach out to coordinate?Tony is doing what he can with me (walking from room to room, trying to cook and shower) while we wait to get assigned a nurse.Thank you for the help! - Cindy\n", + "2025-06-17 14:13:12,764 - Provider's response to this similar message: Hey Tony,Please reach out to them at the phone # below. Good Samaritan Mission Oaks Campus 15891 Los Gatos - Almaden Road LOS GATOS CA 95032 Phone: 408-559-2011 -Isaac Lara, CCMA\n", + "2025-06-17 14:13:12,764 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:12,766 - Thread ID: 250594239\n", + "--------------------------------------------------------------------------------\n", + "idx: 241661\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Tony,I was under the impression you did have home health coverage after recent hospital care. If we could schedule a brief follow up visit this week to document the specific needs then I can provide a referral. It has to be a \"face to face\" visit in general so I recommend you come to the clinic office. See you soon,Michael Baule, DOAs a reminder, we do not answer messages on holidays or weekends. We will try to respond as quickly as possible, generally within about 48 hours during the business week. For urgent medical needs, please call the office. For emergencies please call 911 or seek immediate medical care. \n", + "----------------------------------------\n", + "Provider Response by LARA, ISAAC:\n", + "No response\n", + "----------------------------------------\n", + "idx: 241660\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Isaac, This is who Tony was seeing for outpatient. Do they offer home health as well? We need home health while he’s recovering from the complications of the Supra pubic catheter being placed. Once he’s stronger and builds more stamina, the plan is to return to mission oaks. Laurie (PT) did email Dr. Baule supporting the decision to move to home health. Any questions, please call. Thanks! :) Cindy \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "My apologies, I see that now. I'll forward this to Dr. Baule for further assistance. -Isaac Lara, CCMA\n", + "----------------------------------------\n", + "idx: 241659\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey Tony,Please reach out to them at the phone # below. Good Samaritan Mission Oaks Campus 15891 Los Gatos - Almaden Road LOS GATOS CA 95032 Phone: 408-559-2011 -Isaac Lara, CCMA\n", + "----------------------------------------\n", + "Provider Response by BAULE, MICHAEL:\n", + "Tony,I was under the impression you did have home health coverage after recent hospital care. If we could schedule a brief follow up visit this week to document the specific needs then I can provide a referral. It has to be a \"face to face\" visit in general so I recommend you come to the clinic office. See you soon,Michael Baule, DOAs a reminder, we do not answer messages on holidays or weekends. We will try to respond as quickly as possible, generally within about 48 hours during the business week. For urgent medical needs, please call the office. For emergencies please call 911 or seek immediate medical care. \n", + "----------------------------------------\n", + "idx: 241658\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Baule,We have not worked with home health before, is there any action for me? I know you were exploring solutions during our video visit, but because I have no prior experience I was not sure of the process. Is it lengthy to get set up and approved? Do I reach out to coordinate?Tony is doing what he can with me (walking from room to room, trying to cook and shower) while we wait to get assigned a nurse.Thank you for the help! - Cindy\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Tony,Please reach out to them at the phone # below. Good Samaritan Mission Oaks Campus 15891 Los Gatos - Almaden Road LOS GATOS CA 95032 Phone: 408-559-2011 -Isaac Lara, CCMA\n", + "----------------------------------------\n", + "2025-06-17 14:13:12,768 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:12,769 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:12,770 - ✅ similarity: 0.5284\n", + "2025-06-17 14:13:12,771 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Baule,Could u please refill my prescriptions for:-Vicadin (Norco), and-Ambien…to Costco in Mt View? I use both sparingly, however, I aggravated my back in a fall recently on the pickleball court ( I was tripped by my partner) and have used both meds more often recently, as I recover. I saw Dr Fulmer for this problem last week, and am also getting PT. I didn’t realize I was low on these meds, and I think it’s better if u, as my PCP, handle all my prescriptions anyway.Ty!Michael Mooers\n", + "2025-06-17 14:13:12,772 - Provider's response to this similar message: Hey Mike,Dr baule has reviewed your message and recommends that you make an appointment in person this week with him to discuss the medication refills since he has never prescribed these medications to you. If you are currently getting those elsewhere, we recommend that you request a refill from them since dr baule may not be able to refill these meds for you. Our office phone # is 408-340-5700.-Isaac Lara, CCMA, 10/29/2024, 2:15 PM\n", + "2025-06-17 14:13:12,773 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:12,777 - Thread ID: 249190547\n", + "--------------------------------------------------------------------------------\n", + "idx: 313393\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Baule,Could u please refill my prescriptions for:-Vicadin (Norco), and-Ambien…to Costco in Mt View? I use both sparingly, however, I aggravated my back in a fall recently on the pickleball court ( I was tripped by my partner) and have used both meds more often recently, as I recover. I saw Dr Fulmer for this problem last week, and am also getting PT. I didn’t realize I was low on these meds, and I think it’s better if u, as my PCP, handle all my prescriptions anyway.Ty!Michael Mooers\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Mike,Dr baule has reviewed your message and recommends that you make an appointment in person this week with him to discuss the medication refills since he has never prescribed these medications to you. If you are currently getting those elsewhere, we recommend that you request a refill from them since dr baule may not be able to refill these meds for you. Our office phone # is 408-340-5700.-Isaac Lara, CCMA, 10/29/2024, 2:15 PM\n", + "----------------------------------------\n", + "2025-06-17 14:13:12,778 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:12,778 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:12,778 - ✅ similarity: 0.5261\n", + "2025-06-17 14:13:12,779 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Shaw, I have moved to Carson City Nevada about a month ago. I have not found a primary doctor yet and my meds need to be refilled. I am hoping you can send in the order to the CVS here in Carson City. I have about two weeks remaining for the Januvia and I just took my last Mounjaro shot today. The CVS is on Fairview DrThank you, Mike\n", + "2025-06-17 14:13:12,779 - Provider's response to this similar message: Good Afternoon Mike, I have sent your message to Dr. Shah to review. Please provide the full address of the pharmacy you will want the medication sent to if found appropriate. Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "2025-06-17 14:13:12,781 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:12,782 - Thread ID: 250759842\n", + "--------------------------------------------------------------------------------\n", + "idx: 233491\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Dr Shaw, I appreciate it\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 233490\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon Nicole, thank you for the message. The address for CVS pharmacy is220 Fairview DriveCarson City Nevada 89701Thank you, Mike\n", + "----------------------------------------\n", + "Provider Response by SHAH, RINA BIREN:\n", + "Hello Michael A Davis,Prescription sent.Rina Biren Shah, MD, 11/15/2024,\n", + "----------------------------------------\n", + "idx: 233489\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Afternoon Mike, I have sent your message to Dr. Shah to review. Please provide the full address of the pharmacy you will want the medication sent to if found appropriate. Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "Provider Response by SHAH, RINA BIREN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 233488\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Shaw, I have moved to Carson City Nevada about a month ago. I have not found a primary doctor yet and my meds need to be refilled. I am hoping you can send in the order to the CVS here in Carson City. I have about two weeks remaining for the Januvia and I just took my last Mounjaro shot today. The CVS is on Fairview DrThank you, Mike\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Good Afternoon Mike, I have sent your message to Dr. Shah to review. Please provide the full address of the pharmacy you will want the medication sent to if found appropriate. Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "2025-06-17 14:13:12,783 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:13,379 - Original Message:\n", + "2025-06-17 14:13:13,381 - original_query_message: Thank you for the interpretation. I appreciate it. It turns out I was sick at the time of the blood draw, so that explains the higher WB count. As for vit D, I've been taking a hair supplement for over a year that has 2500 IU of vit D in it. I'm going to add a transdermal supplement and will hit you up in a few months for additional labs to see if it's working. Based on the Dexa scan results, improving vitamin D levels is priority, as well as going back to the gym. It's clear yoga isn't enough. I've been adding an egg each morning to increase my protein grams. Could that be adding to the cholesterol levels?\n", + "2025-06-17 14:13:14,929 - Query Parameters:\n", + "2025-06-17 14:13:14,930 - query_message: Hey there, I was hoping to get your insight on a few things. My recent blood tests showed an elevated white blood cell count, but I was actually battling a sinus infection at the time—could that have thrown off those results? Also, my vitamin D levels are still on the low side, despite using a multivitamin that contains 2000 IU daily for the past six months. Since my last bone density scan wasn’t great, I’m a bit worried about my bone health and want to make sure I’m doing enough. I’m considering switching to a vitamin D spray to see if that absorbs better. On top of that, I’ve been eating more Greek yogurt and eggs lately to get extra protein since my doctor said I need to build some muscle, but now my cholesterol has gone up a little. Do you think my diet could be impacting my cholesterol this quickly, or should I be concerned about something else? Thanks!\n", + "2025-06-17 14:13:14,930 - receiver: HOLMGREN, SARAH\n", + "2025-06-17 14:13:14,931 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:13:14,931 - specialty: Primary Care\n", + "2025-06-17 14:13:15,526 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:15,527 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:15,528 - ✅ similarity: 0.7362\n", + "2025-06-17 14:13:15,528 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you for the interpretation. I appreciate it. It turns out I was sick at the time of the blood draw, so that explains the higher WB count. As for vit D, I've been taking a hair supplement for over a year that has 2500 IU of vit D in it. I'm going to add a transdermal supplement and will hit you up in a few months for additional labs to see if it's working. Based on the Dexa scan results, improving vitamin D levels is priority, as well as going back to the gym. It's clear yoga isn't enough. I've been adding an egg each morning to increase my protein grams. Could that be adding to the cholesterol levels?\n", + "2025-06-17 14:13:15,529 - Provider's response to this similar message: Hi Ruth, Thanks for your follow up.I won't worry too much about your white blood cell count since you were sick at the time of blood draw. Maybe for good measure when I recheck your vitamin D levels in a few months, I'll just check this again too to make sure it has reset.The egg should not be impacting your cholesterol in a meaningful way. The main elevation was your triglycerides, and triglycerides are less impacted by fats but instead simple carbs. We'll keep an eye on this over time. Sarah \n", + "2025-06-17 14:13:15,530 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:15,536 - Thread ID: 249689939\n", + "--------------------------------------------------------------------------------\n", + "idx: 287476\n", + "Subject: RE:lab results\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for the interpretation. I appreciate it. It turns out I was sick at the time of the blood draw, so that explains the higher WB count. As for vit D, I've been taking a hair supplement for over a year that has 2500 IU of vit D in it. I'm going to add a transdermal supplement and will hit you up in a few months for additional labs to see if it's working. Based on the Dexa scan results, improving vitamin D levels is priority, as well as going back to the gym. It's clear yoga isn't enough. I've been adding an egg each morning to increase my protein grams. Could that be adding to the cholesterol levels?\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi Ruth, Thanks for your follow up.I won't worry too much about your white blood cell count since you were sick at the time of blood draw. Maybe for good measure when I recheck your vitamin D levels in a few months, I'll just check this again too to make sure it has reset.The egg should not be impacting your cholesterol in a meaningful way. The main elevation was your triglycerides, and triglycerides are less impacted by fats but instead simple carbs. We'll keep an eye on this over time. Sarah \n", + "----------------------------------------\n", + "2025-06-17 14:13:15,536 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:15,537 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:15,538 - ✅ similarity: 0.6371\n", + "2025-06-17 14:13:15,538 - Sender: HOLMGREN, SARAH [ S0188220] -> the retrieved similar message : Hi Sarah, I got a PRP injection today and the Doctor Who performed it said that my plasma looked cloudy and thick which he said is often due to high cholesterol. I know I’m not due to check my cholesterol until August. But wondering if it makes sense to check it now? I take red yeast rice which was prescribed by the cardiologist but a friend of mine who took it said it worked well for her and then stopped working. I’m at elevated risk for cardiovascular issues because of my psoriatic arthritis and sleep apnea. The sleep apnea was recently diagnosed so I’m not being treated for it yet. I’d appreciate hearing your thoughts.Hope you have a good weekend Genevieve \n", + "2025-06-17 14:13:15,539 - Provider's response to this similar message: Hi Genevieve, Your cholesterol levels looked great in August. I don't think there would be such a shift in levels in a few months that would change the way we treat you. If it would make you feel better to check it again, let me know and I can submit the lab request. Sarah \n", + "2025-06-17 14:13:15,540 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:15,602 - Thread ID: 253933671\n", + "--------------------------------------------------------------------------------\n", + "idx: 85085\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sarah, if you don’t mind, can we recheck the lipids? I don’t know if that blood thinner could cause that cloudy appearance of the plasma?Thanks!Genevieve \n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi Genevieve, You can come to our lab as your schedule allows to do a fasting cholesterol test. I am not aware of a blood thinner causing a cloudy appearance to the plasma. Sarah \n", + "----------------------------------------\n", + "idx: 85084\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sarah, I got a PRP injection today and the Doctor Who performed it said that my plasma looked cloudy and thick which he said is often due to high cholesterol. I know I’m not due to check my cholesterol until August. But wondering if it makes sense to check it now? I take red yeast rice which was prescribed by the cardiologist but a friend of mine who took it said it worked well for her and then stopped working. I’m at elevated risk for cardiovascular issues because of my psoriatic arthritis and sleep apnea. The sleep apnea was recently diagnosed so I’m not being treated for it yet. I’d appreciate hearing your thoughts.Hope you have a good weekend Genevieve \n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi Genevieve, Your cholesterol levels looked great in August. I don't think there would be such a shift in levels in a few months that would change the way we treat you. If it would make you feel better to check it again, let me know and I can submit the lab request. Sarah \n", + "----------------------------------------\n", + "2025-06-17 14:13:15,610 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:15,611 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:15,613 - ✅ similarity: 0.6160\n", + "2025-06-17 14:13:15,615 - Sender: HOLMGREN, SARAH [ S0188220] -> the retrieved similar message : Sarah:I am going in for my 3month blood test in a few weeks. Should I we test for cholesterol again to see where it lands several months later? Thanks. \n", + "2025-06-17 14:13:15,616 - Provider's response to this similar message: Hi Jon, Sure, we can test it again. If it remains stable, we can go back to once yearly testing after that. I've sent LabCorp a lab test for a fasting cholesterol panel. Sarah \n", + "2025-06-17 14:13:15,617 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:15,632 - Thread ID: 251619717\n", + "--------------------------------------------------------------------------------\n", + "idx: 188542\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sarah:I am going in for my 3month blood test in a few weeks. Should I we test for cholesterol again to see where it lands several months later? Thanks. \n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi Jon, Sure, we can test it again. If it remains stable, we can go back to once yearly testing after that. I've sent LabCorp a lab test for a fasting cholesterol panel. Sarah \n", + "----------------------------------------\n", + "2025-06-17 14:13:15,664 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:15,666 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:15,668 - ✅ similarity: 0.6154\n", + "2025-06-17 14:13:15,733 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you - I saw the 231 and was not happy.I'll cut egg whites out of my diet again and be aware of saturated fats. Is there anyway I can get tested again is n 3-6 months?And the elevated creatine is because I take creatine. If that is something I should stop please let me know.\n", + "2025-06-17 14:13:15,745 - Provider's response to this similar message: Hi Jeff, Egg whites do not contain cholesterol and are an important source of protein. No need to cut those. I've included some strategies below to lower cholesterol. This is a generic document so scan it to see if there are any bullet points that would be of value to you. I'll set myself a reminder to ping you to check the levels again in another ~6 months. I am not concerned about the creatinine levels. Sarah Strategies for Lowering Cholesterol LevelsFollow a food plan based on a calorie level to either maintain weight if you are at your goal, or to lose 1-2 pounds/week by eating 500 calories/day less than required for maintenance. Decrease your total fat intake to 20-25% of total calories. This would translate into 40-50 grams/day of total fat; Focus on monounsaturated fats such as olive/canola oil, almonds, avocado, natural almond or peanut butter and omega-3 sources including fish and flaxseed.Limit your saturated fat (from animal products and processed foods containing hydrogenated oils) to <7% of total calories, or 14 grams/day. Eliminate or limit red meat to 1-2 x week, eat only white breast meat chicken/turkey without the skin, limit egg yolks to 1-2/week; only non-fat dairy products and limit cheese to low-fat types and only 1-2 x weekIncrease your intake of fiber to 35-45 grams/day and focus on soluble fiber sources (to help lower cholesterol) such as oat bran and whole oats, cooked dried beans, peas and lentils, fresh fruits and veggies. Add 2 Tbsp. ground flax seed into your diet. This is a good source of lignins and omega-3 fatty acids--both of which help to lower LDL and raise HDL. Increase your fresh fruit and vegetable intake to 7-9 servings /day Drink at least 64 oz. water/day. Exercise: 6 times/week to include 45-60 minutes of aerobic exercise (running, biking, elliptical, treadmill) and 20-30 minutes of weight training 2-3 times/week, along with core strengthening/stretching. Track your daily food and exercise in a log or journal; or go online and use a free nutrition tracking service such as Dailyplate.com or Nutrition.com. \n", + "2025-06-17 14:13:15,746 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:15,750 - Thread ID: 252764329\n", + "--------------------------------------------------------------------------------\n", + "idx: 133772\n", + "Subject: RE:lab results\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you - I saw the 231 and was not happy.I'll cut egg whites out of my diet again and be aware of saturated fats. Is there anyway I can get tested again is n 3-6 months?And the elevated creatine is because I take creatine. If that is something I should stop please let me know.\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi Jeff, Egg whites do not contain cholesterol and are an important source of protein. No need to cut those. I've included some strategies below to lower cholesterol. This is a generic document so scan it to see if there are any bullet points that would be of value to you. I'll set myself a reminder to ping you to check the levels again in another ~6 months. I am not concerned about the creatinine levels. Sarah Strategies for Lowering Cholesterol LevelsFollow a food plan based on a calorie level to either maintain weight if you are at your goal, or to lose 1-2 pounds/week by eating 500 calories/day less than required for maintenance. Decrease your total fat intake to 20-25% of total calories. This would translate into 40-50 grams/day of total fat; Focus on monounsaturated fats such as olive/canola oil, almonds, avocado, natural almond or peanut butter and omega-3 sources including fish and flaxseed.Limit your saturated fat (from animal products and processed foods containing hydrogenated oils) to <7% of total calories, or 14 grams/day. Eliminate or limit red meat to 1-2 x week, eat only white breast meat chicken/turkey without the skin, limit egg yolks to 1-2/week; only non-fat dairy products and limit cheese to low-fat types and only 1-2 x weekIncrease your intake of fiber to 35-45 grams/day and focus on soluble fiber sources (to help lower cholesterol) such as oat bran and whole oats, cooked dried beans, peas and lentils, fresh fruits and veggies. Add 2 Tbsp. ground flax seed into your diet. This is a good source of lignins and omega-3 fatty acids--both of which help to lower LDL and raise HDL. Increase your fresh fruit and vegetable intake to 7-9 servings /day Drink at least 64 oz. water/day. Exercise: 6 times/week to include 45-60 minutes of aerobic exercise (running, biking, elliptical, treadmill) and 20-30 minutes of weight training 2-3 times/week, along with core strengthening/stretching. Track your daily food and exercise in a log or journal; or go online and use a free nutrition tracking service such as Dailyplate.com or Nutrition.com. \n", + "----------------------------------------\n", + "2025-06-17 14:13:15,755 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:15,801 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:15,805 - ✅ similarity: 0.6020\n", + "2025-06-17 14:13:15,808 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you, I don't think my cholesterol came thru on this test but total was 198 this time. That was some good news!LDL 123HDL 58Triglycerides 92VLDL 17I had my health screening for work done at the same time so received a separate set of results this morning.\n", + "2025-06-17 14:13:15,812 - Provider's response to this similar message: Awesome! Thanks for sharing. We'll get these results abstracted into your Stanford chart too! \n", + "2025-06-17 14:13:15,814 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:15,817 - Thread ID: 251588276\n", + "--------------------------------------------------------------------------------\n", + "idx: 190226\n", + "Subject: RE:RE:RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, I don't think my cholesterol came thru on this test but total was 198 this time. That was some good news!LDL 123HDL 58Triglycerides 92VLDL 17I had my health screening for work done at the same time so received a separate set of results this morning.\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Awesome! Thanks for sharing. We'll get these results abstracted into your Stanford chart too! \n", + "----------------------------------------\n", + "idx: 190225\n", + "Subject: RE:RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "ok, thank you!!\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "I'll set myself a reminder in about 6 weeks to remind you to recheck your labs. Please reach out sooner if you have evolving concerns. Sarah \n", + "----------------------------------------\n", + "idx: 190224\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok thanks Sarah. I did get my bloodwork done yesterday so you should receive that soon too.\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Perfect timing. The results are in. They show that your thyroid is a little over active that we've swung you in the other direction. I suggest you reduce your dose to 112 mcg every day 6 days per week, but 1/2 tab (56 mcg) one day per week. We should then check your numbers again in about ~2 months and also see what you notice with the sense of fullness in your throat. How does that sound? Sarah \n", + "----------------------------------------\n", + "idx: 190223\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sarah,Following up from my appt last week...My appt for the thyroid scan is Dec 2nd at 2:30pm so you can be on the lookout for the results sometime next week. Thank you,April\n", + "----------------------------------------\n", + "Provider Response by HOLMGREN, SARAH:\n", + "Hi April, Thanks for letting me know. I'll be on the lookout for the results. Sarah \n", + "----------------------------------------\n", + "2025-06-17 14:13:15,821 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:16,365 - Original Message:\n", + "2025-06-17 14:13:16,365 - original_query_message: Hi,Just Following on pre auth submisssion for wegovy 1.7 mg after yesterday’s in person visit. I checked w pharmacy and was told it is still pendingThanksAhmed\n", + "2025-06-17 14:13:17,882 - Query Parameters:\n", + "2025-06-17 14:13:17,883 - query_message: Hi there,I wanted to check in about my insurance approval for the Saxenda prescription we discussed at my appointment last week. I’ve been monitoring my blood sugars and noticed they’ve been fluctuating more recently, and I’m eager to get started with the medication to help with my weight and overall metabolic health. I called the pharmacy yesterday, but they mentioned the prior authorization is still processing. Is there anything else I need to do on my end, or do you have any updates on the status? Thanks so much for your help!\n", + "2025-06-17 14:13:17,883 - receiver: VCPA IM 1133 # 203 MA POOL\n", + "2025-06-17 14:13:17,884 - department: INTERNAL MEDICINE VCL 1133 203\n", + "2025-06-17 14:13:17,885 - specialty: Internal Medicine\n", + "2025-06-17 14:13:18,850 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:18,851 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:18,852 - ✅ similarity: 0.5780\n", + "2025-06-17 14:13:18,853 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Can you please reply and let me know what is going on with the insurance and my prescription for Norco. Thank you what script was due on the 11th and it's now the 18th Pharmacy said the insurance will pay for 7 days which I had them do. But I need to have a new prescription from the doctor for a new prescription what I'm waiting for since the 11th\n", + "2025-06-17 14:13:18,854 - Provider's response to this similar message: Hello Laura, We received a approval for your norco. Prior Authorization HistoryHYDROcodone-acetaminophen (Norco) 10-325 mg tablet Approval DetailsAuthorization number: NO PA RequiredAuthorized from December 16, 2024 to December 30, 2025Information entered manuallyPlease review below, as this is the script sent to pharmacy, showing approved. Outpatient Medication Detail Disp Refills Start End HYDROcodone-acetaminophen (Norco) 10-325 mg tablet 150 tablet 0 12/11/2024 -- Sig - Route: Take 1 tablet by mouth every 4 hours as needed - Oral Sent to pharmacy as: hydrocodone 10 mg-acetaminophen 325 mg tablet (Norco) Class: E-Prescribe Earliest Fill Date: 12/11/2024 E-Prescribing Status: Receipt confirmed by pharmacy (12/11/2024 8:14 PM PST) Prior authorization: Approved Associated DiagnosesMultiple sclerosis (CMS-HCC) [G35] Plantar ulcer of right foot, unspecified ulcer stage (CMS-HCC) [L97.519] PharmacyCVS/PHARMACY #10924 - PLEASANTON, CA - 3010 BERNAL AVENUE \n", + "2025-06-17 14:13:18,855 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:18,861 - Thread ID: 253727779\n", + "--------------------------------------------------------------------------------\n", + "idx: 94373\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much I really appreciate you letting me know. It is very scary when stuff like this happens and you're not sure if you're going to get medication that you need. So I really appreciate your help\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 94372\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you please reply and let me know what is going on with the insurance and my prescription for Norco. Thank you what script was due on the 11th and it's now the 18th Pharmacy said the insurance will pay for 7 days which I had them do. But I need to have a new prescription from the doctor for a new prescription what I'm waiting for since the 11th\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Laura, We received a approval for your norco. Prior Authorization HistoryHYDROcodone-acetaminophen (Norco) 10-325 mg tablet Approval DetailsAuthorization number: NO PA RequiredAuthorized from December 16, 2024 to December 30, 2025Information entered manuallyPlease review below, as this is the script sent to pharmacy, showing approved. Outpatient Medication Detail Disp Refills Start End HYDROcodone-acetaminophen (Norco) 10-325 mg tablet 150 tablet 0 12/11/2024 -- Sig - Route: Take 1 tablet by mouth every 4 hours as needed - Oral Sent to pharmacy as: hydrocodone 10 mg-acetaminophen 325 mg tablet (Norco) Class: E-Prescribe Earliest Fill Date: 12/11/2024 E-Prescribing Status: Receipt confirmed by pharmacy (12/11/2024 8:14 PM PST) Prior authorization: Approved Associated DiagnosesMultiple sclerosis (CMS-HCC) [G35] Plantar ulcer of right foot, unspecified ulcer stage (CMS-HCC) [L97.519] PharmacyCVS/PHARMACY #10924 - PLEASANTON, CA - 3010 BERNAL AVENUE \n", + "----------------------------------------\n", + "2025-06-17 14:13:18,862 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:18,863 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:18,863 - ✅ similarity: 0.5692\n", + "2025-06-17 14:13:18,864 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr RothiMy avarstatin prescription refill has been on hold for a couple of weeks now with the pharmacy. can you please approve?Thanks,Kimber\n", + "2025-06-17 14:13:18,864 - Provider's response to this similar message: Hi there, Dr. Ratti sent the prescription was sent today. Please let us know if Walgreens does not have the prescriptions.Stanford Medical Partners Staff \n", + "2025-06-17 14:13:18,865 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:18,867 - Thread ID: 252094781\n", + "--------------------------------------------------------------------------------\n", + "idx: 164435\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr RothiMy avarstatin prescription refill has been on hold for a couple of weeks now with the pharmacy. can you please approve?Thanks,Kimber\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hi there, Dr. Ratti sent the prescription was sent today. Please let us know if Walgreens does not have the prescriptions.Stanford Medical Partners Staff \n", + "----------------------------------------\n", + "2025-06-17 14:13:18,867 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:18,868 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:18,869 - ✅ similarity: 0.5667\n", + "2025-06-17 14:13:18,870 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi,Just Following on pre auth submisssion for wegovy 1.7 mg after yesterday’s in person visit. I checked w pharmacy and was told it is still pendingThanksAhmed\n", + "2025-06-17 14:13:18,870 - Provider's response to this similar message: Hello Ahmed, This medication was approved and was sent to your pharmacy. Please pick up from the pharmacy. Let us know if you have any troubles picking this up. Kind regards,Serenity Das, MA, 11/13/2024, 12:09 PM \n", + "2025-06-17 14:13:18,871 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:18,873 - Thread ID: 250558038\n", + "--------------------------------------------------------------------------------\n", + "idx: 243561\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sounds good thanks. Will followup in couple days… Since I ran out of the medication for almost 3 wks now, can I get a bridge (or emergency) supply till PA process finishes?\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Ahmed, You would have to pay out of pocket for the medication without the authorization. Serenity Das, MA, 11/14/2024, 9:47 AM\n", + "----------------------------------------\n", + "idx: 243560\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I just called pharmacy and they are still holding wegovy because they did not recieve the preauth yet. I ended up calling my prescription insurance—cvs caremark (8442142607) and they did not have the preauth either. Not sure if you sent the pre-auth to Aetna (medical insurance ) or CVS Caremark (prescription insurance), but, the pre auth should go to caremark… in anyway, I asked them to submit an electronic pre auth to your office which they did. if you can follow up on that.Ahmed\n", + "----------------------------------------\n", + "Provider Response by DAS, SERENITY:\n", + "Hello Ahmed, Please review the message below from out medication prior authorization team. \"PA restarted for the 1.7mg this may take up to 3-5 business days as Covermymeds is having processing issues on their end, the PA Team is working diligently to get all the patient's PAs processed as quick as we can \"Please let us know if you have any other questions. Kind regards,Serenity Das, MA, 11/14/2024, 9:33 AM \n", + "----------------------------------------\n", + "idx: 243559\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,Just Following on pre auth submisssion for wegovy 1.7 mg after yesterday’s in person visit. I checked w pharmacy and was told it is still pendingThanksAhmed\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Ahmed, This medication was approved and was sent to your pharmacy. Please pick up from the pharmacy. Let us know if you have any troubles picking this up. Kind regards,Serenity Das, MA, 11/13/2024, 12:09 PM \n", + "----------------------------------------\n", + "2025-06-17 14:13:18,873 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:18,874 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:18,874 - ✅ similarity: 0.5618\n", + "2025-06-17 14:13:18,874 - Sender: SAMIMI, RETA [ S0353434] -> the retrieved similar message : Hello- I have ongoing infusion treatments with John Muir Hospital and my authorization needs to be submitted again from now to the end of next it is expired asap please. Also the authorization to Dr. Sarika Aggarwal to continue under her care it also expiring. My insurance says these need to be submitted from my primary cares office even though I'm being treated by her. Thank you Cole Merrill\n", + "2025-06-17 14:13:18,875 - Provider's response to this similar message: Hello Cole, You have not been seen in a year therefore you will need to schedule an appointment with Dr. Ratti to go over this. In order for resubmission. Please call our office to schedule an appointment (925) 373-4541. Kind regards,Serenity Das, MA, 1/8/2025, 12:24 PM\n", + "2025-06-17 14:13:18,876 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:18,878 - Thread ID: 254317214\n", + "--------------------------------------------------------------------------------\n", + "idx: 68389\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello- I have ongoing infusion treatments with John Muir Hospital and my authorization needs to be submitted again from now to the end of next it is expired asap please. Also the authorization to Dr. Sarika Aggarwal to continue under her care it also expiring. My insurance says these need to be submitted from my primary cares office even though I'm being treated by her. Thank you Cole Merrill\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Cole, You have not been seen in a year therefore you will need to schedule an appointment with Dr. Ratti to go over this. In order for resubmission. Please call our office to schedule an appointment (925) 373-4541. Kind regards,Serenity Das, MA, 1/8/2025, 12:24 PM\n", + "----------------------------------------\n", + "2025-06-17 14:13:18,879 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:18,879 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:18,879 - ✅ similarity: 0.5530\n", + "2025-06-17 14:13:18,880 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Serenity,Thank you so much for doing this for me. I am at Walgreens now checking to see the status of my prescription. Thank you for removing the cvs pharmacy for my prescription. Sincerely Nancy\n", + "2025-06-17 14:13:18,880 - Provider's response to this similar message: Hello Nancy, No worries, please let us know if you need further assistance. Kind regards,Serenity Das, MA, 1/8/2025, 12:25 PM\n", + "2025-06-17 14:13:18,881 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:18,884 - Thread ID: 254832064\n", + "--------------------------------------------------------------------------------\n", + "idx: 42589\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Ratti,Happy New Year! I hope this note finds you well.My zolpidem is up for renewal on January 6th.My prescription plan has been changed and I now will be getting my prescriptions at Walgreen's on First Street.I went to give them new medicare card information and requested that they get my prescription information from CVS along with notifying you of my prescription refill request.We left for a week and was told before I left that they would follow through and contact both your office and CVS.When I went in today just to check on my medication, I was told nothing was recorded on my new client sheet and I was to contact you to fill the request and let them know.So please send the request to Walgreen's on 1st Street. I will be gone for a few days and will return on Tuesday. Please let me know if you are able to fill my request. Sincerely,NANCY CARTER\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Nancy, I have sent your refill request over to our physician assistant who is currently covering Dr. Ratti while she is out until 1/15/25. I changed the refill to be sent to Walgreens on first street. Would you like me to completely remove the CVS pharmacy?Serenity Das, MA, 1/8/2025, 8:55 AM\n", + "----------------------------------------\n", + "idx: 42588\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Serenity,I just received notification that my prescription is ready!Thank you so much for attending to this request for me.Sincerely,Nancy Carter\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 42587\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Serenity,I hope you were able to place my prescription request at Walgreens. When I checked earlier today it had not been received but it could have been that I was too early when checking on the prescription.Please advise me if you were able to send the prescription request to Walgreens today. I know how busy everyone gets so I appreciate your attention to this matter.Thank you,Nancy\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 42586\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Serenity,Thank you so much for doing this for me. I am at Walgreens now checking to see the status of my prescription. Thank you for removing the cvs pharmacy for my prescription. Sincerely Nancy\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Nancy, No worries, please let us know if you need further assistance. Kind regards,Serenity Das, MA, 1/8/2025, 12:25 PM\n", + "----------------------------------------\n", + "idx: 42585\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Nancy, I have sent your refill request over to our physician assistant who is currently covering Dr. Ratti while she is out until 1/15/25. I changed the refill to be sent to Walgreens on first street. Would you like me to completely remove the CVS pharmacy?Serenity Das, MA, 1/8/2025, 8:55 AM\n", + "----------------------------------------\n", + "Provider Response by LIVERMORE CLINICAL ASSIST POOL:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:13:18,884 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:19,464 - Original Message:\n", + "2025-06-17 14:13:19,467 - original_query_message: Hi Dr. Shah,I saw the test results come in as well as your comments, thank you for that.My concern is that Bilirubin seems high and CRP seems to have doubled vs what it was in June (which was already high). I know it’s non specific but would like to take CRP in another month or so to see if it is improved.Any feedback on what could be causing the elevated bilirubin?ThanksSimon \n", + "2025-06-17 14:13:21,036 - Query Parameters:\n", + "2025-06-17 14:13:21,037 - query_message: Hi Dr. Shah,I was reviewing my recent blood work and had a couple of things I wanted to check in with you about. I noticed that my bilirubin level is higher than the normal range again, and my CRP has climbed even more since the last time we checked it in June. I know CRP can be linked to a lot of things, but it’s making me a bit anxious because I’ve also been feeling more fatigued than usual lately and have had some mild abdominal discomfort on and off.Could you help me understand what might be causing the raised bilirubin in my situation? Is there any connection between these two markers, or things I should be looking out for given my symptoms? Also, is it worth retesting the CRP in another month, or should I be considering any further tests now? Thanks so much for your input. Best, Alex\n", + "2025-06-17 14:13:21,037 - receiver: BVD FAMILY MED MYHEALTH POOL\n", + "2025-06-17 14:13:21,038 - department: FAMILY MEDICINE BVMG DANVILLE\n", + "2025-06-17 14:13:21,039 - specialty: Family Medicine\n", + "2025-06-17 14:13:22,315 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:22,315 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:22,316 - ✅ similarity: 0.9255\n", + "2025-06-17 14:13:22,316 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Shah,I saw the test results come in as well as your comments, thank you for that.My concern is that Bilirubin seems high and CRP seems to have doubled vs what it was in June (which was already high). I know it’s non specific but would like to take CRP in another month or so to see if it is improved.Any feedback on what could be causing the elevated bilirubin?ThanksSimon \n", + "2025-06-17 14:13:22,318 - Provider's response to this similar message: Hi Simon The bilirubin can be a marker of mild elevation but I think the level is quite non-specific. You can certainly repeat both in a month if you'd like. I will order those at the same lab.Best, Dr. Shah\n", + "2025-06-17 14:13:22,319 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:22,326 - Thread ID: 249945165\n", + "--------------------------------------------------------------------------------\n", + "idx: 274493\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Great, if you can order those will take it in a bit \n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + " \n", + "----------------------------------------\n", + "idx: 274492\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Shah,I saw the test results come in as well as your comments, thank you for that.My concern is that Bilirubin seems high and CRP seems to have doubled vs what it was in June (which was already high). I know it’s non specific but would like to take CRP in another month or so to see if it is improved.Any feedback on what could be causing the elevated bilirubin?ThanksSimon \n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Simon The bilirubin can be a marker of mild elevation but I think the level is quite non-specific. You can certainly repeat both in a month if you'd like. I will order those at the same lab.Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:13:22,327 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:22,328 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:22,328 - ✅ similarity: 0.5971\n", + "2025-06-17 14:13:22,329 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Shah, Below exchange with Dr Singh and I have sent you a separate email on the same.To: Venkatesh Sampath \"Venky\"From: Sundeep Singh, MDReceived: 10/22/2024 01:10 PM PDTI don't know if it something transient or if has been going on. The repeat lab trend will be helpful.From:Venkatesh Sampath \"Venky\"Sent:10/22/2024 12:43 PM PDTTo:Sundeep Singh, MDHello Dr Singh, I checked my lab from May and my test result are normal. I have not had any changes in my eating or drinking (no alcohol) pattern .Since my liver test are in elevated pattern should I be worried about any symptoms or impacts? what is the treatment advise ? pls advise. I don't know what this elevated counts mean. thanksFrom:Sundeep Singh, MDSent:10/22To:Venkatesh Sampath \"Venky\"Your liver tests were quite high. Please repeat them in 1 week so we can see the trend. Do not drink alcohol or consume more than 2 grams of tylenol until we get those lab results back. If possible, minimize high fat foods also.\n", + "2025-06-17 14:13:22,329 - Provider's response to this similar message: Venky There are a lot of reasons that can cause an elevation in the liver enzymes. Could have been from a recent illness (cold for ex), alcohol use, excessive Tylenol to name a few. Not to be concerned right now. Let's review the trend which will help figure out next steps.Best, Dr. Shah\n", + "2025-06-17 14:13:22,330 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:22,331 - Thread ID: 248644449\n", + "--------------------------------------------------------------------------------\n", + "idx: 340493\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "thank you Dr Shah for your response\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 340492\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Shah, Below exchange with Dr Singh and I have sent you a separate email on the same.To: Venkatesh Sampath \"Venky\"From: Sundeep Singh, MDReceived: 10/22/2024 01:10 PM PDTI don't know if it something transient or if has been going on. The repeat lab trend will be helpful.From:Venkatesh Sampath \"Venky\"Sent:10/22/2024 12:43 PM PDTTo:Sundeep Singh, MDHello Dr Singh, I checked my lab from May and my test result are normal. I have not had any changes in my eating or drinking (no alcohol) pattern .Since my liver test are in elevated pattern should I be worried about any symptoms or impacts? what is the treatment advise ? pls advise. I don't know what this elevated counts mean. thanksFrom:Sundeep Singh, MDSent:10/22To:Venkatesh Sampath \"Venky\"Your liver tests were quite high. Please repeat them in 1 week so we can see the trend. Do not drink alcohol or consume more than 2 grams of tylenol until we get those lab results back. If possible, minimize high fat foods also.\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Venky There are a lot of reasons that can cause an elevation in the liver enzymes. Could have been from a recent illness (cold for ex), alcohol use, excessive Tylenol to name a few. Not to be concerned right now. Let's review the trend which will help figure out next steps.Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:13:22,332 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:22,332 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:22,333 - ✅ similarity: 0.5420\n", + "2025-06-17 14:13:22,333 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Albumin with Creatinine, Urine (Random) resulted on 12/3/24, 3:10?PM...Dr.Shah,Normal albumin has increased Past 300.Normal range i understand is (0-30).My lab work confirms that i am (over) 300 —which is severly high ((abnormal))—-.What do I do to correct this abnormalrange???Take prescribed medication??Thank you,Chico Flores\n", + "2025-06-17 14:13:22,333 - Provider's response to this similar message: Hi ChicoYes, it's due to having diabetes for number of years. Controlling the sugars and taking losartan (protects kidneys) is the best thing. We will continue to monitor.Best, Dr. Shah\n", + "2025-06-17 14:13:22,334 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:22,338 - Thread ID: 252164481\n", + "--------------------------------------------------------------------------------\n", + "idx: 161221\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr.ShahOk,Thank u\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 161220\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Albumin with Creatinine, Urine (Random) resulted on 12/3/24, 3:10?PM...Dr.Shah,Normal albumin has increased Past 300.Normal range i understand is (0-30).My lab work confirms that i am (over) 300 —which is severly high ((abnormal))—-.What do I do to correct this abnormalrange???Take prescribed medication??Thank you,Chico Flores\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi ChicoYes, it's due to having diabetes for number of years. Controlling the sugars and taking losartan (protects kidneys) is the best thing. We will continue to monitor.Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:13:22,339 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:22,340 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:22,341 - ✅ similarity: 0.5376\n", + "2025-06-17 14:13:22,342 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Shah -- I am scheduled to meeting with GI Dr Singh - Jan 12th and am scheduled to meeting you on the 13th -- for my visit, can we please update my labs request to include ESR and CRP tests to cover the potential GI issues that was recently uncovered. Thank you & have a great day ! Sanjiv \n", + "2025-06-17 14:13:22,342 - Provider's response to this similar message: Sanjiv Yes, I have added additional labs. Pls come in to the office, you can get your past due labs from June as well as CRP/ESR done all at the same time.Happy holidays and early happy b'day!Best, Dr. Shah\n", + "2025-06-17 14:13:22,343 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:22,346 - Thread ID: 253750656\n", + "--------------------------------------------------------------------------------\n", + "idx: 93268\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Shah -- I am scheduled to meeting with GI Dr Singh - Jan 12th and am scheduled to meeting you on the 13th -- for my visit, can we please update my labs request to include ESR and CRP tests to cover the potential GI issues that was recently uncovered. Thank you & have a great day ! Sanjiv \n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Sanjiv Yes, I have added additional labs. Pls come in to the office, you can get your past due labs from June as well as CRP/ESR done all at the same time.Happy holidays and early happy b'day!Best, Dr. Shah\n", + "----------------------------------------\n", + "2025-06-17 14:13:22,347 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:22,347 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:22,347 - ✅ similarity: 0.5309\n", + "2025-06-17 14:13:22,348 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : As discussed during last visit Dr wanted to see previous Blood Work report that that was done in India in 2021/2022. I am unable to find those reports though I remember that my HB was around 11+ in that report. Please advise if there is any follow up test or medication I should take to improve my Blood HB level.\n", + "2025-06-17 14:13:22,348 - Provider's response to this similar message: Good Afternoon Falguni Bhatt, Dr. Parekh would like for you to schedule a video visit to further discuss this. Warm Regards, Mercedes Valles, 12/31/2024, 10:27 AM\n", + "2025-06-17 14:13:22,348 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:22,350 - Thread ID: 254485156\n", + "--------------------------------------------------------------------------------\n", + "idx: 59990\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "As discussed during last visit Dr wanted to see previous Blood Work report that that was done in India in 2021/2022. I am unable to find those reports though I remember that my HB was around 11+ in that report. Please advise if there is any follow up test or medication I should take to improve my Blood HB level.\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Good Afternoon Falguni Bhatt, Dr. Parekh would like for you to schedule a video visit to further discuss this. Warm Regards, Mercedes Valles, 12/31/2024, 10:27 AM\n", + "----------------------------------------\n", + "2025-06-17 14:13:22,351 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:22,842 - Original Message:\n", + "2025-06-17 14:13:22,842 - original_query_message: Hi Dr. Waltuch. Hope you had a great weekend. My cold has come back pretty bad and I have major sinus issues and have green phlegm, dry cough and sore/ itchy throat. I feel pretty bad. Have sinus pressure with no fever. It's been two weeks and I can't kick it. I am suppose to fly Tuesday AM to TX and I have surgery on Dec. 10 and was wondering if I could take antibiotic. Thanks for your help!\n", + "2025-06-17 14:13:23,968 - Query Parameters:\n", + "2025-06-17 14:13:23,969 - query_message: Hi Dr. Waltuch, I hope you’re doing well. I’ve been feeling pretty under the weather for nearly two weeks now—it started as a normal cold but seems to be getting worse instead of better. I have a lot of congestion, sinus pain, thick yellow-green mucus, and my throat is scratchy and hurts when I swallow. I also have a lingering dry cough that keeps me up at night. I don’t have a fever, but the pressure in my face is really uncomfortable.I’m supposed to fly out for a work trip on Tuesday morning, and I’m a bit anxious because I also have a minor surgery scheduled next week. I wanted to check if this could be a sinus infection and if antibiotics might help at this point, or if there’s anything else you recommend. Thanks so much for your advice—traveling and surgery are both stressing me out, and I’d really like to kick this before it gets any worse.\n", + "2025-06-17 14:13:23,969 - receiver: WALTUCH, JEANIE\n", + "2025-06-17 14:13:23,970 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:13:23,971 - specialty: Internal Medicine\n", + "2025-06-17 14:13:24,421 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:24,422 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:24,423 - ✅ similarity: 0.8882\n", + "2025-06-17 14:13:24,423 - Sender: LEE, DANA [ S0315562] -> the retrieved similar message : Hi Dr. Waltuch. Hope you had a great weekend. My cold has come back pretty bad and I have major sinus issues and have green phlegm, dry cough and sore/ itchy throat. I feel pretty bad. Have sinus pressure with no fever. It's been two weeks and I can't kick it. I am suppose to fly Tuesday AM to TX and I have surgery on Dec. 10 and was wondering if I could take antibiotic. Thanks for your help!\n", + "2025-06-17 14:13:24,424 - Provider's response to this similar message: Hi Renee,I am sorry you are still feeling poorly. I just sent in a prescription for antibiotics. I hope you have a happy Thanksgiving. Good luck with your surgery!Jean Karyn Waltuch, MD\n", + "2025-06-17 14:13:24,426 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:24,430 - Thread ID: 251520448\n", + "--------------------------------------------------------------------------------\n", + "idx: 193854\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so so much! Sorry to be a pain! I did my labs at 7:15 this AM. I will see Dr. Waltuch Thursday. I will try to get my EKG done tomorrow.Thank you so much!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 193853\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Renee,Thank you for your explanation. I have re-scheduled your pre-op exam with Dr. Waltuch to this Thursday, 12/5/24, at 2:15pm (that is her only 30-minute slot left)!You can get your EKG done on a walk-in basis in the Cardiology department (1300 Crane, 3rd floor, L-hand side after exiting the elevator) anytime between now to ~30 minutes prior to your appointment with Dr. Waltuch so she'll have the results when she sees you.Let us know if you have further questions!Take care,Dana\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 193852\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dana, thanks so much for your message! I can go tomorrow and get the labs done at 7:15AM in Menlo. I do have a scheduled appt with my surgeon tomorrow at 3:15 (Zoom), he's seeing me between surgeries. Is it possible to see Dr. Waltuch anytime Wed-Friday? I have my end of year review with my boss 10-11:30 on Thursday (in SF), otherwise I'll make anything work. I can't get off this late for work to get to the 11:45am unfortunately. I'm so sorry to reschedule. I'm just trying to juggle everything in a very short amount of time. I'm incredibly stressed! Please feel free to call me 650-460-9068\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Renee,Thank you for your explanation. I have re-scheduled your pre-op exam with Dr. Waltuch to this Thursday, 12/5/24, at 2:15pm (that is her only 30-minute slot left)!You can get your EKG done on a walk-in basis in the Cardiology department (1300 Crane, 3rd floor, L-hand side after exiting the elevator) anytime between now to ~30 minutes prior to your appointment with Dr. Waltuch so she'll have the results when she sees you.Let us know if you have further questions!Take care,Dana\n", + "----------------------------------------\n", + "idx: 193851\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning! Hope you had a nice weekend. Sorry for multiple messages. This sinus infection will not go away. It seemed to turn a corner, but no. It's just the left side. No fever, no covid, no lethargy, no ear pain. I bought nasal spray and saline solution and started that yesterday. No improvement. My surgery is a week from tomorrow, Dec. 10. I'm speaking with Dr. Karam (surgeon) tomorrow at 3:15. Is there anything I can do at this point?I'm devastated. So much time and money into the set up of this. Thanks for your help!\n", + "----------------------------------------\n", + "Provider Response by LEE, DANA:\n", + "Good afternoon Renee,Dr. Waltuch reviewed your message and will evaluate your symptoms further tomorrow. She says your 3:15pm pre-op exam tomorrow needs to be in-person. I currently see an opening at 11:45am; if you'd like that instead, let us know as soon as possible!She says the antibiotic should not affect labwork.Dr. Waltuch would ideally like you to see the results by the time of the pre-op exam. Would you be able to get the fasting labwork done at 7:00am tomorrow when the lab opens downstairs or at the Redwood City location (https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html)? [There is a courier that takes the vials of blood a little before 8am to the main lab so we may have results back by the time of the appointment if you do them early.]Best,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Tuesday 12/24 afternoon and Wednesday 12/25 for Christmas\n", + "----------------------------------------\n", + "idx: 193850\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Waltuch, hope you had a wonderful Thanksgiving! I'm finally turning a corner today with the antibiotics. I think they started to kick in. Wondering if I can still do my labs on Monday morning while on antibiotics and I'll do the EKG hopefully that same day if I can get in. I also was wondering if we could reschedule and make our appointment a video call? I have my EOY review now on Tuesday with my boss. Please let me know if that's possible. Look forward to hearing from you soon. Have a great weekend!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 193849\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Waltuch. Hope you had a great weekend. My cold has come back pretty bad and I have major sinus issues and have green phlegm, dry cough and sore/ itchy throat. I feel pretty bad. Have sinus pressure with no fever. It's been two weeks and I can't kick it. I am suppose to fly Tuesday AM to TX and I have surgery on Dec. 10 and was wondering if I could take antibiotic. Thanks for your help!\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "Hi Renee,I am sorry you are still feeling poorly. I just sent in a prescription for antibiotics. I hope you have a happy Thanksgiving. Good luck with your surgery!Jean Karyn Waltuch, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:24,431 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:24,432 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:24,433 - ✅ similarity: 0.5174\n", + "2025-06-17 14:13:24,433 - Sender: LEE, DANA [ S0315562] -> the retrieved similar message : Good morning Dr. Waltuch! Thank you for seeing me on 10/1 and diagnosing my case of pneumonia. As prescribed I’ve taken the antibiotic and had have scheduled a chest x-ray for 11/19. I just have a question regarding my energy level. I’m back doing most everything however, I find that I’m extremely tired after playing golf. My energy level really falls as I progress thru a 4hour round. I’ve read up on symptoms and see that it could take unto 6to8 weeks to get back to normal. I just wanted your opinion regarding my progress.Thank-you for your time.Jeph Martin650-380-4522\n", + "2025-06-17 14:13:24,434 - Provider's response to this similar message: Hi Jeph,You are correct that it can take some time to really get back to your baseline. It sounds like you have improved your just not completely back to where you were before. That is not surprising given your age and the fact that you had pneumonia. You would likely slowly improve over the next month or so. If that is not the case, I am happy to see you back in the clinic and I can listen to your lungs again.Best-Jean Karyn Waltuch, MD\n", + "2025-06-17 14:13:24,434 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:24,437 - Thread ID: 248786490\n", + "--------------------------------------------------------------------------------\n", + "idx: 334102\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank-you Dr. Waltuch for your response. I will look forward to your analysis after my next x-ray.Jeph\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 334101\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Waltuch! Thank you for seeing me on 10/1 and diagnosing my case of pneumonia. As prescribed I’ve taken the antibiotic and had have scheduled a chest x-ray for 11/19. I just have a question regarding my energy level. I’m back doing most everything however, I find that I’m extremely tired after playing golf. My energy level really falls as I progress thru a 4hour round. I’ve read up on symptoms and see that it could take unto 6to8 weeks to get back to normal. I just wanted your opinion regarding my progress.Thank-you for your time.Jeph Martin650-380-4522\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "Hi Jeph,You are correct that it can take some time to really get back to your baseline. It sounds like you have improved your just not completely back to where you were before. That is not surprising given your age and the fact that you had pneumonia. You would likely slowly improve over the next month or so. If that is not the case, I am happy to see you back in the clinic and I can listen to your lungs again.Best-Jean Karyn Waltuch, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:24,437 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:24,437 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:24,438 - ✅ similarity: 0.4939\n", + "2025-06-17 14:13:24,438 - Sender: LEE, DANA [ S0315562] -> the retrieved similar message : Hi Dr. Jeanne,I have been transferred to Stanford Hospital at SequoiaI have had terrible pain and nausea. They have given me medications, but I still feel pain and nausea. I knew something had to be wrong because I was so sick and miserable. Some of the test results appear worrisome - colitis, etc. Let me know what you thinkJosie\n", + "2025-06-17 14:13:24,439 - Provider's response to this similar message: Hi Josie,I am sorry you are still feeling poorly. I am glad that you ended up going to the emergency department for an appropriate workup. I have been following along. It looks like you have a kidney infection that they are treating with antibiotics. That could account for your pain. The slight thickening of the bowel is of unclear significance. It is fairly mild. You have not had a high white count which would be an indication of infection. I think we see how you respond to the antibiotics. I will keep following along. I hope you start to feel better.Best-Jean Karyn Waltuch, MD\n", + "2025-06-17 14:13:24,440 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:24,442 - Thread ID: 252325437\n", + "--------------------------------------------------------------------------------\n", + "idx: 153120\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m on an iv antibiotic drip at night \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 153119\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m not on iv antibiotics. They give me one antibiotic every 24 hours. I hope this is ok! I’m a bit worried \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 153118\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It’s to see the arteries. How long does this take to heal kidney infection?\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Josie,It varies from individual to individual and the extent of the infection, but it can take anywhere from days to a few weeks. The hospital doesn't usually keep patients with this in the hospital for longer than a week-ish, so they may discharge you with oral antibiotics after you finish the IV antibiotics and they feel like you are stable enough to leave. You can go over the treatment plan with your team there!Best,Dana\n", + "----------------------------------------\n", + "idx: 153117\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dana, I’m feeling awful. Now they want to do another ct scan to see if something else is wrong I’m worried!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Josie,It's good that the medical team is being thorough and wants to ensure they have all the information needed to help you feel better! I have confidence that they are doing everything they can to find the cause of your symptoms and provide the best treatment. If you have any specific questions or concerns, feel free to ask the medical team at Sequoia!Take care,Dana\n", + "----------------------------------------\n", + "idx: 153116\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "A kidney infection - is that the same as a UTI?I’m still feeling poorly. A bit better before but not now - nausea and pain. \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Josie,A kidney infection is a type of urinary tract infection (UTI) that has spread to the kidneys. It can cause more severe symptoms compared to a lower UTI, such as increased pain, nausea, and sometimes fever.I'm sorry to hear that you're still feeling poorly! It's good that you went to the ER and are receiving treatment now. Please continue to follow the recommendations from the hospital team, and if your symptoms worsen or do not improve, let them know immediately.Take care,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Tuesday 12/24 afternoon and Wednesday 12/25 for Christmas\n", + "----------------------------------------\n", + "idx: 153115\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Jeanne,I have been transferred to Stanford Hospital at SequoiaI have had terrible pain and nausea. They have given me medications, but I still feel pain and nausea. I knew something had to be wrong because I was so sick and miserable. Some of the test results appear worrisome - colitis, etc. Let me know what you thinkJosie\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "Hi Josie,I am sorry you are still feeling poorly. I am glad that you ended up going to the emergency department for an appropriate workup. I have been following along. It looks like you have a kidney infection that they are treating with antibiotics. That could account for your pain. The slight thickening of the bowel is of unclear significance. It is fairly mild. You have not had a high white count which would be an indication of infection. I think we see how you respond to the antibiotics. I will keep following along. I hope you start to feel better.Best-Jean Karyn Waltuch, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:24,443 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:24,443 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:24,444 - ✅ similarity: 0.4588\n", + "2025-06-17 14:13:24,444 - Sender: LEE, DANA [ S0315562] -> the retrieved similar message : Dear Dr. Jeanne,Some bad news - my knee was really improving and when I saw my nurse Lydia last week, I think it was Friday - my knee was improved and I only had 2bad wounds. On Monday, when I went to see Dr. Dearborn, it was startling. We were all shocked. My knee was totally covered with new wounds - it was awful / and painful. I started getting pain Friday afternoon and it was still painful when I saw Dr .Dearborn. He said I had Dermitis and I am now back on antibiotics. He thinks it is superficial - thinks….Kelly PA and Lori came here today and they will come Wednesday and Thursday and Lydia will come here Friday Saturday and Sunday. In addition, Kelly sent an order and phoned Wound Care at Stanford to get me in STAT. I always wanted to go to Stanford regarding this condition. Hopefully, they will act fast and we can get this resolved without my going to the hospital. This has all been very worrisome and traumatic Sind September 11th!Hope all is well with you. \n", + "2025-06-17 14:13:24,445 - Provider's response to this similar message: Hi Josie,I am sorry to hear this. When I spoke to Dr. Dearborn, he assured me that the knee replacement is fine and not infected. Hopefully the antibiotics will be effective. Let me know.Best-Jean Karyn Waltuch, MD\n", + "2025-06-17 14:13:24,445 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:24,448 - Thread ID: 251138217\n", + "--------------------------------------------------------------------------------\n", + "idx: 213253\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Jeanne,Some bad news - my knee was really improving and when I saw my nurse Lydia last week, I think it was Friday - my knee was improved and I only had 2bad wounds. On Monday, when I went to see Dr. Dearborn, it was startling. We were all shocked. My knee was totally covered with new wounds - it was awful / and painful. I started getting pain Friday afternoon and it was still painful when I saw Dr .Dearborn. He said I had Dermitis and I am now back on antibiotics. He thinks it is superficial - thinks….Kelly PA and Lori came here today and they will come Wednesday and Thursday and Lydia will come here Friday Saturday and Sunday. In addition, Kelly sent an order and phoned Wound Care at Stanford to get me in STAT. I always wanted to go to Stanford regarding this condition. Hopefully, they will act fast and we can get this resolved without my going to the hospital. This has all been very worrisome and traumatic Sind September 11th!Hope all is well with you. \n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "Hi Josie,I am sorry to hear this. When I spoke to Dr. Dearborn, he assured me that the knee replacement is fine and not infected. Hopefully the antibiotics will be effective. Let me know.Best-Jean Karyn Waltuch, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:24,449 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:24,450 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:24,451 - ✅ similarity: 0.4444\n", + "2025-06-17 14:13:24,451 - Sender: LEE, DANA [ S0315562] -> the retrieved similar message : I am still in the hospital and not doing much better. A bit but not much. They have taken some new tests. I am worried about if I have to go home tomorrow about the weekend and if I have to come back, I don’t want to have to go through er againNot sure when am not improving. ThanksJosie\n", + "2025-06-17 14:13:24,452 - Provider's response to this similar message: Hi Josie,I am so sorry you are still feeling so poorly. I went over all of your labs and studies and there is really nothing worrisome in any of it. This is good news, but I know it is frustrating for you since it is unclear what is causing you to feel so poorly. I will continue to follow along. You can reach out by MyHealth message.Best-Jean Karyn Waltuch, MD\n", + "2025-06-17 14:13:24,453 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:24,461 - Thread ID: 252472258\n", + "--------------------------------------------------------------------------------\n", + "idx: 146424\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Dr. Jeanie!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Josie,Try calling Stanford GI Department tomorrow during business hours 650-736-5555 to see if they can see you sooner at the Redwood City location.Take care,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.Upcoming clinic closure: Tuesday 12/24 afternoon and Wednesday 12/25 for Christmas\n", + "----------------------------------------\n", + "idx: 146423\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am still in the hospital and not doing much better. A bit but not much. They have taken some new tests. I am worried about if I have to go home tomorrow about the weekend and if I have to come back, I don’t want to have to go through er againNot sure when am not improving. ThanksJosie\n", + "----------------------------------------\n", + "Provider Response by WALTUCH, JEANIE:\n", + "Hi Josie,I am so sorry you are still feeling so poorly. I went over all of your labs and studies and there is really nothing worrisome in any of it. This is good news, but I know it is frustrating for you since it is unclear what is causing you to feel so poorly. I will continue to follow along. You can reach out by MyHealth message.Best-Jean Karyn Waltuch, MD\n", + "----------------------------------------\n", + "2025-06-17 14:13:24,470 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:25,195 - Original Message:\n", + "2025-06-17 14:13:25,208 - original_query_message: Dr. Pinyavat,I red a medication guide included with the escitalopram, and the side effects sound very concerning. I understand that this doesn’t happen in every patient but I am still concerned. Also, what about interactions with the alcohol? Should I completely avoid it or just not take at the same time? I am wondering if there is another medication that I can take instead that has less side effects.Thank youSvetlana \n", + "2025-06-17 14:13:26,773 - Query Parameters:\n", + "2025-06-17 14:13:26,775 - query_message: Hi Dr. Pinyavat,I just started taking escitalopram for my anxiety, and after reading through the information sheet, I admit I’m a bit nervous about the possible side effects. I know they don’t happen to everyone, but I’ve had bad reactions to medications in the past, so I’m extra cautious. Also, I usually have a glass of wine with dinner a couple times a week, and I’m not sure if that’s safe while I’m on this medication. Is it something I should avoid entirely, or is it okay in moderation?If I start experiencing things like headaches or trouble sleeping, are those reasons to stop the escitalopram right away? Are there other medication options that might be gentler or have fewer risks? I’d really appreciate your advice because I want to feel better but avoid unnecessary problems.Thank you so much,Lisa\n", + "2025-06-17 14:13:26,777 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:13:26,778 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:13:26,780 - specialty: Internal Medicine\n", + "2025-06-17 14:13:29,541 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:29,543 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:29,544 - ✅ similarity: 0.8613\n", + "2025-06-17 14:13:29,545 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Pinyavat,I red a medication guide included with the escitalopram, and the side effects sound very concerning. I understand that this doesn’t happen in every patient but I am still concerned. Also, what about interactions with the alcohol? Should I completely avoid it or just not take at the same time? I am wondering if there is another medication that I can take instead that has less side effects.Thank youSvetlana \n", + "2025-06-17 14:13:29,547 - Provider's response to this similar message: Hi Svetlana,Thank you for your response. I reviewed your message and your chart.I understand your concerns regarding Escitalopram and potential side effects.I recommend a video visit appointment with Dr. Pinyavat to discuss alternative medication options if applicable.To schedule, please call 650-498-6500.All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "2025-06-17 14:13:29,549 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:29,559 - Thread ID: 254716382\n", + "--------------------------------------------------------------------------------\n", + "idx: 48386\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Pinyavat,I red a medication guide included with the escitalopram, and the side effects sound very concerning. I understand that this doesn’t happen in every patient but I am still concerned. Also, what about interactions with the alcohol? Should I completely avoid it or just not take at the same time? I am wondering if there is another medication that I can take instead that has less side effects.Thank youSvetlana \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Svetlana,Thank you for your response. I reviewed your message and your chart.I understand your concerns regarding Escitalopram and potential side effects.I recommend a video visit appointment with Dr. Pinyavat to discuss alternative medication options if applicable.To schedule, please call 650-498-6500.All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "----------------------------------------\n", + "2025-06-17 14:13:29,561 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:29,562 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:29,562 - ✅ similarity: 0.6658\n", + "2025-06-17 14:13:29,562 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Kuo; I would like to know if I might be able to take an additional 5 MG of the Escitalopram a day at least for a while. I was robbed this week and my anxiety has been over the top.Please advise...Carol\n", + "2025-06-17 14:13:29,563 - Provider's response to this similar message: Hi ms hickingbothah, yes that is fine I ordered you 10 mg daily of the escitalopram instead of 5. Let me know in 2-4 weeks how you are doing on this dose. kevin\n", + "2025-06-17 14:13:29,564 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:29,567 - Thread ID: 248318635\n", + "--------------------------------------------------------------------------------\n", + "idx: 357786\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I will check in 2-4 weeks. Carol\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 357785\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Kuo; I would like to know if I might be able to take an additional 5 MG of the Escitalopram a day at least for a while. I was robbed this week and my anxiety has been over the top.Please advise...Carol\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi ms hickingbothah, yes that is fine I ordered you 10 mg daily of the escitalopram instead of 5. Let me know in 2-4 weeks how you are doing on this dose. kevin\n", + "----------------------------------------\n", + "2025-06-17 14:13:29,567 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:29,568 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:29,568 - ✅ similarity: 0.6311\n", + "2025-06-17 14:13:29,569 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Bennitt,I wanted to ask you about the Lexapro. I have not started it yet...my husband is having a health issue and I didn't want to be out of commission with side effects. However, my physical anxiety has intensified to an intolerable degree. I really need to do something about it. Today I woke up with a rash on my face which I'm hoping is just from the stress of all of this. I did pick up the Lexapro liquid however one of it's ingredients is citric acid which I will probably hurt my bladder. Can you prescribe the pill version? I will just use a pill cutter to split the dose. Finally, if I have worsening anxiety once starting, how long should I stick with it? How would I taper off once I start if I have bad side effects?Thanks,Sheila\n", + "2025-06-17 14:13:29,569 - Provider's response to this similar message: No problem, I will send in the tablet and you can split it.I think it is very unlikely that this would lead to worsening anxiety, but if that happened, you could try taking an extra Atarax.At this dose, if you are not tolerating it you can just stop it without doing a taper.\n", + "2025-06-17 14:13:29,570 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:29,572 - Thread ID: 251558004\n", + "--------------------------------------------------------------------------------\n", + "idx: 191859\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I discontinued the Atarax bc of the tremor...today my anxiety was so bad I took a 1/2 of .5 ativan bc I have long day of ivig.Do you think I should give Atarax a try again? No one, not even Dr. Walford could tell me if the side effects I was experiencing was harmful. I could live with a tremor but the body anxiety post covid is next level. My legs having been tingling as well as my face. Not sure what to do at this point. \n", + "----------------------------------------\n", + "Provider Response by BENNITT, ELIZA:\n", + "I think the most important thing is to get started on the SSRI. I have confidence that it is really going to help the anxiety, not make it worse - but, you will probably not notice any meaningful improvement for a few weeks. In the interim if you feel the anxiety is severe, it's ok to take an extra ativan but try to use this sparingly.Best,Eliza Bennitt\n", + "----------------------------------------\n", + "idx: 191858\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Bennitt,I wanted to ask you about the Lexapro. I have not started it yet...my husband is having a health issue and I didn't want to be out of commission with side effects. However, my physical anxiety has intensified to an intolerable degree. I really need to do something about it. Today I woke up with a rash on my face which I'm hoping is just from the stress of all of this. I did pick up the Lexapro liquid however one of it's ingredients is citric acid which I will probably hurt my bladder. Can you prescribe the pill version? I will just use a pill cutter to split the dose. Finally, if I have worsening anxiety once starting, how long should I stick with it? How would I taper off once I start if I have bad side effects?Thanks,Sheila\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No problem, I will send in the tablet and you can split it.I think it is very unlikely that this would lead to worsening anxiety, but if that happened, you could try taking an extra Atarax.At this dose, if you are not tolerating it you can just stop it without doing a taper.\n", + "----------------------------------------\n", + "2025-06-17 14:13:29,573 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:29,573 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:29,574 - ✅ similarity: 0.6286\n", + "2025-06-17 14:13:29,574 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Sherman, I was prescribed.5 mg of lorazepam for anxiety on flights. I tried it a couple of times and it takes the edge off a bit, but I am still tense, not completely relaxed. I remember you saying that if it doesn’t work, I could take another one. Does that mean next time I should take two tablets at once? Or do I take one and if I feel I need more after an hour or so, take another? I also remember you saying ‘watch for sedation’. What does that mean exactly? Another question- I understand I can’t drink while taking this. If I take a dose at 9:30 am, can I have a cocktail at 6:30 pm? Or should I not have any on the same day? Please advise.Thank you\n", + "2025-06-17 14:13:29,574 - Provider's response to this similar message: Hi Ms. Parker,Let me double check with Dr. Sherman and let you know.Do not drink any alcohol whatsoever while on lorazepam. Lorazepam can stay in your system for a few days, depending on alcohol intake can also stay in your system for at least 12 hours.Alcohol can increase the sedating effects of lorazepam which mean drowsiness, dizziness (which may lead to potential life threatening symptoms of difficulty breathing, heart rate slowing down, difficulty waking up) Do not drive or operate any machinery while talking lorazepam. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:29,576 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:29,580 - Thread ID: 253642653\n", + "--------------------------------------------------------------------------------\n", + "idx: 98284\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Ms. Parker,Let me double check with Dr. Sherman and let you know.Do not drink any alcohol whatsoever while on lorazepam. Lorazepam can stay in your system for a few days, depending on alcohol intake can also stay in your system for at least 12 hours.Alcohol can increase the sedating effects of lorazepam which mean drowsiness, dizziness (which may lead to potential life threatening symptoms of difficulty breathing, heart rate slowing down, difficulty waking up) Do not drive or operate any machinery while talking lorazepam. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by SHERMAN, KRISTEN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98283\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Sherman, I was prescribed.5 mg of lorazepam for anxiety on flights. I tried it a couple of times and it takes the edge off a bit, but I am still tense, not completely relaxed. I remember you saying that if it doesn’t work, I could take another one. Does that mean next time I should take two tablets at once? Or do I take one and if I feel I need more after an hour or so, take another? I also remember you saying ‘watch for sedation’. What does that mean exactly? Another question- I understand I can’t drink while taking this. If I take a dose at 9:30 am, can I have a cocktail at 6:30 pm? Or should I not have any on the same day? Please advise.Thank you\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Parker,Let me double check with Dr. Sherman and let you know.Do not drink any alcohol whatsoever while on lorazepam. Lorazepam can stay in your system for a few days, depending on alcohol intake can also stay in your system for at least 12 hours.Alcohol can increase the sedating effects of lorazepam which mean drowsiness, dizziness (which may lead to potential life threatening symptoms of difficulty breathing, heart rate slowing down, difficulty waking up) Do not drive or operate any machinery while talking lorazepam. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:29,581 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:29,581 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:29,582 - ✅ similarity: 0.5763\n", + "2025-06-17 14:13:29,582 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : My current prescription for escitalopram oxalate is almost running out. While I feel it has been somewhat helpful, the effects haven’t fully met my expectations. I’d like to discuss whether I should continue this medication.Unfortunately, the earliest appointment I could book is on December 17th. Is there any chance to schedule an earlier consultation? In the meantime, should I continue taking the medication until we meet, or would you recommend stopping it?\n", + "2025-06-17 14:13:29,583 - Provider's response to this similar message: Hi Qiushi,Thank you for your message. I recommend that you to schedule a follow up appointment with Dr. Chen for your medication management. We have a sooner opening with Dr. Chen this Friday 11/22 at 0945 AM. Please let us know if this date/time works for you. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:29,583 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:29,586 - Thread ID: 250844806\n", + "--------------------------------------------------------------------------------\n", + "idx: 229139\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for your message. I appreciate the recommendation. The Friday, 11/22 appointment at 9:45 AM works perfectly. Please confirm the booking.\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Qiushi,Thank you for your message. You are scheduled for an office visit with Dr. Chen on 11/22 at 0945 AM to discuss your medication. Please arrive 10 minutes early to your appointment. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 229138\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My current prescription for escitalopram oxalate is almost running out. While I feel it has been somewhat helpful, the effects haven’t fully met my expectations. I’d like to discuss whether I should continue this medication.Unfortunately, the earliest appointment I could book is on December 17th. Is there any chance to schedule an earlier consultation? In the meantime, should I continue taking the medication until we meet, or would you recommend stopping it?\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Qiushi,Thank you for your message. I recommend that you to schedule a follow up appointment with Dr. Chen for your medication management. We have a sooner opening with Dr. Chen this Friday 11/22 at 0945 AM. Please let us know if this date/time works for you. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:29,586 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:29,978 - Original Message:\n", + "2025-06-17 14:13:29,979 - original_query_message: 11/07 message received advising that a diabetes control blood test need to be completed. Visited LabCorp this morning and firm doesn't have an 'open' order. Should the blood test take place @ LabCorp or given during my 11/13 office visit?Please advise .. & thanks!\n", + "2025-06-17 14:13:31,455 - Query Parameters:\n", + "2025-06-17 14:13:31,456 - query_message: Hi there, I just wanted to check in because I got a note saying I need to get my blood sugar levels checked soon for my diabetes. I stopped by LabCorp earlier today, but they said there weren't any labs ordered under my name yet. My next appointment with my doctor is on the 13th, and I’m wondering if I should try to get the blood work done before then, or if it’s okay to just have it done at the office during my visit. Also, I’ve been feeling a bit more tired and thirsty than usual—should I mention that too when I come in? Thanks so much for your help!\n", + "2025-06-17 14:13:31,457 - receiver: FMO MY HEALTH POOL\n", + "2025-06-17 14:13:31,457 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:13:31,459 - specialty: Family Medicine\n", + "2025-06-17 14:13:33,019 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:33,021 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:33,021 - ✅ similarity: 0.7911\n", + "2025-06-17 14:13:33,022 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Happy Holidays! I received a message that I have an overdue blood sugar control test due. Is this something I need to go the lab for? or is this an in-office test? If I need to go to the lab, do I need a referral?Also, we discussed potentially changing prescription from Ozempic to another diabetes medication to help with weight loss since I have not experienced any weight loss with Ozempic even when maintaining a healthy diet.Should we schedule an in-office visit soon? Please advise. Thanks!Christine \n", + "2025-06-17 14:13:33,023 - Provider's response to this similar message: Happy Holidays, Christine!The blood sugar control test, also known as the A1C test, is typically done at a lab but can be done in office so I would recommend you schedule an in office follow up with Dr Tsai to discuss the diabetes medication and check your HgA1c.Jodi Mara Gorman, NP\n", + "2025-06-17 14:13:33,024 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:33,027 - Thread ID: 254395361\n", + "--------------------------------------------------------------------------------\n", + "idx: 64989\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy Holidays, Christine!The blood sugar control test, also known as the A1C test, is typically done at a lab but can be done in office so I would recommend you schedule an in office follow up with Dr Tsai to discuss the diabetes medication and check your HgA1c.Jodi Mara Gorman, NP\n", + "----------------------------------------\n", + "Provider Response by FMO SCHEDULER POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 64988\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy Holidays! I received a message that I have an overdue blood sugar control test due. Is this something I need to go the lab for? or is this an in-office test? If I need to go to the lab, do I need a referral?Also, we discussed potentially changing prescription from Ozempic to another diabetes medication to help with weight loss since I have not experienced any weight loss with Ozempic even when maintaining a healthy diet.Should we schedule an in-office visit soon? Please advise. Thanks!Christine \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Happy Holidays, Christine!The blood sugar control test, also known as the A1C test, is typically done at a lab but can be done in office so I would recommend you schedule an in office follow up with Dr Tsai to discuss the diabetes medication and check your HgA1c.Jodi Mara Gorman, NP\n", + "----------------------------------------\n", + "2025-06-17 14:13:33,029 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:33,030 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:33,031 - ✅ similarity: 0.7666\n", + "2025-06-17 14:13:33,032 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : 11/07 message received advising that a diabetes control blood test need to be completed. Visited LabCorp this morning and firm doesn't have an 'open' order. Should the blood test take place @ LabCorp or given during my 11/13 office visit?Please advise .. & thanks!\n", + "2025-06-17 14:13:33,032 - Provider's response to this similar message: Hi Darryl, Sorry for the confusion. Looks like you are fine on blood work for now and it can be checked at your upcoming visit in office. Take care, Jodi Mara Gorman, NP\n", + "2025-06-17 14:13:33,033 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:33,035 - Thread ID: 250131255\n", + "--------------------------------------------------------------------------------\n", + "idx: 264917\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "11/07 message received advising that a diabetes control blood test need to be completed. Visited LabCorp this morning and firm doesn't have an 'open' order. Should the blood test take place @ LabCorp or given during my 11/13 office visit?Please advise .. & thanks!\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Darryl, Sorry for the confusion. Looks like you are fine on blood work for now and it can be checked at your upcoming visit in office. Take care, Jodi Mara Gorman, NP\n", + "----------------------------------------\n", + "2025-06-17 14:13:33,036 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:33,036 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:33,037 - ✅ similarity: 0.7542\n", + "2025-06-17 14:13:33,037 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Dr. Kelly.I have a followup appointment with you next Tuesday. Am I supposed to get bloodwork done prior to my visit? I am having having a difficult time finding a Labcorp appointment in November.Can you please let me know?Thank you!Btw- lost 15 lbs since my last visit!\n", + "2025-06-17 14:13:33,038 - Provider's response to this similar message: Good morning Brice,Congratulations on the weight loss! That's fantastic progress.I have reviewed your chart and there are no pending lab orders for you to complete. Please continue with your upcoming appointment on Tuesday if any labs are needed they will be ordered at that time.Looking forward to seeing you next week!Best regards,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:13:33,038 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:33,041 - Thread ID: 251187097\n", + "--------------------------------------------------------------------------------\n", + "idx: 210873\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks so much for the speedy reply Ebony!Have a great night!\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 210872\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Kelly.I have a followup appointment with you next Tuesday. Am I supposed to get bloodwork done prior to my visit? I am having having a difficult time finding a Labcorp appointment in November.Can you please let me know?Thank you!Btw- lost 15 lbs since my last visit!\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Good morning Brice,Congratulations on the weight loss! That's fantastic progress.I have reviewed your chart and there are no pending lab orders for you to complete. Please continue with your upcoming appointment on Tuesday if any labs are needed they will be ordered at that time.Looking forward to seeing you next week!Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:13:33,042 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:33,043 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:33,043 - ✅ similarity: 0.7363\n", + "2025-06-17 14:13:33,044 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Are there any lab tests that need to be completed prior to my visit with you on October 30?I’m thinking of my A1c and glucose, for example.Steven Wright510/918-2735\n", + "2025-06-17 14:13:33,044 - Provider's response to this similar message: Hello Mr. Wright,I am responding to your email on behalf of your provider. I have reviewed your chart and there are pending lab orders for you to complete at any quest lab location nearest you.Take care. Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:13:33,045 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:33,047 - Thread ID: 248471065\n", + "--------------------------------------------------------------------------------\n", + "idx: 349552\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Will do!Thanks \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 349551\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Do any of them require me to fast for 12 hours?\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello Steven please fast for 12 hoursMarlene Aguilar-Duarte, MA\n", + "----------------------------------------\n", + "idx: 349550\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Are there any lab tests that need to be completed prior to my visit with you on October 30?I’m thinking of my A1c and glucose, for example.Steven Wright510/918-2735\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello Mr. Wright,I am responding to your email on behalf of your provider. I have reviewed your chart and there are pending lab orders for you to complete at any quest lab location nearest you.Take care. Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:13:33,047 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:33,048 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:33,049 - ✅ similarity: 0.7225\n", + "2025-06-17 14:13:33,050 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi!I was able to get to Quest Lab and have the blood samples taken for the tests you wanted (they got the blood samples at about 1:15 PM). Because I was a walk-in, it took a while to get the blood drawn. I’m not sure if the tests were done today or not. I’m assuming I’ll need to go to the emergency room tomorrow, if I need more insulin right away. I feel fine - I was just tired from waiting at the lab for so long (started at 10:30) without lunch. — Jeff\n", + "2025-06-17 14:13:33,050 - Provider's response to this similar message: Hi Jeff:Sorry about not getting back to you over the holiday. There were some electrolyte abnormalities but the numbers were not severe. It probably helped to get a little bit of insulin to bring the blood sugar down from 500 to 400. I don't see that you ended up going to the ER, at least not in my records? How are you feeling and how have you been managing with the new insulin prescription? If you're feeling fine and didn't go to the ER, we should repeat labs this week to keep track of the electrolytes.- Dr. Lin\n", + "2025-06-17 14:13:33,051 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:33,054 - Thread ID: 251825410\n", + "--------------------------------------------------------------------------------\n", + "idx: 178475\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Turns out Alto doesn’t have any Insulin in stock. Please switch the prescription to Walgreens. Jeff\n", + "----------------------------------------\n", + "Provider Response by LIN, JENNIFER JEH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 178474\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi!I was able to get to Quest Lab and have the blood samples taken for the tests you wanted (they got the blood samples at about 1:15 PM). Because I was a walk-in, it took a while to get the blood drawn. I’m not sure if the tests were done today or not. I’m assuming I’ll need to go to the emergency room tomorrow, if I need more insulin right away. I feel fine - I was just tired from waiting at the lab for so long (started at 10:30) without lunch. — Jeff\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Jeff:Sorry about not getting back to you over the holiday. There were some electrolyte abnormalities but the numbers were not severe. It probably helped to get a little bit of insulin to bring the blood sugar down from 500 to 400. I don't see that you ended up going to the ER, at least not in my records? How are you feeling and how have you been managing with the new insulin prescription? If you're feeling fine and didn't go to the ER, we should repeat labs this week to keep track of the electrolytes.- Dr. Lin\n", + "----------------------------------------\n", + "2025-06-17 14:13:33,055 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:33,802 - Original Message:\n", + "2025-06-17 14:13:33,803 - original_query_message: I have had a bad cold for over a week. My phlegm is more greenish now than yellowishThese colds have been turning into bronchial infections in the last year or soPlease advise if you think I should start an antibiotic before getting worse during the holiday season - thxHarold\n", + "2025-06-17 14:13:34,771 - Query Parameters:\n", + "2025-06-17 14:13:34,772 - query_message: Hi there, I’ve been dealing with a really stubborn cold for about ten days now. It started with a sore throat and runny nose, but now I’m mostly coughing up thick green mucus and feel pretty congested in my chest. Last winter, a couple of my colds ended up turning into bronchitis, so I’m a bit anxious about that happening again—especially since I’m supposed to travel to see family next week. I don’t have a fever, but I do feel tired and just generally unwell. Should I be proactive and ask my doctor for antibiotics, or is it better to wait it out? I just want to avoid things getting worse while I’m away from home. Thanks for your advice!\n", + "2025-06-17 14:13:34,773 - receiver: FRANCIS, RAGNI\n", + "2025-06-17 14:13:34,774 - department: FAMILY MEDICINE MMC MENLO PARK MID\n", + "2025-06-17 14:13:34,775 - specialty: Internal Medicine\n", + "2025-06-17 14:13:35,144 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:35,144 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:35,145 - ✅ similarity: 0.7496\n", + "2025-06-17 14:13:35,145 - Sender: HUIE, DANIEL [ S0027954] -> the retrieved similar message : I have had a bad cold for over a week. My phlegm is more greenish now than yellowishThese colds have been turning into bronchial infections in the last year or soPlease advise if you think I should start an antibiotic before getting worse during the holiday season - thxHarold\n", + "2025-06-17 14:13:35,146 - Provider's response to this similar message: Hello Mr. Simkowitz,We are sorry to hear you are not feeling well. Per Dr Huie we are able to get you in for a video visit this afternoon at 3:30pm. Would you be able to do a video visit then?Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCDaniel A. Huie M.D.Please be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:13:35,147 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:35,157 - Thread ID: 253229341\n", + "--------------------------------------------------------------------------------\n", + "idx: 116324\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have had a bad cold for over a week. My phlegm is more greenish now than yellowishThese colds have been turning into bronchial infections in the last year or soPlease advise if you think I should start an antibiotic before getting worse during the holiday season - thxHarold\n", + "----------------------------------------\n", + "Provider Response by FRANCIS, RAGNI:\n", + "Hello Mr. Simkowitz,We are sorry to hear you are not feeling well. Per Dr Huie we are able to get you in for a video visit this afternoon at 3:30pm. Would you be able to do a video visit then?Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCDaniel A. Huie M.D.Please be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:13:35,158 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:35,159 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:35,160 - ✅ similarity: 0.6202\n", + "2025-06-17 14:13:35,161 - Sender: HUIE, DANIEL [ S0027954] -> the retrieved similar message : Hi Dr. Huie,This past Friday I was beginning to have symptoms of a scratchy throat and cough. Then by Saturday mid-day I was hit out of know where with body aches, fever, chills, headache, fatigue, weakness, and lower back pain. As well as the cough that has more mucus with it. To ease the symptoms I have been taking ibuprofen. I’ve never felt this sick before except 10 years ago when I was in the hospital for plural effusion. Considering all of this, should I be seen in the office? Thank you,Kelly White \n", + "2025-06-17 14:13:35,162 - Provider's response to this similar message: Hello Kelly,I'm sorry you're not feeling well. Per Dr Huie you should be seen for these symptoms. I can either schedule you to see Dr Huie, or you can been seen at an urgent care near you. The soonest that I would have available for Dr Huie would be this afternoon Monday 1/6/25 at 3:00pm. We would ask that you would home COVID test prior to coming in if you would like to be seen with Dr Huie.Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCDaniel A. Huie M.D.Please be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:13:35,162 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:35,166 - Thread ID: 254871832\n", + "--------------------------------------------------------------------------------\n", + "idx: 40110\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Natasha. I’d like to go to my nearest Urgent Care since I’m in San Jose. Is there one you recommend? Thanks,Kelly \n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "Hello Kelly,Thank you for your response. There is a Stanford Express Care Clinic in San Jose. The number to contact them is 669-294-8888. Below is the link to their website. https://stanfordhealthcare.org/medical-clinics/express-care-san-jose.html?cid=clinic%7Clocal%7CGoogle52 Skytop StSte 10San Jose, CA 95134Phone: 669-294-8888Please let me know if there is anything else I may assist you with.Sincerely,Natasha\n", + "----------------------------------------\n", + "idx: 40109\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Huie,This past Friday I was beginning to have symptoms of a scratchy throat and cough. Then by Saturday mid-day I was hit out of know where with body aches, fever, chills, headache, fatigue, weakness, and lower back pain. As well as the cough that has more mucus with it. To ease the symptoms I have been taking ibuprofen. I’ve never felt this sick before except 10 years ago when I was in the hospital for plural effusion. Considering all of this, should I be seen in the office? Thank you,Kelly White \n", + "----------------------------------------\n", + "Provider Response by FRANCIS, RAGNI:\n", + "Hello Kelly,I'm sorry you're not feeling well. Per Dr Huie you should be seen for these symptoms. I can either schedule you to see Dr Huie, or you can been seen at an urgent care near you. The soonest that I would have available for Dr Huie would be this afternoon Monday 1/6/25 at 3:00pm. We would ask that you would home COVID test prior to coming in if you would like to be seen with Dr Huie.Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCDaniel A. Huie M.D.Please be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:13:35,167 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:35,168 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:35,169 - ✅ similarity: 0.5632\n", + "2025-06-17 14:13:35,170 - Sender: HUIE, DANIEL [ S0027954] -> the retrieved similar message : Wondering about getting a chest x-ray to rule out pneumonia? I’ve had a very hacking cough for over a week that doesn’t seem to be getting any better. No runny nose, just an extreme cough.Tom\n", + "2025-06-17 14:13:35,170 - Provider's response to this similar message: Hello Tom,Per Dr Huie he would like to see you today. I have some availability at 3:00pm or 3:30pm. Would any of those times work for you?Sincerely,Natasha\n", + "2025-06-17 14:13:35,172 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:35,178 - Thread ID: 252419265\n", + "--------------------------------------------------------------------------------\n", + "idx: 148529\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Wondering about getting a chest x-ray to rule out pneumonia? I’ve had a very hacking cough for over a week that doesn’t seem to be getting any better. No runny nose, just an extreme cough.Tom\n", + "----------------------------------------\n", + "Provider Response by FRANCIS, RAGNI:\n", + "Hello Tom,Per Dr Huie he would like to see you today. I have some availability at 3:00pm or 3:30pm. Would any of those times work for you?Sincerely,Natasha\n", + "----------------------------------------\n", + "2025-06-17 14:13:35,181 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:35,182 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:35,182 - ✅ similarity: 0.5601\n", + "2025-06-17 14:13:35,182 - Sender: HUIE, DANIEL [ S0027954] -> the retrieved similar message : Hello Dr Chang,I got a cold in November and I have been coughing since then for 3.5 weeks. I wonder if we could schedule an appointment so that you could take a look at me. Thanks a lot. \n", + "2025-06-17 14:13:35,183 - Provider's response to this similar message: Hello Tzu-Ling,At this time Dr Chang is away from the clinic 12/13/24 until 1/3/25 with inconsistent access to respond to patient messages. Your message has been forwarded to covering physician for review.Per the covering MD we are able to schedule you an appointment or you may be seen at your local urgent care. If you are not feeling well you may go to the urgent care or emergency room depending on the severity of your symptoms. Please see below Urgent Care contact information to call and schedule.Stanford Health Care has an urgent care (Stanford Express Care) that is open 7 days per week. It is located at the Stanford Hoover Pavilion: 211 Quarry Road, Suite 102, Palo Alto. They are open 9am - 9 pm everyday. An appointment is required; please call 650-736-5211 for same-day or next-day appointments.Palo Alto Medical Foundation's Urgent Care (650-853-2958), located at 795 El Camino Real, Level 1, Lee Building, Palo Alto.Sutter Health Care Urgent Care (650) 696-4427, located in San Mateo at 100 S San Mateo Dr 2nd Floor, San Mateo, CA 94401 ( Please confirm they accept your insurance before being seen ) Please let me know if you would like to schedule an appointment with the covering MD. Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:13:35,184 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:35,188 - Thread ID: 253372907\n", + "--------------------------------------------------------------------------------\n", + "idx: 110400\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Monday 12/23 10:30 am sounds perfect to me. Thank you so much. \n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "Hello Tzu-Ling,Thank you for your response. You are now scheduled to see Dr Daniel Huie on Monday 12/23/24 at 10:30am in the same office as Dr Chang here at the 321 Middlefield location in Menlo Park. Please let me know if there is anything else I may assist you with.Sincerely,Natasha\n", + "----------------------------------------\n", + "idx: 110399\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, These times do not work for me, unfortunately. I wonder if you have any time next week? thanks a lot.\n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "Hi Tzu-Ling,No problem. I have Monday 12/23/24 at 10:30am 3:15pm, Friday 12/27/24 at 10:30am, 2:45pm. Would any of those days or times work for you?Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "idx: 110398\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,Yes. I would like to see the covering MD. \n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "Hello Tzu-Ling,Thank you for your response. The next available appointment that I have is going to be this afternoon Tuesday 12/17/24 at 4:00pm or Friday 12/20/24 at 10:30am or 3:00am. Would any of those days/times work for you?Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "idx: 110397\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Chang,I got a cold in November and I have been coughing since then for 3.5 weeks. I wonder if we could schedule an appointment so that you could take a look at me. Thanks a lot. \n", + "----------------------------------------\n", + "Provider Response by FRANCIS, RAGNI:\n", + "Hello Tzu-Ling,At this time Dr Chang is away from the clinic 12/13/24 until 1/3/25 with inconsistent access to respond to patient messages. Your message has been forwarded to covering physician for review.Per the covering MD we are able to schedule you an appointment or you may be seen at your local urgent care. If you are not feeling well you may go to the urgent care or emergency room depending on the severity of your symptoms. Please see below Urgent Care contact information to call and schedule.Stanford Health Care has an urgent care (Stanford Express Care) that is open 7 days per week. It is located at the Stanford Hoover Pavilion: 211 Quarry Road, Suite 102, Palo Alto. They are open 9am - 9 pm everyday. An appointment is required; please call 650-736-5211 for same-day or next-day appointments.Palo Alto Medical Foundation's Urgent Care (650-853-2958), located at 795 El Camino Real, Level 1, Lee Building, Palo Alto.Sutter Health Care Urgent Care (650) 696-4427, located in San Mateo at 100 S San Mateo Dr 2nd Floor, San Mateo, CA 94401 ( Please confirm they accept your insurance before being seen ) Please let me know if you would like to schedule an appointment with the covering MD. Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:13:35,190 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:35,190 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:35,191 - ✅ similarity: 0.5527\n", + "2025-06-17 14:13:35,192 - Sender: HUIE, DANIEL [ S0027954] -> the retrieved similar message : Hi Dr. Huie,I have some symptoms for which I hope you can prescribe for my fever 100.9 (most of today), some white specks in the back of my throat but it is not sore and a productive mucus cough. Also, no obvious congestion in my nose and negative Covid tests. Thank you. Bill\n", + "2025-06-17 14:13:35,193 - Provider's response to this similar message: Hello Mr. Berman,Unfortunately, we do not have anything available for Dr Huie with it being late in the day, but I do have tomorrow Friday 12/6/24 at 9:45am for a video visit. Would that work for you? If you are not able to wait there is the Stanford Express Care Clinic. Please see below contact information.Stanford Health Care has an urgent care (Stanford Express Care) that is open 7 days per week. It is located at the Stanford Hoover Pavilion: 211 Quarry Road, Suite 102, Palo Alto. They are open 9am - 9 pm everyday. An appointment is required; please call 650-736-5211 for same-day or next-day appointments.Palo Alto Medical Foundation's Urgent Care (650-853-2958), located at 795 El Camino Real, Level 1, Lee Building, Palo Alto.Sutter Health Care Urgent Care (650) 696-4427, located in San Mateo at 100 S San Mateo Dr 2nd Floor, San Mateo, CA 94401 ( Please confirm they accept your insurance before being seen ) Or, please call your insurance to check who you are able to be seen by that is covered under your network. Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:13:35,194 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:35,196 - Thread ID: 252288231\n", + "--------------------------------------------------------------------------------\n", + "idx: 154783\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for your reply. I will pursue an urgent care visit if needed and will allow you to keep your video appointment for someone who may be in greater need. I have been fever-free this afternoon, no cough and feeling much better after this 36 hour bout with a bug. Much appreciated. \n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "Hello Mr. Berman,Thank you for your response. Please let me know if there is anything else I may assist you with. I'm glad to hear you are feeling much better. Happy Holidays.Sincerely,Natasha\n", + "----------------------------------------\n", + "idx: 154782\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Huie,I have some symptoms for which I hope you can prescribe for my fever 100.9 (most of today), some white specks in the back of my throat but it is not sore and a productive mucus cough. Also, no obvious congestion in my nose and negative Covid tests. Thank you. Bill\n", + "----------------------------------------\n", + "Provider Response by FRANCIS, RAGNI:\n", + "Hello Mr. Berman,Unfortunately, we do not have anything available for Dr Huie with it being late in the day, but I do have tomorrow Friday 12/6/24 at 9:45am for a video visit. Would that work for you? If you are not able to wait there is the Stanford Express Care Clinic. Please see below contact information.Stanford Health Care has an urgent care (Stanford Express Care) that is open 7 days per week. It is located at the Stanford Hoover Pavilion: 211 Quarry Road, Suite 102, Palo Alto. They are open 9am - 9 pm everyday. An appointment is required; please call 650-736-5211 for same-day or next-day appointments.Palo Alto Medical Foundation's Urgent Care (650-853-2958), located at 795 El Camino Real, Level 1, Lee Building, Palo Alto.Sutter Health Care Urgent Care (650) 696-4427, located in San Mateo at 100 S San Mateo Dr 2nd Floor, San Mateo, CA 94401 ( Please confirm they accept your insurance before being seen ) Or, please call your insurance to check who you are able to be seen by that is covered under your network. Sincerely,NatashaRagni Francis ( Natasha ) M.A.Family Medicine MMCYuWen Chang DOPlease be aware that messages are not monitored outside of business hours. Although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:13:35,197 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:35,621 - Original Message:\n", + "2025-06-17 14:13:35,622 - original_query_message: This message is being sent by Patricia M Favaro on behalf of Antonio Favaro O DowdHello team,Happy new year!Antonio is due for this annual check up with dr. Angelo. Could you please, provide me a couple of options for his appointment? the best days are on Wednesday, where he as the full afternoon free (earlier dismissal at school).Thank you in advance,best,Patricia \n", + "2025-06-17 14:13:37,199 - Query Parameters:\n", + "2025-06-17 14:13:37,200 - query_message: Hi there,I hope you're doing well! I wanted to get in touch about scheduling my son’s yearly checkup with Dr. Angelo. His allergies have been acting up a bit more lately, and we’ve noticed he gets headaches occasionally after soccer practice, so I’d really appreciate a thorough review this time around.I was wondering if we could possibly book something on a Wednesday afternoon, since he gets out of school earlier and doesn’t have any other activities then. Are there any Wednesday slots available in the next few weeks? Thanks so much for your help!Best, Megan\n", + "2025-06-17 14:13:37,200 - receiver: PORTOLA VALLEY PROVIDERS TEAM 2 POOL\n", + "2025-06-17 14:13:37,201 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:13:37,201 - specialty: Primary Care\n", + "2025-06-17 14:13:37,917 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:37,919 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:37,920 - ✅ similarity: 0.7959\n", + "2025-06-17 14:13:37,921 - Sender: BURNS, ZACHARIA [ S0339668] -> the retrieved similar message : This message is being sent by Patricia M Favaro on behalf of Antonio Favaro O DowdHello team,Happy new year!Antonio is due for this annual check up with dr. Angelo. Could you please, provide me a couple of options for his appointment? the best days are on Wednesday, where he as the full afternoon free (earlier dismissal at school).Thank you in advance,best,Patricia \n", + "2025-06-17 14:13:37,922 - Provider's response to this similar message: Good morning Patricia,I hope this message finds you well.Are you available for a visit on a Friday afternoon? Dr. Angelo is in office Tuesday and Thursday morning and Friday all day but not Wednesday.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:13:37,923 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:37,935 - Thread ID: 255065354\n", + "--------------------------------------------------------------------------------\n", + "idx: 31237\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Patricia M Favaro on behalf of Antonio Favaro O DowdHello team,Happy new year!Antonio is due for this annual check up with dr. Angelo. Could you please, provide me a couple of options for his appointment? the best days are on Wednesday, where he as the full afternoon free (earlier dismissal at school).Thank you in advance,best,Patricia \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Patricia,I hope this message finds you well.Are you available for a visit on a Friday afternoon? Dr. Angelo is in office Tuesday and Thursday morning and Friday all day but not Wednesday.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 31236\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Patricia M Favaro on behalf of Antonio Favaro O Dowdyes, it works perfectly!See you on Friday, 10th, at 4pm.thanks,Patricia\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Thank you, this has been scheduled for you.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 31235\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Patricia M Favaro on behalf of Antonio Favaro O DowdGood morning Alondra,Thank you for the quick reply. Yes, Friday could work if we can push to the last appointment of the afternoon. Would that be possible, please?Thank you,best,Patricia\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "She has an appointment for this Friday at 4:00pm, would this work for you?\n", + "----------------------------------------\n", + "2025-06-17 14:13:37,935 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:37,936 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:37,937 - ✅ similarity: 0.7223\n", + "2025-06-17 14:13:37,937 - Sender: MANUGIAN, AREK [ S0195819] -> the retrieved similar message : Hey Dr. Angelo,i’m starting school in January and need a TB skin test and my physical is there any way i can schedule an appointment with you ? thank youanya \n", + "2025-06-17 14:13:37,938 - Provider's response to this similar message: Good afternoon Anya,I hope this message finds you well.Dr. Angelo's next available in person visit is Friday, 12/27 at 3:30pm. Would you like to proceed with scheduling this?Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:13:37,939 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:37,942 - Thread ID: 253953870\n", + "--------------------------------------------------------------------------------\n", + "idx: 84312\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "i would love to do that thank you so much alondra \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Anya,Your physical exam with TB skin test has been scheduled for Friday 12/27 at 3:30pm with Dr. Angelo.Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 84311\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey Dr. Angelo,i’m starting school in January and need a TB skin test and my physical is there any way i can schedule an appointment with you ? thank youanya \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good afternoon Anya,I hope this message finds you well.Dr. Angelo's next available in person visit is Friday, 12/27 at 3:30pm. Would you like to proceed with scheduling this?Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:13:37,943 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:37,943 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:37,944 - ✅ similarity: 0.7085\n", + "2025-06-17 14:13:37,944 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Hello dear Dr. Angelo I hope you and your family are well. I was wondering if I can have an appointment with you. I have a little problem with my lungs and breathing. I feel like it’s not enough air to breathe well and makes me cough sometimes to get air in. That has been an issue for a week or little more. I appreciate your help.Sincerely,Vida\n", + "2025-06-17 14:13:37,945 - Provider's response to this similar message: Hi Vida, Dr. Angelo does not have any openings this week but are you open to seeing Zhi, PA on Wednesday at 9:30 A.M?Regards,Gabriela FonsecaTeam 2 PV, Patient Care Coordinator Stanford Health Care Primary Care3250 Alpine Rd. Portola Valley, CAPh- (650)498-9000Fx- (650)736-0647Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department.\n", + "2025-06-17 14:13:37,945 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:37,951 - Thread ID: 248401778\n", + "--------------------------------------------------------------------------------\n", + "idx: 353567\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Gabriela Thank you very much for following and trying to help. Made an appointment for this afternoon.I appreciate your help.Vida\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 353566\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Gabriela I was wondering if you were able to find me any lucky appointment with any available Dr. for today. I am getting worse and more nauseous as well as breathing issues.Sorry bothering you.Thank you very much.Vida\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 353565\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Gabriela I was wondering if the other Doctors that I saw them before have any openings.Thank you Vida\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 353564\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello dear Dr. Angelo I hope you and your family are well. I was wondering if I can have an appointment with you. I have a little problem with my lungs and breathing. I feel like it’s not enough air to breathe well and makes me cough sometimes to get air in. That has been an issue for a week or little more. I appreciate your help.Sincerely,Vida\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hi Vida, Dr. Angelo does not have any openings this week but are you open to seeing Zhi, PA on Wednesday at 9:30 A.M?Regards,Gabriela FonsecaTeam 2 PV, Patient Care Coordinator Stanford Health Care Primary Care3250 Alpine Rd. Portola Valley, CAPh- (650)498-9000Fx- (650)736-0647Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department.\n", + "----------------------------------------\n", + "2025-06-17 14:13:37,952 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:37,952 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:37,952 - ✅ similarity: 0.7019\n", + "2025-06-17 14:13:37,953 - Sender: BURNS, ZACHARIA [ S0339668] -> the retrieved similar message : Hello,My son has an appointment at that time. Is there any availability Fri?Thanks,Ginna\n", + "2025-06-17 14:13:37,953 - Provider's response to this similar message: Hello Ginna,We have an available visit for Friday 11/15 at 10:30am with one of our covering provider Dr. Angelo. Would you be available to come into clinic for this date and time?Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:13:37,954 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:37,957 - Thread ID: 250496789\n", + "--------------------------------------------------------------------------------\n", + "idx: 246169\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "That should work! And this is at the alpine road address?\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Ginna,Perfect, this visit has been scheduled for you. Yes this will be at the 3250 alpine road location in Portola Valley. The appointment details can be viewed via your MyHealth account. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 246168\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m so sorry, with a 6mo old and change in job I I didn’t get around to check this in time. What is the availability for Monday next week and if not then Thursday or Friday?Thank you,Ginna\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Ginna,No worries, we have an available visit for Thursday 11/21 at 10:00am with covering provider LeeAnn Ranieri. NP. Would you be available to come into clinic for this date and time?Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 246167\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,My son has an appointment at that time. Is there any availability Fri?Thanks,Ginna\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Ginna,We have an available visit for Friday 11/15 at 10:30am with one of our covering provider Dr. Angelo. Would you be available to come into clinic for this date and time?Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 246166\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi there,Over the last 3-4 weeks I’ve had increasing numbness radiating from just below my neck distally towards my shoulder on my right side. I’m trying to be mindful about posture and desk ergonomics and keeping my arms lower to my body during tasks but it’s not helping in any significant way. I was wondering if you would refer me and if so, to whom?Thank you,Ginna\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Ginna,Would you be available to come into clinic tomorrow Thursday 11/14 at 10:30am for a visit with LeeAnn Ranieri, NP to be evaluated? We will review your response tomorrow morning. For any urgent appointments please contact Express Care they have extended hours including weekend.There are 2 locations, please call to schedule a convenient appointment. Stanford Express Care Palo Alto 211 Quarry Rd Ste 102, Palo Alto · (650) 736-5211 Stanford Express Care San Jose 52 Skytop St Suite 10, San Jose · (669) 294-8888 To minimize any delays in care, Please call back at 650-498-9000. This number is available 24 hours daily for the Primary Care Department. You can speak with staff in our Clinical Advice Services after hours, on weekends, and Holidays. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:13:37,957 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:37,958 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:37,958 - ✅ similarity: 0.6854\n", + "2025-06-17 14:13:37,959 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Hi again, I sent the previous message without checking my schedule first and I’m not able to make it in tomorrow for the appointment with Dr. Gross. Does Dr. Angelo have anything next week? Thank you, Gina \n", + "2025-06-17 14:13:37,960 - Provider's response to this similar message: Hello Gina, I hope this message finds you well. I have attached our scheduling ticked to help assist you with finding a date and time that works best for you. Please take a look at the attachment below. If you have any questions feel free to reach out All the best, Valerie Angel Primary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)489-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:13:37,960 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:37,964 - Thread ID: 251527479\n", + "--------------------------------------------------------------------------------\n", + "idx: 193437\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi again, I sent the previous message without checking my schedule first and I’m not able to make it in tomorrow for the appointment with Dr. Gross. Does Dr. Angelo have anything next week? Thank you, Gina \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Gina, I hope this message finds you well. I have attached our scheduling ticked to help assist you with finding a date and time that works best for you. Please take a look at the attachment below. If you have any questions feel free to reach out All the best, Valerie Angel Primary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)489-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 193436\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Alondra, Yes, I’ll make that work since they’re fitting me in. PV clinic? Thank you, Gina \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 193435\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Angelo, For the past month I’ve been having pain in my lower abdomen and pelvic area. It doesn’t feel muscular in my back, rather something internal. I get woken up by the pain every night around 4am and toss and turn until it’s time to get up. It continues to hurt about 1 hour after I’m up but after that I go about my day as normal. I can walk up stairs, lift my legs, bend over and I have no pain. I’m wondering if it could be the endometrial polyp or something else? I didn’t have the polyp removed because originally, I was told it would be done in an exam room but then I was told it would be under GA and I didn’t want to proceed at that time. I also wasn’t having pain, just a very heavy flow, which continues. Any advice you can provide in who I should follow up would be great. Happy to see you as well, if needed. Thank you, Gina \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Gina,Dr. Angelo is out of office today, however, a covering provider Dr. Gross has advised that you be evaluated in person.I have placed the following appointment on hold. Please let me know if you would like to proceed with scheduling this appointment. This appointment will be placed on hold for the next 24 hours.Date: Tuesday, 11/26Time: 2:00pmWe look forward to hearing from you.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)489-9000Fax (650)736-0647Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:13:37,965 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:38,174 - Original Message:\n", + "2025-06-17 14:13:38,175 - original_query_message: Hello, I just wanted your office to know that I had my diabetic eye exam today and my Dr is faxing the information to your office for my file. I want to be sure the information is added to my file because I get reminders from your office on a regular basis to get this done. I do it every year but I still get messages. Thanks\n", + "2025-06-17 14:13:39,753 - Query Parameters:\n", + "2025-06-17 14:13:39,755 - query_message: Hi there, I just wanted to touch base because I had my routine diabetic eye checkup last week—my ophthalmologist said they already sent the results over to your office. I do this every year, but I still keep getting reminders to schedule my eye exam, and it makes me worry something's missing in my record. I’ve also noticed a bit more dryness and occasional blurriness in my eyes lately and was wondering if that’s something I should mention or if it’s related to my diabetes. Could you please confirm if you’ve received the latest exam notes? Also, should I bring up these new symptoms at my next appointment? Thanks so much!\n", + "2025-06-17 14:13:39,757 - receiver: SMPPCPLT CARE TEAM POOL\n", + "2025-06-17 14:13:39,765 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:13:39,776 - specialty: Primary Care\n", + "2025-06-17 14:13:42,387 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:42,389 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:42,389 - ✅ similarity: 0.8288\n", + "2025-06-17 14:13:42,391 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Doctor,I had my eyes checked for diabetes today and they will forward the scan to the office for my records. No sign of diabetes in the eyes.Thanks,\n", + "2025-06-17 14:13:42,393 - Provider's response to this similar message: Hi Alvin A Lal I have updated your chartThank you,Herlinda G. MAStanford Health CareStanford Medicine Partners5568 Gibraltar DrPleasanton, CA 94588925-534-6500Fax: 925-263-5673\n", + "2025-06-17 14:13:42,395 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:42,402 - Thread ID: 249750975\n", + "--------------------------------------------------------------------------------\n", + "idx: 284028\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Doctor,I had my eyes checked for diabetes today and they will forward the scan to the office for my records. No sign of diabetes in the eyes.Thanks,\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Alvin A Lal I have updated your chartThank you,Herlinda G. MAStanford Health CareStanford Medicine Partners5568 Gibraltar DrPleasanton, CA 94588925-534-6500Fax: 925-263-5673\n", + "----------------------------------------\n", + "2025-06-17 14:13:42,404 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:42,405 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:42,406 - ✅ similarity: 0.8129\n", + "2025-06-17 14:13:42,407 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I went to Dr. Auker's office this afternoon. I was told that they have done the diabetes eye check on me last August. I asked them to send the result to you. I'm due for another one in August. If you want me to have my eye check sooner please let me know. \n", + "2025-06-17 14:13:42,408 - Provider's response to this similar message: Thank you Lee,I have received the fax and updated your chart.Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "2025-06-17 14:13:42,408 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:42,411 - Thread ID: 255095661\n", + "--------------------------------------------------------------------------------\n", + "idx: 29865\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I went to Dr. Auker's office this afternoon. I was told that they have done the diabetes eye check on me last August. I asked them to send the result to you. I'm due for another one in August. If you want me to have my eye check sooner please let me know. \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Thank you Lee,I have received the fax and updated your chart.Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "2025-06-17 14:13:42,412 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:42,412 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:42,413 - ✅ similarity: 0.7798\n", + "2025-06-17 14:13:42,414 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Dr. Kwong,The following is listed in my Health Reminder as being due:Diabetic Eye (Retina) Health CheckLast done: 12/18/2023I had a visit with Dr. Gagnon of Valley EyeCare Center on 12/16/2024. A report should have been sent to your office. Please check and update my record. Many thanks, Michael\n", + "2025-06-17 14:13:42,414 - Provider's response to this similar message: Hi Michael,I have contacted Valley Eye care requesting your most recent diabetic eye exam, I had to leave a message. Once it is received, I will update your chart and let you know. It says can take up to two weeks for the medical records to be sent.Thank you and I hope all is well!Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "2025-06-17 14:13:42,415 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:42,418 - Thread ID: 255480185\n", + "--------------------------------------------------------------------------------\n", + "idx: 13771\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Kwong,The following is listed in my Health Reminder as being due:Diabetic Eye (Retina) Health CheckLast done: 12/18/2023I had a visit with Dr. Gagnon of Valley EyeCare Center on 12/16/2024. A report should have been sent to your office. Please check and update my record. Many thanks, Michael\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Michael,I have contacted Valley Eye care requesting your most recent diabetic eye exam, I had to leave a message. Once it is received, I will update your chart and let you know. It says can take up to two weeks for the medical records to be sent.Thank you and I hope all is well!Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "2025-06-17 14:13:42,419 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:42,420 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:42,420 - ✅ similarity: 0.7357\n", + "2025-06-17 14:13:42,421 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I just wanted your office to know that I had my diabetic eye exam today and my Dr is faxing the information to your office for my file. I want to be sure the information is added to my file because I get reminders from your office on a regular basis to get this done. I do it every year but I still get messages. Thanks\n", + "2025-06-17 14:13:42,422 - Provider's response to this similar message: Hello Susan, This is Cyncere, MA from Dr. Velpuri's office. Perfect, thank you for the update. We will be on the lookout for incoming faxes regarding your diabetic eye exam and scan it into your chart. Cyncere, MA10/23/2024, 9:30 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:13:42,423 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:42,425 - Thread ID: 248586576\n", + "--------------------------------------------------------------------------------\n", + "idx: 343720\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Perfect!Thank you\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 343719\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Cyncere Norde, MA, sent me a message before you saying that she would be on the lookout for the document. You're saying you have it?\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Susan,Yes we do have the eye exam report on file.Kind Regards,Rachel Keel, MA, 11/8/2024, 9:53 AM\n", + "----------------------------------------\n", + "idx: 343718\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It was faxed to you on 10-22! It never seems to make it into my chart. I had a long talk with my Dr and he assured me that it is sent every year. \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Susan, We show scan completed 10/22/2024\n", + "----------------------------------------\n", + "idx: 343717\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I just wanted your office to know that I had my diabetic eye exam today and my Dr is faxing the information to your office for my file. I want to be sure the information is added to my file because I get reminders from your office on a regular basis to get this done. I do it every year but I still get messages. Thanks\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Susan, This is Cyncere, MA from Dr. Velpuri's office. Perfect, thank you for the update. We will be on the lookout for incoming faxes regarding your diabetic eye exam and scan it into your chart. Cyncere, MA10/23/2024, 9:30 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:13:42,426 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:42,427 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:42,428 - ✅ similarity: 0.7196\n", + "2025-06-17 14:13:42,429 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Diabetic Eye Retina exam was done on 11.19 at Dr Roger Chan's office in Dublin - all clear; please request a report from his office.Thanks, Tim\n", + "2025-06-17 14:13:42,431 - Provider's response to this similar message: Thank you, I will reach to Dr.Chan's office and request the results to be faxed over.Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "2025-06-17 14:13:42,432 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:42,434 - Thread ID: 252053433\n", + "--------------------------------------------------------------------------------\n", + "idx: 166176\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, I will reach to Dr.Chan's office and request the results to be faxed over.Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 166175\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Diabetic Eye Retina exam was done on 11.19 at Dr Roger Chan's office in Dublin - all clear; please request a report from his office.Thanks, Tim\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Thank you, I will reach to Dr.Chan's office and request the results to be faxed over.Lisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "2025-06-17 14:13:42,434 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:43,280 - Original Message:\n", + "2025-06-17 14:13:43,281 - original_query_message: Hi Dr Huie. I’m in Singapore and ran out of propolanal. They don’t have any extended release so I got 10mg of regular. I need to take this as of today but they said I should take in increments. What do you recommend? I’m back in the us next Wed. Additionally today I felt very sick (dizzy light headed) so I went to a clinic. The doctor there told me Amodaline has the same effect as propanol so he game me those as well. Do you recommend I take this until I’m back in the US instead? Thank you\n", + "2025-06-17 14:13:44,454 - Query Parameters:\n", + "2025-06-17 14:13:44,456 - query_message: Hi Dr. Huie, I’m currently traveling in Singapore and I just realized I’ve run out of my propranolol prescription, which I take for my heart palpitations and anxiety. The pharmacy here didn’t have the extended-release version I usually take, so they offered me the regular 10mg tablets instead. I’m a bit unsure how best to adjust the dosing with the immediate-release kind—should I just split up the doses throughout the day until I can get back to my regular meds when I return to the US next week?Also, I had a bit of a scare today with feeling faint and out of breath, so I stopped by a local clinic. The doctor there suggested I try a medicine called amiodarone as an alternative, but I’m not familiar with it and am concerned about side effects or risks since it’s different from what I’m used to. Would you suggest sticking with the regular propranolol for now, or is it okay to make the switch temporarily?Thanks so much for your help—I’m feeling a bit lost being abroad with this situation.\n", + "2025-06-17 14:13:44,458 - receiver: HUIE, DANIEL\n", + "2025-06-17 14:13:44,460 - department: FAMILY MEDICINE MMC MENLO PARK MID\n", + "2025-06-17 14:13:44,461 - specialty: Internal Medicine\n", + "2025-06-17 14:13:44,851 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:44,854 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:44,856 - ✅ similarity: 0.7327\n", + "2025-06-17 14:13:44,861 - Sender: FRANCIS, RAGNI [ S0065581] -> the retrieved similar message : Hi Dr Huie. I’m in Singapore and ran out of propolanal. They don’t have any extended release so I got 10mg of regular. I need to take this as of today but they said I should take in increments. What do you recommend? I’m back in the us next Wed. Additionally today I felt very sick (dizzy light headed) so I went to a clinic. The doctor there told me Amodaline has the same effect as propanol so he game me those as well. Do you recommend I take this until I’m back in the US instead? Thank you\n", + "2025-06-17 14:13:44,865 - Provider's response to this similar message: Hi You can try 40 mg of the Propanolol three times daily to equal what you are taking\n", + "2025-06-17 14:13:44,868 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:45,174 - Thread ID: 253197956\n", + "--------------------------------------------------------------------------------\n", + "idx: 117558\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Huie. I’m in Singapore and ran out of propolanal. They don’t have any extended release so I got 10mg of regular. I need to take this as of today but they said I should take in increments. What do you recommend? I’m back in the us next Wed. Additionally today I felt very sick (dizzy light headed) so I went to a clinic. The doctor there told me Amodaline has the same effect as propanol so he game me those as well. Do you recommend I take this until I’m back in the US instead? Thank you\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Hi You can try 40 mg of the Propanolol three times daily to equal what you are taking\n", + "----------------------------------------\n", + "2025-06-17 14:13:45,178 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:45,181 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:45,202 - ✅ similarity: 0.6408\n", + "2025-06-17 14:13:45,220 - Sender: RUIZ, RUTH [ S0206010] -> the retrieved similar message : Richard again for Cosette Bixler. Sorry, screwed up on mobile phone, there were two following messages with detail, as follows:Cosy is about to finish her Amiodarone prescription from ER Cardio Dr. Bekheet. Dr. Bekheet has told CVS that they should not call her for refills. So I am asking if you can refill for her. If you can refill, she needs 1x per day Amiodarone HCL 200 Tablet. Original Rx included startup dosage of 3x per day for first 7 days; but that extra is no longer needed, just the 1 per day needed now. She has 6 pills now that will take her through Monday so she needs this available by Tuesday 3 December. CVS has stock for this.And if you are the appropriate one for me to ask for this refill, the prescription has been at CVS 16113 in Target, at 555 Showers Drive, Mountain View CA 94040, 650-965-0129.Thanks Dr. Huie. - Richard\n", + "2025-06-17 14:13:45,222 - Provider's response to this similar message: I forwarded the message to Dr Perez the Cardiologist that should prescribe it. Please let me know\n", + "2025-06-17 14:13:45,224 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:45,230 - Thread ID: 251702925\n", + "--------------------------------------------------------------------------------\n", + "idx: 184375\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Richard again for Cosette Bixler. Sorry, screwed up on mobile phone, there were two following messages with detail, as follows:Cosy is about to finish her Amiodarone prescription from ER Cardio Dr. Bekheet. Dr. Bekheet has told CVS that they should not call her for refills. So I am asking if you can refill for her. If you can refill, she needs 1x per day Amiodarone HCL 200 Tablet. Original Rx included startup dosage of 3x per day for first 7 days; but that extra is no longer needed, just the 1 per day needed now. She has 6 pills now that will take her through Monday so she needs this available by Tuesday 3 December. CVS has stock for this.And if you are the appropriate one for me to ask for this refill, the prescription has been at CVS 16113 in Target, at 555 Showers Drive, Mountain View CA 94040, 650-965-0129.Thanks Dr. Huie. - Richard\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "I forwarded the message to Dr Perez the Cardiologist that should prescribe it. Please let me know\n", + "----------------------------------------\n", + "idx: 184374\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Huie - Richard here for Cosette. She has am amiodarone\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Do not understand question\n", + "----------------------------------------\n", + "2025-06-17 14:13:45,236 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:45,242 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:45,243 - ✅ similarity: 0.5774\n", + "2025-06-17 14:13:45,244 - Sender: FRANCIS, RAGNI [ S0065581] -> the retrieved similar message : Happy, Healthy New Year, Dr. Huie~ I wanted to \"thank you\" for scheduling my recent appointment with Dr. Guttas! He and his staff are also \"top-notch\". As you know, I am not a fan of taking any extra medication but have been abiding by your recent medicine requirements and doing Very well:)))....Dr. Guttas also added another medicine called \"Nebivolol, 2.5mg daily\". I have yet to fill this prescription as I really do not want to take any additional medicine if I can avoid doing so. I trust you implicitly and wanted to ask your thoughts on the need to take this medication. Is it until my cholesterol levels are more in line where we need them to be? Can I stop this medicine in the future? Side effects? Dr. Guttas suggested I take this additional prescription so that I can have my heart slow down at night and I can enjoy a restful nights sleep and while I miss having a good nites sleep, I do not want my heart to slow down. Please advise. My best always, Cristina\n", + "2025-06-17 14:13:45,245 - Provider's response to this similar message: Hi I'm happy you liked Guttas. 1) I am 50/50 on the new medicine 2) You would be better off increasing the cholesterol medicine unless your blood pressure is elevated Let me know\n", + "2025-06-17 14:13:45,246 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:45,249 - Thread ID: 254731892\n", + "--------------------------------------------------------------------------------\n", + "idx: 47631\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Huie, I wasn’t sure if you would be increasing my cholesterol medication or I have to go thru Dr. Guttas for that. I feel a little awkward going through him since I am not willing to take the other heart slowing down medicine he highly recommended. Thoughts? Sorry for the back and forth questions. Appreciatively, Cristina\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "I do not think that he would take declining the additional medicine personally. If you are OK with it I would just advise him that you are only comfortable taking the cholesterol medicine at first and reassessing an additional medicine in the future. If so he will increase the cholesterol medicine. Please let me know\n", + "----------------------------------------\n", + "idx: 47630\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Huie~ Thank you for your quick reply :)) I like your approach best and to increase the cholesterol medication versus adding this addition \"heart-slowing-down-medication\"....I have monitored my BP readings for you to see (over the past few days and they are as follows): 1/3/25, @ 6:26pm, BP reading 124/741/5/25 @ 12:26pm, BP reading 125/761/6/25 @ 12:05pm, BP reading 117/82If you are good with these numbers, I am happy to have you increase my cholesterol medication. Please advise. Thanks a million, Cristina\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Those numbers look OK will you be following up with Cardiology? If so he will be adjusting the cholesterol medicine. Let me know\n", + "----------------------------------------\n", + "idx: 47629\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy, Healthy New Year, Dr. Huie~ I wanted to \"thank you\" for scheduling my recent appointment with Dr. Guttas! He and his staff are also \"top-notch\". As you know, I am not a fan of taking any extra medication but have been abiding by your recent medicine requirements and doing Very well:)))....Dr. Guttas also added another medicine called \"Nebivolol, 2.5mg daily\". I have yet to fill this prescription as I really do not want to take any additional medicine if I can avoid doing so. I trust you implicitly and wanted to ask your thoughts on the need to take this medication. Is it until my cholesterol levels are more in line where we need them to be? Can I stop this medicine in the future? Side effects? Dr. Guttas suggested I take this additional prescription so that I can have my heart slow down at night and I can enjoy a restful nights sleep and while I miss having a good nites sleep, I do not want my heart to slow down. Please advise. My best always, Cristina\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Hi I'm happy you liked Guttas. 1) I am 50/50 on the new medicine 2) You would be better off increasing the cholesterol medicine unless your blood pressure is elevated Let me know\n", + "----------------------------------------\n", + "idx: 47628\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Dr. Huie, I will reach out to Dr. Guttas and with your suggestion of how to phrase my request for an increase in the Cholesterol meds and to reassess the potential need for additional medicationdown the road.My best always,Cristina\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Sounds good let me know\n", + "----------------------------------------\n", + "2025-06-17 14:13:45,250 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:45,251 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:45,251 - ✅ similarity: 0.5772\n", + "2025-06-17 14:13:45,252 - Sender: FRANCIS, RAGNI [ S0065581] -> the retrieved similar message : Hi Dr. Huie,Could you please renew my propranolol 10 mg prescription? I know I had refills but I didn’t really need them before the expiration date. Please use the Middlefield Safeway pharmacy I have on file. Thanks,Ginger\n", + "2025-06-17 14:13:45,252 - Provider's response to this similar message: Sent to safeway\n", + "2025-06-17 14:13:45,257 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:45,259 - Thread ID: 251706078\n", + "--------------------------------------------------------------------------------\n", + "idx: 184219\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks!Happy Thanksgiving!Ginger\n", + "----------------------------------------\n", + "Provider Response by MMC FAMILY MEDICINE MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 184218\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Huie,Could you please renew my propranolol 10 mg prescription? I know I had refills but I didn’t really need them before the expiration date. Please use the Middlefield Safeway pharmacy I have on file. Thanks,Ginger\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Sent to safeway\n", + "----------------------------------------\n", + "2025-06-17 14:13:45,261 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:45,262 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:45,263 - ✅ similarity: 0.5428\n", + "2025-06-17 14:13:45,265 - Sender: LAFONTAINE, LILLIAN [ S0165015] -> the retrieved similar message : Hello Dr Huie,Happy New Year!I am emailing to ask for a prescription for the other drug that the emergency room gave me. I only have a couple left. Hydroxyzine HCL 25mg tabs (white). The bottle says I can take it every 6 hours as needed for anxiety and restlessness. I take it occasionally and typically only one tablet each occurrence. Please send it to OPTUM RX so I can have it delivered.FYI, I have an appointment with Keith Lee at PAMF on January 2nd for my urology issue.Thanks for your help,Roy\n", + "2025-06-17 14:13:45,267 - Provider's response to this similar message: Sent in\n", + "2025-06-17 14:13:45,268 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:45,270 - Thread ID: 254340118\n", + "--------------------------------------------------------------------------------\n", + "idx: 67602\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Huie,Happy New Year!I am emailing to ask for a prescription for the other drug that the emergency room gave me. I only have a couple left. Hydroxyzine HCL 25mg tabs (white). The bottle says I can take it every 6 hours as needed for anxiety and restlessness. I take it occasionally and typically only one tablet each occurrence. Please send it to OPTUM RX so I can have it delivered.FYI, I have an appointment with Keith Lee at PAMF on January 2nd for my urology issue.Thanks for your help,Roy\n", + "----------------------------------------\n", + "Provider Response by HUIE, DANIEL:\n", + "Sent in\n", + "----------------------------------------\n", + "2025-06-17 14:13:45,270 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:45,911 - Original Message:\n", + "2025-06-17 14:13:45,912 - original_query_message: Hi Kindal,When I was in the office last Thursday, I left a urine sample to be tested for a UTI. Are the results available? I don’t have pronounced symptoms, but still feel a little sensitive in the area. Thank you!Caprice Hardy\n", + "2025-06-17 14:13:47,491 - Query Parameters:\n", + "2025-06-17 14:13:47,493 - query_message: Hi Kindal,I came in earlier this week because I was having a bit of discomfort and some mild urgency when I go to the bathroom. I dropped off a urine sample to check for any infection, but I haven’t heard back yet on the results. The symptoms aren’t really severe—more like a slight irritation—but they haven’t completely gone away either. Could you let me know if anything showed up in my test, or if there’s anything else I should do at this point? Thanks so much!Best, Jessica\n", + "2025-06-17 14:13:47,494 - receiver: ALFP CARE TEAM POOL\n", + "2025-06-17 14:13:47,494 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:13:47,496 - specialty: Family Medicine\n", + "2025-06-17 14:13:49,498 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:49,498 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:49,499 - ✅ similarity: 0.7662\n", + "2025-06-17 14:13:49,499 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Any information on the results of my urinalysis? It’s been days. Thank you, Shelley \n", + "2025-06-17 14:13:49,500 - Provider's response to this similar message: Usually takes 4-5 days for the urine culture to come back.\n", + "2025-06-17 14:13:49,502 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:49,506 - Thread ID: 253379083\n", + "--------------------------------------------------------------------------------\n", + "idx: 110023\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Any information on the results of my urinalysis? It’s been days. Thank you, Shelley \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Usually takes 4-5 days for the urine culture to come back.\n", + "----------------------------------------\n", + "idx: 110022\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning. Will you please put in an order for urinalysis. I feel there’s a possibility of having a UTI. I did use a home testing strip yesterday but it’s inconclusive. Please order today so I can go to Labcorp today and give a sample. Thank you! \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Shelley.I have placed the order to be done at LabCorp. I will release the result to your portal message as soon as it becomes available.Kindal\n", + "----------------------------------------\n", + "2025-06-17 14:13:49,507 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:49,508 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:49,509 - ✅ similarity: 0.7378\n", + "2025-06-17 14:13:49,510 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Kindal,The last few weeks when I've urinated, I've felt like the flow rate is reduced. Not enough that it's a weak stream with interruptions, but enough that it \"feels like\" it's being held back. Then, in the last couple days, I've been feeling discomfort in my pelvic region --- soreness in the tops of my thighs and a general uncomfortable feeling behind/inside my pelvis. Sometimes it seems prompted by urination, sometimes it just happens for an hour or so on its own.I took a few UTI tests over the last couple days and they came back negative. I have no fever, no pain during urination, and urine is not cloudy. I've been staying hydrated.Your earliest appointment is in January, so I thought I'd drop a message to see if you had any general advice on if I should monitor or take any actions.Thanks,Matthew\n", + "2025-06-17 14:13:49,510 - Provider's response to this similar message: Hi Matthew,Please call the front desk to schedule a appointment with Kindal or any other MD here in the office for a sooner apt.Thank youBrenda / MA\n", + "2025-06-17 14:13:49,511 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:49,513 - Thread ID: 250153883\n", + "--------------------------------------------------------------------------------\n", + "idx: 263966\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,The last few weeks when I've urinated, I've felt like the flow rate is reduced. Not enough that it's a weak stream with interruptions, but enough that it \"feels like\" it's being held back. Then, in the last couple days, I've been feeling discomfort in my pelvic region --- soreness in the tops of my thighs and a general uncomfortable feeling behind/inside my pelvis. Sometimes it seems prompted by urination, sometimes it just happens for an hour or so on its own.I took a few UTI tests over the last couple days and they came back negative. I have no fever, no pain during urination, and urine is not cloudy. I've been staying hydrated.Your earliest appointment is in January, so I thought I'd drop a message to see if you had any general advice on if I should monitor or take any actions.Thanks,Matthew\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hi Matthew,Please call the front desk to schedule a appointment with Kindal or any other MD here in the office for a sooner apt.Thank youBrenda / MA\n", + "----------------------------------------\n", + "2025-06-17 14:13:49,514 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:49,514 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:49,514 - ✅ similarity: 0.7285\n", + "2025-06-17 14:13:49,515 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Kindal,When I was in the office last Thursday, I left a urine sample to be tested for a UTI. Are the results available? I don’t have pronounced symptoms, but still feel a little sensitive in the area. Thank you!Caprice Hardy\n", + "2025-06-17 14:13:49,515 - Provider's response to this similar message: Hello Ms. Hardy, Your results were normal.Best, Your Care Team \n", + "2025-06-17 14:13:49,516 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:49,518 - Thread ID: 250973471\n", + "--------------------------------------------------------------------------------\n", + "idx: 221936\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,I haven’t gone to LabCorp yet to give a urine sample. I want to double check first, why Shine replied below that my results were normal before re-doing. Thank you!Caprice \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Good morning Caprice.Sorry for the delay in responding. I spoke with Shine to get an update. I wasn't aware of the test that was run, especially given that we did not address that in the office to my recollection. Shine did run the test and states that it was completely negative; no evidence of urinary tract infection. If you continue to have symptoms we should repeat the test and/or do a pelvic exam to see what may be causing your symptoms.(I have added additional information to your progress note from the office visit to address the urine being tested.)Kindal\n", + "----------------------------------------\n", + "idx: 221935\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Ms. Hardy, Your results were normal.Best, Your Care Team \n", + "----------------------------------------\n", + "Provider Response by GALLAGHER, KINDAL:\n", + "Hi Caprice.I'm so sorry. My note doesn't mention urinary symptoms and I don't see that the test was ordered or performed. I am placing an order for a test to be performed at LabCorp on a walk-in basis if you can go and submit a urine sample. Sorry if I missed this.Kindal\n", + "----------------------------------------\n", + "idx: 221934\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal,When I was in the office last Thursday, I left a urine sample to be tested for a UTI. Are the results available? I don’t have pronounced symptoms, but still feel a little sensitive in the area. Thank you!Caprice Hardy\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello Ms. Hardy, Your results were normal.Best, Your Care Team \n", + "----------------------------------------\n", + "2025-06-17 14:13:49,518 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:49,518 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:49,519 - ✅ similarity: 0.7151\n", + "2025-06-17 14:13:49,519 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I’ve have not been able to go to the lab to leave a urine sample. I will be going to the lab to do so tomorrow. I’m writing this to you on Sunday evening just to inform you that I am pretty sure that I do have a UTI. This time I have pain in my lower intestine and more light headed than usual with a bit of confusion. \n", + "2025-06-17 14:13:49,519 - Provider's response to this similar message: Good morning Susan, I have forwarded your message to Dr. Kaushal for review. If needed, please contact our appointment line at 408-997-9155 option 1 to facilitate a follow up appointment once you have completed your labs. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.If you are in need of immediate medical advice, you can also contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest,Alondra Silva, MA, 10/28/2024, 8:53 AM\n", + "2025-06-17 14:13:49,520 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:49,522 - Thread ID: 249029610\n", + "--------------------------------------------------------------------------------\n", + "idx: 321993\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "The supplement is Citrical and I’ve been on it since 1997. Can you let me know where you have sent the prescription. Thanks\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Prescription was sent to Wellness Pharmacy in Los Gatos\n", + "----------------------------------------\n", + "idx: 321992\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Susan, I have forwarded your message to Dr. Kaushal for review. If needed, please contact our appointment line at 408-997-9155 option 1 to facilitate a follow up appointment once you have completed your labs. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.If you are in need of immediate medical advice, you can also contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest,Alondra Silva, MA, 10/28/2024, 8:53 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi SusanSorry to hear you are not feeling well againThe urinalysis result are positive for UTIThe urine culture results are still pendingI have sent over a prescription for you startAlso, can you tell me the name of the supplement you mentioned in your message,Take care,Dr.Kaushal\n", + "----------------------------------------\n", + "idx: 321991\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’ve have not been able to go to the lab to leave a urine sample. I will be going to the lab to do so tomorrow. I’m writing this to you on Sunday evening just to inform you that I am pretty sure that I do have a UTI. This time I have pain in my lower intestine and more light headed than usual with a bit of confusion. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Susan, I have forwarded your message to Dr. Kaushal for review. If needed, please contact our appointment line at 408-997-9155 option 1 to facilitate a follow up appointment once you have completed your labs. In the case that Dr. Kaushal has limited availability, you are able to schedule with one of our other providers who may have sooner appointments available and will be able to assist you with this matter.If you are in need of immediate medical advice, you can also contact Express Care:Stanford Medicine Imaging and Express Care798 South Winchester BoulevardSan Jose, CA 95128phone: 408-984-7226visit: 7 days/week, 9am-9pmBest,Alondra Silva, MA, 10/28/2024, 8:53 AM\n", + "----------------------------------------\n", + "2025-06-17 14:13:49,523 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:49,523 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:49,524 - ✅ similarity: 0.6929\n", + "2025-06-17 14:13:49,524 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Griffith,I had meniscectomy a couple weeks ago, and I've been taking Motrin for the inflammation of the right knee (post op), and now I am having an urinary track infection. The urine is smelly and I am having discomfort urinating. Can I please have an urine test order, so I can go this morning to Labcorp to do it.Thank you,Gloria Seamons \n", + "2025-06-17 14:13:49,525 - Provider's response to this similar message: Hi GloriaPlease call the front desk to schedule an appointment with any available provider. You need to be seen for any orders or prescription. Dr. Griffith is out of the office until 11/18/24. 408-997-9155 option 1.SincerelyFrances\n", + "2025-06-17 14:13:49,526 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:49,528 - Thread ID: 250637960\n", + "--------------------------------------------------------------------------------\n", + "idx: 239854\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Griffith,I had meniscectomy a couple weeks ago, and I've been taking Motrin for the inflammation of the right knee (post op), and now I am having an urinary track infection. The urine is smelly and I am having discomfort urinating. Can I please have an urine test order, so I can go this morning to Labcorp to do it.Thank you,Gloria Seamons \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hi GloriaPlease call the front desk to schedule an appointment with any available provider. You need to be seen for any orders or prescription. Dr. Griffith is out of the office until 11/18/24. 408-997-9155 option 1.SincerelyFrances\n", + "----------------------------------------\n", + "2025-06-17 14:13:49,529 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:49,750 - Original Message:\n", + "2025-06-17 14:13:49,752 - original_query_message: Rec'd a text to call Stanford Senior Care. Called and learned their 1st available appt is June 10, 2025. We have plane to tickets to leave on May 15th to spend the summer with our son in Germany. Thereafter we had plan on visiting friends in Costa Rica over the 2025-26 fall/winter/holidays (though we haven't purchased plane tkts yet).If we postponed a month to keep the June 10th appt, we would miss the family reunion Steph and I have already organized in Germany. Also, I don't know that it would be of any help to keep a June 10, 2025 appt and leave for a few months thereafter. My health is a priority, but so is family. In your opinion should I cancel ALL travel plans and stay here indefinitely for medical appts?Is there ANY chance there might be another geriatric physician in the area to whom you could refer me?\n", + "2025-06-17 14:13:50,997 - Query Parameters:\n", + "2025-06-17 14:13:51,000 - query_message: Sure! Here’s a new patient question with the requested features:---Hi there—I'm hoping to get some guidance. I recently tried scheduling a check-up with the geriatric clinic at Stanford, but the soonest slot they offered isn't until next summer. I’m really concerned about waiting that long because lately, I’ve been having a lot more trouble with my memory, plus some dizziness and fatigue that seem to be getting worse. It’s starting to affect my day-to-day, especially with travel plans we’ve been looking forward to for ages. My daughter bought us tickets to visit her in Sweden for June, and then we were planning on spending a few months in Mexico with friends over the holidays. I feel conflicted—my health is obviously really important, but I also don’t want to put my life on hold when appointments seem so hard to get. Should I try to reschedule our trips just in case something serious is going on, or is there maybe another specialist locally who might be able to see me sooner? I’d really appreciate any advice or suggestions.\n", + "2025-06-17 14:13:51,001 - receiver: TSAI, TIMOTHY\n", + "2025-06-17 14:13:51,003 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:13:51,004 - specialty: Primary Care\n", + "2025-06-17 14:13:51,588 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:51,589 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:51,589 - ✅ similarity: 0.5607\n", + "2025-06-17 14:13:51,590 - Sender: LEGASPI, RHONDA [ S0304722] -> the retrieved similar message : Rec'd a text to call Stanford Senior Care. Called and learned their 1st available appt is June 10, 2025. We have plane to tickets to leave on May 15th to spend the summer with our son in Germany. Thereafter we had plan on visiting friends in Costa Rica over the 2025-26 fall/winter/holidays (though we haven't purchased plane tkts yet).If we postponed a month to keep the June 10th appt, we would miss the family reunion Steph and I have already organized in Germany. Also, I don't know that it would be of any help to keep a June 10, 2025 appt and leave for a few months thereafter. My health is a priority, but so is family. In your opinion should I cancel ALL travel plans and stay here indefinitely for medical appts?Is there ANY chance there might be another geriatric physician in the area to whom you could refer me?\n", + "2025-06-17 14:13:51,591 - Provider's response to this similar message: Hi Bruce, Terribly sorry that the first appointment is so far away. I would recommend asking to be placed on their waitlist as an initial first step.As far as prioritizing this medical visit versus your family trip, I would prioritize your reunion. We can try to find an outside geriatrics group. I hope this helps. Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "2025-06-17 14:13:51,593 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:51,598 - Thread ID: 252129036\n", + "--------------------------------------------------------------------------------\n", + "idx: 162810\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Rec'd a text to call Stanford Senior Care. Called and learned their 1st available appt is June 10, 2025. We have plane to tickets to leave on May 15th to spend the summer with our son in Germany. Thereafter we had plan on visiting friends in Costa Rica over the 2025-26 fall/winter/holidays (though we haven't purchased plane tkts yet).If we postponed a month to keep the June 10th appt, we would miss the family reunion Steph and I have already organized in Germany. Also, I don't know that it would be of any help to keep a June 10, 2025 appt and leave for a few months thereafter. My health is a priority, but so is family. In your opinion should I cancel ALL travel plans and stay here indefinitely for medical appts?Is there ANY chance there might be another geriatric physician in the area to whom you could refer me?\n", + "----------------------------------------\n", + "Provider Response by TSAI, TIMOTHY:\n", + "Hi Bruce, Terribly sorry that the first appointment is so far away. I would recommend asking to be placed on their waitlist as an initial first step.As far as prioritizing this medical visit versus your family trip, I would prioritize your reunion. We can try to find an outside geriatrics group. I hope this helps. Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "2025-06-17 14:13:51,599 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:51,599 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:51,600 - ✅ similarity: 0.5571\n", + "2025-06-17 14:13:51,601 - Sender: LEGASPI, RHONDA [ S0304722] -> the retrieved similar message : Dear Dr. Tsai:I sent you a message yesterday via MYHEALTH re: considerable delay (no appt 'til June 12, 2025) to see Senior Care doctor or nurse practitioner. I received a response from you, BUT it was JUST A COPY of the msg I sent you.Would appreciate YOUR RESPONSE to my message. Thanks, Bruce\n", + "2025-06-17 14:13:51,601 - Provider's response to this similar message: Hi Bruce, I'm not sure what happened or if there was a tech issue. I have pasted my response below: Hi Bruce, Terribly sorry that the first appointment is so far away. I would recommend asking to be placed on their waitlist as an initial first step. As far as prioritizing this medical visit versus your family trip, I would prioritize your reunion. We can try to find an outside geriatrics group. I hope this helps. Best,Dr. Tsai Timothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "2025-06-17 14:13:51,602 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:51,605 - Thread ID: 252225512\n", + "--------------------------------------------------------------------------------\n", + "idx: 158079\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Tsai:I sent you a message yesterday via MYHEALTH re: considerable delay (no appt 'til June 12, 2025) to see Senior Care doctor or nurse practitioner. I received a response from you, BUT it was JUST A COPY of the msg I sent you.Would appreciate YOUR RESPONSE to my message. Thanks, Bruce\n", + "----------------------------------------\n", + "Provider Response by TSAI, TIMOTHY:\n", + "Hi Bruce, I'm not sure what happened or if there was a tech issue. I have pasted my response below: Hi Bruce, Terribly sorry that the first appointment is so far away. I would recommend asking to be placed on their waitlist as an initial first step. As far as prioritizing this medical visit versus your family trip, I would prioritize your reunion. We can try to find an outside geriatrics group. I hope this helps. Best,Dr. Tsai Timothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "2025-06-17 14:13:51,605 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:51,605 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:51,606 - ✅ similarity: 0.5448\n", + "2025-06-17 14:13:51,606 - Sender: BUSTOS, MARIA [ S0098585] -> the retrieved similar message : Hi Dr Tsai,I have seen Dr Clifford, neurologist. Since I am taking medication that suppress my immune system, she recommended me to have zoster, and pneumococcal vaccines. We don’t have record whether I have these vaccinations before and would like to take the vaccinations as a precaution. Please let me know your thoughts. Please also let me know where I can get the vaccinations. Should I come into your office for these vaccinations?I have a video appointment with you on Jan 27. I am taking a lot of medication for high blood pressure, prostate and neurology related. I would like to discuss with you my medication and I heard we can do a medicine reconciliation. Can you please also refer me to a urologist. Thanks and Hope you have a wonderful 2025. RegardsSammy\n", + "2025-06-17 14:13:51,606 - Provider's response to this similar message: Hi Mr. Lee,Given your history and the recommendation from Dr. Clifford, it is a good idea to receive the zoster and pneumococcal vaccines as a precaution. I would recommend you getting these at any local pharmacy. Once completed, please send me a note so our team can update your records and we will all have the most up to date info. I look forward to our video appointment on January 27. We can certainly discuss your medications and perform a medication reconciliation during that visit. I see we have a future appointment with urology already. I may be able to help prior to that visit. Could you tell me more about why we are needing to see the urologist?Wishing you a wonderful 2025 as well!Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "2025-06-17 14:13:51,607 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:51,608 - Thread ID: 254565507\n", + "--------------------------------------------------------------------------------\n", + "idx: 56274\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Tsai,I have seen Dr Clifford, neurologist. Since I am taking medication that suppress my immune system, she recommended me to have zoster, and pneumococcal vaccines. We don’t have record whether I have these vaccinations before and would like to take the vaccinations as a precaution. Please let me know your thoughts. Please also let me know where I can get the vaccinations. Should I come into your office for these vaccinations?I have a video appointment with you on Jan 27. I am taking a lot of medication for high blood pressure, prostate and neurology related. I would like to discuss with you my medication and I heard we can do a medicine reconciliation. Can you please also refer me to a urologist. Thanks and Hope you have a wonderful 2025. RegardsSammy\n", + "----------------------------------------\n", + "Provider Response by TSAI, TIMOTHY:\n", + "Hi Mr. Lee,Given your history and the recommendation from Dr. Clifford, it is a good idea to receive the zoster and pneumococcal vaccines as a precaution. I would recommend you getting these at any local pharmacy. Once completed, please send me a note so our team can update your records and we will all have the most up to date info. I look forward to our video appointment on January 27. We can certainly discuss your medications and perform a medication reconciliation during that visit. I see we have a future appointment with urology already. I may be able to help prior to that visit. Could you tell me more about why we are needing to see the urologist?Wishing you a wonderful 2025 as well!Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "2025-06-17 14:13:51,609 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:51,609 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:51,610 - ✅ similarity: 0.5126\n", + "2025-06-17 14:13:51,611 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : Dr. Tsai,I appreciate the help and counseling. Definitively seeing positive improvements in my lifestyle. As I mentioned during the visit today, my wife is in a similar situation as mine, looking to make positive improvements for a healthier lifestyle. She is currently being seen by another Stanford PCP but has trouble scheduling visits, and it’s been over a year since her last physical. She’s open to switching PCPs and I wanted to ask if you, or your clinic, are open to new patients. Any other recommendations would be most welcomed. Best regards,Jose Padovani\n", + "2025-06-17 14:13:51,611 - Provider's response to this similar message: Hi Mr. Padovani, I'm glad to hear you're seeing positive improvements in your lifestyle! Regarding your wife, our clinic is currently accepting new patients. She can schedule an appointment through the Stanford MyHealth app. If she has any trouble or needs further assistance, she can also call our clinic at 408-688-9720.Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "2025-06-17 14:13:51,612 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:51,613 - Thread ID: 249731972\n", + "--------------------------------------------------------------------------------\n", + "idx: 285151\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Tsai,I appreciate the help and counseling. Definitively seeing positive improvements in my lifestyle. As I mentioned during the visit today, my wife is in a similar situation as mine, looking to make positive improvements for a healthier lifestyle. She is currently being seen by another Stanford PCP but has trouble scheduling visits, and it’s been over a year since her last physical. She’s open to switching PCPs and I wanted to ask if you, or your clinic, are open to new patients. Any other recommendations would be most welcomed. Best regards,Jose Padovani\n", + "----------------------------------------\n", + "Provider Response by TSAI, TIMOTHY:\n", + "Hi Mr. Padovani, I'm glad to hear you're seeing positive improvements in your lifestyle! Regarding your wife, our clinic is currently accepting new patients. She can schedule an appointment through the Stanford MyHealth app. If she has any trouble or needs further assistance, she can also call our clinic at 408-688-9720.Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "2025-06-17 14:13:51,614 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:51,614 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:51,615 - ✅ similarity: 0.4824\n", + "2025-06-17 14:13:51,616 - Sender: NARULA, NEHA [ S0277694] -> the retrieved similar message : Dear Dr. Tsai,I hope this message finds you well. I wanted to share some important information regarding my health and family history: CBC, Differential, CRP, ESR. Liver Function Tests: My aunt has fatty liver disease. Kidney Function Tests: My sister has kidney issues. Cholesterol: My mom, aunt, and dad have high cholesterol. Rheumatoid Arthritis Panel: My sister and aunts have arthritis.Heart Health: My dad had heart surgery. Due to these familial risk factors, I believe these tests are necessary. Please let me know if additional information is needed or if further tests are recommended. Looking forward to seeing you on January 29.Sincerely,Aya\n", + "2025-06-17 14:13:51,616 - Provider's response to this similar message: Hi Aya,Thank you for sharing this important information about your family history. Given the familial risk factors you've mentioned, it is reasonable to consider some of these tests. Dr. Narula, who was covering for me last week had helped us place some blood work already. There is a cbc, cmp, thryoid, lipid panel, A1c, and stool test. These would be most appropriate for us for screening purposes. Other preventative measures to consideris a tetanus vaccine, pap smear, mammogram, covid and flu vaccines. We can discuss this further during your appointment on January 29 to determine the most appropriate tests and any additional evaluations that may be necessary.Looking forward to seeing you soon.Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "2025-06-17 14:13:51,617 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:51,619 - Thread ID: 255494373\n", + "--------------------------------------------------------------------------------\n", + "idx: 13047\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Tsai,I hope this message finds you well. I wanted to share some important information regarding my health and family history: CBC, Differential, CRP, ESR. Liver Function Tests: My aunt has fatty liver disease. Kidney Function Tests: My sister has kidney issues. Cholesterol: My mom, aunt, and dad have high cholesterol. Rheumatoid Arthritis Panel: My sister and aunts have arthritis.Heart Health: My dad had heart surgery. Due to these familial risk factors, I believe these tests are necessary. Please let me know if additional information is needed or if further tests are recommended. Looking forward to seeing you on January 29.Sincerely,Aya\n", + "----------------------------------------\n", + "Provider Response by TSAI, TIMOTHY:\n", + "Hi Aya,Thank you for sharing this important information about your family history. Given the familial risk factors you've mentioned, it is reasonable to consider some of these tests. Dr. Narula, who was covering for me last week had helped us place some blood work already. There is a cbc, cmp, thryoid, lipid panel, A1c, and stool test. These would be most appropriate for us for screening purposes. Other preventative measures to consideris a tetanus vaccine, pap smear, mammogram, covid and flu vaccines. We can discuss this further during your appointment on January 29 to determine the most appropriate tests and any additional evaluations that may be necessary.Looking forward to seeing you soon.Best,Dr. TsaiTimothy Tsai, DO, MMCiStanford Primary Care Santa ClaraP: 408.688.9720F: 408.688.9730\n", + "----------------------------------------\n", + "2025-06-17 14:13:51,620 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:51,916 - Original Message:\n", + "2025-06-17 14:13:51,916 - original_query_message: Hi Dr. Tsao:I had the pneumococcal vaccine last Friday when I visited the office, I noticed that it’s still red rash and hot to the touch. It was very sore for good two days and I had head aches. Still a little bit of head ache here and there. Anything I need to be concerned or should do? Thank you.\n", + "2025-06-17 14:13:53,499 - Query Parameters:\n", + "2025-06-17 14:13:53,514 - query_message: Hi Dr. Tsao,I wanted to check in about something I’m experiencing after getting my pneumonia shot at your clinic last week. The injection spot on my arm is still quite swollen, kind of warm, and looks a bit pinkish. The soreness in my arm has gotten a bit better, but I’m also noticing some mild fatigue and a lingering dull headache—not sure if that's related. Is it normal for these reactions to stick around for almost a week? Should I be doing anything special, or is there a point when you’d recommend having it looked at? Thanks so much for your help!\n", + "2025-06-17 14:13:53,516 - receiver: AFP MYHEALTH POOL\n", + "2025-06-17 14:13:53,518 - department: FAMILY MEDICINE AFP ALAMEDA\n", + "2025-06-17 14:13:53,520 - specialty: Family Medicine\n", + "2025-06-17 14:13:55,175 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:55,179 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:55,182 - ✅ similarity: 0.7468\n", + "2025-06-17 14:13:55,185 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Tsao:I had the pneumococcal vaccine last Friday when I visited the office, I noticed that it’s still red rash and hot to the touch. It was very sore for good two days and I had head aches. Still a little bit of head ache here and there. Anything I need to be concerned or should do? Thank you.\n", + "2025-06-17 14:13:55,186 - Provider's response to this similar message: From AFP Clinical Care Team, on behalf of Lilian Tsao, MD: Hi Lily,I hope all is well. If your rash is warm and painful to touch it may be a good idea to see us. If it has been getting better and there is no pain in the redness is going away then it is okay to wait and watch. Call us if it is not getting better.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:13:55,188 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:55,196 - Thread ID: 251146739\n", + "--------------------------------------------------------------------------------\n", + "idx: 212970\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sujata, the red area is warm to the touch but not painful. I’ll watch it for another day. If it improves I won’t worry about it. If not, I’ll definitely visit the office. Thank you.\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 212969\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsao:I had the pneumococcal vaccine last Friday when I visited the office, I noticed that it’s still red rash and hot to the touch. It was very sore for good two days and I had head aches. Still a little bit of head ache here and there. Anything I need to be concerned or should do? Thank you.\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "From AFP Clinical Care Team, on behalf of Lilian Tsao, MD: Hi Lily,I hope all is well. If your rash is warm and painful to touch it may be a good idea to see us. If it has been getting better and there is no pain in the redness is going away then it is okay to wait and watch. Call us if it is not getting better.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:13:55,197 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:55,198 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:55,198 - ✅ similarity: 0.6924\n", + "2025-06-17 14:13:55,199 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr.Tsao, on my visit September 26 I had a flu shot naturally it was uncomfortable but that is to be expected sometime. However, after all of that time I continue to have pain in my left shoulder with numbness at times and sometimes the pain wakes me up at night and radiates to my hand, I didn’t mention it before. I thought the pain would go away on its own but it has not and at times I have had to take Tylenol for the pain. Is there something that you should know about the situation or do I just wait it out. It has been quite a while now, so I just wanted it to be a matter of my record, but I reported this information to you thank you\n", + "2025-06-17 14:13:55,200 - Provider's response to this similar message: Hi Betty, There can be injection site reactions, but they should resolve within 1-2 weeks. It's possible the injection affected your nerve, causing your current symptoms, which could longer to improve 3-4 months. If your symptoms are worsening, please schedule a sooner appointment, otherwise we can try to address this on 11/26 (20 minute appointment). Lilian Li-Ning Tsao, MD, 11/11/2024, 10:43 AMI'm not in the office on Mondays, but check my inbox periodically. \n", + "2025-06-17 14:13:55,200 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:55,204 - Thread ID: 250201685\n", + "--------------------------------------------------------------------------------\n", + "idx: 261447\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "From AFP Clinical Care Team, on behalf of Lilian Li-Ning Tsao, MDHi Betty,We would need to see you for an appointment before ordering a scan, because that's how we would decide what kind of scan is the most appropriate to order. I'll forward your chart to our schedulers to see if we can get you in for an appointment sooner than 11/26/24. Alternatively, you could schedule your appointment by using the MyHealth app (go to \"Appointments\" -> \"Make Appointment\"), or by giving us a call at 510-521-2300, option 1.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "Provider Response by AFP ADMIN POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 261446\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Tsao my appointment is for November 26. My arm and shoulder pain continues to awaken me at night. Can you put in an order for a scan in the meantime to speed things up? I have now missed two of my exercise classes because of pain.\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "From AFP Clinical Care Team, on behalf of Lilian Li-Ning Tsao, MDHi Betty,We would need to see you for an appointment before ordering a scan, because that's how we would decide what kind of scan is the most appropriate to order. I'll forward your chart to our schedulers to see if we can get you in for an appointment sooner than 11/26/24. Alternatively, you could schedule your appointment by using the MyHealth app (go to \"Appointments\" -> \"Make Appointment\"), or by giving us a call at 510-521-2300, option 1.Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "idx: 261445\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This is Ashli Butler, FNP, from Lilian Li-Ning Tsao, MD's office, responding on their behalf. Hi Betty,I'm sorry to hear that you've been dealing with this! Injection site reactions like arm soreness are not uncommon, but they usually resolve on their own fairly quickly. Since your symptoms have been going on for so long, we should evaluate your arm and see if there is something else going on. I see that you have an appointment with Dr. Tsao coming up, so I'll forward this message to her to confirm that this is something we can address at that visit. If we need an additional visit to address this issue, someone from our office will reach out to let you know. Otherwise, we'll see you on the 26th!Take care, Ashli Butler, FNPAlameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "Provider Response by TSAO, LILIAN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 261444\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr.Tsao, on my visit September 26 I had a flu shot naturally it was uncomfortable but that is to be expected sometime. However, after all of that time I continue to have pain in my left shoulder with numbness at times and sometimes the pain wakes me up at night and radiates to my hand, I didn’t mention it before. I thought the pain would go away on its own but it has not and at times I have had to take Tylenol for the pain. Is there something that you should know about the situation or do I just wait it out. It has been quite a while now, so I just wanted it to be a matter of my record, but I reported this information to you thank you\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Betty, There can be injection site reactions, but they should resolve within 1-2 weeks. It's possible the injection affected your nerve, causing your current symptoms, which could longer to improve 3-4 months. If your symptoms are worsening, please schedule a sooner appointment, otherwise we can try to address this on 11/26 (20 minute appointment). Lilian Li-Ning Tsao, MD, 11/11/2024, 10:43 AMI'm not in the office on Mondays, but check my inbox periodically. \n", + "----------------------------------------\n", + "2025-06-17 14:13:55,204 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:55,205 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:55,206 - ✅ similarity: 0.6093\n", + "2025-06-17 14:13:55,206 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi dr tsao! So I was diagnosed with pneumonia from the X-ray. They gave me a shot and doxycycline. My chest is still a bit tight but I don’t have a fever anymore. I had to take medical leave from work last week + today because of the number of days. Can I bring in the paperwork for you to sign or do I need an appt?Can we repeat the xray once I’m done with the antibiotics? I guess it’ll be another week?When can I go back to the gym? I’m still pretty tired\n", + "2025-06-17 14:13:55,207 - Provider's response to this similar message: From AFP Clinical Care Team, on behalf of Lilian Tsao, MD: Hi Matt,I am glad you are getting better. It looks like you saw our Express Care for this. It would be best to request for them to fill out those forms. We generally don't order an x-ray post antibiotics, however if you are feeling worse in a week you can reach out to us!Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:13:55,208 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:55,210 - Thread ID: 251007116\n", + "--------------------------------------------------------------------------------\n", + "idx: 220068\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I did see Dr tsao last week (before the xray) and she had mentioned I could talk to her to get any paperwork taken care of. She gave me a letter but it doesn’t have all the dates. Can she fill out the forms or do I really need to go talk to express care?\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "HI Matt, Sorry to hear that you had to 3 other times after our visit, but hopefully your symptoms are improving. If your symptoms aren't improving, then an x-ray should be repeated. If you are feeling better, we usually do not repeat the x-ray given that it will be additional unnecessary radiation exposure. I'm not sure what the forms entail, but you can drop them off at the office and I can complete it as long as I have all the information that's needed. If not, then you will need an appointment. I would not start exercising until you are fully recovered. Lilian Li-Ning Tsao, MD, 11/21/2024, 1:21 PMI will be out of the office November 27 - December 4. \n", + "----------------------------------------\n", + "idx: 220067\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi dr tsao! So I was diagnosed with pneumonia from the X-ray. They gave me a shot and doxycycline. My chest is still a bit tight but I don’t have a fever anymore. I had to take medical leave from work last week + today because of the number of days. Can I bring in the paperwork for you to sign or do I need an appt?Can we repeat the xray once I’m done with the antibiotics? I guess it’ll be another week?When can I go back to the gym? I’m still pretty tired\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "From AFP Clinical Care Team, on behalf of Lilian Tsao, MD: Hi Matt,I am glad you are getting better. It looks like you saw our Express Care for this. It would be best to request for them to fill out those forms. We generally don't order an x-ray post antibiotics, however if you are feeling worse in a week you can reach out to us!Take care, Alameda Family Physicians Clinical Care TeamPlease note that MyHealth messages are meant for non-urgent concerns that can be answered by a simple email response. Messages will be forwarded by the office staff when the office is open, to the appropriate provider.Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:13:55,211 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:55,222 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:55,240 - ✅ similarity: 0.5979\n", + "2025-06-17 14:13:55,245 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Doctor,Hope all is well.I wish to get the flu shot as well when I visit you next week.Thank youBest regards,Han\n", + "2025-06-17 14:13:55,250 - Provider's response to this similar message: Hello,Please inform your provider at the time of your visit to receive your flu shot. Kind Regards\n", + "2025-06-17 14:13:55,251 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:55,296 - Thread ID: 249423353\n", + "--------------------------------------------------------------------------------\n", + "idx: 301804\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor,Hope all is well.I wish to get the flu shot as well when I visit you next week.Thank youBest regards,Han\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hello,Please inform your provider at the time of your visit to receive your flu shot. Kind Regards\n", + "----------------------------------------\n", + "2025-06-17 14:13:55,298 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:55,300 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:55,302 - ✅ similarity: 0.5923\n", + "2025-06-17 14:13:55,374 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello,I see results for a clear x-ray in my health! I'm still congested and dealing with the deep, barky, productive cough, but I know that's going to take some time to resolve.At this point, is the plan to keep going with the inhalers and oral steroids? The cough syrup didn't do a whole lot last night, but that may have been because I had to take the steroids so late. How often is it worth using it? Right now sleeping isn't easy without being very propped up. Still no fever though. What would indicate that we need to try something else?Thanks,Emily\n", + "2025-06-17 14:13:55,377 - Provider's response to this similar message: Hi Emily,I'm glad to hear that your x-ray results are clear. It's good that you don't have a fever, but I understand that the congestion and cough can be quite bothersome.Yes, please continue using the inhalers and oral steroids as prescribed. The cough syrup can be used as needed, but if it isn't providing much relief, you might want to try taking it earlier in the evening to see if that helps with your sleep.If your symptoms persist or worsen, such as if you develop a fever, experience shortness of breath, or if the cough becomes more severe, please let us know. These could be signs that we need to reassess your treatment plan.If you have any further concerns or if your symptoms do not improve, please schedule an appointment through the Stanford MyHealth app.Take care,Sujata Behera, PA-C, MA, MPH\n", + "2025-06-17 14:13:55,392 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:55,421 - Thread ID: 252220936\n", + "--------------------------------------------------------------------------------\n", + "idx: 158306\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I see results for a clear x-ray in my health! I'm still congested and dealing with the deep, barky, productive cough, but I know that's going to take some time to resolve.At this point, is the plan to keep going with the inhalers and oral steroids? The cough syrup didn't do a whole lot last night, but that may have been because I had to take the steroids so late. How often is it worth using it? Right now sleeping isn't easy without being very propped up. Still no fever though. What would indicate that we need to try something else?Thanks,Emily\n", + "----------------------------------------\n", + "Provider Response by AFP MYHEALTH POOL:\n", + "Hi Emily,I'm glad to hear that your x-ray results are clear. It's good that you don't have a fever, but I understand that the congestion and cough can be quite bothersome.Yes, please continue using the inhalers and oral steroids as prescribed. The cough syrup can be used as needed, but if it isn't providing much relief, you might want to try taking it earlier in the evening to see if that helps with your sleep.If your symptoms persist or worsen, such as if you develop a fever, experience shortness of breath, or if the cough becomes more severe, please let us know. These could be signs that we need to reassess your treatment plan.If you have any further concerns or if your symptoms do not improve, please schedule an appointment through the Stanford MyHealth app.Take care,Sujata Behera, PA-C, MA, MPH\n", + "----------------------------------------\n", + "2025-06-17 14:13:55,446 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:55,941 - Original Message:\n", + "2025-06-17 14:13:55,943 - original_query_message: I received a text message from Lilly Direct about the prescription placed yesterday and this is what it said:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- The prescribed medication or form is invalid\n", + "2025-06-17 14:13:57,458 - Query Parameters:\n", + "2025-06-17 14:13:57,460 - query_message: Hey, I just got a notification from Lilly Direct saying that there was a problem with the prescription my doctor sent over—apparently the medication or the way it was written isn't right. I'm a bit worried because I was hoping to start my new treatment soon, and my symptoms have been getting worse lately (lots of fatigue and trouble managing my blood sugar). Has anyone else dealt with their script being rejected for similar reasons? Should I call my doctor's office directly or wait for them to fix it? I’m just anxious about the delay since my current meds aren’t working well. Any advice?\n", + "2025-06-17 14:13:57,461 - receiver: FMSLG CARE TEAM POOL\n", + "2025-06-17 14:13:57,462 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:13:57,464 - specialty: Family Medicine\n", + "2025-06-17 14:13:58,217 - \n", + "Number of results: 5\n", + "2025-06-17 14:13:58,219 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:58,220 - ✅ similarity: 0.8575\n", + "2025-06-17 14:13:58,222 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I received a text message from Lilly Direct about the prescription placed yesterday and this is what it said:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- The prescribed medication or form is invalid\n", + "2025-06-17 14:13:58,224 - Provider's response to this similar message: Hello Morgan S Stacey,My name is Stephanie , MA and I work closely with your primary care provider as a medical assistant. Thank you. We did receive the form and have Dr.Khuddus review it. Thank you for your time,Stephanie Hernandez , MA Please note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "2025-06-17 14:13:58,226 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:58,233 - Thread ID: 255668877\n", + "--------------------------------------------------------------------------------\n", + "idx: 5661\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I received a text message from Lilly Direct about the prescription placed yesterday and this is what it said:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- The prescribed medication or form is invalid\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hello Morgan S Stacey,My name is Stephanie , MA and I work closely with your primary care provider as a medical assistant. Thank you. We did receive the form and have Dr.Khuddus review it. Thank you for your time,Stephanie Hernandez , MA Please note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "----------------------------------------\n", + "2025-06-17 14:13:58,234 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:58,235 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:58,236 - ✅ similarity: 0.7892\n", + "2025-06-17 14:13:58,237 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I received the following message from LillyDirect:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- ICD-10/diagnosis code is missing or invalid\n", + "2025-06-17 14:13:58,238 - Provider's response to this similar message: Karen,Zepbound was sent to your pharmacy for the 7.5mg dose- sent to CVS on Blossom Hill.Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "2025-06-17 14:13:58,239 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:58,241 - Thread ID: 255013177\n", + "--------------------------------------------------------------------------------\n", + "idx: 33687\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + " I received the following message from LillyDirect:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- ICD-10/diagnosis code is missing or invalid\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Karen,Zepbound was sent to your pharmacy for the 7.5mg dose- sent to CVS on Blossom Hill.Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "idx: 33686\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Morning Karen,The prescription was sent on 1/3 for 5mg. LillyDirect does not have any doses available above 5mg. We have not received any notices from LillyDirect regarding this prescription having an error. Did they specify what the error was with you?Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "Provider Response by TORRES, NAYELI:\n", + "No response\n", + "----------------------------------------\n", + "idx: 33685\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Shah,I sent a message earlier about the Zepbound 7.5 mg from LillyDirect but they said there was an error with the prescription.Can you please look into this? I’ve had so many delays in getting this medicine. ThanksKaren\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Good Morning Karen,The prescription was sent on 1/3 for 5mg. LillyDirect does not have any doses available above 5mg. We have not received any notices from LillyDirect regarding this prescription having an error. Did they specify what the error was with you?Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "2025-06-17 14:13:58,242 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:58,243 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:58,243 - ✅ similarity: 0.7399\n", + "2025-06-17 14:13:58,244 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr, I received message from LillydirectThe prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician and will contact you as soon as we receive an updated prescription.Please let me know what I have to do. \n", + "2025-06-17 14:13:58,245 - Provider's response to this similar message: Dear Bhavana, I just re sent medication as was requested, let us know if it is still a problem. Feel free to reach out to the clinic if you have any questions or concerns.Kindly, Alla Rozova, PA-C assisting Dr.Shah, Rina Biren \n", + "2025-06-17 14:13:58,245 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:58,247 - Thread ID: 252707853\n", + "--------------------------------------------------------------------------------\n", + "idx: 136258\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr, I received message from LillydirectThe prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician and will contact you as soon as we receive an updated prescription.Please let me know what I have to do. \n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Dear Bhavana, I just re sent medication as was requested, let us know if it is still a problem. Feel free to reach out to the clinic if you have any questions or concerns.Kindly, Alla Rozova, PA-C assisting Dr.Shah, Rina Biren \n", + "----------------------------------------\n", + "2025-06-17 14:13:58,248 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:58,248 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:58,249 - ✅ similarity: 0.6427\n", + "2025-06-17 14:13:58,250 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Shah,Can you please resend the zepbound prescription to Lilly Direct? They dont see it on their end. Thanks\n", + "2025-06-17 14:13:58,250 - Provider's response to this similar message: Hi Anita,According to our records, the prescription was sent to LILLYDIRECT CASH PAY FOR ZEPBOUND VIAL - COLUMBUS, OH - 4343 EQUITY DR On October 25, 2024. Here is the confirmation as well: E-Prescribing Status: Receipt confirmed by pharmacy (10/25/2024 3:40 PM PDT). They still don't see it on their end? Let us know and maybe we can call. Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "2025-06-17 14:13:58,251 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:58,253 - Thread ID: 249766781\n", + "--------------------------------------------------------------------------------\n", + "idx: 283465\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It would be great if you can call. I was chatting with an agent and told her that prescription was already sent and was advised that it had to be resent. Thank you!!\n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hi Anita,I have resent the medication.\n", + "----------------------------------------\n", + "idx: 283464\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Shah,Can you please resend the zepbound prescription to Lilly Direct? They dont see it on their end. Thanks\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Anita,According to our records, the prescription was sent to LILLYDIRECT CASH PAY FOR ZEPBOUND VIAL - COLUMBUS, OH - 4343 EQUITY DR On October 25, 2024. Here is the confirmation as well: E-Prescribing Status: Receipt confirmed by pharmacy (10/25/2024 3:40 PM PDT). They still don't see it on their end? Let us know and maybe we can call. Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "----------------------------------------\n", + "2025-06-17 14:13:58,254 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:58,256 - ################################################################################START################################################################################\n", + "2025-06-17 14:13:58,257 - ✅ similarity: 0.6181\n", + "2025-06-17 14:13:58,258 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Shah,I sent a message earlier about the Zepbound 7.5 mg from LillyDirect but they said there was an error with the prescription.Can you please look into this? I’ve had so many delays in getting this medicine. ThanksKaren\n", + "2025-06-17 14:13:58,259 - Provider's response to this similar message: Good Morning Karen,The prescription was sent on 1/3 for 5mg. LillyDirect does not have any doses available above 5mg. We have not received any notices from LillyDirect regarding this prescription having an error. Did they specify what the error was with you?Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "2025-06-17 14:13:58,259 - -----------printing the whole thread-------------\n", + "2025-06-17 14:13:58,262 - Thread ID: 255013177\n", + "--------------------------------------------------------------------------------\n", + "idx: 33687\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + " I received the following message from LillyDirect:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- ICD-10/diagnosis code is missing or invalid\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Karen,Zepbound was sent to your pharmacy for the 7.5mg dose- sent to CVS on Blossom Hill.Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "idx: 33686\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Morning Karen,The prescription was sent on 1/3 for 5mg. LillyDirect does not have any doses available above 5mg. We have not received any notices from LillyDirect regarding this prescription having an error. Did they specify what the error was with you?Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "Provider Response by TORRES, NAYELI:\n", + "No response\n", + "----------------------------------------\n", + "idx: 33685\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Shah,I sent a message earlier about the Zepbound 7.5 mg from LillyDirect but they said there was an error with the prescription.Can you please look into this? I’ve had so many delays in getting this medicine. ThanksKaren\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Good Morning Karen,The prescription was sent on 1/3 for 5mg. LillyDirect does not have any doses available above 5mg. We have not received any notices from LillyDirect regarding this prescription having an error. Did they specify what the error was with you?Thank you for your time,Nicole Delgado, Medical AssistantPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day.Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED \n", + "----------------------------------------\n", + "2025-06-17 14:13:58,263 - ################################################################################END################################################################################\n", + "2025-06-17 14:13:58,676 - Original Message:\n", + "2025-06-17 14:13:58,677 - original_query_message: And it’s the Wellbutrin 150 tablets that they say was canceled by a doctor and I don’t know why\n", + "2025-06-17 14:13:59,847 - Query Parameters:\n", + "2025-06-17 14:13:59,848 - query_message: Hey, I just noticed my prescription for Wellbutrin SR 150mg didn’t get refilled this month, and my pharmacy said it looks like the doctor stopped it, but I’m not sure what happened. I’ve been relying on it for my depression and some anxiety, and now I’m starting to feel those symptoms creeping back in. I haven’t had any issues with side effects or anything lately that I told my doctor about. Has anyone else had their meds changed or discontinued without a clear explanation? Should I reach out to my doctor or could there be another reason this happened? I’m a little worried about going without it.\n", + "2025-06-17 14:13:59,848 - receiver: ZEIN, MIRA\n", + "2025-06-17 14:13:59,849 - department: LIFECONNECTIONS HEALTH CENTER\n", + "2025-06-17 14:13:59,850 - specialty: Primary Care\n", + "2025-06-17 14:14:00,313 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:00,317 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:00,318 - ✅ similarity: 0.6303\n", + "2025-06-17 14:14:00,320 - Sender: AHMADI ARANGEH, MAHDANEH [ S0191545] -> the retrieved similar message : And it’s the Wellbutrin 150 tablets that they say was canceled by a doctor and I don’t know why\n", + "2025-06-17 14:14:00,321 - Provider's response to this similar message: Hi Bryan, it accidentally routed to a diffferent Walgreen so I have been trying to fix it. Should be adjusted now?\n", + "2025-06-17 14:14:00,323 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:00,333 - Thread ID: 255279633\n", + "--------------------------------------------------------------------------------\n", + "idx: 21804\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok thanks so much \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Let me know if you're continuing to have any issues getting it\n", + "----------------------------------------\n", + "idx: 21803\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "And it’s the Wellbutrin 150 tablets that they say was canceled by a doctor and I don’t know why\n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Bryan, it accidentally routed to a diffferent Walgreen so I have been trying to fix it. Should be adjusted now?\n", + "----------------------------------------\n", + "2025-06-17 14:14:00,334 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:00,335 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:00,335 - ✅ similarity: 0.4029\n", + "2025-06-17 14:14:00,336 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr.Zein CVS got my prescription but it looks like they are trying to get a hold of you with questions about the prescription. Would your office be able to reach out to them today? Let me know if you need something on my end. Thank you! \n", + "2025-06-17 14:14:00,336 - Provider's response to this similar message: Thanks for letting me know! Let me give them a call \n", + "2025-06-17 14:14:00,337 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:00,340 - Thread ID: 254680577\n", + "--------------------------------------------------------------------------------\n", + "idx: 50345\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I Dr.Zein just checking not sure if you have had the chance to call CVS yet. Let me know if you need me to do anything on my end. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 50344\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Zein CVS got my prescription but it looks like they are trying to get a hold of you with questions about the prescription. Would your office be able to reach out to them today? Let me know if you need something on my end. Thank you! \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Thanks for letting me know! Let me give them a call \n", + "----------------------------------------\n", + "idx: 50343\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Let’s actually do the 2 then. Then we can check in and see how I’m doing in a week or so? \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Yes sounds great! Let me send in the new prescription with 2 tablets\n", + "----------------------------------------\n", + "idx: 50342\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m taking the full tablet. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "We can either do 2 tabs or I can prescribe you the 5mg tablet - they both work =)\n", + "----------------------------------------\n", + "idx: 50341\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Zein I am doing good. I’m stable so the medication is working I was just wondering if it’s possible to increase the medication? By maybe half? What do you think? I feel it working but I still feel a little off. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Armando, are you doing the half tablet or the full tablet currently?\n", + "----------------------------------------\n", + "2025-06-17 14:14:00,341 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:00,341 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:00,342 - ✅ similarity: 0.3768\n", + "2025-06-17 14:14:00,343 - Sender: KUNG, BENJAMIN [ S0354106] -> the retrieved similar message : Hi Dr. Zein,I made a psychiatrist appointment with an in-person psychiatrist for their next appt, Dec 10 2024. I however have been feeling depressed lately and I had an episode last week where I was feeling very triggered and activated and was crying for 3 days, banging my hands on the wall due to anger, and I felt the desire to cut myself. I had an incident happen that made me feel this way. I am stable now, but I still feel depressed.Is there anything I can do medication wise to help with my depressive symptoms?Also, It is greatly affecting me at work. Do you think my mental health diagnoses would qualify for a medical leave? I want to get my ducks in a row in case I need to take leave. I just feel so down that it’s hard to work and focus and I think some time off would be helpful.Thank you,Teanna\n", + "2025-06-17 14:14:00,344 - Provider's response to this similar message: Hi Teanna,I'm so sorry to hear you've been feeling more depressed. I'm glad you have an in person appointment but that is a few weeks away. In terms of medication, there are a couple options1) increase the brexpiprazole to see if that will help with both depression as well as may help if another trigger happens 2) add another medication, wellbutrin, that can help with concentration/focus3) no changes and focus on therapyWhat is the status of connecting with a therapist for you? It sounds like you would really benefit from dialectical behavioral therapy to help manage acutely as well as mood more chronically when triggers ariseBestMira Zein, MD, MPH\n", + "2025-06-17 14:14:00,345 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:00,348 - Thread ID: 250465607\n", + "--------------------------------------------------------------------------------\n", + "idx: 247933\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message is being sent by Thomas Quach on behalf of Teanna M QuachHello Henry,Attached is the United Health Insurance ID card that you requested. Is this what you are looking for? If not, please let me know and I can provide other supplemental documents regarding my coverage for Teanna Quach as a depenent under Cisco's Health Insurance.Best Regard,Thomas Q.\n", + "----------------------------------------\n", + "Provider Response by NGUYEN, HENRY:\n", + "Hi Thomas and Teanna,We're only able to bill your secondary insurance if your primary insurance denied the charges. In that case, we would need to receive an EOB from your primary insurance to move forward with billing your secondary.Since we have not received the denial, I think you can try reaching out to your secondary insurance directly if they're able to cover the remaining portion of the bill.Hope this helps.Thank you,Henry Nguyen\n", + "----------------------------------------\n", + "idx: 247932\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zein and team,Can you try billing my appointment from 11/01 to my secondary insurance where Thomas Quach is the holder?My primary insurance did not fully cover the appointment so I want to try the secondary insurance.Thank you,Teanna\n", + "----------------------------------------\n", + "Provider Response by LCHC BILLING POOL:\n", + "Hi Teanna,Thank you for reaching outIn order for us to bill your secondary insurance, we will need to receive an Enrollment of Benefits from your primary insurance. Could you please obtain that first?Thank you,Henry Nguyen\n", + "----------------------------------------\n", + "idx: 247931\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zein,Can your team schedule me for a quick appointment in a few weeks? I can take the medication and let you know how it goes?Thank you\n", + "----------------------------------------\n", + "Provider Response by LCHC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247930\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zein,I have not yet made an appt. I am trying to find a PCP in person in San Diego. I will do that when I get back from a weekend trip.How does starting Wellbutrin work? Do I need a formal appt or can you write the prescription? Thank you!\n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Teanna, I sent over an initial prescription.Would you want to check in via appointment or do you want to wait for now?\n", + "----------------------------------------\n", + "idx: 247929\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sorry for the follow up email. I think increasing the brexiprazole could help too. Either option 1 or 2 is fine with me, I’m just concerned about my weight if I increase brexiprazole. I am trying to see if my insurance will cover zepbound (tirzeparide) through an online program called Ro. I was 166lbs when I weighed myself the other day. Thank you,Teanna\n", + "----------------------------------------\n", + "Provider Response by LCHC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247928\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zein,Can we add Wellbutrin? Is it something that can be temporary or is it more of a permanent change to medication? I think management of my anxiety will help.I need to make an appt for DBT therapy soon. I will do that, I just have a couple’s therapist I go to with my partner but something more dbt based would beneficial. I’ve been putting it off but I’ll prioritize it.Thank you,Teanna\n", + "----------------------------------------\n", + "Provider Response by LCHC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247927\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Zein,I made a psychiatrist appointment with an in-person psychiatrist for their next appt, Dec 10 2024. I however have been feeling depressed lately and I had an episode last week where I was feeling very triggered and activated and was crying for 3 days, banging my hands on the wall due to anger, and I felt the desire to cut myself. I had an incident happen that made me feel this way. I am stable now, but I still feel depressed.Is there anything I can do medication wise to help with my depressive symptoms?Also, It is greatly affecting me at work. Do you think my mental health diagnoses would qualify for a medical leave? I want to get my ducks in a row in case I need to take leave. I just feel so down that it’s hard to work and focus and I think some time off would be helpful.Thank you,Teanna\n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Teanna,I'm so sorry to hear you've been feeling more depressed. I'm glad you have an in person appointment but that is a few weeks away. In terms of medication, there are a couple options1) increase the brexpiprazole to see if that will help with both depression as well as may help if another trigger happens 2) add another medication, wellbutrin, that can help with concentration/focus3) no changes and focus on therapyWhat is the status of connecting with a therapist for you? It sounds like you would really benefit from dialectical behavioral therapy to help manage acutely as well as mood more chronically when triggers ariseBestMira Zein, MD, MPH\n", + "----------------------------------------\n", + "2025-06-17 14:14:00,350 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:00,350 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:00,351 - ✅ similarity: 0.3746\n", + "2025-06-17 14:14:00,352 - Sender: VALENCIA, ARNOLD FOE [ S0315604] -> the retrieved similar message : Hi Dr.Zein, just checking if you have sent the prescription to the pharmacy yet. I haven’t received a call from them and I wanted to check with you first before I called them. Thank you again for your help! \n", + "2025-06-17 14:14:00,352 - Provider's response to this similar message: Hi Armando! I did send the prescription - please do check with them and let me know if there are any problems!BestMira Zein, MD, MPH\n", + "2025-06-17 14:14:00,353 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:00,358 - Thread ID: 253794138\n", + "--------------------------------------------------------------------------------\n", + "idx: 91119\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Zein, just checking if you have sent the prescription to the pharmacy yet. I haven’t received a call from them and I wanted to check with you first before I called them. Thank you again for your help! \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Armando! I did send the prescription - please do check with them and let me know if there are any problems!BestMira Zein, MD, MPH\n", + "----------------------------------------\n", + "2025-06-17 14:14:00,358 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:00,359 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:00,359 - ✅ similarity: 0.3254\n", + "2025-06-17 14:14:00,360 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr.Zein I am doing good. I’m stable so the medication is working I was just wondering if it’s possible to increase the medication? By maybe half? What do you think? I feel it working but I still feel a little off. \n", + "2025-06-17 14:14:00,360 - Provider's response to this similar message: Hi Armando, are you doing the half tablet or the full tablet currently?\n", + "2025-06-17 14:14:00,360 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:00,362 - Thread ID: 254680577\n", + "--------------------------------------------------------------------------------\n", + "idx: 50345\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I Dr.Zein just checking not sure if you have had the chance to call CVS yet. Let me know if you need me to do anything on my end. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 50344\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Zein CVS got my prescription but it looks like they are trying to get a hold of you with questions about the prescription. Would your office be able to reach out to them today? Let me know if you need something on my end. Thank you! \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Thanks for letting me know! Let me give them a call \n", + "----------------------------------------\n", + "idx: 50343\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Let’s actually do the 2 then. Then we can check in and see how I’m doing in a week or so? \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Yes sounds great! Let me send in the new prescription with 2 tablets\n", + "----------------------------------------\n", + "idx: 50342\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m taking the full tablet. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "We can either do 2 tabs or I can prescribe you the 5mg tablet - they both work =)\n", + "----------------------------------------\n", + "idx: 50341\n", + "Subject: RE: Checking in\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Zein I am doing good. I’m stable so the medication is working I was just wondering if it’s possible to increase the medication? By maybe half? What do you think? I feel it working but I still feel a little off. \n", + "----------------------------------------\n", + "Provider Response by ZEIN, MIRA:\n", + "Hi Armando, are you doing the half tablet or the full tablet currently?\n", + "----------------------------------------\n", + "2025-06-17 14:14:00,363 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:00,672 - Original Message:\n", + "2025-06-17 14:14:00,672 - original_query_message: the earliest I can get a video appointment is Dec 23rd? I signed up, but almost 8 weeks. please put me on the waitlist for an earlier appointment. thank you. -Linda\n", + "2025-06-17 14:14:03,034 - Query Parameters:\n", + "2025-06-17 14:14:03,037 - query_message: Hi there,I was hoping to connect with a provider sooner because I’ve been dealing with ongoing symptoms—mostly fatigue and joint pain that just isn’t improving, and now I’ve noticed some swelling in my hands. The earliest video appointment I could find was late December, but I’m a bit worried about waiting that long, especially since the discomfort is starting to impact my day-to-day activities. If any earlier slots become available, could you please let me know or add me to a cancellation list? Thanks so much for your help.Best, Steve\n", + "2025-06-17 14:14:03,038 - receiver: UMG LGCPC MYHEALTH POOL\n", + "2025-06-17 14:14:03,040 - department: COLLABORATIVE PRIMARY CARE LOS GATOS\n", + "2025-06-17 14:14:03,043 - specialty: Internal Medicine\n", + "2025-06-17 14:14:03,799 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:03,802 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:03,803 - ✅ similarity: 0.6662\n", + "2025-06-17 14:14:03,805 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : the earliest I can get a video appointment is Dec 23rd? I signed up, but almost 8 weeks. please put me on the waitlist for an earlier appointment. thank you. -Linda\n", + "2025-06-17 14:14:03,807 - Provider's response to this similar message: Hi Linda, I have a cancellation for this Wednesday 11/13 at 7:40am video visit if you are available?Best,Nicole Nguyen, MACare Navigator For Collaborative Primary Care(408)426-5540Please note: It may take up to 72 hours to respond back to your message. If you have any urgent concerns, please call our office. Messages sent after 5PM will not be addressed until the following workday.\n", + "2025-06-17 14:14:03,810 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:03,818 - Thread ID: 250246555\n", + "--------------------------------------------------------------------------------\n", + "idx: 259275\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I am available if this still works.\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Linda, Thank you for confirming, I have you booked for a video visit tomorrow with Dr.Tran at 7:40am.Best,Nicole Nguyen, MACare Navigator For Collaborative Primary Care(408)426-5540Please note: It may take up to 72 hours to respond back to your message. If you have any urgent concerns, please call our office. Messages sent after 5PM will not be addressed until the following workday.\n", + "----------------------------------------\n", + "idx: 259274\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "the earliest I can get a video appointment is Dec 23rd? I signed up, but almost 8 weeks. please put me on the waitlist for an earlier appointment. thank you. -Linda\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Linda, I have a cancellation for this Wednesday 11/13 at 7:40am video visit if you are available?Best,Nicole Nguyen, MACare Navigator For Collaborative Primary Care(408)426-5540Please note: It may take up to 72 hours to respond back to your message. If you have any urgent concerns, please call our office. Messages sent after 5PM will not be addressed until the following workday.\n", + "----------------------------------------\n", + "2025-06-17 14:14:03,819 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:03,821 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:03,822 - ✅ similarity: 0.6507\n", + "2025-06-17 14:14:03,822 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Your next available appointment isn't until April. If I'm going to wait that long, I'm going to need to get a prescription for the atorvastatin. Jim\n", + "2025-06-17 14:14:03,823 - Provider's response to this similar message: Please call our office to schedule an appointment. I believe online it just shows her appointments for annual physicals. We can better assist you in scheduling, please call our office.Stephanie Machorro Reynoso, MA, 11/13/2024, 2:55 PM\n", + "2025-06-17 14:14:03,824 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:03,826 - Thread ID: 250509796\n", + "--------------------------------------------------------------------------------\n", + "idx: 245562\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Your next available appointment isn't until April. If I'm going to wait that long, I'm going to need to get a prescription for the atorvastatin. Jim\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Please call our office to schedule an appointment. I believe online it just shows her appointments for annual physicals. We can better assist you in scheduling, please call our office.Stephanie Machorro Reynoso, MA, 11/13/2024, 2:55 PM\n", + "----------------------------------------\n", + "idx: 245561\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Singh,I recently exchanged emails with Stefanie about getting a renewal for atorvastatin. She gave me a 90 day script and said you would discuss it with me at my appointment in December. I don't see any appointments scheduled with you for December.In my original email I said I thought you might want to refer me to a cardiologist. What is the best course of action… Making an appointment with you or making an appointment with the cardiologist? Please advise. Jim\n", + "----------------------------------------\n", + "Provider Response by SINGH, INDIRA:\n", + "Please make an appt with me to discuss\n", + "----------------------------------------\n", + "2025-06-17 14:14:03,827 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:03,828 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:03,828 - ✅ similarity: 0.6475\n", + "2025-06-17 14:14:03,829 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi,Yes if you could please provide referrals to specialist in my network in the hope that they have earlier availability.thanks,Ellen \n", + "2025-06-17 14:14:03,830 - Provider's response to this similar message: Hi Ellen,I listed a few ENT specialist we recommend. We wouldn't know if they take your insurance, you would have to call them to check. You can also call your insurance to have them provide you with a list of in-network provider. If you find a provider that can see you sooner, let us know their information so we can send a referral to them. Thank you!Stephanie Machorro Reynoso, MA, 1/3/2025, 1:57 PMENT EXTERNAL INFORMATION: Dr. Rom KarinDr. William Lewis (dizziness specialist)Dr. David P. ArnsteinEar, Nose & Throat SurgeonWww.entlosgatos.comPhone: 408-395-6121Fax: 408-395-612715861 Winchester Boulevard, Lost Gatos, Ca 95030Hamed Sajjadi , MD (UHA) - otolaryngology and audiologyAddress: 2577 Samaritan Dr Ste 845, San Jose, CA 95124 Phone: (408) 358-8507Camino ENTwww.caminoent.comThey also have audiology2505 Samaritan Drive, Suite 510San Jose, CA 95124(408) 358-6163San Jose Ear and Sinus Medical Center2577 Samaritan Drive, Suite 845/860San Jose, CA 95124 Phone: 408-358-8507Dr. Philip T. Ho, MDAddress: 700 W Parr Ave, Los Gatos, CA 95032Phone: (408) 379-8228Camino Ear Nose And Throat ClinicAddress: 6060 Hellyer Ave #150, San Jose, CA 95138Phone: (408) 227-6300\n", + "2025-06-17 14:14:03,831 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:03,833 - Thread ID: 254535431\n", + "--------------------------------------------------------------------------------\n", + "idx: 57671\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,Yes if you could please provide referrals to specialist in my network in the hope that they have earlier availability.thanks,Ellen \n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Ellen,I listed a few ENT specialist we recommend. We wouldn't know if they take your insurance, you would have to call them to check. You can also call your insurance to have them provide you with a list of in-network provider. If you find a provider that can see you sooner, let us know their information so we can send a referral to them. Thank you!Stephanie Machorro Reynoso, MA, 1/3/2025, 1:57 PMENT EXTERNAL INFORMATION: Dr. Rom KarinDr. William Lewis (dizziness specialist)Dr. David P. ArnsteinEar, Nose & Throat SurgeonWww.entlosgatos.comPhone: 408-395-6121Fax: 408-395-612715861 Winchester Boulevard, Lost Gatos, Ca 95030Hamed Sajjadi , MD (UHA) - otolaryngology and audiologyAddress: 2577 Samaritan Dr Ste 845, San Jose, CA 95124 Phone: (408) 358-8507Camino ENTwww.caminoent.comThey also have audiology2505 Samaritan Drive, Suite 510San Jose, CA 95124(408) 358-6163San Jose Ear and Sinus Medical Center2577 Samaritan Drive, Suite 845/860San Jose, CA 95124 Phone: 408-358-8507Dr. Philip T. Ho, MDAddress: 700 W Parr Ave, Los Gatos, CA 95032Phone: (408) 379-8228Camino Ear Nose And Throat ClinicAddress: 6060 Hellyer Ave #150, San Jose, CA 95138Phone: (408) 227-6300\n", + "----------------------------------------\n", + "idx: 57670\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Doctor,Happy New YearI finally got a date for my nose surgery and it is in November. This really suprised as I'm wearing every day / night strips to enable me to breathe properly.This is a medical needed surgery, can you help expedite this? What do you suggest I do at this point? It is really hard to breathe without the nose strip as my nose always blocks. In addition, my nose skin is gotten very sensitive.Best Regards,Ellen \n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC CARE TEAM POOL,:\n", + "Hi Ellen,Dr. Krishna is out of the office until 1/13/25. The covering provider, PA Bobby, reviewed your message and wrote back- Leave for PCP. I do not know of a way for us to expedite this unfortunately unless patient wants to see a different specialist/surgeon. If that is the case I'm happy to send a new referral. Stephanie Machorro Reynoso, MA, 1/2/2025, 9:55 AM\n", + "----------------------------------------\n", + "2025-06-17 14:14:03,834 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:03,834 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:03,835 - ✅ similarity: 0.6369\n", + "2025-06-17 14:14:03,836 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning!I made an appointment, but the soonest was Feb 18th next year. Can you please put me on the last minute cancelation list to hopefully be seen sooner?\n", + "2025-06-17 14:14:03,836 - Provider's response to this similar message: Hi Kristina,You got on the schedule for physical exam, I would keep it honestly and just make an appointment non physical you can get in soon, thanks!Best,Destiny DickersonCollaborative Primary Care(408)426-5540\n", + "2025-06-17 14:14:03,837 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:03,840 - Thread ID: 249119522\n", + "--------------------------------------------------------------------------------\n", + "idx: 316877\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Oh okay, thank you!\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 316876\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you!Okay so I got a video for today at 1240. So then you are saying to keep my in person one too still?\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Kristina,I would just as your physical exam if needed for the year 2025! (She books up so quick for the physicals) id keep your spot, thanks!Best,Destiny DickersonCollaborative Primary Care(408)426-5540\n", + "----------------------------------------\n", + "idx: 316875\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning!I made an appointment, but the soonest was Feb 18th next year. Can you please put me on the last minute cancelation list to hopefully be seen sooner?\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Kristina,You got on the schedule for physical exam, I would keep it honestly and just make an appointment non physical you can get in soon, thanks!Best,Destiny DickersonCollaborative Primary Care(408)426-5540\n", + "----------------------------------------\n", + "idx: 316874\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Forgot to add….I have tremors as well. There are time when I feel palpitations and other times I don’t. I also feel nauseous and have abdominal pain sometimes. \n", + "----------------------------------------\n", + "Provider Response by DICKERSON, DESTINY:\n", + "Hi Kristina,Thank you for the info, Dr.Krishna said pls make an appointment with us with this information for an eval, thank you.Best,Destiny DickersonCollaborative Primary Care(408)426-5540\n", + "----------------------------------------\n", + "2025-06-17 14:14:03,841 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:03,843 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:03,843 - ✅ similarity: 0.6344\n", + "2025-06-17 14:14:03,844 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have been trying to schedule an in person appointment for meds management and EKG, but the system tells me the next available is March 18th. Is there anything sooner?\n", + "2025-06-17 14:14:03,845 - Provider's response to this similar message: Hi Anna,I hope your doing well, please call our office so we can better assist you. Dr.Singh might not have something right away but we may have sooner appointments with her than March or with another provider.Sincerely,Joanna Lamas,MACollaborative Primary Care408-426-5540Please note: It may take up to 48 hours to respond to your emails. If you have any urgent concerns, please call our office. Messages sent after 5 pm will not be addressed until the following workday.\n", + "2025-06-17 14:14:03,845 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:03,847 - Thread ID: 254253013\n", + "--------------------------------------------------------------------------------\n", + "idx: 71790\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have been trying to schedule an in person appointment for meds management and EKG, but the system tells me the next available is March 18th. Is there anything sooner?\n", + "----------------------------------------\n", + "Provider Response by UMG LGCPC MYHEALTH POOL:\n", + "Hi Anna,I hope your doing well, please call our office so we can better assist you. Dr.Singh might not have something right away but we may have sooner appointments with her than March or with another provider.Sincerely,Joanna Lamas,MACollaborative Primary Care408-426-5540Please note: It may take up to 48 hours to respond to your emails. If you have any urgent concerns, please call our office. Messages sent after 5 pm will not be addressed until the following workday.\n", + "----------------------------------------\n", + "2025-06-17 14:14:03,848 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:04,410 - Original Message:\n", + "2025-06-17 14:14:04,410 - original_query_message: Hi Dr. Chen,Read your summary from today's lab work.I'm guessing the low TSH is due to zepbound. We can discuss when I see you on Wednesday morning. Thanks,Judy\n", + "2025-06-17 14:14:06,116 - Query Parameters:\n", + "2025-06-17 14:14:06,120 - query_message: Hi Dr. Chen, I was going through the blood test results you sent over, and I noticed my TSH levels came back lower than usual this time. Ever since I started taking Zepbound, I’ve been feeling a little more anxious and sometimes even a bit jittery, though it could just be my imagination. Do you think this could be connected to the medication? Also, should I be worried about any long-term effects from having low TSH, or is it something we just keep an eye on? Looking forward to talking more at my appointment next week, but wanted to ask here in case you think I should adjust anything in the meantime. Thanks so much! Best, David\n", + "2025-06-17 14:14:06,123 - receiver: CHEN, VICTORIA\n", + "2025-06-17 14:14:06,128 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:14:06,130 - specialty: Internal Medicine\n", + "2025-06-17 14:14:06,770 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:06,772 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:06,773 - ✅ similarity: 0.7700\n", + "2025-06-17 14:14:06,774 - Sender: KAUR, SIMRANJIT [ S0388844] -> the retrieved similar message : Hi Dr. Chen,Read your summary from today's lab work.I'm guessing the low TSH is due to zepbound. We can discuss when I see you on Wednesday morning. Thanks,Judy\n", + "2025-06-17 14:14:06,776 - Provider's response to this similar message: See other note!\n", + "2025-06-17 14:14:06,777 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:06,784 - Thread ID: 252747683\n", + "--------------------------------------------------------------------------------\n", + "idx: 134365\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen,Read your summary from today's lab work.I'm guessing the low TSH is due to zepbound. We can discuss when I see you on Wednesday morning. Thanks,Judy\n", + "----------------------------------------\n", + "Provider Response by CHEN, VICTORIA:\n", + "See other note!\n", + "----------------------------------------\n", + "2025-06-17 14:14:06,786 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:06,787 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:06,788 - ✅ similarity: 0.5923\n", + "2025-06-17 14:14:06,789 - Sender: GONZALES, JESSICA [ S0097560] -> the retrieved similar message : Hi Dr. Chen, Is it ok to check my TSH and Potassium? I am feeling some palpitation, body ache and getting tired easily.Thank you,Shirley\n", + "2025-06-17 14:14:06,789 - Provider's response to this similar message: Hi Shirley,Of course. Please stop by the lab for your non-fasting blood test. If you would like it at a non-Stanford facility, please let me know.Best,vc\n", + "2025-06-17 14:14:06,790 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:06,793 - Thread ID: 249281981\n", + "--------------------------------------------------------------------------------\n", + "idx: 309041\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen, Is it ok to check my TSH and Potassium? I am feeling some palpitation, body ache and getting tired easily.Thank you,Shirley\n", + "----------------------------------------\n", + "Provider Response by CHEN, VICTORIA:\n", + "Hi Shirley,Of course. Please stop by the lab for your non-fasting blood test. If you would like it at a non-Stanford facility, please let me know.Best,vc\n", + "----------------------------------------\n", + "2025-06-17 14:14:06,793 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:06,794 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:06,794 - ✅ similarity: 0.5742\n", + "2025-06-17 14:14:06,795 - Sender: KAUR, SIMRANJIT [ S0388844] -> the retrieved similar message : Hi Dr ChenI hope you are well!I had my labs done today-wow my thyroid levels are high. I have been having symptoms and was in fact going to ask as I have been unusually irritable, a bit of hair loss and extremely cold.When you get a moment if you might share your thoughts it would be great. My monocytes are also a bit high-I have asked Dr Gotlib to interpret.Thanks!\n", + "2025-06-17 14:14:06,795 - Provider's response to this similar message: We will discuss more at your upcoming appointment. See you soon.Best,vc\n", + "2025-06-17 14:14:06,796 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:06,798 - Thread ID: 253499859\n", + "--------------------------------------------------------------------------------\n", + "idx: 104712\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr ChenI hope you are well!I had my labs done today-wow my thyroid levels are high. I have been having symptoms and was in fact going to ask as I have been unusually irritable, a bit of hair loss and extremely cold.When you get a moment if you might share your thoughts it would be great. My monocytes are also a bit high-I have asked Dr Gotlib to interpret.Thanks!\n", + "----------------------------------------\n", + "Provider Response by CHEN, VICTORIA:\n", + "We will discuss more at your upcoming appointment. See you soon.Best,vc\n", + "----------------------------------------\n", + "2025-06-17 14:14:06,799 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:06,800 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:06,801 - ✅ similarity: 0.5470\n", + "2025-06-17 14:14:06,801 - Sender: GONZALES, JESSICA [ S0097560] -> the retrieved similar message : Hi Dr. Chen, I just got results of new blood work taken to consider Semiglutide. The NP I met with, advised me to make you aware of my A1c result of 6.0 (though she expected the semiglutide would help with that). She was also concerned about my TSH score and thought it warranted further thyroid testing. She said ideally, it should be under 2.0. I just wanted to pass this on to you.Thank you, JanetReport Status: FinalABELSON, JANETDOB: 11/05/1951 AGE: 73Gender: F Fasting: YCollected: 12/05/2024 / 12:41 PSTTSH 3.19 0.40-4.50 mIU/L ULCOMMENTS: FASTING:YESLIPID PANEL, STANDARDCHOLESTEROL, TOTAL 151 < 200 mg/dL ULHDL CHOLESTEROL 75 > OR = 50 mg/dL ULTRIGLYCERIDES 48 < 150 mg/dL ULLDL-CHOLESTEROL 62 mg/dL (calc) ULGLUCOSE 91 65-99 mg/dLHEMOGLOBIN A1c 6.0 H < 5.7 % of total Hgb ULTSH 3.19 0.40-4.50 mIU/L UL\n", + "2025-06-17 14:14:06,802 - Provider's response to this similar message: Hi Janet, Thank you for the updates. Yes, we should pursue additional thyroid testing. I'll place the non-fasting lab work in the system and you can get it done at your convenience.Best,vc \n", + "2025-06-17 14:14:06,803 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:06,805 - Thread ID: 252843156\n", + "--------------------------------------------------------------------------------\n", + "idx: 130839\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen, I just got results of new blood work taken to consider Semiglutide. The NP I met with, advised me to make you aware of my A1c result of 6.0 (though she expected the semiglutide would help with that). She was also concerned about my TSH score and thought it warranted further thyroid testing. She said ideally, it should be under 2.0. I just wanted to pass this on to you.Thank you, JanetReport Status: FinalABELSON, JANETDOB: 11/05/1951 AGE: 73Gender: F Fasting: YCollected: 12/05/2024 / 12:41 PSTTSH 3.19 0.40-4.50 mIU/L ULCOMMENTS: FASTING:YESLIPID PANEL, STANDARDCHOLESTEROL, TOTAL 151 < 200 mg/dL ULHDL CHOLESTEROL 75 > OR = 50 mg/dL ULTRIGLYCERIDES 48 < 150 mg/dL ULLDL-CHOLESTEROL 62 mg/dL (calc) ULGLUCOSE 91 65-99 mg/dLHEMOGLOBIN A1c 6.0 H < 5.7 % of total Hgb ULTSH 3.19 0.40-4.50 mIU/L UL\n", + "----------------------------------------\n", + "Provider Response by CHEN, VICTORIA:\n", + "Hi Janet, Thank you for the updates. Yes, we should pursue additional thyroid testing. I'll place the non-fasting lab work in the system and you can get it done at your convenience.Best,vc \n", + "----------------------------------------\n", + "2025-06-17 14:14:06,805 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:06,806 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:06,807 - ✅ similarity: 0.5307\n", + "2025-06-17 14:14:06,807 - Sender: KAUR, SIMRANJIT [ S0388844] -> the retrieved similar message : Just another update. My IVF doc took one more test and my thyroid level is over 4 so they want it at 2.5 for pregnancy. They are starting me on medication. \n", + "2025-06-17 14:14:06,808 - Provider's response to this similar message: Hi Calista,Thank you for the update. Best,vc \n", + "2025-06-17 14:14:06,809 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:06,811 - Thread ID: 253275429\n", + "--------------------------------------------------------------------------------\n", + "idx: 114684\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Just another update. My IVF doc took one more test and my thyroid level is over 4 so they want it at 2.5 for pregnancy. They are starting me on medication. \n", + "----------------------------------------\n", + "Provider Response by CHEN, VICTORIA:\n", + "Hi Calista,Thank you for the update. Best,vc \n", + "----------------------------------------\n", + "2025-06-17 14:14:06,813 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:07,224 - Original Message:\n", + "2025-06-17 14:14:07,225 - original_query_message: Good morning I have been having severe headaches for 4 weeks with nausea, my no peaks to 198/102 at times this morning at 5 am it was 150/100, I think I need my medication adjusted I’ve been to ER at least 4 times they keep sending me home I’m very worried \n", + "2025-06-17 14:14:08,710 - Query Parameters:\n", + "2025-06-17 14:14:08,713 - query_message: Hi there, I really need some advice. For about a month now, I’ve been dealing with really intense headaches and feeling queasy most days. My blood pressure’s been all over the place—once it shot up to 190/98, and this weekend it was still high at 145/95 even after I’d rested. I’ve tried talking to the ER doctors a few times, but they just keep telling me to follow up with my usual provider, and I’m starting to feel helpless since the pain just won’t let up and I’m worried about my heart. I’m also noticing I get a bit dizzy when I stand and sometimes have trouble focusing. Do you think my meds might not be strong enough anymore, or could this be something more serious? I just want to know what to do next.\n", + "2025-06-17 14:14:08,715 - receiver: FMO CLINICAL CALL CENTER POOL\n", + "2025-06-17 14:14:08,716 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:14:08,718 - specialty: Family Medicine\n", + "2025-06-17 14:14:09,755 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:09,755 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:09,756 - ✅ similarity: 0.7711\n", + "2025-06-17 14:14:09,757 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Good morning I have been having severe headaches for 4 weeks with nausea, my no peaks to 198/102 at times this morning at 5 am it was 150/100, I think I need my medication adjusted I’ve been to ER at least 4 times they keep sending me home I’m very worried \n", + "2025-06-17 14:14:09,757 - Provider's response to this similar message: Good morning Jackie,My name is Christian Martinez, MPA, PA-C. I am a covering clinician for your primary care doctor, Tinsley, Ebony Yvonne. I'm sorry to hear that you've been experiencing severe headaches and high blood pressure. Given your symptoms and the fact that you've been to the ER multiple times, it is important to address this promptly. Please schedule an appointment with us as soon as possible so we can evaluate your condition and adjust your medications if necessary. You can use the Stanford MyHealth app to schedule the appointment or call 510-286-8160.In the meantime, continue monitoring your blood pressure and keep a record of your readings to bring to your appointment. If your symptoms worsen or you experience any new concerning symptoms, please seek immediate medical attention.Take care, and we look forward to seeing you soon.Christian Eloy Martinez, PA\n", + "2025-06-17 14:14:09,758 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:09,764 - Thread ID: 254204958\n", + "--------------------------------------------------------------------------------\n", + "idx: 74337\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Jackie,My name is Christian Martinez, MPA, PA-C. I am a covering clinician for your primary care doctor, Tinsley, Ebony Yvonne. I'm sorry to hear that you've been experiencing severe headaches and high blood pressure. Given your symptoms and the fact that you've been to the ER multiple times, it is important to address this promptly. Please schedule an appointment with us as soon as possible so we can evaluate your condition and adjust your medications if necessary. You can use the Stanford MyHealth app to schedule the appointment or call 510-286-8160.In the meantime, continue monitoring your blood pressure and keep a record of your readings to bring to your appointment. If your symptoms worsen or you experience any new concerning symptoms, please seek immediate medical attention.Take care, and we look forward to seeing you soon.Christian Eloy Martinez, PA\n", + "----------------------------------------\n", + "Provider Response by FMO SCHEDULER POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 74336\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning I have been having severe headaches for 4 weeks with nausea, my no peaks to 198/102 at times this morning at 5 am it was 150/100, I think I need my medication adjusted I’ve been to ER at least 4 times they keep sending me home I’m very worried \n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Good morning Jackie,My name is Christian Martinez, MPA, PA-C. I am a covering clinician for your primary care doctor, Tinsley, Ebony Yvonne. I'm sorry to hear that you've been experiencing severe headaches and high blood pressure. Given your symptoms and the fact that you've been to the ER multiple times, it is important to address this promptly. Please schedule an appointment with us as soon as possible so we can evaluate your condition and adjust your medications if necessary. You can use the Stanford MyHealth app to schedule the appointment or call 510-286-8160.In the meantime, continue monitoring your blood pressure and keep a record of your readings to bring to your appointment. If your symptoms worsen or you experience any new concerning symptoms, please seek immediate medical attention.Take care, and we look forward to seeing you soon.Christian Eloy Martinez, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:09,764 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:09,765 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:09,765 - ✅ similarity: 0.6415\n", + "2025-06-17 14:14:09,766 - Sender: ARREOLA, MARIA [ S0096428] -> the retrieved similar message : Good morningHey I’ve been in contact with a few of my doctors and they keep sending me to more doctors which of course is taking a long time to get appointments. But basically, I have been having sever pain in the left side of my neck, it is swollen, hot, I’m absolutely exhausted and my neck is extremely sensitive to touch. I can no longer swallow solid foods without chocking, I loose the ability to talk every day, and have trouble breathing at times which is shortly remedied by my inhaler. I have scene an ENT, and my asthma doctor who both say things look fine on their end. I have been in contact with my neurologist and pain management team. I have MRI’s of brain and c-spine scheduled for Nero surgery and a swallow study scheduled. But my symptoms have rapidly increased. Do you think this could be mono or a thyroid issue? Do I need to come see you or can we order blood tests? I’m just at a complete loss of what to do and am desperately looking for help. Best, Brittain Peterson\n", + "2025-06-17 14:14:09,766 - Provider's response to this similar message: Good morning Brittain,I'm sorry to hear that you're experiencing these symptoms. Given the severity and rapid progression of your symptoms, it is important to rule out any serious conditions, including mono or thyroid issues. I recommend that you come in for an appointment with Dr. Tsai so we can perform a thorough evaluation and order the necessary tests as indicated. Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience.Take care,Christian Eloy Martinez, PA\n", + "2025-06-17 14:14:09,767 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:09,770 - Thread ID: 249194504\n", + "--------------------------------------------------------------------------------\n", + "idx: 313190\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Morning, Since it looks like everything came back normal, now what do we do? I’m still in tremendous pain and I’m just at a loss for what to do next. I keep calling trying to get those MRI’s moved up but I’ve had zero luck and the swallow study wasn’t put in at Standford, is it possible to rush a barium swallow study? \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Brittain,I have put in for an expedited swallow study with Stanford, because I'm not an ENT I may not be able to interpret the study, but you can forward the report to your other specialists for them to weigh in.To schedule, cancel or reschedule your appointment, please contact the Radiology Scheduling Center at (650) 724-8937.Take care,Jennifer Tsai, MD\n", + "----------------------------------------\n", + "idx: 313189\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morningHey I’ve been in contact with a few of my doctors and they keep sending me to more doctors which of course is taking a long time to get appointments. But basically, I have been having sever pain in the left side of my neck, it is swollen, hot, I’m absolutely exhausted and my neck is extremely sensitive to touch. I can no longer swallow solid foods without chocking, I loose the ability to talk every day, and have trouble breathing at times which is shortly remedied by my inhaler. I have scene an ENT, and my asthma doctor who both say things look fine on their end. I have been in contact with my neurologist and pain management team. I have MRI’s of brain and c-spine scheduled for Nero surgery and a swallow study scheduled. But my symptoms have rapidly increased. Do you think this could be mono or a thyroid issue? Do I need to come see you or can we order blood tests? I’m just at a complete loss of what to do and am desperately looking for help. Best, Brittain Peterson\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Good morning Brittain,I'm sorry to hear that you're experiencing these symptoms. Given the severity and rapid progression of your symptoms, it is important to rule out any serious conditions, including mono or thyroid issues. I recommend that you come in for an appointment with Dr. Tsai so we can perform a thorough evaluation and order the necessary tests as indicated. Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience.Take care,Christian Eloy Martinez, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:09,771 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:09,771 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:09,772 - ✅ similarity: 0.6318\n", + "2025-06-17 14:14:09,773 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Hello Dr. Kelly, this past week I haven't been feeling my best. With the mold issue going on in my home, I am getting really sick. I am also in constant pain 24/7 something feels off. I am extremely fatigued and tired, all the time. I have this weird taste in my mouth. I feel myself swelling and getting bigger. My face has changed. And where the pain is, it feels un natural. In between my neck and shoulder blades, feels like i've been impaled by a spike. I also had a trip to the emergency the day after Christmas. My throat closed up again. I would really like to get more imaging and labs done. Something feels off. And the pain meds you prescribed aren't working, it just makes me nauseous and sleepy.\n", + "2025-06-17 14:14:09,774 - Provider's response to this similar message: Hello Ms. Jenkins, This is Sarah Pontell, PA-C, in the call center, responding on behalf of Dr. Kelly. I am sorry to hear this. This deserves an appointment to discuss this further with your provider. You can schedule through myhealth or call (510) 286-8160. Please schedule sooner than currently scheduled due to your recent hospital trip. Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit.Sincerely, Sarah Pontell, PA-C\n", + "2025-06-17 14:14:09,776 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:09,782 - Thread ID: 255343316\n", + "--------------------------------------------------------------------------------\n", + "idx: 19148\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Kelly, this past week I haven't been feeling my best. With the mold issue going on in my home, I am getting really sick. I am also in constant pain 24/7 something feels off. I am extremely fatigued and tired, all the time. I have this weird taste in my mouth. I feel myself swelling and getting bigger. My face has changed. And where the pain is, it feels un natural. In between my neck and shoulder blades, feels like i've been impaled by a spike. I also had a trip to the emergency the day after Christmas. My throat closed up again. I would really like to get more imaging and labs done. Something feels off. And the pain meds you prescribed aren't working, it just makes me nauseous and sleepy.\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hello Ms. Jenkins, This is Sarah Pontell, PA-C, in the call center, responding on behalf of Dr. Kelly. I am sorry to hear this. This deserves an appointment to discuss this further with your provider. You can schedule through myhealth or call (510) 286-8160. Please schedule sooner than currently scheduled due to your recent hospital trip. Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit.Sincerely, Sarah Pontell, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:14:09,786 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:09,789 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:09,790 - ✅ similarity: 0.6059\n", + "2025-06-17 14:14:09,794 - Sender: HIRLAS, ITZEL [ S0370903] -> the retrieved similar message : Hi Dr. Tsai, I’m glad to see my labs are pretty good. I have started back on vitamin D and taking other multivitamins again. I’ve also added more of the foods you suggested as well. I have been feeling “off” the last few months, not sure what it is. I could just need more water, but I often feel light headed, sometimes dizzy and my pulse will spike to the high 90’s/100’s and feel as if I have to sit down until it passes. Sometimes it’s when I’m eating or out of know where. I feel wiped out at the time it happens. I notice when I stand, during these “episodes”, is when it my heart rate jumps to the hundreds. I feel like this is increasing in frequency. I thought before it was due to me donating plasma, but I haven’t donated since the beginning of July. Do you have any idea what this is, what I should do to help it from continuing and I can feel better?Thanks! Kathleen. \n", + "2025-06-17 14:14:09,795 - Provider's response to this similar message: Hi Kathleen,I'm glad to hear you're back on your vitamin D and multivitamins and incorporating more of the recommended foods into your diet.Regarding the symptoms you're experiencing, it sounds like you might be dealing with orthostatic hypotension or possibly another condition affecting your heart rate and blood pressure. This can sometimes happen when standing up quickly, leading to dizziness and a rapid heart rate. Dehydration can also contribute to these symptoms, so increasing your water intake is a good idea.However, given that these episodes are becoming more frequent and are quite bothersome, I recommend scheduling an appointment so we can evaluate this further. We may need to check your blood pressure and heart rate in different positions (lying down, sitting, and standing) and possibly run some additional tests to get to the bottom of this.Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience.Take care,Christian Eloy Martinez, PA\n", + "2025-06-17 14:14:09,796 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:09,799 - Thread ID: 248255417\n", + "--------------------------------------------------------------------------------\n", + "idx: 360774\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! I will schedule an appointment. \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 360773\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsai, I’m glad to see my labs are pretty good. I have started back on vitamin D and taking other multivitamins again. I’ve also added more of the foods you suggested as well. I have been feeling “off” the last few months, not sure what it is. I could just need more water, but I often feel light headed, sometimes dizzy and my pulse will spike to the high 90’s/100’s and feel as if I have to sit down until it passes. Sometimes it’s when I’m eating or out of know where. I feel wiped out at the time it happens. I notice when I stand, during these “episodes”, is when it my heart rate jumps to the hundreds. I feel like this is increasing in frequency. I thought before it was due to me donating plasma, but I haven’t donated since the beginning of July. Do you have any idea what this is, what I should do to help it from continuing and I can feel better?Thanks! Kathleen. \n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Kathleen,I'm glad to hear you're back on your vitamin D and multivitamins and incorporating more of the recommended foods into your diet.Regarding the symptoms you're experiencing, it sounds like you might be dealing with orthostatic hypotension or possibly another condition affecting your heart rate and blood pressure. This can sometimes happen when standing up quickly, leading to dizziness and a rapid heart rate. Dehydration can also contribute to these symptoms, so increasing your water intake is a good idea.However, given that these episodes are becoming more frequent and are quite bothersome, I recommend scheduling an appointment so we can evaluate this further. We may need to check your blood pressure and heart rate in different positions (lying down, sitting, and standing) and possibly run some additional tests to get to the bottom of this.Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience.Take care,Christian Eloy Martinez, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:09,800 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:09,800 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:09,801 - ✅ similarity: 0.5940\n", + "2025-06-17 14:14:09,802 - Sender: HUTCHERSON, THUNDERLAYER [ S0094511] -> the retrieved similar message : Hello Doctor,Just touching bases. As you know, I had back surgery with Dr. Tseng on July 30. I really didn’t work at all. Still have shooting nerve pain going down my left leg, especially at rest, and always in bed. There is no good position to sleep so I find myself sleeping on my stomach which probably isn’t good for my heart. Just started PT, since he didn’t want me doing any exercises for 3 months. Anyway, I have a headache all day for over a month now. I take Tylenol before I go to bed, and as soon as I awaken. Last week I had a migraine for days. There must be something else you can prescribe. I take a Valium and occasional Lunesta, but still can’t get to sleep. I will try working out more, but also my right knee swells up when I get on my bike. I’m a mess !!!Any ideas for my headaches? I’m take 2 81 mg aspirin daily. Sorry to ramble. ThxMac \n", + "2025-06-17 14:14:09,802 - Provider's response to this similar message: Hi Mac,Thanks for the update and I'm sorry about the continued pain. I'm responding on behalf of your provider. For your headaches, it might be helpful to try a different type of medication. I recommend scheduling an appointment so we can discuss your symptoms in more detail and find an appropriate treatment plan. You can use the Stanford MyHealth app to schedule this appointment.Regarding your nerve pain and difficulty sleeping, it's good that you've started physical therapy. It may take some time to see improvements, but please keep your therapist updated on your progress and any persistent issues.For your right knee swelling, it might be best to avoid activities that exacerbate the swelling, like biking, until Dr Tsai can evaluate it further. Jodi Mara Gorman, NP\n", + "2025-06-17 14:14:09,803 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:09,805 - Thread ID: 251645680\n", + "--------------------------------------------------------------------------------\n", + "idx: 187101\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Fine. Should I call to make appointment?\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 187100\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Mac,Thanks for the update and I'm sorry about the continued pain. I'm responding on behalf of your provider. For your headaches, it might be helpful to try a different type of medication. I recommend scheduling an appointment so we can discuss your symptoms in more detail and find an appropriate treatment plan. You can use the Stanford MyHealth app to schedule this appointment.Regarding your nerve pain and difficulty sleeping, it's good that you've started physical therapy. It may take some time to see improvements, but please keep your therapist updated on your progress and any persistent issues.For your right knee swelling, it might be best to avoid activities that exacerbate the swelling, like biking, until Dr Tsai can evaluate it further. Jodi Mara Gorman, NP\n", + "----------------------------------------\n", + "Provider Response by TSAI, JENNIFER:\n", + "No response\n", + "----------------------------------------\n", + "idx: 187099\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor,Just touching bases. As you know, I had back surgery with Dr. Tseng on July 30. I really didn’t work at all. Still have shooting nerve pain going down my left leg, especially at rest, and always in bed. There is no good position to sleep so I find myself sleeping on my stomach which probably isn’t good for my heart. Just started PT, since he didn’t want me doing any exercises for 3 months. Anyway, I have a headache all day for over a month now. I take Tylenol before I go to bed, and as soon as I awaken. Last week I had a migraine for days. There must be something else you can prescribe. I take a Valium and occasional Lunesta, but still can’t get to sleep. I will try working out more, but also my right knee swells up when I get on my bike. I’m a mess !!!Any ideas for my headaches? I’m take 2 81 mg aspirin daily. Sorry to ramble. ThxMac \n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Hi Mac,Thanks for the update and I'm sorry about the continued pain. I'm responding on behalf of your provider. For your headaches, it might be helpful to try a different type of medication. I recommend scheduling an appointment so we can discuss your symptoms in more detail and find an appropriate treatment plan. You can use the Stanford MyHealth app to schedule this appointment.Regarding your nerve pain and difficulty sleeping, it's good that you've started physical therapy. It may take some time to see improvements, but please keep your therapist updated on your progress and any persistent issues.For your right knee swelling, it might be best to avoid activities that exacerbate the swelling, like biking, until Dr Tsai can evaluate it further. Jodi Mara Gorman, NP\n", + "----------------------------------------\n", + "2025-06-17 14:14:09,806 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:10,417 - Original Message:\n", + "2025-06-17 14:14:10,419 - original_query_message: Hi Dr. Dang:Can you call in a prescription for Vitamin D that is stronger than the over-the-counter? This way I can get this going. Thanks,\n", + "2025-06-17 14:14:12,601 - Query Parameters:\n", + "2025-06-17 14:14:12,602 - query_message: Hey Dr. Dang, I recently found out my vitamin D levels are pretty low after some blood work (I’ve been super tired and achy lately, not sure if it’s related). I’ve been taking the regular supplements from the pharmacy for a while, but I’m not seeing much improvement. Would it be possible to get a prescription for a higher dose to help get my levels back up? I’m just eager to feel like myself again. Thank you!\n", + "2025-06-17 14:14:12,604 - receiver: FMASJ CARE TEAM POOL\n", + "2025-06-17 14:14:12,604 - department: FAMILY MEDICINE ASSOCIATES SAN JOSE\n", + "2025-06-17 14:14:12,606 - specialty: Family Medicine\n", + "2025-06-17 14:14:13,078 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:13,082 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:13,083 - ✅ similarity: 0.7609\n", + "2025-06-17 14:14:13,084 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Dang:Can you call in a prescription for Vitamin D that is stronger than the over-the-counter? This way I can get this going. Thanks,\n", + "2025-06-17 14:14:13,086 - Provider's response to this similar message: Sent to the pharmacy for you to be taken once a week for 12 weeks.\n", + "2025-06-17 14:14:13,088 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:13,092 - Thread ID: 251421466\n", + "--------------------------------------------------------------------------------\n", + "idx: 198926\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Dang:Can you call in a prescription for Vitamin D that is stronger than the over-the-counter? This way I can get this going. Thanks,\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Sent to the pharmacy for you to be taken once a week for 12 weeks.\n", + "----------------------------------------\n", + "2025-06-17 14:14:13,094 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:13,095 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:13,096 - ✅ similarity: 0.7262\n", + "2025-06-17 14:14:13,097 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr EngleI’m messaging you regarding my previous lab work, I realized my Vitamin D was ordered but never drawn in June. I was hoping I could get an order to redraw my vitamin D now, I’ve felt a lot more fatigued and sleeping almost 12 hours a day on my days off. I’m taking 1000 IU a day and wondering if I need to increase my dose or make other lifestyle changes. Thank you Sharlin Prasad\n", + "2025-06-17 14:14:13,098 - Provider's response to this similar message: Sharlin Prasad, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Cantrena Law, MAYour CareTeam at Family Medicine Associates San Jose\n", + "2025-06-17 14:14:13,100 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:13,103 - Thread ID: 252185114\n", + "--------------------------------------------------------------------------------\n", + "idx: 160032\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr EngleI’m messaging you regarding my previous lab work, I realized my Vitamin D was ordered but never drawn in June. I was hoping I could get an order to redraw my vitamin D now, I’ve felt a lot more fatigued and sleeping almost 12 hours a day on my days off. I’m taking 1000 IU a day and wondering if I need to increase my dose or make other lifestyle changes. Thank you Sharlin Prasad\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Sharlin Prasad, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Cantrena Law, MAYour CareTeam at Family Medicine Associates San Jose\n", + "----------------------------------------\n", + "2025-06-17 14:14:13,104 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:13,104 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:13,105 - ✅ similarity: 0.7248\n", + "2025-06-17 14:14:13,106 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Dang.I wanted to check with you the dosage for vitamin D and calcium you recommended. For calcium, is it up to 600 mg/daily? For vitamin D, what’s the dosage again? I bought a 125mg (5000 IU) vitamin D\n", + "2025-06-17 14:14:13,107 - Provider's response to this similar message: Janice Tran, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Blanca Romero, MAYour CareTeam at Family Medicine Associates San Jose\n", + "2025-06-17 14:14:13,108 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:13,110 - Thread ID: 249094024\n", + "--------------------------------------------------------------------------------\n", + "idx: 318136\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Janice Tran, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Blanca Romero, MAYour CareTeam at Family Medicine Associates San Jose\n", + "----------------------------------------\n", + "Provider Response by DANG, LINH THI:\n", + "Hi Janice,For calcium, you will aim for about 1000 mg total daily, from both supplement and diet combined. so if you're not getting enough from your diet (like only 400 to 500mg from food), then taking an additional 500mg to 600mg of calcium as a supplement is okay. For vitamin D, a common dosage is 1000-2000 IU daily.If you have any further questions or need to discuss this in more detail, feel free to schedule an appointment through the Stanford MyHealth app.Best regards,Linh Thi Thuy Dang, MD\n", + "----------------------------------------\n", + "idx: 318135\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Dang.I wanted to check with you the dosage for vitamin D and calcium you recommended. For calcium, is it up to 600 mg/daily? For vitamin D, what’s the dosage again? I bought a 125mg (5000 IU) vitamin D\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Janice Tran, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Blanca Romero, MAYour CareTeam at Family Medicine Associates San Jose\n", + "----------------------------------------\n", + "2025-06-17 14:14:13,111 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:13,111 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:13,112 - ✅ similarity: 0.7030\n", + "2025-06-17 14:14:13,113 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Vitamin D, 25-Hydroxyvitamin resulted on 11/7/24, 6:03 AM...Hi Dr. Chern,Is it okay for me to start taking the Vitamin D today? Or should I wait for the other tests to come in that you requested additional labs for?Should I pick up iron pills and start taking 1? Or wait for lab results?Also are you able to write me a doctors note. I’ve taken time off since Wednesday and maybe a few days next week as well.Thanks,Punam\n", + "2025-06-17 14:14:13,114 - Provider's response to this similar message: Punam Patel, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "2025-06-17 14:14:13,114 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:13,117 - Thread ID: 250178938\n", + "--------------------------------------------------------------------------------\n", + "idx: 262698\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much!I tried to get work to accept the note that you provided for the extension but they still want the work one filled out. Can you complete the one that is attached? Luckily this one seems like a little less info is needed. Second question throws me off a little but I think you can write: “yes, goal is to get better and get back to the office”.Last question: I’d say just put “No”.I’m so sorry for the extra work. Thanks again,Punam\n", + "----------------------------------------\n", + "Provider Response by CHERN, ANNIE BERTHA-CHAO:\n", + "Punam - no problem! I filled it out (as below) and having staff fax it back for you. Hope you feel better soon and happy upcoming holiday season!-Best, Dr. Chern \n", + "----------------------------------------\n", + "idx: 262697\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chern,I’m thinking you recommended D2 because I’m a vegetarian but I’ve read that D3 absorbs better, should I take D3 instead? Past few weeks my eyes have been feeling different, a tiny bit better now, but it’s like sometimes I’m feeling sensitivity to light and that’s throwing me off. is that something that happens with low iron or low vitamin D or could that be caused by the high dosage of Vitamin D that I’m taking?Or due to the occasional headaches? Also working on trying to get better sleep with the occasional children wake ups, could lack of sleep cause this?Can you also extend my work from home days which ends Dec 6 for up to two additional months and then we can re-evaluate towards that time again depending on how I’m feeling so that I don’t have to keep bothering you.Thanks again,Punam\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Punam,Sure, you can take D3. The D2 is at the replacement dose is built into our system as the automatic rx, but both are fine. I sent in a new rx for D3 if you wish to do that one.I haven't seen light sensitivity in any other patients to vit D replacement, and it's not listed on the possible averse reactions (for either vit D or iron). If it persists, I would start with an eye doctor for evaluation.Extended work from home note sent to extend until Feb 7th (since that's a Friday.)Let me know if that works for you.-Best, Dr. Chern \n", + "----------------------------------------\n", + "idx: 262696\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! One more thing, I saw your note for work to be able to take some time off. However, I was more looking to be able to work from home for a few weeks or until the iron and D start taking effect. Hopefully making my headaches go away and me feeling more balanced. I had mentioned during my visit I was feeling inbalanced…now we know why. However my work requires a form to be filled out for that. Would you be able to assist?Thanks again,Punam\n", + "----------------------------------------\n", + "Provider Response by CHERN, ANNIE BERTHA-CHAO:\n", + "Punam, no problem, I filled out the form (for physical impairment with symptoms of severe fatigue, weakness, etc.) and said to allow for remote work from 11/6/24 - 12/6/24 - with reeval after 30 days.Please let me know if that is Ok.I have put the form in your chart for scanning and then the office should contact you to pick-up at front desk.-Best, Dr. Chern \n", + "----------------------------------------\n", + "idx: 262695\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Should I be concerned with any of the other test results as I saw some were under and some over or will taking D and iron normalize everything else?Should D be taken with k2? A family member who is a physician in the Bay Area mentioned that it helps to move calcium away from arteries?Should iron be taken with vitamin c? For better absorption? Thanks again,Punam\n", + "----------------------------------------\n", + "Provider Response by CHERN, ANNIE BERTHA-CHAO:\n", + "Yes some of the abnormal CBC and iron indices should improve as iron levels come up.Most people don't have a problem with Vit D by itself; and most people seem to get adequate levels of vitamin Ks through diet. Deficiency is very rare so I have never actually prescribed vit K formulations as a supplement.Vit C can help the absorption of iron , yes.Best, Dr. Chern \n", + "----------------------------------------\n", + "idx: 262694\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Punam Patel, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "Provider Response by CHERN, ANNIE BERTHA-CHAO:\n", + "No response\n", + "----------------------------------------\n", + "idx: 262693\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Vitamin D, 25-Hydroxyvitamin resulted on 11/7/24, 6:03 AM...Hi Dr. Chern,Is it okay for me to start taking the Vitamin D today? Or should I wait for the other tests to come in that you requested additional labs for?Should I pick up iron pills and start taking 1? Or wait for lab results?Also are you able to write me a doctors note. I’ve taken time off since Wednesday and maybe a few days next week as well.Thanks,Punam\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Punam Patel, We have received your message requesting medical advice. I will forward your message on to your clinician for review. You can usually expect a response within 3 business days. If your clinician finds your concerns are beyond the scope of what we can address through MyHealth, we'll contact you to schedule a video or in-office visit. If your concern cannot wait 3 business days, please call our office at 408-995-5453. Sincerely, Janet MunozYour CareTeam at Family Medicine Associates San Jose \n", + "----------------------------------------\n", + "2025-06-17 14:14:13,118 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:13,119 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:13,120 - ✅ similarity: 0.6638\n", + "2025-06-17 14:14:13,121 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Doctor DangI have completed the vitamin D high dose. Can you please order a lab work in stanford labs for me - so that you can suggest me next steps.Thanks- Ameya\n", + "2025-06-17 14:14:13,123 - Provider's response to this similar message: Hi Ameya P GhatpandeMy name is Agnes and I am helping cover Dr. Dang's inbox while she is out of the office. I reviewed her last message to you and she wanted you to start daily vitamin D3 supplement found over the counter of 1000 to 2000 units a day. She then wanted a re-check of vitamin D 6 months from your last blood draw (due March 2025) I have placed a lab order to be released in March - please complete your vitamin D check at that timeTake care, Agnes Leung, PA\n", + "2025-06-17 14:14:13,124 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:13,130 - Thread ID: 253838889\n", + "--------------------------------------------------------------------------------\n", + "idx: 88980\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor DangI have completed the vitamin D high dose. Can you please order a lab work in stanford labs for me - so that you can suggest me next steps.Thanks- Ameya\n", + "----------------------------------------\n", + "Provider Response by FMASJ CARE TEAM POOL:\n", + "Hi Ameya P GhatpandeMy name is Agnes and I am helping cover Dr. Dang's inbox while she is out of the office. I reviewed her last message to you and she wanted you to start daily vitamin D3 supplement found over the counter of 1000 to 2000 units a day. She then wanted a re-check of vitamin D 6 months from your last blood draw (due March 2025) I have placed a lab order to be released in March - please complete your vitamin D check at that timeTake care, Agnes Leung, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:13,131 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:13,715 - Original Message:\n", + "2025-06-17 14:14:13,716 - original_query_message: Hi Zhi: Since my appointment two weeks ago I went off the amlodipine to see my BP levels unmedicated. The last date I took the amlodipine 10 mg was 11/20, and since then I've taken my BP right after I wake up and then again in the afternoon or evening. In the two weeks my BP is typically ~135/88. A few times the systolic was above 140 (but not above 145), and would typically be under that threshold when I took it again a minute later. More commonly the diastolic was the one out of the desired range (but not above 93) but that too would come down. Do you think I still need medication and should start the Micardis you prescribed?\n", + "2025-06-17 14:14:15,001 - Query Parameters:\n", + "2025-06-17 14:14:15,003 - query_message: Hey Dr. Li,I wanted to give you an update since we last spoke about my blood pressure medication. After finishing my last dose of amlodipine (10 mg) about two weeks ago, I’ve been checking my BP every morning and evening just to track where I’m at without any meds. Most days, my readings have floated around 132/85, though there have been a couple of times where the top number crept slightly over 140—never past 145 though, and usually it came back down when I rechecked it after resting a bit. I’ve noticed that the bottom number is often a bit high—sometimes between 90 and 92—but again, it tends to settle down if I relax for a few minutes.I haven’t had any headaches or dizziness, but I do sometimes feel more tense or anxious lately, which might be affecting my numbers. I remember you mentioned possibly starting Micardis if my BP didn’t stay within range off medication, but I’m wondering if these occasional spikes mean I should go ahead and start, or if it’s safe to wait a little longer and keep monitoring for now.What do you think—is it better to be cautious and begin the new prescription, or would you suggest tracking things a bit longer first? I’m trying to avoid unnecessary meds, but also don’t want to risk long-term problems. Thank you!\n", + "2025-06-17 14:14:15,005 - receiver: TSUN, ZHI-FANG\n", + "2025-06-17 14:14:15,014 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:14:15,015 - specialty: Primary Care\n", + "2025-06-17 14:14:15,518 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:15,520 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:15,520 - ✅ similarity: 0.8955\n", + "2025-06-17 14:14:15,522 - Sender: CORRAL, ANDREA [ S0333309] -> the retrieved similar message : Hi Zhi: Since my appointment two weeks ago I went off the amlodipine to see my BP levels unmedicated. The last date I took the amlodipine 10 mg was 11/20, and since then I've taken my BP right after I wake up and then again in the afternoon or evening. In the two weeks my BP is typically ~135/88. A few times the systolic was above 140 (but not above 145), and would typically be under that threshold when I took it again a minute later. More commonly the diastolic was the one out of the desired range (but not above 93) but that too would come down. Do you think I still need medication and should start the Micardis you prescribed?\n", + "2025-06-17 14:14:15,525 - Provider's response to this similar message: Hi Haley,Thanks for the update. It sounds like your blood pressures are at the borderline level between lifestyle modification or medication. There is a debate of blood pressure goal of <140/90 for in-office readings or <135/85 for at home readings. It would be based off your preference at this point and we can revisit annually.It's interesting that you were on such a high dose of amlodipine without much blood pressure change. If you'd like to be on a blood pressure medicine for the kidney protective aspect, after seeing your readings off medication, a lower dose of telmisartan 20 mg or lisinopril 5 mg may be more appropriate.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:14:15,527 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:15,538 - Thread ID: 252172835\n", + "--------------------------------------------------------------------------------\n", + "idx: 160667\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Zhi. I’d ultimately like to move away from medication so I think I’ll do so. I’ll continue monitoring my BP and reach out if there’s any meaningful change.Haley\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Haley,That sounds good like a good plan. Keep me updated if things change.Happy holidays!Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "idx: 160666\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Zhi: Since my appointment two weeks ago I went off the amlodipine to see my BP levels unmedicated. The last date I took the amlodipine 10 mg was 11/20, and since then I've taken my BP right after I wake up and then again in the afternoon or evening. In the two weeks my BP is typically ~135/88. A few times the systolic was above 140 (but not above 145), and would typically be under that threshold when I took it again a minute later. More commonly the diastolic was the one out of the desired range (but not above 93) but that too would come down. Do you think I still need medication and should start the Micardis you prescribed?\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Haley,Thanks for the update. It sounds like your blood pressures are at the borderline level between lifestyle modification or medication. There is a debate of blood pressure goal of <140/90 for in-office readings or <135/85 for at home readings. It would be based off your preference at this point and we can revisit annually.It's interesting that you were on such a high dose of amlodipine without much blood pressure change. If you'd like to be on a blood pressure medicine for the kidney protective aspect, after seeing your readings off medication, a lower dose of telmisartan 20 mg or lisinopril 5 mg may be more appropriate.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:14:15,539 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:15,540 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:15,540 - ✅ similarity: 0.6751\n", + "2025-06-17 14:14:15,541 - Sender: GROSS, LAURA [ S0040927] -> the retrieved similar message : Blood pressure up148/9358 pulseWent back on medsIs it normal to go up and down like this?Should I stay on meds unless I’m consistently below 130?\n", + "2025-06-17 14:14:15,542 - Provider's response to this similar message: Hi Gordon, As discussed, it's a good idea to see the trend of how your blood pressure is going. If it is mildly elevated, please re-check after sitting for 5 minutes. Please send in 14 numbers over the period of a week or 2, if >50% of those are >130/80 we can restart you on the lower dose of the losartan.I usually have my patients write down a blood pressure from the morning prior to taking their blood pressure medicine and another reading sometime in the afternoon. The important point is to re-check it after 5 minutes if you have an elevated reading. It's easiest for me or for Dr. Juarez-Reyes to review all the 14 readings together rather than with daily messages. Best, Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:14:15,543 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:15,545 - Thread ID: 248387163\n", + "--------------------------------------------------------------------------------\n", + "idx: 354460\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "GotchaWill do\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 354459\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Blood pressure up148/9358 pulseWent back on medsIs it normal to go up and down like this?Should I stay on meds unless I’m consistently below 130?\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Gordon, As discussed, it's a good idea to see the trend of how your blood pressure is going. If it is mildly elevated, please re-check after sitting for 5 minutes. Please send in 14 numbers over the period of a week or 2, if >50% of those are >130/80 we can restart you on the lower dose of the losartan.I usually have my patients write down a blood pressure from the morning prior to taking their blood pressure medicine and another reading sometime in the afternoon. The important point is to re-check it after 5 minutes if you have an elevated reading. It's easiest for me or for Dr. Juarez-Reyes to review all the 14 readings together rather than with daily messages. Best, Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:14:15,545 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:15,546 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:15,547 - ✅ similarity: 0.6747\n", + "2025-06-17 14:14:15,547 - Sender: AQUINO ORTIZ, ALONDRA [ S0362223] -> the retrieved similar message : Thanks Zhi. I’d ultimately like to move away from medication so I think I’ll do so. I’ll continue monitoring my BP and reach out if there’s any meaningful change.Haley\n", + "2025-06-17 14:14:15,548 - Provider's response to this similar message: Hi Haley,That sounds good like a good plan. Keep me updated if things change.Happy holidays!Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:14:15,549 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:15,550 - Thread ID: 252172835\n", + "--------------------------------------------------------------------------------\n", + "idx: 160667\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks Zhi. I’d ultimately like to move away from medication so I think I’ll do so. I’ll continue monitoring my BP and reach out if there’s any meaningful change.Haley\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Haley,That sounds good like a good plan. Keep me updated if things change.Happy holidays!Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "idx: 160666\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Zhi: Since my appointment two weeks ago I went off the amlodipine to see my BP levels unmedicated. The last date I took the amlodipine 10 mg was 11/20, and since then I've taken my BP right after I wake up and then again in the afternoon or evening. In the two weeks my BP is typically ~135/88. A few times the systolic was above 140 (but not above 145), and would typically be under that threshold when I took it again a minute later. More commonly the diastolic was the one out of the desired range (but not above 93) but that too would come down. Do you think I still need medication and should start the Micardis you prescribed?\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Haley,Thanks for the update. It sounds like your blood pressures are at the borderline level between lifestyle modification or medication. There is a debate of blood pressure goal of <140/90 for in-office readings or <135/85 for at home readings. It would be based off your preference at this point and we can revisit annually.It's interesting that you were on such a high dose of amlodipine without much blood pressure change. If you'd like to be on a blood pressure medicine for the kidney protective aspect, after seeing your readings off medication, a lower dose of telmisartan 20 mg or lisinopril 5 mg may be more appropriate.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:14:15,551 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:15,552 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:15,552 - ✅ similarity: 0.6111\n", + "2025-06-17 14:14:15,553 - Sender: AQUINO ORTIZ, ALONDRA [ S0362223] -> the retrieved similar message : Gabriela: Here are 3 BP readings from last month. Couple of notes to pass on to Zhi: I've been working out and on a keto-based diet since early August. Unhappy with results, possibly due to being on prednisone, I began taking weekly Lipo-C shots in September. My understanding is they may account for my lower blood pressure readings as does the 30 pounds I've lost. The readings were taken by a nurse at the center.11/27 108/8811/20 112/8211/07. 116/78Best,Kimberly\n", + "2025-06-17 14:14:15,554 - Provider's response to this similar message: Hi Kimberly,Keto is definitely a difficult diet to keep, but glad to hear about the 30 lb weight loss. Keep up the good work, gradual healthy lifestyle changes is usually the most effective with longer lasting results. Your blood pressures look good.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:14:15,555 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:15,559 - Thread ID: 251418981\n", + "--------------------------------------------------------------------------------\n", + "idx: 199036\n", + "Subject: RE:RE:Hypertension Follow Up\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, can't guarantee I won't succumb to many carbs during the holidays. >;)\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hi Kimberly,Yes, best wishes to us both on that, haha. It is helpful to have a protein rich item at home prior to going to the winter festivities. Hope you enjoy your holiday either way.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "idx: 199035\n", + "Subject: RE:Hypertension Follow Up\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Gabriela: Here are 3 BP readings from last month. Couple of notes to pass on to Zhi: I've been working out and on a keto-based diet since early August. Unhappy with results, possibly due to being on prednisone, I began taking weekly Lipo-C shots in September. My understanding is they may account for my lower blood pressure readings as does the 30 pounds I've lost. The readings were taken by a nurse at the center.11/27 108/8811/20 112/8211/07. 116/78Best,Kimberly\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi Kimberly,Keto is definitely a difficult diet to keep, but glad to hear about the 30 lb weight loss. Keep up the good work, gradual healthy lifestyle changes is usually the most effective with longer lasting results. Your blood pressures look good.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:14:15,560 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:15,561 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:15,562 - ✅ similarity: 0.5898\n", + "2025-06-17 14:14:15,562 - Sender: CORRAL, ANDREA [ S0333309] -> the retrieved similar message : Hey, thank you for refilling it, and increasing to 1mg. As of late, my symptoms seem to have leveled out and my GI system seems to be somewhat normalizing, which is perfect for increasing the dosage. My weight, from 11/3 to 12/15, has a decrease of 5.3 pounds (with fluctuations within that time frame, of course). BPs are as follows:11/25: 135/8411/29: 138/8812/1: 133/8412/2: 138/8112/14: 137/8712/15: 138/88\n", + "2025-06-17 14:14:15,563 - Provider's response to this similar message: Hi David,Thank you for the update. Great to hear you are tolerating well and noticing some weight loss. Keep me updated how you do on this updated dose.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "2025-06-17 14:14:15,564 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:15,566 - Thread ID: 253296268\n", + "--------------------------------------------------------------------------------\n", + "idx: 114018\n", + "Subject: RE:Ozempic refill\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey, thank you for refilling it, and increasing to 1mg. As of late, my symptoms seem to have leveled out and my GI system seems to be somewhat normalizing, which is perfect for increasing the dosage. My weight, from 11/3 to 12/15, has a decrease of 5.3 pounds (with fluctuations within that time frame, of course). BPs are as follows:11/25: 135/8411/29: 138/8812/1: 133/8412/2: 138/8112/14: 137/8712/15: 138/88\n", + "----------------------------------------\n", + "Provider Response by TSUN, ZHI-FANG:\n", + "Hi David,Thank you for the update. Great to hear you are tolerating well and noticing some weight loss. Keep me updated how you do on this updated dose.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "----------------------------------------\n", + "2025-06-17 14:14:15,566 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:15,866 - Original Message:\n", + "2025-06-17 14:14:15,867 - original_query_message: Please advise what type of Medicare will be accepted - Medicare Advantage or Medicare and through which providers. I understand each Dr has their own preference although the Standford website states all Medicare Advantage is accepted. \n", + "2025-06-17 14:14:16,850 - Query Parameters:\n", + "2025-06-17 14:14:16,852 - query_message: Hi there, I'm trying to figure out how my Medicare coverage will work if I need to see a specialist at Stanford. I have Medicare Part A and B, but my plan is through a Medicare Advantage provider (UnitedHealthcare), and I'm hoping to get some advice about whether that will be accepted if I need ongoing treatment. My main concern is that I’ve been having persistent muscle weakness and fatigue, and my primary doctor thinks I might need to see a neurologist at Stanford for more testing. Would you happen to know if all the neurologists at Stanford accept Medicare Advantage plans, or does it depend on the doctor? I read somewhere that most plans are accepted, but I just want to make sure before I go through the process of getting a referral and possibly running into unexpected costs. Thanks in advance!\n", + "2025-06-17 14:14:16,853 - receiver: FMSLG FRONT DESK ADMIN POOL\n", + "2025-06-17 14:14:16,854 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:14:16,856 - specialty: Family Medicine\n", + "2025-06-17 14:14:17,273 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:17,275 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:17,277 - ✅ similarity: 0.6797\n", + "2025-06-17 14:14:17,278 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : I'm thinking of going to the original Medicare plan plus Humana as my supplement. Is this insurance accepted by Stanford?\n", + "2025-06-17 14:14:17,280 - Provider's response to this similar message: Good morning Ms. Price,Medicare and Humana supplement should be ok. Please contact our insurance verification team. They might be able to clarify this question phone number 866-724-4445.Best,FMSLG Team\n", + "2025-06-17 14:14:17,282 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:17,289 - Thread ID: 249645681\n", + "--------------------------------------------------------------------------------\n", + "idx: 289950\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I'm thinking of going to the original Medicare plan plus Humana as my supplement. Is this insurance accepted by Stanford?\n", + "----------------------------------------\n", + "Provider Response by FMSLG FRONT DESK ADMIN POOL:\n", + "Good morning Ms. Price,Medicare and Humana supplement should be ok. Please contact our insurance verification team. They might be able to clarify this question phone number 866-724-4445.Best,FMSLG Team\n", + "----------------------------------------\n", + "2025-06-17 14:14:17,291 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:17,292 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:17,293 - ✅ similarity: 0.6651\n", + "2025-06-17 14:14:17,293 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Please advise what type of Medicare will be accepted - Medicare Advantage or Medicare and through which providers. I understand each Dr has their own preference although the Standford website states all Medicare Advantage is accepted. \n", + "2025-06-17 14:14:17,294 - Provider's response to this similar message: Good afternoon Renee,We will be out of network for all Medicare Advantage plans. You can also contact Mosaic Health and Life insurance services at 408-763-4141 for guidance.Best,FMSLG Team\n", + "2025-06-17 14:14:17,295 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:17,297 - Thread ID: 251511583\n", + "--------------------------------------------------------------------------------\n", + "idx: 194607\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Who is Mosaic Health?I am trying to find out what Medicare insurance plans Dr Shah takes. Please let me know. Thank you\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 194606\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please advise what type of Medicare will be accepted - Medicare Advantage or Medicare and through which providers. I understand each Dr has their own preference although the Standford website states all Medicare Advantage is accepted. \n", + "----------------------------------------\n", + "Provider Response by FMSLG FRONT DESK ADMIN POOL:\n", + "Good afternoon Renee,We will be out of network for all Medicare Advantage plans. You can also contact Mosaic Health and Life insurance services at 408-763-4141 for guidance.Best,FMSLG Team\n", + "----------------------------------------\n", + "2025-06-17 14:14:17,298 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:17,299 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:17,299 - ✅ similarity: 0.6132\n", + "2025-06-17 14:14:17,300 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : I need to change my Medicare Advantage Plan for 2025.Who can I contact to find out which insurances Dr. Chaudhary accepts so I can remain under her care?Please advise. Thank you for your assistance.\n", + "2025-06-17 14:14:17,301 - Provider's response to this similar message: Good morning Theresita,You can contact Affinity member services team at 888-309-2221 Monday- Friday 8 am- 6 pm they can connect you with someone that can assist with insurance questions.Best,FMSLG Team\n", + "2025-06-17 14:14:17,302 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:17,304 - Thread ID: 250093232\n", + "--------------------------------------------------------------------------------\n", + "idx: 267005\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I need to change my Medicare Advantage Plan for 2025.Who can I contact to find out which insurances Dr. Chaudhary accepts so I can remain under her care?Please advise. Thank you for your assistance.\n", + "----------------------------------------\n", + "Provider Response by FMSLG FRONT DESK ADMIN POOL:\n", + "Good morning Theresita,You can contact Affinity member services team at 888-309-2221 Monday- Friday 8 am- 6 pm they can connect you with someone that can assist with insurance questions.Best,FMSLG Team\n", + "----------------------------------------\n", + "2025-06-17 14:14:17,305 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:17,305 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:17,306 - ✅ similarity: 0.5345\n", + "2025-06-17 14:14:17,306 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Dr. Shah,Our insurance, UnitedHealthcare, won’t be available next year. Please advise which insurance coverage has you as in-network physician.Thank you,Vickie Erdei\n", + "2025-06-17 14:14:17,307 - Provider's response to this similar message: Good Morning Vickie, Please contact an agent at 408 763 4141, they can give your further advice on Medicare insurances. Thank You-AraceliPatient Service Representative \n", + "2025-06-17 14:14:17,307 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:17,309 - Thread ID: 250662340\n", + "--------------------------------------------------------------------------------\n", + "idx: 238535\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please let me know if the practice accepts this plan: Aetna Medicare PPO Thank you!\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Dear VICKIE, Please, call to the office front desk for insurance issue, 408-340-5700Feel free to reach out to the clinic if you have any questions or concerns.Kindly, Alla Rozova, PA-C assisting Dr.Shah, Rina Biren \n", + "----------------------------------------\n", + "idx: 238534\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Shah,Our insurance, UnitedHealthcare, won’t be available next year. Please advise which insurance coverage has you as in-network physician.Thank you,Vickie Erdei\n", + "----------------------------------------\n", + "Provider Response by FMSLG FRONT DESK ADMIN POOL:\n", + "Good Morning Vickie, Please contact an agent at 408 763 4141, they can give your further advice on Medicare insurances. Thank You-AraceliPatient Service Representative \n", + "----------------------------------------\n", + "2025-06-17 14:14:17,310 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:17,310 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:17,311 - ✅ similarity: 0.5014\n", + "2025-06-17 14:14:17,312 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Hi Dr Shah - I need to know if you take/accept Medi-Cal. I was laid-off at the end of June & I have yet to find a new job and thus been without insurance. If not, could you or someone from the office let me know what I would need to pay for an office visit. Thank you,Pam Lomeli\n", + "2025-06-17 14:14:17,313 - Provider's response to this similar message: Good morning Pamela,We are not contracted with Medi-cal and we would not be able to take you as a cash pay patient. Please contact your insurance company to find a provider with in your insurance plan.BestFMSLG Team\n", + "2025-06-17 14:14:17,314 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:17,318 - Thread ID: 254799706\n", + "--------------------------------------------------------------------------------\n", + "idx: 44308\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This is very unfortunate. :-(\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 44307\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Shah - I need to know if you take/accept Medi-Cal. I was laid-off at the end of June & I have yet to find a new job and thus been without insurance. If not, could you or someone from the office let me know what I would need to pay for an office visit. Thank you,Pam Lomeli\n", + "----------------------------------------\n", + "Provider Response by FMSLG FRONT DESK ADMIN POOL:\n", + "Good morning Pamela,We are not contracted with Medi-cal and we would not be able to take you as a cash pay patient. Please contact your insurance company to find a provider with in your insurance plan.BestFMSLG Team\n", + "----------------------------------------\n", + "2025-06-17 14:14:17,319 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:17,964 - Original Message:\n", + "2025-06-17 14:14:17,966 - original_query_message: Hello Dr. Luong,As previously discussed, I am planning to get my A1c test done soon in order to then ascertain the continuation or modification of the Mounjaro medication. As part of annual checkup, could you please order these additional labs for me, so I can get them done in one visit, and then schedule a follow up annual exam with you? Last time I did most of these tests was in September 2023, so its been a while and I would like to get a comparative assessment of where things stand. I understand some of these tests might not be covered by insurance, and I am ok to pay for them out of pocket.Tests I would like to get done: ApoB, Metabolic Panel, Vit D, Testosterone, CBC, Lipid Profile, hs-CRP, HSBG, Creatinine, Ferritin, MagnesiumThank you and wish you a Happy New Year!Abhi\n", + "2025-06-17 14:14:19,616 - Query Parameters:\n", + "2025-06-17 14:14:19,617 - query_message: Hi Dr. Luong, I hope you’re doing well! I’m getting ready to come in for my regular checkup soon, and I wanted to check with you about something. Since it’s been nearly a year since my last set of labs, I’d really like to get a good look at everything again, especially since I’ve noticed a bit more fatigue and muscle cramps lately (not sure if it’s stress or something else, but I want to stay on top of things). I’m also still taking Mounjaro, and am curious how my A1c and other markers are holding up—would it make sense to discuss adjusting the dosage at my next appointment depending on my results? Would you be able to put in orders for the labs ahead of my visit so I can get them all done at once? In addition to the A1c, I was thinking it could be helpful to check things like my Vit D, magnesium, ferritin, testosterone, creatinine, ApoB, basic metabolic panel, lipid panel, hs-CRP, SHBG, and a CBC—if you think anything else would be useful, please let me know! I realize my insurance might not cover all of these, but I’m fine to pick up the tab myself for the ones that aren’t.Thanks so much for your help, and looking forward to catching up at my appointment! Best, Roger\n", + "2025-06-17 14:14:19,618 - receiver: SMPPCPLT CARE TEAM POOL\n", + "2025-06-17 14:14:19,621 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:14:19,623 - specialty: Primary Care\n", + "2025-06-17 14:14:21,286 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:21,288 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:21,289 - ✅ similarity: 0.8716\n", + "2025-06-17 14:14:21,290 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Luong,As previously discussed, I am planning to get my A1c test done soon in order to then ascertain the continuation or modification of the Mounjaro medication. As part of annual checkup, could you please order these additional labs for me, so I can get them done in one visit, and then schedule a follow up annual exam with you? Last time I did most of these tests was in September 2023, so its been a while and I would like to get a comparative assessment of where things stand. I understand some of these tests might not be covered by insurance, and I am ok to pay for them out of pocket.Tests I would like to get done: ApoB, Metabolic Panel, Vit D, Testosterone, CBC, Lipid Profile, hs-CRP, HSBG, Creatinine, Ferritin, MagnesiumThank you and wish you a Happy New Year!Abhi\n", + "2025-06-17 14:14:21,291 - Provider's response to this similar message: Dear Abhijeet Kunte,Thank you for reaching out with your request for routine physical labs prior to your visit. We understand your concerns and want to assure you that our main priority is to provide you with the best possible care. According to our policy and insurance guidelines, routine physical labs are usually ordered during your visit. This allows the doctor to tailor the tests to your specific health needs after a comprehensive evaluation and ensures that all necessary tests are ordered at once. Additionally, insurance companies sometimes deny claims if labs are done outside of a certain time frame, so ordering them during the appointment helps avoid potential billing issues. We appreciate your understanding and look forward to assisting you at your visit.Best regards, Kristina Saez, MA \n", + "2025-06-17 14:14:21,295 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:21,302 - Thread ID: 254792657\n", + "--------------------------------------------------------------------------------\n", + "idx: 44680\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Luong,As previously discussed, I am planning to get my A1c test done soon in order to then ascertain the continuation or modification of the Mounjaro medication. As part of annual checkup, could you please order these additional labs for me, so I can get them done in one visit, and then schedule a follow up annual exam with you? Last time I did most of these tests was in September 2023, so its been a while and I would like to get a comparative assessment of where things stand. I understand some of these tests might not be covered by insurance, and I am ok to pay for them out of pocket.Tests I would like to get done: ApoB, Metabolic Panel, Vit D, Testosterone, CBC, Lipid Profile, hs-CRP, HSBG, Creatinine, Ferritin, MagnesiumThank you and wish you a Happy New Year!Abhi\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Dear Abhijeet Kunte,Thank you for reaching out with your request for routine physical labs prior to your visit. We understand your concerns and want to assure you that our main priority is to provide you with the best possible care. According to our policy and insurance guidelines, routine physical labs are usually ordered during your visit. This allows the doctor to tailor the tests to your specific health needs after a comprehensive evaluation and ensures that all necessary tests are ordered at once. Additionally, insurance companies sometimes deny claims if labs are done outside of a certain time frame, so ordering them during the appointment helps avoid potential billing issues. We appreciate your understanding and look forward to assisting you at your visit.Best regards, Kristina Saez, MA \n", + "----------------------------------------\n", + "idx: 44679\n", + "Subject: RE:Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "understood. I have scheduled an annual physical for March 6th, but if something opens up sooner, please let me know.I live 10 mins away from the clinic.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:14:21,303 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:21,304 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:21,306 - ✅ similarity: 0.7749\n", + "2025-06-17 14:14:21,306 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Koh, I have a physical check appointment with you on Dec 10th. Can you please order the blood work before I see you. Can you please order Vit D, B12 and A1C along with complete CBC to Labcorp.RegardsShrinivas\n", + "2025-06-17 14:14:21,307 - Provider's response to this similar message: Hi Shrinivasraj Muddey Our office protocol has changed your labs will be ordered during the time of your appointment now, in case there needs to be any changes Thank you,Herlinda G. MAStanford Health CareStanford Medicine Partners5568 Gibraltar DrPleasanton, CA 94588925-534-6500Fax: 925-263-5673\n", + "2025-06-17 14:14:21,308 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:21,312 - Thread ID: 251357749\n", + "--------------------------------------------------------------------------------\n", + "idx: 202159\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Koh, I have a physical check appointment with you on Dec 10th. Can you please order the blood work before I see you. Can you please order Vit D, B12 and A1C along with complete CBC to Labcorp.RegardsShrinivas\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Shrinivasraj Muddey Our office protocol has changed your labs will be ordered during the time of your appointment now, in case there needs to be any changes Thank you,Herlinda G. MAStanford Health CareStanford Medicine Partners5568 Gibraltar DrPleasanton, CA 94588925-534-6500Fax: 925-263-5673\n", + "----------------------------------------\n", + "2025-06-17 14:14:21,312 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:21,313 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:21,313 - ✅ similarity: 0.7627\n", + "2025-06-17 14:14:21,314 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Dr. Rangwala. I scheduled a physical with you for Feb 6th. I'd like to get labs done before the appt so we can review together during my appt. Do you mind ordering? I haven't had labs or a physical is a long time. Also, my cardiologist who was following me moved to a different medical group and I am looking for a new cardiologist to manage my hypertension. My prescription for Metoprolol is expired and I am running low. Can you refer me to a new cardiologist please? Thank you for your help! I look forward to seeing you next month.\n", + "2025-06-17 14:14:21,314 - Provider's response to this similar message: Hi Hanna,We have a policy we no longer order labs before physical appointment. Dr. Rangwala will order at the time of your visit. Please let us know if you need anything else. Thank you.LaTeisha Shark MA (Lala)Stanford Medicine Partners5568 Gibraltar Dr. Pleasanton CA 94588925-534-6500 PH925-263-5676 FX\n", + "2025-06-17 14:14:21,315 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:21,317 - Thread ID: 255803575\n", + "--------------------------------------------------------------------------------\n", + "idx: 1524\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can I get a referral for a cardiologist? Or can Dr rangwala manage my blood pressure medication?\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Sure, she can manage your blood pressure medications. At your appointment if she feels its necessary to refer to cardiologist she will.\n", + "----------------------------------------\n", + "idx: 1523\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Rangwala. I scheduled a physical with you for Feb 6th. I'd like to get labs done before the appt so we can review together during my appt. Do you mind ordering? I haven't had labs or a physical is a long time. Also, my cardiologist who was following me moved to a different medical group and I am looking for a new cardiologist to manage my hypertension. My prescription for Metoprolol is expired and I am running low. Can you refer me to a new cardiologist please? Thank you for your help! I look forward to seeing you next month.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Hanna,We have a policy we no longer order labs before physical appointment. Dr. Rangwala will order at the time of your visit. Please let us know if you need anything else. Thank you.LaTeisha Shark MA (Lala)Stanford Medicine Partners5568 Gibraltar Dr. Pleasanton CA 94588925-534-6500 PH925-263-5676 FX\n", + "----------------------------------------\n", + "2025-06-17 14:14:21,317 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:21,318 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:21,318 - ✅ similarity: 0.7608\n", + "2025-06-17 14:14:21,319 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Kwong,I’m planning on getting my bloodwork this week. I was on MyHealth app and noted you ordered PSA and creatinine. I’d also like Mr A1C, cholesterol, liver function, etc checked. Can you verify I’m good to go in tomorrow?\n", + "2025-06-17 14:14:21,319 - Provider's response to this similar message: From the Stanford Medicine Partners Pleasanton Clinical Care Team, on behalf of Donna Kwong, MD:Hello James,Thanks for reaching out with your request for lab work to check-up on your diabetes and cholesterol levels. I've placed orders for your A1C, lipid panel, and metabolic panel (checks liver and kidneys). You may complete along with your prior PSA and urine order.Take care,Melissa Song, DNP, FNP-BC\n", + "2025-06-17 14:14:21,320 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:21,322 - Thread ID: 250440645\n", + "--------------------------------------------------------------------------------\n", + "idx: 249217\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Kwong,I’m planning on getting my bloodwork this week. I was on MyHealth app and noted you ordered PSA and creatinine. I’d also like Mr A1C, cholesterol, liver function, etc checked. Can you verify I’m good to go in tomorrow?\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "From the Stanford Medicine Partners Pleasanton Clinical Care Team, on behalf of Donna Kwong, MD:Hello James,Thanks for reaching out with your request for lab work to check-up on your diabetes and cholesterol levels. I've placed orders for your A1C, lipid panel, and metabolic panel (checks liver and kidneys). You may complete along with your prior PSA and urine order.Take care,Melissa Song, DNP, FNP-BC\n", + "----------------------------------------\n", + "2025-06-17 14:14:21,323 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:21,323 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:21,324 - ✅ similarity: 0.7558\n", + "2025-06-17 14:14:21,325 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Cheremie,Thanks for your advice. In checking ORDER & REFERRAL from MyHealth, i wonder if Dr Luong’s standing orders for Lepid panel and A1C dated 5/23 and 4/26 respectfully are still good since I had also taken these 2 tests in August. By the way, when will Dr Luong be back to the office?Liza Chow\n", + "2025-06-17 14:14:21,326 - Provider's response to this similar message: Lab orders are usually good for a year. \n", + "2025-06-17 14:14:21,327 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:21,332 - Thread ID: 253272924\n", + "--------------------------------------------------------------------------------\n", + "idx: 114763\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cheremie,Thanks for your advice. In checking ORDER & REFERRAL from MyHealth, i wonder if Dr Luong’s standing orders for Lepid panel and A1C dated 5/23 and 4/26 respectfully are still good since I had also taken these 2 tests in August. By the way, when will Dr Luong be back to the office?Liza Chow\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Lab orders are usually good for a year. \n", + "----------------------------------------\n", + "idx: 114762\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. LuongI understand you have scheduled for me a lab test for Vitamin D but am not sure when I should get the lepid panel and HgA1C tests. In any case, can I do all 3 tests at the same time?Thank you for your kind attention. Liza Chow\n", + "----------------------------------------\n", + "Provider Response by LUONG, JACKY:\n", + "Hello - Dr. Luong is currently out of the office.Yes, you can do all three tests (Vitamin D, lipid panel, and HgA1C) at the same time. You can complete the labs at your convenience within the next 1-2 months.Make sure you let the lab know you'd like all 3 tests done otherwise they may only draw for the most recent test ordered.Kind regards,Chereamie Scott, FNP-CNurse Practitioner\n", + "----------------------------------------\n", + "2025-06-17 14:14:21,332 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:21,844 - Original Message:\n", + "2025-06-17 14:14:21,845 - original_query_message: Hi Dr. Chung,I am writing to request a prescription transfer. Could you please send my rosuvastatin (Crestor) 10 mg tablet to the following pharmacy? I ran into some issues with Optum Home Delivery.Amazon Pharmacy Home Delivery4500 S Pleasant Valley Rd, Suite 201, Austin, TX 78744Phone: 855-206-3605Fax: 512-884-5981Thank you very much!\n", + "2025-06-17 14:14:22,863 - Query Parameters:\n", + "2025-06-17 14:14:22,866 - query_message: Hi Dr. Chung,I hope you’re doing well. I’m reaching out because I’m almost out of my cholesterol medication (rosuvastatin 10 mg), and I’ve been having trouble getting my refill through the mail lately—my last order from my usual pharmacy got delayed, and I’m worried about missing doses. Is there any way you could send my prescription to Amazon Pharmacy’s home delivery service instead? Their shipping seems a bit more reliable for me, and I want to make sure I stay on track with my medication, especially since my cholesterol numbers were high last time. Also, I’ve noticed a bit more leg soreness recently and want to be sure it’s not related to missing any meds. Here’s the info for Amazon Pharmacy:4500 S Pleasant Valley Rd, Suite 201, Austin, TX 78744 Phone: 855-206-3605 Fax: 512-884-5981Thank you so much for your help—I really appreciate it!\n", + "2025-06-17 14:14:22,867 - receiver: PORTOLA VALLEY RNC POOL\n", + "2025-06-17 14:14:22,868 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:14:22,869 - specialty: Primary Care\n", + "2025-06-17 14:14:23,212 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:23,213 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:23,214 - ✅ similarity: 0.8003\n", + "2025-06-17 14:14:23,215 - Sender: ALPER, DIANA [ S0355816] -> the retrieved similar message : Hi Dr. Chung,I am writing to request a prescription transfer. Could you please send my rosuvastatin (Crestor) 10 mg tablet to the following pharmacy? I ran into some issues with Optum Home Delivery.Amazon Pharmacy Home Delivery4500 S Pleasant Valley Rd, Suite 201, Austin, TX 78744Phone: 855-206-3605Fax: 512-884-5981Thank you very much!\n", + "2025-06-17 14:14:23,218 - Provider's response to this similar message: Good morning, Yiming!We have received your request to transfer Crestor prescription to the Amazon pharmacy. A new prescription order is pended for provider's approval. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:23,220 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:23,228 - Thread ID: 253184156\n", + "--------------------------------------------------------------------------------\n", + "idx: 118193\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chung,I am writing to request a prescription transfer. Could you please send my rosuvastatin (Crestor) 10 mg tablet to the following pharmacy? I ran into some issues with Optum Home Delivery.Amazon Pharmacy Home Delivery4500 S Pleasant Valley Rd, Suite 201, Austin, TX 78744Phone: 855-206-3605Fax: 512-884-5981Thank you very much!\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY RNC POOL:\n", + "Good morning, Yiming!We have received your request to transfer Crestor prescription to the Amazon pharmacy. A new prescription order is pended for provider's approval. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:23,229 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:23,230 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:23,230 - ✅ similarity: 0.5956\n", + "2025-06-17 14:14:23,230 - Sender: ALPER, DIANA [ S0355816] -> the retrieved similar message : Hi, Dr. Bajra:Could you send to my pharmacy the prescription refill about my Gabapentin 300 mg please?I have for 5 days only.Thank you so much.Miriam \n", + "2025-06-17 14:14:23,231 - Provider's response to this similar message: Good morning, Miriam!We received a refill request for your Gabapentin 300 mg. Based on our records, this medication has an additional active 90-day refill to it and does not require a new prescription at this time. Please contact your WALGREENS #00324 - DALY CITY, CA - 216 WESTLAKE CTR AT MAYFAIR & JOHN DALY BOULEVARD pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.If you have requested your refill through your pharmacy, thank you! If you have requested your refill by calling or using MyHealth messaging we would also like to take this opportunity to remind you to always contact your pharmacy for refills. Even if there are no refills remaining on your current prescription, the pharmacy will contact us electronically. This is to ensure the most efficient and rapid refill process. To avoid interruptions in your medicines, please contact your pharmacy at least 4 days before you run out of medications as it can take 48-72 business hours to fully process your request. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:23,231 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:23,234 - Thread ID: 252889458\n", + "--------------------------------------------------------------------------------\n", + "idx: 128918\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, Dr. Bajra:Could you send to my pharmacy the prescription refill about my Gabapentin 300 mg please?I have for 5 days only.Thank you so much.Miriam \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY RNC POOL:\n", + "Good morning, Miriam!We received a refill request for your Gabapentin 300 mg. Based on our records, this medication has an additional active 90-day refill to it and does not require a new prescription at this time. Please contact your WALGREENS #00324 - DALY CITY, CA - 216 WESTLAKE CTR AT MAYFAIR & JOHN DALY BOULEVARD pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.If you have requested your refill through your pharmacy, thank you! If you have requested your refill by calling or using MyHealth messaging we would also like to take this opportunity to remind you to always contact your pharmacy for refills. Even if there are no refills remaining on your current prescription, the pharmacy will contact us electronically. This is to ensure the most efficient and rapid refill process. To avoid interruptions in your medicines, please contact your pharmacy at least 4 days before you run out of medications as it can take 48-72 business hours to fully process your request. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:23,235 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:23,236 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:23,236 - ✅ similarity: 0.5503\n", + "2025-06-17 14:14:23,236 - Sender: ALPER, DIANA [ S0355816] -> the retrieved similar message : Dr. Jernick—I am writing as I cannot get my Zepbound sent to me while vacationing in Hawaii because they have my home phone number which I cannot answer as the only way they can verify me.I believe they need my prescribing doctor to change the number from my home number—(650) 327-6541– to my cell phone number (650) 274-4717.Regards,Paul\n", + "2025-06-17 14:14:23,237 - Provider's response to this similar message: Good morning, Paul!Thank you for your time on the phone. What would the Hawaii address be? Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:23,237 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:23,240 - Thread ID: 253041576\n", + "--------------------------------------------------------------------------------\n", + "idx: 123544\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Diana!I think he wanted me to go to 10mg.I would like to move my prescriptions to ExpressScripts, as Medicare does not like CVS anymore.And how do I go about moving all my prescriptions to ExpressScripts?Thanks in advance!Paul\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 123543\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "A miracle happened!It worked!Thanks much!Paul\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Happy Monday!Glad to hear that it worked. Never stop believing in miracles! Kind regards, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 123542\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Jernick—I am writing as I cannot get my Zepbound sent to me while vacationing in Hawaii because they have my home phone number which I cannot answer as the only way they can verify me.I believe they need my prescribing doctor to change the number from my home number—(650) 327-6541– to my cell phone number (650) 274-4717.Regards,Paul\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY RNC POOL:\n", + "Good morning, Paul!Thank you for your time on the phone. What would the Hawaii address be? Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 123541\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Jernick was going to double my Zepbound dosage. When he does that, can he also indicate it to be for my sleep apnea?Regards, Paul\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Good afternoon, Paul!The next dose for Zepbound is going to be 7.5 mg. Though Lilly Direct does not manufacture that dose in a vial. We can try processing for it thorough your insurance. We would need to ask Dr. Jernick for a new prescription. I will see Dr. Jernick in person on Friday and can discuss it with him. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:23,240 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:23,241 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:23,241 - ✅ similarity: 0.5160\n", + "2025-06-17 14:14:23,242 - Sender: ALPER, DIANA [ S0355816] -> the retrieved similar message : Hello dr Angelo I hope everything goes well Please help me shield healthcare need new paperwork to jjevity please I don’t have enough cans for merna thank you so much\n", + "2025-06-17 14:14:23,242 - Provider's response to this similar message: Good afternoon, Viola!Are you currently using Jevity 1.0 or Jevity 1.2? How many boxes do you give a day and how many boxes do you receive in each shipment from Shield? Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:23,242 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:23,245 - Thread ID: 250061594\n", + "--------------------------------------------------------------------------------\n", + "idx: 268637\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon, Viola!Let me ask Dr. Angelo about the recommendations. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "Provider Response by ANGELO, PADEN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 268636\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Diana I hope everything goes well with you. Merna has large solid swollen in her bottom area ( vagina & Anus and buttocks) it’s very stiff. She needs gynaecologist visit ASAP please. Thank you so much \n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Good afternoon, Viola!Let me ask Dr. Angelo about the recommendations. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 268635\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank u so much Diana I received everything for her\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Thank you for letting me know. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 268634\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon I just received 7 days supply to jevity today Thank u so much Diana \n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Good afternoon!I see that Merna is at the hospital. Hope everything is taken care of and she is getting better. Meantime, wanted to let you know that Shield healthcare should be shipping formula out. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 268633\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Diana I calljed shield healthcare to get jevity they told me they will fax dr Angelo to update the jevity R u received the fax from there?\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Good afternoon!Just to let you know that I've contacted Shield Healthcare this afternoon, they have received the documentation that we have faxed them earlier this week, but somehow did not start processing it sooner. I've made sure that they started on the processing as you have only received 7 day curtesy supply. I will follow-up with them again on Monday. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 268632\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Diana I m so sorry I didn’t hear my phone She use jevity 1.2 cal and I give her 4 cans a day Also I received 5 boxes each month Thank u so much about your help.\n", + "----------------------------------------\n", + "Provider Response by ALPER, DIANA:\n", + "Good morning, Viola!The new order was just faxed to the Shield Healthcare. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "idx: 268631\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello dr Angelo I hope everything goes well Please help me shield healthcare need new paperwork to jjevity please I don’t have enough cans for merna thank you so much\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY RNC POOL:\n", + "Good afternoon, Viola!Are you currently using Jevity 1.0 or Jevity 1.2? How many boxes do you give a day and how many boxes do you receive in each shipment from Shield? Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:23,247 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:23,247 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:23,248 - ✅ similarity: 0.5012\n", + "2025-06-17 14:14:23,249 - Sender: ALPER, DIANA [ S0355816] -> the retrieved similar message : Dear Dr Chang:I have filled out a renewal prescription for six Libre2 sensor kits last week to be picked up at the Walgrens pharmacy in downtown Menlo Park. But the prescription is not in yet. I think they need Dr's approval. May you please contact the Menlo Park office to expedite the process please? I think I have about 5 days left on my latest sensor. Thank you.Edwin\n", + "2025-06-17 14:14:23,249 - Provider's response to this similar message: Hi, Edwin!Thank you for your time on the phone. As per our conversation - the 6/14/24 prescription has a full year of refills to it at the WALGREENS #07087 - MENLO PARK, CA - 643 SANTA CRUZ AVE AT CHESTNUT & SANTA CRUZ pharmacy. Please follow-up directly with the pharmacy on sensors' availability. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:23,250 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:23,253 - Thread ID: 249960315\n", + "--------------------------------------------------------------------------------\n", + "idx: 273776\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr Chang:I have filled out a renewal prescription for six Libre2 sensor kits last week to be picked up at the Walgrens pharmacy in downtown Menlo Park. But the prescription is not in yet. I think they need Dr's approval. May you please contact the Menlo Park office to expedite the process please? I think I have about 5 days left on my latest sensor. Thank you.Edwin\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY RNC POOL:\n", + "Hi, Edwin!Thank you for your time on the phone. As per our conversation - the 6/14/24 prescription has a full year of refills to it at the WALGREENS #07087 - MENLO PARK, CA - 643 SANTA CRUZ AVE AT CHESTNUT & SANTA CRUZ pharmacy. Please follow-up directly with the pharmacy on sensors' availability. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:23,253 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:23,742 - Original Message:\n", + "2025-06-17 14:14:23,742 - original_query_message: I have a question about XR Lumbar Spine 3 Views Incl Flexion Extension resulted on 1/7/25, 4:48?PM...I am unable to view/open the x-ray imagesLori Hock\n", + "2025-06-17 14:14:25,212 - Query Parameters:\n", + "2025-06-17 14:14:25,213 - query_message: Hi there, I recently had lumbar spine x-rays done (including some bending/extension images) because I've been having ongoing lower back pain and some stiffness that's been getting worse over the past few months. The test was done last week, but I haven’t been able to access the actual x-ray pictures in my patient portal – it just gives me an error every time I try.Is there any way for me to view these images, or will I need to wait for my follow-up? Also, I’ve started to notice some shooting pain down my left leg, and I’m a bit anxious to know if the scans showed anything out of the ordinary. Should I be concerned while I wait?\n", + "2025-06-17 14:14:25,213 - receiver: SMPPCPLT CARE TEAM POOL\n", + "2025-06-17 14:14:25,214 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:14:25,216 - specialty: Primary Care\n", + "2025-06-17 14:14:26,835 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:26,836 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:26,837 - ✅ similarity: 0.7498\n", + "2025-06-17 14:14:26,838 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about XR Lumbar Spine 3 Views Incl Flexion Extension resulted on 1/7/25, 4:48?PM...I am unable to view/open the x-ray imagesLori Hock\n", + "2025-06-17 14:14:26,841 - Provider's response to this similar message: Hello Lori,You can only view report. You can request for a copy of images.\n", + "2025-06-17 14:14:26,844 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:26,849 - Thread ID: 255844611\n", + "--------------------------------------------------------------------------------\n", + "idx: 522\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about XR Lumbar Spine 3 Views Incl Flexion Extension resulted on 1/7/25, 4:48?PM...I am unable to view/open the x-ray imagesLori Hock\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Lori,You can only view report. You can request for a copy of images.\n", + "----------------------------------------\n", + "2025-06-17 14:14:26,851 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:26,852 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:26,853 - ✅ similarity: 0.6740\n", + "2025-06-17 14:14:26,854 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr KwongI’m just checking to see if we got the x-ray from Roper Saint Francis Hospital. They did send me a link unfortunately I cannot download it. I could only take a screenshot of it which I’m sure the radiologist would not want but just wanted to follow up on this they called. They keep calling to schedule the CT scan which now I do have one scheduled in case I need it. It’s not till December 4 .I did send a follow-up email to Lysa to see if she could request the x-ray again. I guess they keep sending the report but not the physical x-ray. Thank you, Kristin\n", + "2025-06-17 14:14:26,854 - Provider's response to this similar message: Hi Kristin,I left you a voicemail let me know if you have any further questions.Thank youLisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "2025-06-17 14:14:26,855 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:26,858 - Thread ID: 248142182\n", + "--------------------------------------------------------------------------------\n", + "idx: 363385\n", + "Subject: Chest x-ray result\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much!Kristin \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 363384\n", + "Subject: Chest x-ray result\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi MamataI am sorry I’m not sure you’re following up. My question was I had a chest x-ray done when I had the accident in South Carolina? They found a nodule in my left mid lung. We then came back home from South Carolina. Had a chest x-ray done on October 18 at Stanford results from that chest x-ray requested to see the original chest x-ray that was taken on October 11 .The radiologist had requested to see the original x-ray from October 11, which was finally uploaded into my chart last week. I am now wanting that radiologist to review the two x-rays side-by-side to determine if a CT scan is needed. This is what Dr. Kwong had requested if you could please go back and review those notes I would appreciate it .This has nothing to do with my hand x-rays and Dr. Richards Dr. Richards is the orthopedist not a radiologist or chest x-ray specialist .I hope this makes sense . Again, Lisa knows what was needed..Thank you for your time, Kristin\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "From the Stanford Medicine Partners Pleasanton Clinical Care Team, on behalf of Donna Kwong, MD:Hello Kristin,Thanks for providing us with this clarification and sorry for the confusion! I called our Radiology department this morning to put in a request for the Radiologist to compare your recent chest x-ray at Stanford to the one that you completed in South Carolina. Please give the Radiologist a week or so to complete the request / update your report. If you do not hear from us / see your report updated within the next week, please reach out to our office so that we may follow-up with the Radiology department.Take care,Melissa Song, DNP, FNP-BC\n", + "----------------------------------------\n", + "idx: 363383\n", + "Subject: RE: Chest x-ray result\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lisa,Sorry to bother you, but I wanted to check to see if there’s any results from reviewing the x-ray images and if Dr Kwong still think I need to have the CT scan or not.Thank youKristin \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "This is Mamata Patel, FNP, from Donna Kwong, MD's office, responding on their behalf. Hello Kristin,I was able to review your recent right fingers x-ray from 10/29/24 which suggest your fracture alignment has improved and no other significant findings besides mild degenerative changes (arthritis) which is common finding at your age. I also see there is another x-ray order from Dr. Richards which was placed today. In terms for your CT scan question, it is appropriate to wait for your today's x-ray results to determine need for further imagines. You can also discuss this with Dr. Richards since he is your orthopedic doctor and you have an upcoming appointment with him. Let us know if you have any additional questions or concerns.Regards,SMP Pleasanton Clinical Care TeamOffice # 925-534-6500Please note that MyHealth messages are meant for non-urgent concerns that can quickly be answered with a simple email message. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 business days (excluding weekends and holidays)If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "idx: 363382\n", + "Subject: Chest x-ray result\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lisa , I hope you’re doing well. I wanted to see if you were able to have the x-ray uploaded into radiology and if both radiologist and Dr. Kwong were able to compare the two x-rays.Just wanna understand if I still need to do the CT scan. Thank you so much, Kristin \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Good morning Kristin,I had to wait for the image uploading to be complete ( it is now done). I message the radiologist this morning to review images. I will let you know when done.Thank youLisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "idx: 363381\n", + "Subject: RE: Chest x-ray result\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr KwongI’m just checking to see if we got the x-ray from Roper Saint Francis Hospital. They did send me a link unfortunately I cannot download it. I could only take a screenshot of it which I’m sure the radiologist would not want but just wanted to follow up on this they called. They keep calling to schedule the CT scan which now I do have one scheduled in case I need it. It’s not till December 4 .I did send a follow-up email to Lysa to see if she could request the x-ray again. I guess they keep sending the report but not the physical x-ray. Thank you, Kristin\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Kristin,I left you a voicemail let me know if you have any further questions.Thank youLisa Smith MA III, Dr.Kwong's Medical AssistantStanford Medicine Partners5568 Gibraltar DrivePleasanton, CA 94588925-534-6500 Phone925-263-5673 Fax\n", + "----------------------------------------\n", + "2025-06-17 14:14:26,858 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:26,859 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:26,859 - ✅ similarity: 0.6569\n", + "2025-06-17 14:14:26,860 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about XR Lumbar Spine 3 Views Incl Flexion Extension resulted on 11/26/24, 10:49?AM...Hi Dr. Duggal, I am reading my X-ray results. Is this what you expected? Does this change our care plan?\n", + "2025-06-17 14:14:26,860 - Provider's response to this similar message: Hello Susan, We have received the results. Your results may or may not be clinically significant even if they may appear out of range on the test results. Please allow your provider at least 3 business days (from when the results come in) to review them and they can give you more individualized feedback on them. Your provider may ask you to schedule a visit to discuss them further in detail depending on the complexity of the results and your medical history. Please call the office if you have more urgent medical needs for immediate assistance.Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 to 5 business days. If you feel you need a timelier response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "2025-06-17 14:14:26,861 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:26,862 - Thread ID: 251695055\n", + "--------------------------------------------------------------------------------\n", + "idx: 184764\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about XR Lumbar Spine 3 Views Incl Flexion Extension resulted on 11/26/24, 10:49?AM...Hi Dr. Duggal, I am reading my X-ray results. Is this what you expected? Does this change our care plan?\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Susan, We have received the results. Your results may or may not be clinically significant even if they may appear out of range on the test results. Please allow your provider at least 3 business days (from when the results come in) to review them and they can give you more individualized feedback on them. Your provider may ask you to schedule a visit to discuss them further in detail depending on the complexity of the results and your medical history. Please call the office if you have more urgent medical needs for immediate assistance.Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages will be forwarded by the office staff when the office is open, to the appropriate provider. Responses may take up to 3 to 5 business days. If you feel you need a timelier response, or feel that your concerns are more complicated, please call our office to set up a video or in office visit. \n", + "----------------------------------------\n", + "2025-06-17 14:14:26,863 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:26,863 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:26,864 - ✅ similarity: 0.6458\n", + "2025-06-17 14:14:26,864 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about XR Cervical Spine 2 Views resulted on 12/4/24, 12:14?AM...Hi Jacky,Thanks for checking and result, could you also share the images of X-ray if possible.ThanksAnuj\n", + "2025-06-17 14:14:26,865 - Provider's response to this similar message: Hi Anuj,The imaging is unavailable to share within the MyHealth app. You can go to the radiology department where you completed this imaging, they can provide you with a CD of the images.Kind Regards,Rachel Keel, MA, 12/5/2024, 9:47 AM\n", + "2025-06-17 14:14:26,865 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:26,868 - Thread ID: 252200107\n", + "--------------------------------------------------------------------------------\n", + "idx: 159327\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about XR Cervical Spine 2 Views resulted on 12/4/24, 12:14?AM...Hi Jacky,Thanks for checking and result, could you also share the images of X-ray if possible.ThanksAnuj\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Anuj,The imaging is unavailable to share within the MyHealth app. You can go to the radiology department where you completed this imaging, they can provide you with a CD of the images.Kind Regards,Rachel Keel, MA, 12/5/2024, 9:47 AM\n", + "----------------------------------------\n", + "2025-06-17 14:14:26,869 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:26,869 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:26,870 - ✅ similarity: 0.6420\n", + "2025-06-17 14:14:26,871 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Lysa, I hope you’re doing well. I wanted to check to see if you were able to get the x-ray from Roper Saint Francis Hospital in Charleston. I was able to get access to the images but I’m not able to download them. I can only get them through this portal on my computer. But I was hoping you would have them because the doctor the radiologist needs to compare to the x-ray that I had on October 16.Thank you so much, Kristin\n", + "2025-06-17 14:14:26,872 - Provider's response to this similar message: Hi Kristin, We did receive the results of your imaging orders. We are only able to obtain the report. If you would like the imaging, you can call the radiology center and they can process a CD for you. Please let us know if you need any further assistance.Kind Regards,Rachel Keel, MA, 10/22/2024, 12:46 PM\n", + "2025-06-17 14:14:26,873 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:26,878 - Thread ID: 247880444\n", + "--------------------------------------------------------------------------------\n", + "idx: 366448\n", + "Subject: Xray\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lisa I wanted to see if you got the x-ray because they’re trying to schedule the CT scan and according to Dr. Kwong they want to see the original x-ray before she wants me to proceed with the CT scan . Please give me a call if you can. Thank you Kristin\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 366447\n", + "Subject: RE: Xray\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Rachel, I’m sorry I’m not following because the whole point is we did need to get the actual x-ray. I took a chest x-ray on Wednesday and the report indicated they needed the original to compare in order to determine if I need to do the CT scan so if you don’t mind following up with Dr. Kwong about this, I would really appreciate it.We already had the report because I had access to it and what they call my chart, which is the same type of process that Stanford uses it MyHealth .Please call if you have any questions. Thank you again.Kristin \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 366446\n", + "Subject: Xray\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Lysa, I hope you’re doing well. I wanted to check to see if you were able to get the x-ray from Roper Saint Francis Hospital in Charleston. I was able to get access to the images but I’m not able to download them. I can only get them through this portal on my computer. But I was hoping you would have them because the doctor the radiologist needs to compare to the x-ray that I had on October 16.Thank you so much, Kristin\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Kristin, We did receive the results of your imaging orders. We are only able to obtain the report. If you would like the imaging, you can call the radiology center and they can process a CD for you. Please let us know if you need any further assistance.Kind Regards,Rachel Keel, MA, 10/22/2024, 12:46 PM\n", + "----------------------------------------\n", + "2025-06-17 14:14:26,878 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:27,448 - Original Message:\n", + "2025-06-17 14:14:27,450 - original_query_message: Dear Dr. Tsai,I'm writing you from Boston. I will be back in the California Bay Area in a few days, by 1/8/25. Recently I had developed a seronegative rheumatoid arthritis or palindromic rheumatism chondricalcinosis on my left ankle (extremely painful) which was being treated by a rheumatologist at Brigham Women's Hospital (BWH). For continuity of care, I need to be followed up by a rheumatologist at Stanford; however, it basically would take a God's act to get an appointment. The rheumatologist at BWH already sent in a referral (she did her residency at Stanford), but Stanford requires her to fill out a Referral Request Form which I'm running out of time to ask her to do. Can you refer me to the Rheumatology Department at SHC? Please and thank you!Kuang Hsiu (Leo) Lu\n", + "2025-06-17 14:14:28,893 - Query Parameters:\n", + "2025-06-17 14:14:28,895 - query_message: Hello Dr. Tsai,I hope you don’t mind me reaching out. I’ve been dealing with pretty severe joint pain and swelling—mainly in my right knee and sometimes in my wrists—that my current doctor suspects could be early-stage inflammatory arthritis, possibly palindromic rheumatism. There was also talk of crystal arthritis or something related, since I had a bout of what they called “pseudo-gout” last fall. So far, all my blood tests have been negative for rheumatoid factor and such, which I gather makes things complicated.I’m moving to Palo Alto next week and really want to continue treatment without interruption, since the flares have made it hard to get around, and painkillers alone barely take the edge off. My current rheumatologist at Mass General suggested I follow up with a specialist at Stanford, but it’s been tough to navigate the referral process—especially on a tight timeline. She’s sent over my records, but apparently, Stanford needs a particular form filled out, and I’m worried my appointment will get held up for weeks.Do you have any advice on how to speed things up, or could you help me connect with someone at Stanford’s Rheumatology Department? I’m hoping to avoid another flare-up without care. Thanks so much for any guidance.Best,Sam Carter\n", + "2025-06-17 14:14:28,896 - receiver: SANTA CLARA PRIMARY CARE TASK POOL TEAM 1\n", + "2025-06-17 14:14:28,898 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:14:28,902 - specialty: Primary Care\n", + "2025-06-17 14:14:29,288 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:29,289 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:29,290 - ✅ similarity: 0.8461\n", + "2025-06-17 14:14:29,291 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : Dear Dr. Tsai,I'm writing you from Boston. I will be back in the California Bay Area in a few days, by 1/8/25. Recently I had developed a seronegative rheumatoid arthritis or palindromic rheumatism chondricalcinosis on my left ankle (extremely painful) which was being treated by a rheumatologist at Brigham Women's Hospital (BWH). For continuity of care, I need to be followed up by a rheumatologist at Stanford; however, it basically would take a God's act to get an appointment. The rheumatologist at BWH already sent in a referral (she did her residency at Stanford), but Stanford requires her to fill out a Referral Request Form which I'm running out of time to ask her to do. Can you refer me to the Rheumatology Department at SHC? Please and thank you!Kuang Hsiu (Leo) Lu\n", + "2025-06-17 14:14:29,292 - Provider's response to this similar message: Hello Kuang, You will need a video visit with Dr. Tsai, the next available appointment I can offer you is on 02/03/2025 at 4:20 pm. Please confirm if you can make this work. Thank you, Renee, PCC\n", + "2025-06-17 14:14:29,293 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:29,295 - Thread ID: 254663372\n", + "--------------------------------------------------------------------------------\n", + "idx: 51251\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Tsai,I'm writing you from Boston. I will be back in the California Bay Area in a few days, by 1/8/25. Recently I had developed a seronegative rheumatoid arthritis or palindromic rheumatism chondricalcinosis on my left ankle (extremely painful) which was being treated by a rheumatologist at Brigham Women's Hospital (BWH). For continuity of care, I need to be followed up by a rheumatologist at Stanford; however, it basically would take a God's act to get an appointment. The rheumatologist at BWH already sent in a referral (she did her residency at Stanford), but Stanford requires her to fill out a Referral Request Form which I'm running out of time to ask her to do. Can you refer me to the Rheumatology Department at SHC? Please and thank you!Kuang Hsiu (Leo) Lu\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello Kuang, You will need a video visit with Dr. Tsai, the next available appointment I can offer you is on 02/03/2025 at 4:20 pm. Please confirm if you can make this work. Thank you, Renee, PCC\n", + "----------------------------------------\n", + "2025-06-17 14:14:29,296 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:29,297 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:29,298 - ✅ similarity: 0.6493\n", + "2025-06-17 14:14:29,298 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi Dr. Tran. I need a referral to visit one of the doctors at Stanford Rheumatology department to assess and revisit my Psoriasis condition, since I have new symptoms and problems. Could you provide that to me or I need to be seen by you first?ThanksSahar Sarabandi\n", + "2025-06-17 14:14:29,298 - Provider's response to this similar message: Hello Sahar, You will need wither an in person or video visit with Dr. Tran or one of our providers in order to discuss this referral. Please let me know your preference. Thank you, Renee, PCC\n", + "2025-06-17 14:14:29,299 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:29,304 - Thread ID: 254552132\n", + "--------------------------------------------------------------------------------\n", + "idx: 56840\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! I prefer online. Could you please let me know when is your firt availability? Thanks\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 56839\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tran. I need a referral to visit one of the doctors at Stanford Rheumatology department to assess and revisit my Psoriasis condition, since I have new symptoms and problems. Could you provide that to me or I need to be seen by you first?ThanksSahar Sarabandi\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello Sahar, You will need wither an in person or video visit with Dr. Tran or one of our providers in order to discuss this referral. Please let me know your preference. Thank you, Renee, PCC\n", + "----------------------------------------\n", + "2025-06-17 14:14:29,305 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:29,306 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:29,306 - ✅ similarity: 0.6315\n", + "2025-06-17 14:14:29,307 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Dear Dr Tran,I tried to make an appointment with Stanford Redwood medical center for Physiotherapy as it is closest to me. However, they asked me to get referral from orthopedics dr. Do you know how I could followup on this?ThanksZahra\n", + "2025-06-17 14:14:29,307 - Provider's response to this similar message: Hello ZahraThe Stanford Physical Therapy department is currently experiencing a backlog of referrals and have recommended patients to seek care at another outpatient facility. Please contact your insurance company for locations you're able to see.Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:14:29,308 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:29,309 - Thread ID: 254820971\n", + "--------------------------------------------------------------------------------\n", + "idx: 43315\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr Tran,I tried to make an appointment with Stanford Redwood medical center for Physiotherapy as it is closest to me. However, they asked me to get referral from orthopedics dr. Do you know how I could followup on this?ThanksZahra\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello ZahraThe Stanford Physical Therapy department is currently experiencing a backlog of referrals and have recommended patients to seek care at another outpatient facility. Please contact your insurance company for locations you're able to see.Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:14:29,310 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:29,310 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:29,311 - ✅ similarity: 0.6240\n", + "2025-06-17 14:14:29,311 - Sender: TSAI, TIMOTHY [ S0350921] -> the retrieved similar message : Hello,In my last visit we discussed physical therapy for my lower back and hip pain. A referral was sent to Stanford’s PT clinic but they do not have availability currently. Can you send the referral here instead:Peak Physical TherapyFax: 408-366-164110580 S De Anza BlvdCupertino, CA 95014United StatesThank you,James \n", + "2025-06-17 14:14:29,312 - Provider's response to this similar message: Hello, We have faxed the referral to the below information per your request, please let us know if you have any questions.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:14:29,312 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:29,315 - Thread ID: 252613541\n", + "--------------------------------------------------------------------------------\n", + "idx: 140071\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,In my last visit we discussed physical therapy for my lower back and hip pain. A referral was sent to Stanford’s PT clinic but they do not have availability currently. Can you send the referral here instead:Peak Physical TherapyFax: 408-366-164110580 S De Anza BlvdCupertino, CA 95014United StatesThank you,James \n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello, We have faxed the referral to the below information per your request, please let us know if you have any questions.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:14:29,316 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:29,316 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:29,317 - ✅ similarity: 0.5961\n", + "2025-06-17 14:14:29,318 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi! I am responding to Maria's note below. I'd like to go to the San Francisco location. 3440 CaliforniaHello Ms.Fields, My name is Maria Bustos and I am one of the patient care coordinators for De Hieu Tran, MD.Dr. Tran placed some Radiology orders for you, I do see your planning to schedule your appointment with VRI, may you let me know what VRI you are going to go so I can fax your orders to their facility? Thank you for choosing Stanford Health Care! Maria E. Bustos Practice Care Coordinator Santa Clara Primary/Multispecialty Care P: 408.688.9720 F: 408.688.9730\n", + "2025-06-17 14:14:29,318 - Provider's response to this similar message: Hello StephanieThis message is to inform you that we have successfully faxed the MRI referral:RADNET MEDICAL IMAGING - SAN FRANCISCO 3440 CALIFORNIA ST SAN FRANCISCO CA 94118-1837 Phone: 415-922-6767 Fax: 415-563-0468 Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:14:29,319 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:29,321 - Thread ID: 254093998\n", + "--------------------------------------------------------------------------------\n", + "idx: 78278\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! I am responding to Maria's note below. I'd like to go to the San Francisco location. 3440 CaliforniaHello Ms.Fields, My name is Maria Bustos and I am one of the patient care coordinators for De Hieu Tran, MD.Dr. Tran placed some Radiology orders for you, I do see your planning to schedule your appointment with VRI, may you let me know what VRI you are going to go so I can fax your orders to their facility? Thank you for choosing Stanford Health Care! Maria E. Bustos Practice Care Coordinator Santa Clara Primary/Multispecialty Care P: 408.688.9720 F: 408.688.9730\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 1:\n", + "Hello StephanieThis message is to inform you that we have successfully faxed the MRI referral:RADNET MEDICAL IMAGING - SAN FRANCISCO 3440 CALIFORNIA ST SAN FRANCISCO CA 94118-1837 Phone: 415-922-6767 Fax: 415-563-0468 Best regards,Rhonda LStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:14:29,321 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:29,698 - Original Message:\n", + "2025-06-17 14:14:29,699 - original_query_message: Good morning!Thank you for approving my FMLA absence. I saw the summary this morning in this portal but have not seen the completed FMLA form (sent separately in a previous message prior to appointment). Will that document be sent here in the next 3 weeks or so? Thank you.Barbara\n", + "2025-06-17 14:14:30,900 - Query Parameters:\n", + "2025-06-17 14:14:30,901 - query_message: Hi there, I hope you're doing well. I wanted to check in about the paperwork related to my recent medical leave—my doctor mentioned that the official documentation for my short-term disability request would be uploaded here, but I haven’t seen the actual form yet, just a note about the approval in my summary. Should I expect the finalized form with the specific dates and doctor’s notes to show up on the portal in the next couple of weeks? I need to give a copy to my employer to make sure my absences for migraines and fatigue are covered, so just wanted to make sure I haven’t missed anything. Thanks so much for your help!\n", + "2025-06-17 14:14:30,902 - receiver: WILSON, CASSANDRA\n", + "2025-06-17 14:14:30,903 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS CASTRO VALLEY\n", + "2025-06-17 14:14:30,905 - specialty: Primary Care\n", + "2025-06-17 14:14:31,567 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:31,569 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:31,570 - ✅ similarity: 0.6759\n", + "2025-06-17 14:14:31,571 - Sender: PARAMORE, JANAY [ S0283150] -> the retrieved similar message : Hi Dr. Moore,I am attaching the Disability Attending Physician Statement and the Certification of Health Care Provider for Employee's Medical Leave forms. My case manager said the you can fill out either of the forms. Alternatively, you can provide a work status note with the dates I will be out, my diagnosis and it has to be signed by you. Thank you so much for all of your help!Best,Linda Cheu-Balolong\n", + "2025-06-17 14:14:31,575 - Provider's response to this similar message: Hello,Your forms have been printed out and are just waiting on completion and signature from Dr. Moore. I have attached a copy of our forms policy here. We will let you know once forms have been completed and faxed. Thank you.-CassandraPatient Services Representative\n", + "2025-06-17 14:14:31,576 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:31,600 - Thread ID: 249073745\n", + "--------------------------------------------------------------------------------\n", + "idx: 319178\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "That sounds great. Thanks so much again, Cassandra! Best,Linda \n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 319177\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much for your help, Cassandra! Do you happen to know when the forms would be completed? Also, would I pay for the fee for the forms the same way I pay other bills from Stanford?Best,Linda\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Hello Linda,It can take anywhere between 7-10 business days - it's rare that it takes that long though. Hopefully I can have them completed for you by the end of the week. Once they are completed, we will bill your account and you can pay that on MyHealth.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 319176\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Moore,I am attaching the Disability Attending Physician Statement and the Certification of Health Care Provider for Employee's Medical Leave forms. My case manager said the you can fill out either of the forms. Alternatively, you can provide a work status note with the dates I will be out, my diagnosis and it has to be signed by you. Thank you so much for all of your help!Best,Linda Cheu-Balolong\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Hello,Your forms have been printed out and are just waiting on completion and signature from Dr. Moore. I have attached a copy of our forms policy here. We will let you know once forms have been completed and faxed. Thank you.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "2025-06-17 14:14:31,606 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:31,609 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:31,610 - ✅ similarity: 0.6605\n", + "2025-06-17 14:14:31,611 - Sender: BRANSCUM, CAROL [ S0320798] -> the retrieved similar message : Good morning!Thank you for approving my FMLA absence. I saw the summary this morning in this portal but have not seen the completed FMLA form (sent separately in a previous message prior to appointment). Will that document be sent here in the next 3 weeks or so? Thank you.Barbara\n", + "2025-06-17 14:14:31,617 - Provider's response to this similar message: Dear Barbara,Before we can complete your FMLA forms, we would need your signature on the bottom of page 2. Once we receive that, we can start working on these. All forms can take up to 7-10 business days to complete. Thank you.-CassandraPatient Services Representative\n", + "2025-06-17 14:14:31,638 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:31,682 - Thread ID: 250013052\n", + "--------------------------------------------------------------------------------\n", + "idx: 271189\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! Signed form attached.\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Thank you! I have printed the forms out and given them to Dr. Gesmundo. I'll send you the completed copy here once signed.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 271188\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning!Thank you for approving my FMLA absence. I saw the summary this morning in this portal but have not seen the completed FMLA form (sent separately in a previous message prior to appointment). Will that document be sent here in the next 3 weeks or so? Thank you.Barbara\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Barbara,Before we can complete your FMLA forms, we would need your signature on the bottom of page 2. Once we receive that, we can start working on these. All forms can take up to 7-10 business days to complete. Thank you.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "2025-06-17 14:14:31,685 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:31,710 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:31,720 - ✅ similarity: 0.6382\n", + "2025-06-17 14:14:31,722 - Sender: GESMUNDO, CRISTINA [ S0319789] -> the retrieved similar message : Hi Dr. Gesmundo,My employer needs this serious health condition certification form completed and returned within two weeks. The start date for my condition should be listed as Nov. 5.Reasons why I believe I can't work right now include severe fatigue/post-exertional malaise, decreased stress tolerance, sleep disturbances, difficulty concentrating, migraines, nausea, sore throat/difficulty talking, and widespread skin tingling/paresthesia. I've listed these for your convenience, not for the form.Please let me know if you have any questions.Thanks,Heidi\n", + "2025-06-17 14:14:31,728 - Provider's response to this similar message: Dear Heidi,Your FMLA forms have been completed and I have attached them here. Have a great day!-CassandraPatient Services Representative\n", + "2025-06-17 14:14:31,736 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:31,738 - Thread ID: 250564054\n", + "--------------------------------------------------------------------------------\n", + "idx: 243191\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Cassandra. is there any way to make a change? I'd prefer it not mention my continuing work with psychiatry as my psychiatric conditions are under control and are not my primary reason for being unable to work. Could it instead say that I am following up with endocrinology? I believe the main reason I feel so unwell is due to an autoimmune condition involving my thyroid and adrenal glands, potentially from post-covid complications.\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Of course, no problem! I have updated that portion and have attached it here.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 243190\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Gesmundo,My employer needs this serious health condition certification form completed and returned within two weeks. The start date for my condition should be listed as Nov. 5.Reasons why I believe I can't work right now include severe fatigue/post-exertional malaise, decreased stress tolerance, sleep disturbances, difficulty concentrating, migraines, nausea, sore throat/difficulty talking, and widespread skin tingling/paresthesia. I've listed these for your convenience, not for the form.Please let me know if you have any questions.Thanks,Heidi\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Heidi,Your FMLA forms have been completed and I have attached them here. Have a great day!-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "2025-06-17 14:14:31,739 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:31,741 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:31,764 - ✅ similarity: 0.6332\n", + "2025-06-17 14:14:31,766 - Sender: VILLANUEVA, VERONICA [ S0180454] -> the retrieved similar message : Hi Dr. Moore,I am attaching 2 forms that I am hoping you can complete for an extension of my medical leave from work with a return to work date on January 16, 2025 as we discussed. The first form is a Certification of Health Care Provider for Employee's Medical Leave Form and the second form is a Reasonable Accommodation Medical Certification Form. They are both attached. Thank you so much for your help. Best,Linda \n", + "2025-06-17 14:14:31,771 - Provider's response to this similar message: Dear Linda,The forms have been printed out and given to Dr. Moore to review and sign. There will be a form fee for the Accommodations form of $25 that will be billed to your account. We will let you know once the form has been completed / faxed and send you a copy. Thank you.-CassandraPatient Services Representative\n", + "2025-06-17 14:14:31,777 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:31,820 - Thread ID: 253804781\n", + "--------------------------------------------------------------------------------\n", + "idx: 90678\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much, Cassandra! I appreciate you helping me with getting the forms filled out today! Have a wonderful day :)Best, Linda \n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 90677\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning, Cassandra,Thank you so much for all of help! I really appreciate it and all of the help you’ve given me throughout my entire leave of absence. Happy New Year as well! Best,Linda Cheu-Balolong\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Linda,The FMLA form has been completed and faxed and I have attached it here. Have a great day and Happy New Year to you as well!-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 90676\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cassandra,Hope you are doing well! I am reaching out because I previously sent some forms to have Dr. Moore fill out and I know you printed them out for him. However, my company switched the leave company they work with at the beginning of this year and they now use MetLife. I spoke with MetLife today and they asked for me to have Dr. Moore fill out their forms instead of the previous ones. I’m hoping he can help fill out their forms instead. I attached the forms to this message and also sent him a message through MyHealth with these forms as well.Thank you so much for all of your help!Best,Linda Cheu-Balolong\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Good morning Linda,I switched out the forms and I'm just waiting on him to sign them so I can fax them. Hopefully I can get him to sign them today. I'll let you know once they're completed / faxed and will send you a copy.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 90675\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cassandra,I wanted to follow up to see if Dr. Moore was able to complete the forms for my leave of absence extension. Feel free to let me know if you need anything else from me as well. Thanks for your help!Best,Linda \n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 90674\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much, Cassandra!Best,Linda\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 90673\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Moore,I am attaching 2 forms that I am hoping you can complete for an extension of my medical leave from work with a return to work date on January 16, 2025 as we discussed. The first form is a Certification of Health Care Provider for Employee's Medical Leave Form and the second form is a Reasonable Accommodation Medical Certification Form. They are both attached. Thank you so much for your help. Best,Linda \n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Linda,The forms have been printed out and given to Dr. Moore to review and sign. There will be a form fee for the Accommodations form of $25 that will be billed to your account. We will let you know once the form has been completed / faxed and send you a copy. Thank you.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "2025-06-17 14:14:31,827 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:31,832 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:31,846 - ✅ similarity: 0.5991\n", + "2025-06-17 14:14:31,847 - Sender: WILSON, CASSANDRA [ S0087421] -> the retrieved similar message : Good morning,I filed disability claim i need help pls i didn’t come to work November 20-Dec 6,2024 and my reference number is R100000184703307 for disability.Thank you ,Jenny \n", + "2025-06-17 14:14:31,848 - Provider's response to this similar message: Dear Jen,The Physician's Certificate has been submitted to EDD online for the dates provided. I have attached a copy here for your records. Have a great day!-CassandraPatient Services Representative\n", + "2025-06-17 14:14:31,848 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:31,854 - Thread ID: 253402146\n", + "--------------------------------------------------------------------------------\n", + "idx: 109004\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi good morning,Sorry to bother again i need hellp with my hartford paperwork pls.I have attached it to this email Thank you so much,Jenny\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Good morning,Please sign your portion on the 2nd page of the form. We need this signed before we can complete our portion. Thank you.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 109003\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,Ineed help again with my disability benefits pls for extension online here is the claim number same as last time 1012809390.Doctor Johri put me off from today through the 30th of January.Thank you,Jenny\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Jen,The disability extension has been submitted to EDD online through 1/30/25. I have attached a copy here for your records. Have a great day!-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 109002\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,I filed disability claim i need help pls i didn’t come to work November 20-Dec 6,2024 and my reference number is R100000184703307 for disability.Thank you ,Jenny \n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Dear Jen,The Physician's Certificate has been submitted to EDD online for the dates provided. I have attached a copy here for your records. Have a great day!-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "idx: 109001\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you i will see you tomorrow \n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 109000\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi good morning ,Where are you working today? I will go there and drop off the paperwork.Thank you,Jenny\n", + "----------------------------------------\n", + "Provider Response by WILSON, CASSANDRA:\n", + "Hello,Dr. Johri is working in Castro Valley today until about noon and will be in Hayward the rest of the week. You can drop it off at either office, but if it's later in the day, I recommend Hayward.-CassandraPatient Services Representative\n", + "----------------------------------------\n", + "2025-06-17 14:14:31,855 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:32,284 - Original Message:\n", + "2025-06-17 14:14:32,286 - original_query_message: Hello, I've recently been diagnosed with A-fib. I'm currently staying at my sister's home in Antioch as we take care of our I'll mom (recently lost our dad). I'm in an environment with many stressors, and I'm wondering if there is anything other than Atarax that I can take when needed. I haven't needed Atarax often, but the ER doctor told me that Atarax also increases heart rate. I noticed yesterday that when my (mentally unstable induced by meth) nephew started acting up, my heart rate elevated, but certainly not 200 as was when I went to ER last Sunday.I'm wondering if you have any suggestions. Thank you for your time.Gloria\n", + "2025-06-17 14:14:33,869 - Query Parameters:\n", + "2025-06-17 14:14:33,870 - query_message: Sure! Here’s a new, unique question inspired by the original, with different wording, added context, and a conversational tone:Hi there, I was diagnosed with atrial fibrillation a couple of weeks ago, and honestly, it’s been overwhelming trying to navigate it on top of some family chaos. I’m staying with my brother to support my aging mom after she had a bad fall, but it’s stressful—especially with my teenage son acting out lately, which really keeps my nerves on edge.I notice my heart tends to race when things get tense at home, even if it’s just for a few minutes. It doesn’t get as fast as when I ended up in the ER (which was terrifying), but it still scares me. The doctor in the hospital mentioned Atarax as an option for anxiety, but I’m hesitant because I heard it might affect heart rate, which I obviously don’t want.Are there any other safe ways or medications to help manage the anxiety and stress that won’t make my heart rhythm worse? I’d also love to hear about non-medication options that might help since I’m trying to avoid taking more prescriptions if possible. Thanks so much for your input—I really appreciate it.\n", + "2025-06-17 14:14:33,872 - receiver: FMO MY HEALTH POOL\n", + "2025-06-17 14:14:33,873 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:14:33,874 - specialty: Family Medicine\n", + "2025-06-17 14:14:35,215 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:35,219 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:35,220 - ✅ similarity: 0.6622\n", + "2025-06-17 14:14:35,223 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, I've recently been diagnosed with A-fib. I'm currently staying at my sister's home in Antioch as we take care of our I'll mom (recently lost our dad). I'm in an environment with many stressors, and I'm wondering if there is anything other than Atarax that I can take when needed. I haven't needed Atarax often, but the ER doctor told me that Atarax also increases heart rate. I noticed yesterday that when my (mentally unstable induced by meth) nephew started acting up, my heart rate elevated, but certainly not 200 as was when I went to ER last Sunday.I'm wondering if you have any suggestions. Thank you for your time.Gloria\n", + "2025-06-17 14:14:35,225 - Provider's response to this similar message: Dear Gloria,I'm sorry to hear about your recent diagnosis and the stressful environment you're in. Given your new diagnosis of A-fib, it's important to avoid medications that can increase your heart rate. Atarax (hydroxyzine) can indeed have this effect, so it's good that you're cautious about using it.For managing anxiety and stress without affecting your heart rate, there are several options we can consider. Non-medication strategies such as deep breathing exercises, mindfulness, and relaxation techniques can be very effective. Additionally, certain medications like beta-blockers can help manage both anxiety and heart rate, but these would need to be prescribed and monitored carefully.I recommend scheduling an appointment so we can discuss your symptoms and medical history in more detail and find the best solution for you. You can schedule an appointment using the Stanford MyHealth app.Take care,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:14:35,227 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:35,233 - Thread ID: 250563138\n", + "--------------------------------------------------------------------------------\n", + "idx: 243257\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Gloria,Thank you for the update. I'm glad to hear you're managing your medications. Please do schedule a follow-up appointment using the Stanford MyHealth app so we can review your current treatment plan and make any necessary adjustments once you have been discharged from the hospital.Take care,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "Provider Response by PAEZ, MONICA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 243256\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for getting back to me so quickly..Yes, I'm now taking Metoprolol and Predaxa (twice daily) as of 11.10.2024 when I was admitted to a hospital here in Antioch. I will try to schedule a follow-up appt as soon as possible.Thanks again.Gloria\n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "Dear Gloria,Thank you for the update. I'm glad to hear you're managing your medications. Please do schedule a follow-up appointment using the Stanford MyHealth app so we can review your current treatment plan and make any necessary adjustments once you have been discharged from the hospital.Take care,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "idx: 243255\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, I've recently been diagnosed with A-fib. I'm currently staying at my sister's home in Antioch as we take care of our I'll mom (recently lost our dad). I'm in an environment with many stressors, and I'm wondering if there is anything other than Atarax that I can take when needed. I haven't needed Atarax often, but the ER doctor told me that Atarax also increases heart rate. I noticed yesterday that when my (mentally unstable induced by meth) nephew started acting up, my heart rate elevated, but certainly not 200 as was when I went to ER last Sunday.I'm wondering if you have any suggestions. Thank you for your time.Gloria\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Dear Gloria,I'm sorry to hear about your recent diagnosis and the stressful environment you're in. Given your new diagnosis of A-fib, it's important to avoid medications that can increase your heart rate. Atarax (hydroxyzine) can indeed have this effect, so it's good that you're cautious about using it.For managing anxiety and stress without affecting your heart rate, there are several options we can consider. Non-medication strategies such as deep breathing exercises, mindfulness, and relaxation techniques can be very effective. Additionally, certain medications like beta-blockers can help manage both anxiety and heart rate, but these would need to be prescribed and monitored carefully.I recommend scheduling an appointment so we can discuss your symptoms and medical history in more detail and find the best solution for you. You can schedule an appointment using the Stanford MyHealth app.Take care,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:14:35,234 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:35,235 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:35,237 - ✅ similarity: 0.6113\n", + "2025-06-17 14:14:35,237 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Ms. Riseman,I hope this finds you well and recovering from the Thanksgiving holiday. I am becoming concerned about my heart health lately. I feel I have a rapid heartbeat at times that isn’t in response to any change in activity or other outside influence. Could it just be anxiety? I also have been depressed and listless. Not like myself at all. I have been anemic in the past, so I’m wondering if that is what’s doing this. I appreciate your input. Thank youBernadine\n", + "2025-06-17 14:14:35,238 - Provider's response to this similar message: Hello Bernadine,Thank you for reaching out to us and I am sorry to hear you're not feeling well. Your concerns deserve to be addressed in an appointment setting, please contact our office at 510-286-8160 to schedule an appointment. Thank you, Crystal MA \n", + "2025-06-17 14:14:35,239 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:35,242 - Thread ID: 252119281\n", + "--------------------------------------------------------------------------------\n", + "idx: 163312\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Bernadine,Thank you for reaching out to us and I am sorry to hear you're not feeling well. Your concerns deserve to be addressed in an appointment setting, please contact our office at 510-286-8160 to schedule an appointment. Thank you, Crystal MA \n", + "----------------------------------------\n", + "Provider Response by FMO CLINICAL CALL CENTER POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 163311\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Ms. Riseman,I hope this finds you well and recovering from the Thanksgiving holiday. I am becoming concerned about my heart health lately. I feel I have a rapid heartbeat at times that isn’t in response to any change in activity or other outside influence. Could it just be anxiety? I also have been depressed and listless. Not like myself at all. I have been anemic in the past, so I’m wondering if that is what’s doing this. I appreciate your input. Thank youBernadine\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello Bernadine,Thank you for reaching out to us and I am sorry to hear you're not feeling well. Your concerns deserve to be addressed in an appointment setting, please contact our office at 510-286-8160 to schedule an appointment. Thank you, Crystal MA \n", + "----------------------------------------\n", + "2025-06-17 14:14:35,243 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:35,243 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:35,244 - ✅ similarity: 0.5776\n", + "2025-06-17 14:14:35,245 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Lin and team,I would like to get your thoughts on how I’ve been feeling recently. It’s been about a couple weeks now that I’ve been feeling my heart beat a little harder frequently throughout the day, including bedtime. My resting heart rate looks pretty average according to my Apple Watch. I’ve also taken my blood pressure the last couple of days in the morning and evening, and it looks normal, but despite all that I still feel that my heart is beating harder, not necessarily faster, than it usually does. Other than that I’ve been feeling fine and nothing out of the normal. No major stressors either. Would you be able to prescribe an EKG work up for me?Thank you,Ben\n", + "2025-06-17 14:14:35,245 - Provider's response to this similar message: Hello,This deserves to be addressed in an appointment setting. Please contact the scheduling department to schedule an appointment.Kind RegardsKurita Powell, BSHA, CCMA \n", + "2025-06-17 14:14:35,246 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:35,249 - Thread ID: 251099291\n", + "--------------------------------------------------------------------------------\n", + "idx: 215415\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Lin and team,I would like to get your thoughts on how I’ve been feeling recently. It’s been about a couple weeks now that I’ve been feeling my heart beat a little harder frequently throughout the day, including bedtime. My resting heart rate looks pretty average according to my Apple Watch. I’ve also taken my blood pressure the last couple of days in the morning and evening, and it looks normal, but despite all that I still feel that my heart is beating harder, not necessarily faster, than it usually does. Other than that I’ve been feeling fine and nothing out of the normal. No major stressors either. Would you be able to prescribe an EKG work up for me?Thank you,Ben\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello,This deserves to be addressed in an appointment setting. Please contact the scheduling department to schedule an appointment.Kind RegardsKurita Powell, BSHA, CCMA \n", + "----------------------------------------\n", + "2025-06-17 14:14:35,250 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:35,250 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:35,251 - ✅ similarity: 0.5641\n", + "2025-06-17 14:14:35,252 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : FYI, yesterday evening I went to the ED at Alta Bates because my blood pressure seemed high and my pulse was racing. I was seen by Dr. Hasan. He did an EKG and didn't find any problems, except \"stress/adjustment reaction and anxiety\" and sent me home with a prescription for Hydoxyzine HCI (ATARAX), after having me take one pill.I feel basically fine today, but Dr. Hasan said I needed to talk with you about this and also schedule a visit. I did find an available PCP video visit slot today with Dr. Irene Kelly, which will be at 2:40pm. So I will let her know about this situation. (I do have a wellness visit with you in April.)\n", + "2025-06-17 14:14:35,252 - Provider's response to this similar message: Thank you for letting me know, Ellen. I'm glad to hear that you're feeling better today. It's good that you have a video visit scheduled with Dr. Irene Kelly to discuss this further. Please make sure to mention everything that happened, including the prescription for Hydroxyzine HCI (ATARAX). If you have any further concerns or if anything changes, don't hesitate to reach out. I look forward to seeing you at your wellness visit in April. Take care!Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:14:35,253 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:35,254 - Thread ID: 255028978\n", + "--------------------------------------------------------------------------------\n", + "idx: 33004\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "FYI, yesterday evening I went to the ED at Alta Bates because my blood pressure seemed high and my pulse was racing. I was seen by Dr. Hasan. He did an EKG and didn't find any problems, except \"stress/adjustment reaction and anxiety\" and sent me home with a prescription for Hydoxyzine HCI (ATARAX), after having me take one pill.I feel basically fine today, but Dr. Hasan said I needed to talk with you about this and also schedule a visit. I did find an available PCP video visit slot today with Dr. Irene Kelly, which will be at 2:40pm. So I will let her know about this situation. (I do have a wellness visit with you in April.)\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Thank you for letting me know, Ellen. I'm glad to hear that you're feeling better today. It's good that you have a video visit scheduled with Dr. Irene Kelly to discuss this further. Please make sure to mention everything that happened, including the prescription for Hydroxyzine HCI (ATARAX). If you have any further concerns or if anything changes, don't hesitate to reach out. I look forward to seeing you at your wellness visit in April. Take care!Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:14:35,255 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:35,256 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:35,256 - ✅ similarity: 0.5592\n", + "2025-06-17 14:14:35,257 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi PA Pontell -Since my physical on 9/5, I have had multiple depressive episodes and instances of severe stress/anxiety that have impeded my ability to function. With how I'm interacting with my job, I have not been able to be consistent with non-medication interventions to improve my mental/emotional state, and I honestly don't know if those types of interventions will be enough to get me to a place where I'm functioning to a satisfactory degree. It feels like a miracle that I'm getting anything done at all right now, and my life is definitely on hold while put nearly all of my available energy into making sure my performance at work doesn't suffer too much.tl;dr - I want to discuss possible changes to my antianxiety/antidepressant medications. And I also might want to look at how well I'm sleeping, since it's been 5 years since my last sleep study (dx'ed with mild sleep apnea) and I've gained at least 10 lbs since then (which was the main risk factor they identified).\n", + "2025-06-17 14:14:35,258 - Provider's response to this similar message: Hi Scott,I'm sorry to hear that you're experiencing increased depressive episodes and anxiety. It sounds like it's been quite challenging for you. Let's definitely discuss potential changes to your medications and explore options that might better support you.Regarding your sleep, it would be a good idea to reassess your sleep apnea given the weight gain and the time that has passed since your last study. Please schedule an appointment through the Stanford MyHealth app so we can discuss these concerns in detail and come up with a plan that works for you.Take care, and I look forward to seeing you soon.Sarah Pontell, PA\n", + "2025-06-17 14:14:35,260 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:35,262 - Thread ID: 252332218\n", + "--------------------------------------------------------------------------------\n", + "idx: 152847\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi PA Pontell -Since my physical on 9/5, I have had multiple depressive episodes and instances of severe stress/anxiety that have impeded my ability to function. With how I'm interacting with my job, I have not been able to be consistent with non-medication interventions to improve my mental/emotional state, and I honestly don't know if those types of interventions will be enough to get me to a place where I'm functioning to a satisfactory degree. It feels like a miracle that I'm getting anything done at all right now, and my life is definitely on hold while put nearly all of my available energy into making sure my performance at work doesn't suffer too much.tl;dr - I want to discuss possible changes to my antianxiety/antidepressant medications. And I also might want to look at how well I'm sleeping, since it's been 5 years since my last sleep study (dx'ed with mild sleep apnea) and I've gained at least 10 lbs since then (which was the main risk factor they identified).\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Scott,I'm sorry to hear that you're experiencing increased depressive episodes and anxiety. It sounds like it's been quite challenging for you. Let's definitely discuss potential changes to your medications and explore options that might better support you.Regarding your sleep, it would be a good idea to reassess your sleep apnea given the weight gain and the time that has passed since your last study. Please schedule an appointment through the Stanford MyHealth app so we can discuss these concerns in detail and come up with a plan that works for you.Take care, and I look forward to seeing you soon.Sarah Pontell, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:35,263 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:35,607 - Original Message:\n", + "2025-06-17 14:14:35,608 - original_query_message: Hello Dr Koh,How are you? My acid reflux episodes are have got very frequent causing frequent burning of throat. I am trying to control my diet. I am happy to schedule a video consult with you or visit you in person to discuss this if you have some recent slots?Is it possible to have a GI referral as my previous doctor has transferred?\n", + "2025-06-17 14:14:37,014 - Query Parameters:\n", + "2025-06-17 14:14:37,016 - query_message: Hi Dr Koh, hope you’re doing well. Lately, I’ve been struggling a lot with heartburn and discomfort in my chest and throat—sometimes it even wakes me up at night. I’ve been avoiding spicy and acidic foods, but it doesn’t seem to help much. I was wondering if this could be related to acid reflux or something else? Also, since my previous gastroenterologist moved away, I’m not sure who to see now. Would you be able to recommend someone for a GI consult or let me know if you have any upcoming appointments? Thank you!\n", + "2025-06-17 14:14:37,022 - receiver: GIBRALTAR CLINIC ASSIST POOL\n", + "2025-06-17 14:14:37,024 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:14:37,027 - specialty: Primary Care\n", + "2025-06-17 14:14:37,536 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:37,537 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:37,538 - ✅ similarity: 0.8541\n", + "2025-06-17 14:14:37,539 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Hello Dr Koh,How are you? My acid reflux episodes are have got very frequent causing frequent burning of throat. I am trying to control my diet. I am happy to schedule a video consult with you or visit you in person to discuss this if you have some recent slots?Is it possible to have a GI referral as my previous doctor has transferred?\n", + "2025-06-17 14:14:37,541 - Provider's response to this similar message: Hello Reshmi,I'm sorry to hear that your acid reflux episodes have become more frequent and are causing discomfort. It would be a good idea to discuss this further. I will have one of our team member reach out to you to assist you with scheduling follow up appointment. Provider can discuss GI referral with you during the visit.Regards, Mamata S Patel, NP (Covering for Dr. Koh, Anthony Kyawnaing)\n", + "2025-06-17 14:14:37,542 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:37,549 - Thread ID: 252597698\n", + "--------------------------------------------------------------------------------\n", + "idx: 140970\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Reshmi,I'm sorry to hear that your acid reflux episodes have become more frequent and are causing discomfort. It would be a good idea to discuss this further. I will have one of our team member reach out to you to assist you with scheduling follow up appointment. Provider can discuss GI referral with you during the visit.Regards, Mamata S Patel, NP (Covering for Dr. Koh, Anthony Kyawnaing)\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT PSR POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 140969\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Koh,How are you? My acid reflux episodes are have got very frequent causing frequent burning of throat. I am trying to control my diet. I am happy to schedule a video consult with you or visit you in person to discuss this if you have some recent slots?Is it possible to have a GI referral as my previous doctor has transferred?\n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "Hello Reshmi,I'm sorry to hear that your acid reflux episodes have become more frequent and are causing discomfort. It would be a good idea to discuss this further. I will have one of our team member reach out to you to assist you with scheduling follow up appointment. Provider can discuss GI referral with you during the visit.Regards, Mamata S Patel, NP (Covering for Dr. Koh, Anthony Kyawnaing)\n", + "----------------------------------------\n", + "2025-06-17 14:14:37,550 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:37,551 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:37,551 - ✅ similarity: 0.7107\n", + "2025-06-17 14:14:37,552 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Hello Dr,In my previous appointment we came to the conclusion that I have gastritis. The symptoms have not gone away, if anything they have worsened. My stool has been abnormal as well, the heartburns are more severe and the pain is more uncomfortable. I have been having more nausea and vomiting.Could you please provide me with a referral to a gastroenterologist or recommend some tests to help determine what might be causing these symptoms?My diet has been good, i have not had coffee or high acidic/spicy foods since our last appointment. If anything I have been extra intentional and cautious with my food. Thank you in advance for any help.\n", + "2025-06-17 14:14:37,552 - Provider's response to this similar message: Hi Cynthia,I'm sorry to hear that your symptoms have worsened. Given the increased severity of your symptoms, including abnormal stool, more severe heartburn, and nausea with vomiting, it would be prudent to follow up on these concerns.I see Dr. Sheriff did note the following on your last visit: \"Recommend to avoid oily and fatty foods at this time. If not improving over the next 5 days, a two-week course of Prilosec, one tablet daily, was recommended.\"Have you diligently adapted this dietary approach and started Prilosec as suggested?In the meantime, please continue to avoid foods that may exacerbate your symptoms and stay hydrated. If your symptoms become severe, such as persistent vomiting or significant abdominal pain, please consider seeking immediate medical attention.You can schedule an appointment with the gastroenterologist through the Stanford MyHealth app once the referral is processed. Our staff can assist you to arrange an appointment. Take care,Alex Peck, NP for Dr. Sheriff\n", + "2025-06-17 14:14:37,558 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:37,566 - Thread ID: 248279406\n", + "--------------------------------------------------------------------------------\n", + "idx: 359758\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Alex,Yes I tried Prilosec, but it was only helpful for about an hour.I have stayed away from oily and fatty foods. Greek yogurt, bananas and bread are the only things that feel good at the moment. Thank you I will do as advised.Best,Cynthia \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 359757\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Cynthia,I'm sorry to hear that your symptoms have worsened. Given the increased severity of your symptoms, including abnormal stool, more severe heartburn, and nausea with vomiting, it would be prudent to follow up on these concerns.I see Dr. Sheriff did note the following on your last visit: \"Recommend to avoid oily and fatty foods at this time. If not improving over the next 5 days, a two-week course of Prilosec, one tablet daily, was recommended.\"Have you diligently adapted this dietary approach and started Prilosec as suggested?In the meantime, please continue to avoid foods that may exacerbate your symptoms and stay hydrated. If your symptoms become severe, such as persistent vomiting or significant abdominal pain, please consider seeking immediate medical attention.You can schedule an appointment with the gastroenterologist through the Stanford MyHealth app once the referral is processed. Our staff can assist you to arrange an appointment. Take care,Alex Peck, NP for Dr. Sheriff\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT PSR POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 359756\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr,In my previous appointment we came to the conclusion that I have gastritis. The symptoms have not gone away, if anything they have worsened. My stool has been abnormal as well, the heartburns are more severe and the pain is more uncomfortable. I have been having more nausea and vomiting.Could you please provide me with a referral to a gastroenterologist or recommend some tests to help determine what might be causing these symptoms?My diet has been good, i have not had coffee or high acidic/spicy foods since our last appointment. If anything I have been extra intentional and cautious with my food. Thank you in advance for any help.\n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "Hi Cynthia,I'm sorry to hear that your symptoms have worsened. Given the increased severity of your symptoms, including abnormal stool, more severe heartburn, and nausea with vomiting, it would be prudent to follow up on these concerns.I see Dr. Sheriff did note the following on your last visit: \"Recommend to avoid oily and fatty foods at this time. If not improving over the next 5 days, a two-week course of Prilosec, one tablet daily, was recommended.\"Have you diligently adapted this dietary approach and started Prilosec as suggested?In the meantime, please continue to avoid foods that may exacerbate your symptoms and stay hydrated. If your symptoms become severe, such as persistent vomiting or significant abdominal pain, please consider seeking immediate medical attention.You can schedule an appointment with the gastroenterologist through the Stanford MyHealth app once the referral is processed. Our staff can assist you to arrange an appointment. Take care,Alex Peck, NP for Dr. Sheriff\n", + "----------------------------------------\n", + "2025-06-17 14:14:37,567 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:37,567 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:37,568 - ✅ similarity: 0.7003\n", + "2025-06-17 14:14:37,569 - Sender: NALUPTA, NORRIS [ S0385761] -> the retrieved similar message : Hi Dr. Koh, I am having a couple of medical issues and am not sure who to see. My stomach is very bloated and I’m not sure if it is due to the spinal issue I am currently having or something else. On that same note my feet are retaining water the past few days. Secondly I sometimes have a gurgling sound in my throat when I belch/burp. At times I experience this even when I’m not burping. Sounds and feels like bubbles that trickle down my throat. Lastly , on occasion, I have begun experiencing a tightening in my throat while swallowing both solids or fluids. Dr. Kleimeyer is handling my spinal issues and I’m not sure who I should see regarding these other issues. Please advise.Thanks \n", + "2025-06-17 14:14:37,570 - Provider's response to this similar message: Hi Joanne,Thank you for reaching out. I'm sorry to hear that you're experiencing these issues. Given the symptoms you're describing, it would be best to schedule an appointment with me so we can evaluate your bloating, water retention, and throat symptoms in detail. These could be related to gastrointestinal or other systemic issues that need further investigation.Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience. I will also have staff reach out to you to assist with appointment set up.Regards,Mamata Patel, NP(Covering for Dr. Koh, Anthony Kyawnaing)\n", + "2025-06-17 14:14:37,571 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:37,574 - Thread ID: 251518485\n", + "--------------------------------------------------------------------------------\n", + "idx: 194021\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Mamata , I received a message letting me know I have an appointment today with Doctor Wangwala . I am confirming that I will be there. Thank very much, Joanne \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Thank you Joanne, I have advised them you are confirmed. \n", + "----------------------------------------\n", + "idx: 194020\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m sorry Mamata, While reviewing my messages I believe it was Raquel who also reached out to me. I’m not sure how to contact her but I will take any open appointment you have. I really don’t want to go through the weekend without being seen. Thanks \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 194019\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Mamata, thank you for reaching out. Sorry I missed your call I was at a medical appointment during that time. I Have been trying to reach you or someone at Dr. Koh’s office but have been unsuccessful in reaching anyone. I thought had you said you had appointments this afternoon and tomorrow but the earliest I could get from the scheduler is December 5th with Dr. Rangwala . I’m not sure if it’s ok to wait until then with my symptoms. Bloated stomach, and water retention in my feet and swallowing with a gurgling sound. I look forward to hearing from you.Thanks, Joanne \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 194018\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Joanne,Thank you for reaching out. I'm sorry to hear that you're experiencing these issues. Given the symptoms you're describing, it would be best to schedule an appointment with me so we can evaluate your bloating, water retention, and throat symptoms in detail. These could be related to gastrointestinal or other systemic issues that need further investigation.Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience. I will also have staff reach out to you to assist with appointment set up.Regards,Mamata Patel, NP(Covering for Dr. Koh, Anthony Kyawnaing)\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT PSR POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 194017\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Koh, I am having a couple of medical issues and am not sure who to see. My stomach is very bloated and I’m not sure if it is due to the spinal issue I am currently having or something else. On that same note my feet are retaining water the past few days. Secondly I sometimes have a gurgling sound in my throat when I belch/burp. At times I experience this even when I’m not burping. Sounds and feels like bubbles that trickle down my throat. Lastly , on occasion, I have begun experiencing a tightening in my throat while swallowing both solids or fluids. Dr. Kleimeyer is handling my spinal issues and I’m not sure who I should see regarding these other issues. Please advise.Thanks \n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "Hi Joanne,Thank you for reaching out. I'm sorry to hear that you're experiencing these issues. Given the symptoms you're describing, it would be best to schedule an appointment with me so we can evaluate your bloating, water retention, and throat symptoms in detail. These could be related to gastrointestinal or other systemic issues that need further investigation.Please use the Stanford MyHealth app to schedule an appointment at your earliest convenience. I will also have staff reach out to you to assist with appointment set up.Regards,Mamata Patel, NP(Covering for Dr. Koh, Anthony Kyawnaing)\n", + "----------------------------------------\n", + "2025-06-17 14:14:37,576 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:37,576 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:37,579 - ✅ similarity: 0.6384\n", + "2025-06-17 14:14:37,580 - Sender: KO, TIMMY [ S0377957] -> the retrieved similar message : Dr. Farah. I want to run a concern by you. I have not had much of an appetite, but I've been eating a very light breakfast around 10 am and dinner around 4pm. my weight has not changed.my issue is that when I eat, I feel bloated and feel discomfort in my stomach and below my rib cage. I am constantly burping all day. I usually have a slight feeling that I might need to go to the bathroom, but my bowel movements are small. I also get slight acid reflux. I did have a bowel obstruction about 7 years ago and spent a week in the hospital at Valley. let me know what you think. Thank you, Cathy\n", + "2025-06-17 14:14:37,581 - Provider's response to this similar message: Hi Catherine,Thank you for reaching out. I'm sorry to hear about the discomfort you're experiencing. Your symptoms of bloating, stomach discomfort, frequent burping, and slight acid reflux could be related to several gastrointestinal issues, such as gastritis, acid reflux, or even irritable bowel syndrome (IBS). Given your history of a bowel obstruction, it's important to rule out any serious conditions.I recommend scheduling an appointment so we can evaluate your symptoms more thoroughly.You can schedule an appointment at your own convenience by:1- Using the MyHealth app2- Calling the clinic directly3- Stopping by any of our clinic office locationsIn the meantime, try to eat smaller, more frequent meals and avoid foods that trigger your symptoms, such as spicy or fatty foods.Looking forward to seeing you soon.Your Primary Care TeamPleasanton-Gibraltar Primary Care CenterStanford Medicine PartnersPh: 925-534-6500Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages are forwarded to office support staff and then to the appropriate provider; as needed. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video visit. \n", + "2025-06-17 14:14:37,582 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:37,587 - Thread ID: 249369453\n", + "--------------------------------------------------------------------------------\n", + "idx: 304627\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Farah. I want to run a concern by you. I have not had much of an appetite, but I've been eating a very light breakfast around 10 am and dinner around 4pm. my weight has not changed.my issue is that when I eat, I feel bloated and feel discomfort in my stomach and below my rib cage. I am constantly burping all day. I usually have a slight feeling that I might need to go to the bathroom, but my bowel movements are small. I also get slight acid reflux. I did have a bowel obstruction about 7 years ago and spent a week in the hospital at Valley. let me know what you think. Thank you, Cathy\n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "Hi Catherine,Thank you for reaching out. I'm sorry to hear about the discomfort you're experiencing. Your symptoms of bloating, stomach discomfort, frequent burping, and slight acid reflux could be related to several gastrointestinal issues, such as gastritis, acid reflux, or even irritable bowel syndrome (IBS). Given your history of a bowel obstruction, it's important to rule out any serious conditions.I recommend scheduling an appointment so we can evaluate your symptoms more thoroughly.You can schedule an appointment at your own convenience by:1- Using the MyHealth app2- Calling the clinic directly3- Stopping by any of our clinic office locationsIn the meantime, try to eat smaller, more frequent meals and avoid foods that trigger your symptoms, such as spicy or fatty foods.Looking forward to seeing you soon.Your Primary Care TeamPleasanton-Gibraltar Primary Care CenterStanford Medicine PartnersPh: 925-534-6500Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages are forwarded to office support staff and then to the appropriate provider; as needed. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video visit. \n", + "----------------------------------------\n", + "2025-06-17 14:14:37,589 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:37,596 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:37,597 - ✅ similarity: 0.6032\n", + "2025-06-17 14:14:37,609 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Good morning, Dr. Lei I had a colonoscopy yesterday. Last night, between 12 a.m. and 1 a.m., I experienced discomfort in my chest, stomach, upper and lower back, and shoulders. I couldn’t tell if it was pain or an ache, but it felt severe, with a bit of a burning sensation, and made it difficult to sleep, breathe, or move around. It persisted for a while before gradually subsiding. Could you please advise me on what to do next? I want to inform Doctor Singh also but she is not showing up on my health app.Thank you.\n", + "2025-06-17 14:14:37,610 - Provider's response to this similar message: Good morning, Jyoti,I'm sorry to hear about the discomfort you experienced the other night. It does look like you were able to speak with an RN in regards to your symptoms. How are you feeling now? Have you communicated with the GI office?I have added Dr. Singh to your Care Team and hopefully, you are able to message her directly as well.But, I do advise, that for severe symptoms as you had experienced, you should be seeking immediate medical care and NOT message.Your Primary Care TeamPleasanton-Gibraltar Primary Care CenterStanford Medicine PartnersPh: 925-534-6500Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages are forwarded to office support staff and then to the appropriate provider; as needed. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video visit. \n", + "2025-06-17 14:14:37,611 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:37,642 - Thread ID: 249281041\n", + "--------------------------------------------------------------------------------\n", + "idx: 309086\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Alena,Thank you so much. Now I can see Dr. Singh. I appreciate.Have a nice day Jyoti \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 309085\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Wing Wu,I just checked in the care team but , it’s not showing Dr. Singh’s name there. Thank you Jyoti \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Jyoti, I have added Dr. Singh, to your care team now. \n", + "----------------------------------------\n", + "idx: 309084\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Wing Wu,Thank you for your message and concern. I’m feeling much better now, thankfully. I was able to communicate with the GI office, and having Dr. Singh added to my Care Team is reassuring. I understand that if I experience such severe symptoms again, I should seek immediate medical attention rather than messaging. I appreciate the guidance. Thank you for your support.Have a nice day Jyoti \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 309083\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning, Dr. Lei I had a colonoscopy yesterday. Last night, between 12 a.m. and 1 a.m., I experienced discomfort in my chest, stomach, upper and lower back, and shoulders. I couldn’t tell if it was pain or an ache, but it felt severe, with a bit of a burning sensation, and made it difficult to sleep, breathe, or move around. It persisted for a while before gradually subsiding. Could you please advise me on what to do next? I want to inform Doctor Singh also but she is not showing up on my health app.Thank you.\n", + "----------------------------------------\n", + "Provider Response by GIBRALTAR CLINIC ASSIST POOL:\n", + "Good morning, Jyoti,I'm sorry to hear about the discomfort you experienced the other night. It does look like you were able to speak with an RN in regards to your symptoms. How are you feeling now? Have you communicated with the GI office?I have added Dr. Singh to your Care Team and hopefully, you are able to message her directly as well.But, I do advise, that for severe symptoms as you had experienced, you should be seeking immediate medical care and NOT message.Your Primary Care TeamPleasanton-Gibraltar Primary Care CenterStanford Medicine PartnersPh: 925-534-6500Please note that Myhealth messages are meant for non-urgent needs/concerns that can be answered by a simple email exchange. Messages are forwarded to office support staff and then to the appropriate provider; as needed. Responses may take up to 3 to 5 business days. If you feel you need a more timely response, or feel that your concerns are more complicated, please call our office to set up a video visit. \n", + "----------------------------------------\n", + "2025-06-17 14:14:37,696 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:38,137 - Original Message:\n", + "2025-06-17 14:14:38,137 - original_query_message: Hi,I’m out of Amlodipine. Rite Aid insists that I have no refills available. Last week, they requested refills. At that point, MyHeath app said I was out of refills. As of Monday, MyHeath said I had refills available. I went to Rite Aid yesterday (Wednesday, Nov 6) and they said I had no refills available. Rite Aid requested more refills. Now, Rite Aid says the doctor replied that I requested a refill too soon. I am unable to get a refill. I’ve been out for probably a week or so. Do I have refills available on your end?What can I do to get this med?Thanks,Cheryl\n", + "2025-06-17 14:14:39,635 - Query Parameters:\n", + "2025-06-17 14:14:39,637 - query_message: Hi there, I’m hoping you can help me—I've run into some issues getting my blood pressure medication refilled. I take Losartan daily, and when I tried picking up my prescription at CVS, they told me there weren’t any refills left, even though I was pretty sure my doctor had sent more in a couple months ago. I double-checked online through my patient portal, and it says there should be refills, but the pharmacy keeps insisting there aren’t any and that they need to hear back from my doctor before they can give it to me.I’m starting to get a bit worried since I’ve missed a few days now, and my BP has been higher than normal—I’ve had headaches and just feel a bit “off.” Is there any way to clarify if my prescription can be refilled on your end, or is there a faster way to get this sorted out? I don’t want to go too long without my medication. Thanks for your help.\n", + "2025-06-17 14:14:39,640 - receiver: PORTOLA VALLEY PROVIDERS TEAM 2 POOL\n", + "2025-06-17 14:14:39,644 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:14:39,646 - specialty: Primary Care\n", + "2025-06-17 14:14:40,157 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:40,159 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:40,172 - ✅ similarity: 0.6748\n", + "2025-06-17 14:14:40,172 - Sender: AQUINO ORTIZ, ALONDRA [ S0362223] -> the retrieved similar message : Please refill my losartan/ HCTZ prescription as it is due for renewal and Caremark is waiting for approval.Thanks!\n", + "2025-06-17 14:14:40,174 - Provider's response to this similar message: Good morning Dr. Wachtel,Your prescription has been sent to the pharmacy.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:14:40,176 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:40,183 - Thread ID: 252254750\n", + "--------------------------------------------------------------------------------\n", + "idx: 156452\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please refill my losartan/ HCTZ prescription as it is due for renewal and Caremark is waiting for approval.Thanks!\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good morning Dr. Wachtel,Your prescription has been sent to the pharmacy.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:14:40,184 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:40,185 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:40,186 - ✅ similarity: 0.6736\n", + "2025-06-17 14:14:40,187 - Sender: ANGEL, VALERIE [ S0384043] -> the retrieved similar message : Hello Dr Paden Angelo,I hope this message finds you well. I have messaged a few times about my birth control prescription. I am all out of pills and I don't have any refills left. I know you said you refilled the prescription but the pharmacy seems to be denying it. I really need it by today. Is there anyway you could fill it to the pharmacy location in Boston? Again, I have no pills lift so I really need it filled!! Thank you for your help. Sophia Crouse\n", + "2025-06-17 14:14:40,187 - Provider's response to this similar message: Good afternoon Sophia,I hope this message finds you well.After multiple attempts, I was able to connect with the pharmacy and they shared with me that you picked up this prescription today. Please confirm that you picked up the medication.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "2025-06-17 14:14:40,188 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:40,190 - Thread ID: 250907289\n", + "--------------------------------------------------------------------------------\n", + "idx: 225519\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello AlondraThank you so much for your help today. They were able to give it to me just about 20 minutes ago after also attempting them via phone several times! I'm sorry you had so much trouble contacting them!Have a great rest of your daySophia Crouse\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "No worries, I am glad everything is sorted out. Please contact us if you have additional questions or concerns.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "idx: 225518\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Paden Angelo,I hope this message finds you well. I have messaged a few times about my birth control prescription. I am all out of pills and I don't have any refills left. I know you said you refilled the prescription but the pharmacy seems to be denying it. I really need it by today. Is there anyway you could fill it to the pharmacy location in Boston? Again, I have no pills lift so I really need it filled!! Thank you for your help. Sophia Crouse\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good afternoon Sophia,I hope this message finds you well.After multiple attempts, I was able to connect with the pharmacy and they shared with me that you picked up this prescription today. Please confirm that you picked up the medication.Best regards,Alondra AquinoPrimary Care CoordinatorStanford Health Care3250 Alpine Road, Portola Valley, CA 94028Phone: (650)498-9000Fax (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or at an Express Care Clinic. Express Care is open 9am-9pm 7 days/week. If you have an emergency, please call 911 or head to your local Emergency Department. \n", + "----------------------------------------\n", + "2025-06-17 14:14:40,191 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:40,192 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:40,192 - ✅ similarity: 0.6662\n", + "2025-06-17 14:14:40,193 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Good morning Zhi-Fang.Question, I reached out to my pharmacy to refill my Vyvanse prescription, as I do see that I have a refill green light from you from my last visit to your office in October. For some reason the pharmacy automated message is telling me that they already filled my prescription last October on the 8th.I do not know why they cannot see that I am ok to receive my November prescription that was given the Ok from you?Is there something more that needs to be done from your end for me to pick up my November prescription? Or is this an issue with my pharmacy and possibly the automated system? I’m calling the pharmacy and trying to speak with a pharmacist, but so far I’m only able to reach the automated system, and leaving a voicemail. Currently waiting for the pharmacy to reply to my messages as well.\n", + "2025-06-17 14:14:40,197 - Provider's response to this similar message: Good afternoon, Alejandro!Just spoke with your pharmacy, they said that Vyvanse is ready for pick up. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:40,200 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:40,206 - Thread ID: 250145310\n", + "--------------------------------------------------------------------------------\n", + "idx: 264304\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Zhi-Fang.Question, I reached out to my pharmacy to refill my Vyvanse prescription, as I do see that I have a refill green light from you from my last visit to your office in October. For some reason the pharmacy automated message is telling me that they already filled my prescription last October on the 8th.I do not know why they cannot see that I am ok to receive my November prescription that was given the Ok from you?Is there something more that needs to be done from your end for me to pick up my November prescription? Or is this an issue with my pharmacy and possibly the automated system? I’m calling the pharmacy and trying to speak with a pharmacist, but so far I’m only able to reach the automated system, and leaving a voicemail. Currently waiting for the pharmacy to reply to my messages as well.\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Good afternoon, Alejandro!Just spoke with your pharmacy, they said that Vyvanse is ready for pick up. Thank you, Diana A.Registered Nurse CoordinatorPrimary Care DepartmentSTANFORD Health CareOffice: 650-498-9000 Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic (Palo Alto 650-736-5211, San Jose 669-294-8888)Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:40,210 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:40,211 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:40,212 - ✅ similarity: 0.6622\n", + "2025-06-17 14:14:40,214 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Hi Sang, I tried to renew my Rx for Losartan today, but the pharmacy said it wasn’t approved by my “prescriber.”Could you let me know what’s up? I went into Quest today for the bloodwork. Should have results soon.Thanks,Jay\n", + "2025-06-17 14:14:40,214 - Provider's response to this similar message: Hello Jay, A new order for the Losartan has been placed today. The pharmacy should now be able to fill the prescription. Please connect with the pharmacy for pick up.Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:14:40,214 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:40,216 - Thread ID: 251340582\n", + "--------------------------------------------------------------------------------\n", + "idx: 203218\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sang, I tried to renew my Rx for Losartan today, but the pharmacy said it wasn’t approved by my “prescriber.”Could you let me know what’s up? I went into Quest today for the bloodwork. Should have results soon.Thanks,Jay\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Jay, A new order for the Losartan has been placed today. The pharmacy should now be able to fill the prescription. Please connect with the pharmacy for pick up.Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:14:40,216 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:40,216 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:40,217 - ✅ similarity: 0.6589\n", + "2025-06-17 14:14:40,217 - Sender: CASTRO, JOSE [ S0341205] -> the retrieved similar message : Hi,I’m out of Amlodipine. Rite Aid insists that I have no refills available. Last week, they requested refills. At that point, MyHeath app said I was out of refills. As of Monday, MyHeath said I had refills available. I went to Rite Aid yesterday (Wednesday, Nov 6) and they said I had no refills available. Rite Aid requested more refills. Now, Rite Aid says the doctor replied that I requested a refill too soon. I am unable to get a refill. I’ve been out for probably a week or so. Do I have refills available on your end?What can I do to get this med?Thanks,Cheryl\n", + "2025-06-17 14:14:40,218 - Provider's response to this similar message: Hello Cheryl,This message is being sent to inform you Zhi-Fang,PA has sent the medication request has been to your rite aid pharmacy. Please let us know if you have any issues with picking up the medication. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "2025-06-17 14:14:40,218 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:40,221 - Thread ID: 250077816\n", + "--------------------------------------------------------------------------------\n", + "idx: 267851\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I’m out of Amlodipine. Rite Aid insists that I have no refills available. Last week, they requested refills. At that point, MyHeath app said I was out of refills. As of Monday, MyHeath said I had refills available. I went to Rite Aid yesterday (Wednesday, Nov 6) and they said I had no refills available. Rite Aid requested more refills. Now, Rite Aid says the doctor replied that I requested a refill too soon. I am unable to get a refill. I’ve been out for probably a week or so. Do I have refills available on your end?What can I do to get this med?Thanks,Cheryl\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY PROVIDERS TEAM 2 POOL:\n", + "Hello Cheryl,This message is being sent to inform you Zhi-Fang,PA has sent the medication request has been to your rite aid pharmacy. Please let us know if you have any issues with picking up the medication. Kind regards,Andrea CorralPatient Care Coordinator IIStanford Health Care-Primary Care3250 Alpine Rd. Portola Valley, CA 94028Phone- (650)498-9000Fax- (650)736-0647MyHealth message are routinely checked Mon-Fri from 8:00am-4:00pm, your message will be addressed by your care team within 48-72 hours.Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:14:40,223 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:40,474 - Original Message:\n", + "2025-06-17 14:14:40,476 - original_query_message: Hi Dr. Hassan,Could I get a couple of dermatologist recommendations and do I need a referral? I'm looking for prescription retinol as well as dealing with some spots and hair on my face. Thank you,Anna\n", + "2025-06-17 14:14:42,475 - Query Parameters:\n", + "2025-06-17 14:14:42,477 - query_message: Hi Dr. Hassan,I’ve been struggling with some stubborn blemishes and mild acne along my jawline for a while now, and I’ve also noticed an increase in fine facial hair which is making me self-conscious. Over-the-counter creams haven’t really helped, so I’m considering something stronger, like a prescription retinoid. Do you know of any dermatologists in the area who are good with adult skin concerns? Also, would I need you to refer me, or can I just book directly? Thanks so much for your help!Best, Emily\n", + "2025-06-17 14:14:42,480 - receiver: FMO MY HEALTH POOL\n", + "2025-06-17 14:14:42,482 - department: FAMILY MEDICINE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:14:42,485 - specialty: Family Medicine\n", + "2025-06-17 14:14:43,998 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:43,999 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:43,999 - ✅ similarity: 0.8062\n", + "2025-06-17 14:14:44,000 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Hassan,Could I get a couple of dermatologist recommendations and do I need a referral? I'm looking for prescription retinol as well as dealing with some spots and hair on my face. Thank you,Anna\n", + "2025-06-17 14:14:44,001 - Provider's response to this similar message: Good Morning Anna,For recommendations, it is best to contact your Insurance directly for a list of providers with any filters applies based on preferences, like location. Your insurance has the most recent list of provider's in-network since provider coverage contracts can change. You can contact your insurance and speak to a representative or look online at your member portal. Each location is different on what they might require, some might or might not require a referral. It is best to call the office directly that you are interested in to find this out. If you'd like to make an appointment with our office requesting this new concern you can call 510-286-8160 & select the option for Appointment/ Scheduling. Thank you,Alicia R, MA\n", + "2025-06-17 14:14:44,002 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:44,013 - Thread ID: 254617198\n", + "--------------------------------------------------------------------------------\n", + "idx: 53737\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Hassan,Could I get a couple of dermatologist recommendations and do I need a referral? I'm looking for prescription retinol as well as dealing with some spots and hair on my face. Thank you,Anna\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Good Morning Anna,For recommendations, it is best to contact your Insurance directly for a list of providers with any filters applies based on preferences, like location. Your insurance has the most recent list of provider's in-network since provider coverage contracts can change. You can contact your insurance and speak to a representative or look online at your member portal. Each location is different on what they might require, some might or might not require a referral. It is best to call the office directly that you are interested in to find this out. If you'd like to make an appointment with our office requesting this new concern you can call 510-286-8160 & select the option for Appointment/ Scheduling. Thank you,Alicia R, MA\n", + "----------------------------------------\n", + "2025-06-17 14:14:44,014 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:44,016 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:44,020 - ✅ similarity: 0.6545\n", + "2025-06-17 14:14:44,037 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Ms Riseman---I am need of a dermatalogist referral, as I have severe acne on my back that I've tried to deal with over the counter products, but it's not working--can you make a referral? Thank you, Elias\n", + "2025-06-17 14:14:44,043 - Provider's response to this similar message: Hello,In order for us to submit a referral, we would need to see you in office as we have not seen you since 2022. Please contact our office at (510) 286-8160, option 1 for an appointment.Kind regards\n", + "2025-06-17 14:14:44,069 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:44,072 - Thread ID: 251978621\n", + "--------------------------------------------------------------------------------\n", + "idx: 170453\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Ms Riseman---I am need of a dermatalogist referral, as I have severe acne on my back that I've tried to deal with over the counter products, but it's not working--can you make a referral? Thank you, Elias\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello,In order for us to submit a referral, we would need to see you in office as we have not seen you since 2022. Please contact our office at (510) 286-8160, option 1 for an appointment.Kind regards\n", + "----------------------------------------\n", + "2025-06-17 14:14:44,073 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:44,074 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:44,074 - ✅ similarity: 0.6169\n", + "2025-06-17 14:14:44,076 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Hassan,I hope you’ve been well. Reaching out as I’ve moved to a new city in Grass Valley CA, and am needing a referral to a dermatologist here, as I’ve been having a few skin issues needing attention. I called my Aetna insurance to get a list of derms I can see in the area. Can you please write me a referral and I can call around to see who can see me soon? Or Do you need a specific name for the referral? Thank you,Taylor Jewell Gonzalez \n", + "2025-06-17 14:14:44,085 - Provider's response to this similar message: Hello, Its best to provide the name of the provider you will like to see to include it on the referral. Once you have the information let us know and we can place the referral. Yazmin Rodriguez, MA, 10/30/2024, 11:34 AM\n", + "2025-06-17 14:14:44,088 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:44,094 - Thread ID: 249300533\n", + "--------------------------------------------------------------------------------\n", + "idx: 308059\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sounds good. Here is the dermatologists info-Muellenhoff, Matthew Werner, DO 126 GLASSON WAYGRASS VALLEY, CA 95945(530) 272-2303Specialties: DermatologyIf you could please let me know when that referral gets sent over so I can call to book an appointment with him, I would really appreciate it. Thank you so much,Taylor\n", + "----------------------------------------\n", + "Provider Response by CRT INTERNAL/FAMILY MEDICINE POOL:\n", + "Good afternoon,Your dermatology referral was faxed to Muellenhoff, Matthew, DO SierraDerm 126 Glasson Way Grass Valley CA 95945 Phone: 530-272-2303 Fax: 530-272-9648 You may reach out to them for scheduling.Best regards,Sage Martin, 11/1/2024, 3:04 PM\n", + "----------------------------------------\n", + "idx: 308058\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Hassan,I hope you’ve been well. Reaching out as I’ve moved to a new city in Grass Valley CA, and am needing a referral to a dermatologist here, as I’ve been having a few skin issues needing attention. I called my Aetna insurance to get a list of derms I can see in the area. Can you please write me a referral and I can call around to see who can see me soon? Or Do you need a specific name for the referral? Thank you,Taylor Jewell Gonzalez \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hello, Its best to provide the name of the provider you will like to see to include it on the referral. Once you have the information let us know and we can place the referral. Yazmin Rodriguez, MA, 10/30/2024, 11:34 AM\n", + "----------------------------------------\n", + "2025-06-17 14:14:44,097 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:44,099 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:44,101 - ✅ similarity: 0.6126\n", + "2025-06-17 14:14:44,103 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Hassan,I wanted to follow-up regarding a dermatology referral from our last appointment. I also saw that you recommended triamcinolone acetonide - is that something I can also use on my face if I have similarly affected red areas of dermatitis? And do I need a prescription for that? Could that be called in for me at the usual pharmacy?Thanks,Elivia\n", + "2025-06-17 14:14:44,105 - Provider's response to this similar message: Hi Elivia,Thank you for your message. Here is the scheduling information for dermatology:If your patient is still interested in coordinating care at Stanford Health Care, please ask them to contact us at 650-723-6316. Regarding the triamcinolone acetonide, it is generally not recommended for use on the face due to the potential for skin thinning and other side effects. For facial dermatitis, a milder topical steroid or other treatment options may be more suitable. I recommend scheduling an appointment so we can discuss the best treatment plan for your facial dermatitis.Please use the Stanford MyHealth app to schedule an appointment at your convenience.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:14:44,107 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:44,110 - Thread ID: 249950980\n", + "--------------------------------------------------------------------------------\n", + "idx: 274224\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Sage - could you put in a referral to Golden State Dermatology either the Berkeley or Walnut Creek location?Thank you,Elivia\n", + "----------------------------------------\n", + "Provider Response by MARTIN, SAGE:\n", + "Hi Elivia,Your dermatology referral was sent to Golden State Dermatology Berkeley2320 Woolsey Street, Suite 202Berkeley, CA 94705office: 510.327.3396fax: 510.486.1133email: berkeley@gsdermca.comYou may reach out to them for scheduling.Best regards,Sage Martin, 11/12/2024, 10:53 AM\n", + "----------------------------------------\n", + "idx: 274223\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you - Stanford Dermatology does not take my insurance. Could you please put in a referral to Sutter East Bay Dermatology?Thank you,Elivia\n", + "----------------------------------------\n", + "Provider Response by CRT INTERNAL/FAMILY MEDICINE POOL:\n", + "Good morning,There is not a Sutter East Bay Dermatology specifically, however there are some dermatologists in the East Bay that are affiliated with SutterFrom the Sutter website please see the list below and let us know where you wish to be referredHovik J. Ashchyan, M.D., Kathleen M. Ting, M.D., Michael A. Trauner, M.D.Golden State Dermatology Berkeley2320 Woolsey Street, Suite 202Berkeley, CA 94705office: 510.327.3396fax: 510.486.1133email: berkeley@gsdermca.comDunn, Terris Renee, MDOFFICE OF DUNN, TERRIS RENEE2828 Telegraph Avenue Suite 2Berkeley CA 94705-1119Phone: 510-848-8404Fax (510) 848-6312Christine Min-Wei Lee, M.D.370 North Wiget LaneSuite 125Walnut Creek, CA 94598(925) 528-0117(925) 393-5996 faxChristine Min-Wei Lee, M.D.3031 Telegraph Avenue Suite 217Berkeley, CA 94705(510) 981-8222 tel(510) 981-8228 faxAdditionally outside the Stanford and Sutter system we also have the following dermatologists that we refer toAffiliates in Derm - Oakland 510 652-8091Kathy Fang - Albany 510 524-0224Julia Graves, Ani Tajirian, Jason Fung, Ingrid Roseborough - Oakland 510 452-0060Dr Werner Ju - San Leandro 510 483-0313Ernest Bloom - Alameda 510 227-7028William Ting - Hercules/ san ramon 510 669-5700Joel Crockett- Castro Valley 510 881-7822Golden State Dermatology- walnut Creek 925 945-7005Best regards,Sage Martin, 11/7/2024, 8:42 AM\n", + "----------------------------------------\n", + "idx: 274222\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Hassan,I wanted to follow-up regarding a dermatology referral from our last appointment. I also saw that you recommended triamcinolone acetonide - is that something I can also use on my face if I have similarly affected red areas of dermatitis? And do I need a prescription for that? Could that be called in for me at the usual pharmacy?Thanks,Elivia\n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Elivia,Thank you for your message. Here is the scheduling information for dermatology:If your patient is still interested in coordinating care at Stanford Health Care, please ask them to contact us at 650-723-6316. Regarding the triamcinolone acetonide, it is generally not recommended for use on the face due to the potential for skin thinning and other side effects. For facial dermatitis, a milder topical steroid or other treatment options may be more suitable. I recommend scheduling an appointment so we can discuss the best treatment plan for your facial dermatitis.Please use the Stanford MyHealth app to schedule an appointment at your convenience.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "2025-06-17 14:14:44,110 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:44,111 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:44,112 - ✅ similarity: 0.6113\n", + "2025-06-17 14:14:44,112 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, this is Chesoni Blake. And I was wondering if you could please send a referral to my dermatology All skin so I can schedule an appointment with them, my referral expired in November 2024 and it needs to be renewed.Thank you, Chesoni Blake \n", + "2025-06-17 14:14:44,113 - Provider's response to this similar message: Hi Chesoni,Thank you for reaching out. I will review your request and place a new referral to dermatology if appropriate. You will be notified once the referral is processed.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "2025-06-17 14:14:44,113 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:44,118 - Thread ID: 254956233\n", + "--------------------------------------------------------------------------------\n", + "idx: 35852\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, this is Chesoni Blake. And I was wondering if you could please send a referral to my dermatology All skin so I can schedule an appointment with them, my referral expired in November 2024 and it needs to be renewed.Thank you, Chesoni Blake \n", + "----------------------------------------\n", + "Provider Response by FMO MY HEALTH POOL:\n", + "Hi Chesoni,Thank you for reaching out. I will review your request and place a new referral to dermatology if appropriate. You will be notified once the referral is processed.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "idx: 35851\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Chesoni,Thank you for reaching out. I will review your request and place a new referral to dermatology if appropriate. You will be notified once the referral is processed.Best regards,Ebony Yvonne Tinsley, PA-C\n", + "----------------------------------------\n", + "Provider Response by CRT INTERNAL/FAMILY MEDICINE POOL:\n", + "Good afternoon,Your dermatology referral is currently pending authorization to Allskin Dermatology 2828 TELEGRAPH AVENUE BERKELEY CA 94705 Phone: 510-848-8404 Fax: 510-848-6312 You will be informed by Affinity Medical Group once a determination has been made.Best regards,Sage Martin, 1/8/2025, 1:19 PM\n", + "----------------------------------------\n", + "2025-06-17 14:14:44,120 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:44,726 - Original Message:\n", + "2025-06-17 14:14:44,731 - original_query_message: Hi Dr. Manugian, I got the results for a few tests, but it seems like the Alpha Thalassemia test is missing. I am not sure if the results takes longer or it is missed. The reason I ask is because usually when I go to the lab and they do the blood draw, the test is removed from the \"ordered tests\" in MyHealth, but this time I see that other tests are removed from \"ordered tests\" and I can see the results, but that particular test is not removed and there is no results for it. Can you please check and let me know? Do I need to go to a blood draw lab again? Thanks,Mehran \n", + "2025-06-17 14:14:46,353 - Query Parameters:\n", + "2025-06-17 14:14:46,356 - query_message: Hi Dr. Manugian,Hope you're doing well. I recently went in for some blood work, including a genetic panel for thalassemia since I’ve been having ongoing fatigue and mild anemia, and because my mom is a carrier. I just checked my patient portal and got the results for everything except the alpha thalassemia test—it still shows as “pending” and I haven’t received any update about it. The other test results were posted very quickly, so I’m getting a bit anxious as I was hoping to sort out why I’ve been feeling so tired. Is it normal for the alpha thalassemia screening to take longer to process? Or is there a chance the test wasn't performed and I might need to go back for another blood draw? I’d appreciate it if you could let me know what’s going on, as I’m eager to get some answers.Thank you so much! Sara\n", + "2025-06-17 14:14:46,358 - receiver: PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL\n", + "2025-06-17 14:14:46,360 - department: STANFORD PRIMARY CARE - PORTOLA VALLEY\n", + "2025-06-17 14:14:46,362 - specialty: Primary Care\n", + "2025-06-17 14:14:47,148 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:47,157 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:47,159 - ✅ similarity: 0.8187\n", + "2025-06-17 14:14:47,160 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Manugian, I got the results for a few tests, but it seems like the Alpha Thalassemia test is missing. I am not sure if the results takes longer or it is missed. The reason I ask is because usually when I go to the lab and they do the blood draw, the test is removed from the \"ordered tests\" in MyHealth, but this time I see that other tests are removed from \"ordered tests\" and I can see the results, but that particular test is not removed and there is no results for it. Can you please check and let me know? Do I need to go to a blood draw lab again? Thanks,Mehran \n", + "2025-06-17 14:14:47,167 - Provider's response to this similar message: Hi Mehran, Thanks for reaching out. It looks like the lab was missed, but the order is still in place and you should be able to get it done with another lab draw. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:47,170 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:47,175 - Thread ID: 249867026\n", + "--------------------------------------------------------------------------------\n", + "idx: 278677\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Manugian, I got the results for a few tests, but it seems like the Alpha Thalassemia test is missing. I am not sure if the results takes longer or it is missed. The reason I ask is because usually when I go to the lab and they do the blood draw, the test is removed from the \"ordered tests\" in MyHealth, but this time I see that other tests are removed from \"ordered tests\" and I can see the results, but that particular test is not removed and there is no results for it. Can you please check and let me know? Do I need to go to a blood draw lab again? Thanks,Mehran \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Mehran, Thanks for reaching out. It looks like the lab was missed, but the order is still in place and you should be able to get it done with another lab draw. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:47,176 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:47,177 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:47,178 - ✅ similarity: 0.7493\n", + "2025-06-17 14:14:47,179 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Alpha Thalassemia, Blood resulted on 12/27/24 at 5:07 PM.Hello Dr. Manugian,Yes I would like to know in details about what the implications of this are, what is the course of action for future and what should I keep looking out for etc. Further, I think its probably best to also get my son tested out for thalassemia just to be on the safe side and for early detection if any. It'd be great to schedule a tele visit to discuss these. Anirban\n", + "2025-06-17 14:14:47,180 - Provider's response to this similar message: Great, I see that we're scheduled to talk on 1/6/25. Talk with you then! \n", + "2025-06-17 14:14:47,181 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:47,183 - Thread ID: 254377641\n", + "--------------------------------------------------------------------------------\n", + "idx: 66048\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes. Talk to you then. Anirban\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 66047\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Alpha Thalassemia, Blood resulted on 12/27/24 at 5:07 PM.Hello Dr. Manugian,Yes I would like to know in details about what the implications of this are, what is the course of action for future and what should I keep looking out for etc. Further, I think its probably best to also get my son tested out for thalassemia just to be on the safe side and for early detection if any. It'd be great to schedule a tele visit to discuss these. Anirban\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Great, I see that we're scheduled to talk on 1/6/25. Talk with you then! \n", + "----------------------------------------\n", + "2025-06-17 14:14:47,184 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:47,185 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:47,185 - ✅ similarity: 0.7053\n", + "2025-06-17 14:14:47,186 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about Alpha Thalassemia, Blood resulted on 12/24/24, 8:54?AM...Hi Arek,Sure, ok with hematology. ThanksRegi\n", + "2025-06-17 14:14:47,187 - Provider's response to this similar message: Got it, will send referral to hematology \n", + "2025-06-17 14:14:47,187 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:47,189 - Thread ID: 254409471\n", + "--------------------------------------------------------------------------------\n", + "idx: 63999\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Alpha Thalassemia, Blood resulted on 12/24/24, 8:54?AM...Hi Arek,Sure, ok with hematology. ThanksRegi\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Got it, will send referral to hematology \n", + "----------------------------------------\n", + "2025-06-17 14:14:47,202 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:47,210 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:47,211 - ✅ similarity: 0.6728\n", + "2025-06-17 14:14:47,212 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about HIV Antigen/Antibody Screen resulted on 12/26/24, 3:19?PM...Hello Dr. Manugian,Thank you for following up on my labs. No personal or family history of Thalassemia. Let me know if additional work up is necessary to figure out why my MCV is low after the iron studies.Thank you,Charlie \n", + "2025-06-17 14:14:47,226 - Provider's response to this similar message: Hi Charlie, No iron deficiency on the tests, though they weren't able to check ferritin levels with the sample that they had. Would you return to the lab for a ferritin, hemoglobin electrophoresis and alpha thalassemia gene test? No fasting is needed, I'll place the lab orders on file for you and follow-up with the results. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:47,229 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:47,242 - Thread ID: 254383214\n", + "--------------------------------------------------------------------------------\n", + "idx: 65711\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Yes, I can go back for those labs. \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Great, I'll look out to for the results \n", + "----------------------------------------\n", + "idx: 65710\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about HIV Antigen/Antibody Screen resulted on 12/26/24, 3:19?PM...Hello Dr. Manugian,Thank you for following up on my labs. No personal or family history of Thalassemia. Let me know if additional work up is necessary to figure out why my MCV is low after the iron studies.Thank you,Charlie \n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Charlie, No iron deficiency on the tests, though they weren't able to check ferritin levels with the sample that they had. Would you return to the lab for a ferritin, hemoglobin electrophoresis and alpha thalassemia gene test? No fasting is needed, I'll place the lab orders on file for you and follow-up with the results. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:47,254 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:47,256 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:47,264 - ✅ similarity: 0.6308\n", + "2025-06-17 14:14:47,265 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Dr. Manugian,Thank you for ordering the test results. I’ve reviewed them, and most numbers seem to be consistent with previous results. However, I noticed a spike in my Hemoglobin A1C, which has me a bit concerned. Would you consider this normal? Do you have any suggestions for addressing it?Possibly related, I’ve been feeling very sleepy immediately after dinner lately. If you think a virtual chat would be helpful, I’d be happy to schedule one.Thanks,Yusuf\n", + "2025-06-17 14:14:47,266 - Provider's response to this similar message: Hi Yusuf, Thanks for reaching out. The A1c is mildly elevated though you shouldn't be feeling symptomatic. This is more a warning sign that without healthy diet and exercise you may develop diabetes in the future. I'll include some more information about what you can do below. Being sleepy after dinner is unlikely to be a symptom of this. We can certainly talk about it in a video visit if you'd like. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. Prediabetes: Healthy Changes You Can Make (02:19)Your health professional recommends that you watch this short online health video.Learn how to make healthy changes that can help delay or prevent type 2 diabetes. Purpose: Discusses healthy eating and moving more. Encourages making small changes over time.Goal: The user will learn how to make healthy changes that can help delay or prevent type 2 diabetes.Watch: Scan the QR code or visit the link to view video https://hwi.se/r/Kywrm2tffzcl4Current as of: October 2, 2023Content Version: 14.2© 2024 Ignite Healthwise, LLC. Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "2025-06-17 14:14:47,273 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:47,284 - Thread ID: 252871359\n", + "--------------------------------------------------------------------------------\n", + "idx: 129774\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Manugian,Thank you for ordering the test results. I’ve reviewed them, and most numbers seem to be consistent with previous results. However, I noticed a spike in my Hemoglobin A1C, which has me a bit concerned. Would you consider this normal? Do you have any suggestions for addressing it?Possibly related, I’ve been feeling very sleepy immediately after dinner lately. If you think a virtual chat would be helpful, I’d be happy to schedule one.Thanks,Yusuf\n", + "----------------------------------------\n", + "Provider Response by PORTOLA VALLEY MYHEALTH CLINIC MESSAGING POOL:\n", + "Hi Yusuf, Thanks for reaching out. The A1c is mildly elevated though you shouldn't be feeling symptomatic. This is more a warning sign that without healthy diet and exercise you may develop diabetes in the future. I'll include some more information about what you can do below. Being sleepy after dinner is unlikely to be a symptom of this. We can certainly talk about it in a video visit if you'd like. Best, Arek Manugian, MDStanford Primary Care Portola Valley Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. Prediabetes: Healthy Changes You Can Make (02:19)Your health professional recommends that you watch this short online health video.Learn how to make healthy changes that can help delay or prevent type 2 diabetes. Purpose: Discusses healthy eating and moving more. Encourages making small changes over time.Goal: The user will learn how to make healthy changes that can help delay or prevent type 2 diabetes.Watch: Scan the QR code or visit the link to view video https://hwi.se/r/Kywrm2tffzcl4Current as of: October 2, 2023Content Version: 14.2© 2024 Ignite Healthwise, LLC. Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "----------------------------------------\n", + "2025-06-17 14:14:47,286 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:47,650 - Original Message:\n", + "2025-06-17 14:14:47,651 - original_query_message: I have a question about CT SINUS WO IV CONTRAST resulted on 10/28/24 at 12:51 PM.I have to get antibiotics for the sinus infection the allergist discovered based on her findings from the recent CT scan results in the My health app. & I contacted your office to request medication please Dr Alper.\n", + "2025-06-17 14:14:49,162 - Query Parameters:\n", + "2025-06-17 14:14:49,164 - query_message: Hi Dr. Alper,I hope you’re doing well. I wanted to check in because I’ve been having a lot of facial pressure and congestion lately, along with headaches that just won’t go away. My allergist had me get a recent CT scan of my sinuses (done on 10/28), and she mentioned there are signs of a sinus infection showing up on the results in my health portal. I haven’t started any medications yet, but the symptoms seem to be getting worse. Would you be able to prescribe something, maybe antibiotics, to help clear this up? I’d really appreciate your advice on the best treatment, since it’s starting to affect my sleep and work. Let me know what you think or if you need any more info from me. Thanks so much!\n", + "2025-06-17 14:14:49,165 - receiver: VCPA IM 1133 # 203 MA POOL\n", + "2025-06-17 14:14:49,170 - department: INTERNAL MEDICINE VCL 1133 203\n", + "2025-06-17 14:14:49,172 - specialty: Internal Medicine\n", + "2025-06-17 14:14:50,120 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:50,122 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:50,124 - ✅ similarity: 0.8509\n", + "2025-06-17 14:14:50,125 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Alper,I was seen by you a few weeks ago and had a sinus infection that you prescribed antibiotics for. Through the course of the antibiotics I started to feel better but still had a decent amount of congestion even after finishing the antibiotics. A few days later it cleared, but I am now feeling symptoms similar to the sinus infection come back. I wake up with a headache, I have some sinus pressure on the right side of my nose, my right ear feels a little clogged and achy and I am congested with just a little bit of green mucus. Although the symptoms are not yet as severe as when I saw you I feel them increasing and my concerns is that they will only get worse. Is it possible that the sinus infection did not clear? Thank you,Mercedeh \n", + "2025-06-17 14:14:50,127 - Provider's response to this similar message: That is possible. I sent a refill of the antibiotics. If that does not help please let me know\n", + "2025-06-17 14:14:50,129 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:50,135 - Thread ID: 251670224\n", + "--------------------------------------------------------------------------------\n", + "idx: 185937\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Alper,I was seen by you a few weeks ago and had a sinus infection that you prescribed antibiotics for. Through the course of the antibiotics I started to feel better but still had a decent amount of congestion even after finishing the antibiotics. A few days later it cleared, but I am now feeling symptoms similar to the sinus infection come back. I wake up with a headache, I have some sinus pressure on the right side of my nose, my right ear feels a little clogged and achy and I am congested with just a little bit of green mucus. Although the symptoms are not yet as severe as when I saw you I feel them increasing and my concerns is that they will only get worse. Is it possible that the sinus infection did not clear? Thank you,Mercedeh \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "That is possible. I sent a refill of the antibiotics. If that does not help please let me know\n", + "----------------------------------------\n", + "2025-06-17 14:14:50,137 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:50,139 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:50,140 - ✅ similarity: 0.8109\n", + "2025-06-17 14:14:50,140 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Doctor, hope you’re well. I have a chronic sinus infection that I’ve had for about 6 weeks. I have nasal polyps that are inflamed and can’t breathe through my nose. I also have intense pressure around my nose and eyes and forehead. Would you be able to prescribe me an antibiotic or nasal spray to help with this? I have an appointment with ENT scheduled but unfortunately it is not until April. Thanks for your help. \n", + "2025-06-17 14:14:50,141 - Provider's response to this similar message: Hello Felipe,An appointment is needed with dr to discuss symptoms, I have attempted to schedule an appointment but their was no answer from your mobile phone. Please call our office to schedule a appointment at (925) 373-4541 it can be a video visit or in person appointment. Thank you,Front Office Staff\n", + "2025-06-17 14:14:50,142 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:50,150 - Thread ID: 255511190\n", + "--------------------------------------------------------------------------------\n", + "idx: 12381\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, thank you for your response. I ended up finding another provider that helped me out. Thanks again. \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 12380\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Doctor, hope you’re well. I have a chronic sinus infection that I’ve had for about 6 weeks. I have nasal polyps that are inflamed and can’t breathe through my nose. I also have intense pressure around my nose and eyes and forehead. Would you be able to prescribe me an antibiotic or nasal spray to help with this? I have an appointment with ENT scheduled but unfortunately it is not until April. Thanks for your help. \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Felipe,An appointment is needed with dr to discuss symptoms, I have attempted to schedule an appointment but their was no answer from your mobile phone. Please call our office to schedule a appointment at (925) 373-4541 it can be a video visit or in person appointment. Thank you,Front Office Staff\n", + "----------------------------------------\n", + "2025-06-17 14:14:50,156 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:50,156 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:50,157 - ✅ similarity: 0.7766\n", + "2025-06-17 14:14:50,158 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have a question about CT SINUS WO IV CONTRAST resulted on 10/28/24 at 12:51 PM.I have to get antibiotics for the sinus infection the allergist discovered based on her findings from the recent CT scan results in the My health app. & I contacted your office to request medication please Dr Alper.\n", + "2025-06-17 14:14:50,158 - Provider's response to this similar message: Antibiotics may not be helpful. You might need to see an ENT about endoscopic sinus surgery. What does the Allergist think\n", + "2025-06-17 14:14:50,159 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:50,164 - Thread ID: 250198156\n", + "--------------------------------------------------------------------------------\n", + "idx: 261686\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "The Allergist concurs.Thank you.\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "A prescription has been sent for Levaquin\n", + "----------------------------------------\n", + "idx: 261685\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about CT SINUS WO IV CONTRAST resulted on 10/28/24 at 12:51 PM.I have to get antibiotics for the sinus infection the allergist discovered based on her findings from the recent CT scan results in the My health app. & I contacted your office to request medication please Dr Alper.\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Antibiotics may not be helpful. You might need to see an ENT about endoscopic sinus surgery. What does the Allergist think\n", + "----------------------------------------\n", + "2025-06-17 14:14:50,165 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:50,166 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:50,167 - ✅ similarity: 0.7518\n", + "2025-06-17 14:14:50,167 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Sinus infection. Help. Can you squeeze me into today?Based on my past experience I believe I have a sinus infection. It has been more than 3 years since my last one and amoxicillin knocked it out. I have had a constant runny nose and impacted sinuses for >10 days. On 5 different days there was little I could do to stop the runny (like water) nose despite taking up to (4 Zyrtec, nasal allergy spray, Mucinex each day), then I would be stuffed up but no runny nose, followed by another day of unstoppable running. Today my impacted nose/sinus area woke me up at 3 am and I've sneezed more than 30 times and my nose has been running constantly. It is now 6:05 am. Just like in previous days. Can you squeeze me in to see Dr. Alpers? I can be at the office in 20 minutes. Thanks.\n", + "2025-06-17 14:14:50,168 - Provider's response to this similar message: Hi, I’m sorry to hear that you aren’t feeling well. Unfortunately, Dr. Alper is fully booked for today. However, I see that you have an appointment with our PA, Reta, at 1:00 PM.Please make sure to keep that appointment, as it will be a great opportunity for you to discuss your concerns.Wishing you a speedy recovery!\n", + "2025-06-17 14:14:50,170 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:50,172 - Thread ID: 248653716\n", + "--------------------------------------------------------------------------------\n", + "idx: 340086\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks for trying to reach me. \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 340085\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sinus infection. Help. Can you squeeze me into today?Based on my past experience I believe I have a sinus infection. It has been more than 3 years since my last one and amoxicillin knocked it out. I have had a constant runny nose and impacted sinuses for >10 days. On 5 different days there was little I could do to stop the runny (like water) nose despite taking up to (4 Zyrtec, nasal allergy spray, Mucinex each day), then I would be stuffed up but no runny nose, followed by another day of unstoppable running. Today my impacted nose/sinus area woke me up at 3 am and I've sneezed more than 30 times and my nose has been running constantly. It is now 6:05 am. Just like in previous days. Can you squeeze me in to see Dr. Alpers? I can be at the office in 20 minutes. Thanks.\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hi, I’m sorry to hear that you aren’t feeling well. Unfortunately, Dr. Alper is fully booked for today. However, I see that you have an appointment with our PA, Reta, at 1:00 PM.Please make sure to keep that appointment, as it will be a great opportunity for you to discuss your concerns.Wishing you a speedy recovery!\n", + "----------------------------------------\n", + "2025-06-17 14:14:50,172 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:50,173 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:50,173 - ✅ similarity: 0.7457\n", + "2025-06-17 14:14:50,174 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : PA Reta Samimi suggested I see Dr. Alper right away for treatment of what we both thought was a sinus infection. But 14 days of Augmentum has not helped. Samimi thinks I may need to see an ENT. I have been suffering for a month with the congestion and a faucet-like runny nose. Tx\n", + "2025-06-17 14:14:50,174 - Provider's response to this similar message: Hello Stephen,I left you a voice mail. Schedule you an in office with Dr. Alper for Monday 11/11 @ 1020 am. Please let me know if this does not work, so we can schedule for a later date. Thank you,Angela M, MA\n", + "2025-06-17 14:14:50,175 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:50,177 - Thread ID: 250002541\n", + "--------------------------------------------------------------------------------\n", + "idx: 271869\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. That is perfect. Pls reconfirm that I have this appt. \n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Yes, you are schedule with Dr. Alper for 11/11 @ 1020 am in office.Thank you,Angela M, MA\n", + "----------------------------------------\n", + "idx: 271868\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "PA Reta Samimi suggested I see Dr. Alper right away for treatment of what we both thought was a sinus infection. But 14 days of Augmentum has not helped. Samimi thinks I may need to see an ENT. I have been suffering for a month with the congestion and a faucet-like runny nose. Tx\n", + "----------------------------------------\n", + "Provider Response by VCPA IM 1133 # 203 MA POOL:\n", + "Hello Stephen,I left you a voice mail. Schedule you an in office with Dr. Alper for Monday 11/11 @ 1020 am. Please let me know if this does not work, so we can schedule for a later date. Thank you,Angela M, MA\n", + "----------------------------------------\n", + "2025-06-17 14:14:50,178 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:50,744 - Original Message:\n", + "2025-06-17 14:14:50,745 - original_query_message: Hello Dr Karnany, Happy New Year. I have an appt on the 16 with you. I did the labs already. I see the endocrinologist already, She did a modification on the cortisol lab test and when I went I did your labs they were not suppose tondo the ones I did already, they even asked me, but at the end they did them.I am having a weird feeling on my legs front take me to the bottom. They feel numb, heavy, weak, and sometimes tingling now I can feel that also on my hands and today I noticed that he was even hard for me to type.. and I still have a lot of trouble to sleep. My dreams are very vivid when I woke up. I feel very tired. Please let me know if you think that is the medicine still Thank you\n", + "2025-06-17 14:14:52,281 - Query Parameters:\n", + "2025-06-17 14:14:52,283 - query_message: Hi Dr. Karnany,Hope you’re doing well. I wanted to check in before my upcoming appointment. I had my blood work done as you requested, but I realized some of the tests might have overlapped with what my endocrinologist just ordered (they had me do some follow-up cortisol labs too). The lab staff mentioned it, but went ahead anyway—I hope that’s okay.I’ve been having some strange sensations lately, mostly in my legs—they often feel really heavy and almost rubbery, which makes it hard to walk sometimes. I notice a numbness, especially around my shins and ankles, and there’s occasional tingling in my fingers and feet now too. I even noticed my grip felt weak today and typing is more difficult than usual.On top of that, my sleep has been really disrupted; I wake up several times a night, and when I do get to sleep, my dreams are so intense and realistic that I wake up feeling almost more exhausted than when I went to bed.I’m wondering if these symptoms could be side effects from my medication or if there might be something else going on. Should I be concerned, and is there anything you recommend I do while I wait for our appointment? Thanks so much for your help.\n", + "2025-06-17 14:14:52,284 - receiver: KARNANI, JAYA\n", + "2025-06-17 14:14:52,286 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS HAYWARD\n", + "2025-06-17 14:14:52,287 - specialty: Primary Care\n", + "2025-06-17 14:14:52,742 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:52,745 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:52,746 - ✅ similarity: 0.8806\n", + "2025-06-17 14:14:52,747 - Sender: CACHERO, LOVELLE [ S0087338] -> the retrieved similar message : Hello Dr Karnany, Happy New Year. I have an appt on the 16 with you. I did the labs already. I see the endocrinologist already, She did a modification on the cortisol lab test and when I went I did your labs they were not suppose tondo the ones I did already, they even asked me, but at the end they did them.I am having a weird feeling on my legs front take me to the bottom. They feel numb, heavy, weak, and sometimes tingling now I can feel that also on my hands and today I noticed that he was even hard for me to type.. and I still have a lot of trouble to sleep. My dreams are very vivid when I woke up. I feel very tired. Please let me know if you think that is the medicine still Thank you\n", + "2025-06-17 14:14:52,750 - Provider's response to this similar message: Hello Maria,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Karnani) and I will be responding to your message today.Thank you for your message. I'm sorry to hear about the symptoms you're experiencing. The numbness, heaviness, weakness, and tingling in your legs and hands could potentially be related to your medications, but it could also be due to other factors such as neuropathy or other underlying conditions. Regarding your trouble sleeping and vivid dreams, these can sometimes be side effects of medications like Cymbalta (duloxetine) and gabapentin. Since you have an appointment with Dr Karnani on the 16th, I recommend you discuss these symptoms in more detail and evaluate your medications and overall health. In the meantime, if your symptoms worsen or become severe, please seek immediate medical attention.Take care,Corina Scheel Clark, PA\n", + "2025-06-17 14:14:52,753 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:52,758 - Thread ID: 255068692\n", + "--------------------------------------------------------------------------------\n", + "idx: 31082\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Karnany, Happy New Year. I have an appt on the 16 with you. I did the labs already. I see the endocrinologist already, She did a modification on the cortisol lab test and when I went I did your labs they were not suppose tondo the ones I did already, they even asked me, but at the end they did them.I am having a weird feeling on my legs front take me to the bottom. They feel numb, heavy, weak, and sometimes tingling now I can feel that also on my hands and today I noticed that he was even hard for me to type.. and I still have a lot of trouble to sleep. My dreams are very vivid when I woke up. I feel very tired. Please let me know if you think that is the medicine still Thank you\n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Hello Maria,Thank you for contacting Stanford Medicine Partners Primary Care Castro Valley. I am Corina Scheel Clark, PA, a physician assistant. I work with your PCP (Dr. Karnani) and I will be responding to your message today.Thank you for your message. I'm sorry to hear about the symptoms you're experiencing. The numbness, heaviness, weakness, and tingling in your legs and hands could potentially be related to your medications, but it could also be due to other factors such as neuropathy or other underlying conditions. Regarding your trouble sleeping and vivid dreams, these can sometimes be side effects of medications like Cymbalta (duloxetine) and gabapentin. Since you have an appointment with Dr Karnani on the 16th, I recommend you discuss these symptoms in more detail and evaluate your medications and overall health. In the meantime, if your symptoms worsen or become severe, please seek immediate medical attention.Take care,Corina Scheel Clark, PA\n", + "----------------------------------------\n", + "2025-06-17 14:14:52,760 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:52,761 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:52,762 - ✅ similarity: 0.6391\n", + "2025-06-17 14:14:52,763 - Sender: CACHERO, LOVELLE [ S0087338] -> the retrieved similar message : Dr KI just finish the Paxlovia this morning when can I take the meds that I stopped also going for blood test tomorrow morning looks like you were right they want to do engiogram want to check my Kinneys see if it can handle the dyeTake careFred \n", + "2025-06-17 14:14:52,764 - Provider's response to this similar message: Dear FredResume normal medications tomorrow Sincerely- Jaya Karnani MD\n", + "2025-06-17 14:14:52,765 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:52,767 - Thread ID: 249818794\n", + "--------------------------------------------------------------------------------\n", + "idx: 280960\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr KI just finish the Paxlovia this morning when can I take the meds that I stopped also going for blood test tomorrow morning looks like you were right they want to do engiogram want to check my Kinneys see if it can handle the dyeTake careFred \n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear FredResume normal medications tomorrow Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "2025-06-17 14:14:52,768 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:52,768 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:52,769 - ✅ similarity: 0.6246\n", + "2025-06-17 14:14:52,770 - Sender: CACHERO, LOVELLE [ S0087338] -> the retrieved similar message : Hi Dr Karnani, I reviewed my results and your letter, and will start the vitamin B and prescription vitamin D this week. I started taking Nutrafol yesterday. I do take calcium 500mg (with D3 & Zinc) daily. Just want to make sure it's ok for me to continue the calcium gummies. I have been taking the 10 mg of melatonin as you suggested - it hasn't really helped. Sometimes I fall asleep after about an hour or 2, some nights I lay in bed for hours waiting to fall asleep. Regardless of what time I fall asleep, I wake up around 4am just about every day and don't go back to sleep. I'm so tired of being tired and not having any energy. One thing I forgot to mention to you is I have a really tough time with focusing and staying on task, both at home and work. Today a friend suggested I take Magnesium to help me sleep. What are your thoughts on it?\n", + "2025-06-17 14:14:52,770 - Provider's response to this similar message: Dear JulieStop the Nutrafol - start it after ou complete the Vitamin D2 prescription Try Magnesium glycinate - see if it helps with focus and sleep. If no difference after 2 weeks I recomend we try a prescription - we can schedule a video visit to discuss this - let me know. Let me know if you have any other questions. Sincerely- Jaya Karnani MD\n", + "2025-06-17 14:14:52,771 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:52,773 - Thread ID: 248841840\n", + "--------------------------------------------------------------------------------\n", + "idx: 331260\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Karnani, I reviewed my results and your letter, and will start the vitamin B and prescription vitamin D this week. I started taking Nutrafol yesterday. I do take calcium 500mg (with D3 & Zinc) daily. Just want to make sure it's ok for me to continue the calcium gummies. I have been taking the 10 mg of melatonin as you suggested - it hasn't really helped. Sometimes I fall asleep after about an hour or 2, some nights I lay in bed for hours waiting to fall asleep. Regardless of what time I fall asleep, I wake up around 4am just about every day and don't go back to sleep. I'm so tired of being tired and not having any energy. One thing I forgot to mention to you is I have a really tough time with focusing and staying on task, both at home and work. Today a friend suggested I take Magnesium to help me sleep. What are your thoughts on it?\n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear JulieStop the Nutrafol - start it after ou complete the Vitamin D2 prescription Try Magnesium glycinate - see if it helps with focus and sleep. If no difference after 2 weeks I recomend we try a prescription - we can schedule a video visit to discuss this - let me know. Let me know if you have any other questions. Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "2025-06-17 14:14:52,773 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:52,774 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:52,775 - ✅ similarity: 0.6171\n", + "2025-06-17 14:14:52,775 - Sender: TREJO, MIRIAM [ S0322530] -> the retrieved similar message : Hello Dr. Karnani, you told me that I don’t have to see an endocrinologist if I don’t then you should be the one adjusting the hormone medication for me? If yes, I need to let you know that I am being feeling very tired and dizzy They put the order to do labs. I will go ahead and do them that way you can check them and see if you need to adjust the medication.Thank you \n", + "2025-06-17 14:14:52,776 - Provider's response to this similar message: Dear MariaLabs show that we need to decrease dose of thyroid medication. I recomend we change to 88mcg daily - please confirm if you agree and I will send the prescription Sincerely- Jaya Karnani MD\n", + "2025-06-17 14:14:52,777 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:52,806 - Thread ID: 248935845\n", + "--------------------------------------------------------------------------------\n", + "idx: 326532\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr, yes I agreeThank you\n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear MariaPrescription has been sent. Please keep your appointment with me 12/5 and we will discuss next steps Let me know if you have any other questions. Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "idx: 326531\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Karnani, you told me that I don’t have to see an endocrinologist if I don’t then you should be the one adjusting the hormone medication for me? If yes, I need to let you know that I am being feeling very tired and dizzy They put the order to do labs. I will go ahead and do them that way you can check them and see if you need to adjust the medication.Thank you \n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear MariaLabs show that we need to decrease dose of thyroid medication. I recomend we change to 88mcg daily - please confirm if you agree and I will send the prescription Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "idx: 326530\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Karnani, If I don’t need to see an endocrinologist is fine I’ll wait. I start with the medicine for the thyroid today. Surgery went fine.after surgery I was in pain, but it went down..Dr. My concern is the sinus headache yesterday before surgery. I woke up with a sinus headache again and is been going on and that is the worst thing that bothered me right now. I am doing the Flonase taking the allergy medication doing the nitty pot and this time even with the strong medication they gave me for pain doesn’t go away completely. I know we talk about it that if I continue having them you was going to refer me to Specialist), can we go ahead and do it please?Thank you, Dr. See you in December. \n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "Dear MariaAn ENT referral has been placed and they will call you to schedule an appointment Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "idx: 326529\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr., I want to let you know that I have the surgery for the thyroid yesterday.They told me to set up appointment with my primary doctor and also with the endocrinologist. I do not have one due to Dr. Mehta doesn’t work with you guys anymore. Please let me know with who should I go and when I can see you thank you.\n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear MariaHow did it go? Follow up should be with the surgery team per their note and they did call you to schedule an appointment. You do not need to see endocrinology but if you would like to we can schedule with a covering doc at our castro valley clinic. We can call you to schedule - let me know You should continue Levothyroxine and see me in December as planned and do lab 1 week before.Let me know if you have any other questions. Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "2025-06-17 14:14:52,808 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:52,808 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:52,809 - ✅ similarity: 0.5784\n", + "2025-06-17 14:14:52,830 - Sender: CACHERO, LOVELLE [ S0087338] -> the retrieved similar message : Hi Dr. Kani it has been two weeks since I last saw you. I can’t say that I’ve gotten any better. I was on vacation last week and went back to work yesterday. I felt OK stiff but not hurting was able to go but sitting down all day makes me worse. I was getting up every 15 minutes and moving around, but by the time I left work, I was almost unable to walk and drive home. I had to call off of work today because I could not move well, And I feel like the medicines aren’t doing anything. It’s been over three weeks now, but I’ve had no improvements. Please advise. Thank you.\n", + "2025-06-17 14:14:52,831 - Provider's response to this similar message: Dear MichelleI recomend we schedule a follow up to discuss further. I do have openings on Thursday in Hayward - we can call you to schedule - let us know Sincerely- Jaya Karnani MD\n", + "2025-06-17 14:14:52,832 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:52,866 - Thread ID: 252115552\n", + "--------------------------------------------------------------------------------\n", + "idx: 163482\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, please call me to schedule an appointment for Thursday.\n", + "----------------------------------------\n", + "Provider Response by SMPPCCV CARE TEAM POOL:\n", + "Dear Michelle,Good Afternoon. Dr. Karnani does have a 10.20 am and 1.40 pm on 12/4/2024. Please let me know what time works well for youSincerely,Lovelle Cachero, MA\n", + "----------------------------------------\n", + "idx: 163481\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kani it has been two weeks since I last saw you. I can’t say that I’ve gotten any better. I was on vacation last week and went back to work yesterday. I felt OK stiff but not hurting was able to go but sitting down all day makes me worse. I was getting up every 15 minutes and moving around, but by the time I left work, I was almost unable to walk and drive home. I had to call off of work today because I could not move well, And I feel like the medicines aren’t doing anything. It’s been over three weeks now, but I’ve had no improvements. Please advise. Thank you.\n", + "----------------------------------------\n", + "Provider Response by KARNANI, JAYA:\n", + "Dear MichelleI recomend we schedule a follow up to discuss further. I do have openings on Thursday in Hayward - we can call you to schedule - let us know Sincerely- Jaya Karnani MD\n", + "----------------------------------------\n", + "2025-06-17 14:14:52,881 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:53,329 - Original Message:\n", + "2025-06-17 14:14:53,329 - original_query_message: Hello Dr. Nayak,I would have completed four weeks of tirzapetide on Jan 13. The next appointment available for you is Jan 21st which will be one day after my next dose. Is there a way to get an earlier appointment given it may also take time to get the medication?\n", + "2025-06-17 14:14:54,839 - Query Parameters:\n", + "2025-06-17 14:14:54,841 - query_message: Hi Dr. Nayak, I hope you're well. I'm currently on my 4th week of tirzepatide and have been following the dosing schedule as prescribed. However, I've been experiencing some mild nausea and fatigue the past few days, which I'm not sure is typical. My next scheduled dose is coming up soon, but the earliest appointment I could book with you is after I'm supposed to take it. I'm a bit concerned about starting the next dose, especially with these side effects and not knowing how long it'll take to get the refill. Is there any possibility to chat sooner or get some advice in the meantime about whether I should continue or make any adjustments? Thank you so much for your help!\n", + "2025-06-17 14:14:54,843 - receiver: PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:14:54,844 - department: STANFORD PRIMARY CARE LOS ALTOS\n", + "2025-06-17 14:14:54,846 - specialty: Primary Care\n", + "2025-06-17 14:14:55,738 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:55,740 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:55,742 - ✅ similarity: 0.7443\n", + "2025-06-17 14:14:55,743 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Nayak,I would have completed four weeks of tirzapetide on Jan 13. The next appointment available for you is Jan 21st which will be one day after my next dose. Is there a way to get an earlier appointment given it may also take time to get the medication?\n", + "2025-06-17 14:14:55,745 - Provider's response to this similar message: Hi Marilyn,Thank you for your message. Dr. Nayaks next available opening will be on Tuesday, January 7th at 10:30am for a video visit only. Will that time and date work for you?Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "2025-06-17 14:14:55,749 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:55,757 - Thread ID: 254374847\n", + "--------------------------------------------------------------------------------\n", + "idx: 66206\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Is there an evening appointment available? If not, I’ll take this one.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Marilyn,Unfortunately, Dr. Nayak does not have any other openings. I have scheduled your appointment.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 66205\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Nayak,I would have completed four weeks of tirzapetide on Jan 13. The next appointment available for you is Jan 21st which will be one day after my next dose. Is there a way to get an earlier appointment given it may also take time to get the medication?\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Marilyn,Thank you for your message. Dr. Nayaks next available opening will be on Tuesday, January 7th at 10:30am for a video visit only. Will that time and date work for you?Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "2025-06-17 14:14:55,758 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:55,758 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:55,759 - ✅ similarity: 0.6719\n", + "2025-06-17 14:14:55,759 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Following up on the previous message, as we're nearing the time when I need to renew the tirzepatide. I've noticed over the past roughly two weeks that diet has started to increase and weight loss has slowed and possibly started to reverse. It may be that my GLP-1/GIP sensitivity is decreasing, or something else, but I would expect the loading dose to only go so far.Rather than staying at 2.5mg, let's increase to 5mg starting with the next prescription. It would be additionally convenient if we could do a 90-day prescription or similar rather than the default 4 weeks as we near the new year, but we'll see what the options are.\n", + "2025-06-17 14:14:55,760 - Provider's response to this similar message: Hi Tal,It looks like on 12/09/2024 Dr. Lee sent your new prescription to Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "2025-06-17 14:14:55,760 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:55,762 - Thread ID: 252992681\n", + "--------------------------------------------------------------------------------\n", + "idx: 125332\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It would appear that the additional prescription you mentioned above sent to my regular Walgreens in San Francisco caused the one I already transferred to NY to fail as an unauthorized duplicate refill, and they won’t change that status unless you contact them.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,I just want to clarify, you want me to call the pharmacy in San Francisco and ask them to un-bill the prescription we just sent over so that way you can pick up the prescription you had transferred over to New York. Is that correct?Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 125331\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "There may have been some confusion here. I’m stuck in NY for the next week, and when I moved my prescription over it seems they reached out to your office for some sort of approval, and were declined. I don’t need to refill it in San Francisco at the moment. Unless I plan to miss a dose, I need to refill it in New York. Here’s the address for the new pharmacy:Walgreens31 Cavalry Dr, New City, NY 10956\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,Thank you for explaining that. Unfortunately, due to the state regulation, we are unable to fill any medications to an out-of-state pharmacy. However, you can contact that pharmacy (San Francisco) to have them transfer the prescription to your out-of-state pharmacy. We apologize for the inconvenience.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 125330\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It seems in the process of switching it to a different pharmacy it entered verification hell, depending either on insurance, your office, or some combination of the two, but the 5mg dose of tirzepatide is currently in “refill requested” status from the pharmacy.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,I spoke with the pharmacy and they stated you had transferred the prescription to New York. They are unable to transfer the prescription back to San Francisco. I have sent a new order to Dr. Lee to be filled at Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET. Please allow 3-5 business days for this to process.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "----------------------------------------\n", + "idx: 125329\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Following up on the previous message, as we're nearing the time when I need to renew the tirzepatide. I've noticed over the past roughly two weeks that diet has started to increase and weight loss has slowed and possibly started to reverse. It may be that my GLP-1/GIP sensitivity is decreasing, or something else, but I would expect the loading dose to only go so far.Rather than staying at 2.5mg, let's increase to 5mg starting with the next prescription. It would be additionally convenient if we could do a 90-day prescription or similar rather than the default 4 weeks as we near the new year, but we'll see what the options are.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,It looks like on 12/09/2024 Dr. Lee sent your new prescription to Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "2025-06-17 14:14:55,763 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:55,764 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:55,764 - ✅ similarity: 0.6301\n", + "2025-06-17 14:14:55,765 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Edwards, I had my TSH blood work done today and result came back very low.. Can you advised new dosage? We can also do video conference on this Friday, Nov 29 or Monday if needed. I do feel light headed and increased heart rate about 4hrs after I take medicine.Thank you,Urvi\n", + "2025-06-17 14:14:55,765 - Provider's response to this similar message: Dear Urvi Pankhaniya, It's important to discuss new symptoms and medication changes directly with a healthcare provider who can assess your situation safely and effectively. Please make an appointment to address your concerns with your provider or another member of our care team. To make scheduling easier, please use the attached scheduling ticket. If you can't find an appointment that fits your needs, don’t hesitate to call 650-498-9000 for assistance. We’re here to help! MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. For same-day appointments, please enable the \"Extend to include other providers who work directly with your chosen provider\" option when scheduling. This will help the app find additional available providers in Los Altos. Some of our providers dedicated to same-day appointments include:Dr. Julie Lee,Dr. Sharif VakiliChristopher GonzalesLeeAnn RanieriIlyssa PaduaThank you,Stanford Primary Care Los Altos\n", + "2025-06-17 14:14:55,766 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:55,767 - Thread ID: 251830061\n", + "--------------------------------------------------------------------------------\n", + "idx: 178275\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Edwards, I had my TSH blood work done today and result came back very low.. Can you advised new dosage? We can also do video conference on this Friday, Nov 29 or Monday if needed. I do feel light headed and increased heart rate about 4hrs after I take medicine.Thank you,Urvi\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Dear Urvi Pankhaniya, It's important to discuss new symptoms and medication changes directly with a healthcare provider who can assess your situation safely and effectively. Please make an appointment to address your concerns with your provider or another member of our care team. To make scheduling easier, please use the attached scheduling ticket. If you can't find an appointment that fits your needs, don’t hesitate to call 650-498-9000 for assistance. We’re here to help! MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. For same-day appointments, please enable the \"Extend to include other providers who work directly with your chosen provider\" option when scheduling. This will help the app find additional available providers in Los Altos. Some of our providers dedicated to same-day appointments include:Dr. Julie Lee,Dr. Sharif VakiliChristopher GonzalesLeeAnn RanieriIlyssa PaduaThank you,Stanford Primary Care Los Altos\n", + "----------------------------------------\n", + "2025-06-17 14:14:55,768 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:55,768 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:55,769 - ✅ similarity: 0.6180\n", + "2025-06-17 14:14:55,769 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Marlene,Dr Nayak asked me to schedule a 6 week follow up. After my appointment the front desk was closed so I could not.I called the main call center just now but they could not schedule this.Could you please schedule a 6 week follow up for me? It would be great if it was between 11am-2pm or so.Thank you so much!Kind regards.- Borek\n", + "2025-06-17 14:14:55,770 - Provider's response to this similar message: Hi Borek R Vokach-Brodsky Thank you for your message. Yes of course! I was able to find an appointment for Jan. 24th at 11:00am. I went ahead and got you scheduled. Please let me know if I can help you with anything else. Thank you for choosing Stanford Health Care.Marlene M. (she/her)Patient Care CoordinatorStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "2025-06-17 14:14:55,770 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:55,781 - Thread ID: 253446852\n", + "--------------------------------------------------------------------------------\n", + "idx: 107149\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Marlene,I should have said I have a conflict every Friday morning.Do you want to call me? It might be easier. 408-886-1886.For example, the week of the 20th any day but Friday would work.- Borek\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 107148\n", + "Subject: RE:Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Marlene,I'm sorry. I have a conflict on that Friday morning.Any other day that week would be fine and especially 11-2.I hope there is another time that week.Thank you so much!- Borek\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS TASK POOL 3:\n", + "Hello Borek R Vokach-Brodsky No worries, I found one for Jan 17th at 11:00am. I hope that works. Please let me know!Thank you for choosing Stanford Health Care.Marlene M. (she/her)Patient Care CoordinatorStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "----------------------------------------\n", + "idx: 107147\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Marlene,Dr Nayak asked me to schedule a 6 week follow up. After my appointment the front desk was closed so I could not.I called the main call center just now but they could not schedule this.Could you please schedule a 6 week follow up for me? It would be great if it was between 11am-2pm or so.Thank you so much!Kind regards.- Borek\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Borek R Vokach-Brodsky Thank you for your message. Yes of course! I was able to find an appointment for Jan. 24th at 11:00am. I went ahead and got you scheduled. Please let me know if I can help you with anything else. Thank you for choosing Stanford Health Care.Marlene M. (she/her)Patient Care CoordinatorStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "----------------------------------------\n", + "2025-06-17 14:14:55,830 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:55,834 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:55,835 - ✅ similarity: 0.6141\n", + "2025-06-17 14:14:55,964 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : It seems in the process of switching it to a different pharmacy it entered verification hell, depending either on insurance, your office, or some combination of the two, but the 5mg dose of tirzepatide is currently in “refill requested” status from the pharmacy.\n", + "2025-06-17 14:14:55,971 - Provider's response to this similar message: Hi Tal,I spoke with the pharmacy and they stated you had transferred the prescription to New York. They are unable to transfer the prescription back to San Francisco. I have sent a new order to Dr. Lee to be filled at Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET. Please allow 3-5 business days for this to process.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "2025-06-17 14:14:55,972 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:55,974 - Thread ID: 252992681\n", + "--------------------------------------------------------------------------------\n", + "idx: 125332\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It would appear that the additional prescription you mentioned above sent to my regular Walgreens in San Francisco caused the one I already transferred to NY to fail as an unauthorized duplicate refill, and they won’t change that status unless you contact them.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,I just want to clarify, you want me to call the pharmacy in San Francisco and ask them to un-bill the prescription we just sent over so that way you can pick up the prescription you had transferred over to New York. Is that correct?Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 125331\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "There may have been some confusion here. I’m stuck in NY for the next week, and when I moved my prescription over it seems they reached out to your office for some sort of approval, and were declined. I don’t need to refill it in San Francisco at the moment. Unless I plan to miss a dose, I need to refill it in New York. Here’s the address for the new pharmacy:Walgreens31 Cavalry Dr, New City, NY 10956\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,Thank you for explaining that. Unfortunately, due to the state regulation, we are unable to fill any medications to an out-of-state pharmacy. However, you can contact that pharmacy (San Francisco) to have them transfer the prescription to your out-of-state pharmacy. We apologize for the inconvenience.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "idx: 125330\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "It seems in the process of switching it to a different pharmacy it entered verification hell, depending either on insurance, your office, or some combination of the two, but the 5mg dose of tirzepatide is currently in “refill requested” status from the pharmacy.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,I spoke with the pharmacy and they stated you had transferred the prescription to New York. They are unable to transfer the prescription back to San Francisco. I have sent a new order to Dr. Lee to be filled at Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET. Please allow 3-5 business days for this to process.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844. \n", + "----------------------------------------\n", + "idx: 125329\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Following up on the previous message, as we're nearing the time when I need to renew the tirzepatide. I've noticed over the past roughly two weeks that diet has started to increase and weight loss has slowed and possibly started to reverse. It may be that my GLP-1/GIP sensitivity is decreasing, or something else, but I would expect the loading dose to only go so far.Rather than staying at 2.5mg, let's increase to 5mg starting with the next prescription. It would be additionally convenient if we could do a 90-day prescription or similar rather than the default 4 weeks as we near the new year, but we'll see what the options are.\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Tal,It looks like on 12/09/2024 Dr. Lee sent your new prescription to Walgreens #03711 - SAN FRANCISCO, CA - 1189 POTRERO AVE AT POTRERO & 24TH STREET.Please let us know if you have any other questions or concerns, and we'll be happy to assist.Have a great rest of your day.Thank you for choosing Stanford Health Care.Nikkie M. (she/her)Patient Care Coordinator IIStanford Primary Care - Los AltosPhone: 650-498-9000LGBTQ+ Health: 650-724-8844Fax: 650-736-6353MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately.MyHealth messages are routinely checked Mon-Fri from 8:00am-5:00pm, your message will be addressed by your care team within 48-72 hours. For urgent issues, assistance is available 24 hours/day by calling your primary care team or clinic @ 650-498-9000. For our LGBTQ+ Health program, please call 650-724-8844.\n", + "----------------------------------------\n", + "2025-06-17 14:14:55,976 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:56,391 - Original Message:\n", + "2025-06-17 14:14:56,392 - original_query_message: Dr LizI am currently scheduled to see you on Jan 28th @820am. Any possibility to see you earlier and also make this my annual physical visit at the same time.I continue to have pain in my right knee and in the tail bone area during sleep. Ahead of seeing you, I would like to get done a very comprehensive blood test similar to what was done in Feb 2023. In addition please add Vit D, Bone density and any other test you feel is necessary. Regularly checking my Vit D level is critical as it affects my kidney stone issues.The results of these tests will be useful info when I see you.Please let me know.Thx.ajit\n", + "2025-06-17 14:14:57,724 - Query Parameters:\n", + "2025-06-17 14:14:57,728 - query_message: Hi Dr. Liz,I hope you’re doing well. I’m writing to see if by any chance you have any earlier appointments available—I’m currently scheduled for my annual check-up with you on January 28 at 8:20am, but if you have something sooner, that would be great since some of my symptoms have been getting worse.I’ve been waking up every night with discomfort in my lower back and coccyx—it’s especially noticeable when I try to roll over in bed. My left knee has also started aching more than usual, and it sometimes feels stiff during the day. Since I have a history of kidney stones, I’d really appreciate if we could also run a thorough set of labs like we did last year, including my Vitamin D levels (which always fluctuate for me) and a bone density scan this time, if you think it’s needed. If you recommend checking anything else related to bone or joint health, please add those as well.Could we plan to do these labs ahead of my visit so we can review the results together? Thanks so much, and let me know what you suggest.Best,Sara\n", + "2025-06-17 14:14:57,730 - receiver: GREKSOUK, ELIZABETH\n", + "2025-06-17 14:14:57,732 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:14:57,734 - specialty: Primary Care\n", + "2025-06-17 14:14:58,139 - \n", + "Number of results: 5\n", + "2025-06-17 14:14:58,141 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:58,143 - ✅ similarity: 0.8074\n", + "2025-06-17 14:14:58,144 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr LizI am currently scheduled to see you on Jan 28th @820am. Any possibility to see you earlier and also make this my annual physical visit at the same time.I continue to have pain in my right knee and in the tail bone area during sleep. Ahead of seeing you, I would like to get done a very comprehensive blood test similar to what was done in Feb 2023. In addition please add Vit D, Bone density and any other test you feel is necessary. Regularly checking my Vit D level is critical as it affects my kidney stone issues.The results of these tests will be useful info when I see you.Please let me know.Thx.ajit\n", + "2025-06-17 14:14:58,147 - Provider's response to this similar message: Hello Mr. Deora, My name is Dr. Narula, and I work with NP Liz Greksouk and am covering her today while she is out of the office. Thank you for your message. I went ahead and placed orders for your annual visit, however, it looks like you just had your vitamin D checked just in November of last year - typically we recommend checking this every year at the level that you had. As for your request about making the upcoming appointment your annual visit - it looks like your last medicare wellness visit was Feb 13, 2024. Unfortunately, even if we want to, Medicare will not provide coverage for an earlier wellness visit as it has to be a full 12 months prior to your next one. I believe this is the case for you labwork as well. Additionally, given that you already have a few things to discuss with Liz, it'll be best to keep these two appointments separate so you have ample time to discuss your symptoms and next steps. I hope that helps answer your questions.Warmly, Dr. NarulaStanford Primary Care Santa Clara (408) 688-9720 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:14:58,149 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:58,156 - Thread ID: 253233286\n", + "--------------------------------------------------------------------------------\n", + "idx: 116185\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizI got the message that you are expecting and will be on maternity leave from Feb 24th. Congrats and best wishes for a problem-free pregnancy.If you recall I had stopped Vit D around mid Oct 2024 as this aggravates kidney stone formations according to my urologist. I have been OK up until a few weeks back when I noticed a small pain during sleep in my back close to my tail bone. I tend to sleep on my side. Pain is present independent of which side I sleep. So my sleep has not been good recently. No back pain otherwise. I attributed this to my usual back pain issues and have been doing stretches and exercises to take care of this. But have not seen any improvement. Also this Sun, all of a sudden around dinner time I noticed I could not bend my right leg anymore. My leg was perfectly fine Sun morning. So this got me thinking if this is due to lack of Vit D supplement. What do you think? Should I restart my 1000IU Vit D supplement?Please advise. Ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,Thank you!I don't think your pain is related to holding your vitamin D supplement, so I wouldn't recommend resuming Vitamin D based on this alone.If pain isn't improving, please come in for an appointment so I can further assess- formal physical therapy may help.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116184\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizYes according to Dr Wu higher dosage of Vit D can cause kidney stone formation.I will hold off on taking Vit D supplement for now. I have my physical with you in Feb 2025. We can re-evaluate the situation then.Thx for your prompt response.Merry Christmas, happy holidays and a happy new year.ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,This sounds like a reasonable plan.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116183\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi LizI met my urologist, Dr Mechele Wu yesterday to go over my recent test results. One in particular she suggested I check with you.My Vit D is low end of normal. I used to take 1000IU Vit D supplement every day but stopped it 2-weeks prior to taking the Vit D test. I haven't taken this supplement since then. The reason being excess VitD can cause calcium oxalate kidney stones. I am very anxious of kidney stones since this the the 3rd time I have this issue and I have already been thru one painful kidney stone surgery in 2016. Looks like I have to go thru one more surgery for the current stone I have. So I am doing everything I can to reduce the probability of future stone formations. Hence stopped the Vit D supplement.The issue now is what risks or side-effects I might have by not taking this supplement.Please advise.Thx.Ajit Deora\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,Vitamin D is in normal range, but on low side of normal. I think reasonable to monitor without supplement for now- was NP Wu worried the vitamin D supplement was contributing to formation of kidney stones?Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116182\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizI am currently scheduled to see you on Jan 28th @820am. Any possibility to see you earlier and also make this my annual physical visit at the same time.I continue to have pain in my right knee and in the tail bone area during sleep. Ahead of seeing you, I would like to get done a very comprehensive blood test similar to what was done in Feb 2023. In addition please add Vit D, Bone density and any other test you feel is necessary. Regularly checking my Vit D level is critical as it affects my kidney stone issues.The results of these tests will be useful info when I see you.Please let me know.Thx.ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hello Mr. Deora, My name is Dr. Narula, and I work with NP Liz Greksouk and am covering her today while she is out of the office. Thank you for your message. I went ahead and placed orders for your annual visit, however, it looks like you just had your vitamin D checked just in November of last year - typically we recommend checking this every year at the level that you had. As for your request about making the upcoming appointment your annual visit - it looks like your last medicare wellness visit was Feb 13, 2024. Unfortunately, even if we want to, Medicare will not provide coverage for an earlier wellness visit as it has to be a full 12 months prior to your next one. I believe this is the case for you labwork as well. Additionally, given that you already have a few things to discuss with Liz, it'll be best to keep these two appointments separate so you have ample time to discuss your symptoms and next steps. I hope that helps answer your questions.Warmly, Dr. NarulaStanford Primary Care Santa Clara (408) 688-9720 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:58,158 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:58,159 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:58,160 - ✅ similarity: 0.6233\n", + "2025-06-17 14:14:58,161 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr LizI got the message that you are expecting and will be on maternity leave from Feb 24th. Congrats and best wishes for a problem-free pregnancy.If you recall I had stopped Vit D around mid Oct 2024 as this aggravates kidney stone formations according to my urologist. I have been OK up until a few weeks back when I noticed a small pain during sleep in my back close to my tail bone. I tend to sleep on my side. Pain is present independent of which side I sleep. So my sleep has not been good recently. No back pain otherwise. I attributed this to my usual back pain issues and have been doing stretches and exercises to take care of this. But have not seen any improvement. Also this Sun, all of a sudden around dinner time I noticed I could not bend my right leg anymore. My leg was perfectly fine Sun morning. So this got me thinking if this is due to lack of Vit D supplement. What do you think? Should I restart my 1000IU Vit D supplement?Please advise. Ajit\n", + "2025-06-17 14:14:58,162 - Provider's response to this similar message: Hi Ajit,Thank you!I don't think your pain is related to holding your vitamin D supplement, so I wouldn't recommend resuming Vitamin D based on this alone.If pain isn't improving, please come in for an appointment so I can further assess- formal physical therapy may help.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "2025-06-17 14:14:58,163 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:58,165 - Thread ID: 253233286\n", + "--------------------------------------------------------------------------------\n", + "idx: 116185\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizI got the message that you are expecting and will be on maternity leave from Feb 24th. Congrats and best wishes for a problem-free pregnancy.If you recall I had stopped Vit D around mid Oct 2024 as this aggravates kidney stone formations according to my urologist. I have been OK up until a few weeks back when I noticed a small pain during sleep in my back close to my tail bone. I tend to sleep on my side. Pain is present independent of which side I sleep. So my sleep has not been good recently. No back pain otherwise. I attributed this to my usual back pain issues and have been doing stretches and exercises to take care of this. But have not seen any improvement. Also this Sun, all of a sudden around dinner time I noticed I could not bend my right leg anymore. My leg was perfectly fine Sun morning. So this got me thinking if this is due to lack of Vit D supplement. What do you think? Should I restart my 1000IU Vit D supplement?Please advise. Ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,Thank you!I don't think your pain is related to holding your vitamin D supplement, so I wouldn't recommend resuming Vitamin D based on this alone.If pain isn't improving, please come in for an appointment so I can further assess- formal physical therapy may help.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116184\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizYes according to Dr Wu higher dosage of Vit D can cause kidney stone formation.I will hold off on taking Vit D supplement for now. I have my physical with you in Feb 2025. We can re-evaluate the situation then.Thx for your prompt response.Merry Christmas, happy holidays and a happy new year.ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,This sounds like a reasonable plan.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116183\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi LizI met my urologist, Dr Mechele Wu yesterday to go over my recent test results. One in particular she suggested I check with you.My Vit D is low end of normal. I used to take 1000IU Vit D supplement every day but stopped it 2-weeks prior to taking the Vit D test. I haven't taken this supplement since then. The reason being excess VitD can cause calcium oxalate kidney stones. I am very anxious of kidney stones since this the the 3rd time I have this issue and I have already been thru one painful kidney stone surgery in 2016. Looks like I have to go thru one more surgery for the current stone I have. So I am doing everything I can to reduce the probability of future stone formations. Hence stopped the Vit D supplement.The issue now is what risks or side-effects I might have by not taking this supplement.Please advise.Thx.Ajit Deora\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Ajit,Vitamin D is in normal range, but on low side of normal. I think reasonable to monitor without supplement for now- was NP Wu worried the vitamin D supplement was contributing to formation of kidney stones?Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 116182\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr LizI am currently scheduled to see you on Jan 28th @820am. Any possibility to see you earlier and also make this my annual physical visit at the same time.I continue to have pain in my right knee and in the tail bone area during sleep. Ahead of seeing you, I would like to get done a very comprehensive blood test similar to what was done in Feb 2023. In addition please add Vit D, Bone density and any other test you feel is necessary. Regularly checking my Vit D level is critical as it affects my kidney stone issues.The results of these tests will be useful info when I see you.Please let me know.Thx.ajit\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hello Mr. Deora, My name is Dr. Narula, and I work with NP Liz Greksouk and am covering her today while she is out of the office. Thank you for your message. I went ahead and placed orders for your annual visit, however, it looks like you just had your vitamin D checked just in November of last year - typically we recommend checking this every year at the level that you had. As for your request about making the upcoming appointment your annual visit - it looks like your last medicare wellness visit was Feb 13, 2024. Unfortunately, even if we want to, Medicare will not provide coverage for an earlier wellness visit as it has to be a full 12 months prior to your next one. I believe this is the case for you labwork as well. Additionally, given that you already have a few things to discuss with Liz, it'll be best to keep these two appointments separate so you have ample time to discuss your symptoms and next steps. I hope that helps answer your questions.Warmly, Dr. NarulaStanford Primary Care Santa Clara (408) 688-9720 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:14:58,166 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:58,167 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:58,168 - ✅ similarity: 0.6229\n", + "2025-06-17 14:14:58,168 - Sender: MENDOZA-RIVERA, LUCERITO [ S0105434] -> the retrieved similar message : Hi Liz,I hope you’re doing well. Things have been going well on my end. Dr. Sir requested that I get some lab work done. Could you please send these tests over to Quest Diagnostics when you get the chance? complete blood count with differential hepatic panellipid panelTSH with Free T4Hemoglobin A1Cvitamin Dvitamin B12 Thank you,Azra\n", + "2025-06-17 14:14:58,169 - Provider's response to this similar message: Hi Azra,Thanks for the update- glad to hear you are doing well. Labs ordered to Quest (fasting) and can be done anytime.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "2025-06-17 14:14:58,170 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:58,172 - Thread ID: 252463518\n", + "--------------------------------------------------------------------------------\n", + "idx: 146768\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Liz,Thank you for the speedy response! I hope you have a wonderful weekend.-Azra\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 146767\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Liz,I hope you’re doing well. Things have been going well on my end. Dr. Sir requested that I get some lab work done. Could you please send these tests over to Quest Diagnostics when you get the chance? complete blood count with differential hepatic panellipid panelTSH with Free T4Hemoglobin A1Cvitamin Dvitamin B12 Thank you,Azra\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Azra,Thanks for the update- glad to hear you are doing well. Labs ordered to Quest (fasting) and can be done anytime.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:14:58,173 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:58,174 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:58,174 - ✅ similarity: 0.6052\n", + "2025-06-17 14:14:58,175 - Sender: LERMA, NANETTE [ S0325945] -> the retrieved similar message : Hi Liz.I wanted a comprehensive review of our general health conditions as we are only seeing you annually and we are approaching our mid 70’s. I am concerned about Pam having any urinary infections which might not show up in the blood work up.BestTom\n", + "2025-06-17 14:14:58,176 - Provider's response to this similar message: Hi Tom,We don't do \"screening\" urine tests for bladder infections- instead monitor for any changes in urination because bacteria in urine alone is not enough to diagnose a bladder infection- it must be paired with symptoms (I know, a little confusing). I know a little trickier with Pam's dementia- but symptoms to watch for are lethargy, mood changes, fevers, abdominal/pelvis pain, blood in urine, painful urination, cloudy/foul smelling urine. Let's discuss at Pam's upcoming appointment in more detail- we can always check a urine test at that visit if warranted.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "2025-06-17 14:14:58,176 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:58,179 - Thread ID: 250687863\n", + "--------------------------------------------------------------------------------\n", + "idx: 237394\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Liz.I wanted a comprehensive review of our general health conditions as we are only seeing you annually and we are approaching our mid 70’s. I am concerned about Pam having any urinary infections which might not show up in the blood work up.BestTom\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Tom,We don't do \"screening\" urine tests for bladder infections- instead monitor for any changes in urination because bacteria in urine alone is not enough to diagnose a bladder infection- it must be paired with symptoms (I know, a little confusing). I know a little trickier with Pam's dementia- but symptoms to watch for are lethargy, mood changes, fevers, abdominal/pelvis pain, blood in urine, painful urination, cloudy/foul smelling urine. Let's discuss at Pam's upcoming appointment in more detail- we can always check a urine test at that visit if warranted.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 237393\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Liz: we went in for our blood draw AND our Urine sample test today. Imagine our disappointment to find out that the Urine Sample tests had NOT been ordered….Given that Urine tests are designed to test for: Pre Diabetes, Kidney and Bladder Conditions, Infections, Liver and Urinary Tract conditions, I believe we need this test for Pam and I to give you a complete overview of our medical conditions as we approach our mid 70’s.Please order these tests and we will make a second trip to the Stanford Lab to provide the samples.Thank youTom and Pam Ricks\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Tom,I don't typically do urine tests as part of a routine physical. Blood tests have replaced urine tests in terms of screening for kidney problems. Was there a particular reason you wanted a urine test?Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:14:58,180 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:58,181 - ################################################################################START################################################################################\n", + "2025-06-17 14:14:58,181 - ✅ similarity: 0.6007\n", + "2025-06-17 14:14:58,182 - Sender: CORTES, ARIANA [ S0292680] -> the retrieved similar message : Hi Liz,I see I have an appointment with an endocrinologist next Wednesday and I’m wondering if I need to keep it after the MRI on my calf came back clear. Did we want to talk about anything in my bloodwork?If not I’ll cancel, that appointment. Thanks!\n", + "2025-06-17 14:14:58,185 - Provider's response to this similar message: Hi Jennifer,The appointment with endocrine is to follow up on the persistently elevated alkaline phosphatase to ensure no additional evaluation is warranted recommended. It is slightly elevated and has been up and down over time, but I'd appreciate endocrinology input as it has been persistent.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "2025-06-17 14:14:58,186 - -----------printing the whole thread-------------\n", + "2025-06-17 14:14:58,192 - Thread ID: 250163070\n", + "--------------------------------------------------------------------------------\n", + "idx: 263445\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Liz,I see I have an appointment with an endocrinologist next Wednesday and I’m wondering if I need to keep it after the MRI on my calf came back clear. Did we want to talk about anything in my bloodwork?If not I’ll cancel, that appointment. Thanks!\n", + "----------------------------------------\n", + "Provider Response by GREKSOUK, ELIZABETH:\n", + "Hi Jennifer,The appointment with endocrine is to follow up on the persistently elevated alkaline phosphatase to ensure no additional evaluation is warranted recommended. It is slightly elevated and has been up and down over time, but I'd appreciate endocrinology input as it has been persistent.Sincerely,Liz Greksouk, NPReminder: Care When You Need It For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express care is open 9am--pm 7 days/week. \n", + "----------------------------------------\n", + "2025-06-17 14:14:58,192 - ################################################################################END################################################################################\n", + "2025-06-17 14:14:58,597 - Original Message:\n", + "2025-06-17 14:14:58,598 - original_query_message: Dear Dr. Khuddus,I hope this message finds you well. I am writing to inquire about the possibility of undergoing the 5Strands Food and Environmental Sensitivity/Allergy Test. Recently, I have been experiencing several symptoms, including oral soreness, abdominal bloating, and itchy skin irritation. I would be grateful for your guidance on whether this test might be appropriate to help identify any underlying sensitivities or allergies that could be contributing to these issues.Thank you very much for your time and assistance.Sincerely,Lorinda Menchavez\n", + "2025-06-17 14:14:59,915 - Query Parameters:\n", + "2025-06-17 14:14:59,918 - query_message: Hi Dr. Khuddus,I hope you're doing well. I'm reaching out because I've been dealing with a handful of symptoms lately—mostly a burning sensation in my mouth, some persistent stomach discomfort after meals, and occasional patches of dry, itchy skin on my arms and neck. It's been pretty frustrating, and so far I haven’t been able to pinpoint any triggers, even after tweaking my diet.I've been reading about various testing options, and I came across the 5Strands Food and Environmental Sensitivity Assessment. Before I consider going through with it, I wanted to ask if you think it might be helpful in figuring out what's causing these reactions. Are these types of tests reliable, or would you recommend starting with something else to get to the bottom of what's going on?Thanks so much for your advice!Best,Samantha\n", + "2025-06-17 14:14:59,920 - receiver: FMSLG CARE TEAM POOL\n", + "2025-06-17 14:14:59,921 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:14:59,923 - specialty: Family Medicine\n", + "2025-06-17 14:15:00,615 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:00,617 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:00,618 - ✅ similarity: 0.8835\n", + "2025-06-17 14:15:00,620 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dear Dr. Khuddus,I hope this message finds you well. I am writing to inquire about the possibility of undergoing the 5Strands Food and Environmental Sensitivity/Allergy Test. Recently, I have been experiencing several symptoms, including oral soreness, abdominal bloating, and itchy skin irritation. I would be grateful for your guidance on whether this test might be appropriate to help identify any underlying sensitivities or allergies that could be contributing to these issues.Thank you very much for your time and assistance.Sincerely,Lorinda Menchavez\n", + "2025-06-17 14:15:00,624 - Provider's response to this similar message: Dear Lorinda,Thank you for reaching out. I'm sorry to hear about the symptoms you're experiencing. While the 5Strands test is a popular option found online, it is not a clinically validated test for diagnosing food or environmental allergies. I would recommend more reliable and validated methods to identify any potential allergies or sensitivities.We can start with a detailed history and possibly some standard allergy tests, such as specific IgE blood tests, which are more accurate and clinically accepted. Please schedule an appointment through the Stanford MyHealth app so we can discuss your symptoms in more detail and determine the best course of action.Best regards,Alla P Rozova, PA\n", + "2025-06-17 14:15:00,625 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:00,629 - Thread ID: 249127247\n", + "--------------------------------------------------------------------------------\n", + "idx: 316482\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Khuddus,I hope this message finds you well. I am writing to inquire about the possibility of undergoing the 5Strands Food and Environmental Sensitivity/Allergy Test. Recently, I have been experiencing several symptoms, including oral soreness, abdominal bloating, and itchy skin irritation. I would be grateful for your guidance on whether this test might be appropriate to help identify any underlying sensitivities or allergies that could be contributing to these issues.Thank you very much for your time and assistance.Sincerely,Lorinda Menchavez\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Dear Lorinda,Thank you for reaching out. I'm sorry to hear about the symptoms you're experiencing. While the 5Strands test is a popular option found online, it is not a clinically validated test for diagnosing food or environmental allergies. I would recommend more reliable and validated methods to identify any potential allergies or sensitivities.We can start with a detailed history and possibly some standard allergy tests, such as specific IgE blood tests, which are more accurate and clinically accepted. Please schedule an appointment through the Stanford MyHealth app so we can discuss your symptoms in more detail and determine the best course of action.Best regards,Alla P Rozova, PA\n", + "----------------------------------------\n", + "2025-06-17 14:15:00,631 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:00,633 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:00,634 - ✅ similarity: 0.5209\n", + "2025-06-17 14:15:00,635 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Khuddus,I dont see the result and notes from the allergy doctor.Would you please send it to me.Thank you,Yaskara\n", + "2025-06-17 14:15:00,636 - Provider's response to this similar message: Hello Alexander Newcomb,My name is Stephanie , MA and I work closely with your primary care provider as a medical assistant. I'm sorry, you need lab results that were ordered from Dr.Khuddus or you need lab results and note from Dr.Nguyen? If you need results from your allergist because contact there office for those records. Thank you for your time,Stephanie Hernandez , MA Please note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "2025-06-17 14:15:00,636 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:00,639 - Thread ID: 248351545\n", + "--------------------------------------------------------------------------------\n", + "idx: 356173\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Khuddus,I dont see the result and notes from the allergy doctor.Would you please send it to me.Thank you,Yaskara\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hello Alexander Newcomb,My name is Stephanie , MA and I work closely with your primary care provider as a medical assistant. I'm sorry, you need lab results that were ordered from Dr.Khuddus or you need lab results and note from Dr.Nguyen? If you need results from your allergist because contact there office for those records. Thank you for your time,Stephanie Hernandez , MA Please note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "----------------------------------------\n", + "2025-06-17 14:15:00,640 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:00,641 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:00,642 - ✅ similarity: 0.5105\n", + "2025-06-17 14:15:00,643 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, May I a referral to see a physician at allergy ans asthma associate in gilroy. I still have welt breakouts and lip swelling. I've stopped taking singular, it hasn't changed anything for the better. It seems zyrtec works best for me. I just want to know if I'm allergic to anythingthanks Ed\n", + "2025-06-17 14:15:00,643 - Provider's response to this similar message: Hey Eduard, Below is the information to the local allergy office where your referral was sent to.ALLERGY & ASTHMA ASSOCIATES OF NORTHERN CA 9360 No Name Uno Suite 140 Gilroy CA 95020-3535 Phone: 408-848-1800 Please contact the clinic above at your earliest convenience and schedule an appointment as recommended. Please feel free to reach out to the clinic if you have any questions or concerns.Kindly,Parveen Bhatia FNP-BC\n", + "2025-06-17 14:15:00,644 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:00,648 - Thread ID: 254292946\n", + "--------------------------------------------------------------------------------\n", + "idx: 69733\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hey Eduard, Below is the information to the local allergy office where your referral was sent to.ALLERGY & ASTHMA ASSOCIATES OF NORTHERN CA 9360 No Name Uno Suite 140 Gilroy CA 95020-3535 Phone: 408-848-1800 Please contact the clinic above at your earliest convenience and schedule an appointment as recommended. Please feel free to reach out to the clinic if you have any questions or concerns.Kindly,Parveen Bhatia FNP-BC\n", + "----------------------------------------\n", + "Provider Response by TORRES, NAYELI:\n", + "No response\n", + "----------------------------------------\n", + "idx: 69732\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, May I a referral to see a physician at allergy ans asthma associate in gilroy. I still have welt breakouts and lip swelling. I've stopped taking singular, it hasn't changed anything for the better. It seems zyrtec works best for me. I just want to know if I'm allergic to anythingthanks Ed\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hey Eduard, Below is the information to the local allergy office where your referral was sent to.ALLERGY & ASTHMA ASSOCIATES OF NORTHERN CA 9360 No Name Uno Suite 140 Gilroy CA 95020-3535 Phone: 408-848-1800 Please contact the clinic above at your earliest convenience and schedule an appointment as recommended. Please feel free to reach out to the clinic if you have any questions or concerns.Kindly,Parveen Bhatia FNP-BC\n", + "----------------------------------------\n", + "2025-06-17 14:15:00,649 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:00,650 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:00,651 - ✅ similarity: 0.4952\n", + "2025-06-17 14:15:00,651 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : In case you haven’t seen these results attached below from Blood Work on Saturday 12/28https://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-24kiKk4iBdA4oSFsmKICibtQ-3D-3D-24C6iQM0gj1T58pAUX2sW-2BwQIEeFYgV6A4VK-2B2MH7kJN4-3Dhttps://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-24FcCXckjty87-2FWbBYV3XfPA-3D-3D-24JPvPG78NGo1hIm-2FziI9pV22uD6pfFlJmn3aeoybm21E-3Dhttps://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-241VO74tdNnXkbyV1sEUEuIQ-3D-3D-247oWDRK9HbHeqZ8LFrE53YPhfhqmt6kmfw37zfvI62Q8-3D\n", + "2025-06-17 14:15:00,652 - Provider's response to this similar message: Hi Mr. Donofrio,Thank you for bringing this to my attention. Your cholesterol levels are very elevated. Given your history of atrial flutter, I recommend that we start you on a statin medication to help lower your risk for heart attack or stroke and lower your cholesterol.Please let me know what pharmacy would like for me to send a prescription to. Feel free to schedule a video visit with me to discuss your results.Joceliza Gonzaga Chaudhary, MD\n", + "2025-06-17 14:15:00,653 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:00,655 - Thread ID: 254551844\n", + "--------------------------------------------------------------------------------\n", + "idx: 56864\n", + "Subject: RE: Questions\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Have you sent a prescription to CVS?\n", + "----------------------------------------\n", + "Provider Response by CHAUDHARY, JOCELIZA GONZAGA:\n", + "Prescription has been sent for atorvastatin 20 mg 1 tablet at bedtime to CVS on Blossom Hill, Road in Los Gatos.Joceliza Gonzaga Chaudhary, MD\n", + "----------------------------------------\n", + "idx: 56863\n", + "Subject: Questions\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Also, I’m see Dr. Nguyen this coming Tuesday 1/7. Are there any questions I should be asking him?Thank you\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 56862\n", + "Subject: Questions\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. CVS Blossom HillDiet hasn’t really changed since previous blood work. Would any of my medications potentially cause this significant spike?Could the high cholesterol somehow be involved with the leg pain and weakness?\n", + "----------------------------------------\n", + "Provider Response by CHAUDHARY, JOCELIZA GONZAGA:\n", + "I would recommend that you review your labs with Dr. Nguyen. I do not think you are on any medications that would spike your lipid panel is much as it did.I would recommend statin therapy.Joceliza Gonzaga Chaudhary, MD\n", + "----------------------------------------\n", + "idx: 56861\n", + "Subject: RE: Questions\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "In case you haven’t seen these results attached below from Blood Work on Saturday 12/28https://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-24kiKk4iBdA4oSFsmKICibtQ-3D-3D-24C6iQM0gj1T58pAUX2sW-2BwQIEeFYgV6A4VK-2B2MH7kJN4-3Dhttps://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-24FcCXckjty87-2FWbBYV3XfPA-3D-3D-24JPvPG78NGo1hIm-2FziI9pV22uD6pfFlJmn3aeoybm21E-3Dhttps://myhealthonline.sutterhealth.org/MHO/app/test-results/details?pageMode=1&eorderid=WP-241VO74tdNnXkbyV1sEUEuIQ-3D-3D-247oWDRK9HbHeqZ8LFrE53YPhfhqmt6kmfw37zfvI62Q8-3D\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hi Mr. Donofrio,Thank you for bringing this to my attention. Your cholesterol levels are very elevated. Given your history of atrial flutter, I recommend that we start you on a statin medication to help lower your risk for heart attack or stroke and lower your cholesterol.Please let me know what pharmacy would like for me to send a prescription to. Feel free to schedule a video visit with me to discuss your results.Joceliza Gonzaga Chaudhary, MD\n", + "----------------------------------------\n", + "idx: 56860\n", + "Subject: Questions\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Update,No real improvement with condition, but no worsening. Still quite painful at times. Finished 6 day course of Prednisone to little or no effect. I’ve gone back and come up with a better timeline of symptoms. Had back pain and some mild sciatic symptoms, some pain in back of thigh, starting around Halloween. My walking and steps per day remained relatively consistent through about Dec. 18. On Nov.21, I fell quite hard on my right side. It stunned me, but I didn’t feel as if any bones were hurt and did not notice any bruising. On Dec. 18 I handled about 15 bags of 60# concrete mix. The next couple of days were when the pain worsened and developed at the shin above the ankle. I saw you on Dec.23. A couple of observations, the pain worsens throughout the day. The back pain comes and goes as does the hip pain, but the hip pain is most acute. I see the physiatrist this Friday. Thanks\n", + "----------------------------------------\n", + "Provider Response by CHAUDHARY, JOCELIZA GONZAGA:\n", + "Hi Pat,Thank you for the detailed update. It's helpful to have a clearer timeline of your symptoms. Given the history of your fall and the heavy lifting, it's possible that these events have contributed to your current pain and symptoms.Since you are seeing the physiatrist this Friday, please make sure to share this timeline and your observations with them. It will be important for them to know about the fall and the heavy lifting, as well as the specific areas where you are experiencing pain and how it changes throughout the day.If you have any further questions or need additional support, please don't hesitate to reach out. Best of luck with your appointment on Friday.Timothy Scott Ulleseit, PA-CAssisting Dr. Chaudhary\n", + "----------------------------------------\n", + "2025-06-17 14:15:00,657 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:00,658 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:00,659 - ✅ similarity: 0.4936\n", + "2025-06-17 14:15:00,659 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Khuddus,Last time we spoke I think you mentioned the H. pylori breath test however I don’t think it was ever ordered. Is it a test we still want to do? Also, I think Norovirus was a false positive. Thanks,Andrea\n", + "2025-06-17 14:15:00,660 - Provider's response to this similar message: Hello Andrea ReitsmaI have ordered a h Pylori breath test, pls go with 2 hours fasting: Test will take 30 min at SHC labs Thanks Umme Hani Khuddus, MD\n", + "2025-06-17 14:15:00,660 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:00,663 - Thread ID: 248697477\n", + "--------------------------------------------------------------------------------\n", + "idx: 338048\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Khuddus,Last time we spoke I think you mentioned the H. pylori breath test however I don’t think it was ever ordered. Is it a test we still want to do? Also, I think Norovirus was a false positive. Thanks,Andrea\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hello Andrea ReitsmaI have ordered a h Pylori breath test, pls go with 2 hours fasting: Test will take 30 min at SHC labs Thanks Umme Hani Khuddus, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:00,664 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:01,033 - Original Message:\n", + "2025-06-17 14:15:01,040 - original_query_message: Hello,I just realized I am almost out of Losartan. I thought my medications were on auto refills. I am going out of town and need it before Thursday if possible. Safeway archived my prescription, so I need to request a new one.Please send to Safeway for pick up.Thank you and sorry for the inconvenience.Joyce\n", + "2025-06-17 14:15:02,312 - Query Parameters:\n", + "2025-06-17 14:15:02,314 - query_message: Hi there, I just noticed that I’m running really low on my blood pressure medication (I’m on Losartan, 50mg daily) and I only have a couple of pills left. I usually get my prescriptions filled automatically, so I didn’t realize I was almost out until today. To make things more stressful, I’m leaving for a family reunion out of state on Friday morning and I’m worried about missing any doses since my BP has been creeping up lately.It looks like my old pharmacy (Walgreens on Main St.) deactivated the prescription for some reason. Is it possible to send a new prescription to the same pharmacy so I can pick it up before I leave? Also, I’ve had a few headaches recently—I’m not sure if that’s connected to running low on my meds, but I thought I should mention it.Thanks so much for your help. Sorry for the last-minute request!Best, Susan\n", + "2025-06-17 14:15:02,315 - receiver: SANTA CLARA PRIMARY CARE TASK POOL TEAM 3\n", + "2025-06-17 14:15:02,316 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:15:02,317 - specialty: Primary Care\n", + "2025-06-17 14:15:02,699 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:02,700 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:02,700 - ✅ similarity: 0.6749\n", + "2025-06-17 14:15:02,701 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : Dear Dr. Thankor,I am planning to travel soon and need to get my medications before Friday - metFORMIN 500 mg and rosuvastatin 5 mg for this month. I just checked with the pharmacy, and the pharmacist said I need prescription renewals from you.I don't see the rosuvastatin 5 mg renewal option in the myHealth app, and while I sent a renewal request for metFORMIN 500 mg in November, I haven't received any feedback. Could you please help renew both prescriptions?(FYI, current pharmacy is still Walgreens at 1376 KOOSER RD, San Jose, CA 95118)Thank you for your help.\n", + "2025-06-17 14:15:02,702 - Provider's response to this similar message: Hello, Your message was sent to your provider, for the metformin it shows that you have refills from Dr.Gupta, medication request was sent for both of the medications.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:15:02,704 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:02,715 - Thread ID: 253602472\n", + "--------------------------------------------------------------------------------\n", + "idx: 100302\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Thankor,I am planning to travel soon and need to get my medications before Friday - metFORMIN 500 mg and rosuvastatin 5 mg for this month. I just checked with the pharmacy, and the pharmacist said I need prescription renewals from you.I don't see the rosuvastatin 5 mg renewal option in the myHealth app, and while I sent a renewal request for metFORMIN 500 mg in November, I haven't received any feedback. Could you please help renew both prescriptions?(FYI, current pharmacy is still Walgreens at 1376 KOOSER RD, San Jose, CA 95118)Thank you for your help.\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 3:\n", + "Hello, Your message was sent to your provider, for the metformin it shows that you have refills from Dr.Gupta, medication request was sent for both of the medications.Best regards,Celene CejaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:15:02,716 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:02,716 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:02,717 - ✅ similarity: 0.6641\n", + "2025-06-17 14:15:02,717 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Dear Dr. Levine I need refills on Amitriptyline 100 mg. Can you please send it to Walgreens Pharmacy on Calaveras? Optum takes too long. Thank you. Regards,Mary\n", + "2025-06-17 14:15:02,718 - Provider's response to this similar message: Hello Mary,I requested your refill to WALGREENS #03671 - MILPITAS, CA - 342 W CALAVERAS BLVD AT CALAVERAS & ABBOTT.Best regards,Rechell CalamugStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "2025-06-17 14:15:02,718 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:02,722 - Thread ID: 253848220\n", + "--------------------------------------------------------------------------------\n", + "idx: 88641\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Timothy Koto on behalf of Mary Song-KotoOk. Thank you. Your Welcome. Happy Holidays. Best,Mary Song-Koto\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 88640\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear RechellI didn’t see the prescription at Walgreens. I think you have to send it as a new prescription because the original prescription is at Optum. Thank you. Regards,Mary Song-Koto\n", + "----------------------------------------\n", + "Provider Response by LEVINE, MARCIE:\n", + "Mary,Looks like optum sent a refill for the amitriptyline on 12/13/24. You should have adequate supply until mid January (at which time, I am happy to send the new prescription to walgreens)Thank you for the lovely holiday treats.Wishing you and your family a happy and healthy holiday season!Best, Marcie Levine, MD \n", + "----------------------------------------\n", + "idx: 88639\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Levine I need refills on Amitriptyline 100 mg. Can you please send it to Walgreens Pharmacy on Calaveras? Optum takes too long. Thank you. Regards,Mary\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 3:\n", + "Hello Mary,I requested your refill to WALGREENS #03671 - MILPITAS, CA - 342 W CALAVERAS BLVD AT CALAVERAS & ABBOTT.Best regards,Rechell CalamugStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours.\n", + "----------------------------------------\n", + "2025-06-17 14:15:02,722 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:02,727 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:02,730 - ✅ similarity: 0.6565\n", + "2025-06-17 14:15:02,735 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hello,I just realized I am almost out of Losartan. I thought my medications were on auto refills. I am going out of town and need it before Thursday if possible. Safeway archived my prescription, so I need to request a new one.Please send to Safeway for pick up.Thank you and sorry for the inconvenience.Joyce\n", + "2025-06-17 14:15:02,741 - Provider's response to this similar message: Hi Ms. Patterson,I went ahead and requested your refills for LOSARTAN. If there are any issues I will be sure to let you know. Otherwise please allow 1-7 business day for this to be processed and approved by your physician.Please contact your pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:15:02,743 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:02,794 - Thread ID: 252051897\n", + "--------------------------------------------------------------------------------\n", + "idx: 166292\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I just realized I am almost out of Losartan. I thought my medications were on auto refills. I am going out of town and need it before Thursday if possible. Safeway archived my prescription, so I need to request a new one.Please send to Safeway for pick up.Thank you and sorry for the inconvenience.Joyce\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 3:\n", + "Hi Ms. Patterson,I went ahead and requested your refills for LOSARTAN. If there are any issues I will be sure to let you know. Otherwise please allow 1-7 business day for this to be processed and approved by your physician.Please contact your pharmacy for pick-up status or delivery status if you receive your medications via mail pharmacy.Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:15:02,815 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:02,840 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:02,841 - ✅ similarity: 0.6540\n", + "2025-06-17 14:15:02,841 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Hi Dr. Thakor,It was very nice to see you this afternoon. I am so sorry to bother you but I would really appreciate it if you could send the prescriptions for my Naproxen and antidepressant to Costco pharmacy on Great Oak. Thank you so much for your help in advance.Nicole\n", + "2025-06-17 14:15:02,842 - Provider's response to this similar message: Hello Nicole , Yes, she sent it out to the pharmacy on San Felipe Rd, we will resend the medication to Costco on Great Oak. Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:15:02,866 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:02,906 - Thread ID: 248529774\n", + "--------------------------------------------------------------------------------\n", + "idx: 346331\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Ms. Jazmin\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 346330\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Thakor,It was very nice to see you this afternoon. I am so sorry to bother you but I would really appreciate it if you could send the prescriptions for my Naproxen and antidepressant to Costco pharmacy on Great Oak. Thank you so much for your help in advance.Nicole\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 3:\n", + "Hello Nicole , Yes, she sent it out to the pharmacy on San Felipe Rd, we will resend the medication to Costco on Great Oak. Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:15:02,907 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:02,907 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:02,908 - ✅ similarity: 0.6522\n", + "2025-06-17 14:15:02,908 - Sender: ROGACION, JOSE ANTONIO [ S0294361] -> the retrieved similar message : Good afternoon! I need to get a couple of medications refilled. I’m still waiting for my MDs to respond it’s been a week since pharmacy started reaching out. If you feel comfortable refilling that would be greatly appreciated Tamoxifen 20 mgVilazadone 20mgNifedipine ER 30mgAmbien 10mgWellbutrin 300mg (the last time I refilled this the pharmacy only gave me 7 days, saying that’s all they had an rx for?? I’m not really sure why maybe it needs refills?? I don’t know and of course can’t get through to anyone via phone.)Thank you for whatever you can do to help! -Stephanie\n", + "2025-06-17 14:15:02,909 - Provider's response to this similar message: Hello Stephanie , I just wanted to inform you that I went ahead and spoke to the pharmacy, and they stated no visit is needed! I went ahead and pended the medications for your provider to sign off. Once this has been done your pharmacy will contact you once your prescriptions are ready. Please let us know if you have any questions. Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "2025-06-17 14:15:02,909 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:02,911 - Thread ID: 248710937\n", + "--------------------------------------------------------------------------------\n", + "idx: 337480\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning, it looks like the nifedipine, and tamoxifen didn’t go through. Could you try sending those again please? :)\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 337479\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much!! I appreciate you being so responsive!\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 337478\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon! I need to get a couple of medications refilled. I’m still waiting for my MDs to respond it’s been a week since pharmacy started reaching out. If you feel comfortable refilling that would be greatly appreciated Tamoxifen 20 mgVilazadone 20mgNifedipine ER 30mgAmbien 10mgWellbutrin 300mg (the last time I refilled this the pharmacy only gave me 7 days, saying that’s all they had an rx for?? I’m not really sure why maybe it needs refills?? I don’t know and of course can’t get through to anyone via phone.)Thank you for whatever you can do to help! -Stephanie\n", + "----------------------------------------\n", + "Provider Response by SANTA CLARA PRIMARY CARE TASK POOL TEAM 3:\n", + "Hello Stephanie , I just wanted to inform you that I went ahead and spoke to the pharmacy, and they stated no visit is needed! I went ahead and pended the medications for your provider to sign off. Once this has been done your pharmacy will contact you once your prescriptions are ready. Please let us know if you have any questions. Best regards,Jazmin GarciaStanford Medicine- Health CareSanta Clara Primary/Multispecialty CareP: 408.688.9720F: 408.688.9730Reminder: Care When You Need ItFor a medical emergency, call 911 or head to the nearest emergency room.Urgent medical problems: Contact 650-498-9000, available 24 hours/a day to speak with our clinical advice team for a sameday/nextday appointment with a Primary Care Physician or Express Care. Express Care clinics are by appointment and are open from 9am to 9pm daily (Monday-Sunday).Non-Urgent concerns: Schedule the next visit with your Primary Care Physician via MyHealth or send a clinic message to your provider.MyHealth is for non-urgent issues only. MyHealth messages are routinely checked Monday through Friday from 8:00 am to 4:00 pm. Your care team will address your message within 48-72 business hours. \n", + "----------------------------------------\n", + "2025-06-17 14:15:02,911 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:03,098 - Original Message:\n", + "2025-06-17 14:15:03,099 - original_query_message: Hello Doctor,Here is my BP chart from month September.Blood pressure 8/28/24 : 98/68 pulse 638/31/24 : 100/73 Pulse 639/4/24 : 95/72 Pulse 769/26/24 : 102/67, Pulse 65\n", + "2025-06-17 14:15:04,279 - Query Parameters:\n", + "2025-06-17 14:15:04,281 - query_message: Hi Doctor, I’ve been tracking my blood pressure at home for the past few weeks because I sometimes feel a bit lightheaded and tired. Here are some recent readings: 97/65 with a heart rate of 70, 101/70 with a pulse of 63, 94/68 with a pulse of 72, and 99/72 with a pulse of 67. I’ve noticed that my BP often seems lower than what I expected, especially in the mornings, and once in a while I feel a bit dizzy when I stand up quickly. I’m otherwise pretty healthy, but I’m wondering if these lower readings and occasional dizziness are something to be concerned about, or if I should be doing anything differently. Is it normal for my blood pressure and pulse to be on the lower side?\n", + "2025-06-17 14:15:04,282 - receiver: DUGGAL, EENA\n", + "2025-06-17 14:15:04,283 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:15:04,284 - specialty: Primary Care\n", + "2025-06-17 14:15:04,612 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:04,618 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:04,619 - ✅ similarity: 0.6992\n", + "2025-06-17 14:15:04,620 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Hello Doctor,Here is my BP chart from month September.Blood pressure 8/28/24 : 98/68 pulse 638/31/24 : 100/73 Pulse 639/4/24 : 95/72 Pulse 769/26/24 : 102/67, Pulse 65\n", + "2025-06-17 14:15:04,622 - Provider's response to this similar message: Thank you for sending in your BP readings in and they all look good.Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "2025-06-17 14:15:04,626 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:04,632 - Thread ID: 249234605\n", + "--------------------------------------------------------------------------------\n", + "idx: 310997\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Doctor,Here is my BP chart from month September.Blood pressure 8/28/24 : 98/68 pulse 638/31/24 : 100/73 Pulse 639/4/24 : 95/72 Pulse 769/26/24 : 102/67, Pulse 65\n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Thank you for sending in your BP readings in and they all look good.Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "----------------------------------------\n", + "2025-06-17 14:15:04,646 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:04,647 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:04,648 - ✅ similarity: 0.4585\n", + "2025-06-17 14:15:04,664 - Sender: ZAPIEN, DANIELA [ S0373097] -> the retrieved similar message : I have a question about CBC with Differential resulted on 11/27/24, 11:56?AM...I will! A couple notes:1. ALT is in a consistent range for me since 2007. It has been as high as 41 in 07 and as low as 28 in 19. Primarily between 34-39, which was in range until it was lowered to 32 from 40 in 2013. 2. Glucose may be an anomaly, as it was in 2007 when it was 106. We discussed this then and diabetes etc., but I felt wasn’t an accurate test since I had always been in high 80’s to 90’s and there been no lifestyle changes. I retested 3 months later and it was 87.3. Cholesterol, I have been thinking about what has changed to cause this increase and the one thing I can think of is we’ve been using a meal delivery plan for a few years. Based upon my research on dietary factors, this might be a contributing factor based upon the meal ingredients. I also do not have enough fruit or other vegetables in my diet. Things I can immediately change.4. Cardiovascular report I have from Labcorp and the patient assessment of risk is LOW. Thank you, kk\n", + "2025-06-17 14:15:04,672 - Provider's response to this similar message: Hi Kay,Your CBC with Differential results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review.Regarding your notes:1. It's good to know that your ALT levels have been consistent, and I saw this in your previous labs as well. We will continue to monitor them.2. If your glucose levels have been stable and the recent high reading seems like an anomaly, we can recheck it in a few months to confirm. I will also add the HBA1c test for diabetes to your next labs.3. Dietary changes can indeed impact cholesterol levels. Increasing your intake of fruits and vegetables and reviewing the meal delivery plan ingredients are good steps.4. It's reassuring that your cardiovascular risk assessment is low.If you have any further questions or concerns, feel free to reach out.Best regards,Eena Duggal, MD\n", + "2025-06-17 14:15:04,672 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:04,750 - Thread ID: 252047523\n", + "--------------------------------------------------------------------------------\n", + "idx: 166594\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Dr. Duggal.The last remaining test is bone density and there was an improvement in the spine but the other two areas did not. I was able to review the numbers while there.I have been diligent with the calcium, vitamin D3/K and Biosil but know that I can increase the calcium dosage, taking the second set of capsules at night. There are other natural supplements I can add in, which I will begin right away.The good news is that there was an improvement and it’s motivating to know I can manage this and with a more diligent approach, continue to improve. You know how resistant I am to taking drugs :)I’ll reach out to your office in 3 months to schedule the blood work for another glucose and HBAC1 test.I wish you a very happy holiday season!Kay\n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Thank you for the update, Kay. I'm glad to hear that there has been some improvement in your bone density. Your diligence with calcium, vitamin D3/K, and Biosil is commendable. It's great that you are motivated to continue managing this naturally.Feel free to reach out in 3 months to schedule your blood work for glucose and HbA1c tests. Wishing you a very happy holiday season as well!Best regards,Eena Duggal, MD\n", + "----------------------------------------\n", + "idx: 166593\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about CBC with Differential resulted on 11/27/24, 11:56?AM...I will! A couple notes:1. ALT is in a consistent range for me since 2007. It has been as high as 41 in 07 and as low as 28 in 19. Primarily between 34-39, which was in range until it was lowered to 32 from 40 in 2013. 2. Glucose may be an anomaly, as it was in 2007 when it was 106. We discussed this then and diabetes etc., but I felt wasn’t an accurate test since I had always been in high 80’s to 90’s and there been no lifestyle changes. I retested 3 months later and it was 87.3. Cholesterol, I have been thinking about what has changed to cause this increase and the one thing I can think of is we’ve been using a meal delivery plan for a few years. Based upon my research on dietary factors, this might be a contributing factor based upon the meal ingredients. I also do not have enough fruit or other vegetables in my diet. Things I can immediately change.4. Cardiovascular report I have from Labcorp and the patient assessment of risk is LOW. Thank you, kk\n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Hi Kay,Your CBC with Differential results are available for viewing in MyHealth, in the \"Test Results\" activity once they have been finalized and are ready for review.Regarding your notes:1. It's good to know that your ALT levels have been consistent, and I saw this in your previous labs as well. We will continue to monitor them.2. If your glucose levels have been stable and the recent high reading seems like an anomaly, we can recheck it in a few months to confirm. I will also add the HBA1c test for diabetes to your next labs.3. Dietary changes can indeed impact cholesterol levels. Increasing your intake of fruits and vegetables and reviewing the meal delivery plan ingredients are good steps.4. It's reassuring that your cardiovascular risk assessment is low.If you have any further questions or concerns, feel free to reach out.Best regards,Eena Duggal, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:04,751 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:04,753 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:04,753 - ✅ similarity: 0.4354\n", + "2025-06-17 14:15:04,755 - Sender: ZAPIEN, DANIELA [ S0373097] -> the retrieved similar message : Eena, I was going to see you tomorrow at 1:20 PM. The reason was my blood pressure. While monitroing my wife's bp, I also was taking mine. Mine has been consistently high. Today I had an annual follow-up with Chris Wulff for a chronic EKG abnormality. He felt that I should be on bp meds. He is starting me on lisinopril. I will monitor my bp over the next couple of weeks. I will them message him and you about where my bp is trending. FYI, most of the time it has been running 150-160/85-98. Since I am just beginning the med, I cancelled tomorrow's appointment.Angelo\n", + "2025-06-17 14:15:04,755 - Provider's response to this similar message: Hi Angelo,Thank you for the update. Yes, makes sense for you to Follow up with me after you been on the new BP medication for about 3-4 weeks.Glad you were able to see your cardiologist as well.Take care,Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "2025-06-17 14:15:04,756 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:04,761 - Thread ID: 254918222\n", + "--------------------------------------------------------------------------------\n", + "idx: 37696\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Eena, I was going to see you tomorrow at 1:20 PM. The reason was my blood pressure. While monitroing my wife's bp, I also was taking mine. Mine has been consistently high. Today I had an annual follow-up with Chris Wulff for a chronic EKG abnormality. He felt that I should be on bp meds. He is starting me on lisinopril. I will monitor my bp over the next couple of weeks. I will them message him and you about where my bp is trending. FYI, most of the time it has been running 150-160/85-98. Since I am just beginning the med, I cancelled tomorrow's appointment.Angelo\n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Hi Angelo,Thank you for the update. Yes, makes sense for you to Follow up with me after you been on the new BP medication for about 3-4 weeks.Glad you were able to see your cardiologist as well.Take care,Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "----------------------------------------\n", + "2025-06-17 14:15:04,794 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:04,816 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:04,825 - ✅ similarity: 0.4215\n", + "2025-06-17 14:15:04,840 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Hi Dr. Duggal. I have an apt at Quest for Wednesday, 10/30, so I will surely have more labs done. I have made an apt for 11/11 at 2:20 pm, look forward to it. I will definitely continue to keep logging my BP. I take it first thing in the morning and each evening. It is down but will provide my log to you prior to my apt. My daughter is doing better and gives Darin & I peace of mind with me staying with her. One more concern, I was informed 10/24 that I was denied an accommodation for work. The denial has been escalated but I will unfortunately need more documentation or a revised letter from you. Please let me know what is easiest for you. My manager stated that it’s best to list all medical conditions & express that being in office is not an option due to a weak immune system, etc. needs to be specific. I traveled to Seattle - 2 weeks ago and came home with a flu/virus and still battling some chest congestion. Will go to urgent care tomorrow if it persists. Thx. -kc\n", + "2025-06-17 14:15:04,860 - Provider's response to this similar message: Thanks for the update Kelly!I will see you soon and we can discuss these concerns further then.Take care,Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "2025-06-17 14:15:04,862 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:04,866 - Thread ID: 247001303\n", + "--------------------------------------------------------------------------------\n", + "idx: 371450\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Duggal. Please disregard my previous message about labs. I was looking in the wrong tab, found the request. Apologize for the bother. I have an apt 10/31, you should have the results within a few days, I imagine. Thank you! -Kelly\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 371449\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Duggal. I wanted to touch base with you about the order for my bloodwork. I went to quest today and they had no record of the order. I looked in the app and I didnt see the labs, can you please let me know if they were requested? If so, can you let me know what was requested? I appreciate your help! Enjoy the day! Kelly \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 371448\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Duggal. I have an apt at Quest for Wednesday, 10/30, so I will surely have more labs done. I have made an apt for 11/11 at 2:20 pm, look forward to it. I will definitely continue to keep logging my BP. I take it first thing in the morning and each evening. It is down but will provide my log to you prior to my apt. My daughter is doing better and gives Darin & I peace of mind with me staying with her. One more concern, I was informed 10/24 that I was denied an accommodation for work. The denial has been escalated but I will unfortunately need more documentation or a revised letter from you. Please let me know what is easiest for you. My manager stated that it’s best to list all medical conditions & express that being in office is not an option due to a weak immune system, etc. needs to be specific. I traveled to Seattle - 2 weeks ago and came home with a flu/virus and still battling some chest congestion. Will go to urgent care tomorrow if it persists. Thx. -kc\n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Thanks for the update Kelly!I will see you soon and we can discuss these concerns further then.Take care,Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "----------------------------------------\n", + "idx: 371447\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Duggal. Thanks for your prompt reply. I will get my blood work done ASAP. There is a quest down the street from my daughter’s condo. Super easy. Thank you. I will made a tele-med visit apt on 11/11 :) I will also pop into urgent care to monitor my BP as well as continue to log my blood pressure as well, will keep you posted. I appreciate you. -Kelly \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 371446\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Duggal. Wanted to touch base with you in regard to weight loss and night sweats…and stress/BP. I am in AZ and unable to make an apt while here, so this is my best approach until I return. Had an emergency with my oldest and wont be coming home until 11/11, going to my mammogram on 11/13 and heading back to AZ. I do continue to have night sweats, some days I wake up drenched and others damp. In addition, my clothes are starting to fall off as I continue to lose weight. I stopped exercising to see if that was the root but I haven’t exercised since I last saw you. I weighed myself today and I am at 140 lbs. I cant recall what I was on my last visit but feel like I have lost a bit more weight since then. Can you please confirm? Also, I have been closely monitoring my blood pressure and although it has been a little better, I am consistently at 154/94; 153/93; 159/92; 152/97. My BP used to be low. I believe this has been a result of stress from work. Please LMK your thoughts. Thx \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hi Kelly,I am certainly concerned about your persisting symptoms and weight loss, etc. Your last weight in my office last month was 147 lbs. I have ordered some labs for you to have done at any Quest lab near you in Arizona. I am glad you are going to have your mammogram done. I am also thinking you may need some additional imaging with a CT scan, etc but will need to assess you further before ordering some of these tests.You mentioned you will be back in town on Nov 11. I can most certainly see you in person or by video visit appointment on Nov 11 or 12. I cannot see you the same day as your mammogram on Nov 13 because I am out of town that day. Let me know which day you are back in California and can see me. Please continue to monitor your BP and keep a BP log. I would also suggest maybe going to an Urgent Care in Arizona to have them assess your BP in the next couple of weeks, before you return home.I hope your daughter is doing alright. Please reach back out to me to let me know which date you prefer and I will accommodate you on that day.Take care,Eena Duggal, MDFamily Medicine and Pediatrics925/462-7060\n", + "----------------------------------------\n", + "2025-06-17 14:15:04,874 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:04,876 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:04,876 - ✅ similarity: 0.3542\n", + "2025-06-17 14:15:04,878 - Sender: KO, TIMMY [ S0377957] -> the retrieved similar message : Hi Dr. Duggal,I have a follow up to do bloodwork again and we had discussed an early January time based on my last visit with you. The orders are still in my chart as I have not done them yet. I plan on doing them in early January but I wanted to double check to see if this is of concern and I may need to update the blood order test based on what you think here: I’ve been on gabapentin 300 mg daily for about 2 1/2 months. In addition, due to the back pain I was prescribed 800 mg ibuprofen and I take that as needed 4 times a week, once a day, for maybe the last month or so. Do I need to do additional blood testing to ensure this medication isn’t affecting other things like liver, kidney things like that? I don’t normally take any other oral medication this regularly but I thought about that to ask since I’ve been taking a lot lately due to all of the issues with leg nerve pain and back pain. I thought I would ask, in case we need to add other bloodwork tests to this order. \n", + "2025-06-17 14:15:04,881 - Provider's response to this similar message: Hello - Dr. Duggal is currently out of the office.Thank you for reaching out. Given that you have been taking gabapentin and ibuprofen regularly, it is a good idea to monitor your liver and kidney function periodically. We received a copy of the lab results from 11/6/24 that you completed for neurologist, Dr. Man Kong Leung. The labs included kidney and liver function, which were all within normal range.No additional testing is needed at this time.Please proceed with your bloodwork in early January as planned. If you have any further questions or concerns, feel free to reach out. Kind regards,Chereamie Scott, FNP-CNurse Practitioner\n", + "2025-06-17 14:15:04,882 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:04,889 - Thread ID: 253908286\n", + "--------------------------------------------------------------------------------\n", + "idx: 86037\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Duggal,I have a follow up to do bloodwork again and we had discussed an early January time based on my last visit with you. The orders are still in my chart as I have not done them yet. I plan on doing them in early January but I wanted to double check to see if this is of concern and I may need to update the blood order test based on what you think here: I’ve been on gabapentin 300 mg daily for about 2 1/2 months. In addition, due to the back pain I was prescribed 800 mg ibuprofen and I take that as needed 4 times a week, once a day, for maybe the last month or so. Do I need to do additional blood testing to ensure this medication isn’t affecting other things like liver, kidney things like that? I don’t normally take any other oral medication this regularly but I thought about that to ask since I’ve been taking a lot lately due to all of the issues with leg nerve pain and back pain. I thought I would ask, in case we need to add other bloodwork tests to this order. \n", + "----------------------------------------\n", + "Provider Response by DUGGAL, EENA:\n", + "Hello - Dr. Duggal is currently out of the office.Thank you for reaching out. Given that you have been taking gabapentin and ibuprofen regularly, it is a good idea to monitor your liver and kidney function periodically. We received a copy of the lab results from 11/6/24 that you completed for neurologist, Dr. Man Kong Leung. The labs included kidney and liver function, which were all within normal range.No additional testing is needed at this time.Please proceed with your bloodwork in early January as planned. If you have any further questions or concerns, feel free to reach out. Kind regards,Chereamie Scott, FNP-CNurse Practitioner\n", + "----------------------------------------\n", + "2025-06-17 14:15:04,889 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:05,480 - Original Message:\n", + "2025-06-17 14:15:05,480 - original_query_message: Will you need to order a blood draw or is that already done?Thank you.\n", + "2025-06-17 14:15:06,922 - Query Parameters:\n", + "2025-06-17 14:15:06,925 - query_message: Hi, just wanted to check—do I need to come in for any additional blood work, or do you already have all the lab results you need from my last appointment? I've been feeling extra tired lately along with the dizziness, and just want to make sure we're covering all the bases. Thanks!\n", + "2025-06-17 14:15:06,926 - receiver: CHANG, KEVIN KAI CHIH\n", + "2025-06-17 14:15:06,927 - department: STANFORD INTERNAL MEDICINE WEST\n", + "2025-06-17 14:15:06,928 - specialty: Primary Care\n", + "2025-06-17 14:15:07,260 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:07,260 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:07,261 - ✅ similarity: 0.7135\n", + "2025-06-17 14:15:07,262 - Sender: CUNANAN, JERALDINE [ S0290823] -> the retrieved similar message : Hi Doctor - happy new year! my appointment is coming up on Monday. would it be possible for your to please order the blood panel tests so that i can be ready for the Monday visit? think you had recommended checking for Vitamin D and Vitamin B12 this time around because i was low last time we checked and started supplements.\n", + "2025-06-17 14:15:07,262 - Provider's response to this similar message: Hello Mr. Mani, I am Dr. Wilson, one of the members of your Primary Care team, and I am working with Dr. Chang today. He is out of the office and will be back tomorrow.I signed an A1C, B12, and Vitamin D orders for you. If you think that Dr. Chang might possibly want other labs at your visit, you might want to have you appointment with him first though so you don't have to have your blood drawn twice.Please let me know if you have any additional questions or concerns. Best,Kalin Wilson, MD Clinical Assistant ProfessorInternal Medicine- Primary Care and Population HealthStanford University \n", + "2025-06-17 14:15:07,264 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:07,267 - Thread ID: 254654842\n", + "--------------------------------------------------------------------------------\n", + "idx: 51677\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks so much, appreciate it. \n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 51676\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks, Doctor Wilson. i appreciate you helping out here. possible to also place orders for 1) TSH w/ Reflex T4, 2) Metabolic Panel, Comprehensive, 3) CBC w/o Diff, 4) Lipid Panel with calculated LDL, and 5) Fructosamine please. these tests cover what Dr Chang usually tests for during annual check ups. i could do the tests before my visit - i prefer that - if you can please support the ask. \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hello Kaushik, Dr. Chang is out of the office currently. I am one of the other physicians in clinic helping to cover his messages today. He will be back in clinic next week. I placed the additional lab orders for you, let us know if there is anything else we can do to assist! Best wishes, Kevin Lutley, MD\n", + "----------------------------------------\n", + "idx: 51675\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Doctor - happy new year! my appointment is coming up on Monday. would it be possible for your to please order the blood panel tests so that i can be ready for the Monday visit? think you had recommended checking for Vitamin D and Vitamin B12 this time around because i was low last time we checked and started supplements.\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hello Mr. Mani, I am Dr. Wilson, one of the members of your Primary Care team, and I am working with Dr. Chang today. He is out of the office and will be back tomorrow.I signed an A1C, B12, and Vitamin D orders for you. If you think that Dr. Chang might possibly want other labs at your visit, you might want to have you appointment with him first though so you don't have to have your blood drawn twice.Please let me know if you have any additional questions or concerns. Best,Kalin Wilson, MD Clinical Assistant ProfessorInternal Medicine- Primary Care and Population HealthStanford University \n", + "----------------------------------------\n", + "2025-06-17 14:15:07,269 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:07,270 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:07,271 - ✅ similarity: 0.6561\n", + "2025-06-17 14:15:07,272 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Thank you very much, Dr. Chang. Since I have not got any annual physical check up for the past 18 months or so, could you please also write me the other tests, (including the full metabolism panel, test differential test, liver enzymes, cholesterol, thyroid, urine, test, etc)? My glucose level today after a very small meal went up to 165, and it was confirmed with glucose meter (finger-stick) as well as Libre. Given the high-level information observed in my body over the past year I thought it would be great to do a full check up and see where things are standing at. Thank you so much and happy holidays!BestHesaam \n", + "2025-06-17 14:15:07,273 - Provider's response to this similar message: Hi Mr. Esfandyarpour,Labs ordered.BestKevin Chang\n", + "2025-06-17 14:15:07,274 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:07,280 - Thread ID: 254004013\n", + "--------------------------------------------------------------------------------\n", + "idx: 81402\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. How about Monday late morning (anytime between 10-12) or afternoon after 2:45pm?I also saw blood in my stool which is concerning as well, and I’d like to see Dr Chang asap.Thanks a lot \n", + "----------------------------------------\n", + "Provider Response by SIM FRONT DESK POOL:\n", + "Dear Hesaam Esfandyarpour,Dr. Chang, Kevin Kai Chih next available appointment is 1/17/2025 at 11:30 am? Would you like to wait for this slot or can I help you schedule a sooner appointment with a different provider?Thank you for allowing us to partner in your care. We look forward to seeing you soon.Stephanie Blancas, MAPatient Care CoordinatorInternal Medicine DepartmentSTANFORD Health Care211 Quarry Road Suite: 302/305 Palo Alto CA 94304Office: 650-498-9000 Fax: 650-725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 81401\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Dr Chang. For Zepbound, Rite aid said they requested additional info from you for insurance to help on authorization. Btw, I forgot to tell you that lately I sometime cough with shortness of breath and some heavy feeling in my lungs (feeling I can’t breathe). Not sure what you recommend.ThanksHesaam \n", + "----------------------------------------\n", + "Provider Response by BLANCAS, STEPHANIE:\n", + "Dear Hesaam Esfandyarpour,Dr. Chang, Kevin Kai Chih would like for you to make an appointment. Please provide me with the best time an date to further assist you.Thank you for allowing us to partner in your care. We look forward to seeing you soon.Stephanie Blancas, MAPatient Care CoordinatorInternal Medicine DepartmentSTANFORD Health Care211 Quarry Road Suite: 302/305 Palo Alto CA 94304Office: 650-498-9000 Fax: 650-725-7078Reminder:For urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week. \n", + "----------------------------------------\n", + "idx: 81400\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Chang,Good to see you just now. I got a call from pharmacy saying that the Wegovy but not Zepbound, I would need to pay $1500 plus. I thought you wrote Zepbound, so not sure if the Rite Aid made a mistake or not. Thanks \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,The system stated that Zepbound needed a prior auth, so I tried sending Wegovy instead (which it stated didn't need a prior auth). But sounds like they just mean they don't cover Wegovy. I sent Zepbound to Rite Aide just now.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 81399\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’ll be there tomorrow at 4:30 Thanks \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 81398\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’ll be there at 4:30. \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,You are scheduled for then.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 81397\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks for your message. How about Libre? I’d expect that insurance should cover something for continues monitoring before it gets worse. Re- the appointment, please let me know when is a good time and I’ll be there. thanks a lot. BestHesaam \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,Insurance does not cover any continuous glucose monitoring (including Libre) in the absence of diabetes with insulin therapy. The over the counter CGMs are Stelo (by Dexcom) and Lingo (by Abbott).I can see you tomorrow at 4:00 or 4:30 pm.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 81396\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Chang,Thank you for ordering the tests. Given the higher A1c level, 6.1, indicating prediabetes and my increased weight of close to 220 pound. What would you recommend?Could you please order me glucose monitoring patches (Dexcom G7), as I believe it’s crucial to monitor the glucose level? Thanks,Hesaam \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,I would suggest you schedule an appointment to discuss whether medications are appropriate.Dexcom G7 will not be covered by your insurance. They only cover CGM for diabetics on insulin therapy. But I will send and you can decide whether to pay out of pocket.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 81395\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you very much, Dr. Chang. Since I have not got any annual physical check up for the past 18 months or so, could you please also write me the other tests, (including the full metabolism panel, test differential test, liver enzymes, cholesterol, thyroid, urine, test, etc)? My glucose level today after a very small meal went up to 165, and it was confirmed with glucose meter (finger-stick) as well as Libre. Given the high-level information observed in my body over the past year I thought it would be great to do a full check up and see where things are standing at. Thank you so much and happy holidays!BestHesaam \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,Labs ordered.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 81394\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr Cheng,Could you please write me a blood test, A1C and fasting glucose test? Recently I used Freestyle Libre 3 and my fasting glucose shows more than 120, (see attached) which could be alarming and representative of diabetes?Recently I gained weight (I saw I got to 215-220 lbs while I was 202-207 for the past year). Thanks a lotHesaam \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Esfandyarpour,Labs have been ordered.BestKevin Chang\n", + "----------------------------------------\n", + "2025-06-17 14:15:07,281 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:07,283 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:07,284 - ✅ similarity: 0.6425\n", + "2025-06-17 14:15:07,285 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Sounds great,I had to reschedule the cardiology visits.Blood pressure readings not changed much.Thanks for your help.\n", + "2025-06-17 14:15:07,285 - Provider's response to this similar message: Hi Dr. Pinto,What is your average blood pressure currently. We may need to use something like losartan to bring it down more.BestKevin Chang\n", + "2025-06-17 14:15:07,286 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:07,289 - Thread ID: 248860898\n", + "--------------------------------------------------------------------------------\n", + "idx: 330375\n", + "Subject: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks, \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 330374\n", + "Subject: RE: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I do think we need to talk more about my exercise program.I am on a masters swim team and have competed in over 600 races at swim meets in the past 10 years. Last August I got 10th in my age group at the world championships in Japan the 400 individual medley , and 21st in the 3000 meter open water race. Generally I swim about 2500-3000 yards in practice 5-7 days a week. This year I have done less competition because I have been too busy at work.It looks like I may need to modify my swim program, with the results of the echo. So far only 2 mild episodes since starting metoprolol.I will send a more detailed blood pressure log.Harlan\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 330373\n", + "Subject: RE: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, Just to clarify, All 3 meds for BP daily:Amlodipine, metoprolol, losartan, and the statin for lipid optimization.Harlan\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Dr. Pinto,Yes, the 3 medications for BP are amlodipine, metoprolol, and losartan.Statin is because of the non-obstructive coronary artery disease seen on the CT; for lipid optimization.Regarding swimming, I would suggest trying to find the distance or intensity that allows you to avoid the anginal symptoms. I am also hoping that with reduction in blood pressure (ie afterload), that will improve the gradient across the stenotic aortic valve, and thereby improve your exercise capacity.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 330372\n", + "Subject: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you accelerate the cardiology consultation?I had to cancel 11/7/24 because I am presenting at a meeting in FloridaCardiology now scheduled for Jan 23,202The dobutamine echo is 12/24/24.I am on wait list for cancellations for both.I leave for Switzerland, 11/11/24 and back 11/26/24.Thanks for your attentiveness.\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 330371\n", + "Subject: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I took the combination losartan Hctz before and it did not work well. I did not have k problems with it but I am hesitant, because I think there will be multiple changes. The main driver in the past has been my weight. I think lifestyle changes will go a long way to getting things back in line. I am diligently working on this and only a few mild episodes (no need to stop at swim practice ) since our visit. \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Pinto,I do think we need something additional for the blood pressure. Lowering the blood pressure will also help improve the hemodynamics across the aortic stenosis. Would you willing to start just losartan 50mg on it's own (without the HCTZ)? BestKevin Chang\n", + "----------------------------------------\n", + "idx: 330370\n", + "Subject: RE: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Cardiology appt rescheduled - next available January 23, 2025.I am a waitlist for cancellation. \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Dr. PintoI would prefer we start losartan-hctz in the meantime - to get your blood pressure better controlled. I sent losartan-hctz 50-12.5mg daily to your Walgreens (as well as the rosuvastatin).Please check your labs in 1-2 weeks to make sure potassium and creatinine okay.Send me your blood pressure readings in 2-4 weeks.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 330369\n", + "Subject: RE: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Abg. Bp 160/78One reading of 140/74 all the others systolic 155-160-170Pulse - no mTheajor change with metoprolol during ct Anglo pulse required 1 dose of iv met op for the optimal hear rate for the study. Thanks\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 330368\n", + "Subject: RE: CCTA Results\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sounds great,I had to reschedule the cardiology visits.Blood pressure readings not changed much.Thanks for your help.\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Dr. Pinto,What is your average blood pressure currently. We may need to use something like losartan to bring it down more.BestKevin Chang\n", + "----------------------------------------\n", + "2025-06-17 14:15:07,291 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:07,292 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:07,292 - ✅ similarity: 0.6413\n", + "2025-06-17 14:15:07,293 - Sender: BLANCAS, STEPHANIE [ S0369401] -> the retrieved similar message : Happy New Year Dr. Chang!I have an appointment to see you in mid-February. Would you please order any blood work that I can complete before my appointment? Thank you very much. Caroline \n", + "2025-06-17 14:15:07,294 - Provider's response to this similar message: Hi Ms. Kosaka,I have ordered the labs, you can do them at the lab fasting.BestKevin Chang\n", + "2025-06-17 14:15:07,294 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:07,296 - Thread ID: 255485650\n", + "--------------------------------------------------------------------------------\n", + "idx: 13522\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Will do.Caroline \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "No response\n", + "----------------------------------------\n", + "idx: 13521\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Happy New Year Dr. Chang!I have an appointment to see you in mid-February. Would you please order any blood work that I can complete before my appointment? Thank you very much. Caroline \n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Ms. Kosaka,I have ordered the labs, you can do them at the lab fasting.BestKevin Chang\n", + "----------------------------------------\n", + "2025-06-17 14:15:07,297 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:07,297 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:07,298 - ✅ similarity: 0.6136\n", + "2025-06-17 14:15:07,299 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr Chang,I will get the tests done. Can I get these done this weekend or should I wait till closer to our appt on Jan 6th?Thanks.Dipankar\n", + "2025-06-17 14:15:07,299 - Provider's response to this similar message: Hi Mr. Talukdar,You can get the test done whenever you have time, before the appointment.BestKevin Chang\n", + "2025-06-17 14:15:07,300 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:07,302 - Thread ID: 253378651\n", + "--------------------------------------------------------------------------------\n", + "idx: 110068\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Chang,I will get the tests done. Can I get these done this weekend or should I wait till closer to our appt on Jan 6th?Thanks.Dipankar\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Talukdar,You can get the test done whenever you have time, before the appointment.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 110067\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dipankar Talukdar, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Respectfully,Jackie Olivo PCCStanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "Provider Response by CHANG, KEVIN KAI CHIH:\n", + "Hi Mr. Talukdar,Labs have been ordered. Complete them fasting.BestKevin Chang\n", + "----------------------------------------\n", + "idx: 110066\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Chang,I have my annual physical scheduled for Jan 6th. Should I get any regular blood test done before the visit?Thanks.Dipankar\n", + "----------------------------------------\n", + "Provider Response by SIM WEST MYHEALTH CLINIC MESSAGING:\n", + "Dear Dipankar Talukdar, Your message is important to us. It has been forwarded to your provider or covering provider for review. Please allow 2 business days to receive a response. Thank you for allowing us to partner in your care. Respectfully,Jackie Olivo PCCStanford Internal Medicine 211 Quarry Road 3rd floor Suite 302/305Palo Alto CA 94304Phone: (650) 498-9000 Fax: (650) 725-7078Reminder:MyHealth is for non-urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. MyHealth messages are routinely checked Monday through Friday from 8:00 a.m. to 5:00 p.m. Your message will be addressed by your care team within 48-72 business hours.For urgent issues, assistance is available 24 hours a day by calling your primary care team or clinic at 650-498-9000.\n", + "----------------------------------------\n", + "2025-06-17 14:15:07,303 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:07,627 - Original Message:\n", + "2025-06-17 14:15:07,629 - original_query_message: good afternoon, hi, I've had continuous knee issues and also back spasms at times. How can I obtain a handicap plaque for my car.\n", + "2025-06-17 14:15:09,194 - Query Parameters:\n", + "2025-06-17 14:15:09,196 - query_message: Hello, I’ve been struggling a lot lately with chronic joint pain, especially in my knees, and some pretty uncomfortable lower back stiffness that flares up every so often. Walking long distances—like in big parking lots—has become really tough for me, more than I’d like to admit. I want to be as independent as possible, but getting around is starting to feel overwhelming on bad days. I was wondering, what steps would I need to take to be considered for a disabled parking permit? And do I need specific documentation from my doctor? Any guidance would be really appreciated.\n", + "2025-06-17 14:15:09,197 - receiver: ALFP CARE TEAM POOL\n", + "2025-06-17 14:15:09,198 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:15:09,200 - specialty: Family Medicine\n", + "2025-06-17 14:15:10,148 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:10,149 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:10,151 - ✅ similarity: 0.7208\n", + "2025-06-17 14:15:10,152 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Kindal.I hope this message finds you well. I am reaching out to inquire about my eligibility for handicapped parking due to a medical condition that affects my mobility.As you may be aware, I have been diagnosed with spinal problems in both my neck and lower back areas. Despite ongoing treatment, I continue to experience discomfort on a regular basis, particularly after driving. This has significantly impacted my daily life and mobility.I was informed that certain spinal conditions mayqualify for handicapped parking accommodations. Therefore, I am reaching out to explore this option and determine if I am eligible for handicapped parking.I would greatly appreciate your guidance and support in this matter. Thank you for your assistance.Best,Hanyu\n", + "2025-06-17 14:15:10,154 - Provider's response to this similar message: Good afternoon Ms Zhang,Please contact the office to schedule an apt with Ms Kindal to discuss further. To facilitate the process please call 408-997-9155 option 1. Thank you and have a great day. Esveydi Govea, MA, 1/13/2025, 5:10 PM \n", + "2025-06-17 14:15:10,156 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:10,169 - Thread ID: 255631973\n", + "--------------------------------------------------------------------------------\n", + "idx: 7085\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kindal.I hope this message finds you well. I am reaching out to inquire about my eligibility for handicapped parking due to a medical condition that affects my mobility.As you may be aware, I have been diagnosed with spinal problems in both my neck and lower back areas. Despite ongoing treatment, I continue to experience discomfort on a regular basis, particularly after driving. This has significantly impacted my daily life and mobility.I was informed that certain spinal conditions mayqualify for handicapped parking accommodations. Therefore, I am reaching out to explore this option and determine if I am eligible for handicapped parking.I would greatly appreciate your guidance and support in this matter. Thank you for your assistance.Best,Hanyu\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good afternoon Ms Zhang,Please contact the office to schedule an apt with Ms Kindal to discuss further. To facilitate the process please call 408-997-9155 option 1. Thank you and have a great day. Esveydi Govea, MA, 1/13/2025, 5:10 PM \n", + "----------------------------------------\n", + "2025-06-17 14:15:10,170 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:10,171 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:10,171 - ✅ similarity: 0.5685\n", + "2025-06-17 14:15:10,172 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : good afternoon, hi, I've had continuous knee issues and also back spasms at times. How can I obtain a handicap plaque for my car.\n", + "2025-06-17 14:15:10,173 - Provider's response to this similar message: Hello,It would be best to schedule an appointment to discuss this. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. Best, Your Care Team \n", + "2025-06-17 14:15:10,173 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:10,175 - Thread ID: 250053345\n", + "--------------------------------------------------------------------------------\n", + "idx: 269038\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "good afternoon, hi, I've had continuous knee issues and also back spasms at times. How can I obtain a handicap plaque for my car.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello,It would be best to schedule an appointment to discuss this. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. Best, Your Care Team \n", + "----------------------------------------\n", + "2025-06-17 14:15:10,176 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:10,176 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:10,177 - ✅ similarity: 0.4210\n", + "2025-06-17 14:15:10,178 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi,I think I would like to take a short term disability starting January 6th, if that would be possible,Please let me know how to proceed.\n", + "2025-06-17 14:15:10,178 - Provider's response to this similar message: Hello Olivia, I would schedule a follow up with Andressa to discuss FLOA. Please call to schedule an appointment with Andressa. Sincerely,Hayleigh Bueno, MA, 12/18/2024, 2:01 PM \n", + "2025-06-17 14:15:10,179 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:10,192 - Thread ID: 253690016\n", + "--------------------------------------------------------------------------------\n", + "idx: 96027\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I think I would like to take a short term disability starting January 6th, if that would be possible,Please let me know how to proceed.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Hello Olivia, I would schedule a follow up with Andressa to discuss FLOA. Please call to schedule an appointment with Andressa. Sincerely,Hayleigh Bueno, MA, 12/18/2024, 2:01 PM \n", + "----------------------------------------\n", + "2025-06-17 14:15:10,193 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:10,193 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:10,194 - ✅ similarity: 0.4173\n", + "2025-06-17 14:15:10,195 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good afternoon, and Happy Thanksgiving. I’ve attached the pdf form for the temporary handicapped placard for Dr. Ilic to sign. Thank you! \n", + "2025-06-17 14:15:10,205 - Provider's response to this similar message: As you know Dr Ilic is no longer here. I will have one of the other MD's to see if they can sign it. We will let you know.Thank youBrenda / MA\n", + "2025-06-17 14:15:10,221 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:10,236 - Thread ID: 251844286\n", + "--------------------------------------------------------------------------------\n", + "idx: 177825\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I went to the DMV and they renewed it. I don’t need it signed now. Thank you,Cindy \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Ok , thank you for letting us know. I will dispose of the application .\n", + "----------------------------------------\n", + "idx: 177824\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you! I hope one of those can sign it do I can bring it to the DMV. Thanks so much. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Yes I will let you know when the form is completed. There is a form fee of $25.00 .\n", + "----------------------------------------\n", + "idx: 177823\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I had no idea that Dr. Ilic was no longer with the office. I had an appointment with her a couple of weeks ago. My doctor was Dr. Haggerty, and I was moved to her last month when he left. I would like to see a list of other doctors there so I can move over again. The website doesn’t show any others but one. Thanks for your help,Cindy \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + ".New doctor Dr. Hansaa Gopal will join the clinic late January 2025.In the meantime, we have a Locum Tenens, Dr Ferjani, who is helping to see our patients during these provider transitions. Almaden Family Physicians6475 Camden Ave Ste 105San Jose, CA 95120Phone: 408 997-9155Please see information below for our sister clinics who are accepting patients:Family Medicine Samaritan Los Gatos (Stanford HealthCare)(Dr Naomi Kim and Dr Michael Baule)15425 Los Gatos Blvd #120Los Gatos, CA 95032Phone: (408) 340-5700Family Medicine Associates of San Jose (Stanford HealthCare)(Dr. Weston Lagrandeur and Dr. Marta Miguelena)Address: 455 O'Connor Dr. Suite 210, San Jose, CA 95128Phone: (408) 995-5453Or our other sister clinic:(Stanford HealthCare)Collaborative Primary Care14251 Winchester Blvd, Suite 200Los Gatos, CA 95032Phone: 408-426-5540You are welcome to call 1800 number at the back of your health insurance card. Or check their website.They will have some resources for you as well.\n", + "----------------------------------------\n", + "idx: 177822\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon, and Happy Thanksgiving. I’ve attached the pdf form for the temporary handicapped placard for Dr. Ilic to sign. Thank you! \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "As you know Dr Ilic is no longer here. I will have one of the other MD's to see if they can sign it. We will let you know.Thank youBrenda / MA\n", + "----------------------------------------\n", + "2025-06-17 14:15:10,237 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:10,238 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:10,239 - ✅ similarity: 0.3880\n", + "2025-06-17 14:15:10,239 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Kahshal, It’s Daryl Sembrano wanted to follow up with you with my short term disability, you should have received some forms from the Hartford and UCSF if not please let me know. From what I got updated from the Hartford they need that form sooner. Also once I get the forms from the EDD I will also send that to you. Thank you Daryl \n", + "2025-06-17 14:15:10,248 - Provider's response to this similar message: Good morning Daryl, Both forms have been received. We will notify you once the forms have been completed and sent out. I have forwarded your message to Dr. Kaushal for her review. Best, Alondra Silva, MA, 12/4/2024, 8:37 AM\n", + "2025-06-17 14:15:10,252 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:10,267 - Thread ID: 252192220\n", + "--------------------------------------------------------------------------------\n", + "idx: 159767\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Daryl, Both forms have been received. We will notify you once the forms have been completed and sent out. I have forwarded your message to Dr. Kaushal for her review. Best, Alondra Silva, MA, 12/4/2024, 8:37 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "No response\n", + "----------------------------------------\n", + "idx: 159766\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kahshal, It’s Daryl Sembrano wanted to follow up with you with my short term disability, you should have received some forms from the Hartford and UCSF if not please let me know. From what I got updated from the Hartford they need that form sooner. Also once I get the forms from the EDD I will also send that to you. Thank you Daryl \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Daryl, Both forms have been received. We will notify you once the forms have been completed and sent out. I have forwarded your message to Dr. Kaushal for her review. Best, Alondra Silva, MA, 12/4/2024, 8:37 AM\n", + "----------------------------------------\n", + "2025-06-17 14:15:10,268 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:10,798 - Original Message:\n", + "2025-06-17 14:15:10,799 - original_query_message: Hi Dr. Chen,I hope all is well. I just got back from a work trip, so I got a bit behind. With regard to the fluoxetine; I tried it right after I saw you and which was about a week before my period. It definitely helped with mood regulation - but I also felt somewhat odd and was quicker to car sickness/nausea. Also, while it didn’t impact my libido, it did impact ability to orgasam which wasn’t ideal.Since it came as a pill rather than a capsule, and my period is due around the 27th I’ve been trying half pills since Monday and that seems to be a better compromise. The side effects seem to have gone and close to the same improvement in emotional regulation. Thoughts?Thanks!-Diane\n", + "2025-06-17 14:15:12,342 - Query Parameters:\n", + "2025-06-17 14:15:12,344 - query_message: Hi Dr. Chen,Hope you're having a good week! I wanted to touch base about the sertraline you prescribed for my PMS symptoms last month. I started taking it just after our last appointment, and I did notice that my mood swings around my cycle weren’t as intense, which was great. However, I’ve also been feeling a bit more sensitive to motion—like, even short car rides have left me queasy lately. Plus, I haven’t really had issues with desire, but I’m finding it’s taking a lot more effort to actually climax, which is kind of frustrating.I read online that sometimes lowering the dose or splitting the pill can help with side effects, so for the past few days I’ve been taking half a pill instead of a full one and that seems to work better for me—less queasiness but still some emotional balance. Is it okay to keep doing the half dose, or should I stick to the whole one? Also, would you recommend trying another med that maybe doesn’t affect arousal as much? Would appreciate your advice on this!Thanks so much,Lena\n", + "2025-06-17 14:15:12,346 - receiver: CHEN, EUNICE SHIN\n", + "2025-06-17 14:15:12,347 - department: CONCIERGE MEDICINE ATHERTON\n", + "2025-06-17 14:15:12,350 - specialty: Primary Care\n", + "2025-06-17 14:15:13,220 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:13,223 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:13,224 - ✅ similarity: 0.7068\n", + "2025-06-17 14:15:13,225 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Chen,I hope all is well. I just got back from a work trip, so I got a bit behind. With regard to the fluoxetine; I tried it right after I saw you and which was about a week before my period. It definitely helped with mood regulation - but I also felt somewhat odd and was quicker to car sickness/nausea. Also, while it didn’t impact my libido, it did impact ability to orgasam which wasn’t ideal.Since it came as a pill rather than a capsule, and my period is due around the 27th I’ve been trying half pills since Monday and that seems to be a better compromise. The side effects seem to have gone and close to the same improvement in emotional regulation. Thoughts?Thanks!-Diane\n", + "2025-06-17 14:15:13,227 - Provider's response to this similar message: Hello Diane,Thanks for letting me know.The lowest effective and tolerated dose is fine if it helps to offset the side effects.I just sent in the refill for the 20 mg dose so you can continue to split in half.Glad it's helping :) Have a good weekend.Kindly,Eunice S. Chen, MD\n", + "2025-06-17 14:15:13,231 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:13,238 - Thread ID: 248389685\n", + "--------------------------------------------------------------------------------\n", + "idx: 354363\n", + "Subject: RE: fluoxetine\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen,I hope all is well. I just got back from a work trip, so I got a bit behind. With regard to the fluoxetine; I tried it right after I saw you and which was about a week before my period. It definitely helped with mood regulation - but I also felt somewhat odd and was quicker to car sickness/nausea. Also, while it didn’t impact my libido, it did impact ability to orgasam which wasn’t ideal.Since it came as a pill rather than a capsule, and my period is due around the 27th I’ve been trying half pills since Monday and that seems to be a better compromise. The side effects seem to have gone and close to the same improvement in emotional regulation. Thoughts?Thanks!-Diane\n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Diane,Thanks for letting me know.The lowest effective and tolerated dose is fine if it helps to offset the side effects.I just sent in the refill for the 20 mg dose so you can continue to split in half.Glad it's helping :) Have a good weekend.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:13,239 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:13,240 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:13,241 - ✅ similarity: 0.6988\n", + "2025-06-17 14:15:13,242 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Chen,Thank you for your assistance on scheduling. I’m currently on the 100 mg dose of Sertraline and feel this is the appropriate amount to continue on. I appreciate it!Best,Zoe \n", + "2025-06-17 14:15:13,243 - Provider's response to this similar message: Hello Zoe,I sent the Rx to CVS in Sharon Park.Wishing you and your family a happy Thanksgiving!Since your last physical was in January of this year - we will need to schedule your physical for January.We can update your labs at that time as well.We recommend the updated flu and COVID vaccines when able - you can get this at our clinic or the local pharmacy.Kindly,Eunice S. Chen, MD\n", + "2025-06-17 14:15:13,243 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:13,246 - Thread ID: 251153550\n", + "--------------------------------------------------------------------------------\n", + "idx: 212630\n", + "Subject: RE: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen,Thank you for your assistance on scheduling. I’m currently on the 100 mg dose of Sertraline and feel this is the appropriate amount to continue on. I appreciate it!Best,Zoe \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Zoe,I sent the Rx to CVS in Sharon Park.Wishing you and your family a happy Thanksgiving!Since your last physical was in January of this year - we will need to schedule your physical for January.We can update your labs at that time as well.We recommend the updated flu and COVID vaccines when able - you can get this at our clinic or the local pharmacy.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 212629\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Zoe,Thanks for reaching out. Our team will reach out to you for scheduling - we can definitely accommodate you during that timeframe.Happy to refill the sertraline - what dose? I will send to the pharmacy once clarified.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "Provider Response by CORRAL, MICHELLE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 212628\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Chen,I apologize if this is the incorrect process for scheduling an annual physical appointment; for some reason I was unable to schedule via the “schedule an appointment” section in the app. If it is possible to do things this way, I was wondering if I could book a physical for any days 12/17-20 or from 1/4-10. Of course, I can call your office if that is preferred. As a separate question, I began taking Sertraline (100mg) this past Summer, and I was wondering if it would be possible to refill this prescription. I will be home next week, and can pick it up from my typical Sharon Park CVS pharmacy.Thank you for your assistance! Best,Zoe \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Zoe,Thanks for reaching out. Our team will reach out to you for scheduling - we can definitely accommodate you during that timeframe.Happy to refill the sertraline - what dose? I will send to the pharmacy once clarified.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:13,246 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:13,247 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:13,248 - ✅ similarity: 0.6668\n", + "2025-06-17 14:15:13,248 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi. Great. Can you send in a refill at the CVS? Currently I am on 175mg of sertraline as of Sept 2024. Before that I was on 200mg. I had tried to go to 150mg with Dr. Reed back in Feb 2024 but once I started getting the pins and needles feeling that didn’t go away I went back up to 200mg in April 2024 and the plan is to gradually take it down to 150mg. So I have been on 175mg for 2 months and the pins and needles haven’t come back. I’m feeling good on 175mg for the past couple of months. Wondering if I should wait a few more months before going trying to go down to 150mg again. \n", + "2025-06-17 14:15:13,249 - Provider's response to this similar message: Hello Dana,Thanks for the background information.Should I send in sertraline 50 mg tablets so you can adjust more easily between 150 mg and 175 mg?I think you could reduce to 150 mg anytime since you've been at 175 mg for 2 months and see how it goes. I'm glad you are feeling favorably now. Another thought is to scale down to 150 mg in the new year if end of year has a lot of activities/holidays/travel, etc. planned and you prefer not to make any changes until then.Please let me know and I will send the Rx to CVS.Kindly,Eunice S. Chen, MD\n", + "2025-06-17 14:15:13,249 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:13,253 - Thread ID: 248955343\n", + "--------------------------------------------------------------------------------\n", + "idx: 325651\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "How about you send in 100mg tablets and 50mg tablets. For the 50mg I will taken 1 1/2. November is going to be a hectic month so maybe I will reevaluate after then or wait until the new year like you mentioned. \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,I sent both Rx's to your CVS pharmacy.I think adjusting the dose when the calendar is relatively clear sounds like a reasonable strategy.Please keep me posted.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 325650\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi. Great. Can you send in a refill at the CVS? Currently I am on 175mg of sertraline as of Sept 2024. Before that I was on 200mg. I had tried to go to 150mg with Dr. Reed back in Feb 2024 but once I started getting the pins and needles feeling that didn’t go away I went back up to 200mg in April 2024 and the plan is to gradually take it down to 150mg. So I have been on 175mg for 2 months and the pins and needles haven’t come back. I’m feeling good on 175mg for the past couple of months. Wondering if I should wait a few more months before going trying to go down to 150mg again. \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,Thanks for the background information.Should I send in sertraline 50 mg tablets so you can adjust more easily between 150 mg and 175 mg?I think you could reduce to 150 mg anytime since you've been at 175 mg for 2 months and see how it goes. I'm glad you are feeling favorably now. Another thought is to scale down to 150 mg in the new year if end of year has a lot of activities/holidays/travel, etc. planned and you prefer not to make any changes until then.Please let me know and I will send the Rx to CVS.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 325649\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Chen. I am wondering if it makes sense to manage my SSRI medication with you. As you know, I have been on Zoloft (sertraline) for over 20 years. Only thing that has changed is the dosing. When I moved to California I was managing this with Dr. George Reed. I’m wondering if that is necessary or if I can go to you for this. Thanks,Dana\n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,Thanks for reaching out.I hope you are feeling well.Happy to manage the sertraline. Just let me know if/when you need a refill and send me the current dosing so I can manage in the future. Since I have not prescribed it for you in the past, you just need to send me a MyHealth message when your refill is near due.Have a good weekend.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:13,253 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:13,254 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:13,255 - ✅ similarity: 0.6365\n", + "2025-06-17 14:15:13,256 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr Chen,Thank you so much for replying immediately, I think even before I spoke to Michelle to ask her to bring my msg to yr attention. And not thinking that I'm a neurotic person or loony. I am really not a pill-popper type of person,but in this case,I am leaving within a few minutes to get the Valtrex.Really appreciate yr responsiveness. Will keep you posted.Phyllis \n", + "2025-06-17 14:15:13,257 - Provider's response to this similar message: Hello Phyllis,Happy to support you in the time of need.Please take care.Kindly,Eunice S. Chen, MD\n", + "2025-06-17 14:15:13,258 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:13,260 - Thread ID: 248822719\n", + "--------------------------------------------------------------------------------\n", + "idx: 332256\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Phyllis,Happy to support you in the time of need.Please take care.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "Provider Response by CORRAL, MICHELLE:\n", + "No response\n", + "----------------------------------------\n", + "idx: 332255\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Chen,Thank you so much for replying immediately, I think even before I spoke to Michelle to ask her to bring my msg to yr attention. And not thinking that I'm a neurotic person or loony. I am really not a pill-popper type of person,but in this case,I am leaving within a few minutes to get the Valtrex.Really appreciate yr responsiveness. Will keep you posted.Phyllis \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Phyllis,Happy to support you in the time of need.Please take care.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 332254\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Phyllis,I'm sorry to hear about the headache.I sent the Rx for valacyclovir to the pharmacy.Outpatient Medication Detail Disp Refills Start End valACYclovir (Valtrex) 1 gram tablet 21 tablet 2 10/24/2024 10/31/2024 Sig - Route: Take 1 tablet (1,000 mg total) by mouth 3 times a day for 7 days - Oral Sent to pharmacy as: valACYclovir 1 gram tablet (Valtrex) Class: E-Prescribe E-Prescribing Status: Receipt confirmed by pharmacy (10/24/2024 12:07 PM PDT) I hope you feel better soon.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 332253\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Chen,I'm writing you w some urgency b/c I am afraid that one of my \"shingles\" headaches may be starting again,&when I get hit w one of these,it worsens rapidly &will get very bad w/o treatment.Was woken up at about 10:15 this morning by a light but unusual headache, different fr the persistent headache that I've had since late Feb: have a pulsating/throbbing pain at upper left side,towards the back,of my head.&it's gotten more frequent in the past 90 min.Follows pattern of my past 4 episodes of these \"shingles\"headaches since I first had one about 15 yrs ago.As I've explained to you,I call these \"shingles\"headaches even tho I know that it's very unlikely to be caused by herpes zoster.But I remain convinced that it's caused by some similar type of virus that resides in my body.Can explain laterCd you pls prescribe Valtrex ASAP?Every single time I've had this headache Valtrex has w/in hrs resolved it.&Ibuprofen,etc do not.Cd you ask pharmacy to process ASAP?Thank you,Phyllis \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Phyllis,I'm sorry to hear about the headache.I sent the Rx for valacyclovir to the pharmacy.Outpatient Medication Detail Disp Refills Start End valACYclovir (Valtrex) 1 gram tablet 21 tablet 2 10/24/2024 10/31/2024 Sig - Route: Take 1 tablet (1,000 mg total) by mouth 3 times a day for 7 days - Oral Sent to pharmacy as: valACYclovir 1 gram tablet (Valtrex) Class: E-Prescribe E-Prescribing Status: Receipt confirmed by pharmacy (10/24/2024 12:07 PM PDT) I hope you feel better soon.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:13,262 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:13,263 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:13,264 - ✅ similarity: 0.6120\n", + "2025-06-17 14:15:13,266 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Chen. I am wondering if it makes sense to manage my SSRI medication with you. As you know, I have been on Zoloft (sertraline) for over 20 years. Only thing that has changed is the dosing. When I moved to California I was managing this with Dr. George Reed. I’m wondering if that is necessary or if I can go to you for this. Thanks,Dana\n", + "2025-06-17 14:15:13,267 - Provider's response to this similar message: Hello Dana,Thanks for reaching out.I hope you are feeling well.Happy to manage the sertraline. Just let me know if/when you need a refill and send me the current dosing so I can manage in the future. Since I have not prescribed it for you in the past, you just need to send me a MyHealth message when your refill is near due.Have a good weekend.Kindly,Eunice S. Chen, MD\n", + "2025-06-17 14:15:13,270 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:13,273 - Thread ID: 248955343\n", + "--------------------------------------------------------------------------------\n", + "idx: 325651\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "How about you send in 100mg tablets and 50mg tablets. For the 50mg I will taken 1 1/2. November is going to be a hectic month so maybe I will reevaluate after then or wait until the new year like you mentioned. \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,I sent both Rx's to your CVS pharmacy.I think adjusting the dose when the calendar is relatively clear sounds like a reasonable strategy.Please keep me posted.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 325650\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi. Great. Can you send in a refill at the CVS? Currently I am on 175mg of sertraline as of Sept 2024. Before that I was on 200mg. I had tried to go to 150mg with Dr. Reed back in Feb 2024 but once I started getting the pins and needles feeling that didn’t go away I went back up to 200mg in April 2024 and the plan is to gradually take it down to 150mg. So I have been on 175mg for 2 months and the pins and needles haven’t come back. I’m feeling good on 175mg for the past couple of months. Wondering if I should wait a few more months before going trying to go down to 150mg again. \n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,Thanks for the background information.Should I send in sertraline 50 mg tablets so you can adjust more easily between 150 mg and 175 mg?I think you could reduce to 150 mg anytime since you've been at 175 mg for 2 months and see how it goes. I'm glad you are feeling favorably now. Another thought is to scale down to 150 mg in the new year if end of year has a lot of activities/holidays/travel, etc. planned and you prefer not to make any changes until then.Please let me know and I will send the Rx to CVS.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "idx: 325649\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-25 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Chen. I am wondering if it makes sense to manage my SSRI medication with you. As you know, I have been on Zoloft (sertraline) for over 20 years. Only thing that has changed is the dosing. When I moved to California I was managing this with Dr. George Reed. I’m wondering if that is necessary or if I can go to you for this. Thanks,Dana\n", + "----------------------------------------\n", + "Provider Response by CHEN, EUNICE SHIN:\n", + "Hello Dana,Thanks for reaching out.I hope you are feeling well.Happy to manage the sertraline. Just let me know if/when you need a refill and send me the current dosing so I can manage in the future. Since I have not prescribed it for you in the past, you just need to send me a MyHealth message when your refill is near due.Have a good weekend.Kindly,Eunice S. Chen, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:13,275 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:13,850 - Original Message:\n", + "2025-06-17 14:15:13,850 - original_query_message: Please renew my Pristique prescription. I have 1 tablet left. The pharmacy sent a renewal request on 11/28. Thank you. Mary Cochran \n", + "2025-06-17 14:15:15,055 - Query Parameters:\n", + "2025-06-17 14:15:15,056 - query_message: Hi there, I’m running really low on my desvenlafaxine and only have enough for one more day. I noticed my prescription hasn’t been refilled yet, even though my pharmacy put in a request last week. I’ve been feeling more anxious and irritable lately, and I’m worried about missing any doses. Could someone please look into this for me? Thanks so much — I really appreciate your help! – Jenna S.\n", + "2025-06-17 14:15:15,058 - receiver: KAUSHAL, MANIKA V\n", + "2025-06-17 14:15:15,059 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:15:15,062 - specialty: Family Medicine\n", + "2025-06-17 14:15:15,472 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:15,489 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:15,490 - ✅ similarity: 0.6163\n", + "2025-06-17 14:15:15,492 - Sender: PROVEDOR, JAQUELIN [ S0186529] -> the retrieved similar message : Hi! This is a note I got need your help,so I let you know: ..... no more refills left on the prescription you recently requested through Express Scripts® Pharmacy. We contacted your doctor and haven't heard from them. ....To make sure you get your medication as soon as possible, please ask your doctor to send a new prescription to Express Scripts® Pharmacy. Regard: I always take LOSARTAN TABS (75mg) per day -Prescription #: 243581572556. Also I take these together below,may need refills or new prescription in the future too,which are: Chlorthalidone 25mg and Amlodipine 5mg. Thanks.\n", + "2025-06-17 14:15:15,494 - Provider's response to this similar message: Hi Kathlee,The last prescription filled shows that you are taking losartan 50 mg once daily??Can you make an appointment to discuss your medicationsDr.Kaushal\n", + "2025-06-17 14:15:15,495 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:15,500 - Thread ID: 254273817\n", + "--------------------------------------------------------------------------------\n", + "idx: 70628\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr.Griffith: I do have phayscal exam. appointment 5/2/2025 with you,I did want to see you sooner but your office said has to gave me the date is after May, so I have no choice,if you think I need to see you before,can you move up the date to Feb 2025? (You can check my phayscal exam date 2024 ,my phayscal exam was Feb. ... )\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70627\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr.Griffith: I do have phayscal exam. appointment 5/2/2025 with you,I did want to see you sooner but your office said has to gave me the date is after May, so I have no choice,if you think I need to see you before ,can you move up the date? (You can ceck my phayscal exam last year 2024 ,my phayscal exam was Feb. ... )\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70626\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! Dr. Griffith and nurse, How about Kathleen Lee ‘s medicine's REFILL? I wrote to you guys before,explain too(I do not need appointment for refill),my BP at home monitor record, are: (12/31)125/80, (1-1-25)131/81 , (1-2)130/70, (1-3)125/79, (1-4) 127/77. But My Losartan 50mg(135pcs)still waiting for refill …. * Please have Dr. Griffith refill this medication ASAP. You can see details and status of this medication from Express Scripts Pharmacy as follows: (On 12/23/24) Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70625\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! Dr. Griffith and nurse, How about Kathleen Lee ‘s medicine's REFILL? I wrote to you guys before,explain too(I do not need appointment for refill),my BP at home monitor record, are: (1-1-25) 131/81 ,(1-2) 130/70, (1-3)125/79, (1-4) 127/77. But My Losartan 50mg(135pcs)still waiting for refill …. * Please have Dr. Griffith refill this medication ASAP ( I almost run out this medicine) . You can see details and status of this medication from Express Scripts Pharmacy as follows: (On 12/23/24) Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70624\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! Dr. Griffith and nurse, How about Kathleen Lee ‘s medicine's REFILL? I wrote to you guys before,explain too(I do not need appointment for refill),also my BP at home monitor record,now are: (1-1-25) 131/81 ,(1-2) 130/70, (1-3)125/79, (1-4) 127/77. But My Losartan 50mg(135pcs)still waiting …. * Please have Dr. Griffith refill this medication ASAP ( I almost run out this medicine) . You can see details and status of this medication from Express Scripts Pharmacy as follows: (On 12/23/24) Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70623\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! Dr. Griffith, How about Kathleen Lee ‘s medicine's REFILL? I wrote to you guys before,explain too,also my BP at home monitor record,now are: (1-1-25) 131/81 ,(1-2) 130/70, (1-3)125/79, (1-4) 127/77. But My Losartan 50mg(135pcs)still waiting for you to refill…. * Please have Dr. Griffith refill this medication ASAP ( I almost run out this medicine) . You can see details and status of this medication from Express Scripts Pharmacy as follows: (On 12/23/24) Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70622\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Griffith, Kathleen Lee ‘s medicine: Losartan still waiting for your REFILL. We got your e-mail 1/1/25, said: Your prescriptions were refilled on the 31st.(12/31/24) ,but only my husband Thomas Lee got refilled successful, Kathleen Lee ‘s medicine: Losartan still holding…. * Please have Dr. Griffith refill this medication ASAP (because I may run out this medicine soon) . You can see details and status of this medication from Express Scripts Pharmacy as follows: (On 12/23/24) Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Dr. Griffith recommends you call front desk to schedule with any available provider for a sooner appointment. 408-997-9155 option 1.\n", + "----------------------------------------\n", + "idx: 70621\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Griffith, Kathleen Lee ‘s medicine: Losartan still waiting for your REFILL. We got your e-mail 1/1/25, said: Your prescriptions were refilled on the 31st.(12/31/24) ,but only my husband Thomas Lee got refilled successful, Kathleen Lee ‘s medicine: Losartan still waiting…. * Please have Dr. Griffith refill this medication ASAP (because I may run out this medicine soon) . You can see details and status of this medication from Express Scripts Pharmacy as follows: Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70620\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Griffith,My husband:Thomas Lee, has his medications handled by you and now is in the process of being shipped by Express Scripts Pharmacy, thank you. *But Kathleen Lee-my medication, Losartan, has not been handled and is not being shipped by the Express Script Pharmacy. Please handle it ASAP. (...I almost run out this medicine). The details and status of this medication is as follows: Order Details Shipment has been canceled and will not be sent to youLosartan Tabs 50 mg | 135 qty | 90-day supplyAutomatic Refill Rx Number 243581572556Rx# 243581572556Prescription details Prescriber: Kevin HaggertyKathleen New Fill CanceledWe can't fill your LOSARTAN TABS 50MG prescription because your prescriber did not reply to our request to provide necessary information. Please contact your prescriber to discuss and ask them to submit a new prescription electronically. You can see the status of your prescriptions at esrx.com.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70619\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! I mentioned my primary doctor now is Dr. David Griffith (physical exam on May/2025 ) my husband too(Thomas). My losartan 50 mg, as I explain to you on my last e-mail: total 3 month, quantity is 135 tablet (not 90 pcs). Please have Dr. Griffith refill this correct medication ASAP #: 243581572556. I worry about others medications will be REJECTED in the future too, these medications may need renew in the future: (not happen yet …, but make sure not be rejected too.). Below for Kathleen only- amLODIPine 5mg, total 3 month:90 tablet ,-Chlorthalidone 25mg (12.5/per day) total 3 month:45 tablet. *(PS): When both my husband and I switched to your clinic from Kaiser before, Dr. Haggerty approved my medication requests right away without giving us any hard time. The medication proved to be good enough. All of our Blood Pressure records in your clinic are normal. So, please ask Dr. Griffith to approve our medications without giving us hard time. Thank you. From :Kathleen Lee\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Hi Mrs. Lee, You are due for an appointment with one of our doctors or PA to review your medicines and your medical condition.. Dr. Haggerty has left our practice. My receptions will call you to schedule.Dr. Griffith\n", + "----------------------------------------\n", + "idx: 70618\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! My husband Thomas Lee (primary doctor, Dr. David Griffith),he can not use computer,so he is here write to you: He recently also got note from pharmacy too,see this below he wrote: Written by THOMAS LEE(my husband)and pharmacy ….My pharmacy, Prescription Express, sent me an email, saying: \"Your prescriber requested that we not fill your prescription. Please contact your prescriber to discuss and ask them to submit a new prescription electronically if appropriate. \" - losartan 50 mg, total 3 month:90 tablet - Rx#243620656356 But It should not be rejected,please ask Dr. David Griffith to refill this medication ASAP. I worry about others medications will be REJECTED in the future too, like in case need renew these medications below: ( not happen yet …, but make sure they will not be rejected too.) - amLODIPine 10 mg, total 3 month:90 tablet ,-Chlorthalidone 25mg (12.5/per day) total 3 month:45 tablet, -simvastatin 10 mg, total 3 month:90 tablet Thank you. From :Thomas Lee\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70617\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! I told you my primary doctor now is Dr. David Griffith(physical exam will be on May/2025 )my husband(Thomas ) too. My losartan 50 mg, is a little different, as I examplain to you on my last e-mail: total 3 month,quantity is 135 tablet (not 90 pcs). Please have Dr. Griffith refill this correct medication ASAP. I worry about others medications will be REJECTED in the future too, these medications may need renew below: ( not happen yet …, but make sure not be rejected too.). Below for Kathleen only- amLODIPine 5mg, total 3 month:90 tablet ,-Chlorthalidone 25mg (12.5/per day) total 3 month:45 tablet. *(PS):When both my husband and I switched to your clinic from Kaiser before, Dr. Haggerty approved my medication requests right away without giving us any hard time. The medication proved to be good enough. All of our Blood Pressure records in your clinic are normal. So, please ask Dr. Griffith to approve our medications without giving us hard time. Thank you. From :Kathleen Lee\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70616\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi! My husband Thomas Lee (primary doctor, Dr. David Griffith),recently also got note from pharmacy too,see this below he wrote: Written by THOMAS LEE(my husband)and pharmacy ….My pharmacy, Prescription Express, sent me an email, saying: \"Your prescriber requested that we not fill your prescription. Please contact your prescriber to discuss and ask them to submit a new prescription electronically if appropriate. \" - losartan 50 mg, total 3 month:90 tablet - Rx#243620656356 (This is happening now). But it should not be rejected,Please ask my primary doctor, Dr. David Griffith to refill this medication ASAP. I worry about others medications will be REJECTED in the future too, like in case need renew these medications below: ( not happen yet …, but make sure they will not be rejected too.) - amLODIPine 10 mg, total 3 month:90 tablet ,-Chlorthalidone 25mg (12.5/per day) total 3 month:45 tablet, -simvastatin 10 mg, total 3 month:90 tablet Thank you. From :Thomas Lee\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70615\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-01 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi!\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70614\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No!! I do not need any appointment now (my phyical exam will be May 2025 wit dr.Griffith.) . I did show Dr.Kevin Hangerty many times of my home normal number BP , and he already issued me one of this prescription (*it is 50mg: But take 1 and 1/2 per day, *total 90+45 =135pc. See attachment photo for proof.), so it is 75mg LOSARTAN TABS per day,ever since March. *Please go ahead do AUTO REFILL it to my Express Scripts® Pharmacy. (You can call Dr. Hangerty if you like). I SWEAR THIS IS TRUTH,NO BODY CAN CHANGE THIS TRUTH,thank you. (I usually bring my BP home monitor and have you guys check it on each phyical exam.) From Kathleen\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Your prescriptions were refilled on the 31st.Dr. G\n", + "----------------------------------------\n", + "idx: 70613\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No!! I do not need any appointment now (About my Physical exam. will be May 2025 with dr.Griffith.) . I did talk to Dr.Kevin Hangerty about my home normal number BP and medicines before , and he already issued me one of this prescription (*it is 50mg: But take 1 and 1/2 per day, *total 90+45 =135pc. See attachment photo for proof.), so it is 75mg LOSARTAN TABS per day,ever since March. *Please go ahead do AUTO REFILL it to my Express Scripts® Pharmacy. (You can call Dr. Hangerty to confirm if you need.). I SWEAR THIS IS TRUTH,NO BODY CAN CHANGE THIS TRUTH,thank you. (I usually bring my BP home monitor and have you guys check it on each Physical examination.) I also test my home BP monitor at home often,today's my BP number is :129/78-pause 64,for your record,thank you. From Kathleen\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70612\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No!! I do not need any appointment now (my phyical exam will be May 2025 wit dr.Griffith.) . I did show Dr.Kevin Hangerty many times of my home normal number BP , and he already issued me one of this prescription (*it is 50mg: But take 1 and 1/2 per day, *total 90+45 =135pc. See attachment photo for proof.), so it is 75mg LOSARTAN TABS per day,ever since March. *Please go ahead do AUTO REFILL it to my Express Scripts® Pharmacy. (You can call Dr. Hangerty if you like). I SWEAR THIS IS TRUTH,NO BODY CAN CHANGE THIS TRUTH,thank you. (I usually bring my BP home monitor and have you guys check it on each phyical exam.) I also test my home BP monitor at home often,today's my BP number is :129/78-pause 64,for your record,thank you. From Kathleen\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70611\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I also test my home BP monitor at home often,today's my BP number is :129/78-pause 64,for your record,thank you.\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70610\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No!!! I did show Dr.Kevin Hangerty my home normal number BP every time, he already see them and already issue me one of this prescription(correct): *Always 75mg LOSARTAN TABS ever since March. *Please go ahead do AUTO REFILL it to my Express Scripts® Pharmacy. (You can call Dr. Kevin Hangerty to confirm it if you like). I SWEAR THIS IS TRUTH,NO BODY CAN CHANGE THIS TRUTH,thank you. (*Also I will show you my BP home monitor,let you check and proof my BP monitor.. it is accurate on next comming phyical exam.) From Kathleen\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70609\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "No!!! I did show Dr.Kevin Hangerty my home normal number BP every time, he already see them and already issue me one of this prescription(correct): Always 75mg LOSARTAN TABS (75mg) ever since March, ?Please go ahead do AUTO REFILL it to my Express Scripts® Pharmacy. (You can call Dr. Kevin Hangerty to confirm if you like). I SWEAR THIS IS TRUTH,NO BODY CAN CHANGE THIS TRUTH,thank you. (?Also I will show you my BP home monitor,let you check and proof my BP monitor.. it is accurate on next comming phyical exam.) From Kathleen\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 70608\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + " Hi! This is a note I got need your help,so I let you know: ..... no more refills left on the prescription you recently requested through Express Scripts® Pharmacy. We contacted your doctor and haven't heard from them. ....To make sure you get your medication as soon as possible, please ask your doctor to send a new prescription to Express Scripts® Pharmacy. Regard: I always take LOSARTAN TABS (75mg) per day -Prescription #: 243581572556. Also I take these together below,may need refills or new prescription in the future too,which are: Chlorthalidone 25mg and Amlodipine 5mg. Thanks.\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi Kathlee,The last prescription filled shows that you are taking losartan 50 mg once daily??Can you make an appointment to discuss your medicationsDr.Kaushal\n", + "----------------------------------------\n", + "2025-06-17 14:15:15,501 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:15,502 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:15,504 - ✅ similarity: 0.5964\n", + "2025-06-17 14:15:15,505 - Sender: SILVA, ALONDRA [ S0368312] -> the retrieved similar message : Hi Dr. Kaushal,Thank you for the update and for refilling the prescriptions.I have a video visit scheduled with you on January 10th and I would like to request a partial refill of the Lorazepam as I do experience anxiety in the evenings. I am requesting a partial refill of ten tablets of the Lorazepam, as my current prescription will last for nine days. And again, I have an appointment scheduled on 1/10.Again, I was told by the nurse that I spoke with, that there would not be any gaps in my prescriptions that I had with Dr. Haggerty as long as I made a video visit and I have done that.Thank you for your kind assistance and understanding,Paulette\n", + "2025-06-17 14:15:15,506 - Provider's response to this similar message: Hi PaulettePartial refill of ten tablets sent to pharmacyDr.Kaushal\n", + "2025-06-17 14:15:15,507 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:15,537 - Thread ID: 253548907\n", + "--------------------------------------------------------------------------------\n", + "idx: 102556\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kaushal,Thank you for the update and for refilling the prescriptions.I have a video visit scheduled with you on January 10th and I would like to request a partial refill of the Lorazepam as I do experience anxiety in the evenings. I am requesting a partial refill of ten tablets of the Lorazepam, as my current prescription will last for nine days. And again, I have an appointment scheduled on 1/10.Again, I was told by the nurse that I spoke with, that there would not be any gaps in my prescriptions that I had with Dr. Haggerty as long as I made a video visit and I have done that.Thank you for your kind assistance and understanding,Paulette\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi PaulettePartial refill of ten tablets sent to pharmacyDr.Kaushal\n", + "----------------------------------------\n", + "idx: 102555\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,I do have an appointment scheduled with Dr. Kaushal on 1/10, as I had mentioned.Additionally, I was told by Dr. Haggerty's nurse that all prescriptions would be handled by an interim doctor, so that there would not be any gaps in my prescriptions.Please clarify exactly what is going on with my prescription requests for the following medications:Lorazepam 0.5 mg tabletNitrofurantoin 100 mg sustained release capsuleLoratadine 10 mg tabletThank you,Paulette\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi PauletteThe nitrofurantoin and Loratadine tablet s have been sent to the pharmacyBut an appointment is needed for refill of lorazepamR.Kaushal\n", + "----------------------------------------\n", + "idx: 102554\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Paulette, Per Dr. Kaushal, an appointment is required prior to renewing your prescriptions. You can contact our appointment line at 408-997-9155 option 1 to inquire if there are any sooner appointments available. If Dr. Kaushal has limited availability, you are welcome to see any available provider. Best,Alondra Silva, MA, 12/19/2024, 8:17 AM\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "No response\n", + "----------------------------------------\n", + "idx: 102553\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Kaushal,I am in need of renewals for the three following prescriptions at Safeway Pharmacy #1245 Los Gatos, CA - 15549 Union Avenue:Lorazepam 0.5 mg tabletNitrofurantoin 100 mg sustained release capsuleLoratadine 10 mg tabletI have a video visit scheduled with you on January 10th.Thank you, Paulette\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good morning Paulette,Your prescriptions have been pended and are awaiting approval from Dr. Kaushal. Please allow 24 to 48 hours for the prescription request to be reviewed. We will notify you if an appointment is required prior to renewing any of these prescription.Best, Alondra Silva, MA, 12/18/2024, 9:00 AM\n", + "----------------------------------------\n", + "2025-06-17 14:15:15,539 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:15,540 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:15,542 - ✅ similarity: 0.5899\n", + "2025-06-17 14:15:15,542 - Sender: PROVEDOR, JAQUELIN [ S0186529] -> the retrieved similar message : Hi,The rest of my prescription medication was accidentally thrown into the trash I think. I only have 3 days left of hydrochlorothiazide, atorvastatin, and losartan. Can I get another refill to CVS as soon as possible? Thank you\n", + "2025-06-17 14:15:15,561 - Provider's response to this similar message: Hi GiaoThe prescriptions have been sent to the pharmacyDr.Kaushal\n", + "2025-06-17 14:15:15,731 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:15,755 - Thread ID: 254215607\n", + "--------------------------------------------------------------------------------\n", + "idx: 73753\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Kaushal,I’ve been following up with CVS but it notes I’m unable to get refills for losartan and hydrochlorothiazide because it’s too early. I was able to request atorvastatin and am waiting on that refill but unsure when it will be filled. I do have entecavir now. How long can I go without the other two medications before it’s troublesome for my health?Thank you and happy new year!\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "If insurance won't cover them , you could purchase with out insurance as these two prescriptions are in expensive. Dr. K put your orders in last week for these medications.Dr.Griffith, covering for Dr. K \n", + "----------------------------------------\n", + "idx: 73752\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much Dr Kaushal! \n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 73751\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,The rest of my prescription medication was accidentally thrown into the trash I think. I only have 3 days left of hydrochlorothiazide, atorvastatin, and losartan. Can I get another refill to CVS as soon as possible? Thank you\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi GiaoThe prescriptions have been sent to the pharmacyDr.Kaushal\n", + "----------------------------------------\n", + "2025-06-17 14:15:15,756 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:15,756 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:15,757 - ✅ similarity: 0.5772\n", + "2025-06-17 14:15:15,757 - Sender: VISPERAS, SHINE [ S0377724] -> the retrieved similar message : Hi Dr Manika Verma Kaushal,I was with Dr. Haggerty, I had my last appointment with him on November 1st. It was to go over my wegovy dose, he okayed me to go up to the next dose, but it was not sent to my pharmacy and I do not see it on my medication list her on my account. I can't email him anymore, because it is no longer an option on here. My hope was that since you have met with me before that you might be able to help with that. Thank you -Margarita\n", + "2025-06-17 14:15:15,758 - Provider's response to this similar message: Hi MargaritaI see you have an appointment coming up. We can discuss further at that time.Dr.Kaushal\n", + "2025-06-17 14:15:15,758 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:15,761 - Thread ID: 249741641\n", + "--------------------------------------------------------------------------------\n", + "idx: 284704\n", + "Subject: RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Afternoon,I was able to get a 1 time appointment with Dr. Haggerty for this Monday to fix the prescription issue. Thank you for trying to help. -Margarita\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 284703\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Manika Verma Kaushal,I was with Dr. Haggerty, I had my last appointment with him on November 1st. It was to go over my wegovy dose, he okayed me to go up to the next dose, but it was not sent to my pharmacy and I do not see it on my medication list her on my account. I can't email him anymore, because it is no longer an option on here. My hope was that since you have met with me before that you might be able to help with that. Thank you -Margarita\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "Hi MargaritaI see you have an appointment coming up. We can discuss further at that time.Dr.Kaushal\n", + "----------------------------------------\n", + "2025-06-17 14:15:15,762 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:15,762 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:15,763 - ✅ similarity: 0.5756\n", + "2025-06-17 14:15:15,763 - Sender: PROVEDOR, JAQUELIN [ S0186529] -> the retrieved similar message : Hi Dr Kaushal,Would you please send/approve refills of lexapro and mirtazapine to CVS? I am running low on both of them.Thank you very much!Jun\n", + "2025-06-17 14:15:15,764 - Provider's response to this similar message: H JunRefills completedBu you will need to make an appointment before further refills can be doneDr.Kaushal\n", + "2025-06-17 14:15:15,765 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:15,767 - Thread ID: 253613110\n", + "--------------------------------------------------------------------------------\n", + "idx: 99793\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Kaushal,Would you please send/approve refills of lexapro and mirtazapine to CVS? I am running low on both of them.Thank you very much!Jun\n", + "----------------------------------------\n", + "Provider Response by KAUSHAL, MANIKA V:\n", + "H JunRefills completedBu you will need to make an appointment before further refills can be doneDr.Kaushal\n", + "----------------------------------------\n", + "2025-06-17 14:15:15,783 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:16,058 - Original Message:\n", + "2025-06-17 14:15:16,059 - original_query_message: Barbara Rebecca Byrnes is being transported this afternoon from UCSF (Parnassus) to skilled nursing at Medical Hill Healthcare at 475 29th St. in Oakland. \n", + "2025-06-17 14:15:17,541 - Query Parameters:\n", + "2025-06-17 14:15:17,542 - query_message: Hi there, I wanted to ask about my upcoming transfer from the hospital—I’m currently at UCSF Medical Center, and my doctors are arranging for me to move to a rehab facility in Oakland. My main concern is how the transition will work, especially since I’m still struggling with my mobility after my recent surgery, and I require help for most daily activities. Will the staff at the new skilled nursing facility be prepared for someone with ongoing pain management needs and limited ability to walk? I’d appreciate any advice about what to expect and how I can best prepare for this move, both physically and mentally. Thank you!\n", + "2025-06-17 14:15:17,544 - receiver: SMP PRIMARYCAREEV MYHEALTH POOL\n", + "2025-06-17 14:15:17,545 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:15:17,547 - specialty: Primary Care\n", + "2025-06-17 14:15:18,958 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:18,959 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:18,960 - ✅ similarity: 0.5872\n", + "2025-06-17 14:15:18,961 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Rebecca Byrnes is doing OK at Medical Hill Healthcare Center (skilled nursing in Oakland, near Summit Hospital). She sleeps a lot, but is cheerful and recognizes us when awake. She has had two PT sessions. With the therapist doing most of the work, she can sit on the edge of the bed, stand for a short period, turn around, and walk a few feet. We hope she gets PT or OT six days a week. Getting her to eat has been a challenge, but the staff is patient and seems to get her to consume most of her meals most of the time. We hope to meet with a \"team\" (doctor, nurse, PT, etc.) this week to get their assessment and learn what the plan for moving forward looks like. \n", + "2025-06-17 14:15:18,962 - Provider's response to this similar message: Hello Mr. Brazil, Thank you for contacting us. We would like to properly take care of your question regarding Rebecca's health. In order to address these needs, please resend this message using her MyHealth account. You may also request proxy access to her account. To learn more about the proxy request process, please go to this link: https://stanfordhealthcare.org/for-patients-visitors/myhealth/share-access.html. For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room. Sincerely,Kendra Rodriguez, MA\n", + "2025-06-17 14:15:18,964 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:18,969 - Thread ID: 254843482\n", + "--------------------------------------------------------------------------------\n", + "idx: 42048\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Rebecca Byrnes is doing OK at Medical Hill Healthcare Center (skilled nursing in Oakland, near Summit Hospital). She sleeps a lot, but is cheerful and recognizes us when awake. She has had two PT sessions. With the therapist doing most of the work, she can sit on the edge of the bed, stand for a short period, turn around, and walk a few feet. We hope she gets PT or OT six days a week. Getting her to eat has been a challenge, but the staff is patient and seems to get her to consume most of her meals most of the time. We hope to meet with a \"team\" (doctor, nurse, PT, etc.) this week to get their assessment and learn what the plan for moving forward looks like. \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Mr. Brazil, Thank you for contacting us. We would like to properly take care of your question regarding Rebecca's health. In order to address these needs, please resend this message using her MyHealth account. You may also request proxy access to her account. To learn more about the proxy request process, please go to this link: https://stanfordhealthcare.org/for-patients-visitors/myhealth/share-access.html. For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room. Sincerely,Kendra Rodriguez, MA\n", + "----------------------------------------\n", + "2025-06-17 14:15:18,971 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:18,971 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:18,972 - ✅ similarity: 0.5500\n", + "2025-06-17 14:15:18,972 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Barbara Rebecca Byrnes is being transported this afternoon from UCSF (Parnassus) to skilled nursing at Medical Hill Healthcare at 475 29th St. in Oakland. \n", + "2025-06-17 14:15:18,973 - Provider's response to this similar message: Hello Wayne,Thank you for contacting us. We would like to properly take care of your question regarding Barbara’s health. In order to address these needs, please resend this message using her MyHealth account. You may also request proxy access to her account. To learn more about the proxy request process, please go to this link: https://stanfordhealthcare.org/for-patients-visitors/myhealth/share-access.html.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.Sincerely,Ilvania Wallace, MA\n", + "2025-06-17 14:15:18,973 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:18,977 - Thread ID: 254401477\n", + "--------------------------------------------------------------------------------\n", + "idx: 64624\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Barbara Rebecca Byrnes is being transported this afternoon from UCSF (Parnassus) to skilled nursing at Medical Hill Healthcare at 475 29th St. in Oakland. \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Wayne,Thank you for contacting us. We would like to properly take care of your question regarding Barbara’s health. In order to address these needs, please resend this message using her MyHealth account. You may also request proxy access to her account. To learn more about the proxy request process, please go to this link: https://stanfordhealthcare.org/for-patients-visitors/myhealth/share-access.html.For urgent requests, please call the clinic. In an emergency, call 911 or go directly to the nearest emergency room.Sincerely,Ilvania Wallace, MA\n", + "----------------------------------------\n", + "2025-06-17 14:15:18,978 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:18,978 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:18,978 - ✅ similarity: 0.4885\n", + "2025-06-17 14:15:18,979 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : So what am I suppose to do, just wanted a smooth transfer. I had to move to take care of my Mom who is ill. \n", + "2025-06-17 14:15:18,980 - Provider's response to this similar message: Hello Bobby Ward,You may call your insurance to ask for a list of Primary Care doctors in your area to establish care in your new state. Thank you and take care.Kindest regards,Kendra Rodriguez, MA\n", + "2025-06-17 14:15:18,980 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:18,982 - Thread ID: 254561645\n", + "--------------------------------------------------------------------------------\n", + "idx: 56457\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "So what am I suppose to do, just wanted a smooth transfer. I had to move to take care of my Mom who is ill. \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Bobby Ward,You may call your insurance to ask for a list of Primary Care doctors in your area to establish care in your new state. Thank you and take care.Kindest regards,Kendra Rodriguez, MA\n", + "----------------------------------------\n", + "idx: 56456\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Bobby, Unfortunately if you are not in the state of California we are not able to schedule you for a video visit. I have forwarded your message to the doctor for review. Kind regards, Sandy Valdovinos, 1/2/2025, 6:10 AM \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV CARE TEAM POOL:\n", + "Hi Bobby, This is Samantha Spinner PA responding on behalf of your PCP. I agree with the advice given by our call center above. Please check with your insurance for a list of local providers in your new area, and schedule an establish care appointment with a new primary care clinician. We are a bit limited on any further care we can provide to you as you are now out of state, and have not been seen by our clinic for over a year. Let us know if we can provide any further assistance. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "idx: 56455\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Albumin with Creatinine, Urine (Random) resulted on 4/17/24 at 9:34 PM.hi, I need to schedule a call. I have moved to North Carolina and need to find a primary doctor out here. what's the best way to do that\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Bobby, Unfortunately if you are not in the state of California we are not able to schedule you for a video visit. I have forwarded your message to the doctor for review. Kind regards, Sandy Valdovinos, 1/2/2025, 6:10 AM \n", + "----------------------------------------\n", + "2025-06-17 14:15:18,983 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:18,983 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:18,984 - ✅ similarity: 0.4885\n", + "2025-06-17 14:15:18,984 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I saw you as a new patient on Oct 22 and missed our scheduled followup which was to discuss my left foot numbness and pain. A podiatrist I saw one time in the summer had referred me to physical therapy for the problem at Taylor & Thornburg (also known as FYZICAL) 3218 Grand Ave, Oakland. I waited almost 3 months to get in to PT. I went this week and really disliked the facility (zero ventilation & many covid cases) and did not think highly of the 2 physical therapists I saw there. They did not look at my history and were poor communicators. Would you kindly give me a referral for PT elsewhere? I look forward to my appointment with you at the end of this month to discuss a plan for dealing with my foot pain/numbness. I want to prevent it worsening. Thanks much!\n", + "2025-06-17 14:15:18,985 - Provider's response to this similar message: Hi Mary,I've entered a referral for physical therapy at Alta Bates.See you next week,KS\n", + "2025-06-17 14:15:18,985 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:18,987 - Thread ID: 253867191\n", + "--------------------------------------------------------------------------------\n", + "idx: 87740\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I saw you as a new patient on Oct 22 and missed our scheduled followup which was to discuss my left foot numbness and pain. A podiatrist I saw one time in the summer had referred me to physical therapy for the problem at Taylor & Thornburg (also known as FYZICAL) 3218 Grand Ave, Oakland. I waited almost 3 months to get in to PT. I went this week and really disliked the facility (zero ventilation & many covid cases) and did not think highly of the 2 physical therapists I saw there. They did not look at my history and were poor communicators. Would you kindly give me a referral for PT elsewhere? I look forward to my appointment with you at the end of this month to discuss a plan for dealing with my foot pain/numbness. I want to prevent it worsening. Thanks much!\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hi Mary,I've entered a referral for physical therapy at Alta Bates.See you next week,KS\n", + "----------------------------------------\n", + "2025-06-17 14:15:18,988 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:18,988 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:18,988 - ✅ similarity: 0.4842\n", + "2025-06-17 14:15:18,989 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Sbaih,I am having serious difficulty getting around because of my back pain and the neuropathy that makes my legs and feet go numb when I stand or walk any distance, even a few yards.It is making even simple errands, events, and work very difficult to navigate to. And I'm afraid of falling because I can't feel my feet and have lost so much strength.I wonder if you might be able to sign me on for a DMV HC parking placard?I asked the spine doctor, who said they would only sign it off after surgery, and I have no idea when that will happen as we go through more tests and appointments. I'm sure it's at least a few months off.I attach the form with my information filled out, and hope you are willing to fill in your information.It will make a huge difference to me being able to get around.Thanks!Chris\n", + "2025-06-17 14:15:18,989 - Provider's response to this similar message: Dear Mr. Noll,I wanted to inform you that your forms have been completed. You are more than welcome to come to our office and pick it up. I will also attach a PDF file to this message. Thank you! Norma Lizeth Soto Munoz, MAStanford Medicine Partners, Primary Care, Emeryville\n", + "2025-06-17 14:15:18,991 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:19,006 - Thread ID: 250482285\n", + "--------------------------------------------------------------------------------\n", + "idx: 247147\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks to you and Dr. Sbaih!I spoke to my surgeon at UCSF and we are looking to schedule back surgery for February, or whenever we can get on the calendar.I will be a serious procedure.Thanks,Chris\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 247146\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Sbaih,I am having serious difficulty getting around because of my back pain and the neuropathy that makes my legs and feet go numb when I stand or walk any distance, even a few yards.It is making even simple errands, events, and work very difficult to navigate to. And I'm afraid of falling because I can't feel my feet and have lost so much strength.I wonder if you might be able to sign me on for a DMV HC parking placard?I asked the spine doctor, who said they would only sign it off after surgery, and I have no idea when that will happen as we go through more tests and appointments. I'm sure it's at least a few months off.I attach the form with my information filled out, and hope you are willing to fill in your information.It will make a huge difference to me being able to get around.Thanks!Chris\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Dear Mr. Noll,I wanted to inform you that your forms have been completed. You are more than welcome to come to our office and pick it up. I will also attach a PDF file to this message. Thank you! Norma Lizeth Soto Munoz, MAStanford Medicine Partners, Primary Care, Emeryville\n", + "----------------------------------------\n", + "2025-06-17 14:15:19,009 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:19,550 - Original Message:\n", + "2025-06-17 14:15:19,550 - original_query_message: Hello Dr. Roohparvar,Hope all is well! Last night I was not feeling well and I experienced short of breath, severe tiredness, sleepiness and chest distress. These seem to relate to heart health and I believe it was due to tiredness and lack of sleep combined with mental pressure and heavy workload in the past week. However, I do hope to ask for your help as this is not the first time I experienced such symptoms. We talked about this last year too. For this year, I have been working out more often and paid attention to my diet as you suggested.Could you please refer me to a doctor in this field for a checkup? Thank you!Sincerely,Liyao\n", + "2025-06-17 14:15:21,151 - Query Parameters:\n", + "2025-06-17 14:15:21,154 - query_message: Hi Dr. Roohparvar,I hope you're doing well. I wanted to reach out because I've recently been having some worrying symptoms that I thought you should know about. On a few occasions over the past couple of months, I’ve noticed that I get really winded even with light activity, like walking up the stairs or carrying groceries. My chest sometimes feels heavy or tight, and I’ve noticed episodes where I get unusually fatigued, to the point where I need to sit or lie down. There have also been times when I feel a bit dizzy or lightheaded, especially after a stressful day at work or when I haven’t had much sleep.I have been trying to lead a healthier lifestyle this year, including exercising regularly and cutting back on caffeine and junk food, but these symptoms seem to happen regardless. I’m starting to get a bit concerned that there might be an underlying heart issue or something else going on. Could you please recommend a specialist I could see for some further tests or a thorough checkup? I’d really appreciate your advice.Thank you so much for your help.Best regards, Alex\n", + "2025-06-17 14:15:21,155 - receiver: UMG SAMARITAN MYHEALTH POOL\n", + "2025-06-17 14:15:21,157 - department: INTERNAL MEDICINE SAMARITAN SAN JOSE\n", + "2025-06-17 14:15:21,160 - specialty: Internal Medicine\n", + "2025-06-17 14:15:22,590 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:22,592 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:22,593 - ✅ similarity: 0.8205\n", + "2025-06-17 14:15:22,594 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Roohparvar,Hope all is well! Last night I was not feeling well and I experienced short of breath, severe tiredness, sleepiness and chest distress. These seem to relate to heart health and I believe it was due to tiredness and lack of sleep combined with mental pressure and heavy workload in the past week. However, I do hope to ask for your help as this is not the first time I experienced such symptoms. We talked about this last year too. For this year, I have been working out more often and paid attention to my diet as you suggested.Could you please refer me to a doctor in this field for a checkup? Thank you!Sincerely,Liyao\n", + "2025-06-17 14:15:22,596 - Provider's response to this similar message: Hello, If you are having any chest pain it is advised to be evaluated immediately at your local urgent care or ER. Jennifer Lara Ceballos, MA, 11/15/2024, 8:34 AM \n", + "2025-06-17 14:15:22,599 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:22,603 - Thread ID: 250743772\n", + "--------------------------------------------------------------------------------\n", + "idx: 234273\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Roohparvar,Hope all is well! Last night I was not feeling well and I experienced short of breath, severe tiredness, sleepiness and chest distress. These seem to relate to heart health and I believe it was due to tiredness and lack of sleep combined with mental pressure and heavy workload in the past week. However, I do hope to ask for your help as this is not the first time I experienced such symptoms. We talked about this last year too. For this year, I have been working out more often and paid attention to my diet as you suggested.Could you please refer me to a doctor in this field for a checkup? Thank you!Sincerely,Liyao\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello, If you are having any chest pain it is advised to be evaluated immediately at your local urgent care or ER. Jennifer Lara Ceballos, MA, 11/15/2024, 8:34 AM \n", + "----------------------------------------\n", + "2025-06-17 14:15:22,605 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:22,606 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:22,607 - ✅ similarity: 0.7706\n", + "2025-06-17 14:15:22,607 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Gubbala,I've been having some unusual symptoms lately, and my husband is concerned. I am writing this together with Steve. I'm having shortness of breath when I stand up or when I go up the stairs. I recently woke up very early with severe heartburn. I'm also recently experiencing tingling all over my body, and weakness all over, and feeling like crying. Soup, and hot tea with real sugar helped. I usually use Splenda. My husband thinks I should rule out a possible heart condition.Thank you, Marion Noble\n", + "2025-06-17 14:15:22,608 - Provider's response to this similar message: Hello Marion, We suggest you schedule an appointment with our office. If you feel like you need to be seen sooner please visit one of our Express Care Clinics below. Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pm Best Regards,Perla Lara, MA, 11/12/2024, 9:42 AMSamaritan Internal Medicine2410 Samaritan Dr. Suite 201San Jose, CA 95124PH. 408-371-9010 \n", + "2025-06-17 14:15:22,609 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:22,612 - Thread ID: 250382546\n", + "--------------------------------------------------------------------------------\n", + "idx: 252124\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Perla. I will make an appointment to see Dr. Gubbala.Marion \n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 252123\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Gubbala,I've been having some unusual symptoms lately, and my husband is concerned. I am writing this together with Steve. I'm having shortness of breath when I stand up or when I go up the stairs. I recently woke up very early with severe heartburn. I'm also recently experiencing tingling all over my body, and weakness all over, and feeling like crying. Soup, and hot tea with real sugar helped. I usually use Splenda. My husband thinks I should rule out a possible heart condition.Thank you, Marion Noble\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello Marion, We suggest you schedule an appointment with our office. If you feel like you need to be seen sooner please visit one of our Express Care Clinics below. Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pm Best Regards,Perla Lara, MA, 11/12/2024, 9:42 AMSamaritan Internal Medicine2410 Samaritan Dr. Suite 201San Jose, CA 95124PH. 408-371-9010 \n", + "----------------------------------------\n", + "2025-06-17 14:15:22,613 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:22,614 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:22,614 - ✅ similarity: 0.7160\n", + "2025-06-17 14:15:22,615 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Hung,I have been experiencing frequent episodes of sudden heart rate increases and dizziness, even with a normal EKG. Other symptoms are constant shortness of breath, headache, nausea, and shoulder to shoulder pain.I already saw Dr. Norman, and all my appointments with him are in February.I’m worried these frequent episodes will eventually cause a heart attack or stroke.Please advice.Golriz Nazariadli \n", + "2025-06-17 14:15:22,615 - Provider's response to this similar message: Hi Golriz,I'm sorry to hear that you're experiencing these symptoms. Since you already have appointments scheduled with Dr. Lowenbraun in February, I recommend monitoring your symptoms closely. If you experience any severe or worsening symptoms, such as chest pain, severe shortness of breath, or fainting, please go to the nearest emergency room or call 911.In the meantime, try to keep a record of your symptoms, including the frequency, duration, and any potential triggers. This information will be helpful for Dr. Lowenbraun during your appointments.Referral to Dr Lowenbraun was sent as urgent. You may consider to contact his office to see if sooner appointment can be offered to you. Again, very low threshold to call 911 or ER if you have worsening of cardiac symptoms. Take care,Dr Hung\n", + "2025-06-17 14:15:22,616 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:22,618 - Thread ID: 253188431\n", + "--------------------------------------------------------------------------------\n", + "idx: 117891\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2025-01-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Hung,I have been experiencing frequent episodes of sudden heart rate increases and dizziness, even with a normal EKG. Other symptoms are constant shortness of breath, headache, nausea, and shoulder to shoulder pain.I already saw Dr. Norman, and all my appointments with him are in February.I’m worried these frequent episodes will eventually cause a heart attack or stroke.Please advice.Golriz Nazariadli \n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Golriz,I'm sorry to hear that you're experiencing these symptoms. Since you already have appointments scheduled with Dr. Lowenbraun in February, I recommend monitoring your symptoms closely. If you experience any severe or worsening symptoms, such as chest pain, severe shortness of breath, or fainting, please go to the nearest emergency room or call 911.In the meantime, try to keep a record of your symptoms, including the frequency, duration, and any potential triggers. This information will be helpful for Dr. Lowenbraun during your appointments.Referral to Dr Lowenbraun was sent as urgent. You may consider to contact his office to see if sooner appointment can be offered to you. Again, very low threshold to call 911 or ER if you have worsening of cardiac symptoms. Take care,Dr Hung\n", + "----------------------------------------\n", + "idx: 117890\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, I’ll take your recommendation.Thanks, Golriz\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Golriz,I will send neurology referral. Please see information below. Please be aware that given we have extreme shortage of neurologists, there will be a wait time. Spiegel, Lauren Len, MD 18431 Technology Drive Morgan Hill CA 95037 Phone: (408)778-4886 Fax: 408-778-4844 Take care,Dr. Hung\n", + "----------------------------------------\n", + "idx: 117889\n", + "Subject: RE: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-17 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, I was told at El Camino hospital to see a neurologist urgently. Can doctor Hung refer me to one at Stanford? Thanks,Golriz Nazariadli\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Golriz,I do not recommend Stanford neurologist as wait time is very very very very very long. I typically send neurology referral to a great neurology group in Morgan Hill. If you agree, I can send referral to Morgan Hill.Take care,Dr. Hung\n", + "----------------------------------------\n", + "idx: 117888\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Hung,I have been experiencing constant numbness/ tingling in my face (mostly cheeks and jaw) along with my left leg and foot for the past three days. What is your recommendation?Thank you, Golriz Nazariadli\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello Golriz, I apologize for the delayed response. I see you went to El Camino. I wanted to follow up and see how you're doing. Best Regards,Perla Lara, MA, 12/17/2024, 10:01 AMSamaritan Internal Medicine2410 Samaritan Dr. Suite 201San Jose, CA 95124PH. 408-371-9010 \n", + "----------------------------------------\n", + "2025-06-17 14:15:22,619 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:22,619 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:22,619 - ✅ similarity: 0.7111\n", + "2025-06-17 14:15:22,620 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I’m in Canada and will seek attention if this transpires into something more. Assuming not, I am scheduled to see you in March, but need guidance re: - ongoing fluttering heartbeat/skipped beats (I know it’s generally not a concern but it’s much more pronounced lately).- pain in chest (emanating same spot as the last 25 years, but also more pronounced)- saw Dr. Noone for annual surgical recheck. BP was elevated was elevated (she was concerned) but better at home. - missed refilling losartan before we left and will be miss a couple of days. I can explain it all away intellectually but I still feel anxious giving myself two rare migraines. Swimming (ocean/pool) feels risky, and I have a sense of unease that I can’t shake.Your schedule is full. Should I look to see an alternate provider when I get back or is this the type of thing that can wait? I wish I had a “check engine” light. Sorry for the lengthy note,Tracey\n", + "2025-06-17 14:15:22,620 - Provider's response to this similar message: Hello Tracey,Dr. Gubbala is out of the office and I am helping to cover for her. For increased palpitations and worsening chest pain, I'd recommend seeking urgent medical attention for evaluation. You can go to a local urgent care if available while in Canada, or to the ER for severe symptoms.When you return to the U.S., give our office a call and we can schedule you for an office visit for evaluation and EKG. While it may be anxiety, we want to rule out any acute heart-related issues. Let me know if you have any questions.Sincerely,Bharavi B Vijayakumar, NP\n", + "2025-06-17 14:15:22,621 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:22,623 - Thread ID: 254348386\n", + "--------------------------------------------------------------------------------\n", + "idx: 67264\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you saw much. I went to a well-equipped urgent care that same evening. The team ran an EKG and did a blood draw. All good in that moment. I will bring the data home with me. The doctor had some suggestions for capturing data re the palpitations. As you mentioned, I will call the office upon my return.I appreciate your guidance.Tracey\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 67263\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Tracey,Dr. Gubbala is out of the office and I am helping to cover for her. For increased palpitations and worsening chest pain, I'd recommend seeking urgent medical attention for evaluation. You can go to a local urgent care if available while in Canada, or to the ER for severe symptoms.When you return to the U.S., give our office a call and we can schedule you for an office visit for evaluation and EKG. While it may be anxiety, we want to rule out any acute heart-related issues. Let me know if you have any questions.Sincerely,Bharavi B Vijayakumar, NP\n", + "----------------------------------------\n", + "Provider Response by SAMARITAN INTERNAL MED PSR POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 67262\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m in Canada and will seek attention if this transpires into something more. Assuming not, I am scheduled to see you in March, but need guidance re: - ongoing fluttering heartbeat/skipped beats (I know it’s generally not a concern but it’s much more pronounced lately).- pain in chest (emanating same spot as the last 25 years, but also more pronounced)- saw Dr. Noone for annual surgical recheck. BP was elevated was elevated (she was concerned) but better at home. - missed refilling losartan before we left and will be miss a couple of days. I can explain it all away intellectually but I still feel anxious giving myself two rare migraines. Swimming (ocean/pool) feels risky, and I have a sense of unease that I can’t shake.Your schedule is full. Should I look to see an alternate provider when I get back or is this the type of thing that can wait? I wish I had a “check engine” light. Sorry for the lengthy note,Tracey\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello Tracey,Dr. Gubbala is out of the office and I am helping to cover for her. For increased palpitations and worsening chest pain, I'd recommend seeking urgent medical attention for evaluation. You can go to a local urgent care if available while in Canada, or to the ER for severe symptoms.When you return to the U.S., give our office a call and we can schedule you for an office visit for evaluation and EKG. While it may be anxiety, we want to rule out any acute heart-related issues. Let me know if you have any questions.Sincerely,Bharavi B Vijayakumar, NP\n", + "----------------------------------------\n", + "2025-06-17 14:15:22,623 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:22,624 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:22,624 - ✅ similarity: 0.6951\n", + "2025-06-17 14:15:22,624 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : You already referred me to a cardiologist. I see him next week. Cindy\n", + "2025-06-17 14:15:22,625 - Provider's response to this similar message: Great to hear that you have an appointment with the cardiologist next week, Cindy. Best,Dr. Hung\n", + "2025-06-17 14:15:22,625 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:22,628 - Thread ID: 255277032\n", + "--------------------------------------------------------------------------------\n", + "idx: 21920\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "You already referred me to a cardiologist. I see him next week. Cindy\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Great to hear that you have an appointment with the cardiologist next week, Cindy. Best,Dr. Hung\n", + "----------------------------------------\n", + "idx: 21919\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I’m guessing zero is a good score? So that’s is not what is causing my LDL to be high?Cindy\n", + "----------------------------------------\n", + "Provider Response by HUNG, CHIA-YI:\n", + "Yes, Cindy, a calcium score of zero is a good score. It indicates that there is no detectable calcified plaque in your coronary arteries, which is a positive sign for your heart health. However, it does not directly relate to your LDL levels. High LDL can be influenced by various factors, including diet, genetics, and other health conditions. It's important to continue managing your LDL levels as discussed with cholesterol med to keep LDL < 70 because lipoprotein (a) level is elevated. I would like for you to see a cardiologist as well. If you agree, please let me know and I will send referral.Best,Dr. Hung\n", + "----------------------------------------\n", + "idx: 21918\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, Happy new year. I was wondering if you got the results on my calcium scoring CT scan? I did it on Monday. I have an appointment with the cardiologist next Wednesday and wanted to make sure he gets the results.Thank youCindy\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Happy New Year, Cindy!Yes, calcium score is zero. Below is report. LM: 0 ,0, 0 LAD: 0, 0, 0 CX: 0, 0, 0 RCA/PDA: 0, 0, 0 Total: 0, 0, 0 Density Threshold: 130HU Extracardiac findings:None The Computed Tomography of the coronary arteries can or may detect coronary calcifications. According to the current state of knowledge, coronary calcifications are a marker for coronary atherosclerosis. The more calcium is detected, the higher is the likelihood for an obstructive coronary disease. However there is no unique relationship between the amount of detected calcium and the extent of localization of this disease. The amount of calcium is closely correlated with the extent of coronary atherosclerosis, although the true \"plaque burden\" is underestimated. There is only a low risk of a cardiac event in the next 2 to 5 years. Reference Norms of Calcium Score No Identifiable Calcification 0 Minimal Identifiable Calcification 1-10 Mild Calcification 11-100 Moderate Calcification 101-400 Significant Calcification 401 and above IMPRESSION: Calcium Score =0. Best, Dr Hung\n", + "----------------------------------------\n", + "2025-06-17 14:15:22,628 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:22,893 - Original Message:\n", + "2025-06-17 14:15:22,894 - original_query_message: This message has been sent by Paula Arimas on behalf of Miles Arimas.hi Dr. V, I didn't have my RSV Vaccine during pregnancy (was not available to me) and Miles doesn't have his RSV Vaccine. does that mean he is vulnerable to RSV now until 6 months+?\n", + "2025-06-17 14:15:24,253 - Query Parameters:\n", + "2025-06-17 14:15:24,255 - query_message: Hi Dr. V, I have a quick question—during my pregnancy, I didn’t end up getting the RSV shot because it wasn’t offered at my clinic, and now that my daughter Lily is almost two months old, I’m getting a little worried about RSV season. We haven’t gotten her the RSV immunization yet either. Does this put her at a higher risk for catching RSV before she turns six months? Are there extra precautions I should be taking at home or in public right now? She’s been pretty healthy, but I’m anxious because I know babies her age can get pretty sick from RSV. Thank you!\n", + "2025-06-17 14:15:24,255 - receiver: VILLALON LANDEROS, MARIA\n", + "2025-06-17 14:15:24,256 - department: STANFORD PRIMARY CARE SANTA CLARA\n", + "2025-06-17 14:15:24,258 - specialty: Primary Care\n", + "2025-06-17 14:15:24,632 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:24,634 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:24,635 - ✅ similarity: 0.7604\n", + "2025-06-17 14:15:24,635 - Sender: BARON, ANGETHA [ S0190737] -> the retrieved similar message : This message has been sent by Paula Arimas on behalf of Miles Arimas.hi Dr. V, I didn't have my RSV Vaccine during pregnancy (was not available to me) and Miles doesn't have his RSV Vaccine. does that mean he is vulnerable to RSV now until 6 months+?\n", + "2025-06-17 14:15:24,637 - Provider's response to this similar message: Hi Paula,Thank you for pointing that out. Since you did not receive the RSV vaccine during pregnancy Miles is not protected and is thus more vulnerable to it. It's important to take preventive measures such as practicing good hand hygiene, avoiding close contact with sick individuals, and keeping him away from crowded places during RSV season, Oct- March. I am checking with our clinic manager to see if we can give Miles the RSV vaccine in our office. We have it for adults but wasn't to make sure we can do it for babies. I'll get back to you soon.Dr Villalon\n", + "2025-06-17 14:15:24,639 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:24,651 - Thread ID: 249339241\n", + "--------------------------------------------------------------------------------\n", + "idx: 306158\n", + "Subject: RE:RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Paula Arimas on behalf of Miles Arimas.hi Dr. V, Miles still has a lingering cough after 3 weeks, which sometimes seem to worsen. he is still congested and he has also been somewhat difficult to put down to nap, while fussy or grouchy while waking prematurely. we use the saline drops when he seems fairly congested. he sometimes has had a low grade fever but stayed mostly normal temp. he still has good appetite, is eating plenty (4.5 oz. every few hours), and stooling normally. it's hard to tell if he's in trouble or just fussy. it feels like bronchiolitis will continue to his next appointment. should we be concerned at this point or schedule an earlier return visit?\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 306157\n", + "Subject: RE:RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Michael Arimas on behalf of Miles Arimas.Hi Dr. V,Thanks for reassuring us about his stool.He doesn't enjoy the nose drops but it has helped him tremendously.We'll see you at the 4 month appointment.Thanks,Mike\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 306156\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Paula Arimas on behalf of Miles Arimas.thanks Dr. V! just wanted to follow up and see if Miles will receive his RSV Vaccine next time in the office?\n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Paula,Yes, he can get the RSV vaccine when you come in next time. Also, the stool picture you guys sent looks reassuring :) white clumps like that can be seen with breast milk. The darker areas are also commonly seen intermittently. I'm assuming Miles is doing better from his nasal congestion since the appt on 11/5 was cancelled? See you next time!Dr Villalon\n", + "----------------------------------------\n", + "idx: 306155\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "This message has been sent by Paula Arimas on behalf of Miles Arimas.hi Dr. V, I didn't have my RSV Vaccine during pregnancy (was not available to me) and Miles doesn't have his RSV Vaccine. does that mean he is vulnerable to RSV now until 6 months+?\n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Paula,Thank you for pointing that out. Since you did not receive the RSV vaccine during pregnancy Miles is not protected and is thus more vulnerable to it. It's important to take preventive measures such as practicing good hand hygiene, avoiding close contact with sick individuals, and keeping him away from crowded places during RSV season, Oct- March. I am checking with our clinic manager to see if we can give Miles the RSV vaccine in our office. We have it for adults but wasn't to make sure we can do it for babies. I'll get back to you soon.Dr Villalon\n", + "----------------------------------------\n", + "2025-06-17 14:15:24,652 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:24,653 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:24,653 - ✅ similarity: 0.5558\n", + "2025-06-17 14:15:24,654 - Sender: GARCIA, JAZMIN [ S0380322] -> the retrieved similar message : I was wondering if I can get some shots for Norovirus and pneumonia. I have my flu and covid shots, but with all the stuff going around and me with a weaken immune system I don't want to get sick. my son is just getting over pneumonia. I believe I'm still to young for the RSV shot. But anything I can get to help me not get sick would be appreciated. thank you,Lori Campbell\n", + "2025-06-17 14:15:24,655 - Provider's response to this similar message: Hi Lori, Apologies for the delay. I looked into your chart for vaccination records and we can certainly offer you the pneumonia vaccine. There is no norovirus vaccine. You're correct you don't meet the age criteria for RSV vaccine. As for the pertussis vaccine, this is part of the tdap vaccine which you had in 2016 and is due for you next year. Please call to schedule your visit to the the pneumonia vaccine. Let me know if you have questions. Dr Villalon\n", + "2025-06-17 14:15:24,655 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:24,657 - Thread ID: 254815496\n", + "--------------------------------------------------------------------------------\n", + "idx: 43665\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I was wondering if I can get some shots for Norovirus and pneumonia. I have my flu and covid shots, but with all the stuff going around and me with a weaken immune system I don't want to get sick. my son is just getting over pneumonia. I believe I'm still to young for the RSV shot. But anything I can get to help me not get sick would be appreciated. thank you,Lori Campbell\n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Lori, Apologies for the delay. I looked into your chart for vaccination records and we can certainly offer you the pneumonia vaccine. There is no norovirus vaccine. You're correct you don't meet the age criteria for RSV vaccine. As for the pertussis vaccine, this is part of the tdap vaccine which you had in 2016 and is due for you next year. Please call to schedule your visit to the the pneumonia vaccine. Let me know if you have questions. Dr Villalon\n", + "----------------------------------------\n", + "2025-06-17 14:15:24,658 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:24,658 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:24,659 - ✅ similarity: 0.3707\n", + "2025-06-17 14:15:24,659 - Sender: VILLALON LANDEROS, MARIA [ S0165842] -> the retrieved similar message : Hello Dr. Levine,I forgot if I have already taken flu shot this year. Is it in my medical record? I do not see any \"flu\" in there.Thanks,Lik\n", + "2025-06-17 14:15:24,660 - Provider's response to this similar message: Hi Mr Lik,I'm Dr Villalon, part of the team covering messages intermittently for our clinic this weekend. I reviewed your chart and do not see a flu vaccines administered this year yet. Please le tus know if you would like to make an appointment to get your flu vaccine. Dr Villalon\n", + "2025-06-17 14:15:24,660 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:24,663 - Thread ID: 249626004\n", + "--------------------------------------------------------------------------------\n", + "idx: 291294\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Villalon, Thanks for the quick response. Yes, I would like to schedule a flu shot appointment.thanks,Lik\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE SANTA CLARA MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 291293\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Levine,I forgot if I have already taken flu shot this year. Is it in my medical record? I do not see any \"flu\" in there.Thanks,Lik\n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Mr Lik,I'm Dr Villalon, part of the team covering messages intermittently for our clinic this weekend. I reviewed your chart and do not see a flu vaccines administered this year yet. Please le tus know if you would like to make an appointment to get your flu vaccine. Dr Villalon\n", + "----------------------------------------\n", + "2025-06-17 14:15:24,664 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:24,671 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:24,694 - ✅ similarity: 0.3561\n", + "2025-06-17 14:15:24,695 - Sender: GARCIA, JAZMIN [ S0380322] -> the retrieved similar message : Hi Dr. Villalon Landeros,Just as an update for follow-up items. 1. May I please have the Zepbound 7.5 mg Rx reactivated? My pharmacy has now stored the 10 mg Rx. I would like to see how I do on one more month of this dose but will need a new/reinstated Rx, please.2. I have done one week of Flonase. My cough and throat phlegm are still present (2 months now). It had maybe improved by 10%? Should I try an antihistamine on top of this? 3. Knowing my daughters will likely bring home colds, I think it may be in my best interest to have some sort of maintenance inhaler during the cold/flu season. Should I set up an appointment for this with you? I hope all is well!Thank you,Jackie Gapp\n", + "2025-06-17 14:15:24,695 - Provider's response to this similar message: Hi Jacqueline,My name is Dr. Narula, and I work with Dr. Villalon and am covering her today while she is out of the office. Thank you for your message and updates.1. I have resent the Zepbound 7.5 mg prescription for you to your listed safeway, that should hopefully be ready for you in the next few days. Please let me know if you need further help with this. 2. Flonase takes a few weeks for the symptoms to improve, typically our ENT colleagues recommend continuing for at least 4-6 weeks to see results. One thing I'd recommend is making sure to do a nasal rinse before using the flonase to help clear the debris from your nasal passages and help with better absorption of the nasal spray. You can certainly add in an antihistamine in the mean time but it may not help your symptoms as much as the flonase will. 3. It sounds like a good idea to discuss a maintenance inhaler for the cold/flu season. Please schedule an appointment with Dr. Villalon through the Stanford MyHealth app at your convenience. I hope this helps! Take care and let me know if you have any other questions.Warmly, Dr. NarulaStanford Primary Care Santa Clara (408) 688-9720 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "2025-06-17 14:15:24,696 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:24,701 - Thread ID: 248454063\n", + "--------------------------------------------------------------------------------\n", + "idx: 350492\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Villalon Landeros,Just as an update for follow-up items. 1. May I please have the Zepbound 7.5 mg Rx reactivated? My pharmacy has now stored the 10 mg Rx. I would like to see how I do on one more month of this dose but will need a new/reinstated Rx, please.2. I have done one week of Flonase. My cough and throat phlegm are still present (2 months now). It had maybe improved by 10%? Should I try an antihistamine on top of this? 3. Knowing my daughters will likely bring home colds, I think it may be in my best interest to have some sort of maintenance inhaler during the cold/flu season. Should I set up an appointment for this with you? I hope all is well!Thank you,Jackie Gapp\n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Jacqueline,My name is Dr. Narula, and I work with Dr. Villalon and am covering her today while she is out of the office. Thank you for your message and updates.1. I have resent the Zepbound 7.5 mg prescription for you to your listed safeway, that should hopefully be ready for you in the next few days. Please let me know if you need further help with this. 2. Flonase takes a few weeks for the symptoms to improve, typically our ENT colleagues recommend continuing for at least 4-6 weeks to see results. One thing I'd recommend is making sure to do a nasal rinse before using the flonase to help clear the debris from your nasal passages and help with better absorption of the nasal spray. You can certainly add in an antihistamine in the mean time but it may not help your symptoms as much as the flonase will. 3. It sounds like a good idea to discuss a maintenance inhaler for the cold/flu season. Please schedule an appointment with Dr. Villalon through the Stanford MyHealth app at your convenience. I hope this helps! Take care and let me know if you have any other questions.Warmly, Dr. NarulaStanford Primary Care Santa Clara (408) 688-9720 Reminder: Care When You Need ItFor urgent issues, call 650-498-9000, 24 hours/day for assistance. You can also log into MyHealth to schedule a same-day appointment with your PCP or Express Care Clinic. Express Care is open 9am-9pm 7 days/week.\n", + "----------------------------------------\n", + "2025-06-17 14:15:24,714 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:24,714 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:24,715 - ✅ similarity: 0.2964\n", + "2025-06-17 14:15:24,717 - Sender: GARCIA, JAZMIN [ S0380322] -> the retrieved similar message : Hi Dr. V, Yesterday unfortunately our appointment ended up being for Covid. But it was supposed to be for you to write a letter to my job so I can be removed from accommodation. \n", + "2025-06-17 14:15:24,738 - Provider's response to this similar message: Hi Yesenia,Thanks for the message. How is your back pain? I know the restrictions were related to the back pain so making sure that's stable and better so you don't reinjure yourself. Dr Villalon\n", + "2025-06-17 14:15:24,738 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:24,761 - Thread ID: 252756658\n", + "--------------------------------------------------------------------------------\n", + "idx: 134116\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. V, Yesterday unfortunately our appointment ended up being for Covid. But it was supposed to be for you to write a letter to my job so I can be removed from accommodation. \n", + "----------------------------------------\n", + "Provider Response by VILLALON LANDEROS, MARIA:\n", + "Hi Yesenia,Thanks for the message. How is your back pain? I know the restrictions were related to the back pain so making sure that's stable and better so you don't reinjure yourself. Dr Villalon\n", + "----------------------------------------\n", + "2025-06-17 14:15:24,775 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:24,884 - Original Message:\n", + "2025-06-17 14:15:24,885 - original_query_message: Doctor Parekhcan you please order tests for a complete STD panel or at a minimum Chlamydia / gonorrhea/ trichomoniasis (complete panel is preferable) because I feel a burning sensation while urinating thanks\n", + "2025-06-17 14:15:26,071 - Query Parameters:\n", + "2025-06-17 14:15:26,072 - query_message: Hi Dr. Parekh, I’ve been experiencing some discomfort when I go to the bathroom—it stings a bit and feels kind of irritated. I also noticed a bit of unusual discharge earlier this week, which has me a bit worried. I’m not sure if it could be something like an infection or an STD. Would it be possible to get tested for the common STIs, including chlamydia, gonorrhea, and trichomonas, just to be safe? I’d appreciate your help with this; I just want to make sure everything’s okay. Thank you!\n", + "2025-06-17 14:15:26,072 - receiver: PAREKH, PRITI\n", + "2025-06-17 14:15:26,073 - department: FAMILY MEDICINE BVMG DANVILLE\n", + "2025-06-17 14:15:26,075 - specialty: Family Medicine\n", + "2025-06-17 14:15:26,402 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:26,403 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:26,403 - ✅ similarity: 0.7227\n", + "2025-06-17 14:15:26,404 - Sender: AFLLEJE, MARIAH [ S0377038] -> the retrieved similar message : Doctor Parekhcan you please order tests for a complete STD panel or at a minimum Chlamydia / gonorrhea/ trichomoniasis (complete panel is preferable) because I feel a burning sensation while urinating thanks\n", + "2025-06-17 14:15:26,406 - Provider's response to this similar message: Sure- ordered\n", + "2025-06-17 14:15:26,408 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:26,413 - Thread ID: 254170968\n", + "--------------------------------------------------------------------------------\n", + "idx: 75759\n", + "Subject: RE:RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "hello, Quest Pleasanton was *unable to find all of these tests, they found only a urine test that I gave the urine sample today. can you please resend these test orders to Quest 5720 Stone ridge Mall Rd Pleasanton. please let me know when the orders have been resent so I can go give the samples. thanks for your help\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Sumit,The orders have already been placed. Quest should be able to view the lab orders. If you are having trouble getting your labs done you can stop by our office to pick up a copy for your records. We have also sent you a message with your lab orders attached which you can print if that is more convenient. Please feel free to reach out to us with any other questions. Thank you.Best,Michelle Salazar, 12/27/2024, 4:31 PM \n", + "----------------------------------------\n", + "idx: 75758\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "thanks, is at Quest? and is it for the complete std panel?\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "Hi Mr. Sarin, Labs ordered at Quest The lab slip is attached \n", + "----------------------------------------\n", + "idx: 75757\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Doctor Parekhcan you please order tests for a complete STD panel or at a minimum Chlamydia / gonorrhea/ trichomoniasis (complete panel is preferable) because I feel a burning sensation while urinating thanks\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "Sure- ordered\n", + "----------------------------------------\n", + "2025-06-17 14:15:26,415 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:26,415 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:26,416 - ✅ similarity: 0.4923\n", + "2025-06-17 14:15:26,417 - Sender: VALLES, MERCEDES [ S0291033] -> the retrieved similar message : Hello! I have yet to establish myself with a new OB since my other went left. I wanted to reach out because I have a somewhat painful bump inside my labia majora and I just started my period yesterday. I’ve never experienced this before and feel worried. \n", + "2025-06-17 14:15:26,418 - Provider's response to this similar message: Hi Vanessa,I'm sorry to hear about the discomfort you're experiencing. It sounds like you might have a cyst or an ingrown hair, which can sometimes occur in that area. However, it's important to get it checked out to ensure it's nothing more serious.I recommend scheduling an appointment so we can evaluate it properly. You can use the Stanford MyHealth app to book your visit. In the meantime, try to keep the area clean and avoid any irritation.If the pain becomes severe or you notice any other concerning symptoms, please seek medical attention promptly.Take care, and I look forward to seeing you soon.Priti Sanjay Parekh, MD\n", + "2025-06-17 14:15:26,418 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:26,420 - Thread ID: 249607091\n", + "--------------------------------------------------------------------------------\n", + "idx: 292508\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Vanessa,I'm sorry to hear about the discomfort you're experiencing. It sounds like you might have a cyst or an ingrown hair, which can sometimes occur in that area. However, it's important to get it checked out to ensure it's nothing more serious.I recommend scheduling an appointment so we can evaluate it properly. You can use the Stanford MyHealth app to book your visit. In the meantime, try to keep the area clean and avoid any irritation.If the pain becomes severe or you notice any other concerning symptoms, please seek medical attention promptly.Take care, and I look forward to seeing you soon.Priti Sanjay Parekh, MD\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED CLINICAL SUPPORT POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 292507\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello! I have yet to establish myself with a new OB since my other went left. I wanted to reach out because I have a somewhat painful bump inside my labia majora and I just started my period yesterday. I’ve never experienced this before and feel worried. \n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "Hi Vanessa,I'm sorry to hear about the discomfort you're experiencing. It sounds like you might have a cyst or an ingrown hair, which can sometimes occur in that area. However, it's important to get it checked out to ensure it's nothing more serious.I recommend scheduling an appointment so we can evaluate it properly. You can use the Stanford MyHealth app to book your visit. In the meantime, try to keep the area clean and avoid any irritation.If the pain becomes severe or you notice any other concerning symptoms, please seek medical attention promptly.Take care, and I look forward to seeing you soon.Priti Sanjay Parekh, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:26,421 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:26,422 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:26,422 - ✅ similarity: 0.4304\n", + "2025-06-17 14:15:26,423 - Sender: VALLES, MERCEDES [ S0291033] -> the retrieved similar message : Hello Dr. Parekh,While we've managed to avoid it for a few months, it's clear my father has another UTI. He's exhibiting the same exact symptoms; he responded very well to the antibiotics a few months ago, and this scenario is a carbon copy. His mobility is greatly impaired right now with the combo of his UTI and his Parkinson's, so bringing him anywhere right now will be EXTREMELY difficult.I would greatly appreciate a prescription for UTI antibiotics.Thank you very much.\n", + "2025-06-17 14:15:26,423 - Provider's response to this similar message: What are his current symptoms?\n", + "2025-06-17 14:15:26,424 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:26,426 - Thread ID: 254426751\n", + "--------------------------------------------------------------------------------\n", + "idx: 62934\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,Symptoms: Cloudy urine, disorientation, greater imbalance than normal/lack of leg strength, difficulty urinating/lack of full bladder voiding, lower back and lower abdominal pain (though the pain is not major). They are all exactly the same as always. The holidays meant it took me a bit longer than normal to notice.\n", + "----------------------------------------\n", + "Provider Response by BVD FAMILY MED MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 62933\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Parekh,While we've managed to avoid it for a few months, it's clear my father has another UTI. He's exhibiting the same exact symptoms; he responded very well to the antibiotics a few months ago, and this scenario is a carbon copy. His mobility is greatly impaired right now with the combo of his UTI and his Parkinson's, so bringing him anywhere right now will be EXTREMELY difficult.I would greatly appreciate a prescription for UTI antibiotics.Thank you very much.\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "What are his current symptoms?\n", + "----------------------------------------\n", + "2025-06-17 14:15:26,427 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:26,427 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:26,428 - ✅ similarity: 0.3702\n", + "2025-06-17 14:15:26,455 - Sender: SARAH, MILLER [ S0292012] -> the retrieved similar message : Thank you so much!Is there anything that I should be doing now or do you think additional tests are required to rule out other possibilities?\n", + "2025-06-17 14:15:26,456 - Provider's response to this similar message: No - we just keep checking every year. \n", + "2025-06-17 14:15:26,457 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:26,465 - Thread ID: 255075390\n", + "--------------------------------------------------------------------------------\n", + "idx: 30762\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Anti - TPO Ab resulted on 12/20/24, 3:46?PM...OkThank you!Best,Aakriti\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "That means you likely has Hashimoto's thyroiditis which eventually may lead to lower levels of thyroid hormone and you may need thyroid replacement at some point.\n", + "----------------------------------------\n", + "idx: 30761\n", + "Subject: RE: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you so much!Is there anything that I should be doing now or do you think additional tests are required to rule out other possibilities?\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "No - we just keep checking every year. \n", + "----------------------------------------\n", + "2025-06-17 14:15:26,475 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:26,476 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:26,497 - ✅ similarity: 0.3696\n", + "2025-06-17 14:15:26,500 - Sender: AFLLEJE, MARIAH [ S0377038] -> the retrieved similar message : Dear Dr. Priti Parekh;Since seeing Dr. Dobberfuhl,Urologist , she reduced the nitrofurantoin from 100 MG to 50MG. I have been getting very much more sick. I had testing done at the walk in clinic verifying this (10/28/24) decline. Then you so graciously referred me to the non-Stanford Urologist, Dr. Sean Berquist, because Dr. Dobberfuhl could not do my cystoscope until next year. I saw Dr. Berquist yesterday. He immediately switched me back to your original prescription of 100 MG of nitrofurantoin. I can notice an improvement already!Thank you! Thank you!! Thank you!!! For sending me to Dr. Berquist! He was considerate, kind, informative, respectful,patient, & listened to me, giving good, informative answers, with integrity.Thank you!Dr. Dobberfuhl did recommend a terrific laxative for me: Miralax. It is the best that I have ever used. I appreciate that!Sincerely, Janet Johnson\n", + "2025-06-17 14:15:26,500 - Provider's response to this similar message: You are welcome:) I am so glad you are doing better. \n", + "2025-06-17 14:15:26,501 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:26,550 - Thread ID: 249841762\n", + "--------------------------------------------------------------------------------\n", + "idx: 279906\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr. Priti Parekh;Since seeing Dr. Dobberfuhl,Urologist , she reduced the nitrofurantoin from 100 MG to 50MG. I have been getting very much more sick. I had testing done at the walk in clinic verifying this (10/28/24) decline. Then you so graciously referred me to the non-Stanford Urologist, Dr. Sean Berquist, because Dr. Dobberfuhl could not do my cystoscope until next year. I saw Dr. Berquist yesterday. He immediately switched me back to your original prescription of 100 MG of nitrofurantoin. I can notice an improvement already!Thank you! Thank you!! Thank you!!! For sending me to Dr. Berquist! He was considerate, kind, informative, respectful,patient, & listened to me, giving good, informative answers, with integrity.Thank you!Dr. Dobberfuhl did recommend a terrific laxative for me: Miralax. It is the best that I have ever used. I appreciate that!Sincerely, Janet Johnson\n", + "----------------------------------------\n", + "Provider Response by PAREKH, PRITI:\n", + "You are welcome:) I am so glad you are doing better. \n", + "----------------------------------------\n", + "2025-06-17 14:15:26,560 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:26,726 - Original Message:\n", + "2025-06-17 14:15:26,728 - original_query_message: Can you please mail that letter you need me to sign for your file about my Norco medication. i found the letter on my health, but no option to print so I could sign. thank youPatricia Watts\n", + "2025-06-17 14:15:28,120 - Query Parameters:\n", + "2025-06-17 14:15:28,121 - query_message: Hi there, I’ve been having a hard time with my pain levels lately, and I know we talked before about my prescription for pain meds (I’m currently on Norco). I saw a consent form in my patient portal related to my medication agreement, but I couldn’t figure out how to save or print it out. Would it be possible for your office to send a physical copy to my address? I want to make sure I get everything signed and back to you so I don’t have any interruptions with my refills. Also, I’ve noticed some increased soreness in my back and legs—do you want me to mention that in the paperwork, or should I schedule a separate appointment to discuss the new pain? Thanks so much for your help!\n", + "2025-06-17 14:15:28,122 - receiver: VCPA FM & IM 1133 # 101 MA POOL\n", + "2025-06-17 14:15:28,123 - department: FAMILY MEDICINE VCL 1133 101\n", + "2025-06-17 14:15:28,126 - specialty: Family Medicine\n", + "2025-06-17 14:15:28,493 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:28,493 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:28,494 - ✅ similarity: 0.7072\n", + "2025-06-17 14:15:28,495 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Can you please mail that letter you need me to sign for your file about my Norco medication. i found the letter on my health, but no option to print so I could sign. thank youPatricia Watts\n", + "2025-06-17 14:15:28,495 - Provider's response to this similar message: Hello Patricia, If you received on myhealth you would just need to agree as a signature. I will sent now to see if this gives you option. \n", + "2025-06-17 14:15:28,498 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:28,503 - Thread ID: 253195794\n", + "--------------------------------------------------------------------------------\n", + "idx: 117664\n", + "Subject: RE:RE:Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Alena,thank you\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 117663\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Can you please mail that letter you need me to sign for your file about my Norco medication. i found the letter on my health, but no option to print so I could sign. thank youPatricia Watts\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello Patricia, If you received on myhealth you would just need to agree as a signature. I will sent now to see if this gives you option. \n", + "----------------------------------------\n", + "2025-06-17 14:15:28,511 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:28,512 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:28,513 - ✅ similarity: 0.6570\n", + "2025-06-17 14:15:28,513 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : regarding my reply to Alena Ramil, is it ok to do a video appt? Is Urgent Care able to approve my Norco medication?Thank youPatricia Watts ========================yes, it was over a year ago as I only take when my pain is worse than normal and makes it hard to move around. I don't abuse my Norco. If i did, i wouldn't have 14 tablets left. I've been taking ½ of the expired pills i have left. Can we do a Video Visit, I don't have transportation.\n", + "2025-06-17 14:15:28,514 - Provider's response to this similar message: Hello Patricia, I understand you are not abusing your medication, with this medication it is a controlled medication and you would need to be seen for this medication. I am able to assist you with scheduling tomorrow for a video appointment with Dr. Willkom. Please advise if you would like a video appointment scheduled for tomorrow\n", + "2025-06-17 14:15:28,527 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:28,567 - Thread ID: 252132503\n", + "--------------------------------------------------------------------------------\n", + "idx: 162654\n", + "Subject: RE:RE:RE:RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Alena, Thank youPatricia Watts\n", + "----------------------------------------\n", + "Provider Response by RAMIL, ALENA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 162653\n", + "Subject: RE:RE:RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "a video appt would be great. I thought i had to be seen by a doctor.yes, please schedule for tomorrow. any time in the afternoon. I'll check on my health later to get the time. thank you\n", + "----------------------------------------\n", + "Provider Response by RAMIL, ALENA:\n", + "Hello Patricia, This email is a follow up from our my health correspondence. You are scheduled tomorrow, 10/11/2024 with Clinician; Dr. Willkom for Video appointment at 420 pm. Please sign in 3-5 minutes before your scheduled time to allow for check in processPlease have vitals ready for appointment, weight, height, blood pressure, heart rate and temperature. \n", + "----------------------------------------\n", + "idx: 162652\n", + "Subject: RE:RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "regarding my reply to Alena Ramil, is it ok to do a video appt? Is Urgent Care able to approve my Norco medication?Thank youPatricia Watts ========================yes, it was over a year ago as I only take when my pain is worse than normal and makes it hard to move around. I don't abuse my Norco. If i did, i wouldn't have 14 tablets left. I've been taking ½ of the expired pills i have left. Can we do a Video Visit, I don't have transportation.\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello Patricia, I understand you are not abusing your medication, with this medication it is a controlled medication and you would need to be seen for this medication. I am able to assist you with scheduling tomorrow for a video appointment with Dr. Willkom. Please advise if you would like a video appointment scheduled for tomorrow\n", + "----------------------------------------\n", + "idx: 162651\n", + "Subject: RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "is it possible to go to urgent care in the evening\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 162650\n", + "Subject: RE:RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "yes, it was over a year ago as I only take when my pain is worse than normal and makes it hard to move around. I don't abuse my Norco. If i did, i wouldn't have 14 tablets left. I've been taking ½ of the expired pills i have left. Can we do a Video Visit, I don't have transportation.thank you, Patricia Watts\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello Patricia, Thank you for your message. Urgent care hours varies by location. I suggest calling the facility you plan on going to so you can get their hours of operation. Hope this helps. Dennis James De CastroMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "----------------------------------------\n", + "idx: 162649\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "can you please approve my 2 prescriptions? I requested refills on 12/2. thank you\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello Patricia, I am showing your medication were denied, states needs to be seen. In reviewing your chart I am showing the medication was prescribed over a year ago. The medication is controlled substance and does follow different guidelines than regular medications. Please schedule your appointment by calling (925) 454-4280 or through the Myhealth app. You are welcome to schedule with any of our clinicians or nurse practitioners if you are needing a sooner appointment then your clinician can offer. Thank you for contacting Stanford Medicine Partners, Primary & Specialty Care, Pleasanton.\n", + "----------------------------------------\n", + "idx: 162648\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "as far as I understood, it's all good please explain on my Health Summary \"My Health issues\" on (10/4/24) encounter for screening mammogram for malignant neoplasm of breast. if it does not pertain to my health, why is that comment under my health ?Same on 10/20/2022, it has commentMass of Paritoneal. That's a serious statement, and if I don't have cancer, why is that comment under my health issues?please help me to understand. also, are my refills approved ?Thank you. Have a great weekend.Patricia Watts\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 162647\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My test results came in, and all is good. Unless you need to speak with me, consider this appt canceled. I hope you had a memorable Thanksgiving.thank youPatricia Watts\n", + "----------------------------------------\n", + "Provider Response by WILLKOM, MIGNONETTE:\n", + "Hi Patricia,Report is good and you have no concern with breasts, correct?Dr. Willkom\n", + "----------------------------------------\n", + "2025-06-17 14:15:28,569 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:28,571 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:28,582 - ✅ similarity: 0.6006\n", + "2025-06-17 14:15:28,590 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Willkom,I'm doing good. I have been using the Lunesta sparingly. But still need it occassionally. Do I need to come into the office to sign the contract? Also, as of the first of the year my insurance will change to Aetna Medicare PPO. I couldn't find your name in their bank of doctors so I'm wondering if you accept this insurance. My husband has Dr. Alper as his doctor so Aetna put his name on my new card, but I really want to continue seeing you. I tried calling the office and spoke to someone in the billing department but they couldn't help me with this. I plan to call Aetna and speak with them about keeping you as my PCP. Otherwise all is good. Let me know if I need to come to the office to sign the contract or if I can do it on the My Health app. Hopefully I will be able to follow up with you in the spring.Thanks, and Merry Christmas! Maybe see you in church. I'm singing in the choir at 10:30 Mass. Chris makes it so fun!!Maureen \n", + "2025-06-17 14:15:28,594 - Provider's response to this similar message: Hello Maureen, Thank you for your message. Yes, please do call your insurance carrier to verify coverage. As for the contract, it is attached to this message, please review it. Hope this helps, thank you!Dennis James De CastroMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "2025-06-17 14:15:28,596 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:28,600 - Thread ID: 253706813\n", + "--------------------------------------------------------------------------------\n", + "idx: 95303\n", + "Subject: RE:contract\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Willkom,I'm doing good. I have been using the Lunesta sparingly. But still need it occassionally. Do I need to come into the office to sign the contract? Also, as of the first of the year my insurance will change to Aetna Medicare PPO. I couldn't find your name in their bank of doctors so I'm wondering if you accept this insurance. My husband has Dr. Alper as his doctor so Aetna put his name on my new card, but I really want to continue seeing you. I tried calling the office and spoke to someone in the billing department but they couldn't help me with this. I plan to call Aetna and speak with them about keeping you as my PCP. Otherwise all is good. Let me know if I need to come to the office to sign the contract or if I can do it on the My Health app. Hopefully I will be able to follow up with you in the spring.Thanks, and Merry Christmas! Maybe see you in church. I'm singing in the choir at 10:30 Mass. Chris makes it so fun!!Maureen \n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello Maureen, Thank you for your message. Yes, please do call your insurance carrier to verify coverage. As for the contract, it is attached to this message, please review it. Hope this helps, thank you!Dennis James De CastroMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "----------------------------------------\n", + "2025-06-17 14:15:28,601 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:28,602 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:28,602 - ✅ similarity: 0.5824\n", + "2025-06-17 14:15:28,603 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Dr. Willkom. Could you please fill out the attached annual physical form from my appointment on 9/20/24? Thank you!Heather Floyd\n", + "2025-06-17 14:15:28,603 - Provider's response to this similar message: Good morning Heather, Dr. Willkom would like for you to schedule an appointment with her so she can complete this form, I can help assist you with making a video visit or in person and printing out the form so she can have it ready at your appointment time. Have a good day! Best, Kelea pICKERAL DENNISMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "2025-06-17 14:15:28,604 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:28,605 - Thread ID: 248268686\n", + "--------------------------------------------------------------------------------\n", + "idx: 360276\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kelea,I just missed your call. Thanks for scheduling me on Friday, 11/1/24 @ 1:40pm.Heather\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 360275\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good afternoon Kelea,Thank you for getting back to me. I would like to schedule a video visit with Dr. Wilkom. Typically, Mondays and Fridays work best for me. I look forward to hearing back from you.Thanks again,Heather\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hi Heather, I went ahead and scheduled you for next Friday 11/1/24 at 1:40, please let me know if this works for you.Best, Kelea pICKERAL DENNISMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "----------------------------------------\n", + "idx: 360274\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Willkom. Could you please fill out the attached annual physical form from my appointment on 9/20/24? Thank you!Heather Floyd\n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Good morning Heather, Dr. Willkom would like for you to schedule an appointment with her so she can complete this form, I can help assist you with making a video visit or in person and printing out the form so she can have it ready at your appointment time. Have a good day! Best, Kelea pICKERAL DENNISMedical Assistant IIStanford Medicine PartnersValleyCare Physicians AssociatesFamily Medicine1133 E. Stanley Blvd. Suite 101Livermore, CA 94550tel: 925-454-4280fax: 925-454-4284\n", + "----------------------------------------\n", + "2025-06-17 14:15:28,606 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:28,607 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:28,608 - ✅ similarity: 0.5690\n", + "2025-06-17 14:15:28,608 - Sender: SAMIMI, RETA [ S0353434] -> the retrieved similar message : Is it possible to get a small prescription for norco which was helpful before I started the tramadol medication until I get in to see him on Monday? Or a prescription for a muscle relaxer that works with the meloxicam ? \n", + "2025-06-17 14:15:28,609 - Provider's response to this similar message: Hello, Our physician assistant that works closely with Dr. Wilkom has sent a muscle relaxant. Kind regards,Serenity Das, MA, 12/26/2024, 3:26 PM \n", + "2025-06-17 14:15:28,610 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:28,612 - Thread ID: 254250338\n", + "--------------------------------------------------------------------------------\n", + "idx: 71896\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Is it possible to get a small prescription for norco which was helpful before I started the tramadol medication until I get in to see him on Monday? Or a prescription for a muscle relaxer that works with the meloxicam ? \n", + "----------------------------------------\n", + "Provider Response by VCPA FM & IM 1133 # 101 MA POOL:\n", + "Hello, Our physician assistant that works closely with Dr. Wilkom has sent a muscle relaxant. Kind regards,Serenity Das, MA, 12/26/2024, 3:26 PM \n", + "----------------------------------------\n", + "2025-06-17 14:15:28,615 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:29,217 - Original Message:\n", + "2025-06-17 14:15:29,218 - original_query_message: Hi Francis, CVS says I do not have a refill for my cholesterol medicine Lovastatin . On the bottle it says no refills . Is that right ?Could you please call it in? They left me a message saying there isn’t any prescriptions for me and I only have one pill left. Thanks so much. P.S I can’t ask them to do 60 or 90 days Because they say I have no refills . I don’t know why \n", + "2025-06-17 14:15:30,676 - Query Parameters:\n", + "2025-06-17 14:15:30,677 - query_message: Hi Francis, I hope you’re having a good week. I noticed when I went to pick up my Simvastatin for my cholesterol, the pharmacist told me there aren’t any refills left on my prescription, even though I thought I had a few more months. I’m almost out—only two tablets left. I’m a little worried because I know how important it is to keep my cholesterol under control, especially since I had that borderline high reading last checkup. Could you help me sort this out or send another prescription to the pharmacy? Also, if possible, could we do a 90-day supply this time? Thank you so much for your help!\n", + "2025-06-17 14:15:30,678 - receiver: GRIFFITH, DAVID LUNDSTEDT\n", + "2025-06-17 14:15:30,679 - department: FAMILY MEDICINE ALMADEN SAN JOSE\n", + "2025-06-17 14:15:30,681 - specialty: Family Medicine\n", + "2025-06-17 14:15:30,973 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:30,976 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:30,978 - ✅ similarity: 0.7692\n", + "2025-06-17 14:15:30,980 - Sender: QUEZADA, FRANCES [ S0186530] -> the retrieved similar message : Hi Francis, CVS says I do not have a refill for my cholesterol medicine Lovastatin . On the bottle it says no refills . Is that right ?Could you please call it in? They left me a message saying there isn’t any prescriptions for me and I only have one pill left. Thanks so much. P.S I can’t ask them to do 60 or 90 days Because they say I have no refills . I don’t know why \n", + "2025-06-17 14:15:30,983 - Provider's response to this similar message: Hi Sheila, You are due for a follow up fasting cholesterol blood test. We need to see if you are on the correct dose. Please go to Labcorp to get your blood draw. I sent in #30 to tie you over. Happy Thanksgiving!Dr.G\n", + "2025-06-17 14:15:30,984 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:30,991 - Thread ID: 251689010\n", + "--------------------------------------------------------------------------------\n", + "idx: 185004\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Francis, CVS says I do not have a refill for my cholesterol medicine Lovastatin . On the bottle it says no refills . Is that right ?Could you please call it in? They left me a message saying there isn’t any prescriptions for me and I only have one pill left. Thanks so much. P.S I can’t ask them to do 60 or 90 days Because they say I have no refills . I don’t know why \n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Hi Sheila, You are due for a follow up fasting cholesterol blood test. We need to see if you are on the correct dose. Please go to Labcorp to get your blood draw. I sent in #30 to tie you over. Happy Thanksgiving!Dr.G\n", + "----------------------------------------\n", + "2025-06-17 14:15:30,992 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:30,992 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:30,993 - ✅ similarity: 0.6022\n", + "2025-06-17 14:15:30,995 - Sender: QUEZADA, FRANCES [ S0186530] -> the retrieved similar message : Good morning Dr. Griffith,I had a appointment with Dr. Bala yesterday and she said that my cholesterol was very high and there were other medications out that are better then the Lipator that I am taking. Do you think I should try another medications to try and get my cholesterol under control? ThanksGloria\n", + "2025-06-17 14:15:30,995 - Provider's response to this similar message: Yes, please make a follow up appt , video visit is ok. Dr. G\n", + "2025-06-17 14:15:30,998 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:31,003 - Thread ID: 253066305\n", + "--------------------------------------------------------------------------------\n", + "idx: 122390\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Dr. Griffith,I had a appointment with Dr. Bala yesterday and she said that my cholesterol was very high and there were other medications out that are better then the Lipator that I am taking. Do you think I should try another medications to try and get my cholesterol under control? ThanksGloria\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Yes, please make a follow up appt , video visit is ok. Dr. G\n", + "----------------------------------------\n", + "2025-06-17 14:15:31,004 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:31,005 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:31,007 - ✅ similarity: 0.6006\n", + "2025-06-17 14:15:31,009 - Sender: VISPERAS, SHINE [ S0377724] -> the retrieved similar message : Hi, the soonest appointment available for Dr. Griffith is Dec. 10. And, I don’t have any of the medication left. Should I continue with a refill of the same dosage? If so can I obtain a 3-month prescription? Please advise. Thanks,Shawn\n", + "2025-06-17 14:15:31,010 - Provider's response to this similar message: Your Ozempic was sent in yesterday at the 1mg dose. We can talk at your up coming appt. I am out of town presently and my PA, Kindall refilled this medication for you.Dr.G\n", + "2025-06-17 14:15:31,010 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:31,024 - Thread ID: 250415204\n", + "--------------------------------------------------------------------------------\n", + "idx: 250613\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi, the soonest appointment available for Dr. Griffith is Dec. 10. And, I don’t have any of the medication left. Should I continue with a refill of the same dosage? If so can I obtain a 3-month prescription? Please advise. Thanks,Shawn\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Your Ozempic was sent in yesterday at the 1mg dose. We can talk at your up coming appt. I am out of town presently and my PA, Kindall refilled this medication for you.Dr.G\n", + "----------------------------------------\n", + "idx: 250612\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Griffith,It’s time to refill my Ozempic prescription and I was wondering if I should go to 1.0 mg? I am still losing weight as I am down to 208 lbs. Also, would it be possible to get a 3 month prescription since it would cost me less?Thanks,Shawn\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Good afternoon Mr. Delaney, It would be best to schedule an appointment to discuss this. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. Best, Your Care Team \n", + "----------------------------------------\n", + "2025-06-17 14:15:31,048 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:31,070 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:31,081 - ✅ similarity: 0.5955\n", + "2025-06-17 14:15:31,081 - Sender: QUEZADA, FRANCES [ S0186530] -> the retrieved similar message : Should I get the refill of Atorvastatin? If I do should I do a blood test?Thanks John Jahan\n", + "2025-06-17 14:15:31,082 - Provider's response to this similar message: Hi Mr JahanI am helping answer some messages for Dr. GriffithIt looks like atorvastatin really lowered your cholesterol in 2023. (See screen shot below)I would keep taking it unless you are having side effect. Alternatively, if you have completely changed your diet (e.g. plat based and no processed foods) and would like to see what your cholesterol is off the medication, please let us know. I do think you should repeat labs this year. I'll cc Dr. Griffith on the orders. Please complete them fasting at your next opportunityRachel Roberts, MD\n", + "2025-06-17 14:15:31,122 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:31,140 - Thread ID: 255580167\n", + "--------------------------------------------------------------------------------\n", + "idx: 9118\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Do I need a blood test request from the physician or I can just go to the center?\n", + "----------------------------------------\n", + "Provider Response by ALFP CARE TEAM POOL:\n", + "Lab orders have been sent to labcorp and you do need to fast. \n", + "----------------------------------------\n", + "idx: 9117\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Should I get the refill of Atorvastatin? If I do should I do a blood test?Thanks John Jahan\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "Hi Mr JahanI am helping answer some messages for Dr. GriffithIt looks like atorvastatin really lowered your cholesterol in 2023. (See screen shot below)I would keep taking it unless you are having side effect. Alternatively, if you have completely changed your diet (e.g. plat based and no processed foods) and would like to see what your cholesterol is off the medication, please let us know. I do think you should repeat labs this year. I'll cc Dr. Griffith on the orders. Please complete them fasting at your next opportunityRachel Roberts, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:31,141 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:31,166 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:31,188 - ✅ similarity: 0.5955\n", + "2025-06-17 14:15:31,189 - Sender: QUEZADA, FRANCES [ S0186530] -> the retrieved similar message : Hi Dr. Griffith,I need a refill on the gabapentin. The pharmacy says they cancelled the refills as too much time has passed from when I first picked it up, which was earlier this year. It’s not in my med list anymore either. I only started taking it in October after our last visit. Thank you!\n", + "2025-06-17 14:15:31,190 - Provider's response to this similar message: I sent it in the other day\n", + "2025-06-17 14:15:31,193 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:31,198 - Thread ID: 251197613\n", + "--------------------------------------------------------------------------------\n", + "idx: 210331\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Griffith,I need a refill on the gabapentin. The pharmacy says they cancelled the refills as too much time has passed from when I first picked it up, which was earlier this year. It’s not in my med list anymore either. I only started taking it in October after our last visit. Thank you!\n", + "----------------------------------------\n", + "Provider Response by GRIFFITH, DAVID LUNDSTEDT:\n", + "I sent it in the other day\n", + "----------------------------------------\n", + "2025-06-17 14:15:31,199 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:31,413 - Original Message:\n", + "2025-06-17 14:15:31,414 - original_query_message: Tried to schedule appointment with Adi Vaze and cards clinic needs a referral from you please. \n", + "2025-06-17 14:15:33,035 - Query Parameters:\n", + "2025-06-17 14:15:33,038 - query_message: Hi, I’ve been having on-and-off chest discomfort and occasional shortness of breath, especially when I exercise or after stressful days. I wanted to get checked out by a cardiologist—Dr. Adi Vaze was recommended to me—but when I called their office, they said I’d need a referral from you first. Could you please help me with that? Also, if there are any other heart-related tests or specific evaluations you think would be helpful before I see the specialist, just let me know. Thanks so much!\n", + "2025-06-17 14:15:33,040 - receiver: TIM, LESLIE S\n", + "2025-06-17 14:15:33,041 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS EMERYVILLE\n", + "2025-06-17 14:15:33,044 - specialty: Primary Care\n", + "2025-06-17 14:15:33,878 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:33,879 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:33,879 - ✅ similarity: 0.6576\n", + "2025-06-17 14:15:33,880 - Sender: WALLACE, ILVANIA [ S0207428] -> the retrieved similar message : I would be happy to have a referral to a cardiologist at Stanford in Emeryville many thanks! Happy Holidays. \n", + "2025-06-17 14:15:33,882 - Provider's response to this similar message: Hi CynthiaWe have created the referral to Stanford Emeryville 5800 Hollis Clinic . Please allow 2 business days for them to reach out to you. If they do not reach out to you please call 510806 2100 to schedule. Warm regards,Dr Tim \n", + "2025-06-17 14:15:33,883 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:33,893 - Thread ID: 253992068\n", + "--------------------------------------------------------------------------------\n", + "idx: 82067\n", + "Subject: RE: message from Dr Tim\n", + "----------------------------------------\n", + "Date Sent: 2024-12-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I would be happy to have a referral to a cardiologist at Stanford in Emeryville many thanks! Happy Holidays. \n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "Hi CynthiaWe have created the referral to Stanford Emeryville 5800 Hollis Clinic . Please allow 2 business days for them to reach out to you. If they do not reach out to you please call 510806 2100 to schedule. Warm regards,Dr Tim \n", + "----------------------------------------\n", + "2025-06-17 14:15:33,894 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:33,895 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:33,909 - ✅ similarity: 0.6531\n", + "2025-06-17 14:15:33,923 - Sender: RODRIGUEZ, KENDRA [ S0317745] -> the retrieved similar message : Hi Dr Tim,For the pulmonology specialist referral, I would like to see Dr Arthur Sung at the Stanford Chest Clinic in Emeryville, please. Thank you,Tina\n", + "2025-06-17 14:15:33,925 - Provider's response to this similar message: Hi TinaWe have created the referral to Stanford Emeryville 5800 Hollis Clinic . Please allow 2 business days for them to reach out to you. If they do not reach out to you please call 510806 2100 to schedule. Best-Dr Tim\n", + "2025-06-17 14:15:33,925 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:33,930 - Thread ID: 252736130\n", + "--------------------------------------------------------------------------------\n", + "idx: 135115\n", + "Subject: RE: Message from Dr. Tim\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Tim,For the pulmonology specialist referral, I would like to see Dr Arthur Sung at the Stanford Chest Clinic in Emeryville, please. Thank you,Tina\n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "Hi TinaWe have created the referral to Stanford Emeryville 5800 Hollis Clinic . Please allow 2 business days for them to reach out to you. If they do not reach out to you please call 510806 2100 to schedule. Best-Dr Tim\n", + "----------------------------------------\n", + "idx: 135114\n", + "Subject: RE: Message from Dr. Tim\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Sorry I missed your call. Are you able to call back? If not, I’ll get back to you about referral. \n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:15:33,931 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:33,932 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:33,934 - ✅ similarity: 0.6342\n", + "2025-06-17 14:15:33,936 - Sender: KOHLI, SABRINA [ S0383270] -> the retrieved similar message : Dear Dr Tim,I saw Dr McDonald, Sutter Cardiology, today. Although I am feeling better, my EKG showed no change and he suggested I have an aortic valve replacement in the next few months. I have an appt Nov 19 with Dr Kadakia, who will order tests and make a recommendation.Another issue. I am having more shoulder pain and you told me to call to schedule an appt with Dr Qatu. I called Oct 4. I was told someone would call me back. Nothing! I called again last week. Have not received a call back. Called again today and was told I need a referral. They keep saying Dr Telusca is orchestrating my medical care. I saw her on a video call once for 10 minutes as a follow up after an RFA of Dr Rasouli, who was just filling in. I was unimpressed with Dr Telusca and do not want her to be involved with my care ever. I wrote her a “nice” letter and she said she is transferring my chart to you. So please make a referral to Dr Qatu. Thank you. Stanford’s bureaucracy disgusts me.Marcia\n", + "2025-06-17 14:15:33,937 - Provider's response to this similar message: Hi MarciaWe have created a referral to Dr Qatu.Warm regards,Dr Tim \n", + "2025-06-17 14:15:33,938 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:34,002 - Thread ID: 250359914\n", + "--------------------------------------------------------------------------------\n", + "idx: 253505\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you, Dr Tim.\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 253504\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dear Dr Tim,I saw Dr McDonald, Sutter Cardiology, today. Although I am feeling better, my EKG showed no change and he suggested I have an aortic valve replacement in the next few months. I have an appt Nov 19 with Dr Kadakia, who will order tests and make a recommendation.Another issue. I am having more shoulder pain and you told me to call to schedule an appt with Dr Qatu. I called Oct 4. I was told someone would call me back. Nothing! I called again last week. Have not received a call back. Called again today and was told I need a referral. They keep saying Dr Telusca is orchestrating my medical care. I saw her on a video call once for 10 minutes as a follow up after an RFA of Dr Rasouli, who was just filling in. I was unimpressed with Dr Telusca and do not want her to be involved with my care ever. I wrote her a “nice” letter and she said she is transferring my chart to you. So please make a referral to Dr Qatu. Thank you. Stanford’s bureaucracy disgusts me.Marcia\n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "Hi MarciaWe have created a referral to Dr Qatu.Warm regards,Dr Tim \n", + "----------------------------------------\n", + "2025-06-17 14:15:34,057 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:34,058 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:34,059 - ✅ similarity: 0.6205\n", + "2025-06-17 14:15:34,061 - Sender: SPINNER, SAMANTHA [ S0341995] -> the retrieved similar message : Yazmin, thank you for the response.Yes please ..- I would like to request that a referral be faxed to Dr. Justin Dumouchel (pulmonologist) in Oakland so I can follow up on results of two CTs taken on May 24 and June 17 that indicated a pneumothorax and/or ‘mild atelectasis’. - The images and CT scan reports are on Epic.- Dr. Dumouchel's office requires that chart notes accompany the referral request. Please fax referral + chart notes stat directly to: Attn: Dr. Justin DumouchelFax. 844.852.1277Sincerely, kathie\n", + "2025-06-17 14:15:34,062 - Provider's response to this similar message: Hi KathleenHappy to fax over a referral but I do not think we have any chart notes for this issue. Would you like to make at least a video visit appointment so that we could create some chart notes? Or do you just want us to create a referral?If you want a video visit, either call us or go to the My Health app to scheduleWe have moved!On 6/17/2024, we moved across the street to a new clinic at 6121 Hollis Street, Suite 400Emeryville,California 94608We have a new phone number .510 266 5400Validated Parking is in a parking garage at 6100 Horton, which is just behind the new office.If you turn into the parking area in front of 6121 Hollis, proceed through the parking area and follow the arrows which lead you to Horton Street. Turn right. Park in the 6100 Horton garage. It is the last building on the block, right across the street from the post office.Very limited valet parking is available at $7/ hour at the 6121 location. Please arrive 30 minutes early to allow for parking, then walking a few minutes to the office, check in and rooming. If you already have an appointment scheduled, the new clinic will have your appointment, at the same time and same day with the same provider for which the appointment was originally scheduled. Warm regards,Dr Tim \n", + "2025-06-17 14:15:34,062 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:34,066 - Thread ID: 250201849\n", + "--------------------------------------------------------------------------------\n", + "idx: 261435\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Kendra:Dr. Dumouchel's office did not receive the referral.1. Would you be kind enough to re-fax the referral and chart notes to the following number:Fax. 844.852.1277 2. Please also send me a copy via this portal. Since they seem very disorganized and cannot find the referral, I will have to personally drop the document(s) off as a secure back up, since it is a time sensitive issue.Thank you so much and my apologies to have ask you to revisit this.Sincerely, Kathie McWilliams\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Kathleen McWilliams,I'm sorry to hear they have not received the referral. Yes, we will re-fax the referral over. You may also view the referral in the \"Letters\" tab on your MyHealth account. Please let us know if there's anything else we can assist with and let me know if you have any further trouble with this. Thank you and take care! Kindest regards,Kendra Rodriguez, MA\n", + "----------------------------------------\n", + "idx: 261434\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Kendra!\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 261433\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tim.....Thank you.I scheduled a brief video visit with you at 4:40pm on 11/15/24 for a quick update.Please go ahead and send the pulmonologist referral to Dr. Justin Dumouchel (fax 844-852-1277). I will follow up w/Dr.Khan on the chart notes. Epic CT results may be sufficient as well.Talk to you tomorrow.Sincerely, kathie\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Kathleen McWilliams,The referral has been sent to Dr. Justin Dumouchel per your request. Thank you.Kindest regards,Kendra Rodriguez, MA\n", + "----------------------------------------\n", + "idx: 261432\n", + "Subject: RE:Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-12 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yazmin, thank you for the response.Yes please ..- I would like to request that a referral be faxed to Dr. Justin Dumouchel (pulmonologist) in Oakland so I can follow up on results of two CTs taken on May 24 and June 17 that indicated a pneumothorax and/or ‘mild atelectasis’. - The images and CT scan reports are on Epic.- Dr. Dumouchel's office requires that chart notes accompany the referral request. Please fax referral + chart notes stat directly to: Attn: Dr. Justin DumouchelFax. 844.852.1277Sincerely, kathie\n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "Hi KathleenHappy to fax over a referral but I do not think we have any chart notes for this issue. Would you like to make at least a video visit appointment so that we could create some chart notes? Or do you just want us to create a referral?If you want a video visit, either call us or go to the My Health app to scheduleWe have moved!On 6/17/2024, we moved across the street to a new clinic at 6121 Hollis Street, Suite 400Emeryville,California 94608We have a new phone number .510 266 5400Validated Parking is in a parking garage at 6100 Horton, which is just behind the new office.If you turn into the parking area in front of 6121 Hollis, proceed through the parking area and follow the arrows which lead you to Horton Street. Turn right. Park in the 6100 Horton garage. It is the last building on the block, right across the street from the post office.Very limited valet parking is available at $7/ hour at the 6121 location. Please arrive 30 minutes early to allow for parking, then walking a few minutes to the office, check in and rooming. If you already have an appointment scheduled, the new clinic will have your appointment, at the same time and same day with the same provider for which the appointment was originally scheduled. Warm regards,Dr Tim \n", + "----------------------------------------\n", + "idx: 261431\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Tim.I had two CTs on May 24 and June 17 that indicated a pneumothorax and/or ‘mild atelectasis’.The results are posted on Epic. I have also had an unresolved cough for the past 3 months. I have no shortness of breath, excellent oxygen saturation (all above 94%) and am very active (cycling over 100 miles/week).Would you be able to fax a request with chart notes to the following pulmonologist so that I can follow up?Dr. Justin DumouchelFax. 844.852.1277Unfortunately, his office tells me they are scheduling appointments for late February 2025.Sincerely, kathie mcwilliams\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hello Kathleen, Thank you for reaching out. Are you requesting a referral to Dr. Justin Dumouchel ? Yazmin Rodriguez, MA, 11/11/2024, 9:29 AM\n", + "----------------------------------------\n", + "2025-06-17 14:15:34,067 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:34,068 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:34,069 - ✅ similarity: 0.6117\n", + "2025-06-17 14:15:34,070 - Sender: SPINNER, SAMANTHA [ S0341995] -> the retrieved similar message : Hi Adam, This is Samantha Spinner PA responding on behalf of your PCP. I would recommend scheduling an appointment with any available clinician in our office first to start the evaluation for the more frequent PVCs. It can sometimes take a few weeks to get in with Cardiology, so this will be the fastest way to get this workup started. Please schedule an appointment with any available clinician via the \"Appointments\" tab on MyHealth or by calling the office at (510) 266-5400. Appointment should be in person so we can listen to your heart and perhaps get an EKG. If your palpitations worsen or you develop any chest pain, shortness of breath, or dizziness, do not hesitate to go to the ER. Take care, Samantha Spinner, PA\n", + "2025-06-17 14:15:34,071 - Provider's response to this similar message: Hi AdamYou have a PPO . Suggest you stick with Dr Kang at his new officeAnd just give them a call.I created the referral.Let us know if any problems making the appointmentIf you cannot get into be seen, please CALL our office so we can see you and start the evaluation.Dr Kang365 Hawthorne AvenueSuite 201Oakland, CA 94609510-204-8383We have moved!On 6/17/2024, we moved across the street to a new clinic at 6121 Hollis Street, Suite 400Emeryville,California 94608We have a new phone number .510 266 5400Validated Parking is in a parking garage at 6100 Horton, which is just behind the new office.If you turn into the parking area in front of 6121 Hollis, proceed through the parking area and follow the arrows which lead you to Horton Street. Turn right. Park in the 6100 Horton garage. It is the last building on the block, right across the street from the post office.Very limited valet parking is available at $7/ hour at the 6121 location. Please arrive 30 minutes early to allow for parking, then walking a few minutes to the office, check in and rooming. If you already have an appointment scheduled, the new clinic will have your appointment, at the same time and same day with the same provider for which the appointment was originally scheduled. Warm regards,Dr Tim \n", + "2025-06-17 14:15:34,072 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:34,098 - Thread ID: 254321117\n", + "--------------------------------------------------------------------------------\n", + "idx: 68164\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, 1/2 at 9:20am works.Thank you,Adam\n", + "----------------------------------------\n", + "Provider Response by TRAN, CHRISTINA:\n", + "Hi Adam,Thanks for confirming. I scheduled the appointmentChristina \n", + "----------------------------------------\n", + "idx: 68163\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-31 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I called his office and looks like he is taking time off to continue his education and first available appt is March or May. Let me know if you have someone else that you recommend in Oakland or Walnut Creek.Happy New Year.\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 68162\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Adam, This is Samantha Spinner PA responding on behalf of your PCP. I would recommend scheduling an appointment with any available clinician in our office first to start the evaluation for the more frequent PVCs. It can sometimes take a few weeks to get in with Cardiology, so this will be the fastest way to get this workup started. Please schedule an appointment with any available clinician via the \"Appointments\" tab on MyHealth or by calling the office at (510) 266-5400. Appointment should be in person so we can listen to your heart and perhaps get an EKG. If your palpitations worsen or you develop any chest pain, shortness of breath, or dizziness, do not hesitate to go to the ER. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "Provider Response by TIM, LESLIE S:\n", + "Hi AdamYou have a PPO . Suggest you stick with Dr Kang at his new officeAnd just give them a call.I created the referral.Let us know if any problems making the appointmentIf you cannot get into be seen, please CALL our office so we can see you and start the evaluation.Dr Kang365 Hawthorne AvenueSuite 201Oakland, CA 94609510-204-8383We have moved!On 6/17/2024, we moved across the street to a new clinic at 6121 Hollis Street, Suite 400Emeryville,California 94608We have a new phone number .510 266 5400Validated Parking is in a parking garage at 6100 Horton, which is just behind the new office.If you turn into the parking area in front of 6121 Hollis, proceed through the parking area and follow the arrows which lead you to Horton Street. Turn right. Park in the 6100 Horton garage. It is the last building on the block, right across the street from the post office.Very limited valet parking is available at $7/ hour at the 6121 location. Please arrive 30 minutes early to allow for parking, then walking a few minutes to the office, check in and rooming. If you already have an appointment scheduled, the new clinic will have your appointment, at the same time and same day with the same provider for which the appointment was originally scheduled. Warm regards,Dr Tim \n", + "----------------------------------------\n", + "idx: 68161\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Tim,In the past month I’ve noticed the PVCs that I had previously (and subsided in 2019) have returned and are happening frequently. I previously saw Dr Kang, but appears he is no longer within Stanford network. Do you have someone you would recommend and give me a referral?Thank you, hope you are enjoying the holidays and wish you a happy new year.-Adam\n", + "----------------------------------------\n", + "Provider Response by SMP PRIMARYCAREEV MYHEALTH POOL:\n", + "Hi Adam, This is Samantha Spinner PA responding on behalf of your PCP. I would recommend scheduling an appointment with any available clinician in our office first to start the evaluation for the more frequent PVCs. It can sometimes take a few weeks to get in with Cardiology, so this will be the fastest way to get this workup started. Please schedule an appointment with any available clinician via the \"Appointments\" tab on MyHealth or by calling the office at (510) 266-5400. Appointment should be in person so we can listen to your heart and perhaps get an EKG. If your palpitations worsen or you develop any chest pain, shortness of breath, or dizziness, do not hesitate to go to the ER. Take care, Samantha Spinner, PA\n", + "----------------------------------------\n", + "2025-06-17 14:15:34,100 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:34,336 - Original Message:\n", + "2025-06-17 14:15:34,338 - original_query_message: Hello! I recently saw Dr. Chaudhry for my annual physical and she mentioned I am due for a tetanus shot. Is this the same as a tdap shot? Am I due for any other vaccines, or coming up on being due, at this time? Additionally, if I plan to become pregnant this year, will I need to redo any vaccines once pregnant? Thank you! \n", + "2025-06-17 14:15:35,914 - Query Parameters:\n", + "2025-06-17 14:15:35,916 - query_message: Hi there! I had my regular check-up with Dr. Chen last week and she suggested that I should get caught up on my vaccines, especially the tetanus one. I get a little confused about all the different vaccines—is the tetanus vaccine the same as the one that covers whooping cough and diphtheria, or are those given separately? Also, I’m in my early 30s and thinking about starting a family soon, so I want to make sure I’m up to date on anything I might need before getting pregnant. Are there any vaccinations I should get ahead of time, or any I should avoid if I become pregnant? It’s been quite a few years since my last shots, so I want to make sure I’m not missing anything important. Thanks so much for your help!\n", + "2025-06-17 14:15:35,917 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:15:35,918 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:15:35,920 - specialty: Internal Medicine\n", + "2025-06-17 14:15:38,258 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:38,260 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:38,261 - ✅ similarity: 0.8080\n", + "2025-06-17 14:15:38,262 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello! I recently saw Dr. Chaudhry for my annual physical and she mentioned I am due for a tetanus shot. Is this the same as a tdap shot? Am I due for any other vaccines, or coming up on being due, at this time? Additionally, if I plan to become pregnant this year, will I need to redo any vaccines once pregnant? Thank you! \n", + "2025-06-17 14:15:38,263 - Provider's response to this similar message: Hi Ms. Powerman,You are due for Tdap if you haven't received it yet (renewed every 10 years), this season's 2024-2025 flu and covid vaccines. If you'd like to schedule a nurse visit, please call our office at 650-498-6500 At your last visit with Dr. Chaudhry, she advised:\"1. Annual examination.Her last Pap smear, conducted on 07/30/2024, yielded negative results. The high-risk HPV test was also negative. She is currently 32 years old, thus mammogram is not required at this time. A comprehensive panel of laboratory tests will be ordered, including a vitamin D level assessment. She has been advised to verify her tetanus vaccination status and inform us accordingly. She has declined the influenza vaccine at this time and also the COVID booster.She was encouraged to get annual eye and dental exam.\" Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:38,265 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:38,273 - Thread ID: 253341439\n", + "--------------------------------------------------------------------------------\n", + "idx: 112200\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello! I recently saw Dr. Chaudhry for my annual physical and she mentioned I am due for a tetanus shot. Is this the same as a tdap shot? Am I due for any other vaccines, or coming up on being due, at this time? Additionally, if I plan to become pregnant this year, will I need to redo any vaccines once pregnant? Thank you! \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Powerman,You are due for Tdap if you haven't received it yet (renewed every 10 years), this season's 2024-2025 flu and covid vaccines. If you'd like to schedule a nurse visit, please call our office at 650-498-6500 At your last visit with Dr. Chaudhry, she advised:\"1. Annual examination.Her last Pap smear, conducted on 07/30/2024, yielded negative results. The high-risk HPV test was also negative. She is currently 32 years old, thus mammogram is not required at this time. A comprehensive panel of laboratory tests will be ordered, including a vitamin D level assessment. She has been advised to verify her tetanus vaccination status and inform us accordingly. She has declined the influenza vaccine at this time and also the COVID booster.She was encouraged to get annual eye and dental exam.\" Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:38,274 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:38,275 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:38,276 - ✅ similarity: 0.7122\n", + "2025-06-17 14:15:38,278 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr.Waltuch,My daughter is about to have a baby. I am scheduled for a flu shot tomorrow. Can I please check if I am due for my tetanus immunization? Can you let me know if I need that too and if I could do them at the same time? Thanks so much.Nancy \n", + "2025-06-17 14:15:38,279 - Provider's response to this similar message: Good morning Nancy,Early congratulations on becoming a grandmother!There are two vaccine formulations - Td (without the pertussis) and TDaP (with the pertussis = whooping cough). TDaP should be given at least once as an adult. All the ones after that can be Td, unless one will be having close contact with newborns/infants.For healthy adults, we generally recommend getting the Td/TDaP every 10 years. If you will have close contact with infants/newborns, and your last TDaP was more than 5 years ago, then you should get it now.I see you had received the TDaP (tetanus, diphtheria, & pertussis) vaccine on 2/2/2007 and Td vaccine on 10/22/19.Thus, because you will be having contact with a newborn soon, you should get your TDaP vaccine now. Medicare only covers TDaP at the pharmacy, not in the office, so I recommend you go to any local one to get yours (Walgreens, CVS, Safeway, Rite-Aid, Costco, etc).Best regards,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:15:38,280 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:38,284 - Thread ID: 248767701\n", + "--------------------------------------------------------------------------------\n", + "idx: 335118\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dana, Can I please cancel my flu shot today? I will get both the flu and tetanus together at the pharmacy.Thanks \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Nancy,OK, I have canceled your Flu Clinic appointment!Take care,Dana\n", + "----------------------------------------\n", + "idx: 335117\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-24 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. Can they be done at the same time?\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hello Nancy,Yes, the flu shot and the TDaP shot can be given at the same time (In different arms or at least 1\" apart on the same arm).Best regards,Dana\n", + "----------------------------------------\n", + "idx: 335116\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr.Waltuch,My daughter is about to have a baby. I am scheduled for a flu shot tomorrow. Can I please check if I am due for my tetanus immunization? Can you let me know if I need that too and if I could do them at the same time? Thanks so much.Nancy \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good morning Nancy,Early congratulations on becoming a grandmother!There are two vaccine formulations - Td (without the pertussis) and TDaP (with the pertussis = whooping cough). TDaP should be given at least once as an adult. All the ones after that can be Td, unless one will be having close contact with newborns/infants.For healthy adults, we generally recommend getting the Td/TDaP every 10 years. If you will have close contact with infants/newborns, and your last TDaP was more than 5 years ago, then you should get it now.I see you had received the TDaP (tetanus, diphtheria, & pertussis) vaccine on 2/2/2007 and Td vaccine on 10/22/19.Thus, because you will be having contact with a newborn soon, you should get your TDaP vaccine now. Medicare only covers TDaP at the pharmacy, not in the office, so I recommend you go to any local one to get yours (Walgreens, CVS, Safeway, Rite-Aid, Costco, etc).Best regards,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:15:38,285 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:38,286 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:38,287 - ✅ similarity: 0.6895\n", + "2025-06-17 14:15:38,287 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello -My younger daughter is expecting her first child sometime in late February of 2025. Her OBGYN advised her that whoever is going to be close to the baby after he is born should be up to date on the followig vaccinations: most recent COVID booster, latest Flu, RSV, and TDAP.I have an appointment at CVS go get the latest COVID booster, and flu and RSV vaccinations. I don't know when I last had a TDAP vaccination. Could you check my vaccination records and let me know if I have an up to date TDAP vaccination or need to get a new one?Thank you,Ross\n", + "2025-06-17 14:15:38,288 - Provider's response to this similar message: Hi Ross,That is exciting - congratulations!Your tdap is technically up to date but you are going to be due in February 2025 -- it won't hurt to get updated now given your new grandchild coming soon. Go ahead and get your updated Tdap, can be done at any local pharmacy. If you have any further questions, please let us know.Best,Courtney NP\n", + "2025-06-17 14:15:38,289 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:38,293 - Thread ID: 252888259\n", + "--------------------------------------------------------------------------------\n", + "idx: 129030\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Courtney - thank you for the quick reply and recommendation.Ross\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "No response\n", + "----------------------------------------\n", + "idx: 129029\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello -My younger daughter is expecting her first child sometime in late February of 2025. Her OBGYN advised her that whoever is going to be close to the baby after he is born should be up to date on the followig vaccinations: most recent COVID booster, latest Flu, RSV, and TDAP.I have an appointment at CVS go get the latest COVID booster, and flu and RSV vaccinations. I don't know when I last had a TDAP vaccination. Could you check my vaccination records and let me know if I have an up to date TDAP vaccination or need to get a new one?Thank you,Ross\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ross,That is exciting - congratulations!Your tdap is technically up to date but you are going to be due in February 2025 -- it won't hurt to get updated now given your new grandchild coming soon. Go ahead and get your updated Tdap, can be done at any local pharmacy. If you have any further questions, please let us know.Best,Courtney NP\n", + "----------------------------------------\n", + "2025-06-17 14:15:38,294 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:38,295 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:38,296 - ✅ similarity: 0.6867\n", + "2025-06-17 14:15:38,296 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Bennit, I hope you’re well.My sister is scheduled to deliver her baby on 11/5 and it sounds like in order for me to be around the baby I’ll need to be up to date on a couple of shots. I’m planning to get my Covid booster and flu shot at my local Walgreens this Thursday.- Given that I had Covid back in mid June, am I eligible for a booster? - I’m pretty sure I’m up to date on my tetanus shot but wanted to verify with you as that’s another one she mentioned I’d need to have.Thanks!\n", + "2025-06-17 14:15:38,297 - Provider's response to this similar message: Good morning Caitlin,Early congratulations on becoming an aunt!We recommend waiting 3 months from when patients first tested positive to get the COVID vaccine, as the recent infection provides some immunity. Since it's been over 3 months, you are eligible for the newest COVID vaccine now. There are two vaccine formulations for tetanus - Td (without the pertussis = whooping cough) and TDaP (with the pertussis). TDaP should be given at least once as an adult. All the ones after that can be Td, unless one will be having close contact with newborns/infants.For healthy adults, we generally recommend getting the Td/TDaP every 10 years. If you will have close contact with infants/newborns, and your last TDaP was more than 5 years ago, then you should get it now.I see your last TDaP (tetanus, diphtheria, and pertussis) vaccine was on 6/23/14, so you are due. You can get your TDaP vaccine at Walgreens this Thursday with your flu & COVID vaccines if you'd like, or you can get it on another day. Let us know if you have any further questions!Take care,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "2025-06-17 14:15:38,297 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:38,300 - Thread ID: 248645756\n", + "--------------------------------------------------------------------------------\n", + "idx: 340391\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Bennit, I hope you’re well.My sister is scheduled to deliver her baby on 11/5 and it sounds like in order for me to be around the baby I’ll need to be up to date on a couple of shots. I’m planning to get my Covid booster and flu shot at my local Walgreens this Thursday.- Given that I had Covid back in mid June, am I eligible for a booster? - I’m pretty sure I’m up to date on my tetanus shot but wanted to verify with you as that’s another one she mentioned I’d need to have.Thanks!\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Good morning Caitlin,Early congratulations on becoming an aunt!We recommend waiting 3 months from when patients first tested positive to get the COVID vaccine, as the recent infection provides some immunity. Since it's been over 3 months, you are eligible for the newest COVID vaccine now. There are two vaccine formulations for tetanus - Td (without the pertussis = whooping cough) and TDaP (with the pertussis). TDaP should be given at least once as an adult. All the ones after that can be Td, unless one will be having close contact with newborns/infants.For healthy adults, we generally recommend getting the Td/TDaP every 10 years. If you will have close contact with infants/newborns, and your last TDaP was more than 5 years ago, then you should get it now.I see your last TDaP (tetanus, diphtheria, and pertussis) vaccine was on 6/23/14, so you are due. You can get your TDaP vaccine at Walgreens this Thursday with your flu & COVID vaccines if you'd like, or you can get it on another day. Let us know if you have any further questions!Take care,Dana Lee, RNRegistered Nurse for Internal Medicine Drs. Bennitt, Fisher, Kuo, & WaltuchMenlo Medical Clinic 1300 Crane St.Menlo Park, CA 94025(650)498-6500 Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.\n", + "----------------------------------------\n", + "2025-06-17 14:15:38,301 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:38,301 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:38,302 - ✅ similarity: 0.6837\n", + "2025-06-17 14:15:38,303 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi All,I know vaccinations are reviewed during the annual physical (which I had earlier this year), but I wanted to follow-up and double check that there aren’t any vaccinations I should get updated (even if they are updated a little early). I recently received my flu and Covid booster, but wanted to see if Dr. Kuo thought there were any other vaccines I should get. Thanks!Best,Caroline\n", + "2025-06-17 14:15:38,304 - Provider's response to this similar message: Hi Caroline,Thank you for your response. I am reviewing your chart and immunization history -- looks like with your recent flu vaccine and covid-19 shots you are considered up to date at this time. If you plan for any international travel we may recommend additional vaccines based on travel location/duration, but otherwise you'll be next due for vaccines with a flu/covid-19 shots next Fall!If you have any further questions, please let us know.All the best,Courtney, NP-BC, MSNFor lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html\n", + "2025-06-17 14:15:38,304 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:38,306 - Thread ID: 250374311\n", + "--------------------------------------------------------------------------------\n", + "idx: 252750\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi All,I know vaccinations are reviewed during the annual physical (which I had earlier this year), but I wanted to follow-up and double check that there aren’t any vaccinations I should get updated (even if they are updated a little early). I recently received my flu and Covid booster, but wanted to see if Dr. Kuo thought there were any other vaccines I should get. Thanks!Best,Caroline\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Caroline,Thank you for your response. I am reviewing your chart and immunization history -- looks like with your recent flu vaccine and covid-19 shots you are considered up to date at this time. If you plan for any international travel we may recommend additional vaccines based on travel location/duration, but otherwise you'll be next due for vaccines with a flu/covid-19 shots next Fall!If you have any further questions, please let us know.All the best,Courtney, NP-BC, MSNFor lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html\n", + "----------------------------------------\n", + "2025-06-17 14:15:38,307 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:38,739 - Original Message:\n", + "2025-06-17 14:15:38,739 - original_query_message: Good morning,Over the last month i have had a lot of pain in my left elbow. At first I thought it was tendinitis but I took a rest from working out and it became worse. I think it might be Ulnar Nerve Entrapment. I think I have an appointment in January so should I just wait until then to have you look at it or try to come in sooner?Thank you,Darren\n", + "2025-06-17 14:15:40,204 - Query Parameters:\n", + "2025-06-17 14:15:40,205 - query_message: Hi there,I’ve been dealing with a pretty uncomfortable ache around my left elbow for the past several weeks. At first, I figured it was just soreness from playing a lot of tennis, so I took a break, but strangely enough, the pain has been getting more intense, not better. Sometimes I even feel a bit of tingling and numbness going down my arm toward my pinky and ring finger.I have an appointment scheduled in a couple of months, but now I’m starting to worry if I should try to be seen sooner in case it’s something nerve-related and not just a muscle thing. Do you think I should wait for my scheduled check-up or try to get in earlier? I just don’t want to make things worse by waiting too long.Thanks for your advice! Megan\n", + "2025-06-17 14:15:40,208 - receiver: UMG SAMARITAN MYHEALTH POOL\n", + "2025-06-17 14:15:40,209 - department: INTERNAL MEDICINE SAMARITAN SAN JOSE\n", + "2025-06-17 14:15:40,210 - specialty: Internal Medicine\n", + "2025-06-17 14:15:41,727 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:41,729 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:41,730 - ✅ similarity: 0.7833\n", + "2025-06-17 14:15:41,732 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning,Over the last month i have had a lot of pain in my left elbow. At first I thought it was tendinitis but I took a rest from working out and it became worse. I think it might be Ulnar Nerve Entrapment. I think I have an appointment in January so should I just wait until then to have you look at it or try to come in sooner?Thank you,Darren\n", + "2025-06-17 14:15:41,734 - Provider's response to this similar message: Hi Darren, If your pain is severe, we can schedule a sooner visit with Dr. Oba for further evaluation. Let me know what you'd prefer and we can assist with scheduling a visit. Sincerely,Jacqueline Gonzalez, MA, 12/12/2024, 8:28 AMSamaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "2025-06-17 14:15:41,737 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:41,742 - Thread ID: 252947862\n", + "--------------------------------------------------------------------------------\n", + "idx: 126853\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning,Over the last month i have had a lot of pain in my left elbow. At first I thought it was tendinitis but I took a rest from working out and it became worse. I think it might be Ulnar Nerve Entrapment. I think I have an appointment in January so should I just wait until then to have you look at it or try to come in sooner?Thank you,Darren\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Darren, If your pain is severe, we can schedule a sooner visit with Dr. Oba for further evaluation. Let me know what you'd prefer and we can assist with scheduling a visit. Sincerely,Jacqueline Gonzalez, MA, 12/12/2024, 8:28 AMSamaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "----------------------------------------\n", + "2025-06-17 14:15:41,744 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:41,746 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:41,747 - ✅ similarity: 0.6788\n", + "2025-06-17 14:15:41,750 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Shabab,I hope you are well.Unfortunately, I have been having physical complaints regarding my upper left arm for quite some time (2 months) and it appears to not resolve itself. I am currently also experiencing tingling sensations and would like to have it looked at. What is the best way to proceed? I'd schedule at a Physical Therapy office, but have heard there are long wait times - is that true? Can you recommend a particular office, preferably in the vicinity of Palo Alto? And does it make sense to schedule an appointment with you to have it looked at?Best regards,Anton\n", + "2025-06-17 14:15:41,751 - Provider's response to this similar message: Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "2025-06-17 14:15:41,752 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:41,755 - Thread ID: 255115058\n", + "--------------------------------------------------------------------------------\n", + "idx: 28913\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Shabab,I hope you are well.Unfortunately, I have been having physical complaints regarding my upper left arm for quite some time (2 months) and it appears to not resolve itself. I am currently also experiencing tingling sensations and would like to have it looked at. What is the best way to proceed? I'd schedule at a Physical Therapy office, but have heard there are long wait times - is that true? Can you recommend a particular office, preferably in the vicinity of Palo Alto? And does it make sense to schedule an appointment with you to have it looked at?Best regards,Anton\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "----------------------------------------\n", + "2025-06-17 14:15:41,756 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:41,756 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:41,757 - ✅ similarity: 0.6433\n", + "2025-06-17 14:15:41,757 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : I have swelling over my right elbow. No pain. I have also developed significant swelling in my left ankle and foot. Should I be seen?Dennis Bencala\n", + "2025-06-17 14:15:41,758 - Provider's response to this similar message: Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "2025-06-17 14:15:41,758 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:41,761 - Thread ID: 255659807\n", + "--------------------------------------------------------------------------------\n", + "idx: 6006\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have swelling over my right elbow. No pain. I have also developed significant swelling in my left ankle and foot. Should I be seen?Dennis Bencala\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "----------------------------------------\n", + "2025-06-17 14:15:41,761 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:41,762 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:41,762 - ✅ similarity: 0.6280\n", + "2025-06-17 14:15:41,763 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Erica,I read your x-ray comments. Have couple questions . Do you think we need to check my left shoulder or rotator cuff with an MRI? I am ok if you think therapy is the best for this as it just flared up on me after lifting.i am getting less pain in the morning these days so rest seems to be helping. If there is a way to start therapy before we meet that would be great.Can we schedule an MRI for my right knee. It is catching more and more and I did loads of therapy after my ACL and meniscus surgeries and I would like to have better imaging to see what might be causing it because it is more than arthritis. It actually caught on me as I was walking out of the xray room. Plus my deductible has been met and I feel we are going to have to get it sooner than later. Please let me know.Thanks!\n", + "2025-06-17 14:15:41,763 - Provider's response to this similar message: Hi Garrett, I'm sorry, I thought I had placed a referral to physical therapy already. I just now placed a referral to South Valley Physical Therapy to address the chronic left shoulder and right knee pain.I also ordered an MRI of both areas since your clinical exam seemed to suggest rotator cuff and possible meniscus injury. I sent the orders to Stanford. They'll contact you to schedule that.Best,Erica TranNurse PractitionerSamaritan Internal Medicine\n", + "2025-06-17 14:15:41,764 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:41,766 - Thread ID: 252407774\n", + "--------------------------------------------------------------------------------\n", + "idx: 148963\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Erica,I read your x-ray comments. Have couple questions . Do you think we need to check my left shoulder or rotator cuff with an MRI? I am ok if you think therapy is the best for this as it just flared up on me after lifting.i am getting less pain in the morning these days so rest seems to be helping. If there is a way to start therapy before we meet that would be great.Can we schedule an MRI for my right knee. It is catching more and more and I did loads of therapy after my ACL and meniscus surgeries and I would like to have better imaging to see what might be causing it because it is more than arthritis. It actually caught on me as I was walking out of the xray room. Plus my deductible has been met and I feel we are going to have to get it sooner than later. Please let me know.Thanks!\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hi Garrett, I'm sorry, I thought I had placed a referral to physical therapy already. I just now placed a referral to South Valley Physical Therapy to address the chronic left shoulder and right knee pain.I also ordered an MRI of both areas since your clinical exam seemed to suggest rotator cuff and possible meniscus injury. I sent the orders to Stanford. They'll contact you to schedule that.Best,Erica TranNurse PractitionerSamaritan Internal Medicine\n", + "----------------------------------------\n", + "2025-06-17 14:15:41,767 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:41,767 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:41,768 - ✅ similarity: 0.6093\n", + "2025-06-17 14:15:41,768 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. ,I hope you had a nice holiday. I’ve been having some arching pain in three of my fingers on my right hand. The pain where the finger meets the palm. It hurts to stretch the three fingers. Any thoughts?\n", + "2025-06-17 14:15:41,769 - Provider's response to this similar message: Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "2025-06-17 14:15:41,769 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:41,773 - Thread ID: 254370238\n", + "--------------------------------------------------------------------------------\n", + "idx: 66477\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-28 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. ,I hope you had a nice holiday. I’ve been having some arching pain in three of my fingers on my right hand. The pain where the finger meets the palm. It hurts to stretch the three fingers. Any thoughts?\n", + "----------------------------------------\n", + "Provider Response by UMG SAMARITAN MYHEALTH POOL:\n", + "Hello,It would be best to schedule an appointment to discuss your concerns with one of our Providers if your symptoms are still present. Please contact our office to assist with scheduling an appointment. You may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays. You may also contact one of our Express Clinics to assist with scheduling a appointment or go to your local emergency room if needed. If you have any questions or concerns, please feel free to reply to this message or you may reach out to our office during normal business hours, Monday- Friday 8 am- 5 pm, closed during National Holidays.Express Care Skytop52 Skytop St #10, San Jose, CA 95134Phone: (669) 294-8888Hours of Operations: Open 7 days a week, 9 am- 9 pmExpress Care & Imaging San Jose798 S Winchester Blvd, San Jose, CA 95128Phone: (408) 984-7226Hours of Operations: Open 7 days a week, M-F 8 am - 8 pm, Saturday & Sunday 9 am- 7 pmExpress Care Hoover211 Quarry Rd Suite 102, Palo Alto, CA 94305Phone: (650) 736-5211Hours of Operations: Open 7 days a week, 9 am- 9 pmSincerely,Samaritan Internal Medicine(408) 371-9010**Urgent messages should not be sent through this portal, as they are not monitored regularly. If you feel you need emergency care, please call 911 or go to your nearest Emergency Room** \n", + "----------------------------------------\n", + "2025-06-17 14:15:41,774 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:42,271 - Original Message:\n", + "2025-06-17 14:15:42,279 - original_query_message: I spoke to Dr. Lee’s assistant. She asked me to request that you send him a referral. Is that possible?Thank you,Kathy \n", + "2025-06-17 14:15:43,456 - Query Parameters:\n", + "2025-06-17 14:15:43,456 - query_message: Hi there,I recently spoke with Dr. Lee’s office about some ongoing health issues I’ve been experiencing—mainly persistent fatigue and difficulty with concentration that hasn’t really improved with my current treatment plan. They suggested that it might be helpful for me to see a specialist, and mentioned that I’d need a referral from you to get started. Would it be possible for you to send that over? I really appreciate your help with this, as I’m hoping to get to the bottom of what’s been causing these symptoms.Thank you so much, Jennifer\n", + "2025-06-17 14:15:43,457 - receiver: LEI, CALVIN\n", + "2025-06-17 14:15:43,458 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS PLEASANTON\n", + "2025-06-17 14:15:43,460 - specialty: Primary Care\n", + "2025-06-17 14:15:43,991 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:43,993 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:43,994 - ✅ similarity: 0.8071\n", + "2025-06-17 14:15:43,995 - Sender: SHARMA, YOGITA [ S0368870] -> the retrieved similar message : I spoke to Dr. Lee’s assistant. She asked me to request that you send him a referral. Is that possible?Thank you,Kathy \n", + "2025-06-17 14:15:43,997 - Provider's response to this similar message: Hi Kathy,Thank you for reaching out. I reviewed your request and placed a referral to Dr. Lee. Best regards,Dr. Lei\n", + "2025-06-17 14:15:44,002 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:44,125 - Thread ID: 254582848\n", + "--------------------------------------------------------------------------------\n", + "idx: 55590\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I spoke to Dr. Lee’s assistant. She asked me to request that you send him a referral. Is that possible?Thank you,Kathy \n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Kathy,Thank you for reaching out. I reviewed your request and placed a referral to Dr. Lee. Best regards,Dr. Lei\n", + "----------------------------------------\n", + "2025-06-17 14:15:44,126 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:44,126 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:44,128 - ✅ similarity: 0.6556\n", + "2025-06-17 14:15:44,128 - Sender: KEEL, RACHEL [ S0366564] -> the retrieved similar message : Dr Lei:I am really having trouble with my feet and the neuropathy. I found a specialist on line that I would like to visit. However, they require a referral. Is it possible to get a referral through your office? The doctor is Jeffery Ralph at UCSF. His number is 415-353-2273.Also, what is our opinion of the weight loss drug Wegovy? I have curtailed my alcohol intake and eating lighter and exercising but still not losing weight.Thanks,Rob Adamson\n", + "2025-06-17 14:15:44,129 - Provider's response to this similar message: Hi Rob, The neurology referral to Dr. Jeffery Ralph has been generated and faxed to him. You will find the referral info in your MyHealth portal. In regards to Wegovy it is only covered for patient with diabetes. Even though it is indicated for obesity your insurance will not cover for it.ThanksDr. Lei\n", + "2025-06-17 14:15:44,130 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:44,133 - Thread ID: 252984034\n", + "--------------------------------------------------------------------------------\n", + "idx: 125655\n", + "Subject: RE:Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr Lei:I am really having trouble with my feet and the neuropathy. I found a specialist on line that I would like to visit. However, they require a referral. Is it possible to get a referral through your office? The doctor is Jeffery Ralph at UCSF. His number is 415-353-2273.Also, what is our opinion of the weight loss drug Wegovy? I have curtailed my alcohol intake and eating lighter and exercising but still not losing weight.Thanks,Rob Adamson\n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Rob, The neurology referral to Dr. Jeffery Ralph has been generated and faxed to him. You will find the referral info in your MyHealth portal. In regards to Wegovy it is only covered for patient with diabetes. Even though it is indicated for obesity your insurance will not cover for it.ThanksDr. Lei\n", + "----------------------------------------\n", + "idx: 125654\n", + "Subject: Referral\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Lei:Thanks for the UCSF referral. I have visited the neurology specialist and he has requested that I see a podiatrist. Is this something that can be arranged through your office? If so please refer me to the proper contact.Thanks,Rob Adamson \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 125653\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-11 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Lei:I reviewed the comments regarding my recent blood test results and I am not clear on your findings. Each comment, for the most part, is the same saying \"slight improvement in lipid test results. Make sure you are well hydrated.\" Is this correct? seems to me theer would be different comments for different tests. Please advise.Thanks,Rob Adamson\n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Robert,Your creatinine level is slightly high. That's the reason I want you to drink more fluid to improve your kidney function.Thanks.Dr. Lei\n", + "----------------------------------------\n", + "2025-06-17 14:15:44,135 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:44,162 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:44,163 - ✅ similarity: 0.6070\n", + "2025-06-17 14:15:44,163 - Sender: NORDE, CYNCERE [ S0368582] -> the retrieved similar message : Hello Garin, This is Cyncere, MA from Dr. Lei's office. Sure, I will ask him now. Please give him 24-48 hours to respond to your message. Cyncere, MA12/23/2024, 10:07 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:44,164 - Provider's response to this similar message: Hi Garin,Your insurance does not cover Soma. It is out of their formulary.Dr. Lei\n", + "2025-06-17 14:15:44,164 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:44,170 - Thread ID: 253633042\n", + "--------------------------------------------------------------------------------\n", + "idx: 98710\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Garin, I will forward your request for a chiropractor to Dr. Lei, however you would need to ask your insurance which chiropractor would be covered under your insurance as everyone's insurance coverage is a bit different.Timmy Ko, MA IIStanford Medicine Partners5568 Gilbraltar DrivePleasanton, CA 94588tel: 925-534-6500fax:925-263-5673\n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98709\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. I sent a message to Timmy, but I thought maybe going directly to you might be faster. I would like to start seeing a chiropractor again. Do you have one that you can recommend that might be in my CIGNA network? Thank you very much.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98708\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Yes, I received it and have started taking it. Seems to be a little more effective. Thank you.I wanted to ask Dr Lei if he had a referral to a chiropractor that might be in my CIGNA network. Could you pass that request along for me? Thank you. \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Garin, I will forward your request for a chiropractor to Dr. Lei, however you would need to ask your insurance which chiropractor would be covered under your insurance as everyone's insurance coverage is a bit different.Timmy Ko, MA IIStanford Medicine Partners5568 Gilbraltar DrivePleasanton, CA 94588tel: 925-534-6500fax:925-263-5673\n", + "----------------------------------------\n", + "idx: 98707\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi there again. Which one did you prescribe? Thanks again.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98706\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I appreciate it very much.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Garin, Dr. Lei had prescribed tiZANidine (Zanaflex) 4 mg tablet and it has been sent to your pharmacy at RITE AID #05944 - PLEASANTON, CA - 2819 HOPYARD ROAD Timmy Ko, MA IIStanford Medicine Partners5568 Gilbraltar DrivePleasanton, CA 94588tel: 925-534-6500fax:925-263-5673\n", + "----------------------------------------\n", + "idx: 98705\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-27 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Lei. I’ve been using medication you prescribed and it isn’t providing any relief. I can’t get these muscles to calm down. Is there something a little stronger you can provide? I’ll pay for the soma out-of-pocket if need be. Thank you and happy holidays.\n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Garin,I have prescribed a new muscle relaxant for you. Please try that and let me know. Thanks. Dr. Lei\n", + "----------------------------------------\n", + "idx: 98704\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "That’s strange. I’ve gotten it before. I’ll try what you gave me and see how it works. Thanks Dr. \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98703\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. In the meantime, I will try what he gave me and see how it works. I appreciate your help.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98702\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Garin, This is Cyncere, MA from Dr. Lei's office. Sure, I will ask him now. Please give him 24-48 hours to respond to your message. Cyncere, MA12/23/2024, 10:07 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Garin,Your insurance does not cover Soma. It is out of their formulary.Dr. Lei\n", + "----------------------------------------\n", + "idx: 98701\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you for getting back to me. Can I ask why he gave me that medication instead of soma? Soma historically has worked the best for me. And I understand that I have a background of addiction, but I rarely ask for this medication. If he could reevaluate his decision, I would appreciate it. Thank you.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Garin, This is Cyncere, MA from Dr. Lei's office. Sure, I will ask him now. Please give him 24-48 hours to respond to your message. Cyncere, MA12/23/2024, 10:07 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 98700\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Cyncere- I never heard back on this request. I’m still having major spasms in my back and buttocks. Is it possible to get those soma? Thanks. \n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Garin, This is Cyncere, MA from Dr. Lei's office. I actually sen that Dr. Lei ordered Metaxalone 400 mg Oral 3 TIMES DAILY PRN for your back spasms instead of Soma Cyncere, MA12/23/2024, 8:48 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "idx: 98699\n", + "Subject: RE: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I appreciate the follow up. I’m pretty uncomfortable if I’m being honest so if this could be somehow expedited, it would be greatly appreciated. Thanks again. Happy holidays.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "No response\n", + "----------------------------------------\n", + "idx: 98698\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. You helped me a while back when I was having spasms in my back from a chronic injury. I have had a flareup in my buttocks, which is causing spasms in my back. It’s been a three weeks and I’ve tried ice, heat, stretching, and massaging. I can’t get the muscles to calm down. Could you please call in a prescription for some Soma to the Rite Aid on Hopyard on file? Thank you.\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Garin, This is Cyncere, MA from Dr. Boparai's office. I received your message regarding your refill request for Soma. Please give our healthcare team 24-48 hours to sign off on this orderCyncere, MA12/18/2024, 9:34 AMPlease be advised, that although we strive to respond to all messages as quickly as possible, please allow up to 2 business days for a response. If you need urgent assistance, please call our office at 925-534-6500. If you feel you are in need of emergency care, please call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:44,171 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:44,172 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:44,174 - ✅ similarity: 0.6043\n", + "2025-06-17 14:15:44,178 - Sender: RAMIL, ALENA [ S0182604] -> the retrieved similar message : Hi Dr Lei, i have missed school for a few days because of my symptoms and was hoping you would be able to provide me with a note stating that I have been under your care (provide dates). I appreciate your help. Thank you \n", + "2025-06-17 14:15:44,179 - Provider's response to this similar message: Thank you for reaching out, Cristian. I will draft your excuse letter, and it will be available in your MyHealth. Just go to Messages, then Letters. You can then click on the letter and print it.Dr. Lei\n", + "2025-06-17 14:15:44,179 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:44,182 - Thread ID: 251677156\n", + "--------------------------------------------------------------------------------\n", + "idx: 185644\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-26 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Lei, i have missed school for a few days because of my symptoms and was hoping you would be able to provide me with a note stating that I have been under your care (provide dates). I appreciate your help. Thank you \n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Thank you for reaching out, Cristian. I will draft your excuse letter, and it will be available in your MyHealth. Just go to Messages, then Letters. You can then click on the letter and print it.Dr. Lei\n", + "----------------------------------------\n", + "2025-06-17 14:15:44,185 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:44,190 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:44,194 - ✅ similarity: 0.5848\n", + "2025-06-17 14:15:44,195 - Sender: GOMEZ, LUZ [ S0343855] -> the retrieved similar message : Hello Yassodra,We prioritize your health; it is important that you have a visit to address your clinical questions. You are welcome to schedule appointment to discuss your concerns and plan of care. Please schedule your appointment by calling 925-534-6500 or through the Myhealth app. You are welcome to schedule with any of our clinicians or nurse practitioners if you are needing a sooner appointment then your clinician can offer. Thank you for contacting Stanford Medicine Partners, Primary & Specialty Care, Pleasanton.\n", + "2025-06-17 14:15:44,197 - Provider's response to this similar message: Hi Yassodra,I have ordered a lab request for PTH. You can do the blood draw at LabCorp.Take care.Dr. Lei\n", + "2025-06-17 14:15:44,198 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:44,208 - Thread ID: 252002430\n", + "--------------------------------------------------------------------------------\n", + "idx: 169075\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Yassodra,We prioritize your health; it is important that you have a visit to address your clinical questions. You are welcome to schedule appointment to discuss your concerns and plan of care. Please schedule your appointment by calling 925-534-6500 or through the Myhealth app. You are welcome to schedule with any of our clinicians or nurse practitioners if you are needing a sooner appointment then your clinician can offer. Thank you for contacting Stanford Medicine Partners, Primary & Specialty Care, Pleasanton.\n", + "----------------------------------------\n", + "Provider Response by LEI, CALVIN:\n", + "Hi Yassodra,I have ordered a lab request for PTH. You can do the blood draw at LabCorp.Take care.Dr. Lei\n", + "----------------------------------------\n", + "idx: 169074\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "I have a question about Metabolic Panel, Comprehensive resulted on 11/15/24 at 6:07 AM.my calcium is high...do I need a PTH?\n", + "----------------------------------------\n", + "Provider Response by SMPPCPLT CARE TEAM POOL:\n", + "Hello Yassodra,We prioritize your health; it is important that you have a visit to address your clinical questions. You are welcome to schedule appointment to discuss your concerns and plan of care. Please schedule your appointment by calling 925-534-6500 or through the Myhealth app. You are welcome to schedule with any of our clinicians or nurse practitioners if you are needing a sooner appointment then your clinician can offer. Thank you for contacting Stanford Medicine Partners, Primary & Specialty Care, Pleasanton.\n", + "----------------------------------------\n", + "2025-06-17 14:15:44,209 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:44,402 - Original Message:\n", + "2025-06-17 14:15:44,403 - original_query_message: Hi Dr. Baule, please list what shots do I need to get including the flu shot and whether its ok to do it all at once.I do know that I need a flu shot, Covid (the last one was a year ago), anything else?I plan to do it in the next few days.Thank you, Larisa.\n", + "2025-06-17 14:15:45,947 - Query Parameters:\n", + "2025-06-17 14:15:45,950 - query_message: Hi Dr. Baule, I wanted to double check which vaccines I should be getting at this time of year. I know it’s time for my annual flu shot, but I’m also not sure if it’s a good idea to get the Covid booster since my last dose was last spring. I generally try to stay on top of my vaccines, but with everything going around lately (my allergies are acting up and I’ve been feeling a bit rundown), I just want to be proactive. Are there any other immunizations I should ask about—like pneumonia or shingles—or is that only recommended for certain ages? Also, is it alright to get them all during the same appointment, or should I space them out? Thanks for your advice!\n", + "2025-06-17 14:15:45,952 - receiver: FMSLG APP POOL\n", + "2025-06-17 14:15:45,953 - department: FAMILY MEDICINE SAMARITAN LOS GATOS\n", + "2025-06-17 14:15:45,956 - specialty: Family Medicine\n", + "2025-06-17 14:15:46,866 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:46,867 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:46,867 - ✅ similarity: 0.8276\n", + "2025-06-17 14:15:46,869 - Sender: CANCHOLA, ALYSON [ S0389084] -> the retrieved similar message : Hi Dr. Baule, please list what shots do I need to get including the flu shot and whether its ok to do it all at once.I do know that I need a flu shot, Covid (the last one was a year ago), anything else?I plan to do it in the next few days.Thank you, Larisa.\n", + "2025-06-17 14:15:46,871 - Provider's response to this similar message: Hi Larisa,It's great that you're planning to stay up-to-date with your vaccinations. Here are the shots you should consider:1. Flu Shot: It's recommended annually, especially during flu season.2. COVID-19 Vaccine: Since your last dose was a year ago, you should get the updated booster if you haven't already.4. Shingles Vaccine: Recommended for adults over 50, if you haven't received it yet.5. Pneumococcal Vaccine: The CDC recommends pneumococcal vaccine for children under 5 and adults over 50. If you've never had a pneumococcal vaccine in the past I would recommend considering it. It's generally safe to receive multiple vaccines at the same time. Given the prevalence of flu and Covid-19 at this point in time I would recommend prioritizing those vaccines. You can schedule an appointment for these vaccinations using the Stanford MyHealth app.Best regards,Timothy Scott Ulleseit, PA-C assisting Dr. Baule.\n", + "2025-06-17 14:15:46,873 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:46,876 - Thread ID: 254078314\n", + "--------------------------------------------------------------------------------\n", + "idx: 79065\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-23 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Baule, please list what shots do I need to get including the flu shot and whether its ok to do it all at once.I do know that I need a flu shot, Covid (the last one was a year ago), anything else?I plan to do it in the next few days.Thank you, Larisa.\n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hi Larisa,It's great that you're planning to stay up-to-date with your vaccinations. Here are the shots you should consider:1. Flu Shot: It's recommended annually, especially during flu season.2. COVID-19 Vaccine: Since your last dose was a year ago, you should get the updated booster if you haven't already.4. Shingles Vaccine: Recommended for adults over 50, if you haven't received it yet.5. Pneumococcal Vaccine: The CDC recommends pneumococcal vaccine for children under 5 and adults over 50. If you've never had a pneumococcal vaccine in the past I would recommend considering it. It's generally safe to receive multiple vaccines at the same time. Given the prevalence of flu and Covid-19 at this point in time I would recommend prioritizing those vaccines. You can schedule an appointment for these vaccinations using the Stanford MyHealth app.Best regards,Timothy Scott Ulleseit, PA-C assisting Dr. Baule.\n", + "----------------------------------------\n", + "2025-06-17 14:15:46,877 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:46,878 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:46,888 - ✅ similarity: 0.6790\n", + "2025-06-17 14:15:46,889 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Dr. Khuddus I hope you are well. Do you recommend that I get the pneumonia vaccine? I’m 57 and I’ve already received the latest COVID 19 and seasonal flu vaccine. \n", + "2025-06-17 14:15:46,910 - Provider's response to this similar message: Hi Paul,It looks like you already received a pneumonia vaccine on 12/01/2023 (Prevnar 20)Take care!Tara Nicole Kuroiwa, PA-C assisting Dr. Khuddus \n", + "2025-06-17 14:15:46,911 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:46,992 - Thread ID: 249588925\n", + "--------------------------------------------------------------------------------\n", + "idx: 293672\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Khuddus I hope you are well. Do you recommend that I get the pneumonia vaccine? I’m 57 and I’ve already received the latest COVID 19 and seasonal flu vaccine. \n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hi Paul,It looks like you already received a pneumonia vaccine on 12/01/2023 (Prevnar 20)Take care!Tara Nicole Kuroiwa, PA-C assisting Dr. Khuddus \n", + "----------------------------------------\n", + "2025-06-17 14:15:46,994 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:46,994 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:46,996 - ✅ similarity: 0.6556\n", + "2025-06-17 14:15:46,996 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Hello Dr. Baule,I will be traveling to India for the first time in November, and I was wondering what vaccinations you think I may need. I believe I need my tetanus vaccination as well since my last shot was over 10 years ago. If I schedule a standard office visit will I be able to do all necessary vaccinations on the same day? Thank you!\n", + "2025-06-17 14:15:46,997 - Provider's response to this similar message: Hello Cindy,Traveling to India is exciting! For your trip, you may need several vaccinations, including:1. **Tetanus**: Since your last shot was over 10 years ago, you will need a booster.2. **Hepatitis A**: Recommended for most travelers.3. **Typhoid**: Recommended for most travelers.4. **Hepatitis B**: If you haven't completed the series.5. **Japanese Encephalitis**: Depending on your travel plans and duration.6. **Rabies**: If you will be in contact with animals or in rural areas.7. **Malaria prophylaxis**: Not a vaccine, but important to discuss.You can schedule a standard office visit, and we can administer the necessary vaccinations on the same day. You can also go to a travel clinic. Best,Parveen Kaur Bhatia, NP assisting Dr. Baule, Michael Brandon\n", + "2025-06-17 14:15:46,999 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:47,001 - Thread ID: 248379827\n", + "--------------------------------------------------------------------------------\n", + "idx: 354851\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Great, thank you! I have gone ahead and booked a primary care appointment since under \"vaccinations\" the only options are flu shot or covid vaccine. I am also attaching an old immunization record - please let me know if Hepatitis B is considered \"complete\" or if more is needed. Thanks! \n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Thank you for scheduling an appointment. Seems Hep B is complete. \n", + "----------------------------------------\n", + "idx: 354850\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Baule,I will be traveling to India for the first time in November, and I was wondering what vaccinations you think I may need. I believe I need my tetanus vaccination as well since my last shot was over 10 years ago. If I schedule a standard office visit will I be able to do all necessary vaccinations on the same day? Thank you!\n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hello Cindy,Traveling to India is exciting! For your trip, you may need several vaccinations, including:1. **Tetanus**: Since your last shot was over 10 years ago, you will need a booster.2. **Hepatitis A**: Recommended for most travelers.3. **Typhoid**: Recommended for most travelers.4. **Hepatitis B**: If you haven't completed the series.5. **Japanese Encephalitis**: Depending on your travel plans and duration.6. **Rabies**: If you will be in contact with animals or in rural areas.7. **Malaria prophylaxis**: Not a vaccine, but important to discuss.You can schedule a standard office visit, and we can administer the necessary vaccinations on the same day. You can also go to a travel clinic. Best,Parveen Kaur Bhatia, NP assisting Dr. Baule, Michael Brandon\n", + "----------------------------------------\n", + "2025-06-17 14:15:47,002 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:47,003 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:47,004 - ✅ similarity: 0.6303\n", + "2025-06-17 14:15:47,004 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : My after appointment summary seems to indicate that I need a Covid vaccine. I received my last Covid vaccine on October 8, 2024 as reflected in my message to you of October 8, 2024.Please advise if I need a covid vaccine now. Thank you,Sharon Kirsch\n", + "2025-06-17 14:15:47,018 - Provider's response to this similar message: Hi Sharon,Thank you for your message. Since you received your last COVID vaccine on October 5, 2024, you are up to date with your COVID vaccinations for now. You do not need another COVID vaccine at this time.If you have any other questions or concerns, please feel free to reach out.Best regards,Alla P Rozova, PA\n", + "2025-06-17 14:15:47,024 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:47,027 - Thread ID: 255810891\n", + "--------------------------------------------------------------------------------\n", + "idx: 1347\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-15 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My after appointment summary seems to indicate that I need a Covid vaccine. I received my last Covid vaccine on October 8, 2024 as reflected in my message to you of October 8, 2024.Please advise if I need a covid vaccine now. Thank you,Sharon Kirsch\n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hi Sharon,Thank you for your message. Since you received your last COVID vaccine on October 5, 2024, you are up to date with your COVID vaccinations for now. You do not need another COVID vaccine at this time.If you have any other questions or concerns, please feel free to reach out.Best regards,Alla P Rozova, PA\n", + "----------------------------------------\n", + "2025-06-17 14:15:47,028 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:47,028 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:47,029 - ✅ similarity: 0.6126\n", + "2025-06-17 14:15:47,029 - Sender: DELGADO, NICOLE [ S0367163] -> the retrieved similar message : Hello! An I schedule a flu and Covid shot in the same visit?Thanks as always,Mike\n", + "2025-06-17 14:15:47,029 - Provider's response to this similar message: Hello Michael,Yes, you can schedule both a flu shot and a COVID-19 shot in the same visit. Please use the Stanford MyHealth app to schedule your appointment.Thanks,Alla P Rozova, PA\n", + "2025-06-17 14:15:47,029 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:47,033 - Thread ID: 249923862\n", + "--------------------------------------------------------------------------------\n", + "idx: 275668\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello! An I schedule a flu and Covid shot in the same visit?Thanks as always,Mike\n", + "----------------------------------------\n", + "Provider Response by FMSLG APP POOL:\n", + "Hello Michael,Yes, you can schedule both a flu shot and a COVID-19 shot in the same visit. Please use the Stanford MyHealth app to schedule your appointment.Thanks,Alla P Rozova, PA\n", + "----------------------------------------\n", + "idx: 275667\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Chaudhary and team,I’ve recently been getting PT on my neck and right arm for post radiation scarring, nerve and pain issues. This is working well, although my elbow is showing signs of tendinitis/tennis elbow that has only slightly improved over several months of PT and home treatment.My PT (Amy Seghi, Good Sam) suggests I request an appointment with you, or if possible a direct referral to an orthopedic doctor.Please advise.Thanks as always,Mike\n", + "----------------------------------------\n", + "Provider Response by FMSLG CARE TEAM POOL:\n", + "Hello Michael,Sorry it looks like 2 of us were working on your chart at the same time. Ultimately, follow-up is needed. You can see Dr. Chaudhary or schedule with an orthopedist. Continue supportive care for now, continue stretching exercises that do not exacerbate your pain.Compression bands can also be helpful for tendonitis.Dr. Semkiw is a local Orthopedist, his info was provided in previous message.Kindly,Tara Nicole Kuroiwa, PA-C assisting Dr. Chaudhary \n", + "----------------------------------------\n", + "2025-06-17 14:15:47,038 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:47,474 - Original Message:\n", + "2025-06-17 14:15:47,475 - original_query_message: Hello Dr. I will have an appointment with you next Tuesday at 8:30 and will love to touch the next topics:1. Sleep Apnea. I schedule an appointment for Stanford Sleep studies but it is until May 2025. In the meantime, I was send (by you) to get a machine. I got it and a week after I started using it, I had to get another machine for a study. I never knew the result of my study. The first machine was used by a month or so but it was not helpful at all. So, my question, are there any other options for this? I have seen a lot of mouth pieces, does any of those work?2. Alternative methods for thyroid3. Foot nail. My nails are getting uglier by the minute.4. Hemorrhoids. I don't know if that is what I have but a couple of months ago I was miserable for weeks.5. Excessive coughing. It has been months of this coughing and still once in a while.6. I need a TBD vaccine to be able to get my little one classes. Can you get me one? And flu vaccine too.That will be it. Thanks \n", + "2025-06-17 14:15:49,111 - Query Parameters:\n", + "2025-06-17 14:15:49,114 - query_message: Hi Doctor, I’m looking forward to my appointment next week and wanted to give you a heads-up about a few things I’d like to discuss:1. I’ve been struggling with really poor sleep, loud snoring, and constant fatigue during the day. I was told it might be sleep apnea and tried using a CPAP for about a month, but honestly, it was uncomfortable and didn’t make a difference for me. I’m on a long waitlist for a proper sleep study. Are there any other treatments or devices that might help while I wait? I’ve read about other gadgets like mouth guards—do any of those actually work?2. My thyroid levels have been a bit all over the place, and I’m already on medication. Are there any complementary therapies or lifestyle changes I should consider to help manage it better?3. I’ve noticed my toenails are looking more discolored, thicker, and just generally unhealthy. It’s starting to bother me, especially since I play sports barefoot. Could this be a fungal issue? Is there anything I can do at home to treat it, or should I be worried about something more serious?4. I had an episode of really painful swelling and bleeding around my rectum a couple of months ago that lasted for weeks. It hasn’t been as bad lately, but I’m worried it could come back. Could it have been hemorrhoids, or should I be checked for something else?5. I’ve had a persistent cough for months. It’s not constant but seems to flare up at night or after exercise. I haven’t noticed any wheezing, but it just won’t go away. Any ideas on what could be causing this?6. Last thing—I need to get caught up on vaccines, specifically tetanus and the flu shot, since I’ll be volunteering at my kid’s school. Can I get those done at our visit?Thanks so much, see you soon!\n", + "2025-06-17 14:15:49,115 - receiver: MMC INT MED MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:15:49,116 - department: INTERNAL MEDICINE MMC MENLO PARK CRANE\n", + "2025-06-17 14:15:49,118 - specialty: Internal Medicine\n", + "2025-06-17 14:15:51,403 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:51,404 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:51,405 - ✅ similarity: 0.8334\n", + "2025-06-17 14:15:51,406 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. I will have an appointment with you next Tuesday at 8:30 and will love to touch the next topics:1. Sleep Apnea. I schedule an appointment for Stanford Sleep studies but it is until May 2025. In the meantime, I was send (by you) to get a machine. I got it and a week after I started using it, I had to get another machine for a study. I never knew the result of my study. The first machine was used by a month or so but it was not helpful at all. So, my question, are there any other options for this? I have seen a lot of mouth pieces, does any of those work?2. Alternative methods for thyroid3. Foot nail. My nails are getting uglier by the minute.4. Hemorrhoids. I don't know if that is what I have but a couple of months ago I was miserable for weeks.5. Excessive coughing. It has been months of this coughing and still once in a while.6. I need a TBD vaccine to be able to get my little one classes. Can you get me one? And flu vaccine too.That will be it. Thanks \n", + "2025-06-17 14:15:51,408 - Provider's response to this similar message: Hi Julio, Thank you for your message! I will forward it to Dr. Thornton for review prior to you follow up appointment tomorrow, 12/31 at 8:40 AM, check in time at 8:25 AM. Please be advised that if there is not enough time during your annual physical tomorrow to cover all the topics you'd like to discuss, a separate problem focused visit may be needed. See you tomorrow morning!Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:51,409 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:51,412 - Thread ID: 254410110\n", + "--------------------------------------------------------------------------------\n", + "idx: 63954\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Julio, Thank you for your message! I will forward it to Dr. Thornton for review prior to you follow up appointment tomorrow, 12/31 at 8:40 AM, check in time at 8:25 AM. Please be advised that if there is not enough time during your annual physical tomorrow to cover all the topics you'd like to discuss, a separate problem focused visit may be needed. See you tomorrow morning!Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by THORNTON, LORNA:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63953\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. I will have an appointment with you next Tuesday at 8:30 and will love to touch the next topics:1. Sleep Apnea. I schedule an appointment for Stanford Sleep studies but it is until May 2025. In the meantime, I was send (by you) to get a machine. I got it and a week after I started using it, I had to get another machine for a study. I never knew the result of my study. The first machine was used by a month or so but it was not helpful at all. So, my question, are there any other options for this? I have seen a lot of mouth pieces, does any of those work?2. Alternative methods for thyroid3. Foot nail. My nails are getting uglier by the minute.4. Hemorrhoids. I don't know if that is what I have but a couple of months ago I was miserable for weeks.5. Excessive coughing. It has been months of this coughing and still once in a while.6. I need a TBD vaccine to be able to get my little one classes. Can you get me one? And flu vaccine too.That will be it. Thanks \n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Julio, Thank you for your message! I will forward it to Dr. Thornton for review prior to you follow up appointment tomorrow, 12/31 at 8:40 AM, check in time at 8:25 AM. Please be advised that if there is not enough time during your annual physical tomorrow to cover all the topics you'd like to discuss, a separate problem focused visit may be needed. See you tomorrow morning!Thank you, Alyssa Cruz, RNMenlo Medical Clinic1300 Crane StreetMenlo Park, CA 94025Phone: 650-498-6500Stanfordhealthcare.org/menloPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:51,413 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:51,413 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:51,414 - ✅ similarity: 0.7086\n", + "2025-06-17 14:15:51,415 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : 1- I have been fighting a \"cold\" since just before Christmas-- a lot of congestion and mucos. have been using: The Iprutropium Br Nose spray ( 2x per day)--and then added Vicks Sinex 1x, and then 2x/day. Went up to Azelastin 2x for last 2 days.. Also started adding albuterol- once and then twice a day. and last three days added my nebulizer 2x per day.. Should I be coming in? or there is something I can take? ( antibiotic? etc.)2- I have the annual physical wit you on 2/4 --Are there tests I should be taking at the lab before then? 3- BP is 140/70. Pulse is 76. Took Azelastin about 1 hour agoThank you\n", + "2025-06-17 14:15:51,416 - Provider's response to this similar message: Hi Howard,Thank you for your message. I called you, however I was not able to reach you. Please call our scheduling desk at 650-498-6500 to speak with a nurse. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:51,416 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:51,420 - Thread ID: 254410068\n", + "--------------------------------------------------------------------------------\n", + "idx: 63962\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Howard,Thank you for your message. I called you, however I was not able to reach you. Please call our scheduling desk at 650-498-6500 to speak with a nurse. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by OWENS, COURTNEY,:\n", + "No response\n", + "----------------------------------------\n", + "idx: 63961\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-29 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "1- I have been fighting a \"cold\" since just before Christmas-- a lot of congestion and mucos. have been using: The Iprutropium Br Nose spray ( 2x per day)--and then added Vicks Sinex 1x, and then 2x/day. Went up to Azelastin 2x for last 2 days.. Also started adding albuterol- once and then twice a day. and last three days added my nebulizer 2x per day.. Should I be coming in? or there is something I can take? ( antibiotic? etc.)2- I have the annual physical wit you on 2/4 --Are there tests I should be taking at the lab before then? 3- BP is 140/70. Pulse is 76. Took Azelastin about 1 hour agoThank you\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Howard,Thank you for your message. I called you, however I was not able to reach you. Please call our scheduling desk at 650-498-6500 to speak with a nurse. All the best,Sim, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:51,421 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:51,421 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:51,422 - ✅ similarity: 0.6991\n", + "2025-06-17 14:15:51,422 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr Ly,During my physical, you indicated that I should make (a) follow up appointment(s) to address my questions. First, I followed up with Dr Guardino, who significantly reduced my propranolol dosage. That, in turn, significantly reduced my fatigue and sleep problems. Moving down my list, I'd like to discuss the increasing strength of the fishy odor (which is somewhat related to fish consumption) from my genital area. I'd also like to discuss whether or not my bladder prolapse is serious enough to take action. (Other items remain on my list, but it seems like two at a time may be plenty.)Best Regards,Julie\n", + "2025-06-17 14:15:51,423 - Provider's response to this similar message: Hi Julie,Thank you for your response. I reviewed your message and your chart.Glad to hear that reducing your propranolol dosage has helped with your fatigue and sleep problems. I recommend a follow up appointment with Dr. Ly to discuss your questions/concerns further.At the time of writing this my health message I have an openings with Dr. Ly on today at 4 pm.This is a first come first served basis appointment.If this date and time doesn't work for you, you can call clinic at 650-498-6500 to schedule a 30 min follow up appointment with Dr. Ly that best fits with your schedule.Please let us know so that we can further assist you. All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "2025-06-17 14:15:51,423 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:51,425 - Thread ID: 252536780\n", + "--------------------------------------------------------------------------------\n", + "idx: 144212\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Ly,During my physical, you indicated that I should make (a) follow up appointment(s) to address my questions. First, I followed up with Dr Guardino, who significantly reduced my propranolol dosage. That, in turn, significantly reduced my fatigue and sleep problems. Moving down my list, I'd like to discuss the increasing strength of the fishy odor (which is somewhat related to fish consumption) from my genital area. I'd also like to discuss whether or not my bladder prolapse is serious enough to take action. (Other items remain on my list, but it seems like two at a time may be plenty.)Best Regards,Julie\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Julie,Thank you for your response. I reviewed your message and your chart.Glad to hear that reducing your propranolol dosage has helped with your fatigue and sleep problems. I recommend a follow up appointment with Dr. Ly to discuss your questions/concerns further.At the time of writing this my health message I have an openings with Dr. Ly on today at 4 pm.This is a first come first served basis appointment.If this date and time doesn't work for you, you can call clinic at 650-498-6500 to schedule a 30 min follow up appointment with Dr. Ly that best fits with your schedule.Please let us know so that we can further assist you. All the best,Maddy, RNPlease be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you.For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room.For lab hours & information, please refer to following link:https://stanfordhealthcare.org/medical-clinics/blood-draw-sites.html \n", + "----------------------------------------\n", + "2025-06-17 14:15:51,425 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:51,426 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:51,426 - ✅ similarity: 0.6950\n", + "2025-06-17 14:15:51,427 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello Dr. Sherman,I have 2 concerns and would appreciate your advice.1. I am now experiencing some gradual hearing loss in both ears, especially the right ear, associated with pulsatile tinnitus and intermittent dizziness. I am wondering where to go for a hearing test and evaluation. What do you recommend?2. My blood pressure taken during my last annual physical (January, 2024) was high for the first time. You recommended that I monitor it at home and get back to you. I have been occasionally monitoring it and it averages around 130-135 over 70. Should I address this issue now or wait until my next appointment with you in February, 2025?Thanks for your help. Alice\n", + "2025-06-17 14:15:51,427 - Provider's response to this similar message: Hi Ms. Rosenberg,I tried to call you but was unable to get a hold of you and left a voice message. Please give me a call back Phone: 650-498-6500 to further discuss your symptoms/concerns. I would like to discuss more regarding the intermittent dizziness to ensure that you're safe. I do recommend coming in to see Dr. Sherman first for ear evaluation, and it's also likely that you'll need a hearing test as well. We usually recommend Pacific Hearing Services Menlo Park or Los Altos. They do not take insurance but can request for your Medicare insurance to reimburse. Would you like a referral to Pacific Hearing Services? It's also like that Dr. Sherman will discuss blood pressure medication options at your appointment if your blood pressures have been ranging Systolic >130. I've attached a BP log that you can print out and write down your readings. Please include date/time taken. Please ensure to bring this in with you for Dr. Sherman's review at your next appointment. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:51,428 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:51,440 - Thread ID: 248645201\n", + "--------------------------------------------------------------------------------\n", + "idx: 340427\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-10-22 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Sherman,I have 2 concerns and would appreciate your advice.1. I am now experiencing some gradual hearing loss in both ears, especially the right ear, associated with pulsatile tinnitus and intermittent dizziness. I am wondering where to go for a hearing test and evaluation. What do you recommend?2. My blood pressure taken during my last annual physical (January, 2024) was high for the first time. You recommended that I monitor it at home and get back to you. I have been occasionally monitoring it and it averages around 130-135 over 70. Should I address this issue now or wait until my next appointment with you in February, 2025?Thanks for your help. Alice\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Ms. Rosenberg,I tried to call you but was unable to get a hold of you and left a voice message. Please give me a call back Phone: 650-498-6500 to further discuss your symptoms/concerns. I would like to discuss more regarding the intermittent dizziness to ensure that you're safe. I do recommend coming in to see Dr. Sherman first for ear evaluation, and it's also likely that you'll need a hearing test as well. We usually recommend Pacific Hearing Services Menlo Park or Los Altos. They do not take insurance but can request for your Medicare insurance to reimburse. Would you like a referral to Pacific Hearing Services? It's also like that Dr. Sherman will discuss blood pressure medication options at your appointment if your blood pressures have been ranging Systolic >130. I've attached a BP log that you can print out and write down your readings. Please include date/time taken. Please ensure to bring this in with you for Dr. Sherman's review at your next appointment. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:51,447 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:51,447 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:51,448 - ✅ similarity: 0.6895\n", + "2025-06-17 14:15:51,449 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : notes for annual wellness exam12/3/24 SLM appt with primary DR. Pinyavatcc to Dr Sanzgiri and Dr LinHi Dr Pinyavat --Here is a summary of how I am feeling, for discussion at my annual wellness exam. I will send it to Dr Sanzgiri and Dr Lin. 1. Sleepiness/exhaustion - even though I go to bed at 10 pm, sleep all night (except for toilet trips), then nap from 9-11 am, and sometimes in afternoon during 3-6 pm.<9> 2. Heart palpitations - afib feelings over past month (history of TAVR-10/2020, Ablation-1/2023). Appt with cardiologist is 1/29/25; ECH scheduled 12/13/24.<9> 3. Burning in feet is nearly gone but still swollen and ankles feel tight (cymbalta started 9/5/24).<9>Dr. Lin-small fiber neuropathy skin biopsy sched for 2/6/25.<9> 4. Joint pain-still swollen and very painful hands and wrists.<9>Dr. Chaichian-Methotrexate plus folic acid started 10/12/24.<9> (continued in next message)\n", + "2025-06-17 14:15:51,449 - Provider's response to this similar message: Hi Mr. Mehl,I received your 2 messages and will update Dr. Pinyavat for your upcoming appointment in a few moments.Please be aware that an annual wellness exam is a different type of visit (known as a preventative exam to discuss screening tests, routine labs, vaccinations etc.). If you would like to discuss symptoms/concerns, your appointment today may become a billable visit to your insurance.Please also be aware that he may not have enough time to discuss all concerns, and you may need to schedule another appointment Phone: 650-498-6500. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "2025-06-17 14:15:51,475 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:51,496 - Thread ID: 252019821\n", + "--------------------------------------------------------------------------------\n", + "idx: 168129\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Mr. Mehl,I received your 2 messages and will update Dr. Pinyavat for your upcoming appointment in a few moments.Please be aware that an annual wellness exam is a different type of visit (known as a preventative exam to discuss screening tests, routine labs, vaccinations etc.). If you would like to discuss symptoms/concerns, your appointment today may become a billable visit to your insurance.Please also be aware that he may not have enough time to discuss all concerns, and you may need to schedule another appointment Phone: 650-498-6500. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "Provider Response by PINYAVAT, ALAN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 168128\n", + "Subject: Update Health Information\n", + "----------------------------------------\n", + "Date Sent: 2024-12-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "notes for annual wellness exam12/3/24 SLM appt with primary DR. Pinyavatcc to Dr Sanzgiri and Dr LinHi Dr Pinyavat --Here is a summary of how I am feeling, for discussion at my annual wellness exam. I will send it to Dr Sanzgiri and Dr Lin. 1. Sleepiness/exhaustion - even though I go to bed at 10 pm, sleep all night (except for toilet trips), then nap from 9-11 am, and sometimes in afternoon during 3-6 pm.<9> 2. Heart palpitations - afib feelings over past month (history of TAVR-10/2020, Ablation-1/2023). Appt with cardiologist is 1/29/25; ECH scheduled 12/13/24.<9> 3. Burning in feet is nearly gone but still swollen and ankles feel tight (cymbalta started 9/5/24).<9>Dr. Lin-small fiber neuropathy skin biopsy sched for 2/6/25.<9> 4. Joint pain-still swollen and very painful hands and wrists.<9>Dr. Chaichian-Methotrexate plus folic acid started 10/12/24.<9> (continued in next message)\n", + "----------------------------------------\n", + "Provider Response by MMC INT MED MYHEALTH CLINIC MESSAGING:\n", + "Hi Mr. Mehl,I received your 2 messages and will update Dr. Pinyavat for your upcoming appointment in a few moments.Please be aware that an annual wellness exam is a different type of visit (known as a preventative exam to discuss screening tests, routine labs, vaccinations etc.). If you would like to discuss symptoms/concerns, your appointment today may become a billable visit to your insurance.Please also be aware that he may not have enough time to discuss all concerns, and you may need to schedule another appointment Phone: 650-498-6500. Best wishes,Karissa, RN Please be aware, although we aim to respond as quickly as possible, please allow up to 2 business days for us to get back to you. For urgent requests, please call the clinic at 650.498.6500. In an emergency, call 911 or go directly to the nearest emergency room. \n", + "----------------------------------------\n", + "2025-06-17 14:15:51,497 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:52,189 - Original Message:\n", + "2025-06-17 14:15:52,191 - original_query_message: Good Afternoon, I was wondering if there is an availability for January 2 to reschedule my appointment. Thank you, Chiara Timbang\n", + "2025-06-17 14:15:53,006 - Query Parameters:\n", + "2025-06-17 14:15:53,008 - query_message: Hello, I hope you’re doing well! I realized I need to switch my upcoming check-up and wanted to see if there might be a spot open sometime around early January, maybe the 2nd or close to it? Lately, I’ve been noticing a bit more fatigue and some new dizziness, so I’d really like to come in sooner if possible. Please let me know if there are any openings—thanks so much for your help! – Jamie Parker\n", + "2025-06-17 14:15:53,009 - receiver: MACHUCA, VANESSA\n", + "2025-06-17 14:15:53,010 - department: PRIMARY CARE STANFORD MEDICINE PARTNERS CASTRO VALLEY\n", + "2025-06-17 14:15:53,011 - specialty: Primary Care\n", + "2025-06-17 14:15:53,420 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:53,421 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:53,422 - ✅ similarity: 0.7307\n", + "2025-06-17 14:15:53,422 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good Afternoon, I was wondering if there is an availability for January 2 to reschedule my appointment. Thank you, Chiara Timbang\n", + "2025-06-17 14:15:53,424 - Provider's response to this similar message: Good Morning, Unfortunately she will not be in 1/2/25. We are currently scheduling for the week of 1/13/25 please let me know what time and dates works best for you and if you prefer video visit or Tele phone call appointment. Thank you Vanessa Machuca, MA(510)387-0753\n", + "2025-06-17 14:15:53,424 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:53,431 - Thread ID: 251339593\n", + "--------------------------------------------------------------------------------\n", + "idx: 203242\n", + "Subject: RE: Diabetes Management Program – Reschedule Your Appointment\n", + "----------------------------------------\n", + "Date Sent: 2024-12-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good Afternoon, I was wondering if there is an availability for January 2 to reschedule my appointment. Thank you, Chiara Timbang\n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Good Morning, Unfortunately she will not be in 1/2/25. We are currently scheduling for the week of 1/13/25 please let me know what time and dates works best for you and if you prefer video visit or Tele phone call appointment. Thank you Vanessa Machuca, MA(510)387-0753\n", + "----------------------------------------\n", + "2025-06-17 14:15:53,432 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:53,433 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:53,434 - ✅ similarity: 0.5199\n", + "2025-06-17 14:15:53,435 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi,I forgot about the appointment. Can you please reschedule another video appointment for the earliest available? \n", + "2025-06-17 14:15:53,436 - Provider's response to this similar message: Hi Mr. Rafiq, I have rescheduled your appointment for December 16, 2024, at 10:00 AM. Please let me know if you are unable to keep this appointment.If you need to reach me, my callback number is 510-387-0753.Thank you, and I look forward to seeing you then.Best regards,Vanessa Machuca, MA\n", + "2025-06-17 14:15:53,437 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:53,439 - Thread ID: 251342076\n", + "--------------------------------------------------------------------------------\n", + "idx: 203137\n", + "Subject: RE:Missed Appointment Notification – Action Required\n", + "----------------------------------------\n", + "Date Sent: 2024-11-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,I forgot about the appointment. Can you please reschedule another video appointment for the earliest available? \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Hi Mr. Rafiq, I have rescheduled your appointment for December 16, 2024, at 10:00 AM. Please let me know if you are unable to keep this appointment.If you need to reach me, my callback number is 510-387-0753.Thank you, and I look forward to seeing you then.Best regards,Vanessa Machuca, MA\n", + "----------------------------------------\n", + "2025-06-17 14:15:53,440 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:53,440 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:53,442 - ✅ similarity: 0.4408\n", + "2025-06-17 14:15:53,442 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : My apologies for the slow reply but in checking my schedule, I’m afraid that I’m only available Monday Dec. 9, Tuesday Dec. 10, and Friday Dec. 13. I’m hoping that one of those dates are still available.Thank you! Hiroshi\n", + "2025-06-17 14:15:53,443 - Provider's response to this similar message: Dear Mr. Saito,I have schedule a MyHealth video visit appointment with our clinical pharmacist Monica Hoang, on 12/9/24 at 10am. Please let me know if you have any further questions.Best regards,Vanessa Machuca, MAChronic Kidney Disease (510)387-0753\n", + "2025-06-17 14:15:53,444 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:53,445 - Thread ID: 250660307\n", + "--------------------------------------------------------------------------------\n", + "idx: 238612\n", + "Subject: RE: Upcoming Appointment Slots with Clinical Pharmacist Monica Hoang\n", + "----------------------------------------\n", + "Date Sent: 2024-11-18 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "My apologies for the slow reply but in checking my schedule, I’m afraid that I’m only available Monday Dec. 9, Tuesday Dec. 10, and Friday Dec. 13. I’m hoping that one of those dates are still available.Thank you! Hiroshi\n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Dear Mr. Saito,I have schedule a MyHealth video visit appointment with our clinical pharmacist Monica Hoang, on 12/9/24 at 10am. Please let me know if you have any further questions.Best regards,Vanessa Machuca, MAChronic Kidney Disease (510)387-0753\n", + "----------------------------------------\n", + "2025-06-17 14:15:53,446 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:53,447 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:53,448 - ✅ similarity: 0.3326\n", + "2025-06-17 14:15:53,449 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello,Sorry those times don’t work. I am a classroom teacher. I can meet at 8:30 AM M, Th , F. Or 3:15-4 M,T, Th, F. Please let me know if any of those times work. Best,EP \n", + "2025-06-17 14:15:53,449 - Provider's response to this similar message: Hi Ellen, Thank you for your response and for providing your availability. After reviewing your schedule, it looks like we’re unable to move forward with your candidacy for the program at this time.We appreciate your interest and the time you took to connect. I wish you the best in your future endeavors and hope we have the opportunity to work together at another time.Best regards,Vanessa Machuca, MA\n", + "2025-06-17 14:15:53,450 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:53,452 - Thread ID: 251224720\n", + "--------------------------------------------------------------------------------\n", + "idx: 209021\n", + "Subject: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,Sorry those times don’t work. I am a classroom teacher. I can meet at 8:30 AM M, Th , F. Or 3:15-4 M,T, Th, F. Please let me know if any of those times work. Best,EP \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Hi Ellen, Thank you for your response and for providing your availability. After reviewing your schedule, it looks like we’re unable to move forward with your candidacy for the program at this time.We appreciate your interest and the time you took to connect. I wish you the best in your future endeavors and hope we have the opportunity to work together at another time.Best regards,Vanessa Machuca, MA\n", + "----------------------------------------\n", + "idx: 209020\n", + "Subject: RE: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, yes, I would like to participate in this program if possible. Please send me information. Thank you, Ellen Paisley. \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Hi Ellen, Next step is to get you scheduled with our clinical pharmacist, feel free to reach me at my direct extension, (510)387-0753 when you are ready to schedule. Best, Vanessa Machuca, MA\n", + "----------------------------------------\n", + "idx: 209019\n", + "Subject: RE: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello -left you a voicemail. I am interested. EP. \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:15:53,453 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:53,454 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:53,454 - ✅ similarity: 0.3245\n", + "2025-06-17 14:15:53,455 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hello, yes, I would like to participate in this program if possible. Please send me information. Thank you, Ellen Paisley. \n", + "2025-06-17 14:15:53,456 - Provider's response to this similar message: Hi Ellen, Next step is to get you scheduled with our clinical pharmacist, feel free to reach me at my direct extension, (510)387-0753 when you are ready to schedule. Best, Vanessa Machuca, MA\n", + "2025-06-17 14:15:53,457 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:53,461 - Thread ID: 251224720\n", + "--------------------------------------------------------------------------------\n", + "idx: 209021\n", + "Subject: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,Sorry those times don’t work. I am a classroom teacher. I can meet at 8:30 AM M, Th , F. Or 3:15-4 M,T, Th, F. Please let me know if any of those times work. Best,EP \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Hi Ellen, Thank you for your response and for providing your availability. After reviewing your schedule, it looks like we’re unable to move forward with your candidacy for the program at this time.We appreciate your interest and the time you took to connect. I wish you the best in your future endeavors and hope we have the opportunity to work together at another time.Best regards,Vanessa Machuca, MA\n", + "----------------------------------------\n", + "idx: 209020\n", + "Subject: RE: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-05 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello, yes, I would like to participate in this program if possible. Please send me information. Thank you, Ellen Paisley. \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "Hi Ellen, Next step is to get you scheduled with our clinical pharmacist, feel free to reach me at my direct extension, (510)387-0753 when you are ready to schedule. Best, Vanessa Machuca, MA\n", + "----------------------------------------\n", + "idx: 209019\n", + "Subject: RE: Free Hypertension management program\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello -left you a voicemail. I am interested. EP. \n", + "----------------------------------------\n", + "Provider Response by MACHUCA, VANESSA:\n", + "No response\n", + "----------------------------------------\n", + "2025-06-17 14:15:53,461 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:54,087 - Original Message:\n", + "2025-06-17 14:15:54,088 - original_query_message: Good morning Chris,I’ve continued taking omeprazole and have seen some improvement since we last spoken but still feeling a bit uncomfortable. Would you be able to refer me to a GI specialist? I would like to try and find the cause of the issue and am wondering if I have some food sensitivity that I’m not aware of that is continuing to aggravate my symptoms. Thank you,Pauli\n", + "2025-06-17 14:15:55,663 - Query Parameters:\n", + "2025-06-17 14:15:55,665 - query_message: Hi Chris,I hope you’re doing well. I wanted to check in because although the pantoprazole you prescribed has helped calm down the worst of my acid reflux, I’m still having pretty frequent bloating and some mild stomach cramps after meals. It’s been going on for a couple of months now, and I’m starting to wonder if something in my diet is causing it—especially since I seem to feel worse after eating bread or dairy. Do you think it would be worthwhile to see a specialist for some further tests, just to rule out things like celiac disease or intolerances? I’m feeling a bit lost trying to figure it all out on my own. Let me know what you think!Thanks so much,Sam\n", + "2025-06-17 14:15:55,666 - receiver: PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING\n", + "2025-06-17 14:15:55,667 - department: STANFORD PRIMARY CARE LOS ALTOS\n", + "2025-06-17 14:15:55,670 - specialty: Primary Care\n", + "2025-06-17 14:15:56,635 - \n", + "Number of results: 5\n", + "2025-06-17 14:15:56,639 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:56,641 - ✅ similarity: 0.7251\n", + "2025-06-17 14:15:56,643 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Good morning Chris,I’ve continued taking omeprazole and have seen some improvement since we last spoken but still feeling a bit uncomfortable. Would you be able to refer me to a GI specialist? I would like to try and find the cause of the issue and am wondering if I have some food sensitivity that I’m not aware of that is continuing to aggravate my symptoms. Thank you,Pauli\n", + "2025-06-17 14:15:56,645 - Provider's response to this similar message: Hello,No problem. Continue with the daily omeprazole. I have placed a referral. They will call you after processing your insurance to schedule.Thank youChris\n", + "2025-06-17 14:15:56,647 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:56,652 - Thread ID: 253383995\n", + "--------------------------------------------------------------------------------\n", + "idx: 109792\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you Chris! Happy Holidays! \n", + "----------------------------------------\n", + "Provider Response by GONZALES, CHRISTOPHER:\n", + "No response\n", + "----------------------------------------\n", + "idx: 109791\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Good morning Chris,I’ve continued taking omeprazole and have seen some improvement since we last spoken but still feeling a bit uncomfortable. Would you be able to refer me to a GI specialist? I would like to try and find the cause of the issue and am wondering if I have some food sensitivity that I’m not aware of that is continuing to aggravate my symptoms. Thank you,Pauli\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hello,No problem. Continue with the daily omeprazole. I have placed a referral. They will call you after processing your insurance to schedule.Thank youChris\n", + "----------------------------------------\n", + "2025-06-17 14:15:56,662 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:56,663 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:56,663 - ✅ similarity: 0.6094\n", + "2025-06-17 14:15:56,664 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Dr. Tsai,I hope this message finds you well. I’m reaching out because I’ve been unable to get in touch with my doctor in SoCal, who recently prescribed me 40mg of pantoprazole for ongoing stomach and acid reflux issues. Unfortunately, my apartment building in Pacific Palisades recently burned down, and I left my prescriptions inside.Given the circumstances, I’m wondering if you would be able to help me get a replacement prescription or advise me on the best steps to take. I deeply appreciate your understanding and assistance during this challenging time.Thank you so much,Jacqueline\n", + "2025-06-17 14:15:56,665 - Provider's response to this similar message: Hi Jacqueline,Yes, of course. I saw your grandma Joanne and she mentioned to me what had happened and I have been thinking of you!I am happy to help you with this. I will send the prescription to the CVS in San Mateo.Let me know if I can assist with anything else.Sincerely,Cynthia Tsai, MD\n", + "2025-06-17 14:15:56,666 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:56,670 - Thread ID: 255610024\n", + "--------------------------------------------------------------------------------\n", + "idx: 7937\n", + "Subject: Prescription Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-13 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Tsai,I hope this message finds you well. I’m reaching out because I’ve been unable to get in touch with my doctor in SoCal, who recently prescribed me 40mg of pantoprazole for ongoing stomach and acid reflux issues. Unfortunately, my apartment building in Pacific Palisades recently burned down, and I left my prescriptions inside.Given the circumstances, I’m wondering if you would be able to help me get a replacement prescription or advise me on the best steps to take. I deeply appreciate your understanding and assistance during this challenging time.Thank you so much,Jacqueline\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Jacqueline,Yes, of course. I saw your grandma Joanne and she mentioned to me what had happened and I have been thinking of you!I am happy to help you with this. I will send the prescription to the CVS in San Mateo.Let me know if I can assist with anything else.Sincerely,Cynthia Tsai, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:56,671 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:56,672 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:56,673 - ✅ similarity: 0.5748\n", + "2025-06-17 14:15:56,674 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Jee,I hope you are well.I still haven’t done my bloodwork.When you have a moment can you please add an h-pylori test to the panel?Thanks and wishing you happy holidays and all the best :)Shelly \n", + "2025-06-17 14:15:56,675 - Provider's response to this similar message: Dear Shelly Bamberger, It's important to discuss new test orders directly with a healthcare provider who can assess your situation safely and effectively. Please make an appointment to address your concerns with your provider or another member of our care team. To make scheduling easier, please use the attached scheduling ticket. If you can't find an appointment that fits your needs, don’t hesitate to call 650-498-9000 for assistance. We’re here to help! MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. For same-day appointments, please enable the \"Extend to include other providers who work directly with your chosen provider\" option when scheduling. This will help the app find additional available providers in Los Altos. Some of our providers dedicated to same-day appointments include:Dr. Julie Lee,Dr. Sharif VakiliChristopher GonzalesLeeAnn RanieriIlyssa PaduaThank you,Stanford Primary Care Los Altos\n", + "2025-06-17 14:15:56,676 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:56,679 - Thread ID: 253458844\n", + "--------------------------------------------------------------------------------\n", + "idx: 106686\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-16 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Jee,I hope you are well.I still haven’t done my bloodwork.When you have a moment can you please add an h-pylori test to the panel?Thanks and wishing you happy holidays and all the best :)Shelly \n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Dear Shelly Bamberger, It's important to discuss new test orders directly with a healthcare provider who can assess your situation safely and effectively. Please make an appointment to address your concerns with your provider or another member of our care team. To make scheduling easier, please use the attached scheduling ticket. If you can't find an appointment that fits your needs, don’t hesitate to call 650-498-9000 for assistance. We’re here to help! MyHealth is for Non-Urgent issues only. If you are experiencing a medical emergency, please call 911 immediately. For same-day appointments, please enable the \"Extend to include other providers who work directly with your chosen provider\" option when scheduling. This will help the app find additional available providers in Los Altos. Some of our providers dedicated to same-day appointments include:Dr. Julie Lee,Dr. Sharif VakiliChristopher GonzalesLeeAnn RanieriIlyssa PaduaThank you,Stanford Primary Care Los Altos\n", + "----------------------------------------\n", + "2025-06-17 14:15:56,681 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:56,682 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:56,683 - ✅ similarity: 0.5690\n", + "2025-06-17 14:15:56,684 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi DoctorSince we met last week I’ve been experiencing increased pain on the right side of my abdomen. Yesterday it was bad enough in intensity to wake me up in the night too. I’m still taking pantoprazole twice a day. I’m not sure what to do next as this seems like a new development over the last few days. Thank youAnuj\n", + "2025-06-17 14:15:56,685 - Provider's response to this similar message: Hi Anuj,Pain waking you from sleep is definitely more severe and we want to address as soon as possible. If it has settled down, then we can have you evaluated as an outpatient in the following ways;I placed a referral to general surgey who can discuss gall bladder removal for youYou have the appointment with GI and they will consider an endoscopy (camera in stomach) to see if there is an ulcer or other source of the pain being so severeIf it has not settled down, or is severe again the safest thing is actually the emergency room where they can do an evaluation and imaging quickly.Please let me know how you are doing,Dr. E\n", + "2025-06-17 14:15:56,686 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:56,689 - Thread ID: 252604405\n", + "--------------------------------------------------------------------------------\n", + "idx: 140485\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi DoctorSince we met last week I’ve been experiencing increased pain on the right side of my abdomen. Yesterday it was bad enough in intensity to wake me up in the night too. I’m still taking pantoprazole twice a day. I’m not sure what to do next as this seems like a new development over the last few days. Thank youAnuj\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Anuj,Pain waking you from sleep is definitely more severe and we want to address as soon as possible. If it has settled down, then we can have you evaluated as an outpatient in the following ways;I placed a referral to general surgey who can discuss gall bladder removal for youYou have the appointment with GI and they will consider an endoscopy (camera in stomach) to see if there is an ulcer or other source of the pain being so severeIf it has not settled down, or is severe again the safest thing is actually the emergency room where they can do an evaluation and imaging quickly.Please let me know how you are doing,Dr. E\n", + "----------------------------------------\n", + "2025-06-17 14:15:56,689 - ################################################################################END################################################################################\n", + "2025-06-17 14:15:56,690 - ################################################################################START################################################################################\n", + "2025-06-17 14:15:56,691 - ✅ similarity: 0.5328\n", + "2025-06-17 14:15:56,692 - Sender: MYCHART, GENERIC [ T200162] -> the retrieved similar message : Hi Dr. Tsai - It's been five weeks more of taking the Omeprazole and I still have the burning pain after eating/drinking. What do you suggest? - Diane\n", + "2025-06-17 14:15:56,693 - Provider's response to this similar message: Hi Diane,I suggest 2 things:1) let's try an alternate medicine in the same class. Sometimes one works better than another. Instead of omeprazole 20 mg daily, try esomeprazole 40 mg daily. I sent this prescription in for you. Let me know after 2 weeks how things are going.2) in case things continue to be stubborn as we try to adjust medications, I have referred you to a gastroenterologist so we can have their input. You will get a phone call to schedule.Sincerely,Cynthia Tsai, MD\n", + "2025-06-17 14:15:56,694 - -----------printing the whole thread-------------\n", + "2025-06-17 14:15:56,697 - Thread ID: 254754568\n", + "--------------------------------------------------------------------------------\n", + "idx: 46481\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-07 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "One more question...will this medication also damage my bones? FYI: I'm starting the gut restoration program today through Integrative Medicine. - Diane\n", + "----------------------------------------\n", + "Provider Response by CHEN, DORIS PAO-CHIN:\n", + "Hi Diane,Thank you for your message. I am one of the Internal Medicine physicians covering messages in the clinic today. I hope I can help you with this.The bone loss associated with PPIs (medications such as omeprazole, esomeprazole) can occur with long term use. However, if you are having symptoms from too much acid, the benefits of the medications outweigh the risks. We'll try to use the medications for the shortest duration necessary to manage your symptoms to avoid this. I'm glad to hear you're starting the gut restoration program through Integrative Medicine, as it may help address some of your symptoms as well.Hope that helps and if you have any concerns or experience any side effects, please let us know.Take care,Doris Chen MD\n", + "----------------------------------------\n", + "idx: 46480\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsai - The medication costs $110. I'm hoping I can get it for less with a GoodRX coupon. Do I taper off the Omeprazole first? Are there side effects to this new medication? Thanks - Diane\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Diane, you can start the new medicine without tapering the omeprazole as they are in the same class of medicines (because of this, the side effect profile is also similar to omeprazole).\n", + "----------------------------------------\n", + "idx: 46479\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-03 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Tsai - It's been five weeks more of taking the Omeprazole and I still have the burning pain after eating/drinking. What do you suggest? - Diane\n", + "----------------------------------------\n", + "Provider Response by PRIMARY CARE LOS ALTOS MYHEALTH CLINIC MESSAGING:\n", + "Hi Diane,I suggest 2 things:1) let's try an alternate medicine in the same class. Sometimes one works better than another. Instead of omeprazole 20 mg daily, try esomeprazole 40 mg daily. I sent this prescription in for you. Let me know after 2 weeks how things are going.2) in case things continue to be stubborn as we try to adjust medications, I have referred you to a gastroenterologist so we can have their input. You will get a phone call to schedule.Sincerely,Cynthia Tsai, MD\n", + "----------------------------------------\n", + "2025-06-17 14:15:56,698 - ################################################################################END################################################################################\n" + ] + } + ], + "source": [ + "# Initialize a list to store all similarity scores\n", + "all_similarity_scores = []\n", + "\n", + "# Process each row in the dataframe\n", + "for idx in range(len(sampled_df)):\n", + " # Get the current question and metadata\n", + " current_question = sampled_df.iloc[idx][\"generated_question_1\"]\n", + " current_metadata = sampled_df.iloc[idx]\n", + " \n", + " # Retrieve similar questions\n", + " results = retrieve_similar_question_from_db(\n", + " query_message=current_question,\n", + " query_message_metadata=current_metadata\n", + " )\n", + " \n", + " # Extract similarity scores for this question\n", + " question_scores = []\n", + " for result in results:\n", + " question_scores.append(result[\"cosine_similarity\"])\n", + " \n", + " # Store the scores for this question\n", + " all_similarity_scores.append({\n", + " \"question\": sampled_df.iloc[idx][\"Thread ID\"],\n", + " \"scores\": question_scores\n", + " })\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Summary Statistics:\n", + "Total questions processed: 100\n", + "Average mean similarity score: 0.6306\n", + "Highest similarity score across all questions: 0.9255\n", + "Lowest similarity score across all questions: 0.1699\n", + "\n", + "First few questions and their similarity scores:\n", + " question mean_score max_score min_score\n", + "0 248565804 0.532839 0.666926 0.475983\n", + "1 252536125 0.617155 0.768611 0.556189\n", + "2 248539685 0.702820 0.800587 0.659752\n", + "3 251870409 0.536923 0.743497 0.433928\n", + "4 253044034 0.724637 0.824934 0.673759\n" + ] + } + ], + "source": [ + "# Convert to DataFrame for easier analysis\n", + "similarity_df = pd.DataFrame(all_similarity_scores)\n", + "os.makedirs('../data/strictest/generated_question_set_1', exist_ok=True)\n", + "similarity_df.to_excel(\"../data/strictest/generated_question_set_1/similarity_df.xlsx\",)\n", + "\n", + "def safe_mean(x):\n", + " return np.mean(x) if len(x) > 0 else np.nan\n", + "\n", + "def safe_max(x):\n", + " return np.max(x) if len(x) > 0 else np.nan\n", + "\n", + "def safe_min(x):\n", + " return np.min(x) if len(x) > 0 else np.nan\n", + "\n", + "similarity_df['mean_score'] = similarity_df['scores'].apply(safe_mean)\n", + "similarity_df['max_score'] = similarity_df['scores'].apply(safe_max)\n", + "similarity_df['min_score'] = similarity_df['scores'].apply(safe_min)\n", + "\n", + "# Display summary statistics\n", + "print(\"\\nSummary Statistics:\")\n", + "print(f\"Total questions processed: {len(similarity_df)}\")\n", + "print(f\"Average mean similarity score: {similarity_df['mean_score'].mean():.4f}\")\n", + "print(f\"Highest similarity score across all questions: {similarity_df['max_score'].max():.4f}\")\n", + "print(f\"Lowest similarity score across all questions: {similarity_df['min_score'].min():.4f}\")\n", + "\n", + "# Display the first few rows of the results\n", + "print(\"\\nFirst few questions and their similarity scores:\")\n", + "print(similarity_df[['question', 'mean_score', 'max_score', 'min_score']].head())" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
questionscoresmean_scoremax_scoremin_score
0248565804[0.6669259935655069, 0.5375780770781803, 0.492...0.5328390.6669260.475983
1252536125[0.7686105826961741, 0.604896913285838, 0.5817...0.6171550.7686110.556189
2248539685[0.80058704782576, 0.6979248890707664, 0.69608...0.7028200.8005870.659752
3251870409[0.7434966466444465, 0.5451700491379841, 0.481...0.5369230.7434970.433928
4253044034[0.8249338703403749, 0.7335070579287605, 0.716...0.7246370.8249340.673759
..................
95254582848[0.807118228254636, 0.6556169952164522, 0.6070...0.6517690.8071180.584811
96254078314[0.8275702082634905, 0.6790365652479357, 0.655...0.6810190.8275700.612566
97254410110[0.8334445320871191, 0.7085685251980798, 0.699...0.7251400.8334450.689549
98251339593[0.7306887714376267, 0.5198861682609521, 0.440...0.4696860.7306890.324480
99253383995[0.725111671109131, 0.6094344468607499, 0.5748...0.6022280.7251120.532811
\n", + "

100 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " question scores mean_score \\\n", + "0 248565804 [0.6669259935655069, 0.5375780770781803, 0.492... 0.532839 \n", + "1 252536125 [0.7686105826961741, 0.604896913285838, 0.5817... 0.617155 \n", + "2 248539685 [0.80058704782576, 0.6979248890707664, 0.69608... 0.702820 \n", + "3 251870409 [0.7434966466444465, 0.5451700491379841, 0.481... 0.536923 \n", + "4 253044034 [0.8249338703403749, 0.7335070579287605, 0.716... 0.724637 \n", + ".. ... ... ... \n", + "95 254582848 [0.807118228254636, 0.6556169952164522, 0.6070... 0.651769 \n", + "96 254078314 [0.8275702082634905, 0.6790365652479357, 0.655... 0.681019 \n", + "97 254410110 [0.8334445320871191, 0.7085685251980798, 0.699... 0.725140 \n", + "98 251339593 [0.7306887714376267, 0.5198861682609521, 0.440... 0.469686 \n", + "99 253383995 [0.725111671109131, 0.6094344468607499, 0.5748... 0.602228 \n", + "\n", + " max_score min_score \n", + "0 0.666926 0.475983 \n", + "1 0.768611 0.556189 \n", + "2 0.800587 0.659752 \n", + "3 0.743497 0.433928 \n", + "4 0.824934 0.673759 \n", + ".. ... ... \n", + "95 0.807118 0.584811 \n", + "96 0.827570 0.612566 \n", + "97 0.833445 0.689549 \n", + "98 0.730689 0.324480 \n", + "99 0.725112 0.532811 \n", + "\n", + "[100 rows x 5 columns]" + ] + }, + "execution_count": 219, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "similarity_df" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Department Specialty Title\n", + "Primary Care 0.48\n", + "Family Medicine 0.32\n", + "Internal Medicine 0.20\n", + "Name: count, dtype: float64" + ] + }, + "execution_count": 227, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sampled_df[\"Department Specialty Title\"].value_counts()/len(sampled_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 223, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VKFCBXXs2PGuxru6uuqZZ57RRx99pM2bN+v333+Xm5ubRowYYbtVfebMmTu+A+7cuXPp/vymrL/V7X1T5hINGTIk1c9c//79Jcn2czd58mS98cYb+u6779S0aVOVLFlSnTp10oEDB+7qmJE3MAcIDzQHBweFhYUpLCxMFy9e1MqVKzV8+HC1atVKx44dU5EiRdIdm/JCGRsbm+qP78mTJ23zKVL63ToZM8WpU6fSvAqU1tyROXPmqEmTJpo2bZpd++XLlzM+yGxw67He7uTJkypQoIBKlChxz/vp0qWLXn75ZY0dO1bPP/+8nJyc0uxXunRpWSwWrV+/Ps135qS07dq1Szt37lRUVJRCQkJs6w8ePHjPtd6NUqVKaeDAgVqzZo127dqlwMDA+7LftFy6dElLlizRyJEjNWzYMFt7QkKCzp8/n+aYzM5hSkvlypXVpk0bTZkyRW3atNGiRYs0evRoFSxYMEvbq169urp3765JkyZp//79qlOnjsqUKZPqjQe3K1WqVLo/v5JSzX+6/dhT1oeHh6tLly5p7sPX11eSVLRoUY0ePVqjR4/W33//bbsa1L59e/355593d6DIdVwBgmkUL15c3bp108svv6zz58/b3uWS3hWAZs2aSboZTG61ZcsW7d27V82bN5ck1a1bV1arVV9//bVdv02bNmXqNobFYkn1Yv/777/bvQsrp/j6+qp8+fL66quv7G7lXLlyRfPnz7e9M+xeOTk56e2331b79u310ksvpduvXbt2MgxDJ06cSPPqX40aNST970Xs9uft008/vedab5WYmJjuBNeUW0spVxpyS8o7s25/Lj7//HMlJSXd07atVmuGV8gGDBig33//XSEhISpYsKCef/75O27z3Llzun79eprrUkJEynPapk0bRUdH225BpaV58+bas2ePtm3bZtc+a9YsWSwWNW3aNMN6fH19VaVKFe3cuTPNnzl/f385OzunGufm5qbQ0FA988wz2rdv3z3fKsb9wxUgPNDat2+vRx55RP7+/ipTpoyOHj2qSZMmycvLy/aulZQX048++kghISEqVKiQfH195evrqxdeeEEff/yxChQooDZt2tjeBebp6alBgwZJunn7IiwsTBERESpRooQ6d+6s48ePa/To0XJ3d0/zLd5padeund59912NHDlSjRs31r59+/TOO+/I29s7zXfB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JCREUVFRkqR58+bJMAw988wzaW4jJiZGBQr8707exYsX9cILL+jUqVNydXVVrVq1tG7dOtWpUyfnDgQAAOQrFsMwjNwuIq+Ji4uTq6urLl26JBcXl9wuBwBUcdjS3C4h046MbZvbJcBkMvP6nS8mQQMAAGQnAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdh9wuAADut4rDluZ2CQByGVeAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6RCAAACA6eRqAFq3bp3at28vDw8PWSwWfffdd3brQ0NDZbFY7B716tW743bnz58vPz8/Wa1W+fn5aeHChTl0BAAAID/K1QB05coV1axZU5988km6fVq3bq3Y2Fjb44cffshwmxs3blRQUJB69uypnTt3qmfPnnr66ae1efPm7C4fAADkUw65ufM2bdqoTZs2GfaxWq0qV67cXW9z0qRJatGihcLDwyVJ4eHhWrt2rSZNmqS5c+feU70AAODBkOfnAK1Zs0Zly5aVj4+Pnn/+eZ0+fTrD/hs3blTLli3t2lq1aqUNGzakOyYhIUFxcXF2DwAA8ODK0wGoTZs2+vLLL7V69Wp98MEH2rJli5o1a6aEhIR0x5w6dUpubm52bW5ubjp16lS6YyIiIuTq6mp7eHp6ZtsxAACAvCdXb4HdSVBQkO3/H3nkEfn7+8vLy0tLly5Vly5d0h1nsVjslg3DSNV2q/DwcIWFhdmW4+LiCEEAADzA8nQAup27u7u8vLx04MCBdPuUK1cu1dWe06dPp7oqdCur1Sqr1ZptdQIAgLwtT98Cu925c+d07Ngxubu7p9unfv36WrFihV3b8uXLFRAQkNPlAQCAfCJXrwDFx8fr4MGDtuXDhw9rx44dKlmypEqWLKlRo0apa9eucnd315EjRzR8+HCVLl1anTt3to0JDg5W+fLlFRERIUkaMGCAGjVqpHHjxqljx476/vvvtXLlSv3888/3/fgAAEDe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SkpK0iOPPKKaNWvaPe7WunXr1L59e3l4eMhisei7776zW28YhkaNGiUPDw85OTmpSZMm2r179x23O3/+fPn5+clqtcrPz08LFy7M7CECAIAHWJauAM2bN0/ffPONAgMD72nnV65cUc2aNdWrVy917do11frx48dr4sSJioqKko+Pj8aMGaMWLVpo3759cnZ2TnObGzduVFBQkN5991117txZCxcu1NNPP62ff/5ZdevWvad6AQDAg8FiGIaR2UEeHh5as2ZNts7/sVgsWrhwoTp16iTp5tUfDw8PDRw4UG+88YYkKSEhQW5ubho3bpxefPHFNLcTFBSkuLg4LVu2zNbWunVrlShRQnPnzr2rWuLi4uTq6qpLly7JxcXl3g4MyISKw5bmdgmA6R0Z2za3S0AWZeb1O0u3wAYPHqyPPvpIWchOd+3w4cM6deqUWrZsaWuzWq1q3LixNmzYkO64jRs32o2RpFatWmU4JiEhQXFxcXYPAADw4MrSLbCff/5Z0dHRWrZsmapXr65ChQrZrV+wYME9F3bq1ClJkpubm127m5ubjh49muG4tMakbC8tERERGj169D1UCwAA8pMsBaDixYurc+fO2V1LmiwWi92yYRip2u51THh4uMLCwmzLcXFx8vT0zEK1AAAgP8hSAIqMjMzuOlIpV66cpJtXdNzd3W3tp0+fTnWF5/Zxt1/tudMYq9Uqq9V6jxUDAID8IktzgCTpxo0bWrlypT799FNdvnxZknTy5EnFx8dnS2He3t4qV66cVqxYYWu7fv261q5dq4CAgHTH1a9f326MJC1fvjzDMQAAwFyydAXo6NGjat26tWJiYpSQkKAWLVrI2dlZ48eP17Vr1zR9+vS72k58fLwOHjxoWz58+LB27NihkiVL6qGHHtLAgQP13nvvqUqVKqpSpYree+89FSlSRM8++6xtTHBwsMqXL6+IiAhJNz+jqFGjRho3bpw6duyo77//XitXrtTPP/+clUMFAAAPoCwFoAEDBsjf3187d+5UqVKlbO2dO3dW375973o7W7duVdOmTW3LKfNwQkJCFBUVpaFDh+qff/5R//79deHCBdWtW1fLly+3+wygmJgYFSjwvwtZAQEBmjdvnt5880299dZbqlSpkr7++ms+AwgAANhk6XOASpcurV9++UW+vr5ydnbWzp079fDDD+vIkSPy8/PT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ZeL/ZeV8RUREqEGDBnr99dclSY8++qiKFi2qJ598UmPGjJG7u3uO151dmAOURYULF1bt2rW1YsUKu/YVK1YoICAgVX8XFxf98ccf2rFjh+3Rr18/+fr6aseOHapbt+79Kt20MnvO0rN9+/Z89UueX2XlfDVo0EAnT55UfHy8rW3//v0qUKCAKlSokKP14t5+x9auXauDBw+qT58+OVkibpGV83X16lUVKGAfHQoWLCjpZojNV3Jr9vWDIOXtgzNmzDD27NljDBw40ChatKjt3QvDhg0zevbsme543gV2/2X2nH344YfGwoULjf379xu7du0yhg0bZkgy5s+fn1uHYCqZPV+XL182KlSoYHTr1s3YvXu3sXbtWqNKlSpG3759c+sQTCerfxd79Ohh1K1b936Xa3qZPV+RkZGGg4ODMXXqVOPQoUPGzz//bPj7+xt16tTJrUPIMm6B3YOgoCCdO3dO77zzjmJjY/XII4/ohx9+sL17ITY2VjExMblcJW6V2XN2/fp1DRkyRCdOnJCTk5OqV6+upUuXKjAwMLcOwVQye76KFSumFStW6NVXX5W/v79KlSqlp59+WmPGjMmtQzCdrPxdvHTpkubPn6+PPvooN0o2tcyer9DQUF2+fFmffPKJBg8erOLFi6tZs2YaN25cbh1CllkMI79dswIAALg3zAECAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACkCc1adJEAwcOvKdtpHy5ZopRo0bpscceu6dtStKaNWtksVh08eLFe94WgNxBAAIeIKGhobJYLOrXr1+qdf3795fFYlFoaOj9L+w2SUlJioiIUNWqVeXk5KSSJUuqXr16ioyMtPVZsGCB3n333XvaT1BQkPbv33+v5aYSEBCg2NhY25eu3h607sX8+fNVt25dubq6ytnZWdWrV9fgwYOzZdsA/oevwgAeMJ6enpo3b54+/PBDOTk5SZKuXbumuXPn6qGHHsrl6m4aNWqUPvvsM33yySfy9/dXXFyctm7dqgsXLtj6lCxZ8p734+TkZHsOsktiYqIKFy6scuXKZet2JWnlypXq3r273nvvPXXo0EEWi0V79uzRqlWrsn1fKZKSkmSxWFJ9wSXwoOMnHnjAPP7443rooYe0YMECW9uCBQvk6empWrVq2fU1DEPjx4/Xww8/LCcnJ9WsWVP//e9/beuTkpLUp08feXt7y8nJSb6+vqm+ryk0NFSdOnXS+++/L3d3d5UqVUovv/yyEhMT061x8eLF6t+/v5566il5e3urZs2a6tOnj8LCwmx9br8FVrFiRY0ZM0bBwcEqVqyYvLy89P333+vMmTPq2LGjihUrpho1amjr1q22MXe6MrNlyxa1aNFCpUuXlqurqxo3bqxt27bZ9bFYLJo+fbo6duyookWLasyYMXa3wNasWaNevXrp0qVLslgsslgsGjVqlN555x3VqFEj1T5r166tt99+O816lixZooYNG+r111+Xr6+vfHx81KlTJ3388cd2/RYtWiR/f385OjqqdOnS6tKli23dhQsXFBwcrBIlSqhIkSJq06aNDhw4kOo5WbJkifz8/GS1WnX06FFdv35dQ4cOVfny5VW0aFHVrVtXa9asSfe5A/I7AhDwAOrVq5fd7aSZM2eqd+/eqfq9+eabioyM1LRp07R7924NGjRIPXr00Nq1ayVJycnJqlChgr755hvt2bNHb7/9toYPH65vvvnGbjvR0dE6dOiQoqOj9cUXXygqKkpRUVHp1leuXDmtXr1aZ86cydRxffjhh2rQoIG2b9+utm3bqmfPngoODlaPHj20bds2Va5cWcHBwbrbrzi8fPmyQkJCtH79em3atElVqlRRYGCgLl++bNdv5MiR6tixo/74449Uz2NAQIAmTZokFxcXxcbGKjY2VkOGDFHv3r21Z88ebdmyxdb3999/1/bt29O9DVmuXDnt3r1bu3btSrfmpUuXqkuXLmrbtq22b9+uVatWyd/f37Y+NDRUW7du1aJFi7Rx40YZhqHAwEC7QHr16lVFRETo888/1+7du1W2bFn16tVLv/zyi+bNm6fff/9dTz31lFq3bm0XnoAHSq5+Fz2AbBUSEmJ07NjROHPmjGG1Wo3Dhw8bR44cMRwdHY0zZ84YHTt2NEJCQgzDMIz4+HjD0dHR2LBhg902+vTpYzzzzDPp7qN///5G165d7fbp5eVl3Lhxw9b21FNPGUFBQeluY/fu3Ua1atWMAgUKGDVq1DBefPFF44cffrDr07hxY2PAgAG2ZS8vL6NHjx625djYWEOS8dZbb9naNm7caEgyYmNjDcMwjMjISMPV1dW2fuTIkUbNmjXTrevGjRuGs7OzsXjxYlubJGPgwIF2/aKjow1JxoULF9LcT4o2bdoYL730km154MCBRpMmTdLdf3x8vBEYGGhIMry8vIygoCBjxowZxrVr12x96tevbzz33HNpjt+/f78hyfjll19sbWfPnjWcnJyMb775xlarJGPHjh22PgcPHjQsFotx4sQJu+01b97cCA8PT7deID/jChDwACpdurTatm2rL774QpGRkWrbtq1Kly5t12fPnj26du2aWrRooWLFitkes2bN0qFDh2z9pk+fLn9/f5UpU0bFihXTf/7zH8XExNhtq3r16ipYsKBt2d3dXadPn063Pj8/P+3atUubNm1Sr1699Pfff6t9+/bq27dvhsf16KOP2v7fzc1NkuxuM6W0ZbTvW50+fVr9+vWTj4+PXF1d5erqqvj4+FTHd+sVlsx4/vnnNXfuXF27dk2JiYn68ssv07wSl6Jo0aJaunSpDh48qDfffFPFihXT4MGDVadOHV29elWStGPHDjVv3jzN8Xv37pWDg4Pq1q1raytVqpR8fX21d+9eW1vhwoXtnstt27bJMAz5+PjY/SysXbvW7mcBeJAwCRp4QPXu3VuvvPKKJGnKlCmp1icnJ0u6eUulfPnyduusVqsk6ZtvvtGgQYP0wQcfqH79+nJ2dtaECRO0efNmu/6FChWyW7ZYLLbtp6dAgQJ64okn9MQTT2jQoEGaM2eOevbsqREjRsjb2zvNMbfux2KxpNt2p32nCA0N1ZkzZzRp0iR5eXnJarWqfv36un79ul2/okWL3tX2bte+fXtZrVYtXLhQVqtVCQkJ6tq16x3HVapUSZUqVVLfvn01YsQI+fj46Ouvv1avXr0ynNRtpHPrzzAM23Mj3ZwcfutycnKyChYsqN9++80uyEpSsWLF7lgvkB8RgIAHVOvWrW0v5K1atUq1PmUCbExMjBo3bpzmNtavX6+AgAD179/f1pZTVwT8/PwkSVeuXMmR7adl/fr1mjp1qgIDAyVJx44d09mzZzO9ncKFCyspKSlVu4ODg0JCQhQZGSmr1aru3burSJEimdp2xYoVVaRIEdvz8uijj2rVqlXq1atXqr5+fn66ceOGNm/erICAAEnSuXPntH//flWrVi3dfdSqVUtJSUk6ffq0nnzyyUzVB+RXBCDgAVWwYEHbbY/b/1UvSc7OzhoyZIgGDRqk5ORkNWzYUHFxcdqwYYOKFSumkJAQVa5cWbNmzdJPP/0kb29vzZ49W1u2bEn3Cs3d6tatmxo0aKCAgACVK1dOhw8fVnh4uHx8fFS1atV72nZmVK5cWbNnz7a9Ff/111/P0tvmK1asqPj4eK1atUo1a9ZUkSJFbEGnb9++tvDxyy+/ZLidUaNG6erVqwoMDJSXl5cuXryoyZMnKzExUS1atJB0c0J28+bNValSJXXv3l03btzQsmXLNHToUFWpUkUdO3bU888/r08//VTOzs4aNmyYypcvr44dO6a7Xx8fHz333HMKDg7WBx98oFq1auns2bNavXq1atSoYQuIwIOEOUDAA8zFxUUuLi7prn/33Xf19ttvKyIiQtWqVVOrVq20ePFiW8Dp16+funTpoqCgINWtW1fnzp2zuxqUVSn7ad++vXx8fBQSEqKqVatq+fLlcnC4f/8umzlzpi5cuKBatWqpZ8+eeu2111S2bNlMbycgIED9+vVTUFCQypQpo/Hjx9vWValSRQEBAfL19bWbm5OWxo0b66+//lJwcLCqVq2qNm3a6NSpU1q+fLl8fX0l3fx4gG+//VaLFi3SY489pmbNmtndkoyMjFTt2rXVrl071a9fX4Zh6Icffkh1m/J2kZGRCg4O1uDBg+Xr66sOHTpo8+bN8vT0zPTzAeQHFiO9m8YAgHtmGIaqVq2qF1980e5zjgDkLm6BAUAOOX36tGbPnq0TJ06kOWcHQO4hAAFADnFzc1Pp0qX12WefqUSJErldDoBbEIAAIIcwwwDIu5gEDQAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATOf/ACohQlxsmNNDAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "similarity_df[\"mean_score\"].plot(kind='hist', legend=False)\n", + "plt.title(\"Histogram of Mean Similarity Scores\")\n", + "plt.xlabel(\"Mean Similarity Score\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ------------- strictest filter ---------\n", + "### all receiver, department and specialty exact match" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from google.cloud import bigquery\n", + "\n", + "# Set up logging\n", + "logger = setup_logging()\n", + "\n", + "# query_message = message_content.replace(\"\\n\", \"\")\n", + "query_message = sampled_df.iloc[i][\"Patient Message\"]\n", + "query_vector_literal = query_embedding_func(query_message, embeddings_model)\n", + "\n", + "# Filter criteria \n", + "receiver = sampled_df.iloc[0][\"Recipient Names\"]\n", + "department = sampled_df.iloc[0][\"Message Department\"]\n", + "specialty = sampled_df.iloc[0]['Department Specialty Title']\n", + "\n", + "query = f\"\"\"\n", + "WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + ")\n", + "\n", + "SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + "FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_pcp_only` AS t,\n", + " input_embedding\n", + "WHERE\n", + " t.`Recipient Names` = @receiver\n", + " AND t.`Message Department` = @department\n", + " AND t.`Department Specialty Title` = @specialty\n", + "ORDER BY cosine_similarity DESC\n", + "LIMIT 5\n", + "\"\"\"\n", + "\n", + "job = client.query(\n", + " query,\n", + " job_config=bigquery.QueryJobConfig(\n", + " query_parameters=[\n", + " bigquery.ScalarQueryParameter(\"receiver\", \"STRING\", receiver),\n", + " bigquery.ScalarQueryParameter(\"department\", \"STRING\", department),\n", + " bigquery.ScalarQueryParameter(\"specialty\", \"STRING\", specialty)\n", + " ]\n", + " )\n", + ")\n", + "\n", + "# Log query parameters\n", + "log_query_parameters(logger, query_message, receiver, department, specialty)\n", + "\n", + "# Try to get results\n", + "try:\n", + " results = list(job.result())\n", + " log_results(logger, results, beautiful_print_thread, answer_question_paired_data_dedup)\n", + "except Exception as e:\n", + " log_error(logger, str(e))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## -----------Tiered Retrieval-----------" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "from google.cloud import bigquery\n", + "\n", + "def run_query_bq(filter_field, filter_value, query_vector_literal, client, N, similarity_cutoff=0.7, exclude_threads=None):\n", + " exclude_clause = \"\"\n", + " params = [\n", + " bigquery.ScalarQueryParameter(\"filter_value\", \"STRING\", filter_value),\n", + " bigquery.ScalarQueryParameter(\"similarity_cutoff\", \"FLOAT64\", similarity_cutoff),\n", + " bigquery.ScalarQueryParameter(\"N\", \"INT64\", N)\n", + " ]\n", + " if exclude_threads and len(exclude_threads) > 0:\n", + " # FIX: Cast to int and use INT64 type\n", + " exclude_threads = [int(x) for x in exclude_threads]\n", + " exclude_clause = \"AND t.`Thread ID` NOT IN UNNEST(@exclude_threads)\"\n", + " params.append(bigquery.ArrayQueryParameter(\"exclude_threads\", \"INT64\", exclude_threads))\n", + " \n", + " base_query = f\"\"\"\n", + " WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + " ),\n", + " scored_messages AS (\n", + " SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + " FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_pcp_only` AS t, input_embedding\n", + " WHERE t.`{filter_field}` = @filter_value\n", + " {exclude_clause}\n", + " )\n", + " SELECT *\n", + " FROM scored_messages\n", + " WHERE cosine_similarity >= @similarity_cutoff\n", + " ORDER BY cosine_similarity DESC\n", + " LIMIT @N\n", + " \"\"\"\n", + "\n", + " job = client.query(\n", + " base_query,\n", + " job_config=bigquery.QueryJobConfig(query_parameters=params)\n", + " )\n", + " return list(job.result())\n", + "\n", + "\n", + "def run_tiered_retrieval(query_vector_literal, receiver, department, specialty, client, target_N=5, similarity_cutoff=0.7):\n", + " all_results = []\n", + "\n", + " # 1. Sender Level\n", + " results = run_query_bq(\n", + " filter_field=\"Recipient Names\", filter_value=receiver,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N,\n", + " similarity_cutoff=similarity_cutoff\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"sender\"} for r in results])\n", + "\n", + " # 2. Department Level\n", + " if len(all_results) < target_N:\n", + " exclude_threads = [int(r[\"Thread ID\"]) for r in all_results]\n", + " results = run_query_bq(\n", + " filter_field=\"Message Department\", filter_value=department,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N - len(all_results),\n", + " similarity_cutoff=similarity_cutoff,\n", + " exclude_threads=exclude_threads\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"department\"} for r in results])\n", + "\n", + " # 3. Specialty Level\n", + " if len(all_results) < target_N:\n", + " exclude_threads = [int(r[\"Thread ID\"]) for r in all_results]\n", + " results = run_query_bq(\n", + " filter_field=\"Department Specialty Title\", filter_value=specialty,\n", + " query_vector_literal=query_vector_literal,\n", + " client=client,\n", + " N=target_N - len(all_results),\n", + " similarity_cutoff=similarity_cutoff,\n", + " exclude_threads=exclude_threads\n", + " )\n", + " all_results.extend([{**dict(r), \"retrieval_tier\": \"specialty\"} for r in results])\n", + "\n", + " return all_results[:target_N]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Query Parameters:\n", + "query_message: Hi Dr. Martin,I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?Thanks so much for your help!Best, Melissa\n", + "receiver: MARTIN, BETH\n", + "department: HEMATOLOGY\n", + "specialty: Hematology\n", + "\n", + "Number of results: 10\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8124\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hi Dr. Martin,I hope you're well! Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?Thanks!Barbara\n", + "➡️ Provider's response to this specific message is: Barbara, No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. Beth \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 252160980\n", + "--------------------------------------------------------------------------------\n", + "idx: 161352\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Martin,\n", + "I hope you're well! \n", + "\n", + "Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?\n", + "\n", + "Thanks!\n", + "Barbara\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Barbara, \n", + "\n", + "No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. \n", + "\n", + "I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8013\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hello Dr. Martin,I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.Regards,Thomas Obata\n", + "➡️ Provider's response to this specific message is: Mr Obata, I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255287111\n", + "--------------------------------------------------------------------------------\n", + "idx: 21428\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Martin,\n", + "\n", + "Thank you, I look forward to your pre-op plan. Please understand that I could be getting the call for a liver match any day, therefore time is of the essence. Thank you in advance for your understanding.\n", + "\n", + "Best regards,\n", + "\n", + "Thomas\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 21427\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "I am listed as top priority and in the number one position on the Stanford liver transplant list. The AVMs in my liver are compromising my heart, hence the top priority position.\n", + "I just visited Question Diagnostics and completed my blood panel.\n", + "Thank you,\n", + "Thomas Obata \n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Got it\n", + "\n", + "I will develop a coag pre op\n", + "Plan for you \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "idx: 21426\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. \n", + "Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.\n", + "\n", + "Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.\n", + "\n", + "Regards,\n", + "Thomas Obata\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Obata, \n", + "\n", + "I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. \n", + "\n", + "I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. \n", + "\n", + "If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. \n", + "\n", + "I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.7430\n", + "➡️ Message by Sender MONTEZ, ANDREA [ S0285483]: Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?Pat Greene\n", + "➡️ Provider's response to this specific message is: Ms Greene, Thanks for letting us know. . I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 250924952\n", + "--------------------------------------------------------------------------------\n", + "idx: 224536\n", + "Subject: RE:follow up\n", + "----------------------------------------\n", + "Date Sent: 2024-11-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Please move the visit to another time -- I'm not sure I will be able to make the 22d at 4:30. It is my last day of work and I do not know when I will be leaving. I am scheduled for my first iron infusion on November 25th -- do I need to see Dr. Martin before I have my first iron infusion?\n", + "\n", + "Pat Greene\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Ms Greene, \n", + "\n", + "Thanks for letting us know. . \n", + "\n", + "I'll ask the schedulers to change the appointment to 9:30 on Monday. I can easily see you in the infusion center. Do let me/us know if any questions before the infusion. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8480\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hello Dr Martin Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. Thank you for your time Laura Gonzalez \n", + "➡️ Provider's response to this specific message is: Hello Laura,What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.Thank you.Jenny, RNBlake Wilbur Lab900 Blake Wilbur Drive1st Floor, Room W1083Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Cancer Center Lab875 Blake Wilbur DriveRoom CC-1104Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Hoover Lab211 Quarry RoadSuite 101Palo Alto, CA 94304Hours: Mon-Fri 7:00am -7:00pm Boswell Lab300 Pasteur DrivePavilion A, Level 1, A12Stanford, CA 94305Hours: Mon-Fri 6:00am -5:30pmSat-Sun 7:00am-3:30pm Redwood City440 Broadway Street, Pavillion B 1st Floor B11Redwood City, California 94063Hours: Monday - Friday 7am - 6pm Blood Draw at Stanford Cancer Center South Bay2589 Samaritan Drive4th Floor, San Jose, CA 95124 Hours: Mon-Fri 7:00am-6:00pm Blood Draw at Stanford Emeryville5800 Hollis StreetFirst Floor, Pavilion BEmeryville, CA 94608Hours: Mon-Fri 7:30am-5:00pm\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255116564\n", + "--------------------------------------------------------------------------------\n", + "idx: 28794\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Shortness of breath when walking short distances. Also is it possible to send the orders closer to home I have a quest here in Fremont \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "I have placed lab orders for you at Quest. Please let us know once you've done the labs so we know to look for results. We do not get automatic alerts for outside results. If your symptoms should worsen please be evaluated by urgent care, ER, or call for a sick call appt. Thank you and take care.\n", + "\n", + "Jenny, RN \n", + "----------------------------------------\n", + "idx: 28793\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Martin \n", + "Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. \n", + "Thank you for your time \n", + "Laura Gonzalez \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8438\n", + "➡️ Message by Sender ZAMORA, ESMERALDA [ S0352882]: Hi Dr.Berube, I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. Thanks! Brianna \n", + "➡️ Provider's response to this specific message is: Hi Brianna, You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.Key Takeaway:Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.Understanding Your Condition:Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.Current Treatment:You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.Avoiding Iron Supplements:Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.Additional Nutritional Guidance:While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.When to Seek Help:If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.If you have any additional questions, feel free to ask!Thanks, J Ryan, MSN, RNNurse Coordinator, Hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255261295\n", + "--------------------------------------------------------------------------------\n", + "idx: 22548\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Berube, \n", + "\n", + "I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?\n", + "I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. \n", + "\n", + "Thanks! \n", + "Brianna \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Brianna, \n", + "\n", + "You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.\n", + "\n", + "Key Takeaway:\n", + "Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.\n", + "\n", + "Understanding Your Condition:\n", + "Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.\n", + "Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.\n", + "\n", + "Current Treatment:\n", + "You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. \n", + "\n", + "Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.\n", + "\n", + "Avoiding Iron Supplements:\n", + "Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.\n", + "Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.\n", + "\n", + "Additional Nutritional Guidance:\n", + "While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.\n", + "\n", + "When to Seek Help:\n", + "If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.\n", + "\n", + "If you have any additional questions, feel free to ask!\n", + "\n", + "Thanks, \n", + "J Ryan, MSN, RN\n", + "Nurse Coordinator, Hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8340\n", + "➡️ Message by Sender GO, LACRISHA [ S0203400]: Hi Dr Brar ,Happy holidays ! I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . Thank you \n", + "➡️ Provider's response to this specific message is: Hi ReginaI saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawnThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253687511\n", + "--------------------------------------------------------------------------------\n", + "idx: 96155\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Chi , \n", + "I think Dr Brar has standing blood orders for me to check every so often can you order them or do you still want me to ask my PCP . \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 96154\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar ,\n", + "\n", + "Happy holidays ! \n", + "I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . \n", + "Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by HOANG, CHI:\n", + "Hi Regina\n", + "\n", + "I saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawn\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8236\n", + "➡️ Message by Sender MONTEZ, ANDREA [ S0285483]: Hi all,Hope you are doing well!Two quick questions -1. Dr. Berube had me complete a few labs but I haven't heard any follow up. Can you confirm if there is anything she wants me to be aware of with the results? 2. I had my last iron infusion 4 weeks ago - are there labs I should be doing to check on my iron levels?Thank you!Amanda \n", + "➡️ Provider's response to this specific message is: Hi Amanda,I believe Dr. Berube has reviewed your labs, she is currently out of town but when she returns I will make sure to see if she any additional instructions. I have placed repeat labs for you to get done 6-8 weeks after your last venofer infusion, which should be around beginning of January.Best,Sharon Lee, BSN, RNNurse coordinator, hematology \n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253812916\n", + "--------------------------------------------------------------------------------\n", + "idx: 90355\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Berube,\n", + "\n", + "Thank you for the response and well wishes! \n", + "\n", + "Best,\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 90354\n", + "Subject: RE:Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-02 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Sharon,\n", + "\n", + "Happy New Year!\n", + "\n", + "Can you please pass along this note to Dr.Berube? Thank you!\n", + "\n", + "My egg retrieval procedure is scheduled for January 29th and I have Desmopressin spray to use before the procedure. Does she still feel comfortable with the treatment plan after reviewing the most recent lab work (below)?\n", + "\n", + "11/07/2024<9>Fibrinogen<9>\n", + "11/07/2024<9>Thrombin Time<9>\n", + "11/07/2024<9>CBC w/o Diff<9>\n", + "11/07/2024<9>Factor Vlll Assay<9>\n", + "11/07/2024<9>Von Willebrand Factor Activity<9>\n", + "11/07/2024<9>Von Willebrand Ag<9>\n", + "\n", + "Thanks!\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by BERUBE, CAROLINE:\n", + "Hi Amanda,\n", + "\n", + "I reviewed your results. No new issue. I continue to recommend Desmopressin nasal spray prior to your egg retrieval as outlined in my last clinic note. \n", + "Good luck with your egg retrieval!\n", + "\n", + "Sincerely,\n", + "Caroline Berube, MD\n", + "\n", + "----------------------------------------\n", + "idx: 90353\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-20 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thanks, Sharon! When will she be back?\n", + "\n", + "Thanks,\n", + "Amanda\n", + "----------------------------------------\n", + "Provider Response by LEE, SHARON:\n", + "Hi Amanda,\n", + "\n", + "No problem, she will be back about a week and a half.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology\n", + "\n", + "----------------------------------------\n", + "idx: 90352\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi all,\n", + "\n", + "Hope you are doing well!\n", + "\n", + "Two quick questions -\n", + "\n", + "1. Dr. Berube had me complete a few labs but I haven't heard any follow up. Can you confirm if there is anything she wants me to be aware of with the results? \n", + "\n", + "2. I had my last iron infusion 4 weeks ago - are there labs I should be doing to check on my iron levels?\n", + "\n", + "Thank you!\n", + "Amanda \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Amanda,\n", + "\n", + "I believe Dr. Berube has reviewed your labs, she is currently out of town but when she returns I will make sure to see if she any additional instructions. I have placed repeat labs for you to get done 6-8 weeks after your last venofer infusion, which should be around beginning of January.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8157\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hi Dr Brar,I hope you're having a great holiday season. As we had discussed in our last appointment, I consulted with a gastro (Dr Nguyen) and had a colonoscopy + endoscopy. That procedure did not find anything unusual, and while Dr Nguyen says that there are further steps we could take to investigate possible issues with my iron absorption (\"a specific type of CT scan to evaluate for possible small intestinal problems followed by a possible video capsule endoscopy to take pictures of your small intestine\"), I know that we had discussed trying an iron infusion if the colonoscopy did not find anything conclusive. I think that's the approach I would prefer since it would presumably reveal a potential bone marrow issue (if my blood counts stay low) or higher iron/blood counts don't change how I feel (in which case I don't see any reason to keep investigating unless my current levels are otherwise concerning in and of themselves).Does that seem reasonable to you?Thank you,Isaiah \n", + "➡️ Provider's response to this specific message is: Hi IsaiahDr Brar mentioned previously that IV iron was not needed at this time but can consider it if there's a drop in labs. He would like for you to repeat labs in April and we can go from thereI will also let him know of your message. Thanks for the updateThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 254403764\n", + "--------------------------------------------------------------------------------\n", + "idx: 64479\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,\n", + "\n", + "Unless Dr Brar would advise against it, I would like to try the iron injection for those reasons (I.e. to see if it helps energy levels or, on the other side, shows that my blood counts don’t improve and therefore we might need to check marrow). \n", + "\n", + "Thanks,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 64478\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok. I thought we had discussed an iron infusion as the next step after the colonoscopy, but maybe I’m misremembering. \n", + "\n", + "Thanks,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 64477\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-30 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar,\n", + "\n", + "I hope you're having a great holiday season. As we had discussed in our last appointment, I consulted with a gastro (Dr Nguyen) and had a colonoscopy + endoscopy. That procedure did not find anything unusual, and while Dr Nguyen says that there are further steps we could take to investigate possible issues with my iron absorption (\"a specific type of CT scan to evaluate for possible small intestinal problems followed by a possible video capsule endoscopy to take pictures of your small intestine\"), I know that we had discussed trying an iron infusion if the colonoscopy did not find anything conclusive. I think that's the approach I would prefer since it would presumably reveal a potential bone marrow issue (if my blood counts stay low) or higher iron/blood counts don't change how I feel (in which case I don't see any reason to keep investigating unless my current levels are otherwise concerning in and of themselves).\n", + "\n", + "Does that seem reasonable to you?\n", + "\n", + "Thank you,\n", + "Isaiah \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Isaiah\n", + "\n", + "Dr Brar mentioned previously that IV iron was not needed at this time but can consider it if there's a drop in labs. He would like for you to repeat labs in April and we can go from there\n", + "I will also let him know of your message. Thanks for the update\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "idx: 64476\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Ok, thank you. Is any fasting necessary?\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "Non fasting\n", + "\n", + "Thanks\n", + "Andrea M\n", + "\n", + "----------------------------------------\n", + "idx: 64475\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-10 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi,\n", + "\n", + "Just following up on this to see what Dr Brar thinks. \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by APOSTOL, JENNY,:\n", + "Hello Isaiah,\n", + "\n", + "We would be happy to set you up for IV iron. Since your last labs are 3 months old (from October), please first obtain an updated CBC/d and ferritin lab. You have orders in place and can go to any of our Stanford lab locations. If you remain in the same range as prior, we will then set up a single dose of IV iron. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8119\n", + "➡️ Message by Sender DIEP, ROBERT [ S0328143]: Hello,Should I be getting an Iron infusion soon while we are waiting for my bone marrow biopsy/copper? My HGB is steadily dropping again. Platelets are also dropping and I don’t know why. Dr Muppidi stopped my Imuran 10 days ago to see if that would give some clarification. Also wanted to mention that I have a lot of fluid retention and painful cramping all over. If we do iron infusion just a reminder that I need a different kind because of the reaction I had the first time.Thank you,Jason\n", + "➡️ Provider's response to this specific message is: Hi Jason,Dr Diep has ordered you an IV iron infusion, iron sucrose. (Your received iron dextran previously.) Our infusion team will be reaching out to get this scheduled as well as postpone your bone marrow biopsy by 4-6 weeks to allow optimal time for absorption of the increased TPN copper and the IV iron.Please reach out with any questions,Amy MooreRN Coordinator, HematologyIron Sucrose Injection (IRON SUCROSE - INJECTION)For anemia.Brand Name(s): VenoferGeneric Name: Iron SucroseInstructionsThis medicine is given as an IV injection into a vein.Read and make sure you understand the instructions for measuring your dose and using the syringe before using this medicine.Always inspect the medicine before using.The liquid should be clear and dark brown.Do not use the medicine if it contains any particles or if it has changed color.Keep medicine at room temperature. Protect from light.Speak with your nurse or pharmacist about how long the medicine can be stored safely at room temperature or in the refrigerator before it needs to be discarded.Never use any medicine that has expired.Discard any remaining medicine after your dose is given.If you miss a dose, contact your doctor for instructions.Drug interactions can change how medicines work or increase risk for side effects. Tell your health care providers about all medicines taken. Include prescription and over-the-counter medicines, vitamins, and herbal medicines. Speak with your doctor or pharmacist before starting or stopping any medicine.It is very important that you follow your doctor's instructions for all blood tests.CautionsDuring pregnancy, this medicine should be used only when clearly needed. Talk to your doctor about the risks and benefits.Tell your doctor and pharmacist if you ever had an allergic reaction to a medicine.Do not use the medication any more than instructed.This medicine may cause dizziness or fainting. Do not stand or sit up quickly.This medicine passes into breast milk. Ask your doctor before breastfeeding.Ask your pharmacist how to properly throw away used needles or syringes.Do not share this medicine with anyone who has not been prescribed this medicine.Side EffectsThe following is a list of some common side effects from this medicine. Please speak with your doctor about what you should do if you experience these or other side effects.constipation or diarrheadizzinessswelling of the legs, feet, and handsmuscle crampsnausea and vomitingchanges in taste or unpleasant tasteCall your doctor or get medical help right away if you notice any of these more serious side effects:chest painfaintingsevere or persistent headachefast or irregular heart beatssevere stomach or bowel painblurring or changes of visionA few people may have an allergic reaction to this medicine. Symptoms can include difficulty breathing, skin rash, itching, swelling, or severe dizziness. If you notice any of these symptoms, seek medical help quickly.Please speak with your doctor, nurse, or pharmacist if you have any questions about this medicine.IMPORTANT NOTE: This document tells you briefly how to take your medicine, but it does not tell you all there is to know about it. Your doctor or pharmacist may give you other documents about your medicine. Please talk to them if you have any questions. Always follow their advice.There is a more complete description of this medicine available in English. Scan this code on your smartphone or tablet or use the web address below. You can also ask your pharmacist for a printout. If you have any questions, please ask your pharmacist.The display and use of this drug information is subject to Terms of Use.More information about IRON SUCROSE - INJECTION Copyright(c) 2024 First Databank, Inc.Selected from data included with permission and copyright by First DataBank, Inc. This copyrighted material has been downloaded from a licensed data provider and is not for distribution, except as may be authorized by the applicable terms of use.Conditions of Use: The information in this database is intended to supplement, not substitute for the expertise and judgment of healthcare professionals. The information is not intended to cover all possible uses, directions, precautions, drug interactions or adverse effects nor should it be construed to indicate that use of a particular drug is safe, appropriate or effective for you or anyone else. A healthcare professional should be consulted before taking any drug, changing any diet or commencing or discontinuing any course of treatment. The display and use of this drug information is subject to express Terms of Use.Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 254855364\n", + "--------------------------------------------------------------------------------\n", + "idx: 41220\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-06 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello,\n", + "Should I be getting an Iron infusion soon while we are waiting for my bone marrow biopsy/copper? My HGB is steadily dropping again. Platelets are also dropping and I don’t know why. Dr Muppidi stopped my Imuran 10 days ago to see if that would give some clarification. Also wanted to mention that I have a lot of fluid retention and painful cramping all over. \n", + "\n", + "If we do iron infusion just a reminder that I need a different kind because of the reaction I had the first time.\n", + "\n", + "Thank you,\n", + "Jason\n", + "----------------------------------------\n", + "Provider Response by MOORE, AMY:\n", + "Hi Jason,\n", + "\n", + "Dr Diep has ordered you an IV iron infusion, iron sucrose. (Your received iron dextran previously.) Our infusion team will be reaching out to get this scheduled as well as postpone your bone marrow biopsy by 4-6 weeks to allow optimal time for absorption of the increased TPN copper and the IV iron.\n", + "\n", + "Please reach out with any questions,\n", + "\n", + "Amy Moore\n", + "RN Coordinator, Hematology\n", + "\n", + "Iron Sucrose Injection (IRON SUCROSE - INJECTION)\n", + "For anemia.\n", + "Brand Name(s): Venofer\n", + "Generic Name: Iron Sucrose\n", + "Instructions\n", + "This medicine is given as an IV injection into a vein.\n", + "Read and make sure you understand the instructions for measuring your dose and using the syringe before using this medicine.\n", + "Always inspect the medicine before using.\n", + "The liquid should be clear and dark brown.\n", + "Do not use the medicine if it contains any particles or if it has changed color.\n", + "Keep medicine at room temperature. Protect from light.\n", + "Speak with your nurse or pharmacist about how long the medicine can be stored safely at room temperature or in the refrigerator before it needs to be discarded.\n", + "Never use any medicine that has expired.\n", + "Discard any remaining medicine after your dose is given.\n", + "If you miss a dose, contact your doctor for instructions.\n", + "Drug interactions can change how medicines work or increase risk for side effects. Tell your health care providers about all medicines taken. Include prescription and over-the-counter medicines, vitamins, and herbal medicines. Speak with your doctor or pharmacist before starting or stopping any medicine.\n", + "It is very important that you follow your doctor's instructions for all blood tests.\n", + "Cautions\n", + "During pregnancy, this medicine should be used only when clearly needed. Talk to your doctor about the risks and benefits.\n", + "Tell your doctor and pharmacist if you ever had an allergic reaction to a medicine.\n", + "Do not use the medication any more than instructed.\n", + "This medicine may cause dizziness or fainting. Do not stand or sit up quickly.\n", + "This medicine passes into breast milk. Ask your doctor before breastfeeding.\n", + "Ask your pharmacist how to properly throw away used needles or syringes.\n", + "Do not share this medicine with anyone who has not been prescribed this medicine.\n", + "Side Effects\n", + "The following is a list of some common side effects from this medicine. Please speak with your doctor about what you should do if you experience these or other side effects.\n", + "constipation or diarrhea\n", + "dizziness\n", + "swelling of the legs, feet, and hands\n", + "muscle cramps\n", + "nausea and vomiting\n", + "changes in taste or unpleasant taste\n", + "Call your doctor or get medical help right away if you notice any of these more serious side effects:\n", + "chest pain\n", + "fainting\n", + "severe or persistent headache\n", + "fast or irregular heart beats\n", + "severe stomach or bowel pain\n", + "blurring or changes of vision\n", + "A few people may have an allergic reaction to this medicine. Symptoms can include difficulty breathing, skin rash, itching, swelling, or severe dizziness. If you notice any of these symptoms, seek medical help quickly.\n", + "Please speak with your doctor, nurse, or pharmacist if you have any questions about this medicine.\n", + "IMPORTANT NOTE: This document tells you briefly how to take your medicine, but it does not tell you all there is to know about it. Your doctor or pharmacist may give you other documents about your medicine. Please talk to them if you have any questions. Always follow their advice.\n", + "There is a more complete description of this medicine available in English. Scan this code on your smartphone or tablet or use the web address below. You can also ask your pharmacist for a printout. If you have any questions, please ask your pharmacist.\n", + "The display and use of this drug information is subject to Terms of Use.\n", + "More information about IRON SUCROSE - INJECTION \n", + " \n", + "Copyright(c) 2024 First Databank, Inc.\n", + "Selected from data included with permission and copyright by First DataBank, Inc. This copyrighted material has been downloaded from a licensed data provider and is not for distribution, except as may be authorized by the applicable terms of use.\n", + "Conditions of Use: The information in this database is intended to supplement, not substitute for the expertise and judgment of healthcare professionals. The information is not intended to cover all possible uses, directions, precautions, drug interactions or adverse effects nor should it be construed to indicate that use of a particular drug is safe, appropriate or effective for you or anyone else. A healthcare professional should be consulted before taking any drug, changing any diet or commencing or discontinuing any course of treatment. The display and use of this drug information is subject to express Terms of Use.\n", + "Care instructions adapted under license by your healthcare professional. If you have questions about a medical condition or this instruction, always ask your healthcare professional. Ignite Healthwise, LLC disclaims any warranty or liability for your use of this information.\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "➡️ Similarity: 0.8113\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hi Dr. Salmasi,I hope you are doing well. Can you please put in a request for me to do my labs? I want to see if it’s time for me to do another iron infusion as I haven’t had much energy lately.Thanks,Jessica\n", + "➡️ Provider's response to this specific message is: Hi Jessica,You have labs placed for you at Stanford! They are available for you to get done every 3 months if you feel worsening fatigue.Best,Sharon Lee, BSN, RNNurse coordinator, hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 250109300\n", + "--------------------------------------------------------------------------------\n", + "idx: 266210\n", + "Subject: RE:Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Thank you. I will do them by Monday. \n", + "----------------------------------------\n", + "Provider Response by LEE, SHARON:\n", + "No response\n", + "----------------------------------------\n", + "idx: 266209\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2024-11-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Salmasi,\n", + "\n", + "I hope you are doing well. Can you please put in a request for me to do my labs? I want to see if it’s time for me to do another iron infusion as I haven’t had much energy lately.\n", + "\n", + "Thanks,\n", + "Jessica\n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Jessica,\n", + "\n", + "You have labs placed for you at Stanford! They are available for you to get done every 3 months if you feel worsening fatigue.\n", + "\n", + "Best,\n", + "\n", + "Sharon Lee, BSN, RN\n", + "Nurse coordinator, hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n" + ] + } + ], + "source": [ + "results = run_tiered_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " target_N=10, # Number of final results you want\n", + " similarity_cutoff=0.7 # The minimum cosine similarity required\n", + ")\n", + "\n", + "\n", + "#show results\n", + "print(\"Query Parameters:\")\n", + "print(f\"query_message: {query_message}\")\n", + "print(f\"receiver: {receiver}\")\n", + "print(f\"department: {department}\")\n", + "print(f\"specialty: {specialty}\")\n", + "\n", + "try:\n", + " print(f\"\\nNumber of results: {len(results)}\")\n", + " \n", + " if len(results) > 0:\n", + " for row in results:\n", + " print(\"##\" * 80)\n", + " print(f\"➡️ Similarity: {row['cosine_similarity']:.4f}\")\n", + " print(f\"➡️ Message by Sender {row['Message Sender']}: {row['Patient Message']}\")\n", + " print(f\"➡️ Provider's response to this specific message is: {row['Actual Response Sent to Patient']}\")\n", + " print(f\"➡️ This result is from tier: {row['retrieval_tier']}\")\n", + " print(\"➡️ -----------printing the whole thread-------------\")\n", + " beautiful_print_thread(row[\"Thread ID\"], answer_question_paired_data_dedup)\n", + " print(\"##\" * 80)\n", + " else:\n", + " print(\"No results found matching the criteria\")\n", + "except Exception as e:\n", + " print(f\"Error getting results: {str(e)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## -----------Weighted Retrieval-----------" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "def get_personalized_score(row, receiver, department, specialty, \n", + " sender_weight=0.2, dept_weight=0.1, spec_weight=0.05):\n", + " score = row[\"cosine_similarity\"]\n", + " if row[\"Recipient Names\"] == receiver:\n", + " score += sender_weight\n", + " elif row[\"Message Department\"] == department:\n", + " score += dept_weight\n", + " elif row[\"Department Specialty Title\"] == specialty:\n", + " score += spec_weight\n", + " return score\n", + "\n", + "def weighted_retrieval(query_vector_literal, receiver, department, specialty, client, top_k=100, final_N=5,\n", + " sender_weight=0.2, dept_weight=0.1, spec_weight=0.05, similarity_cutoff=0.7):\n", + " # Run the broad query\n", + " base_query = f\"\"\"\n", + " WITH input_embedding AS (\n", + " SELECT {query_vector_literal} AS input_vec\n", + " )\n", + " SELECT\n", + " t.`Thread ID`,\n", + " t.`Patient Message`,\n", + " t.`Message Sender`,\n", + " t.`Recipient Names`,\n", + " t.`Message Department`,\n", + " t.`Department Specialty Title`,\n", + " t.`Actual Response Sent to Patient`,\n", + " (\n", + " SELECT SUM(x * y)\n", + " FROM UNNEST(t.embeddings) AS x WITH OFFSET i\n", + " JOIN UNNEST(input_vec) AS y WITH OFFSET j\n", + " ON i = j\n", + " ) /\n", + " (\n", + " SQRT((SELECT SUM(POW(x, 2)) FROM UNNEST(t.embeddings) AS x)) *\n", + " SQRT((SELECT SUM(POW(y, 2)) FROM UNNEST(input_vec) AS y))\n", + " ) AS cosine_similarity\n", + " FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings_pcp_only` AS t, input_embedding\n", + " ORDER BY cosine_similarity DESC\n", + " LIMIT @K\n", + " \"\"\"\n", + " params = [bigquery.ScalarQueryParameter(\"K\", \"INT64\", top_k)]\n", + " job = client.query(\n", + " base_query,\n", + " job_config=bigquery.QueryJobConfig(query_parameters=params)\n", + " )\n", + " rows = list(job.result())\n", + "\n", + " # Compute personalized score for each row, filter by similarity_cutoff\n", + " scored = []\n", + " for r in rows:\n", + " row_dict = dict(r)\n", + " if row_dict[\"cosine_similarity\"] >= similarity_cutoff:\n", + " row_dict[\"personalized_score\"] = get_personalized_score(\n", + " row_dict, receiver, department, specialty, \n", + " sender_weight, dept_weight, spec_weight\n", + " )\n", + " # Annotate which tier matched\n", + " if row_dict[\"Recipient Names\"] == receiver:\n", + " row_dict[\"personalization_tier\"] = \"sender\"\n", + " elif row_dict[\"Message Department\"] == department:\n", + " row_dict[\"personalization_tier\"] = \"department\"\n", + " elif row_dict[\"Department Specialty Title\"] == specialty:\n", + " row_dict[\"personalization_tier\"] = \"specialty\"\n", + " else:\n", + " row_dict[\"personalization_tier\"] = \"none\"\n", + " scored.append(row_dict)\n", + "\n", + " # Sort by personalized_score (descending)\n", + " scored = sorted(scored, key=lambda x: x[\"personalized_score\"], reverse=True)\n", + "\n", + " # Return top N\n", + " return scored[:final_N]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Query Parameters:\n", + "query_message: Hi Dr. Martin,I wanted to touch base regarding my most recent blood work from earlier this month. I’ve been feeling extra fatigued and short of breath lately, and I’m a bit worried it might be related to my ongoing iron issues. Would you be able to let me know if my latest results suggest it’s time to schedule another iron infusion? Also, since I usually need an ultrasound-guided IV, should I go ahead and book that appointment too?Thanks so much for your help!Best, Melissa\n", + "receiver: MARTIN, BETH\n", + "department: HEMATOLOGY\n", + "specialty: Hematology\n", + "\n", + "Number of results: 5\n", + "################################################################################################################################################################\n", + "[sender] Score: 1.012 (CosSim: 0.812)\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hi Dr. Martin,I hope you're well! Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?Thanks!Barbara\n", + "➡️ Provider's response to this specific message is: Barbara, No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. Beth \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 252160980\n", + "--------------------------------------------------------------------------------\n", + "idx: 161352\n", + "Subject: Scheduling Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-04 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr. Martin,\n", + "I hope you're well! \n", + "\n", + "Did you have an opportunity to review the labs my mom completed on 11/14/24? If so, do you think she's due for an Iron Infusion appointment (and, USGPIV appt preceding Iron Infusion)?\n", + "\n", + "Thanks!\n", + "Barbara\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Barbara, \n", + "\n", + "No iron needed--the anemia is mild and is due to inflammation, not iron deficiency. I had contacted Dr Haddock about this months ago when this pattern developed--cause is not clear. \n", + "\n", + "I hope that her health is otherwise stable, that you're all doing well despite the world's turmoil. \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[sender] Score: 1.001 (CosSim: 0.801)\n", + "➡️ Message by Sender APOSTOL, JENNY [ S0333370]: Hello Dr. Martin,I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.Regards,Thomas Obata\n", + "➡️ Provider's response to this specific message is: Mr Obata, I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. Sincerely, Beth A. Martin, MD with Jenny Apostol, RN Attending Physician Division of Hematology Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "➡️ This result is from tier: sender\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255287111\n", + "--------------------------------------------------------------------------------\n", + "idx: 21428\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Dr. Martin,\n", + "\n", + "Thank you, I look forward to your pre-op plan. Please understand that I could be getting the call for a liver match any day, therefore time is of the essence. Thank you in advance for your understanding.\n", + "\n", + "Best regards,\n", + "\n", + "Thomas\n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 21427\n", + "Subject: RE: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-14 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "I am listed as top priority and in the number one position on the Stanford liver transplant list. The AVMs in my liver are compromising my heart, hence the top priority position.\n", + "I just visited Question Diagnostics and completed my blood panel.\n", + "Thank you,\n", + "Thomas Obata \n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Got it\n", + "\n", + "I will develop a coag pre op\n", + "Plan for you \n", + "\n", + "Beth \n", + "----------------------------------------\n", + "idx: 21426\n", + "Subject: Visit Follow-up Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr. Martin,\n", + "\n", + "I am following up on our visit on 8/30/2024 where you advised that I receive IV iron to compensate for ongoing bleeding and to assist with heart failure. At that time you stated that you would discuss further with DR. Galatin to coordinate iron infusions at CCSB. To that end, I have never received any contact for the above mentioned iron infusions. \n", + "Please see the attached progress/clinical notes from our 8/30 visit, page 7 in particular.\n", + "\n", + "Some how my iron infusions have \"slipped through the cracks\". I look forward to your response and thank you in advance.\n", + "\n", + "Regards,\n", + "Thomas Obata\n", + "----------------------------------------\n", + "Provider Response by MARTIN, BETH:\n", + "Mr Obata, \n", + "\n", + "I 'm recommending a change in plan as I see that you have an upcoming liver transplant appt at the end of the month and that you're due to have a fibrinogen level and ATIII level checked. \n", + "\n", + "I'm still checking in with Dr Galatin for who will take the lead, but if you are getting transplanted here , then you should have a Stanford based hematologist for potential coagulation issues --and possibly iv iron if needed. \n", + "\n", + "If you are being considered at UCSF, then I recommend that you see Dr Cornett as well --or , if you would like an independent opinion from mine, I'm happy to refer you. \n", + "\n", + "I see that you prefer Quest labs: I've placed orders there as well. Would you be able to go there or to a Stanford lab any time within a week or earlier of that appt, at least by 1/23? Non fasting. \n", + "\n", + "Sincerely, \n", + "\n", + "Beth A. Martin, MD with Jenny Apostol, RN \n", + "Attending Physician \n", + "Division of Hematology \n", + "\n", + "Questions, Concerns: 650-498-6000, Option 5 if urgent; or MyHealth message if weekday only, nonurgent (can wait for 2 business days) \n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.948 (CosSim: 0.848)\n", + "➡️ Message by Sender GOMEZ, ELIZABETH [ S0190535]: Hello Dr Martin Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. Thank you for your time Laura Gonzalez \n", + "➡️ Provider's response to this specific message is: Hello Laura,What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.Thank you.Jenny, RNBlake Wilbur Lab900 Blake Wilbur Drive1st Floor, Room W1083Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Cancer Center Lab875 Blake Wilbur DriveRoom CC-1104Palo Alto, CA 94304Hours: Mon-Fri 7:00am - 5:30pm Hoover Lab211 Quarry RoadSuite 101Palo Alto, CA 94304Hours: Mon-Fri 7:00am -7:00pm Boswell Lab300 Pasteur DrivePavilion A, Level 1, A12Stanford, CA 94305Hours: Mon-Fri 6:00am -5:30pmSat-Sun 7:00am-3:30pm Redwood City440 Broadway Street, Pavillion B 1st Floor B11Redwood City, California 94063Hours: Monday - Friday 7am - 6pm Blood Draw at Stanford Cancer Center South Bay2589 Samaritan Drive4th Floor, San Jose, CA 95124 Hours: Mon-Fri 7:00am-6:00pm Blood Draw at Stanford Emeryville5800 Hollis StreetFirst Floor, Pavilion BEmeryville, CA 94608Hours: Mon-Fri 7:30am-5:00pm\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255116564\n", + "--------------------------------------------------------------------------------\n", + "idx: 28794\n", + "Subject: RE: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Shortness of breath when walking short distances. Also is it possible to send the orders closer to home I have a quest here in Fremont \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "I have placed lab orders for you at Quest. Please let us know once you've done the labs so we know to look for results. We do not get automatic alerts for outside results. If your symptoms should worsen please be evaluated by urgent care, ER, or call for a sick call appt. Thank you and take care.\n", + "\n", + "Jenny, RN \n", + "----------------------------------------\n", + "idx: 28793\n", + "Subject: Ordered Test Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-08 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Dr Martin \n", + "Hope all is well, I wanted to reach out to you in regards of my iron deficiency. I know I’m scheduled to see you in March but I’m starting to get the same symptoms as before. I was wondering if we could do some labs to check my iron levels. \n", + "Thank you for your time \n", + "Laura Gonzalez \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hello Laura,\n", + "\n", + "What symptoms are you having? You have standing lab orders in place and can go to any of our Stanford lab locations. Please let us know if you have any questions or concerns.\n", + "\n", + "Thank you.\n", + "\n", + "Jenny, RN\n", + "\n", + "Blake Wilbur Lab\n", + "900 Blake Wilbur Drive\n", + "1st Floor, Room W1083\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Cancer Center Lab\n", + "875 Blake Wilbur Drive\n", + "Room CC-1104\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am - 5:30pm\n", + " \n", + "Hoover Lab\n", + "211 Quarry Road\n", + "Suite 101\n", + "Palo Alto, CA 94304\n", + "Hours: Mon-Fri 7:00am -7:00pm\n", + " \n", + "Boswell Lab\n", + "300 Pasteur Drive\n", + "Pavilion A, Level 1, A12\n", + "Stanford, CA 94305\n", + "Hours: Mon-Fri 6:00am -5:30pm\n", + "Sat-Sun 7:00am-3:30pm\n", + " \n", + "Redwood City\n", + "440 Broadway Street, Pavillion B 1st Floor B11\n", + "Redwood City, California 94063\n", + "Hours: Monday - Friday 7am - 6pm\n", + " \n", + "Blood Draw at Stanford Cancer Center South Bay\n", + "2589 Samaritan Drive\n", + "4th Floor, San Jose, CA 95124 \n", + "Hours: Mon-Fri 7:00am-6:00pm\n", + " \n", + "Blood Draw at Stanford Emeryville\n", + "5800 Hollis Street\n", + "First Floor, Pavilion B\n", + "Emeryville, CA 94608\n", + "Hours: Mon-Fri 7:30am-5:00pm\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.944 (CosSim: 0.844)\n", + "➡️ Message by Sender ZAMORA, ESMERALDA [ S0352882]: Hi Dr.Berube, I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. Thanks! Brianna \n", + "➡️ Provider's response to this specific message is: Hi Brianna, You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.Key Takeaway:Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.Understanding Your Condition:Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.Current Treatment:You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.Avoiding Iron Supplements:Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.Additional Nutritional Guidance:While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.When to Seek Help:If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.If you have any additional questions, feel free to ask!Thanks, J Ryan, MSN, RNNurse Coordinator, Hematology\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 255261295\n", + "--------------------------------------------------------------------------------\n", + "idx: 22548\n", + "Subject: Test Results Question\n", + "----------------------------------------\n", + "Date Sent: 2025-01-09 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr.Berube, \n", + "\n", + "I did a full CBC blood draw yesterday at PAMF. Do you have access to that? The nurse from my OBGYN’s office said I am anemic and should take iron supplements. I responded letting her know that I actually have an iron overload and was advised to avoid any supplements with iron. Can you confirm this is correct?\n", + "I have my anatomy scan at Stanford this morning and can pop into the lab for more blood test if you prefer that. Let me know. \n", + "\n", + "Thanks! \n", + "Brianna \n", + "----------------------------------------\n", + "Provider Response by CC HEME CLINICAL:\n", + "Hi Brianna, \n", + "\n", + "You are correct. You have been diagnosed with compensated hemolytic anemia due to hereditary xerocytosis, and your iron levels are currently being managed through regular phlebotomies. It's essential to understand the implications of your condition and the reason for not taking iron supplements.\n", + "\n", + "Key Takeaway:\n", + "Do not take iron supplements. You are at risk for iron overload due to your hereditary xerocytosis, and adding more iron can worsen your condition. Focus on regular blood checks and maintain a healthy diet.\n", + "\n", + "Understanding Your Condition:\n", + "Hereditary Xerocytosis: This is a rare genetic condition affecting red blood cells (RBCs) that results in increased RBC destruction (hemolysis). Your specific mutation (PIEZO1) causes changes in your blood cells leading to this condition.\n", + "Iron Overload: Due to your hereditary xerocytosis, you are at risk for iron overload, especially since this condition causes increased RBC turnover. Your recent liver MRI has indicated significant iron overload.\n", + "\n", + "Current Treatment:\n", + "You are receiving phlebotomies (scheduled blood draws to reduce excess iron) to help manage your iron levels. Since starting phlebotomies in June 2023, your ferritin (a marker of iron levels) has been gradually decreasing. \n", + "\n", + "Note: since you are pregnant, we have been holding phlebotomy for the remainder of your pregnancy. It's vital to continue avoiding iron supplementation during this time and keep an open line of communication with your healthcare team regarding your health and iron management.\n", + "\n", + "Avoiding Iron Supplements:\n", + "Why Not Take Iron Supplements: Given your diagnosis of iron overload, taking iron supplements can exacerbate the problem. Your body already has excess iron due to the hemolytic anemia, and adding more iron can lead to further complications, including damage to your liver and other organs.\n", + "Monitor Your Iron Levels: Since your treatment involves phlebotomy to manage iron overload, it's crucial not to introduce additional iron into your system. Always discuss any new supplements or medications with your healthcare provider.\n", + "\n", + "Additional Nutritional Guidance:\n", + "While you need to avoid iron supplements, ensure that you are getting adequate nutrition, particularly folic acid, which is important for blood health. Folic acid can help support your body in producing healthy red blood cells.\n", + "\n", + "When to Seek Help:\n", + "If you experience symptoms such as fatigue, weakness, or any unusual symptoms, contact your healthcare provider promptly. Regular follow-up and monitoring are critical to managing your condition effectively.\n", + "\n", + "If you have any additional questions, feel free to ask!\n", + "\n", + "Thanks, \n", + "J Ryan, MSN, RN\n", + "Nurse Coordinator, Hematology\n", + "\n", + "----------------------------------------\n", + "################################################################################################################################################################\n", + "################################################################################################################################################################\n", + "[department] Score: 0.934 (CosSim: 0.834)\n", + "➡️ Message by Sender GO, LACRISHA [ S0203400]: Hi Dr Brar ,Happy holidays ! I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . Thank you \n", + "➡️ Provider's response to this specific message is: Hi ReginaI saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawnThanksChi, RN\n", + "➡️ This result is from tier: department\n", + "➡️ -----------printing the whole thread-------------\n", + "Thread ID: 253687511\n", + "--------------------------------------------------------------------------------\n", + "idx: 96155\n", + "Subject: RE: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-21 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hello Chi , \n", + "I think Dr Brar has standing blood orders for me to check every so often can you order them or do you still want me to ask my PCP . \n", + "----------------------------------------\n", + "Provider Response by CC HEME ADMIN:\n", + "No response\n", + "----------------------------------------\n", + "idx: 96154\n", + "Subject: Non-urgent Medical Question\n", + "----------------------------------------\n", + "Date Sent: 2024-12-19 00:00:00\n", + "----------------------------------------\n", + "Sender Message:\n", + "Hi Dr Brar ,\n", + "\n", + "Happy holidays ! \n", + "I just had labs drawn for the bariatric group that follows me for my vitamin intake and they suggested that I reach out to you and let you know that my iron is a bit low , my last infusion was 2/17/ 21 I believe . \n", + "Should we do another infusion before it gets any worse ? Please advise? I’m feeling fine and I’m not chewing ice yet lol . \n", + "\n", + "Thank you \n", + "----------------------------------------\n", + "Provider Response by HOANG, CHI:\n", + "Hi Regina\n", + "\n", + "I saw your labs but no CBC was drawn. We will need to see the CBC to discuss IV iron as well. Do you have CBC ordered by your PCP? If so please have this drawn\n", + "\n", + "Thanks\n", + "Chi, RN\n", + "----------------------------------------\n", + "################################################################################################################################################################\n" + ] + } + ], + "source": [ + "results = weighted_retrieval(\n", + " query_vector_literal=query_vector_literal,\n", + " receiver=receiver,\n", + " department=department,\n", + " specialty=specialty,\n", + " client=client,\n", + " top_k=100,\n", + " final_N=5, # Final results you want\n", + " sender_weight=0.2,\n", + " dept_weight=0.1,\n", + " spec_weight=0.05,\n", + " similarity_cutoff=0.7\n", + ")\n", + "\n", + "#show results\n", + "print(\"Query Parameters:\")\n", + "print(f\"query_message: {query_message}\")\n", + "print(f\"receiver: {receiver}\")\n", + "print(f\"department: {department}\")\n", + "print(f\"specialty: {specialty}\")\n", + "\n", + "try:\n", + " print(f\"\\nNumber of results: {len(results)}\")\n", + " \n", + " if len(results) > 0:\n", + " for row in results:\n", + " print(\"##\" * 80)\n", + " print(f\"[{row['personalization_tier']}] Score: {row['personalized_score']:.3f} (CosSim: {row['cosine_similarity']:.3f})\")\n", + " print(f\"➡️ Message by Sender {row['Message Sender']}: {row['Patient Message']}\")\n", + " print(f\"➡️ Provider's response to this specific message is: {row['Actual Response Sent to Patient']}\")\n", + " print(f\"➡️ This result is from tier: {row['personalization_tier']}\")\n", + " print(\"➡️ -----------printing the whole thread-------------\")\n", + " beautiful_print_thread(row[\"Thread ID\"], answer_question_paired_data_dedup)\n", + " print(\"##\" * 80)\n", + " else:\n", + " print(\"No results found matching the criteria\")\n", + "except Exception as e:\n", + " print(f\"Error getting results: {str(e)}\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sage_recommender", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/error_analysis.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/error_analysis.ipynb new file mode 100644 index 00000000..6f7222a0 --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/error_analysis.ipynb @@ -0,0 +1,3182 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Libraries imported successfully!\n", + "Pandas version: 2.2.3\n", + "Matplotlib version: 3.10.1\n" + ] + } + ], + "source": [ + "# Import required libraries\n", + "import json\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from pathlib import Path\n", + "import glob\n", + "from collections import Counter\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "# Set style for better plots\n", + "plt.style.use('seaborn-v0_8')\n", + "sns.set_palette(\"husl\")\n", + "\n", + "print(\"Libraries imported successfully!\")\n", + "print(f\"Pandas version: {pd.__version__}\")\n", + "print(f\"Matplotlib version: {plt.matplotlib.__version__}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = pd.read_excel(\"../data/sampled_df_with_generated_questions.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking for files in: /Users/wenyuanchen/Desktop/Stanford/HealthRex/CDSS_aim4/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/../error_checking/automated_outputs/evaluator_outputs\n", + "Directory exists: True\n", + "Found 100 evaluator output files\n", + "Sample files: ['evaluator_row_0001.json', 'evaluator_row_0056.json', 'evaluator_row_0040.json', 'evaluator_row_0017.json', 'evaluator_row_0083.json']\n" + ] + } + ], + "source": [ + "# Define the path to evaluator outputs\n", + "output_path = Path(\"../error_checking/automated_outputs/evaluator_outputs\")\n", + "print(f\"Looking for files in: {output_path.absolute()}\")\n", + "\n", + "# Check if directory exists\n", + "if not output_path.exists():\n", + " print(f\"ERROR: Directory {output_path} does not exist!\")\n", + " print(\"Please check the path and make sure the evaluator outputs are available.\")\n", + "else:\n", + " print(f\"Directory exists: {output_path.exists()}\")\n", + " \n", + " # List files in directory\n", + " files = list(output_path.glob(\"evaluator_row_*.json\"))\n", + " print(f\"Found {len(files)} evaluator output files\")\n", + " \n", + " if len(files) > 0:\n", + " print(f\"Sample files: {[f.name for f in files[:5]]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 100 evaluator output files\n", + "\n", + "Successfully loaded 100 records\n", + "Failed to load 0 files\n", + "\n", + "First few records:\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
row_numberfile_pathsubjecttypereasoningclinical_accuracy_scoreclinical_accuracy_reasoningurgency_recognition_scoreurgency_recognition_reasoningprofessional_consultation_guidance_scoreprofessional_consultation_guidance_reasoningsensitivity_clarity_scoresensitivity_clarity_reasoningnum_errorserror_typeserror_severitieserror_descriptionserror_text_excerptserror_in_physician_responsereason_for_error_in_physician_response
00000../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionClinical Advice RequestThe patient's message describes a clinical con...9The response correctly acknowledges the concer...8The response recognizes the 'rapid' progressio...9The guidance to expect a referral and to utili...10The response is empathetic, clear, and support...1[Clinical Error][2][The response does not specify the location/pr...[Given the rapid changes you're experiencing, ...[No][I've ordered this for you to be done at the H...
10001../error_checking/automated_outputs/evaluator_...Ordered Test QuestionClinical Advice RequestThe patient is explicitly asking for clinical ...7The guidance on stopping metformin the day of ...8The response adequately recognizes the patient...6The response gives some guidance but does not ...9The tone is warm, clear, and supportive, with ...1[Clinical Error][3][Did not advise the patient to contact the off...[You can continue taking your Ozempic as usual...[No][Please contact the office at 510-521-2300 as ...
20002../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient requests prescription refills for ...7The LLM accurately approves omeprazole and giv...8No acute clinical urgency is recognized, which...7The response gives proper process guidance for...9Clear, polite, and supportive language is used...1[Clinical Error][3][The response assumes refills are available fo...[Regarding the 7.5 mg buspirone, it seems you ...[No][Prescription busPIRone 7.5 mg tablet was sent...
30003../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionClinical Advice RequestThe patient is requesting clinical advice on t...6The response suggests an in-person visit is be...7The response identifies the time-sensitive nat...5The guidance is generic and incomplete, sugges...9The response is warm, clear, and polite in ton...3[Clinical Error, Clinical Error, Non-Clinical ...[3, 3, 2][Incorrectly implies that all travel vaccinati...[For travel-related vaccinations and medicatio...[No, No, No][our facility does not operate as a travel vac...
40004../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient specifically requests a renewal an...0The LLM-generated response is 'Unknown', which...0The LLM-generated response is 'Unknown', which...0The LLM-generated response is 'Unknown', which...0The LLM-generated response 'Unknown' is unempa...1[Non-Clinical Error][3][No response provided to the patient's request...[Unknown][No][The physician response directly addresses the...
\n", + "
" + ], + "text/plain": [ + " row_number file_path \\\n", + "0 0000 ../error_checking/automated_outputs/evaluator_... \n", + "1 0001 ../error_checking/automated_outputs/evaluator_... \n", + "2 0002 ../error_checking/automated_outputs/evaluator_... \n", + "3 0003 ../error_checking/automated_outputs/evaluator_... \n", + "4 0004 ../error_checking/automated_outputs/evaluator_... \n", + "\n", + " subject type \\\n", + "0 Non-urgent Medical Question Clinical Advice Request \n", + "1 Ordered Test Question Clinical Advice Request \n", + "2 Prescription Question Medication Request \n", + "3 Non-urgent Medical Question Clinical Advice Request \n", + "4 Prescription Question Medication Request \n", + "\n", + " reasoning clinical_accuracy_score \\\n", + "0 The patient's message describes a clinical con... 9 \n", + "1 The patient is explicitly asking for clinical ... 7 \n", + "2 The patient requests prescription refills for ... 7 \n", + "3 The patient is requesting clinical advice on t... 6 \n", + "4 The patient specifically requests a renewal an... 0 \n", + "\n", + " clinical_accuracy_reasoning \\\n", + "0 The response correctly acknowledges the concer... \n", + "1 The guidance on stopping metformin the day of ... \n", + "2 The LLM accurately approves omeprazole and giv... \n", + "3 The response suggests an in-person visit is be... \n", + "4 The LLM-generated response is 'Unknown', which... \n", + "\n", + " urgency_recognition_score \\\n", + "0 8 \n", + "1 8 \n", + "2 8 \n", + "3 7 \n", + "4 0 \n", + "\n", + " urgency_recognition_reasoning \\\n", + "0 The response recognizes the 'rapid' progressio... \n", + "1 The response adequately recognizes the patient... \n", + "2 No acute clinical urgency is recognized, which... \n", + "3 The response identifies the time-sensitive nat... \n", + "4 The LLM-generated response is 'Unknown', which... \n", + "\n", + " professional_consultation_guidance_score \\\n", + "0 9 \n", + "1 6 \n", + "2 7 \n", + "3 5 \n", + "4 0 \n", + "\n", + " professional_consultation_guidance_reasoning \\\n", + "0 The guidance to expect a referral and to utili... \n", + "1 The response gives some guidance but does not ... \n", + "2 The response gives proper process guidance for... \n", + "3 The guidance is generic and incomplete, sugges... \n", + "4 The LLM-generated response is 'Unknown', which... \n", + "\n", + " sensitivity_clarity_score \\\n", + "0 10 \n", + "1 9 \n", + "2 9 \n", + "3 9 \n", + "4 0 \n", + "\n", + " sensitivity_clarity_reasoning num_errors \\\n", + "0 The response is empathetic, clear, and support... 1 \n", + "1 The tone is warm, clear, and supportive, with ... 1 \n", + "2 Clear, polite, and supportive language is used... 1 \n", + "3 The response is warm, clear, and polite in ton... 3 \n", + "4 The LLM-generated response 'Unknown' is unempa... 1 \n", + "\n", + " error_types error_severities \\\n", + "0 [Clinical Error] [2] \n", + "1 [Clinical Error] [3] \n", + "2 [Clinical Error] [3] \n", + "3 [Clinical Error, Clinical Error, Non-Clinical ... [3, 3, 2] \n", + "4 [Non-Clinical Error] [3] \n", + "\n", + " error_descriptions \\\n", + "0 [The response does not specify the location/pr... \n", + "1 [Did not advise the patient to contact the off... \n", + "2 [The response assumes refills are available fo... \n", + "3 [Incorrectly implies that all travel vaccinati... \n", + "4 [No response provided to the patient's request... \n", + "\n", + " error_text_excerpts \\\n", + "0 [Given the rapid changes you're experiencing, ... \n", + "1 [You can continue taking your Ozempic as usual... \n", + "2 [Regarding the 7.5 mg buspirone, it seems you ... \n", + "3 [For travel-related vaccinations and medicatio... \n", + "4 [Unknown] \n", + "\n", + " error_in_physician_response \\\n", + "0 [No] \n", + "1 [No] \n", + "2 [No] \n", + "3 [No, No, No] \n", + "4 [No] \n", + "\n", + " reason_for_error_in_physician_response \n", + "0 [I've ordered this for you to be done at the H... \n", + "1 [Please contact the office at 510-521-2300 as ... \n", + "2 [Prescription busPIRone 7.5 mg tablet was sent... \n", + "3 [our facility does not operate as a travel vac... \n", + "4 [The physician response directly addresses the... " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Columns in the dataframe:\n", + "['row_number', 'file_path', 'subject', 'type', 'reasoning', 'clinical_accuracy_score', 'clinical_accuracy_reasoning', 'urgency_recognition_score', 'urgency_recognition_reasoning', 'professional_consultation_guidance_score', 'professional_consultation_guidance_reasoning', 'sensitivity_clarity_score', 'sensitivity_clarity_reasoning', 'num_errors', 'error_types', 'error_severities', 'error_descriptions', 'error_text_excerpts', 'error_in_physician_response', 'reason_for_error_in_physician_response']\n" + ] + } + ], + "source": [ + "import re\n", + "import json\n", + "\n", + "# Load all JSON files\n", + "json_files = glob.glob(str(output_path / \"evaluator_row_*.json\"))\n", + "print(f\"Found {len(json_files)} evaluator output files\")\n", + "\n", + "# Process each file\n", + "data = []\n", + "errors_loading = []\n", + "\n", + "def fix_json_string(json_str):\n", + " \"\"\"Fix common JSON string issues\"\"\"\n", + " # Remove any trailing commas before closing braces/brackets\n", + " json_str = re.sub(r',(\\s*[}\\]])', r'\\1', json_str)\n", + " \n", + " # Fix unescaped quotes in reason_for_error_in_physician_response\n", + " # Look for the problematic field and escape quotes within it\n", + " pattern = r'(\"reason_for_error_in_physician_response\":\\s*\")([^\"]*(?:[^\"]*\"[^\"]*)*?)(\")'\n", + " \n", + " def escape_quotes(match):\n", + " prefix = match.group(1)\n", + " content = match.group(2)\n", + " suffix = match.group(3)\n", + " # Escape quotes in the content\n", + " content = content.replace('\"', '\\\\\"')\n", + " return prefix + content + suffix\n", + " \n", + " json_str = re.sub(pattern, escape_quotes, json_str)\n", + " \n", + " return json_str\n", + "\n", + "for file_path in sorted(json_files):\n", + " try:\n", + " with open(file_path, 'r') as f:\n", + " file_data = json.load(f)\n", + " \n", + " # Get the evaluator_output string\n", + " evaluator_output_str = file_data.get('evaluator_output', '{}')\n", + " \n", + " # Try to fix common JSON issues\n", + " try:\n", + " evaluator_output = json.loads(evaluator_output_str)\n", + " except json.JSONDecodeError as e:\n", + " print(f\"Attempting to fix JSON in {Path(file_path).name}...\")\n", + " # Try to fix the JSON string\n", + " fixed_json_str = fix_json_string(evaluator_output_str)\n", + " try:\n", + " evaluator_output = json.loads(fixed_json_str)\n", + " print(f\" Successfully fixed JSON in {Path(file_path).name}\")\n", + " except json.JSONDecodeError as e2:\n", + " print(f\" Failed to fix JSON in {Path(file_path).name}: {e2}\")\n", + " # Try a more aggressive approach - extract what we can\n", + " evaluator_output = {}\n", + " try:\n", + " # Try to extract basic fields using regex\n", + " subject_match = re.search(r'\"subject\":\\s*\"([^\"]*)\"', evaluator_output_str)\n", + " type_match = re.search(r'\"type\":\\s*\"([^\"]*)\"', evaluator_output_str)\n", + " \n", + " if subject_match and type_match:\n", + " evaluator_output = {\n", + " 'message_categorization': {\n", + " 'subject': subject_match.group(1),\n", + " 'type': type_match.group(1),\n", + " 'reasoning': ''\n", + " },\n", + " 'response_evaluation': {},\n", + " 'errors_identified': []\n", + " }\n", + " print(f\" Extracted basic info from {Path(file_path).name}\")\n", + " else:\n", + " raise e2\n", + " except:\n", + " print(f\" Could not extract any data from {Path(file_path).name}\")\n", + " errors_loading.append(f\"Failed to parse {file_path}: {e}\")\n", + " continue\n", + " \n", + " # Extract row number from filename\n", + " row_num = Path(file_path).stem.split('_')[-1]\n", + " \n", + " # Flatten the data structure\n", + " flat_data = {\n", + " 'row_number': row_num,\n", + " 'file_path': file_path,\n", + " 'subject': evaluator_output.get('message_categorization', {}).get('subject', ''),\n", + " 'type': evaluator_output.get('message_categorization', {}).get('type', ''),\n", + " 'reasoning': evaluator_output.get('message_categorization', {}).get('reasoning', ''),\n", + " }\n", + " \n", + " # Extract evaluation scores\n", + " response_eval = evaluator_output.get('response_evaluation', {})\n", + " for metric, details in response_eval.items():\n", + " if isinstance(details, dict):\n", + " flat_data[f'{metric}_score'] = details.get('score', '')\n", + " flat_data[f'{metric}_reasoning'] = details.get('reasoning', '')\n", + " \n", + " # Extract error information - ALL FIELDS\n", + " errors = evaluator_output.get('errors_identified', [])\n", + " flat_data['num_errors'] = len(errors)\n", + " flat_data['error_types'] = [error.get('type', '') for error in errors]\n", + " flat_data['error_severities'] = [error.get('severity', '') for error in errors]\n", + " flat_data['error_descriptions'] = [error.get('description', '') for error in errors]\n", + " flat_data['error_text_excerpts'] = [error.get('text_excerpt', '') for error in errors]\n", + " flat_data['error_in_physician_response'] = [error.get('error_in_physician_response', '') for error in errors]\n", + " flat_data['reason_for_error_in_physician_response'] = [error.get('reason_for_error_in_physician_response', '') for error in errors]\n", + " \n", + " data.append(flat_data)\n", + " \n", + " except Exception as e:\n", + " error_msg = f\"Error loading {file_path}: {e}\"\n", + " print(error_msg)\n", + " errors_loading.append(error_msg)\n", + "\n", + "# Convert to DataFrame\n", + "df = pd.DataFrame(data)\n", + "print(f\"\\nSuccessfully loaded {len(df)} records\")\n", + "print(f\"Failed to load {len(errors_loading)} files\")\n", + "\n", + "if len(df) > 0:\n", + " print(\"\\nFirst few records:\")\n", + " display(df.head())\n", + " \n", + " # Show the columns we have\n", + " print(\"\\nColumns in the dataframe:\")\n", + " print(df.columns.tolist())\n", + " \n", + " # Show which files had issues\n", + " if errors_loading:\n", + " print(\"\\nFiles with loading issues:\")\n", + " for error in errors_loading:\n", + " print(f\" {error}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['row_number', 'file_path', 'subject', 'type', 'reasoning',\n", + " 'clinical_accuracy_score', 'clinical_accuracy_reasoning',\n", + " 'urgency_recognition_score', 'urgency_recognition_reasoning',\n", + " 'professional_consultation_guidance_score',\n", + " 'professional_consultation_guidance_reasoning',\n", + " 'sensitivity_clarity_score', 'sensitivity_clarity_reasoning',\n", + " 'num_errors', 'error_types', 'error_severities', 'error_descriptions',\n", + " 'error_text_excerpts', 'error_in_physician_response',\n", + " 'reason_for_error_in_physician_response'],\n", + " dtype='object')" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data types after conversion:\n", + "clinical_accuracy_score int64\n", + "urgency_recognition_score int64\n", + "professional_consultation_guidance_score int64\n", + "sensitivity_clarity_score int64\n", + "num_errors int64\n", + "dtype: object\n", + "\n", + "Sample of converted data:\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
clinical_accuracy_scoreurgency_recognition_scoreprofessional_consultation_guidance_scoresensitivity_clarity_scorenum_errors
0989101
178691
278791
367593
400001
\n", + "
" + ], + "text/plain": [ + " clinical_accuracy_score urgency_recognition_score \\\n", + "0 9 8 \n", + "1 7 8 \n", + "2 7 8 \n", + "3 6 7 \n", + "4 0 0 \n", + "\n", + " professional_consultation_guidance_score sensitivity_clarity_score \\\n", + "0 9 10 \n", + "1 6 9 \n", + "2 7 9 \n", + "3 5 9 \n", + "4 0 0 \n", + "\n", + " num_errors \n", + "0 1 \n", + "1 1 \n", + "2 1 \n", + "3 3 \n", + "4 1 " + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Convert all columns containing integers to int type\n", + "# Identify columns that should be integers\n", + "integer_columns = [\n", + " 'clinical_accuracy_score',\n", + " 'urgency_recognition_score', \n", + " 'professional_consultation_guidance_score',\n", + " 'sensitivity_clarity_score',\n", + " 'num_errors'\n", + "]\n", + "\n", + "# Convert these columns to int type, handling any non-numeric values\n", + "for col in integer_columns:\n", + " if col in df.columns:\n", + " # Convert to numeric, coercing errors to NaN\n", + " df[col] = pd.to_numeric(df[col], errors='coerce')\n", + " # Fill NaN values with 0 or another appropriate default\n", + " df[col] = df[col].fillna(0).astype(int)\n", + "\n", + "# Also convert error_severities from list of strings to list of integers\n", + "def convert_severities_to_int(severities_list):\n", + " \"\"\"Convert list of string severities to list of integers\"\"\"\n", + " if isinstance(severities_list, list):\n", + " return [int(sev) if str(sev).isdigit() else 0 for sev in severities_list]\n", + " return []\n", + "\n", + "# Apply the conversion to error_severities column\n", + "df['error_severities'] = df['error_severities'].apply(convert_severities_to_int)\n", + "\n", + "print(\"Data types after conversion:\")\n", + "print(df[integer_columns].dtypes)\n", + "print(\"\\nSample of converted data:\")\n", + "df[integer_columns].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"has_LLM_response\"] = df[\"error_text_excerpts\"].apply(lambda x: \"Unknown\" not in x)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [], + "source": [ + "no_LLM_response_df = df[df[\"error_text_excerpts\"].apply(lambda x: \"Unknown\" in x)]" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [], + "source": [ + "with_LLM_response_df = df[~df[\"error_text_excerpts\"].apply(lambda x: \"Unknown\" in x)]" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "type\n", + "Medication Request 27\n", + "Clinical Advice Request 24\n", + "Test Result Inquiry 18\n", + "Referral Request 13\n", + "Administrative Request 10\n", + "Appointment Request 7\n", + "General Inquiry 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"type\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "type\n", + "Medication Request 4\n", + "Administrative Request 2\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "no_LLM_response_df[\"type\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "type\n", + "Clinical Advice Request 24\n", + "Medication Request 23\n", + "Test Result Inquiry 18\n", + "Referral Request 13\n", + "Administrative Request 8\n", + "Appointment Request 7\n", + "General Inquiry 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with_LLM_response_df[\"type\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error rate: 89.00%\n", + "Error type counts:\n", + " Clinical Error 74\n", + "Non-Clinical Error 58\n", + "dtype: int64\n", + "Severity distribution:\n", + " 1 6\n", + "2 60\n", + "3 56\n", + "4 6\n", + "5 4\n", + "dtype: int64\n", + "Average severity (overall): 2.31\n" + ] + } + ], + "source": [ + "# Add 'has_error' column: any errors present?\n", + "df['has_error'] = df['num_errors'].apply(lambda x: x > 0)\n", + "\n", + "# Error rate\n", + "error_rate = df['has_error'].mean()\n", + "\n", + "# Count by error type (flattened)\n", + "from collections import Counter\n", + "\n", + "error_type_counts = Counter([et for row in df['error_types'] for et in row])\n", + "error_type_counts = pd.Series(error_type_counts)\n", + "\n", + "# Severity distribution (flattened)\n", + "severity_counts = Counter([sev for row in df['error_severities'] for sev in row])\n", + "severity_counts = pd.Series(severity_counts).sort_index()\n", + "\n", + "# Average severity per message (where applicable)\n", + "# Fix: Convert string severity values to integers before calculating mean\n", + "df['avg_error_severity'] = df['error_severities'].apply(\n", + " lambda x: np.mean([int(sev) for sev in x]) if x else 0\n", + ")\n", + "avg_severity = df['avg_error_severity'].mean()\n", + "\n", + "print(f'Error rate: {error_rate:.2%}')\n", + "print('Error type counts:\\n', error_type_counts)\n", + "print('Severity distribution:\\n', severity_counts)\n", + "print(f'Average severity (overall): {avg_severity:.2f}')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error rate: 88.04%\n", + "Error type counts:\n", + " Clinical Error 71\n", + "Non-Clinical Error 49\n", + "dtype: int64\n", + "Severity distribution:\n", + " 1 6\n", + "2 59\n", + "3 50\n", + "4 5\n", + "dtype: int64\n", + "Average severity (overall): 2.49\n" + ] + } + ], + "source": [ + "# Add 'has_error' column: any errors present?\n", + "with_LLM_response_df['has_error'] = with_LLM_response_df['num_errors'].apply(lambda x: x > 0)\n", + "\n", + "# Error rate\n", + "error_rate = with_LLM_response_df['has_error'].mean()\n", + "\n", + "# Count by error type (flattened)\n", + "from collections import Counter\n", + "\n", + "error_type_counts = Counter([et for row in with_LLM_response_df['error_types'] for et in row])\n", + "error_type_counts = pd.Series(error_type_counts)\n", + "\n", + "# Severity distribution (flattened)\n", + "severity_counts = Counter([sev for row in with_LLM_response_df['error_severities'] for sev in row])\n", + "severity_counts = pd.Series(severity_counts).sort_index()\n", + "\n", + "# Average severity per message (where applicable)\n", + "# Fix: Convert string severity values to integers before calculating mean\n", + "with_LLM_response_df['avg_error_severity'] = with_LLM_response_df['error_severities'].apply(\n", + " lambda x: np.mean([int(sev) for sev in x]) if x else np.nan\n", + ")\n", + "avg_severity = with_LLM_response_df['avg_error_severity'].mean()\n", + "\n", + "print(f'Error rate: {error_rate:.2%}')\n", + "print('Error type counts:\\n', error_type_counts)\n", + "print('Severity distribution:\\n', severity_counts)\n", + "print(f'Average severity (overall): {avg_severity:.2f}')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3ElJREFUeJzs3Xd4U2X7wPHvOUlH2lLasvdumYWyyhIERXhVHIwfCCKKjBdREEEB9RUXIiobUVBAGQqKoICAOMAtQlm1UPbe0F3apknO74/QSOhKS9Kk7f25Li4yTu5znzTnOU+ePEPRNE1DCCGEEEIIIYQQQogipLo7ASGEEEIIIYQQQghR+kijlBBCCCGEEEIIIYQoctIoJYQQQgghhBBCCCGKnDRKCSGEEEIIIYQQQogiJ41SQgghhBBCCCGEEKLISaOUEEIIIYQQQgghhChy0iglhBBCCCGEEEIIIYqcNEoJIYQQQgghhBBCiCInjVJCCCFECaBpmrtTEEJ4mMKWC1KeCFFyOPt8LonlQ0k8puJEGqU8yKRJk+jWrZvtfrdu3Zg0aVKBYhTmNQXNSwghhPvs2LGDsLAwduzYAcDFixcZOXIk586ds23jimuBKBlSUlIYNWoUzZs3p02bNpw8ebJI9rt27VrCwsI4e/ZskezvVqXhnLj1PT569CiPPPJIgeNERUUxcuRI2/2zZ88SFhbG2rVrnZaruzjyOZB6ryjObv2Mf/DBByxevNh2f968eYSFhTkcz1nlijOEhYUxb968247jScckrPTuTkDkbv78+QQEBLj8NUIIIYqPJk2asHr1aurXrw/AH3/8wfbt2/nf//5n20auBSI3X3/9NT/99BOvvPIKDRo0oHr16kWy3zvvvJPVq1dTsWLFItmfgM2bN7Nnz54Cv+7LL7/k6NGjtvsVK1Zk9erV1KxZ05npuYWUjaKku/UzPnv2bJ5++mnb/X79+nHHHXc4HO/Wsruw5YonKYnHVNxJo5QHa9y4cZG8RgghRPEREBBAixYt8txGrgUiNwkJCQAMHDgQRVGKbL8hISGEhIQU2f6E83h7e+db5hQXUjaKki6/z3jlypWpXLmyw/FKYtldEo+puJPhe0VM0zRWrlzJfffdR3h4ON27d+ejjz7KcRzrzd0vs7pOb968mTFjxhAREUGbNm146aWXSE1NzfE1AKmpqUybNo3OnTvTokULevfuzU8//WR7Pj09nRkzZnDPPffQtGlTWrZsyRNPPMHBgwdv+1h/+OEHBg4cSEREBE2bNqVnz56sWLHCbptr167x4osv0qFDByIiIhg0aBBRUVG25zMzM3n//fe5++67CQ8P57777uOrr76yPT948GAGDx5sF/PWoS1r166lcePGfPnll3Tq1InOnTtz5MgRzGYzixYt4v777yc8PJwWLVowYMAA/vzzT7t4//zzD8OGDaNVq1a0a9eOcePGceHCBUwmE506dWL8+PHZjv0///kPkydPdvi9ysjI4LXXXqNz586292rJkiUFeq8yMjJ4//336dmzJ82aNeOee+5h0aJFWCwWu/drwoQJjBkzhpYtWzJixAjba9955x26dOlC06ZN6dWrF5s2bXI4f+GZchqmcHOX5Xnz5tG9e3fmz59PZGQkd999N/Hx8WRmZvLee+/RuXNnwsPDefLJJ/n666+zDb3ZtWsXjz76KM2bN6dt27ZMnDiRuLg4u301btyYffv20b9/f5o1a8add97JRx99ZJdTXuXU9OnTCQ8PJzk52e41ixYtIiIiguvXrzv0XmSVoUuXLuU///kPbdu2tQ1FOXz4MCNHjqRly5a0bNmS0aNHc+bMGbvXO+P8A1i8eDF33XUX4eHhDBgwgJ9++smuvMr6m2zfvp1evXrRtGlTevTowbp162wxbi7j1q5daytr7rrrLtvf+9a/fXJyMtOmTePuu++mWbNm3H///axZs8Yut27dujF37lymT59Ohw4dbH/7EydOOPQe32z58uW29+KOO+7g1VdfJSUlxfZ8fmU7wKZNm+jduzcRERF07NiRV155hcTERNvzuX1+wdrT47777qNp06bceeedzJs3D5PJVODjcJdu3boxa9Yspk2bRtu2bWnbti3PP/+87fgmTZrEkCFDmDJlCq1bt+bhhx/GZDLl+zkcPHiwbehDw4YNbZ8RR64BMTExDBkyhFatWhEREcHjjz/Ovn37bM/HxcUxYcIEOnbsSLNmzXjwwQf5+uuvbc/nNHzv999/Z+DAgbRq1YrIyEjGjx/PhQsX7F7jSBly9uxZXnjhBTp16kSTJk1o3749L7zwgu39uh3ffvstvXv3pnnz5tx55528++67GI1G2/PR0dE8+eSTREZG0rJlS/773/9y5MgR2/NZ5+uff/7J0KFDad68OR06dGD69Ol2n8k//viD/v372+p3Tz31FMePH7c970h952bz5s1j/vz5gP2Ql7i4OF577TW6du1K06ZNadu2LaNHj7b9XSZNmsS6des4d+6cbcheTsP3Tp48yZgxY+jYsSMtWrRg8ODBdmWio/VWR23fvp3evXsTHh5Ojx492LhxI927d7cdV27vxa3v261lY2JiIpMnTyYyMpI2bdrw7rvvZiu3HakvOlJ2Q/7XEovFwqJFi+jevbstxvLlywv8flksFubMmUO3bt1o2rQp3bp1Y+bMmWRmZtq2ye87gtlsZuXKlfTq1Yvw8HDuvPNO3nvvPTIyMmzb5FYWOes4ipP8ykhn1Zk2bdrEAw88QHh4OO3atWPChAlcvnzZ9vzNn/GsYXrz58+33b55+N6HH35IkyZN7PIA+Oyzz2jcuDFXrlzJVm+8tVwZM2YMXbp0yXbevPLKK9x1110Fmqspv/PjVrGxsTz99NO0a9eOJk2acMcdd/Dmm2+Snp5u2yYsLIz58+fTp08fWrVqxYIFC4r0mKQ+5BjpKVXEZs6cyeLFi3n88cfp2LEjMTExzJo1y66Ck5cpU6bQp08fFixYwP79+5k1axYhISE5NoxYLBaGDRvGsWPHGDNmDPXq1eObb77h6aefZunSpURGRvLCCy+wc+dOxo8fT82aNTl58iRz5sxh3LhxbN68udC/om7fvp3Ro0fz2GOP8cwzz5Cens6KFSt44403aNy4MS1btuT69esMGDCAzMxMxo8fT+XKlfn0008ZNmwYa9asoV69ekycOJEff/zRNv/Fr7/+yosvvohOp+Ohhx5yOB+z2cyHH37Im2++SVxcHPXr1+edd97hs88+Y8KECYSFhXHx4kXef/99xo4dy/bt2/Hz8yM2NpZHHnmE8PBw3n77bTRNY8aMGQwdOpT169fz0EMPsXz5clJSUmxdZfft28fx48d5/fXXHc5v6tSp/Pbbb0ycOJHy5cvzyy+/MH36dIKCgujdu3e+71XdunX573//y969exk9ejSNGjVix44dzJ49mzNnzvDGG2/Y9rV582Z69uzJ+++/j9lsRtM0Ro8eze7du22fk++//55x48ZhNBoL9D6L4uf8+fN8//33zJw5k/j4eIKDg5k8eTIbN27kmWeeoVGjRmzcuNFuaBjAzp07eeKJJ2jXrh2zZ88mMTGROXPm8Nhjj7FmzRp8fX0Bazn07LPP8vjjj/Pss8+yZs0a3nvvPRo2bMgdd9yRbznVt29flixZwpYtW+jXr59t/19//TU9e/bEz8+vQMc7a9YsXnnlFQIDA2natCknTpxgwIAB1K1bl7fffhuz2cwHH3zAI488wjfffEO5cuWcdv7Nnz+f999/nyeffJJ27drx66+/Mm7cuGw5Xrlyhddff51Ro0ZRrVo1Fi9ezKRJkwgPD6devXp22955552MGjWKDz74wK7SebP09HQGDhzI1atXeeaZZ6hRowY//PADL730ElevXuW///2vbdtly5bRqlUrpk2bRmJiIlOnTmXSpEmsXr3a4ff422+/Zfr06UycOJGwsDCOHz/O9OnTSU9P5+233wbIt2xfsGABc+bMYeDAgYwbN44zZ84wZ84c9u7dyxdffGH7fOX0+V24cCGzZs3i0UcfZfLkyRw8eJB58+Zx4cIF3nrrLYePw90+++wzatWqxVtvvUVcXBwzZszg+PHjfPnll4D1C46iKMybN4/U1FR0Oh3Dhw/P83M4ZcoUli5dypo1a1i9ejUhISEOXQNSUlIYNmwYkZGRzJ07l8zMTD744AOefPJJtm3bRpkyZXj++ee5du0ar732Gv7+/qxfv56JEydSpUoVIiMjsx3fN998wwsvvMC9997LyJEjiY+PZ+7cufTv359169ZRrlw5IP8yJC0tjccee4zg4GCmTJlCmTJliIqK4v3338fHx8fu+ldQq1atYsqUKfTt25dx48Zx9uxZ3nnnHeLj43nrrbf466+/GDZsGG3atGHq1KkYjUYWLlzIgAED+OKLL+zO1wkTJjBw4ECGDx/O9u3bWbJkCbVq1WLAgAGcOXOGUaNG0adPH8aNG0diYiKzZs1ixIgRbN26FVUt+G/I/fr14+LFi7a/deXKldE0jZEjR5KYmMj48eOpUKECBw8eZM6cObzyyissWbKEp556iri4OA4cOMD8+fOpWbNmtsb/o0eP8n//93/UqlWLl19+GS8vL5YtW8aQIUNYsmQJbdu2tW1bkHprbv766y+eeuopunbtytixYzl16hRTpkyxaxwpjKzrz9mzZ5kwYQLlypXj448/Zv/+/XbDTN97771864uQf9ntSL331VdfZe3atYwcOZKIiAh27tzJW2+9RVJSEqNHj3b42D766CNWrlzJxIkTqVGjBvv27WPWrFl4eXnxzDPPOPQd4ZVXXuHrr79m2LBhtG3blgMHDvD+++9z8OBBPv74Y9t3hFvLIr1ezyuvvOKU4ygu8isjY2NjnVJnioqKYsKECTz11FO0adOGixcv8u677zJ+/PgcG/1Wr15N//796du3r10dKssDDzzA7Nmz2bp1KwMGDLA9vnHjRtq3b0+FChXsts+pXDl8+DDfffcdO3bsoH379gAYjUY2b97MkCFDHP4u6cj5cbPLly8zaNAgWrRowdtvv423tzfbt2/n008/pXz58nZ1mw8++ICxY8cSFhZG5cqViYmJKZJjkvpQAWiiyCQmJmpNmjTR3nrrLbvHp02bpj3xxBPaxIkTta5du9oe79q1qzZx4kRN0zTtzJkzWmhoqDZhwgS71w4ePFi7//77c3zNtm3btNDQUO2HH36wPW+xWLQBAwZos2fP1jIyMrShQ4dq3377rV3MJUuWaKGhodqlS5c0TdOy5eWIjz76SHvhhRfsHouPj9dCQ0O1Dz/8UNM0TVuxYoUWFhamHTx40LZNenq61rNnT+3zzz/XDh8+rIWGhmqffvqpXZyxY8dqkyZN0jRN0x599FHt0UcftXv+r7/+0kJDQ7W//vpL0zRN++qrr7TQ0FDtiy++sNvuueee05YuXWr32HfffaeFhoZqu3fv1jRN05555hmtY8eOWnp6um2bffv2aV27dtWio6O148ePa6GhodqaNWtsz0+ZMkW7++67NYvF4vD71aNHD+2ll16ye2z+/PnaTz/95NB7tX37di00NFT75ptv7GK8//77WmhoqHbkyBHb+9W0aVMtNTXVts1vv/2mhYaGZvscTJgwQevYsaOWmZnp8HEIz3JzeZAl63w4c+aMNnfuXC00NFT7/fffbc+fOnVKCwsL05YsWWL3uqFDh9pep2ma1r9/f+3+++/XTCaTbZvjx49rjRo10lasWGG3r5vPvYyMDK1Zs2ba66+/rmla/uVU1r4GDRpke37fvn1aaGiotnPnToffi6wydPz48XaPP/fcc1r79u215ORk22Px8fFaq1attLffflvTNOecf6mpqVp4eLj2xhtv2G3zv//9z668yvqb/PHHH7Ztzp07p4WGhmqLFy/WNC33Mi7rb6Np9n/7lStXaqGhodquXbvs9v3iiy9qzZo10+Lj422v6dq1q93fdN68eVpoaKgWFxeX31tsd0z33HOPZjabbY9988032ieffKJpmpZv2Z6QkKA1bdo0W5m4c+dOLTQ0VFu5cqXde3Xz5zcpKUlr3ry59sorr9i99osvvtBCQ0O1w4cPO3wc7tS1a1etTZs2WlJSku2x77//XgsNDdW2bdumTZw4UQsNDdVOnjxpe97R60DW+5bFkWvAnj17sn2GTp06pU2fPl07f/68pmma1rRpU23BggW2581ms/b222/bztObP6dms1nr2LGj9vjjj9vt89SpU1qTJk20d955x+41eZUhBw4c0B555BHt1KlTdrFGjhyp3XPPPXbv6a3lYV7MZrPWoUMHbfTo0XaPL126VHvggQe0jIwMrW/fvlrPnj3tzpnExEStbdu22tixYzVN+/d8nTVrll2cbt26aSNHjtQ0TdM2btyohYaGahcvXrQ9v2/fPm3mzJm2sqkg9Z2ssuDWv/XFixe1wYMHZys733jjDa1Jkya2+7fW+7LKz6+++krTNOu52rZtW7vPZ2ZmptajRw+tb9++dq/Jr97qiIEDB2q9evWyq1dlvWdz587N8b3Icuv7llM9edu2bbbnU1NTtcjISLvjd6S+6EjZnd+15Pjx41pYWJi2cOFCu33NmjVLa9asWYHK4aFDh2Y7v5YvX66tW7fO7thzu/YeOXJECw0NtTunNU3Tvv76ay00NFTbvn27pmlajmWRM4+juMivjHRWnWnhwoVaixYt7L6XbN++XZs3b57t/Li1rLv5PNG07OXCrefIuXPntLCwMNu1JL9yxWw2a507d7b73vftt99qYWFh2tmzZx1+D/M7P249ll9//VUbNGiQXf1N0zTt/vvv14YOHWp3/AMGDLDbpqiOSepDjpPhe0Vo7969ZGZm0r17d7vHJ02alG2oVm5uHdNfuXLlXIev7Nq1Cy8vL7p27Wp7TFEUPv/8c8aOHYu3tzeLFy/m3nvv5fLly+zcuZPVq1ezbds2ALsuvgU1bNgwpk+fzvXr14mNjWXz5s0sWrTILu6uXbuoXr06DRs2tL3Ox8eHzZs3M2DAAHbt2gWQ7f2aPXs206ZNK3BOoaGhdvdnzJjB448/TlxcHHv27GHt2rWsX7/eLseoqCg6d+6Mj4+P7XXh4eH89NNPNG3alDp16tCqVSu++eYbwNqKvmnTJh566KEC9TKLjIzkyy+/ZPjw4Xz22WecO3eO0aNH2/52+b1Xf//9Nzqdjnvvvdcu7gMPPABg1529evXqdr1L/vzzTxRFoUuXLphMJtu/bt26ceXKFbthCKJkuvnc2LFjB5qm0bNnT7tt7r//ftvttLQ09u3bR5cuXdA0zfaZqVGjBvXq1eP333+3e21ERITttre3NyEhIbZyK79yCqBPnz7s2rXLNrxk7dq11KxZk9atW9/WsYL1F/jIyEh8fX1txxEQEEDr1q35448/bDne7vm3d+9e0tPT83xfb3ZzWZ8194OjQxVv9ffff1OtWjVatWqVLb+MjAy74QXNmjVDp9Nl23daWprD+2vXrh0nT56kd+/eLFiwgAMHDtCrVy+GDBkCkG/ZvnfvXoxGI7169bJ7vnXr1lSrVi3b8Jyb/6Z79uwhLS2Nbt26ZSvPgGyfTU/WtWtXypQpY7vfrVs3vLy8bO+fr6+v3cTTBbkO3MyRa0CDBg0ICQlh1KhRTJkyhZ9++okKFSrwwgsvUKVKFcB6HZs3bx5jx45l7dq1xMXFMXHixBzP0xMnTnDlypVsf+OaNWsSERGRLde8ypBGjRrx2WefUb16dc6cOcOvv/7KkiVLOH78+G3VY06cOMHVq1e5++677R5//PHH+eabbzCZTERHR3PvvffanTOBgYF07do1z2MA+/pb8+bN8fHxoW/fvkybNo0//viDhg0bMm7cOKdOyl2pUiWWLVtG69atOX/+PH/++ScrVqxg9+7dBXqv/v7772yfT71ez3333Ud0dLTd8LyC1FtzYjQa2bNnDz169LCrV/Xo0QO9/vYGfGRdfzp37mx7zM/Pjy5dutht50h9MUteZXd+15K//voLTdNyLL8yMjLyHMZ0q8jISP744w8GDhzI0qVLOXbsGI8++qit93t+196///4bINs5et9996HT6ew+37eWRc48juIirzIyKCjIaXWmNm3akJ6eTq9evZg1axZRUVF06tSJp59+utCjWx588EF27dplGwL47bffYjAYsl2jc6OqKg8//DBbt2611RXWrVtHZGQk1apVcziP/M6PW3Xq1IkVK1bg4+PDiRMn2LZtGx9++CFxcXHZRiDdWvcrqmOS+pDjZPheEcqaXPR2JlYzGAx291VVzXVca0JCAkFBQXl2+/7111956623OH78OP7+/oSFheHv7w9QoPGyt4qLi2PKlCn88MMPKIpCrVq1bF+IsuIm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xRebQYMGmVGjRjX6/2XevHnm/PPPNwMGDDCnn366+fvf/96o/P79+bxkyZLa/6PTTz/dvPjii42KL/tLZY1SfTp8TaE+GZPcGpXs+mRMcmuU6lP6ZXJ9MiY1NUr1SfXpcKg+pV9zfI/XHOuTMXqPl8nv8SxjGjmnVkREREREREREpIF0+p6IiIiIiIiIiKSdmlIiIiIiIiIiIpJ2akqJiIiIiIiIiEjaqSklIiIiIiIiIiJpp6aUiIiIiIiIiIiknZpSIiIiIiIiIiKSdmpKiYiIiIiIiIhI2qkpJSIiIiIiIiIiaef3OgERgNdee42nn36aVatWAdC9e3cuvvhi/uM//sPjzESkuVN9EpFMpfokIplK9UkSpaaUeG7GjBncdddd3HbbbQwZMgRjDJ988gl33303JSUlXH/99V6nKCLNlOqTiGQq1ScRyVSqT9IQljHGeJ2ENG8XXHABAwcO5Pbbb69z+29/+1uee+455s2b51FmItLcqT6JSKZSfRKRTKX6JA2hNaXEc7Zts3DhQsrKyurcfs011/Dcc88BEIvF+P3vf89pp53GCSecwAUXXMD7779fe+zatWu59tprGTZsGIMGDeLGG29ky5Yttfdffvnl3HbbbVx88cUMHjyYl19+GYAXX3yRc845h+OPP55zzjmHv/3tb7ium/oHLSJNguqTiGQq1ScRyVSqT9IgRsRjb775pundu7c5/vjjzTXXXGMef/xxs3jxYuO6bu0xd955pxk2bJj55z//adavX28eeugh07dvX7N69WqzadMmM2jQIHPDDTeYL7/80ixevNj84Ac/MKNHjzZ79uwxxhhz2WWXmV69eplXX33VrFq1ypSWlppnn33WDBkyxLz22mtmw4YN5s033zQjRoww9913n1e/ChHJMKpPIpKpVJ9EJFOpPklDqCklGWHx4sVmypQpZvjw4aaoqMgUFRWZM88808yfP9/s2bPH9O3b1zzzzDN1vufBBx80n3/+ufnf//1fc/LJJ5twOFx7X0lJiTn++OPN9OnTjTHxojVx4sQ633/KKaeYadOm1bltxowZpn///qampiZFj1REmhrVJxHJVKpPIpKpVJ8kUVroXDLC8ccfz/33348xhlWrVjFnzhz+/ve/c8011/Dkk08SjUYZMGBAne+ZPHkyAH/4wx/o168fwWCw9r62bdtyzDHHsHLlytrbunXrVnu5tLSUbdu28fDDD/OHP/yh9nbXdQmHw2zatIljjz02RY9WRJoS1ScRyVSqTyKSqVSfJFFqSomntm3bxl/+8hd+/OMf06FDByzLolevXvTq1YvTTz+dc889t865xQdijMGyrP1udxyHQCBQez03N7f28r7zin/+859z0kkn7fe9nTp1OtyHJCJZQvVJRDKV6pOIZCrVJ2koLXQungoGgzz33HO8+uqr+91XUFAAwNChQwkEAixdurTO/RdddBHTpk2jqKiIJUuWEIlEau8rKSlh/fr1B+2Gt23blrZt27Jhwwa6detW+7V8+XIeeuih5D1AEWmyVJ9EJFOpPolIplJ9kobSTCnxVJs2bbj66qt56KGHqKio4Oyzz6agoIA1a9bw6KOPMmzYMIYOHcpll13Gww8/TJs2bejZsycvvvgia9asYfTo0QSDQZ555hmmTJnCpEmTiEQi3HfffbRu3ZrzzjvvgD/XsiyuvvpqHnzwQTp37sypp57KqlWruPPOOxk1alSdqaIi0jypPolIplJ9EpFMpfokDWUZY4zXSYi8/PLLPP/886xatYqamho6derEueeey09+8hPy8vKIRCI88sgjvPLKK5SXl9OrVy+mTJnC0KFDAVi2bBkPPPAAixYtIhgMMmLECG6++WY6d+4MxLcMPfLII7n33nvr/Nzp06fz1FNPsWnTJtq2bcu5557L5MmTVbREpJbqk4hkKtUnEclUqk+SKDWlREREREREREQk7bSmlIiIiIiIiIiIpJ2aUiIiIiIiIiIiknZqSomIiIiIiIiISNqpKSUiIiIiIiIiImmnppSIiIiIiIiIiKSdmlIiIiIiIiIiIpJ2akqJiIiIiIiIiEjaqSklIiIiIiIiIiJpp6aUiIiIiIiIiIiknZpSIiIiIiIiIiKSdmpKiYiIiIiIiIhI2qkpJSIiIiIiIiIiaff/A3QICdLQtndGAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "score_columns = [\n", + " 'clinical_accuracy_score', \n", + " 'urgency_recognition_score', \n", + " 'professional_consultation_guidance_score',\n", + " 'sensitivity_clarity_score'\n", + "]\n", + "\n", + "plt.figure(figsize=(12, 4))\n", + "for i, col in enumerate(score_columns):\n", + " plt.subplot(1, len(score_columns), i+1)\n", + " data = with_LLM_response_df[col].dropna().astype(int) # Ensure integer type for scores\n", + " # Set bins to cover each integer from 0 to 10\n", + " bins = range(0, 12) # 0-11, so 0-10 are centers\n", + " sns.histplot(data, bins=bins, discrete=True, kde=True, color='crimson', alpha=0.4)\n", + " plt.title(col)\n", + " plt.xlabel('Score')\n", + " plt.ylabel('Frequency')\n", + " plt.xticks(range(0, 11)) # Show 0-10 in order\n", + " plt.xlim(-0.5, 10.5) # Center bars on integer ticks\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAPeCAYAAAD6bcIrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAk4FJREFUeJzs3Xd4FGXj9fGzySYEUjChJXQIYBQEQXoVBASkhCI2SgARldCkV6WGDtKRJgjyKKAINkTQKKg0FQEliKCCdEILJW33/YMfeZ88AUw2O5nN5vu5Li+Se4fZA3Jn9+zM3GOx2+12AQAAAAAAQ3iYHQAAAAAAAHdG8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADGQ1O4CRzp+/ZnYEwHAFCvibHSFLMa+RU+Skuc28Rk6Rk+a1xNxGzpDeec0RbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADOQSxTs2NlZNmjTRrl27Usb279+vp59+WpUrV1ajRo20bt06ExMCcARzG3A/zGvA/TCvAeOZXrz37dunZ555Rn///XfK2JUrV/TSSy8pPDxce/bs0cSJExUVFaVffvnFxKQAMoK5Dbgf5jXgfpjXQNYwtXh/+OGHGjRokAYMGJBq/IsvvtADDzygF154QVarVbVq1VKrVq20Zs0ak5ICyAjmNuB+mNeA+2FeA1nHauaT161bV61atZLVak014X///XeVK1cu1bZlypTR+vXrM7R/Dw+LPDws993m9OlTOnfubIb2ey/nz5/TzZs3nLIvZ8mdO48KFCjolH0VLFhIISGFnbIvZ4mNvahbt26ZHSMVHx8fBQXlMzuGqYyc28xr5rVZcvrcNnteS9LJkyd18eL59Ie+h+vX45SQkJDp/Tibt7e3fH39Mr2ffPkKqGjRok5I5FyuOLeZ17wXN5orvmZfvnxZN25cd0Ii6erVK4qPj3fKvpwlV65cCgjI65R95cnjqwceeMAp+zK1eBcoUOCu49evX1fu3LlTjfn4+OjGjYxNpKAgX1ks95/sq1Z9qqNHj2ZovzlVmTJl1K9fP7NjpIiLi9Obb06X3W43O0oqHh4emjhxovz8Mv/mKbsycm4zr52LeZ1+OX1umz2vY2NjtXTJAtnstnTvN6fysHjo9TdeV1BQkNlRUrjq3GZe8148O3HGa3ZsbKzmzpmhxKREJ6Vyb15WL40aPcopP09NLd73kjt3bl27di3V2K1bt+Tr65uh/cTGXv/XT9maNGmhSpX4lC09ChYspEuXnPPpmHNY1K/fIKd8en7+/Dlt2PCe2rd/JtN/Xz4+PkpMtGTZ31VgYMbmhZmcMbeZ18zr9HLmvJaY2/eSVfP69OkLstltqp8nvx7wyNzbl+u2JCW6WAGUJC+LRb6Z/LNdtiXpmxsXdPr0BVksuZyUzBmcM7eZ11mD9+LO42qv2adPX1BiUqJa+4cov6d3pjNdTU5Ugot9IOpt8VCAp1em93MhOUGbrp3+15+n6Z3XLlm8y5Urp507d6YaO3r0qMqWLZuh/dhsdtls939hLVAgWAUKBGc4Y06VlORaEysgIFABAZnfT3Ly7T9XUFB+FSwYkun9udrfk6twxtxmXjufq/17ddV5Lbne35UryKp5fef/ZxlvXwV7+WQ8aA5xJvGWvrlxQcnJNpf79+qMuc28zhq8F3ddmf33emcO5ff0dsrP0pzw89hZP09NX9X8bpo0aaILFy7o7bffVmJion744Qdt3rxZ7du3NzsagExgbgPuh3kNuB/mNeB8Llm8AwMDtXz5cn3++eeqUaOGRo0apVGjRqlmzZpmRwOQCcxtwP0wrwH3w7wGnM9lTjWPiYlJ9f0jjzyi//znPyalAeAszG3A/TCvAffDvAaM5ZJHvAEAAAAAcBcUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAAAAAAAMRPEGAAAAAMBAVrMDAAAApNeF5ASzI7g0/n4AwDVRvAEAgMvLk8dXXlarNl07bXYUl+dltSpPHl+zYwAA/gvFGwAAuLy8eR/Qq71f040b182OkuLChfP68MP31bZtR+XPX8DsOCny5PFV3rwPmB0DAPBfKN4AACBbyJv3AZcslPnzF1BISBGzYwAAXBiLqwEAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIKvZAZDzXLlyWTduXDc7RioXLpxP9auryJPHV3nzPmB2DCBdXG1uM69xL5cuxerWrZuZ3o+z/435+ORWYGCQU/YFAHAtFG9kqStXLmvB/JlKTEoyO8pdffjh+2ZHSMXLatWrvV/jTTpcnivPbeY1/tuNG9c1b94M2e12p+3TWf/GLBYPDRw4XHny+DplfwAA10HxRpa6ceO6EpOS1No/RPk9vc2O49IuJCdo07XTunHjOm/Q4fKY2+nDvDZfnjy+iowc6JQj3s7m45Ob0g0AboriDVPk9/RWsJeP2TEAOBlzG9kBp3MDALIai6sBAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAEiy221KSEiQ3W4zOwrcjNXsAAAAAABczx9//KFJkyZp//798vPz0zPPPKNevXrJw8P9jt2dOXNau3bt1KFDB5SUlCir1Uvlyz+iGjXqKDg4xOx4cAMUbwAAAACpXL9+XS+++KLq1KmjuXPn6tKlS3r55ZeVnJysyMhIs+M51cGD+7Vx4zr5+weobt0GCgwM0qVLsfrpp706cOBnhYc/rQoVKpkdE9kcxRsAAABAKvv27dPFixc1ZswYeXt7K0+ePHrllVc0ceJE9e7dWxaLxeyITnHmzGlt3LhOFSpUUqtW7eTp6ZnyWJ06DbR58wfauHGd8ucvyJFvZIr7nScCAAAAIFNsNpu8vLzk5eWVMmaxWHThwgVdvXrVxGTOtWvXTvn7B6Qp3ZLk6empVq3ayd8/QLt3f2dSQrgLjngDAAAASKVKlSry8fHRjBkz1Lt3b8XGxmrZsmWSpFu3bilv3rz/ug8PD4s8PFz3yLjNZtOvvx5QvXqPK1cur7tuY7V66LHHqunbb79W27Ydsv2Rfk/P28ddjyZc14WkeJPTuLbLtiRJt//OrNbMH6+meAMAAABIJSAgQEuWLFFUVJQef/xxFS9eXOHh4Tpw4IACAgLStY+gIF+XLqrx8fFKTExUsWKFFRjoe8/tihYNUWJiovz8vOXt7Z2FCZ3Pbs8vD4uHvrlxwewo2YKHxUMhIfnv++8jvSjeAAAAAFJJSEhQUlKSVq1alVKe3333XZUpU0a5c+dO1z5iY6+7/BFvLy8vnThxSqGh1++53cmTp+Xl5aW4uARZLIlZmND5LJZcerHnq7p48bzZUVJcuhSr7du3qlGjJgoMDDI7Tir58hWQxZJLly7d+99Heks5xRsAAABAGj169NCQIUPUoUMHHTp0SIsWLcrQiuY2m102m93AhJn38MOPaN++PapVq36aa7wlKTk5Wfv27VH58hWVnGyX5Np/nvQIDi6s4ODCZsdIcfr0P9q+fatCQ8spJKSI2XHSSEpyzj3dWVwNAAAAQCre3t5asGCB1q5dqypVqqh///7q2bOnOnbsaHY0p6pRo46uXbuqzZs/UHJycqrHkpOTtXnzB7p27aqqV69tUkK4C454AwAAAEijWrVq+uCDD8yOYajg4BCFhz+tjRvX6a+/jqty5aqp7uN97dpVhYc/za3EkGkUbwAAAAA5VoUKlZQ/f0Ht3v2dduyIVlJSoqxWL1WoUFHVq9emdMMpKN4AAAAAcrTg4BC1bt1erVq1VWJikry8vFx6RXZkPxRvAAAAAJBksXhk+1uGwTWxuBoAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAAAAABqJ4AwAAAABgIIo3AAAAAAAGongDAAAAAGAgijcAAAAAAAaieAMAAAAAYCCKNwAAgAPsdpsSEhJkt9vMjgIAcHFWswMAAABkJ2fOnNauXTt16NABJSUlymr1Uvnyj6hGjToKDg4xOx4AwAW5dPE+dOiQJk2apJiYGPn4+KhZs2YaMmSIvL29zY4GwEHMa8D95KR5ffDgfm3cuE7+/gGqW7eBAgODdOlSrH76aa8OHPhZ4eFPq0KFSmbHBAC4GJc91dxms6lXr1568skntXv3bq1fv147duzQkiVLzI4GwEHMa8D95KR5febMaW3cuE4VKlRSZORA1a/fSI888qjq12+kyMiBqlChkjZuXKczZ06bHRUA4GJctnhfuXJF58+fl81mk91ulyR5eHgod+7cJicD4CjmNeB+ctK83rVrp/z9A9SqVTt5enqmeszT01OtWrWTv3+Adu/+zqSEAABX5bKnmgcGBioiIkJTpkzR1KlTlZycrCeeeEIRERHp3oeHh0UeHhbjQiLDPD1vf9ZzISne5CSu787fkaenh6xWl/2MLEOY1+6LuZ0+zOu7yw7z2maz6ddfD6hevceVK5fXXbexWj302GPV9O23X6tt2w6yWFz7z5Qely9f1o0b182OkSI29kLKr3d+7riCPHl89cADD5gdA4ALc9nibbPZ5OPjo9GjR6tDhw7666+/FBkZqTlz5qh///7p2kdQkK9bvOi5k7i420dANsWdMTlJ9hEQkFuBgb5mx3AK5rX7Ym5nDPM6tewwr+Pj45WYmKhixQrf9/9d0aIhSkxMlJ+fd7a/xj02NlZz58xQYlKi2VHS2LDhPbMjpOJl9dKo0aMUFBRkdhQALspli/fWrVu1ZcsWff7555KksmXLqnfv3po4cWK6X8hjY6+7/CfoOc3VqzclSa39gpXfmsvkNK7tQlK8NsWd0dWrN3Xp0r2PNmSnN+/Ma/fF3E6f9M5rKfvM7Zwyr202m7y8vHTixCmFht77/93Jk6fl5eWluLgEWSyuV1gz4vTpC0pMSlRr/xDl98zeHyIY6UJygjZdO63Tpy/IYrn/z7/sMq8BOJ/LFu/Tp08rISEh1ZjVapWX191P77obm80um83u7GjIhOTk2/c6zW/NpWAvH5PTZA/JyTYlJbnHPWKZ1+6LuZ0xzOvUssu8fvjhR7Rv3x7VqlU/zTXekpScnKx9+/aofPmKSk62S3L9P9P9pMxrT2/mdTq407wG4Hyuc3HM/6hbt67Onz+vRYsWKTk5WSdOnNDChQvVqlUrs6MBcBDzGnA/OWle16hRR9euXdXmzR8oOTk51WPJycnavPkDXbt2VdWr1zYpIQDAVbnsEe8yZcpo8eLFmj17tpYuXSp/f3+1bt1avXv3NjsaAAcxrwH3k5PmdXBwiMLDn9bGjev011/HVbly1VT38b527arCw59WcHCI2VEBAC7GZYu3JNWuXVu1a/OpMeBOmNeA+8lJ87pChUrKn7+gdu/+Tjt2RCspKVFWq5cqVKio6tVrU7oBAHfl0sUbAADA1QQHh6h16/Zq1aqtEhOT5OXl5fKrsgMAzEXxBgAAcIDF4pHtbxkGAMgaLru4GgAAAAAA7oDiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBKN4AAAAAABiI4g0AAAAAgIEo3gAAAAAAGIjiDQAAAACAgSjeAAAAAAAYiOINAAAAAICBrGYHAAC4jwvJCWZHcGn8/SA7upAUb3YEl8bfD4D0oHgDADItTx5feVmt2nTttNlRXJ6X1ao8eXzNjgGk26a4M2ZHAIBsj+INAMi0vHkf0Ku9X9ONG9fNjpLiwoXz+vDD99W2bUflz1/A7Dgp8uTxVd68D5gdA0i31n7Bym/NZXYMl3UhKZ4PJwD8K4o3AMAp8uZ9wCULZf78BRQSUsTsGEC2ld+aS8FePmbHAIBsjcXVAAAAAAAwEMUbAAAAAAADUbwBAAAAADAQxRsAAAAAAANRvAEAAAAAMBDFGwAAAAAAA1G8AQAAAAAwEMUbAAAAAAADUbwBAAAAADAQxRsAAAAAAANRvAEAAAAAMBDFGwAAAAAAA1G8AQAAAAAwEMUbAAAAAAADUbwBAAAAADAQxRsAAAAAAANRvAEAAAAAMBDFGwAAAAAAA1G8AQAAAAAwEMUbAAAAAAADUbwBAAAApHHo0CG98MILqlq1qurWrasJEyYoISHB7FhAtkTxBgAAAJCKzWZTr1699OSTT2r37t1av369duzYoSVLlpgdDciWKN4AAAAAUrly5YrOnz8vm80mu90uSfLw8FDu3LlNTgZkTxRvAADcXHR0tDp37qy6devqn3/+0Zw5c7Rx40azYwFwYYGBgYqIiNCUKVP0yCOPqEGDBipZsqQiIiLMjgZkS1azAwAAAOPs3LlTkZGReuqpp7R//37ZbDYlJydrxIgRSk5OVvv27c2OCMAF2Ww2+fj4aPTo0erQoYP++usvRUZGas6cOerfv3+69uHhYZGHh8XYoDBVbOxF3bp1K5P7uJDyq6dn5o8L+/j4KCgoX6b342wUbwAA3NjcuXM1cOBARUREaMuWLZKkAQMGKCAgQCtWrKB4A7irrVu3asuWLfr8888lSWXLllXv3r01ceLEdBfvoCBfWSwUb3cVFxenN9+cnnIpQmZt2PCeU/bj4eGhiRMnys/Pzyn7cxaKNwAAbiwmJkZTp05NM960aVPNmTPHhEQAsoPTp0+nWcHcarXKy8sr3fuIjb3OEW+3ZlG/foMyfcTb2Xx8fJSYaNGlS9ez5PkCA33TtR3FGwAAN+bv76+zZ8+qePHiqcZ///135c2b16RUAFxd3bp1NWPGDC1atEg9e/bUqVOntHDhQrVq1Srd+7DZ7LLZnHM0FK4pICBQAQFmp0grKclmdoQ0WFwNAAA31qpVK02cOFGHDh2SxWLR9evXFR0drfHjx6tFixZmxwPgosqUKaPFixdr+/btqlGjhrp06aJGjRppwIABZkcDsiWOeAMA4Mb69++vM2fOpFzL3bZtW9ntdj3++OO8gQZwX7Vr11bt2rXNjgG4BYo3AABu7J9//tGMGTPUr18//frrr7LZbCpXrpzKlCljdjQAAHIMijcAAG6sU6dOWrBggSpWrJjmOm8AAJA1uMYbAAA35u3tLauVz9kBADATr8QAALix1q1b68UXX1SbNm1UokQJ+fj4pHo8PDzcnGAAAOQgFG8AANzYokWLJEkrVqxI85jFYqF4AwCQBSjeAAC4scOHD5sdAQCAHI/iDQBADnDs2DHFxMTIy8tLoaGhKlWqlNmRAADIMSjeAAC4sYSEBA0aNEhffPFFypjFYlHDhg01e/ZseXt7m5gOAICcgVXNAQBwY7NmzdIvv/yihQsXau/evdq1a5fmzp2rX3/9VXPnzjU7HgAAOQLFGwAAN/bxxx9r7Nixatiwofz8/JQ3b141btxYr7/+ujZv3mx2PAAAcgSKNwAAbiwuLk4lSpRIM16qVCnFxsaakAgAgJyH4g0AgBsrV66cPv/88zTjn376KQusAQCQRVhcDQAAN/bKK6/o1Vdf1eHDh1WlShVZLBbt3btXW7du1fTp082OBwBAjkDxBgDAjT3++OOaM2eO3nrrLX399dey2+0qV66cZs6cqWbNmpkdDwCAHIHiDQCAm2vUqJEqV66sfPnySZJ++uknVahQweRUAADkHFzjDQCAG/vrr7/UtGlTLV26NGWsV69eCg8P1+nTp01MBgBAzkHxBgDAjU2cOFFlypRRjx49UsY+//xzFS1aVFFRUSYmAwAg56B4AwDgxn788UcNHTpU+fPnTxkLCgrSoEGD9MMPP5iYDACAnIPiDQCAG7Narbp06VKa8Zs3b5qQBgCAnIniDQCAG2vQoIEmTJigv/76K2XsxIkTmjRpkurVq2diMgAAcg5WNQcAwI0NHTpU3bt3V7NmzRQQECBJunr1qsqXL69hw4aZnA4AgJyB4g0AgBsLCgrShg0b9P333+vIkSOyWq0qU6aMatWqJYvFYnY8AAByBIo3AABuztPTU3Xr1lXdunWVmJiow4cP68aNG/L19TU7GgAAOQLXeAMA4MZOnz6t7t2765dfflF8fLzatm2rp59+Wo0aNdJvv/1mdjwAAHIEijcAAG4sKipK165dU1BQkLZs2aJ//vlH7777rp544glNmzbN7HgAAOQInGoOAIAb++GHH7Ry5UoVLVpUs2bNUv369VWlShUFBgaqXbt2ZscDACBH4Ig3AABuLDExUXnz5pUkff/996pdu7YkyWazyWrl83cAALICr7gAALixhx9+WOvWrVPBggV16dIlNWjQQAkJCVqyZInCwsLMjgcAQI5A8QYAwI0NHTpUL7/8si5duqSePXsqODhYb7zxhr788kstW7bM7HgAAOQIFG8AANxYxYoVtXPnTl27dk0BAQGSpK5du6pfv34KDAxM2W7Hjh2qVq2acuXKZVZUAADcFtd4AwDg5iwWS0rplqRSpUqlKt2S1LdvX507dy6rowEAkCNQvAEAgOx2u9kRAABwWxRvAAAAAAAMRPEGAAAAAMBAFG8AAAAAAAxE8QYAAAAAwEAUbwAAAAAADETxBgAAAADAQBRvAACgdu3ayc/Pz+wYAAC4JYo3AABuLjo6Wp07d1bdunX1zz//aM6cOdq4cWOqbUaPHq3AwEBzAgIA4OYo3gAAuLGdO3cqMjJSRYoU0dWrV2Wz2ZScnKwRI0Zow4YNZscDACBHoHgDAODG5s6dq4EDB2ry5Mny9PSUJA0YMEADBw7UihUrTE4HAEDOQPEGAMCNxcTEqFGjRmnGmzZtqhMnTpiQCACAnIfiDQCAG/P399fZs2fTjP/+++/KmzevCYkAAMh5KN4AALixVq1aaeLEiTp06JAsFouuX7+u6OhojR8/Xi1atDA7HgAAOYLV7AAAAMA4/fv315kzZ9S+fXtJUtu2bWW32/X4449rwIABJqcDACBncOniffnyZU2aNEnR0dGy2WyqVq2a3njjDRUsWNDsaIBbio6O1tKlS3X8+HG999572rBhg4oXL67w8HCnPQfzGshaXl5emjFjhvr166dff/1VNptNDz74oEJDQ532HMxrAADuz6VPNe/Tp49u3LihrVu36quvvpKnp6dGjx5tdizALWXVLYeY10DWstlsevPNN7Vjxw41a9ZMLVq00ODBg7Vw4UKnPQfzGgCA+3PZI94HDx7U/v379d1338nPz0+SNH78eJ0/f97kZIB7unPLoYiICG3ZskXS7VsOBQQEaMWKFSmnqWYG8xrIerNnz9a6des0fvz4lLHWrVvrrbfekoeHh3r16pWp/TOvAQD4dy57xPuXX35RmTJl9P7776tJkyaqW7eupkyZogIFCpgdDXBLWXHLIeY1kPU2bdqkGTNmqHHjxiljERERioqK0nvvvZfp/TOvAQD4dy57xPvKlSuKiYlRhQoV9OGHH+rWrVsaMmSIhg4dqsWLF6drHx4eFnl4WAxOiozw9Lz9Wc+F5ASTk7i+O39Hnp4eslqN/4zszi2HihcvnmrcmbccYl4jK935eZNVc8hVXb58WSEhIWnGS5QooQsXLmR6/8xr98Vrdvpk9es1gOzJZYu3t7e3JGnkyJHKlSuX/Pz81L9/f3Xs2FHXr1+Xr6/vv+4jKMhXFgsv5K7Ebs8vL6uXNl07bXaUbMHL6qWQkPwKDPz3f++ZdeeWQxMnTjTslkPMa2SluLjckqSAgNxZModcVVhYmNatW6chQ4akGv/oo49UtmzZTO+fee2+eM1Ov6x8vQaQPbls8S5TpoxsNpsSExOVK1cuSbcXiJEku92ern3Exl7nE3QXY7HkUp++A3XjxnWzo6Ry/vw5bdjwntq3f0YFCrjOKrx58vjKYsmlS5fu/fflrBf5rLjlEPMaWenq1Zspv95vDrkqZ83tPn36qGfPnvrxxx/16KOPymKx6MCBA/r55581f/78TO+fee2+XPE1Ozu/XkvOm9cAsh+XLd61a9dWsWLFNGLECEVFRSk+Pl6zZs1S48aNUxZv+Tc2m102W/pe9JF1/PwC5OcXYHaMVJKTb79JDArKr4IF056SaaakJFuWPM8///yT5pZD5cqVU5kyZZz2HMxrZKU78zo52ZZl88gV1alTR2vXrtWqVau0c+dOWa1WhYaGav369QoLC8v0/pnX7s3VXrN5vQaQXbls8fby8tI777yjyZMn68knn1R8fLwaNWqkkSNHmh0NcEudOnXSggULVLFixTTXeTsL8xowR6VKlTRjxgxD9s28BgDg37ls8ZakQoUKadasWWbHAHIEb29vWa3G/0hgXgNZb9++fdq3b58SExPTnP4dGRmZ6f0zrwEAuL9Mv8tOSEhIWVgFQPbVunVrvfjii2rTpo1KlCghHx+fVI+Hh4ebEwxAprz11luaOXOm8ubNm2ahM4vF4pTiDQAA7s/h4r127VotWbJEZ86c0ZYtW7R06VIVKFCAF3Agm1q0aJEkacWKFWkes1gsFG8gm1q9erVeeeUV9evXz+woAADkWA4V782bN2vGjBnq2rWrli5dKkkKDQ3V9OnTlStXLvXs2dOpIQEY7/Dhw2ZHAGCAK1eu8MEZ4GYOHz6slStX6vjx43rzzTf15ZdfKjQ0VDVr1jQ7GoB78HDkNy1fvlwjR45Unz595OFxexddunTR2LFjtW7dOqcGBJC1jh07ps8++0xffvmljh8/bnYcAJn02GOP6cCBA2bHAOAkBw8eVMeOHXXy5EkdPHhQCQkJ+u2339SjRw999dVXZscDcA8OHfE+fvy4qlatmma8atWqOnPmTKZDAch6CQkJGjRokL744ouUMYvFooYNG2r27Nms5QBkU82bN9e4ceN08OBBlS5dOs1c5mg4kL1Mnz5d3bp104ABA1S5cmVJ0oQJE+Tv76958+apYcOGJicEcDcOFe/8+fPr2LFjKlasWKrxH3/8UQULFnRKMABZa9asWfrll1+0cOFCVatWTcnJydqzZ48mTJiguXPnauDAgWZHBOCA0aNHS5LefvvtNI+xfgOQ/Rw8eFCvv/56mvHnnntO//nPf0xIBCA9HCrezzzzjMaOHathw4ZJun1q6rfffqs333xTERERzswHIIt8/PHHmjBhgho0aJAy1rhxY3l6emrs2LEUbyCbYv0GwL14eXkpLi4uzfipU6eUO3duExIBSA+HinfPnj117do1DR48WPHx8erVq5esVqueffZZ9erVy9kZAWSBuLg4lShRIs14qVKlFBsba0IiAEY7deqUChcubHYMABnQuHFjzZgxQ7NmzUoZ++OPPzRx4kQ9/vjj5gUDcF8OFe/du3erT58+euWVV3T06FHZ7XaVLl1afn5+zs4HIIuUK1dOn3/+uV5++eVU459++qlKlSplUioAmXXy5ElNmTJFMTExSk5OliTZ7XYlJCQoNjZWv/76q8kJAWTE0KFD9eKLL6p27dqy2+1q166d4uLiFBYWpiFDhpgdD8A9OFS8+/btq2XLlql8+fJ65JFHnJ0JgAleeeUVvfrqqzp8+LCqVKkii8WivXv3auvWrZo+fbrZ8QA4aMKECTp+/LiaN2+uZcuWqXv37jp+/Li2bt2qcePGmR0PgAP+85//6Pvvv9evv/4qm82mcuXKqV69eil3GwLgehwq3vny5dO1a9ecnQWAiR5//HHNmTNHb731lr7++mvZ7XaVK1dOM2fOVLNmzcyOB8BBe/fuTVk08ZtvvlHjxo1VsWJFzZo1S9HR0erYsaPZEQFkQJs2bTRnzhzVqlVLtWrVMjsOgHRyqHjXrVtXvXr1UoMGDVSiRAnlypUr1eORkZFOCQcgazVq1EiVK1dWvnz5JEk//fSTKlSoYHIqAJkRHx+vokWLSpJKly6tmJgYVaxYUeHh4ercubPJ6QBkVHx8vHx8fMyOASCDHCreW7duVb58+XTw4EEdPHgw1WMWi4XiDWRDf/31l3r06KEmTZpo6NChkqRevXqpQIECWrp0qUJCQkxOCMARxYoV05EjRxQSEqKSJUvqt99+kyTZbDZdv37d5HQAMuqFF15Qnz599MILL6h48eJpSni1atVMSgbgfhwq3tu3b3d2DgAmmzhxosqUKaMePXqkjH3++ecaPny4oqKiNGfOHBPTAXBUu3btNGTIEE2ePFkNGjRQ586dVbhwYe3cuVMPPvig2fEAZNCbb74pSRo/fnyaxywWS8qHawBci0PF+45vv/1WMTExslqtKlu2rGrWrClPT09nZQOQhX788UetW7dO+fPnTxkLCgrSoEGD9MILL5iYDEBmvPjii7JarbJYLKpYsaIiIyO1cOFChYSEaOrUqWbHA5BB27ZtMzsCAAc4VLyvXr2q7t276+DBgwoICJDNZlNcXJzKly+vFStWKCAgwNk5ARjMarXq0qVLaW4ddvPmTZMSAXCWiIiIlK979uypnj17mhcGQKYUKVJEkhQXF6djx47Jy8tLxYoV47a+gItzqHhPmTJF8fHx2rRpk8qVKydJOnz4sAYPHqwZM2Zo7NixTg0JwHgNGjTQhAkTNGvWLJUoUUKSdOLECU2aNEn16tUzOR2AjNi4cWO6tw0PDzcsBwDns9vtmjp1qlavXq2kpCTZ7XZ5e3vrmWee0YgRI2SxWMyOCOAuHCre27Zt09y5c1NKtySFhYVp9OjRGjBgAMUbyIaGDh2q7t27q1mzZilnrVy9elXly5fXsGHDTE4HICP+d85aLBbZ7Xblzp1bVqtV165dk6enpwIDAyneQDbz1ltvacOGDRo6dKiqVq0qm82mPXv2aP78+SpUqJBefPFFsyMCuAuHindSUpKCgoLSjOfLl09xcXGZDgUg6wUFBWnDhg36/vvvdeTIEVmtVpUpU0a1atXi03Mgmzl8+HDK159++qmWLFmiqKgohYWFSZKOHz+u4cOH66mnnjIrIgAHvffee3r99ddTzd+HH35YQUFBmjt3LsUbcFEejvym8uXLa+3atWnG3333XT300EOZDgXAHJ6enqpbt666d++u5557Tv7+/rpx44bZsQBkwvTp0/XGG2+klG5JKlWqlEaOHKnFixebmAyAIy5evKhHHnkkzXilSpV0+vRpExIBSA+Hjnj3799fXbp00f79+1WlShVZLBbt3btXhw8f1pIlS5ydEUAWOH36tEaOHKn+/fvrwQcfVPv27XX06FHlzZtXb7/9Nh+qAdnU5cuXlStXrjTjNptNt27dMiERgMwoWbKkdu7cqeLFi6ca37FjhwoXLmxSKgD/xqEj3pUrV9aaNWtUtGhR7dixQ998842KFi2q1atXq1atWs7OCCALREVF6dq1awoKCtKWLVv0zz//6N1339UTTzyhadOmmR0PgINq1KihcePG6eTJkyljf/zxh8aOHavHH3/cvGAAHNKtWzdFRUVp2rRp2rZtm7Zv366pU6dqypQp6ty5s9nxANyDw/fxLl68uPr166eSJUtKun0N2Z2VkAFkPz/88INWrlypokWLatasWapfv76qVKmiwMBAtWvXzux4ABz0xhtvqEePHmrSpEmqhRMrVqyo0aNHm5wOQEaFh4fr8uXLWrp0qZYtWybp9jpLffv2VadOnUxOB+BeHCrev/zyi3r27Kl27dpp6NChkqRp06YpMTFRy5cvT7XaOYDsITExUXnz5pUkff/99+rXr5+k26ejWq0Of0YHwGSFChXSRx99pO+++06///67JOmhhx5SzZo1WTgRyKYiIiL03HPP6fr167Lb7UpISFBISIjZsQDch0PvpqdOnaqmTZtqwIABKWNbt27VmDFjNHnyZC1fvtxpAQFkjYcffljr1q1TwYIFdenSJTVo0EAJCQlasmRJqkWZAGQ/np6eqlevnurVq2d2FACZdPHiRfXt21ePPfaYXnvtNUm3Lyl56KGH9Oabb6Z8iA7AtTh0jfehQ4f00ksvydvbO2XMarXqpZde0s8//+ysbACy0NChQ/Xee+9p3Lhx6tmzp4KDgzVp0iR9+eWXGjRokNnxAGTAQw89pIsXL0qSwsLC9NBDD93zPwDZy8SJE5WUlKQ2bdqkjK1YsUI3b97U1KlTTUwG4H4cOuLt5+env//+W8WKFUs1fubMGfn4+DglGICsVbFiRe3cuVPXrl1LuQ60a9eu6tevnwIDA1O227Fjh6pVq3bXVZIBuIZJkybJ398/5WtOKQfcx86dO7Vy5UqFhoamjD388MMaPXq0evbsaWIyAPfjUPF+8skn9cYbb2js2LGqWLGiLBaLDhw4oHHjxqlJkybOzgggi1gslpTSLd2+1+//6tu3rz766KM0H7wBcB1t27ZN+ZrFEQH3kpycLJvNlmbcarUqPj7ehEQA0sOh4j1w4ECdOHFC3bt3T/kU3W63q2nTphoyZIhTAwJwLXa73ewIADJg3rx59308MjIyi5IAcIYaNWpoxowZmj17dsqZLXFxcZozZ46qVatmcjoA9+JQ8c6dO7cWL16sP//8UzExMbJarQoNDU25tRgAAHANH3zwQarvk5KSFBsbKy8vL1WuXNmkVAAcNWzYMD3//POqX79+yplpf/75px544IGU24sBcD2ZukdQyZIlVbJkScXGxmr37t2yWq0qWrSos7IBAIBM2r59e5qxuLg4DR06VDVq1DAhEYDMKFasmD777DN98sknOnLkiKxWq5577jm1atWKtZYAF+ZQ8T5y5Ij69OmjCRMmKCwsTG3atNH58+fl7e2tt956SzVr1nR2TgAA4CR+fn7q16+fevXqpS5dupgdB0AG+fn56Zlnnkn5PjY2ltINuDiHbic2ZcoUlShRQqVLl9Znn32mxMRERUdHq1u3bpo9e7aTIwIAAGe7c8o5gOzl6tWrGj16tGJiYpScnKyIiAjVqVNHzZs314kTJ8yOB+AeHDri/dNPP2ndunXKly+fvv32WzVo0ECFChVShw4dtHLlSmdnBAAADtq4cWOq7+12u65du6b33nuPa7yBbCgqKkp79+5VRESEtm/frn379mnq1Kn65JNPNHXqVM2dO9fsiADuwqHi7eHhIW9vbyUnJ+uHH37QyJEjJUnXr1/nNBcAAFzIsGHD0oxZrVZVqVJFr7/+ugmJAGRGdHS05s+fr9DQUC1fvlx16tRRq1atVK5cOXXq1MnseADuwaHi/eijj2rRokXKnz+/bt68qfr16+vs2bOaOXOmHn30USdHBOBK2rVrJz8/P7NjAEinw4cPmx0BgBPduHFDISEhkqTvvvtO3bp1k3T7rkPJyclmRgNwHw4V79GjR2vAgAE6ceKERowYoaCgII0fP15Hjx7V0qVLnZ0RQBaw2Wz6+OOPtW/fPiUmJqa5X3dUVJSk2/MfAACYIzQ0VF9//bVCQkJ0+vRp1a9fX5L0/vvvKzQ01OR0AO7FoeJdokSJNPcFffXVVzVixAh5enqmjK1bt07Nmzfn6BiQDUyZMkWrVq1SWFgYcxZwI2FhYbJYLHd9zMvLS8HBwWrTpo1effXVe24HwHX07dtXffr0UWJiolq2bKmSJUsqKipKa9as0fz5882OB+AeMnUf7/+WL1++NGNRUVGqWbMmb+KBbOCjjz7SqFGj9MILL5gdBYATDR8+XDNnztTzzz+vxx57TJK0f/9+rV69Ws8++6zy5s2rVatWydvbWz179jQ5LYB/06BBA0VHR+vs2bMKCwuTJLVo0UIdO3ZMdcT72LFjKl68uKxWp73dB5AJhs7E/z1VFYDrio+PV7169cyOAcDJPvnkE40YMSLVPX8bN26s0qVL6/3339fatWtVtmxZTZ06leINZBOBgYEKDAxM+b5SpUpptunQoYM++ugjFStWLCujAbgHh+7jDcD91KtXT99++63ZMQA42eHDh1WzZs0044899pgOHTokSXr44Yd1+vTprI4GwEAcAANcC+eeAJAkPfLII5o6daq+//57hYaGysvLK9XjkZGRJiUDkBlFixbVV199pYiIiFTj27dvV3BwsCTp77//VlBQkAnpAADIGSjeACRJa9euVb58+fTrr7/q119/TfWYxWKheAPZ1CuvvKJhw4bpwIEDqly5smw2m/bv368tW7Zo7NixOn78uIYPH66mTZuaHRUAALdF8QYg6fbRLwDup1WrVvLz89Py5cs1c+ZMWa1WPfjgg1q4cKHq1aunPXv2qFWrVny4BgCAgSjeAFL59ttvFRMTI6vVqrJly6pmzZqpbhMIIPtp2LChGjZseNfHqlWrpmrVqmno0KEaMmTIXe9SAgAAMofiDUCSdPXqVXXv3l0HDx5UQECAbDab4uLiVL58ea1YsUIBAQFmRwRgoC+++EKRkZEUbwAADODQquarV6/WlStX/nW73r1764EHHnDkKQBksSlTpig+Pl6bNm3S7t27tXfvXm3cuFEJCQmaMWOG2fEAAACAbMuh4r1kyRLVq1dP/fr10zfffHPP2xW8+OKL8vf3z1RAAFlj27ZtGjNmjMqVK5cyFhYWptGjR+vLL780MRkAALgjJiYmXdvVqFFDPj4+BqcBkF4OFe+vv/5aCxYskJeXl/r27av69etrxowZOnbsmLPzAcgiSUlJd72dUL58+RQXF2dCIgAA8L/atGmj9u3b691339XVq1fvud2iRYtUoECBLEwG4H4cKt4Wi0V169bV9OnTtXPnTr322ms6evSo2rVrp2effVYbNmzQrVu3nJ0VgIHKly+vtWvXphl/99139dBDD5mQCAAA/K9PP/1UderU0ZIlS1S3bl0NGDBA33777T3PQAXgGjK9uNqNGzd05coVXbp0SQkJCfLw8NDixYs1c+ZMTZ8+XbVq1XJGTgAG69+/v7p06aL9+/erSpUqslgs2rt3rw4fPqwlS5aYHQ8AAEgqXbq0XnvtNQ0YMEDff/+9Nm/erEGDBsnHx0fh4eFq3769ihcvbnZMAP/DoSPe8fHx2rx5s1588UU9/vjjWrFihWrUqKHPP/9c7777rr744gs1bdpUw4YNc3ZeAAapXLmy1qxZoyJFimjHjh365ptvVLRoUa1evZoP0IAcwGKxmB0BQAZYLBbVrl1bnTt3VocOHXTlyhWtXLlSzZs318svv6zTp0+bHRHAf3HoiHetWrWUmJiohg0basGCBapXr548PDzSbLNt2zanhASQNSpWrKjZs2ebHQOACThNFcg+zpw5o02bNmnTpk36448/9Oijj2rkyJFq0aKFLl26pFGjRikyMlIbNmwwOyqA/+NQ8e7Xr59at26twMDAe27TqFEjNW3a1OFgAIw3fPhwjRw5Un5+fho+fPh9t42KisqiVADMsGLFChUqVMjsGAD+RdeuXbVnzx4FBQWpTZs2mjNnjkqXLp3yuK+vr5577rl/fV0HkLUcKt6dO3fW3LlzVaBAAT3//POSpHbt2qlJkyZ65ZVXbu/YmunLxwEY7OTJk7LZbClfA3A/f/75p8aOHat9+/YpMTExzeO//fabJOnRRx/N4mQAHOHn56d58+apQYMG8vT0vOs2lSpV0po1a7I4GYD7cagdz549W+vWrdP48eNTxlq3bq233npLHh4e6tWrl9MCAjDOO++8c9ev/9eFCxeyIg4AA7z++us6deqUBg0aJH9/f7PjAMikgIAAVa9ePU3pvnz5skaOHKn58+crODhYwcHBJiUEcDcOFe9NmzZpxowZql27dspYRESESpUqpbFjx1K8gWzooYce0s6dO9Pcy/vkyZNq1aqVfvrpJ5OSAciMn376SStXrlTlypXNjgLAQfv27dOJEyckSRs3blT58uXl5+eXaps//vhD3333nRnxAKSDQ8X78uXLCgkJSTNeokQJjowB2cj69eu1adMmSbcXVurdu7e8vLxSbXPu3DkFBASYEQ+AEwQGBsrX19fsGAAywWKxpNwtyGKxaMKECWm2yZMnj3r06JHV0QCkk0PFOywsTOvWrdOQIUNSjX/00UcqW7asU4IBMF7jxo21b9++lO+Dg4Pl4+OTapty5copPDw8i5MBcJbOnTtr5syZmjZtGqeaA9lUlSpVdPjwYUm334fv2LFD+fPnNzkVgIxwqHj36dNHPXv21I8/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klasWJHmMYvFQvEGsqm+ffuqT58+SkxMVMuWLVWyZElFRUVpzZo1mj9/vtnxAKTDxo0b1aJFC3l7e8tisejTTz+957a8XgOuydDibbfbjdw9ACc6fPhwurY7duyYihcvzmnpQDbRoEEDRUdH6+zZswoLC5MktWjRQh07duSIN5BNDBs2TPXq1VO+fPk0bNiwe27HB+WA6+KdM4AM6dChgz766CMVK1bM7CgA0ikwMFCBgYEp31eqVMnENAAy6r8/HE/vB+UAXAvFG0CGcCYLkL0cP35c48aN0759+5SYmJjm8Tu3BAWQPQwdOlRt27ZlITUgm6F4AwDgxt544w2dOnVKgwYNSrUKMoDs6dy5c+revbuCg4PVpk0bhYeHq0SJEmbHAvAvKN4AALixn376SStXrlTlypXNjgLACVasWKHz589r8+bN2rRpkxYuXKjKlSurXbt2at68ufz8/MyOCOAuPIzcucViMXL3AADgXwQGBsrX19fsGACcqECBAurevbs2btyojz/+WNWrV9eUKVNUr149s6MBuAdDizfXggIAYK7OnTtr5syZunbtmtlRADjZzz//rLVr12rDhg2y2+166qmnzI4E4B4MPdV8xYoVKlSokJFPAQAA7iM6Olo///yzatSooXz58snb2zvV49u2bTMpGQBHHDt2TJs3b9bHH3+skydPqnr16ho0aJCaNWsmHx8fs+MBuId0F+9GjRql+9TxOy/ijz76qEOhAACAc9SoUUM1atQwOwYAJ2nRooWKFi2q8PBwtW3bVkWKFDE7EoB0SHfxbtu2LddsA24sJiZGDz744L9uV6NGDT5RB7KRyMhIsyMAcKJVq1apevXqZscAkEHpLt59+vQxMgcAk7Vp00bly5dX+/bt1bJlSwUEBNx1u0WLFmVxMgCZdejQIS1btkwxMTGyWq0qU6aMunbtqooVK5odDUA6bNy4US1atJC3t7dOnTqljRs33nPb8PDwLMsFIP0cvsb78OHDOnLkiGw2m6TbC6klJCRo//79mjRpktMCAsgan376qTZu3KglS5Zo8uTJeuKJJ9SuXTvVrVuXs12AbGzv3r3q1q2bypUrp7p16yo5OVk//vijnn/+ea1cuVKPPfaY2REB/Ithw4apXr16ypcvn4YNG3bP7SwWC8UbcFEOFe9Vq1allGuLxZKyernFYlHVqlWdlw5AlildurRee+01DRgwQN9//702b96sQYMGycfHR+Hh4Wrfvr2KFy9udkwAGTRz5kw9/fTTGjNmTKrxsWPHavbs2XrnnXdMSgYgvQ4fPnzXrwFkHw7dTmz16tXq1auXfvnlFwUFBSk6OlofffSRQkND9cQTTzg7I4AsZLFYVLt2bXXu3FkdOnTQlStXtHLlSjVv3lwvv/yyTp8+bXZEABlw6NAhderUKc14p06ddPDgQRMSAciMLl263PX2gBcvXuRoN+DCHDriferUKXXo0EHe3t4KCwvTgQMH1LhxYw0bNkyTJ09WRESEk2MCyApnzpzRpk2btGnTJv3xxx969NFHNXLkSLVo0UKXLl3SqFGjFBkZqQ0bNpgdFUA6BQYG6uLFiypdunSq8YsXL6a5tRgA1xQdHa0DBw5Iknbv3q2FCxcqT548qbb566+/9M8//5gRD0A6OFS8fX19lZSUJEkqWbKkjh49qsaNGys0NJQJD2RTXbt21Z49exQUFKQ2bdpozpw5qd6o+/r66rnnntPw4cNNTAkgoxo2bKjx48dr1qxZCg0NlSQdPXpUEydOVMOGDU1OByA9ihQponHjxslut8tisejTTz+Vh8f/P3HVYrEoT548GjJkiIkpAdyPQ8W7atWqWrRokcaMGaOwsDC9//77eumll7R37175+vo6OyOALODn56d58+apQYMG8vT0vOs2lSpV0po1a7I4GYDM6N+/v7p166aWLVvK399fFotFV65c0YMPPsibdCCbKFOmjLZt2yZJatSokdavX6+goCCTUwHICIeK950X8bVr1+q5557TwoULVb16dd28eVM9evRwdkYAWWD+/Pn6/vvv9f3336tu3bqSpIkTJ6pp06aqVq2aJCk4OFjBwcFmxgSQQXnz5tX69eu1Y8cOHTlyRHa7PWWF83t9yAbAdW3fvt3sCAAc4FDxLlu2rL788kvduHFDvr6+WrdunTZv3qzg4GA1a9bM2RkBZIFNmzZpxIgRGjhwYErxPnv2rLp166bZs2ercePGJicE4KgPPvhAefLk0YsvvihJioyM1OXLl9WmTRuTkwFIjyeeeELr169XYGCgGjVqdN/bfN45Mg7AtTh8H++PP/5YefLkUYsWLZQvXz7t2bNHTZs2dWY2AFnorbfe0ogRI/T888+njM2ZM0dr1qzR3LlzKd5ANvX2229r9uzZ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AKBAijcAAAAUSPEGAACAAineAAAAUCDFGwAAAAqkeAMAAECBGio9QLWaNm1aNmzYkIaGXf+KJ0yYkG9+85t7/dmjjz46//Iv/5IpU6YUOWLVmjdvXlpbW5MknZ2d6ejoyIABA7rX33bbbZk0aVKlxqMXk+vKkWuKIteVI9cURa4rS7b3rK5cLpcrPUQ1mjZtWi6//PKce+657/pnBf7AWbRoUb72ta/lwQcfrPQoVAG57hnkmgNJrnsGueZAkuueQ7b/n6+aV8DLL7+cK664ItOmTcv48eMzffr03H333Xvc9v77789HP/rRTJw4MWeddVZuueWW7nUbN27MnDlzMnXq1Jx44omZN29etm7derB+jV5p7dq1Ofroo3PDDTfkuOOOy/XXX5+vfvWrueiii3bZbtq0aVm0aFGSpL29PV/5ylcyffr0TJ48OZdddlnWrFlTifHpweS6cuSaosh15cg1RZHryqrlbCveFXDttdemsbExP/jBD/K///u/+dSnPpW//uu/zrZt23bZbufOnZk7d27mzZuXZcuW5eabb85tt92WFStWpFQqZfbs2amvr8/999+f1tbWvPLKK5k3b16FfqveZdu2bXn00Ufz+c9//h23/Yd/+Ic89NBDuf322/Pwww9n/PjxufTSS/PGG28chEnpLeS68uSaA02uK0+uOdDkumeoxWw7x7tA119/febPn7/Lsp/+9Kf5m7/5mwwaNCiNjY1Zt25dBg0alJ07d+a1117LoEGDdtm+f//+ufvuu1MqlXLsscdm2bJlqa+vz4oVK7J69ep861vf6v6Zq6++Oh/5yEdy3XXXpbm5+aD9nr3RzJkz07dv3/Tt23ev25XL5dx5551ZsGBBRo0alST5y7/8y/zHf/xHHnrooZx55pkHY1x6ELnuueSa90quey655r2S656tFrOteBfoi1/84h7PLfnFL36Rv//7v89zzz2X0aNH58gjj0ySlEqlXbbr379/vvOd7+SWW27JVVddla1bt+bMM8/Mtddem7Vr16arqyunnHLKLj/Tt2/fvPDCCwL/Dg477LB92m7Tpk3Zvn17Pve5z6W+/v+/INLR0ZEXX3yxqPHoweS655Jr3iu57rnkmvdKrnu2Wsy24n2QdXR05DOf+UyuvPLKXHjhhamrq8uqVavy/e9/f7dtt27dmldeeSU333xzkuSXv/xl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "for i, col in enumerate(score_columns):\n", + " plt.subplot(1, len(score_columns), i+1)\n", + " sns.boxplot(x=with_LLM_response_df['has_error'], y=with_LLM_response_df[col])\n", + " # plt.title(col + \" by error\")\n", + " plt.xlabel('Has Error')\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avg error severity by message type:\n", + " type\n", + "Administrative Request 2.250000\n", + "Appointment Request 2.166667\n", + "Clinical Advice Request 2.076389\n", + "General Inquiry 0.000000\n", + "Medication Request 2.142857\n", + "Referral Request 2.602564\n", + "Test Result Inquiry 2.212963\n", + "Name: avg_error_severity, dtype: float64\n", + "Avg scores by type:\n", + " clinical_accuracy_score urgency_recognition_score \\\n", + "type \n", + "Administrative Request 7.750000 7.875000 \n", + "Appointment Request 8.142857 8.857143 \n", + "Clinical Advice Request 7.750000 7.875000 \n", + "General Inquiry 10.000000 10.000000 \n", + "Medication Request 7.761905 7.952381 \n", + "Referral Request 6.846154 6.846154 \n", + "Test Result Inquiry 7.555556 8.833333 \n", + "\n", + " professional_consultation_guidance_score \\\n", + "type \n", + "Administrative Request 7.000000 \n", + "Appointment Request 7.000000 \n", + "Clinical Advice Request 7.583333 \n", + "General Inquiry 10.000000 \n", + "Medication Request 7.000000 \n", + "Referral Request 6.076923 \n", + "Test Result Inquiry 7.777778 \n", + "\n", + " sensitivity_clarity_score \n", + "type \n", + "Administrative Request 9.125000 \n", + "Appointment Request 9.428571 \n", + "Clinical Advice Request 9.250000 \n", + "General Inquiry 10.000000 \n", + "Medication Request 9.380952 \n", + "Referral Request 8.230769 \n", + "Test Result Inquiry 9.611111 \n" + ] + } + ], + "source": [ + "# Crosstab: message type vs error type frequency\n", + "ct_error_type = pd.DataFrame([\n", + " {\n", + " 'type': row['type'],\n", + " **Counter(row['error_types'])\n", + " }\n", + " for _, row in with_LLM_response_df.iterrows()\n", + "])\n", + "\n", + "# Group by message type\n", + "type_error_freq = ct_error_type.groupby('type').sum()\n", + "\n", + "# Show (transpose for readability)\n", + "type_error_freq.T\n", + "\n", + "# Average error severity by type\n", + "avg_severity_by_type = with_LLM_response_df.groupby('type')['avg_error_severity'].mean()\n", + "avg_scores_by_type = with_LLM_response_df.groupby('type')[score_columns].mean()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "type\n", + "Administrative Request 2.250000\n", + "Appointment Request 2.166667\n", + "Clinical Advice Request 2.076389\n", + "General Inquiry 0.000000\n", + "Medication Request 2.142857\n", + "Referral Request 2.602564\n", + "Test Result Inquiry 2.212963\n", + "Name: avg_error_severity, dtype: float64" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg_severity_by_type" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
clinical_accuracy_scoreurgency_recognition_scoreprofessional_consultation_guidance_scoresensitivity_clarity_score
type
Administrative Request7.7500007.8750007.0000009.125000
Appointment Request8.1428578.8571437.0000009.428571
Clinical Advice Request7.7500007.8750007.5833339.250000
General Inquiry10.00000010.00000010.00000010.000000
Medication Request7.7619057.9523817.0000009.380952
Referral Request6.8461546.8461546.0769238.230769
Test Result Inquiry7.5555568.8333337.7777789.611111
\n", + "
" + ], + "text/plain": [ + " clinical_accuracy_score urgency_recognition_score \\\n", + "type \n", + "Administrative Request 7.750000 7.875000 \n", + "Appointment Request 8.142857 8.857143 \n", + "Clinical Advice Request 7.750000 7.875000 \n", + "General Inquiry 10.000000 10.000000 \n", + "Medication Request 7.761905 7.952381 \n", + "Referral Request 6.846154 6.846154 \n", + "Test Result Inquiry 7.555556 8.833333 \n", + "\n", + " professional_consultation_guidance_score \\\n", + "type \n", + "Administrative Request 7.000000 \n", + "Appointment Request 7.000000 \n", + "Clinical Advice Request 7.583333 \n", + "General Inquiry 10.000000 \n", + "Medication Request 7.000000 \n", + "Referral Request 6.076923 \n", + "Test Result Inquiry 7.777778 \n", + "\n", + " sensitivity_clarity_score \n", + "type \n", + "Administrative Request 9.125000 \n", + "Appointment Request 9.428571 \n", + "Clinical Advice Request 9.250000 \n", + "General Inquiry 10.000000 \n", + "Medication Request 9.380952 \n", + "Referral Request 8.230769 \n", + "Test Result Inquiry 9.611111 " + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg_scores_by_type" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. How often does the LLM make mistakes?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0\n", + "N 100.0\n", + "N with error 89.0\n", + "N without error 11.0\n", + "% with error 89.0\n", + "% without error 11.0\n" + ] + }, + { + "data": { + "image/png": "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93qZMmUyjRy5ubnRunVrNm3aRFBQEE5OTpw/f56RI0e+tN+2bduaRt8MBgNubm7kypUr3pPs//163717l0uXLj13VPXRo0eULl2a+fPns2TJEgIDA5k7dy5ZsmShR48evPfee9y9exfAbETtWc+eG+bq6mq27GkgeHr+z927d+Pdx8/WGxsbS5kyZZ67rbfeeitO+/Neu6f74/79+8/dpjWkTZuWqlWrsn37dt5991127NhBgQIFKFSo0AtvMfGsfx8jypcvT9u2benZsyerV68mX758AKbXa+TIkfG+v56+Xp999hnZs2dn06ZNpvVKly7NiBEjKFKkiGn9f18x/PT/8P3797l37x4eHh5xRiOf/l949jjz7/fG0+PE0/fGy+q5e/cuISEhz30vh4SEkCFDhniXScqn8CWpQrp06TAYDPGeJB8SEoK7u7tF/Z08eZIPP/yQiRMnmk6sf6pChQp069YNf39/QkNDExzkYmJi6NmzJ46OjqxatYoiRYrg4ODA+fPnLTrR/WXc3NwwGAx06dIl3pGGp78UPDw84t1fT3+Zvcy9e/fMTny+desW9vb2pl8I3t7e5MmThx07duDo6Mgbb7xBuXLlXtpv1qxZExzM/y1dunR4e3szePDgeJc7OTkBT6aTnk7vHTp0iGXLljF27FhKlSpF+vTpAZg0aRJ58+aN08fz/hh4Xj3/vsgBnoxq5MqVi3Tp0pEmTZrn3rfqjTfeiLc9Q4YMz32vA3Gm0myhYcOGDBw4kFu3brFt27b/fKK9q6srY8eOpW3btnz66ad88803GAwG0+s1ePBgvL294zzu6fvRycmJDz/8kA8//JDr16/zww8/MHv2bAYMGGB2ftq/3/+3b98GnoSwDBkyEBoaSnR0tFkAexrwLNnvL6snXbp05M2b12wq9VkvCvWS8mnaUVKFNGnSUKxYMbZt22Y6oRWe/CX6448/UrZsWYv6y5s3L48ePWLZsmXx3tjz4sWLZMmSxXQp/YtGv54KDQ3l4sWLtG7dmhIlSpgO3j/99BPwv7+In502TYy0adNSpEgR/vrrL4oXL276KliwIAEBAaaRh4oVK3LixAmzE+zPnz9vdmHBi+zbt8/0fUxMDDt27KBkyZKmQGYwGGjZsiXff/8933//PS1atPhPzyshvL29uXjxIm+++abZc9+0aROrV6/G3t6e8ePH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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "# 1. Calculate error rate stats\n", + "total_msgs = len(df)\n", + "n_with_error = df['has_error'].sum()\n", + "n_without_error = total_msgs - n_with_error\n", + "pct_with_error = n_with_error / total_msgs * 100\n", + "pct_without_error = 100 - pct_with_error\n", + "\n", + "# 2. Print summary table\n", + "summary = pd.DataFrame({\n", + " 'N': [total_msgs],\n", + " 'N with error': [n_with_error],\n", + " 'N without error': [n_without_error],\n", + " '% with error': [pct_with_error],\n", + " '% without error': [pct_without_error]\n", + "})\n", + "print(summary.T)\n", + "\n", + "# # 3. Bar plot: With vs Without Error\n", + "plt.figure(figsize=(5,4))\n", + "# Group and count: error x has_LLM_response\n", + "counts = df.groupby(['has_error', 'has_LLM_response']).size().unstack(fill_value=0)\n", + "\n", + "# Plot\n", + "counts.plot(kind='bar', color=['steelblue', 'tomato'], figsize=(7,5))\n", + "plt.xticks([0,1], ['Without Error', 'With Error'], rotation=0)\n", + "plt.ylabel('Number of Messages')\n", + "plt.title('Error Stratified by Presence of LLM Response')\n", + "plt.legend(['No LLM Response', 'Has LLM Response'], title='LLM Response')\n", + "for i, total in enumerate(counts.values):\n", + " for j, val in enumerate(total):\n", + " plt.text(i-0.12+j*0.25, val+1, str(val), ha='center', va='bottom', fontsize=11)\n", + "plt.ylim(0, counts.values.max() + 10)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0\n", + "N 92.000000\n", + "N with error 81.000000\n", + "N without error 11.000000\n", + "% with error 88.043478\n", + "% without error 11.956522\n" + ] + }, + { + "data": { + "image/png": "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u4xw3mTqbaKrK4eZmTGysvK4ha8llpbVtV3Ca8XTQ4mIiCSAgU9ERCQBDHwiIiIJYOATERFJAAOfiIhIAhj4RESvSXr6bXTs6IVTp1LKNY5IDAx8IqLX4PbtW/jyy0Dk5uaWaxyRWKrcjXeIiN4mKpUKu3ZtR2zsD6WO2759C+bNm/v6CyPJ4RY+EdErdOXK3/j++wh06tQFISEzNcZdvHgRs2eHlzqOSGzcwicieoVq166DNWs2oVat2iWOz1tZWeGXX7bA3NySx+7plWPgExG9QqamNWBqWqPUcTVr1oQg6PHWuvRacJc+ERGRBDDwiYiIJICBT0REJAEMfCIiIglg4BMREUkAA5+IiEgCeFkeEdFr0rJla/z2W+nX279oHJEYuIVPREQkAQx8IiIiCWDgExERSQADn4iISAIY+ERERBLAs/SJqNICFh7WdgkkMSv/11bbJbxxuIVPREQkAQx8IiIiCWDgExERSQADn4iISAIY+ERERBLAwCciIpIABj4REZEEMPCJiIgkgIFPREQkAQx8IiIiCWDgExERSQADn4iISAIY+ERERBLAwCciIpIABj4REZEEMPCJiIgkgIFPREQkAQx8IiIiCWDgExERSQADn4iISAIY+ERERBLAwCciIpIABj4REZEEMPCJiIgkgIFPREQkAQx8IiIiCWDgExERSQADn4iISAIY+ERERBLAwCciIpKANzLw7927h5EjR6J169ZwcXFBWFgYioqKtF0WERFRlfVGBv7YsWNRrVo1HDlyBL/88guOHTuGZcuWabssIiKiKuuNC/xr167h5MmTmDhxIoyMjNCgQQOMHDkSq1at0nZpREREVZautgsor7///hs1a9ZE7dq11cOsra1x8+ZNZGdnw9TU9KVtyOUyyOWyV1kmkeh0dd+47+dErwyXh/J74wI/Ly8PRkZGGsOKHz98+LBMgf/OOyaVL2RJYuXbICoHM20X8AK7Q7pouwQieok37itStWrV8OjRI41hxY+NjY21URIREVGV98YFfuPGjXH//n3cvXtXPezKlSuoU6cOqlevrsXKiIiIqq43LvAbNmyIVq1aYdasWcjNzUVaWhri4uLQs2dPbZdGRERUZckEQRC0XUR53b17F9988w1OnDgBuVyObt26YcKECdDR0dF2aURERFXSGxn4REREVD5v3C59IiIiKj8GPhER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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "# 1. Calculate error rate stats\n", + "total_msgs = len(with_LLM_response_df)\n", + "n_with_error = with_LLM_response_df['has_error'].sum()\n", + "n_without_error = total_msgs - n_with_error\n", + "pct_with_error = n_with_error / total_msgs * 100\n", + "pct_without_error = 100 - pct_with_error\n", + "\n", + "# 2. Print summary table\n", + "summary = pd.DataFrame({\n", + " 'N': [total_msgs],\n", + " 'N with error': [n_with_error],\n", + " 'N without error': [n_without_error],\n", + " '% with error': [pct_with_error],\n", + " '% without error': [pct_without_error]\n", + "})\n", + "print(summary.T)\n", + "\n", + "# 3. Bar plot: With vs Without Error\n", + "plt.figure(figsize=(5,4))\n", + "bars = plt.bar(['With Error', 'Without Error'], [n_with_error, n_without_error], color=['tomato', 'steelblue'])\n", + "plt.ylabel('Number of Messages')\n", + "plt.title('Proportion of Messages With/Without Errors for all LLM responses')\n", + "plt.ylim(0, total_msgs + 5)\n", + "for bar in bars:\n", + " yval = bar.get_height()\n", + " plt.text(bar.get_x() + bar.get_width()/2.0, yval + 1, int(yval), ha='center', va='bottom', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Are most errors minor, or are there a worrying number of serious ones?" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Count Percent\n", + "1 6 5.0\n", + "2 59 49.2\n", + "3 50 41.7\n", + "4 5 4.2\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from collections import Counter\n", + "\n", + "# Flatten all severities into a single list\n", + "all_severities = [sev for row in with_LLM_response_df['error_severities'] for sev in row]\n", + "\n", + "# Count by severity\n", + "severity_counts = pd.Series(Counter(all_severities)).sort_index()\n", + "severity_percent = (severity_counts / severity_counts.sum()) * 100\n", + "\n", + "# Display table\n", + "severity_table = pd.DataFrame({\n", + " 'Count': severity_counts,\n", + " 'Percent': severity_percent.round(1)\n", + "})\n", + "print(severity_table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of major/severe errors (severity ≥4): 5 (4.2%)\n" + ] + } + ], + "source": [ + "n_severe = sum(sev >= 4 for sev in all_severities)\n", + "pct_severe = n_severe / len(all_severities) * 100\n", + "print(f\"Number of major/severe errors (severity ≥4): {n_severe} ({pct_severe:.1f}%)\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQm1JREFUeJzt3XlcVNX/x/E3iASCCLjbYiaCS6CY4oJJkqiZuC/1RTRLLcVMS8Uty1Jx1xS3VETNvpprWoqabd/UXMstLZey0sqFRUVRYOb3hz+mJjHvGDojvJ6PBw+bM3fO/QxzhvvunDt3nMxms1kAAAC4JWd7FwAAAHCvIDgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGccE9xhOu1OkINuDcwVoD8h+CEPBMdHa2AgADLT+XKlRUcHKy2bdtq8eLFys7Otto+PDxcgwcPNtz/li1bFBsbe8vtBg8erPDw8Nvez81cu3ZNcXFxWrdu3U335QgmTpyoOnXqqEaNGlqzZk2u2/z1dcrtZ9y4cXe36JvIyspSYmKi2rRpoxo1aig4OFht2rTRvHnzdO3aNXuXZyU6OlrR0dGW28uXL8+T3+PChQvVoEEDBQUFaebMmf+6v7/69ddfFRAQoFWrVv3jdkbeQ4MHD1ZAQIAaNmx408A4ceJEBQQEWP2egHuNi70LQP5StWpVvfHGG5Kk7OxspaWl6YsvvtCYMWO0Z88eTZkyRU5OTpKk+Ph4eXp6Gu47MTHR0Ha9e/dWly5dbK79Vs6cOaPExETFxcXd8X3drh9++EFz585Vx44d1apVKz3yyCM33bZ9+/bq0KFDrveVKlXqTpVok9dff10bN25Ujx49FBgYKLPZrN27d2vatGnau3dvngeJfyNn3OeYNWuWQkJC/lWfly5d0tixYxUWFqYXXnhBDzzwwL/q705zdnbWH3/8oT179qhWrVo33L9hwwY7VAXkLYIT8pSnp6dq1Khh1RYeHq4KFSooLi5O4eHhatmypaTrIetOeOihh+5Iv/belxGpqamSpKeffjrXA9dflSlT5obXypGcPn1aq1ev1siRI9WpUydL++OPPy5fX1+NGTNG+/fvV1BQkB2r/JOfn1+e95mWliaTyaSIiAjVrl07z/vPa2XLlpXZbFZSUtIN4+/bb7/V77//Ln9/fztVB+QNlupwV0RHR6tUqVJaunSppe3v0//r169Xy5YtFRQUpLp162rAgAE6c+aM5fE7d+7Uzp07FRAQoB07dmjHjh0KCAjQ0qVL1ahRI9WvX19fffVVrstnmZmZGjVqlGrXrq3atWsrNjZWycnJlvtze8xflzF+/fVXPfnkk5KkIUOGWLb9++Oys7O1ZMkSRUZGKigoSE888YQmTpyoq1evWu3rueee08qVK9W0aVM9+uijatmypb744otb/h7Xr1+vtm3bKjg4WKGhoRoxYoTS0tIkSdOnT7csgXTt2jVPlhBzfgcLFizQU089pZCQEK1atUrTp09XRESE4uPjVadOHTVu3FgpKSmGn3/Xrl31xhtvqFatWmrTpo2ysrJu2Pe5c+dkNptzXfaJjIzUq6++Ki8vL0tbamqqRowYofr16yswMFAdO3bU9u3bLfc///zzat269Q199evXT08//bTl9u7du9W5c2dVr15dISEhN4yVVatWqWrVqlq+fLkaNGighg0b6ujRo1ZLdeHh4Tp16pRWr16tgIAAHTp0SIGBgZo8ebLVvq9evaratWsrPj7+hrpWrVpleQ2HDh2qgIAAy33/NA4k3fT1uRuaNWumjRs3ymQyWbWvX79e9evXl7e39z8+/mbva+nWr43JZNI777yj8PBwPfroowoPD9fkyZOVmZkp6c/x/PHHH+ull15S9erVFRYWpunTp1vVm1fv41vVI10fA+PHj1dYWJgeffRRRUZGav369bb/4nHXEJxwVxQqVEj16tXT/v37cz1I7tmzRwMGDFCTJk00d+5cDRkyRF9//bVee+01SdeXQapWraqqVatq2bJlqlatmuWxU6ZMUWxsrGJjY286g7JhwwYdPHhQY8eO1aBBg/T555+rd+/ehusvVaqU5eDWq1evXA90kjRixAiNGTNG4eHhmjVrlqKiovTee++pd+/eVgHg4MGDmj9/vvr27asZM2bIxcVFffv2tTr4/d3MmTPVv39/Va9eXdOmTVNMTIw2btyo6OhoZWRkqEOHDhoxYoSljpvVmMNkMikrKyvXn7+bMmWKXnjhBY0aNUp169aVdH1GaPPmzZo8ebL69esnHx8fw89/9+7dOnnypKZPn66YmBi5uNw4+V25cmWVLVtWcXFxGjlypL788ktdunRJkuTr66sXX3xRDz/8sKTrB5+uXbtqy5Yt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6dIKDAzU77//rnfeecdqacxkMunq1av69ddfVbFiRTVr1kzr1q1TmzZt9OWXXyojI0NPPfWUJOm7777T/v37tXr1asvjzf9/ztLx48ctJ3sbqTdHpUqVFBgYqDVr1ig4OFirV6/Wo48+apmlA2BfBCcA/4qHh4ehYODm5vaPbeabnCSdnZ0tSXJx+fPPVW59/dWECRPUoEED1atXT5JUtmxZtW/fXi1btlRERIS++OILVatWTZI0ZMgQ1a9f/4Y+ypYtK0lq27atunbtqrNnz2rt2rVq3LixZdnOZDKpe/fuatOmzQ2P/+sJ87eq9+/atWunKVOmaNiwYVq3bp1eeOEFmx4P4M7h5HAADqF48eIqXry49uzZY9W+e/duFS5cWA899JDhvrZt26aEhIQb2l1dXeXm5mbZV/HixfXzzz+rfPnylp9Dhw5p6tSplsfUrl1b999/v9asWaPPP//cKiRVqlRJJ06csHr8H3/8ofHjxys9Pd1QrU5OTje0tWjRQlevXlViYqLOnj2rFi1aGH7uAO4sghOAfyUjI0Nnz57N9efq1auG+3FyctLzzz+v9957T0uWLNHJkye1bt06xcfHq1OnTipatKjhvvr3769t27bplVde0a5du3Tq1Cnt2rVLAwcOVHp6ujp16iQnJyd1795dixcv1uLFi/Xzzz/rk08+0ciRI+Xq6ipXV1dLf61bt9asWbPk7e1tNTvVo0cPbdq0SdOnT9ePP/6o7du3a8iQIbpw4YLhSzTkLGkeOXLEEraKFi2qiIgIzZgxQ40bN1axYsUMP3cAdxZLdQD+lQ0bNmjDhg253jd58mQ9/fTThvvq3r27XF1dtXDhQsXFxalMmTLq0aOHzUtVDRs21OLFizV37ly98sorunDhgooVK6YGDRpo6dKlKlGihCTp+eef13333afFixdr3LhxKl68uNq2bav+/ftb9demTRvFx8crKirK6oKezZo105QpUzRnzhzNmTNHxYoVU6NGjTRw4EDDtfr7+yssLEz9+vXTq6++queff17S9SXCdevWqW3btjY9dwB3FlcOBwAHtGbNGk2dOlWffvqpXa6+DiB3zDgBgAM5dOiQTpw4oalTp6pz586EJsDB8I4EAAfy7bffavjw4apevbq6du1q73IA/A1LdQAAAAYx4wQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABg0P8BVAQigdCVDDEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "severity_counts.plot(kind='bar', color='tomato')\n", + "plt.xlabel('Error Severity')\n", + "plt.ylabel('Number of Errors')\n", + "plt.title('Distribution of Error Severity for LLM response')\n", + "plt.xticks(rotation=0)\n", + "for idx, val in enumerate(severity_counts):\n", + " plt.text(idx, val+1, int(val), ha='center', va='bottom')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tGihunXrmm/PmDFDQ4YMUUBAgKZPn662bdtq1qxZ5i9jgYGBcnNz0+rVqy32sWrVKr3yyivy9fXV/fv31aFDB23evFl9+vTR5MmTlTNnTnXp0uWxcDFt2jTVr19f48ePV506dSzua9GihYKDgyU96JqUcPvq1avmL0bSg18w165dq7feeksODg5PfA6eJXPmzPL19dWBAweeeP/q1as1ZswYtW3bVrNnz1aPHj20fPlyDR8+XNL/ddOpUaOGRTeu+Ph4TZ8+XcOHD9dHH3301BaE+fPnKzIyUt98843ef/99LV68WIMHD050/aVKlTK/Pp999tkTW59MJpO6deum7777TsHBwZo+fbreeOMNffPNN4+tv379em3evFmDBw/W+PHjdfPmTfXq1Uvx8fHPrGPt2rU6duyYRo8erQEDBmjbtm3mX5urVaumHDlyPDaeJSQkRPny5VPFihWfuW2j0fjEv7FHA+bly5e1ceNGjR8/Xh999JG8vLwkSQsWLDCHxSZNmujmzZsKDg7W3r171adPH02aNEl58uRRjx49tGLFCottPus9mljWHH+fPn1UsmRJTZkyRVWqVNGXX35pERyGDRumiRMnqnHjxubXceTIkZoyZcoT9509e3YtXLjQ4j1aqlSpJD/PJLUqVaooS5YsWrt2rcXyNWvWKDAwUBkyZEjUdh59/UJDQ9W6dWsdP35cQ4YM0bhx42Q0GtW2bVvzcR84cED9+vVTvXr1NGvWLH3yySfas2eP+vbta7Htn376SQcOHNDIkSPVr18//f777+rSpYv5fbl8+XK9++67ypEjh8aPH69PPvlEhw4dUqtWrXTr1i3zdoxGoz766CM1aNBAM2fO1Ouvv66vv/5a27dvT3Q9zzt3A/ZAVyjASpcuXVKpUqWeeF/v3r0tmvENBoO+/PJLZcqUSZLMA5Tr1atn/gKd8Lh8+fLpu+++k6OjoySpatWqCgwM1KRJk/TNN9+Y123durXeeOONZ9bYu3dvRURE6NdffzX/MpwjRw7VrFlTHTp0UKFChSRJERERmjZtmlq1amX+Ylu1alV5enpq8ODB6tSpk4oUKaL69etrzZo15g+16Ohobd68We+9956kBx+mp06d0qJFi1S2bFlJUvXq1dWuXTt9/fXX+vXXX821+fr6qmvXrubbx48fN/9/zpw5zeMcEr7MZM+eXTlz5tSyZcsUEBAgSdq0aZMiIiL01ltvPfN5eJZs2bLp2LFjT7zvjz/+UJ48edS2bVsZDAb5+fkpU6ZM5l8mS5YsKWdn5yd2terWrZtq1qz5zH2/8sormjp1qgwGg2rUqCEHBweNGjVK3bt3N782z+Lu7m4OLYULF35igPn999+1a9cujR07Vo0bN5b04Iubi4uLvv32W3Xo0MH8uLi4OM2ePdvcpScqKkoDBw7UyZMnVbp06afWkTlzZn333Xfmx3l5ealHjx7asWOHqlatqqZNm2r+/PmKioqSm5ubORB26NDhuYEwMDDwicsDAgI0d+5c8+24uDgNHDjwse4+2bNn16BBg2QwPPj9bOzYsQoNDdXatWuVL18+SQ/G4HTs2FFfffWVGjVqZF730ffoi3B0dEz08detW1effvqppAeB5Pr165o2bZratm2rf/75R4sWLdLHH39srqlq1apycHDQjBkz1KZNG3OYSpDQXfPR9+i4ceOS9DyT1JycnFS3bl2tX79ePXv2lCTdu3dPW7du1ZQpU576Q8CjHn39JkyYoNu3b+vnn39Wnjx5JD04PzVo0EDffvutJk6cqAMHDihjxox67733lDFjRkmSp6enjh49KpPJZH69HBwc9P3338vDw0PSg+6WPXr00O+//67q1atr7Nixqly5siZMmGDef/ny5dWgQQPNmTNH/fv3l/Qg+Hfv3l0tWrSQJL3++uvauHGjtm3bpmrVqj23nsjIyESdu4GURosFYCUfHx8tWbLkif8eDguSlDdvXnOoeFjRokXN/3/37l0dPXpUDRo0MH/YSw++tNWqVcvil3pJiZoVxdnZWV988YW2bdumESNGKCgoSCaTSQsXLlSTJk20fv16SdKhQ4d079491a5d2+JX4YRZXHbu3ClJaty4sf777z9z95gtW7bo7t27CgoKkvRgsLiPj49KlSpl3kZ8fLxq1aqlY8eOKTw8/InHnhgGg0FvvfWWNmzYYO4uFBISokqVKpm/JCQ1f39/XbhwQc2aNdPUqVN14sQJBQUFqUOHDs99bGKOr379+uYvsdKDoGkymbRnzx6b6n7Y3r175ejoqAYNGlgsTwgZD7+vChcubDHYOEeOHJJk0T3rSWrUqGHxuNq1aytDhgzatWuXJKl58+a6d++eNm7cKOlBILxz546aNm363PqnTZv2xL+xJ7XOPOk5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e0+LFi2yz0ECwEssPj7eHCgSvvA3btxY169fN19naM+ePTpx4oQmTJigtm3baujQoZo4caKcnJzk5OSkOXPmqGbNmlqxYoU6duwoR0dHbd68WZGRkWrYsKFCQ0N14cIFex0i8ELoCgXYKDo6WvPnz1eVKlVUsmRJc3ek//77T999952OHDkif39/tWrVSgUKFFDFihW1YcMGBQYGKk+ePPrnn38k/V9/3MOHDyskJERVq1bVv//+q8mTJ2vnzp0KDQ3V559/LmdnZ/n4+EgSszoBQApImCQjLi7Ootvp7du3FRoaqnz58ilDhgyaP3++XnnlFdWtW1cnT56Uh4eHcuXKJaPRKBcXF8XFxenPP/+Uh4eHNmzYoP/973+SpJUrV6pIkSL666+/tGXLFjVu3FiHDh2ymFIcSAtosQBe0MqVK3X16lU5Ojrq7t27yps3ryRp586dmjt3rsaOHStHR0cFBwdr8+bNGjVqlCSpdevW+u2333T58mXVr19fW7duVWhoqJydnc3bjYmJUeXKlTVs2DCdP39eDRs21MqVK+Xv76/y5cvb7ZgB4GUSFxenYcOGadasWTIajeZW6D///FMdO3ZU7dq11bdvX/PA606dOunkyZP6+++/Va5cOZ06dUp37twxj7e4deuWvvzyS8XGxqpChQr6+OOP5e/vrylTpqhZs2bauXOnGjduLEmECqRJTDcLvKDixYure/fu6tWrl65cuaLVq1erffv22rBhgwYPHix/f39Nnz5dkrRjxw598MEH+u233+Tt7S1fX199/vnneuutt9SmTRvFxsaqefPmunjxorZt22ae8QMAkDIevgL29OnTZTAY1LVrV506dUpFihSRo6Ojjh07pu+//1537txRvXr1VK9ePS1atEjjx4/X+vXrlTNnTr355pvq1KmT2rRpo+rVqys4OFgdOnSQl5eXFi5cqC1btmj8+PGKiorS4cOHlSdPHosLlgJpGS0WwHMcPXpUw4YN02effabVq1frr7/+kvTgl6mtW7dKks6cOaNJkybpyJEjqlOnjooXL66cOXOauzf5+fkpS5YsWrFihaQHFzlatWqVJGncuHFq2bKlfvvtN4WGhurrr7+Wv7+/yPwAkDLu3LljHjMhPZgafMuWLbp48aKyZ8+uHj16aPXq1SpYsKBCQ0N17NgxNWzYUFmyZNF7772nrFmz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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Prepare a DataFrame for severity x error_type\n", + "error_type_sev = []\n", + "for _, row in with_LLM_response_df.iterrows():\n", + " for et, sev in zip(row['error_types'], row['error_severities']):\n", + " error_type_sev.append((et, sev))\n", + "\n", + "err_df = pd.DataFrame(error_type_sev, columns=['error_type', 'severity'])\n", + "pivot = pd.crosstab(err_df['error_type'], err_df['severity']).sort_index(axis=1)\n", + "\n", + "pivot.plot(kind='bar', stacked=True, figsize=(8,5), colormap='tab20')\n", + "plt.ylabel(\"Number of Errors\")\n", + "plt.title(\"Error Severity Distribution by Error Type for LLM response\")\n", + "plt.xticks(rotation=20)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For no LLM response" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Count Percent\n", + "2 1 8.3\n", + "3 6 50.0\n", + "4 1 8.3\n", + "5 4 33.3\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from collections import Counter\n", + "\n", + "# Flatten all severities into a single list\n", + "all_severities = [sev for row in no_LLM_response_df['error_severities'] for sev in row]\n", + "\n", + "# Count by severity\n", + "severity_counts = pd.Series(Counter(all_severities)).sort_index()\n", + "severity_percent = (severity_counts / severity_counts.sum()) * 100\n", + "\n", + "# Display table\n", + "severity_table = pd.DataFrame({\n", + " 'Count': severity_counts,\n", + " 'Percent': severity_percent.round(1)\n", + "})\n", + "print(severity_table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of major/severe errors (severity ≥4): 5 (41.7%)\n" + ] + } + ], + "source": [ + "n_severe = sum(sev >= 4 for sev in all_severities)\n", + "pct_severe = n_severe / len(all_severities) * 100\n", + "print(f\"Number of major/severe errors (severity ≥4): {n_severe} ({pct_severe:.1f}%)\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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t27dKovFonr16uXo53erejIuX5GcnOzUn1NSUjR16tQsAQ9/H0ac4OTSpUv6/PPPJV2fdkpOTtaOHTu0fPlyRUZGqkWLFtk+r379+po/f76GDh2qyMhIXbt2TQkJCSpSpIhjIa2/v78+++wz7d692+VrQJ07d07PPfecoqOj9eOPP2ry5MkKDw93LLxs2rSpFi9erOHDh6tTp0765ptvNG/ePKewVKhQIUnX19NUrFgxyyhYpUqVFBUVpfj4eKWlpalu3bo6duyY45TwRo0auVTzjYoUKaL/+7//U3x8vPLly6eHH35YJ0+e1BtvvKFKlSqpQ4cOLrf566+/Oj6rzHx8fG55andmOf3+27dvr3fffVdDhgzR3r171aRJE/n7++vHH3/UokWL5OPjo6eeekrS9ZGcJUuWqFevXnrmmWdUqlQp7dq1S3PmzFH37t2VL18+p3bnzp0rT0/PLCMVGQtpBw0apMjISFmtVs2bN09ffPGFY8G7Uf7+/vryyy+1b98+1ahRwzEd1rFjR7300ksqX768y6EjN/rBrTRu3Fh169bVqFGj9Ntvv6lq1arat2+f5syZo6ioqFsuDP/888+zvXhtw4YNHc/99ddfs92nUqVK2Z680bx5c40aNUoLFy7UiBEjbut93ahfv37q2rWr+vbtq27duil//vxavny5PvzwQ02bNk3S9dHKUaNGafz48WrcuLEuXryo+Ph4lS9f3unfyqFDhzR48GC1a9dOX331laZNm6bOnTs7RpNy6vO7VT358uVTZGSkRo4cqVOnTql69er64YcfNGXKFJUtW9alNWHIWQQnOPnyyy8dFyv08PBQUFCQKlSooHHjxv3lOoTGjRtr4sSJmjdvnmNB+EMPPaRFixY51kQ98cQTOnLkiPr06aO4uDiXrm7duXNnpaWlqX///vL29lbbtm0VExPjWGcTHh6u2NhYLV68WO+//76qVaum+Ph4de3a1dGGn5+fevXqpeXLl2v79u1ZFgtL0uuvv65y5cpp9erVmjt3rooXL67o6Gj179//jkbMJOm5555T0aJFtWTJEq1cuVJFihRRy5YtNXDgwNuaRspYCJ6d+++/Xxs3bnS5zZx8/97e3po7d64WLVqkLVu26L333lNaWpqKFy+uiIgIPfvss46p1gIFCmjp0qWaNGmSJkyYoN9//92x3iMjXGWoXLmyHnjgAZ05c0bh4eFOjzVs2FBz585VfHy8nn/+eeXLl0/VqlXT/PnzXb5Y6FNPPaWxY8fq6aef1vz58x0XJG3SpIksFstth5yc7ge3knEW1rRp07Ro0SIlJSWpbNmyevHFF7Od2spsx44d2rFjR5btcXFxjuD0888/O12RP0NUVFS2wcnf318NGzbUf//7X5fWiN1MlSpVtHTpUk2ZMkVDhgyR3W5X5cqVNX36dMf127p27apr165p2bJlevvtt+Xj46P69esrJibGKZj37NlTZ86c0YABAxQQEKBnnnlGffv2dTyeU5+fkXri4uI0a9YsLVu2TL/++quCgoLUqlUrDRw48JYj6Mg9Fjt3sQQAwzZt2qSYmBht3749y0J65G3BwcEaMGCAnnvuObNLgRtjxAkADPjwww91+PBhLVu2TO3atSM0Af9QLA4HAANOnjypBQsWqHr16k63GgLwz8JUHQAAgEGMOAEAABhEcAIAADCI4ATcZVJSUjRkyBDVrVtXderUUb9+/Zwu8AcAuH0EJ+Au89xzz+mPP/7QBx98oI8//lienp4aOXKk2WUBwF0hTy8OP3v27705pbvy8LAoMLCgkpJSZbPl2Y8TOeD48WPq16+33nvvfd1zTwklJaUqJSVF586d0333Vbx1A7hrcZxAZvQJZ8WKFTK0H9dxugt4eFhksVjk4WGh8//DHTt2VOXLV9CGDeu0fv1qpab+obp162vAgIFmlwaTcZxAZvSJ28NUHXAXuXjxgr777hudPPmz1q5dq0WL3tHZs79pzJhRZpcGAHcFghNwF8mXz1uSNHDgYPn5+SkoKEj/93/9tHv3Tv3xxx8mVwcAeR/BCbiLVKhQQXa7Xenp1xzbrFbb//6PoXgAuFMEJ+AuUqdOPZUuXUZjxoxWamqqkpOTNWfODDVq9C8VKFDQ7PIAIM8jOAF3ES8vL8XHz5anp6ceeeQRde7cXsWKFdewYS+bXRoA3BU4qw64yxQtWkxjxoxTQEBBJSenKj3ddusnAQAMYcQJAADAIIITAACAQQQnAAAAg0wNTtyMFAAA5CWmBiduRgoAAPIS086qO3LkiL744gvt2rVLfn5+kqTXXntNZ8+eNaskAACAv2RacDp06JAqVaqkFStW6J133tHly5fVqFEjxcbGGm7Dw+P6zQn/6Tw9PZz+C9AnkBl9ApnRJ26PacHpwoUL+uqrr1S9enWtXbtWaWlpGjJkiGJjYzVr1ixDbQQGFpTFQnDK4O/va3YJyNC7pdkVSJL8zS4gYYvZFSATjhPIjD7hGtOCk7f39ZuRjhgxQvnz55efn58GDhyozp07KzU1VQUL3vr2EElJqYw46fpfC/7+vrp48fIN9yWDmQLMLsBNJCenml0C/ofjBDKjTzgLCDB2WyrTglOlSpVks9l07do15c+fX5Jks13/4Ox2Yzcjtdnsstm4cWkGq9XGVaLhVuiP7ofjBDKjT7jGtInNBg0a6J577tHw4cOVmpqqpKQkTZkyRc2aNXMsFgcAAHAnpgWnfPnyafHixY6bkT7yyCMqWbKkxo4da1ZJAAAAf8nUm/yWKFFCU6ZMMbMEAAAAwzgHEQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwyNTgtGnTJlWtWlWhoaGOr5iYGDNLAgAAuCkvM1/88OHDateuneLi4swsAwAAwBBTR5wOHz6s6tWrm1kCAACAYaaNONlsNh09elS+vr5KSEiQ1WpVkyZNNHjwYBUuXNhQGx4eFnl4WHK5Uvfn6enh9F/AXXh50SfdBccJZEafuD0Wu91uN+OFz507pxdeeEFRUVFq3bq1kpOTFRsbK19fX82ePdtQG3a7XRYLwQluqHdLsytwDwlbzK4AAHKUacEpO4cOHVLnzp2VmJgoPz+/W+5//vwlRpx0/a8Ff39fXbx4WVarzexyICkg5jGzS3ALyRNWm10C/ofjBDKjTzgLCChoaD/TpuqOHz+ujRs3atCgQY5Ro6tXr8rDw0Pe3t6G2rDZ7LLZ3Cb3mc5qtSk9nc4P90F/dD8cJ5AZfcI1pk1sFilSREuXLlVCQoLS09N1+vRpTZgwQVFRUYaDEwAAwN/JtOBUsmRJzZo1S9u2bVNYWJgee+wxhYSE6OWXXzarJAAAgL9k6nWcwsLCtGzZMjNLAAAAMIxzEAEAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIA4B/KarXq2Wf76PXXXzG7lDzD5eB09epVzZw5Uz/99JMkacSIEQoNDdXTTz+t5OTkHC8QAADkjvj4eH3xxWdml5GnuBycJk6cqPnz5+vSpUvauXOn1q5dq759++rSpUv6z3/+kxs1AgCAHJaYuE/vv/++mjZ92OxS8hSXg9OWLVs0efJkVatWTdu2bVNYWJieeeYZ/fvf/9b27dtzoUQAAJCTkpOT9Prrr2rSpEnKn9/H7HLyFJeDU0pKiipWrChJ2rlzp8LDwyVJAQEBSktLy9nqAABAjrLZbHr11ZHq1q27qlSpYnY5eY6Xq0+49957dfjwYSUlJemnn35So0aNJEkffvihypYtm+MFAgCAnLN48Xx5e3urc+euZpeSJ7kcnHr37q2XXnpJHh4eqlevnqpUqaLp06dr+vTpGjt2bG7UCAAAcsjWrZt07tw5NWvWWBaLRZcvX5Yk/fe/27Vly3YzS8sTXA5O7dq10wMPPKATJ06ocePGkqSQkBAlJCSoQYMGOV4gAADIOW+/vVqS5OXloYCAgnrxxcGy2+0aMeIVcwvLI1xe4/TYY4/JbrerWbNm8vb2liQ1btyY0AQAAO56Lo84nTp1SgUKFMiNWgAAwN/s5ZdHKz3dZnYZeYbLwalPnz4aMWKEnn76ad17773y8XE+jbF06dI5VhwAAIA7cTk4TZw4UZK0f/9+WSwWx3a73S6LxaJjx47lXHUAAABuxOXgtGjRohwvwmq16sknn1SZMmU0bty4HG8fAAAgJ7gcnMLCwhz/n5SUJC8vL/n7+99REfHx8UpMTFSZMmXuqB0AAIDc5PJZdZK0dOlSNWzYUOHh4apbt64aNWqkBQsW3FYBu3fv1vvvv68WLVrc1vMBAAD+Li6POK1cuVLjxo1T9+7dVbt2bdlsNu3fv1+TJ0+Wn5+fOnbsaLit8+fPa8SIEZoxY8ZtBy8AAIC/i8vBae7cuRo2bJgef/xxx7bmzZurXLlyWrhwoeHgZLPZFBMTo169et32vXI8PCzy8LDcese7nKenh9N/AXfh5UWfdBccJ5AZfeL2uBycTp8+rYYNG2bZ3qhRI40fP95wO7NmzZK3t7eio6NdLcEhMLCg05l9/3T+/r5mlwA4CQgoaHYJyITjhBvp3dLsCiRJd7ZKOYckbDG7AsNcDk6lS5fWkSNHdO+99zptP3TokIoWLWq4nfXr1+u3335T7dq1JUlpaWmSrt8sODEx0VAbSUmpjDjp+l8L/v6+unjxsqxWLmLmDgLMLsBNJCenml0C/ofjhPvhOPEndzhWGP1Dz+Xg1LVrV40ePVopKSmqVauWLBaLEhMTNW3aNJdGj7ZscU6XQ4cOlSSXLkdgs9lls9kN73+3s1ptXP0VboX+6H44TsAd5aU+6XJw6tGjh06dOqWxY8fKarVKkjw9PdW5c2f169cvxwsEAABwFy4Hp8TERA0ZMkQvvPCCvv/+e0nSfffdJz8/vzsqhAtfAgAAd+fyUvrnn39eX3/9tfz8/FSjRg3VqFHjjkMTAABAXuBycAoKCtLvv/+eG7UAAAC4NZen6ho2bKi+ffuqSZMmKleunPLnz+/0+IABA3KsOAAAAHficnD64IMPFBQUpCNHjujIkSNOj1ksFoITAAC4a93WlcMrVKiQG7UAAAC4NZfXOEVHR+vQoUO5UQsAAIBbczk4eXt7y8vL5YEqAACAPM/lBBQZGanevXurXbt2KleunHx8fJweb9++fU7VBgAA4FZcDk4zZ86UJM2fPz/LYxaLheAEAADuWi4Hp+PHj+dGHQAAAG7P5TVON2O1Wlk0DgAA7mqGglPNmjWVlJTktG3SpElKSUlxfJ+cnKwuXbrkaHEAAADuxFBwunLliux2u9O2pUuXZrn1SuZ9AAAA7ia3PVWXXUiyWCx3VAwAAIA7y7E1TgAAAHc7ghMAAIBBBCcAAACDDF/Had68efL19XV8n56erkWLFqlw4cKSpD/++CPnqwMAAHAjhoJT6dKltXnzZqdtxYoV07Zt25y2lSpVKucqAwAAcDOGgtNHH32U23UAAAC4PdY4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCBDwalJkyY6c+aMJCk+Pl6XL1/O1aIAAADckaHglJyc7AhO06dPJzgBAIB/JEOXI6hTp466d++uokWLym6367HHHpOHR/aZK/O1nQAAAO4WhoLTlClTtG7dOl28eFHx8fFq2bKlChYsmNu1AQAAuBVDwcnf3189evSQJJ06dUr9+/eXn59frhYGAADgbgzfqy5DXFyc/vjjDy1btkxfffWVvLy8dP/996tVq1aEKQAAcFdzOTj98ssv6t69u86fP68KFSrIarVqxYoVmjlzpt5++22VLFkyN+oEAAAwncvXcRo3bpxKlSqljz76SGvXrtWGDRu0bds2lSpVShMmTMiNGgEAANyCy8Fp586dio2NVWBgoGNb0aJFFRsbqx07duRocQAAAO7E5eDk6ekpHx+fLNvz58+vq1ev5khRAAAA7sjl4FSrVi3NmDFD165dc2y7du2a3nrrLYWGhuZocQAAAO7E5cXhgwcPVteuXdW8eXNVr15dFotFhw4d0qVLl7R48eLcqBEAAMAtuDziVLFiRa1fv16tW7fW1atXlZaWpjZt2mjdunWqWrVqbtQIAADgFlwecZKk0qVLKyYmJqdrAQAAcGsujzgBAAD8U5kanHbv3q1OnTqpVq1aCg8P12uvvaa0tDQzSwIAALgp04JTUlKS+vbtq27duikxMVFr167Vvn37NHv2bLNKAgAA+EsuB6fZs2frzJkzd/zCgYGB2rVrlzp06CCLxaKUlBRduXLF6cKaAAAA7uS2glNOTadl3BS4SZMmatu2rYoVK6YOHTrkSNsAAAA5zeWz6mrWrKmPPvpIvXr1yrEi3n//fV24cEGDBw/W888/r4SEBEPP8/CwyMPDkmN15FWenh5O/wXchZcXfdJdcJyAO8tLxwqXg1OBAgX0n//8RzNnzlT58uWVP39+p8cXLVrkchE+Pj7y8fFRTEyMOnXqpAsXLqhw4cK3fF5gYEFZLASnDP7+vmaXADgJCChodgnIhOME3FFeOla4HJz8/PzUvn37O37hgwcPavjw4dqwYYO8vb0lSVevXlW+fPnk62vsH3ZSUiojTrr+F6S/v68uXrwsq9VmdjmQFGB2AW4iOTnV7BLwPxwn3A/HiT+5w7HCaHhzOTjFxcW5XEx2goODlZaWpkmTJmnQoEE6e/asxo8fr44dOzqC1K3YbHbZbPYcqeduYLXalJ7OARHug/7ofjhOwB3lpT55W5OKv/32m+Lj4zVo0CCdP39emzdv1nfffedSGwULFlRCQoK++eYbhYeHKzo6Wg0aNNDw4cNvpyQAAIBc5/KI008//aTOnTvLz89PZ86c0cCBA7V582YNHz5cc+fOVa1atQy3ValSJc2bN8/VEgAAAEzh8ojTuHHj1KxZM3344YfKly+fJGnKlClq1qyZJk+enOMFAgAAuAuXg9Nnn32mXr16OZ3N5unpqWeeeUbHjh3L0eIAAADcicvByWq1ymbLuojr0qVL8vT0zJGiAAAA3JHLwalhw4Z66623ZLVaHduSk5M1YcIE1atXL0eLAwAAcCcuB6ehQ4fqyy+/VIMGDXTlyhU9++yzioiI0KlTpxQbG5sbNQIAALgFl8+qK1GihNatW6eNGzfq2LFjstls6tatm9q1a+e49xwAAMDdyOXgJEm+vr6KjIxUSEiIvL29dc899zjOsAMAALhbuRycrFarxo8fr2XLlunatWuSrt9rrnfv3urXrx/3jgMAAHctl4PTtGnTtGnTJo0cOVI1atSQzWZTYmKi4uPjZbVa9fzzz+dGnQAAAKZzOTitXLlScXFxatKkiWPbAw88oOLFi+u1114jOAEAgLuWy2fVXb16VWXLls2yvWLFikpNNf/uxgAAALnF5eDUvn17TZ8+XVevXnXaPnfuXLVp0ybHCgMAAHA3hqbqevTo4fh/q9WqAwcOaP/+/QoJCZGnp6e+/PJL/frrr3r44YdzrVAAAACzGQpOZcqUcfr+3nvvdfo+LCws5yoCAABwU4aCU1xcXG7XAQAA4PZu6wKY3377rb7++uss65yk62ugAAAA7kYuB6fZs2dr8uTJ2T5msVgITgAA4K7lcnBauHCh+vfvr759+8rb2zs3agIAAHBLLl+O4Nq1a4qMjCQ0AQCAfxyXg1O7du20YsWK3KgFAADArbk8Vde7d29FRkZq06ZNKlu2bJab+i5atCjHigMAAHAnLgenf//735KkmjVrytfXN8cLAgAAcFcuB6d9+/ZpwYIFCg0NzY16AAAA3JbLa5yKFi2qggUL5kYtAAAAbs3l4DRo0CCNGTNG3333naxWa27UBAAA4JZcnqqbOnWqTp8+rTZt2mT7+LFjx+64KAAAAHfkcnB69tlnc6MOAAAAt+dycIqKisqNOgAAANyey8EpPj7+Lx8fMGDAbRcDAADgzlwOTmvWrHH6Pj09XUlJScqXLx+XKAAAAHc1l4PTRx99lGXbpUuXFBsbq7p16+ZIUQAAAO7I5csRZMfPz08vvPCC5s+fnxPNAQAAuKUcCU7Sn1N2AAAAdyuXp+rWrVvn9L3dbtfvv/+u5cuXs8YJAADc1VwOTkOHDs3aiJeXatWqpVGjRuVIUQAAAO7I5eB0/Pjx3KgDAADA7eXYGicAAIC7naERpx49ehhqzGKxaOHChXdUEAAAgLsyFJzKlCnzl48nJibqxIkT8vPzy5GiAAAA3JGh4BQXF5ft9kuXLmncuHE6ceKEGjRooDFjxrj04sePH9f48eN19OhR5cuXT+Hh4Ro6dKgCAwNdagcAAODvcNtrnHbu3KnIyEht2bJFo0eP1rx581S6dGnDz09LS1Pv3r0VGhqqHTt2aOPGjUpJSdHw4cNvtyQAAIBc5XJwSk1N1ciRI/X000+rXLly2rBhg7p06eLyC58+fVpVqlRR//795e3trYCAAHXp0kX79+93uS0AAIC/g0uXI9i5c6dGjhypCxcu6JVXXlHXrl1v+4Xvu+8+JSQkOG3bunWrqlWrdtttAgAA5CZDwSk1NVXjx4/XypUrVb9+fb3++usqVapUjhVht9s1depUffzxx1qyZInh53l4WOThYcmxOvIqT08Pp/8C7sLLiz7pLjhOwJ3lpWOFoeDUtm1b/fLLL7rnnntUq1YtrV69+qb7DhgwwKUCLl26pGHDhuno0aNasmSJgoODDT83MLCgLBaCUwZ/f1+zSwCcBAQUNLsEZMJxAu4oLx0rDE/VlSpVSunp6VqzZs1N97FYLC4Fp59//ll9+vRR6dKltWrVKpfPpktKSmXESdf/gvT399XFi5dltdrMLgeSAswuwE0kJ6eaXQL+h+OE++E48Sd3OFYYDW+GgtNHH310R8Vk58KFC+rZs6fq1aun119/XR4erg/T2Wx22Wz2HK8tr7JabUpP54AI90F/dD8cJ+CO8lKfdPledTllzZo1On36tDZv3qwtW7Y4PfbZZ5+ZVBUAAMDNmRacevXqpV69epn18gAAAC7LO8vYAQAATEZwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDB6S6QnJys5s2b68CBRLNLAeDGkpKS1LFjpA4e5FgB3C6CUx536NDn6tOnp37++WezSwHgxr744nN16dJFJ0+eNLsUIE8jOOVhmzdv1OjR/1bfvv3NLgWAG9u8eaNGjRquF1980exSgDyP4JSHhYXV0/Ll69S8+SNmlwLAjYWF1dOqVRvUqlUrs0sB8jwvswvA7QsKKmp2CQDygKCgovLy4u9kICfwLwkAAMAgghMAAIBBBCcAAACDCE4AAAAGsTj8LvHVV18pOTlV6ek2s0sB4Mb27DnIcQK4A4w4AQAAGERwAgAAMMgtglNSUpKaN2+uvXv3ml0KAADATZkenA4cOKAuXbpwrzUAAOD2TA1Oa9eu1eDBg7l/EgAAyBNMDU4NGzbUBx98wP2TAABAnmDq5QiKFSt2R8/38LDIw8OSQ9XkXZ6eHk7/BdwF90dzHxwn4M7y0rEiT1/HKTCwoCwWk4NT75bmvv4N/M0uIGGL2RXAzQQEFDS7BPfhJscKjhNwR3npWJGng1NSUqrpI04Bpr66e0lOTjW7BLdBv7iOPvEn+sR19Ik/0Sf+5A79wmh4y9PByWazy2azm10G/oerESMz+gQyo08gO3mpX+SdSUUAAACTuc2I01dffWV2CQAAAH+JEScAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCBTg9P58+fVr18/1a5dW3Xr1tXrr7+u9PR0M0sCAAC4KVOD08CBA1WgQAH997//1apVq7R7924tWLDAzJIAAABuyrTg9NNPP2nfvn2KiYmRr6+v7rnnHvXr109Lly41qyQAAIC/ZFpw+uabb1SkSBGVKFHCsa1ixYo6ffq0Ll68aFZZAAAAN+Vl1gunpqbK19fXaVvG93/88Yf8/f1v2YaHh0UeHpZcqQ+u8/LiXAM4o08gM/oEspOX+oVpwalAgQK6fPmy07aM7wsWLGiojaAgvxyvy2UJW8yuwG0EmF2AO6FfSKJPOKFPSKJPOKFPOOSlfmFaxLv//vuVkpKic+fOObZ99913KlmypAoVKmRWWQAAADdlWnAqX768HnroIY0dO1aXLl3SiRMnNGPGDHXs2NGskgAAAP6SxW6328168XPnzunVV1/V3r175eHhofbt22vw4MHy9PQ0qyQAAICbMjU4AQAA5CV5Zxk7AACAyQhOAAAABhGcAAAADCI4AQAAGERwysOOHz+uXr16KSwsTOHh4RoyZIiSkpLMLgsm2717tzp16qRatWopPDxcr732mtLS0swuCyazWq2Kjo7W0KFDzS4FbmDTpk2qWrWqQkNDHV8xMTFml5UnEJzyqLS0NPXu3VuhoaHasWOHNm7cqJSUFA0fPtzs0mCipKQk9e3bV926dVNiYqLWrl2rffv2afbs2WaXBpPFx8crMTHR7DLgJg4fPqx27drps88+c3xNmDDB7LLyBIJTHnX69GlVqVJF/fv3l7e3twICAtSlSxft37/f7NJgosDAQO3atUsdOnSQxWJRSkqKrly5osDAQLNLg4l2796t999/Xy1atDC7FLiJw4cPq3r16maXkScRnPKo++67TwkJCU4XC926dauqVatmYlVwB35+1+/h2KRJE7Vt21bFihVThw4dTK4KZjl//rxGjBihSZMmZbmxOv6ZbDabjh49qu3bt6tp06Zq3LixRo4cqQsXLphdWp5AcLoL2O12TZkyRR9//LFGjBhhdjlwE++//74+/fRTeXh46Pnnnze7HJjAZrMpJiZGvXr1UpUqVcwuB24iKSlJVatW1SOPPKJNmzZp2bJl+vHHH1njZJCX2QXgzly6dEnDhg3T0aNHtWTJEgUHB5tdEtyEj4+PfHx8FBMTo06dOunChQsqXLiw2WXhbzRr1ix5e3srOjra7FLgRooWLaqlS5c6vvf19VVMTIw6d+6sS5cuOUatkT1GnPKwn3/+WY899pguXbqkVatWEZqggwcPqmXLlrp69apj29WrV5UvXz6maf6B1q9fr3379ql27dqqXbu2Nm7cqI0bN6p27dpmlwYTHT9+XBMnTtSNd1y7evWqPDw85O3tbWJleQPBKY+6cOGCevbsqVq1amnu3Lks/oUkKTg4WGlpaZo0aZKuXr2qU6dOafz48erYsSMHxH+gLVu26ODBg0pMTFRiYqLatGmjNm3acHbdP1yRIkW0dOlSJSQkKD09XadPn9aECRMUFRXFccIAbvKbR82fP1/jxo2Tr6+vLBaL02OfffaZSVXBHXz77bcaO3asDh8+rEKFCqlt27aOsy/xz5ZxDadx48aZXAnMtm/fPk2ePFlff/218ufPr9atWysmJkb58+c3uzS3R3ACAAAwiKk6AAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEHc5BeAYdHR0dq3b99NH9+xY4eKFSv2N1b0p0OHDmnGjBk6ePCgLl++rNKlS6tFixbq27ev6TctjYiIUFRUlJ577jnZ7XatW7dOjRs3VlBQkKl1AXAdVw4HYFh0dLSCgoI0YsSIbB8PCgqSh8ffP5D9zTffqGPHjnr88cfVrl07FSxYUMePH1dcXJzKli2rRYsW/e013SgpKUn58+dXwYIFtW/fPkVHR2vbtm0qW7asqXUBcB0jTgBc4uPjY9qo0s2sWbNG9957r2JjYx3b7rnnHvn4+Kh37946fvy4qlSpYlp9N96Em79VgbyNNU4AclxERITGjh2rVq1aqW7dutqzZ4+io6M1fPhwderUSbVr19a6deskSevWrVNkZKRq1KihiIgIzZw5UzabTZJ08uRJBQcHa8aMGQoPD1dERIQuXryY5fUsFotOnTqlr7/+2ml7/fr19d5776lChQqObatXr9ajjz6qGjVq6NFHH9XChQsdrxcdHa2BAwc6tXHgwAEFBwfrp59+kiR9/PHH6tChg2rUqKHmzZtr6tSpunr1qmP/4OBgTZkyRU2bNlV4eLi+//57RURE6M0339TevXvVo0cPSdLDDz+sFStWqH79+oqPj3d6zXfeeUcNGjTQtWvXbuOnDyA3MeIEIFe88847mjVrlgoVKqTg4GBJ10eGJkyYoCpVqqho0aJasGCBJk2apKFDhyo8PFyHDx/Wq6++qpSUFA0dOtTR1oYNG7Rw4UJdvnxZ/v7+WV6rS5cuWr16tSIjI1WzZk2FhYWpTp06qlu3ripVquTYb/ny5Zo0aZJefvll1axZU19++aVee+01nTlzRkOGDFFUVJRGjx6tS5cuOdZFbdiwQbVq1VK5cuX06aef6oUXXtCwYcMUHh6un3/+Wa+99pp++OEHvfHGG06vM2fOHFmtVt13332O7aGhoXrzzTf13HPPaeXKlapcubK+++47bdiwQQMGDHDst379ekVGRipfvnw594EAyBl2ADCoe/fu9qpVq9offPDBLF8vvviiY7+mTZva+/fvn+W57du3d3xvs9nsDRo0sI8bN85pv0WLFtmrVatmv3jxov3EiRP2ypUr2xcuXHjL2n799Vf7uHHj7M2bN7dXrlzZXrlyZXvt2rXty5cvd+zTuHFje0JCgtPzVq1aZQ8JCbGnpaXZU1NT7Q8++KB9zZo1drvdbr9y5Yo9LCzMvmLFCrvdbrd369bNPnr0aKfn79692165cmX7iRMn7Ha73V65cmX72LFjnfZp2rSpfdq0aXa73W7fs2eP0/5ff/21vXLlyvaDBw/a7Xa7/YcffrBXrlzZfvz48Vu+ZwB/P0acALgkIiJCgwcPzrK9QIECTt+XK1cuyz43bktKStK5c+f00EMPOe1Tp04dXbt2Td9//73jrLPs2sqsRIkSio2NVWxsrH755Rft3LlTb7/9tkaOHKkSJUooJCREv/76q9544w2nqTGbzaYrV67o5MmTqlixolq2bKl3331XUVFR+vTTT5WWlqZHH31UkvTll1/q0KFDWrt2reP59v+tWfruu+8ci72N1Jvh/vvvV0hIiNatW6fQ0FCtXbtW1atXd4zSAXAvBCcALilYsKChYODj4/OX2+w3WSRttVolSV5efx6esmvrRhMmTFDDhg1Vv359SVKpUqXUsWNHRUZGqnnz5vrkk09UrVo1SdKwYcPUoEGDLG2UKlVKktShQwf17NlTZ8+e1YYNG9SsWTPHtJ3NZlPv3r0VFRWV5fk3Lpi/Vb2ZPfbYY5oyZYpGjBihd999V08//bRLzwfw92FxOABTBAUFKSgoSAcOHHDanpiYqHz58unee+813NauXbs0b968LNu9vb3l4+PjeK2goCD9/PPPKleunOPr6NGjmjp1quM5derUUZkyZbRu3Tpt377dKSTdf//9+v77752ef+bMGf3nP/9RamqqoVotFkuWbW3atNGVK1e0YMECnT17Vm3atDH83gH8vQhOAFySlpams2fPZvt15coVw+1YLBY99dRTWrJkiZYuXaqffvpJ7777ruLj49WlSxcVKlTIcFsvvviidu3apRdeeEH79+/XqVOntH//fsXExCg1NVVdunSRxWJR7969tXjxYi1evFg///yzPvzwQ40ePVre3t7y9vZ2tNe+fXu99dZbKlKkiNPoVJ8+ffT+++/rzTff1A8//KDdu3dr2LBhunjxouFLNGRMaR4/ftwRtgoVKqTmzZtr+vTpatasmQoXLmz4vQP4ezFVB8Almzdv1ubNm7N9bPLkyWrdurXhtnr37i1vb28tXLhQcXFxKlmypPr06ePyVFXjxo21ePFizZkzRy+88IIuXryowoULq2HDhlq2bJmKFi0qSXrqqaeUP39+LV68WOPHj1dQUJA6dOigF1980am9qKgoxcfH64knnnC6oGfLli01ZcoUzZo1S7NmzVLhwoXVtGlTxcTEGK61cuXKatKkiQYOHKiXXnpJTz31lKTrU4TvvvuuOnTo4NJ7B/D34srhAOAG1q1bp6lTp+qjjz4y5errAIxhxAkATHT06FF9//33mjp1qrp3705oAtwc/0IBwESff/65/v3vf6tmzZrq2bOn2eUAuAWm6gAAAAxixAkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAEAABgEMEJAADAoP8HRAJ7xaKPIfgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "severity_counts.plot(kind='bar', color='tomato')\n", + "plt.xlabel('Error Severity')\n", + "plt.ylabel('Number of Errors')\n", + "plt.title('Distribution of Error Severity for no LLM response')\n", + "plt.xticks(rotation=0)\n", + "for idx, val in enumerate(severity_counts):\n", + " plt.text(idx, val+0.1, int(val), ha='center', va='bottom')\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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pYt++ukn1ahR4z/rW7VqlbJmzar3339fM2bMkI+Pj65evaqDBw9a1tmwYYPc3d0t27t3754WLlyoKVOmaPHixbp586Z69uypqKgoSdJnn32mXbt2adKkSfL391ejRo3Up08fxnEAQDxxcXQBAID4t3//fh05ckT79u1T+vTpJUmffPKJDh8+rCVLlihHjhySpP79+8vDw0OSdPjwYUlS3759lStXLknSpEmTlCZNGk2ePFmurq6SpOnTp6t27dpau3atOnToIEkqWrSomjVrFuv60qdPL2dnZ6VJk0bp0qVTunTpVLx4ca1du1Zly5aVJPn7+6tFixZycXn60RUZGalvvvlGxYsXt9TWuHFj7du3T7lz59a6deu0atUqeXt7S5K6d++uM2fOaMGCBapZs+ZrP5cAgJgRLAAgGTh58qQkqU6dOlbLIyIi9OTJE+XIkUMZMmSwhIpn5c2b1/L/586dU4kSJSyhQpIyZMigt956S2fPnrUsy5Mnj901t2nTRt9++61Gjhypmzdv6siRI/ryyy8t97u5uVlChSTlz59fnp6eOnfunKX1pEuXLlbbjIyMlKenp921AQBeRLAAgGTAZDLJ3d1dq1evfuE+V1dXrVq1SqlSpYrxsc8uN5vNcnJyemEdo9GoFClSxPiY19WsWTNNnDhRO3bs0Llz5+Tt7a1ChQpZ7n92f8/W5+zsrOjhg8uWLZObm5vVOgYDvYABID5wdgWAZKBQoUIKCwtTRESE8uTJY/k3b948BQQE2LSdY8eOKSIiwrLszp07unz5svLnzx+nNXt6eqpevXrasmWLtmzZotatW1vdf//+fV25csVy+59//lFoaKiKFSumggULSpJu375tdbyrV6/WL7/8Eqd1AgCeIlgAQDJQrVo1FS1aVAMHDtS+fft0+fJlTZw4Ub/88otNgeC9995TWFiYhgwZojNnzujYsWMaMGCAvLy81KRJE7tqdHNz06VLl3Tnzh3LsjZt2mjbtm26fPmymjZt+sJjhg4dquPHj+vo0aMaOnSoSpcurXLlyqlgwYKqVauWxowZo4CAAF29elULFizQnDlzLONFAABxi2ABAMmAs7OzFi5cqJIlS2rQoEFq3ry5/vzzT82YMUOVKlWK9XZy5cqlpUuX6sGDB2rXrp169OihTJky6aeffrJ77ELnzp21c+dOvf/++5ZllSpVkpeXl+rWrRvj9ps2bapevXqpR48eKliwoObMmWPpqjVt2jQ1aNBAY8aMUePGjfXLL7/oq6++Ups2beyqEwAQM65jAQB4Yz18+FBVq1aVr6+vKleubFm+evVqffbZZ1YDxgEAjsXgbQDAGyckJET79+/Xxo0blT17dptaVQAAjkGwAADEq+bNm+vq1auvXGfPnj1KkyaN5XZUVJRGjBih9OnT69tvv41xJioAwJuFrlAAgHh148YNRUZGvnKd3LlzEx4AIJEjWAAAAACwG7NCAQAAALAbwQIAAACA3QgWAAAAAOxGsAAAAABgN4IFAAAAALsRLAAAAADYjWABAAAAwG4ECwAAAAB2+3/+sCo8GVlIvAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Prepare a DataFrame for severity x error_type\n", + "error_type_sev = []\n", + "for _, row in no_LLM_response_df.iterrows():\n", + " for et, sev in zip(row['error_types'], row['error_severities']):\n", + " error_type_sev.append((et, sev))\n", + "\n", + "err_df = pd.DataFrame(error_type_sev, columns=['error_type', 'severity'])\n", + "pivot = pd.crosstab(err_df['error_type'], err_df['severity']).sort_index(axis=1)\n", + "\n", + "pivot.plot(kind='bar', stacked=True, figsize=(8,5), colormap='tab20')\n", + "plt.ylabel(\"Number of Errors\")\n", + "plt.title(\"Error Severity Distribution by Error Type for no LLM response\")\n", + "plt.xticks(rotation=20)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.1. How does the LLM score across key clinical communication criteria?" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JiYGbm5uSEpKwp49exAWFqbYaImISGF0A8OVHUIJT6Z7KzsEegeKn9LRsGFDAP//lI5x48Zh0KBBuHTpEnx9fWFsbAwLCwslR0tERKVhveENH1X1Kn19fURHR+PAgQOwsbHBrFmzMGvWLNja2ipi90RERPSB4lM6iIioqih3y/OrFi9eLPfa3NwcmzdvfuuAiIiIqGoofkpHWFgYYmJixPKyntKRkJDwniMkIiIqP4W0PBMRERG9jE/pICKiqobJMxERESkcn9JBRERVzRt32yYiIiIqy65du/DgwQNYWVkBgJgsHzlyBFOnTsWZM2fk1udTOoiIqLJjyzMREREp3IEDB/DLL78gMTERiYmJ6NOnD/r06YPExER069YNaWlpiImJQX5+Ps6fP489e/ZgwIAByg6biIioTEyeiYiI6L3iUzqIiOhDxG7bRERE9M7xKR1ERPShY8szERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkYQKJc/Xrl2Dh4cHrK2t0aFDB0ydOhXp6ekAgOTkZAwcOBCWlpZwcnLCtm3b3knARERERERERO9buZPn3NxceHp6wtLSEqdPn8bevXuRmZmJGTNmICsrC15eXujXrx8uXbqEgIAABAYG4sqVK+8ydiIiIiIiIqL3otzJc2pqKkxMTODr6wsNDQ3o6+tj0KBBuHTpEg4dOgQ9PT24ublBTU0NdnZ2cHZ2Rnx8/LuMnYiIiIiIiOi9KHfy3KxZM6xbtw6qqqpi2cGDB2FqaoqUlBTIZDK59Q0NDXHt2jXFRUpEREQfFA73IiKiqkTtTTYSBAErV67E8ePHERcXhw0bNkBTU1NunRo1aiAnJ0chQRIREdGHpXi411dffYXIyEg8ffoU/v7+mDFjBpYsWQIvLy+MGzdO7MXm6+sLY2NjWFhYKDt0IiKl0w0MV3YIVIoKz7adnZ2NcePGYc+ePYiLi4OxsTE0NTWRm5srt15ubi60tbUVFigRERF9ODjci4iIqpoKJc///vsvBgwYgOzsbCQkJMDY2BgAIJPJkJKSIrfu9evXYWRkpLhIiYiI6IPB4V5ERFTVlDt5zsrKwvDhw9GmTRtERUXBwMBAXNatWzekpaUhJiYG+fn5OH/+PPbs2YMBAwa8k6CJiIjowyEIAoKCgnD8+HHMnDkTT58+5XAvIiL64JR7zPOOHTuQmpqK/fv348CBA3LLLl++jOjoaAQEBCAkJAQGBgaYNWsWbG1tFR4wERERfTiys7Mxffp0/P7773LDvZ48eSK3Hod7ERFRZVfu5NnDwwMeHh5lLjc3N8fmzZsVEhQRERF9+P7991+MGjUKn376KRISEsReazKZDGfOnJFbl8O9iIiosqvwhGFEREREUjjci4iIqpo3elQVERER0etwuBcREVU1TJ6JiIhI4Tjci4iIqhp22yYiIiIiIiKSwOSZiIiIiIiISAKTZyIiIiIiIiIJHPNMREREREQfNd3AcGWHQB8AJs9ERO8Jb8xEREREHy522yYiIiIiIiKSwOSZiIiIiIiISAKTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA2baJqErizNZEREREpEhseSYiIiIiIiKSwOSZiIiIiIiISAKTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA5JmIiIiIiIhIApNnIiIiIiIiIglMnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiIiIiEgCk2ciIiIiIiIiCUyeiYiIiIiIiCSoKTsAIvrw6QaGKzsEIiIiIqJ3ii3PRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEENWUHQFTZ6QaGKzsEOU+meys7BCIiIiKijw5bnomIiIiIiIgkMHkmIiIiIiIiksBu20QfmMrWjZyIiIiI6GPA5JmIiIiIqIqqjD+6c/4W+lCx2zYRERERERGRBCbPRERERERERBLYbZuIiIiIiN6bytiVnKg82PJMREREREREJIHJMxEREREREZEEdtsmIiKij1pl7ELK2YjLpzK+d0RUdbHlmYiIiIiIiEiCQpPnR48ewcfHB1ZWVrCxsUFAQAAKCgoUeQgiIiKqIlhvICKiD4lCu21PmDAB9evXx6lTp5CWlgZvb2/ExMTA09NTkYcpF3bjISIiqtwqU72BiIhIisJanm/duoWLFy9iypQp0NTUROPGjeHj44P4+HhFHYKIiIiqCNYbiIjoQ6Ow5DklJQV6enqoX7++WNa8eXOkpqbi8ePHijoMERERVQGsNxAR0YdGYd22nz59Ck1NTbmy4tc5OTmoWbOm5D7q1tVVVDjAiqmK2xcREb0XNZQdAL03lareUAnrDPxbKKdK+N4R0fvzvr8rFdbyrKWlhWfPnsmVFb/W1tZW1GGIiIioCmC9gYiIPjQKS56NjIyQmZmJtLQ0sezGjRto0KABdHUV2KJMREREHzzWG4iI6EOjsOS5adOmaNu2LRYtWoTs7Gzcvn0bYWFhcHV1VdQhiIiIqIpgvYGIiD40KoIgCIraWVpaGubPn48LFy6gWrVq6NevH/z8/KCqqqqoQxAREVEVwXoDERF9SBSaPBMRERERERFVRQrrtk1ERERERERUVTF5JiIiIiIiIpLA5JmIiIiIiIhIApNnIiIiIiIiIglMnomIiIiIiIgkVKnk+dGjR/Dx8YGVlRVsbGwQEBCAgoICZYdV6Vy7dg0eHh6wtrZGhw4dMHXqVKSnpys7rEqpsLAQ7u7umDZtmrJDqZQyMzMxdepU2NjYoF27dvDx8cGDBw+U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fYbt27cjKioK9erVg7u7O3x9fSVbTRR1HkREb6o8dZeoqCiEhoZi3LhxUFdXh6mpKdavX19issvX6dSpE5YtW4bo6GhxkrC2bdtiw4YNZQ7h+vbbbxEWFoZRo0aV6DFYTFVVFb1798YPP/wgTv5altLu98CLsdt2dnb4888/K9Srr1h57lsvGz16NDIyMrBhwwasXr0an3zyCb788kuxjpqVlVXuho13dU6DBw9Gfn4+Nm/ejI0bN6JGjRqws7PDlClToK6uDgBYunQpQkNDERsbi4yMDHz++edYuXIlevbsCQAYO3Ys6tSpg7i4OGzbtg16enro2bMnJkyYINkSPmHCBNStWxcbN27EunXrUKtWLdjZ2WHSpElyE7HSx0NFqMhsQFQqJycnWFtbY/HixcoOhUjpjh49igYNGsDU1FQsS0lJQZ8+fRAWFlbi+ZBEREQE5ObmwsHBAaNHj8Y333yj7HAUoiqeE33c2PJMlVpRUVG5xt2oqqq+8SMmSJogCCUmQCtNtWrVcPr0aezbtw9+fn74/PPPce/ePYSHh6NZs2awt7d/D9FWHi+P8y5LtWrVFDpDOxERfVju3r2LnTt3inOaDBw4UG55ee4lKioqlaqnUFU8JyKAyTNVcqtXr0ZoaKjkehs2bICNjc17iOjjdPHiRQwbNkxyvTFjxsDf3x81atRAeHg4Hjx4AD09PXTs2BGTJ08u9fEXVdWdO3fK1crev39/9lohIvqIVatWDbGxsdDS0sKKFStKdAd+uSdXWaytrREbG/uuQqywqnhORAC7bVMld//+/XI9Rql4oih6N7Kzs187FrlYvXr1UL9+/fcQUeWXl5cnN+NpWfT19eUeL0VERPSy8jzKU1tbW5x35UNQFc+JPg5MnomIiIiIiIgkcKAdERERERERkQQmz0REREREREQSKtWEYQ8fPlF2CEREVEXUrctncFZ1rDcQEZEilLfOwJZnIiIiIiIiIglMnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiIiIiEgCk2ciIiIiIiIiCUyeiYiIiIiIiCRUqkdVERHR+6MbGK7sEEp4Mt1b2SEQERFRKVhvYMszERERERERkSQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBCbPRERERERERBKYPBMRERERERFJYPJMREREREREJIHJMxEREREREZEEJs9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERHRO1VYWAh3d3dMmzZNLEtOTsbAgQNhaWkJJycnbNu2TYkREhERSWPyTERERO9UaGgoEhMTxddZWVnw8vJCv379cOnSJQQEBCAwMBBXrlxRYpRERESvx+SZiIiI3plz587h0KFD6N69u1h26NAh6Onpwc3NDWpqarCzs4OzszPi4+OVGCkREdHrMXkmIiKid+LRo0eYOXMmli9fDk1NTbE8JSUFMplMbl1DQ0Ncu3btfYdIRERUbkyeiYiISOGKioowZcoUeHh4wMTERG7Z06dP5ZJpAKhRowZycnLeZ4hEREQVwuSZiIiIFC4yMhIaGhpwd3cvsUxTUxO5ublyZbm5udDW1n5f4REREVWYmrIDICIioqpn165dePDgAaysrABATJaPHDmCqVOn4syZM3LrX79+HUZGRu89TiIiovJiyzMREREp3IEDB/DLL78gMTERiYmJ6NOnD/r06YPExER069YNaWlpiImJQX5+Ps6fP489e/ZgwIAByg6biIioTEyeiYiI6L3S19dHdHQ0Dhw4ABsbG8yaNQuzZs2Cra2tskMjIiIqE7ttExER0Tu3ePFiudfm5ubYvHmzkqIhIiKqOLY8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRhAolz9euXYOHhwesra3RoUMHTJ06Fenp6QCA5ORkDBw4EJaWlnBycsK2bdveScBERERERERE71u5k+fc3Fx4enrC0tISp0+fxt69e5GZmYkZM2YgKysLXl5e6NevHy5duoSAgAAEBgbiypUr7zJ2IiIiIiIiovei3MlzamoqTExM4OvrCw0NDejr62PQoEG4dOkSDh06BD09Pbi5uUFNTQ12dnZwdnZGfHz8u4ydiIiIiIiI6L0od/LcrFkzrFu3DqqqqmLZwYMHYWpqipSUFMhkMrn1DQ0Nce3aNcVFSkRERERERKQkam+ykSAIWLlyJY4fP464uDhs2LABmpqacuvUqFEDOTk5CgmSiKgq0A0MV3YIRERERPSGKpw8Z2dnY/r06fj9998RFxcHY2NjaGpq4smTJ3Lr5ebmQltbW2GBEhERERERESlLhWbb/vfffzFgwABkZ2cjISEBxsbGAACZTIaUlBS5da9fvw4jIyPFRUpERERERESkJOVOnrOysjB8+HC0adMGUVFRMDAwEJd169YNaWlpiImJQX5+Ps6fP489e/ZgwIAB7yRoIiIiIiIiovep3N22d+zYgdTUVOzfvx8HDhyQW3b58mVER0cjICAAISEhMDAwwKxZs2Bra6vwgImIiIiIiIjet3Inzx4eHvDw8Chzubm5OTZv3qyQoIiIiIiIiIgqkwqNeSYiIiIiIiL6GDF5JiIiIiIiIpLA5JmIiIiIiIhIApNnIiIiIiIiIglMnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiIiIiEhCuZ/zTERERERERO+ebmC4skOgUrDlmYiIiIiIiEgCk2ciIiIiIiIiCUyeiYiIiIiIiCQweSYiIiIiIiKSwOSZiIiIiIiISAKTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA5JmIiIiIiIhIgpqyAyAiehd0A8OVHQIRERERVSFseSYiIiIiIiKSwOSZiIiIiIiISAKTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA5JmIiIiIiIhIApNnIiIiIiIiIglMnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiN6Ja9euwcPDA9bW1ujQoQOmTp2K9PR0AEBycjIGDhwIS0tLODk5Ydu2bUqOloiI6PWYPBMREZHC5ebmwtPTE5aWljh9+jT27t2LzMxMzJgxA1lZWfDy8kK/fv1w6dIlBAQEIDAwEFeuXFF22ERERGVi8kxEREQKl5qaChMTE/j6+kJDQwP6+voYNGgQLl26hEOHDkFPTw9ubm5QU1ODnZ0dnJ2dER8fr+ywiYiIysTkmYiIiBSuWbNmWLduHVRVVcWygwcPwtTUFCkpKZDJZHLrGxoa4tq1a+87TCIionJj8kxERETvlCAICAoKwvHjxzFz5kw8ffoUmpqacuvUqFEDOTk5SoqQiIhImpqyAyAiIqKqKzs7G9OnT8fvv/+OuLg4GBsbQ1NTE0+ePJFbLzc3F9ra2kqKkoiISBpbnomIiOid+PfffzFgwABkZ2cjISEBxsbGAACZTIaUlBS5da9fvw4jIyNlhElERFQuTJ6JiIhI4bKysjB8+HC0adMGUVFRMDAwEJd169YNaWlpiImJQX5+Ps6fP489e/ZgwIABSoyYiIjo9dhtm4iIiBRux44dSE1Nxf79+3HgwAG5ZZcvX0Z0dDQCAgIQEhICAwMDzJo1C7a2tkqKloiISNobJ8/p6ekYNGgQFi5cCBsbGwBAcnIyFi5ciOvXr0NfXx/e3t4YOHCgwoIlIiKiD4OHhwc8PDzKXG5ubo7Nmze/x4iIiIjezht1205KSsKgQYPw77//imVZWVnw8vJCv379cOnSJQQEBCAwMBBXrlxRWLBEREREREREylDh5Hnnzp3w8/PDxIkT5coPHToEPT09uLm5QU1NDXZ2dnB2dkZ8fLzCgiUiIiIiIiJShgonz/b29jh8+DB69eolV56SkgKZTCZXZmhoiGvXrr1dhERERERERERKVuExz3Xr1i21/OnTp9DU1JQrq1GjBnJyct4sMiL6YOgGhis7BCIiIiKid0phj6rS1NREbm6uXFlubi60tbUVdQgiIiIiIiIipVBY8iyTyZCSkiJXdv36dRgZGSnqEERERERERERKobDkuVu3bkhLS0NMTAzy8/Nx/vx57NmzBwMGDFDUIYiIiIiIiIiU4o2f8/wqfX19REdHIyAgACEhITAwMMCsWbNga2urqEMQETi+mIiIiIhIGd4qef7zzz/lXpubm2Pz5s1vFRARERERERFRZaOwbttEREREREREVRWTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA5JmIiIiIiIhIApNnIiIiIiIiIglMnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiIiIiEgCk2ciIiIiIiIiCUyeiYiIiIiIiCQweSYiIiIiIiKSoKbsAIiIiIiI6OOhGxiu7BBKeDLdW9kh0AeALc9EREREREREEpg8ExEREREREUlg8kxEREREREQkgckzERERERERkQQmz0REREREREQSmDwTERERERERSWDyTERERERERCSByTMRERERERGRBDVlB0D0Mt3AcGWHQEREREREVAJbnomIiIiIiIgkMHkmIiIiIiIiksDkmYiIiIiIiEgCk2ciIiIiIiIiCUyeiYiIiIiIiCQweSYiIiIiIiKSwEdVERERERFVUXwMKJHisOWZiIiIiIiISAKTZyIiIiIiIiIJTJ6JiIiIiIiIJDB5JiIiIiIiIpLA5JmIiIiIiIhIApNn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with_LLM_response_df[score_columns].hist(bins=10, figsize=(12,4), grid=False)\n", + "plt.suptitle(\"Distribution of Response Quality Scores\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2 Do responses with errors have lower scores?" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtBNJREFUeJzs3XdYFFfbBvB7adIVsKDYQcCGYgELiGKNFdHEimIlKvYCaiyoCNhAwK7YNdbYojFGI7HFCBosUawx9gaooLTd+f7wY19XUJZ12aHcv+vyEmZmZ54ddp49++yZcySCIAggIiIiIiIiIiLSIC2xAyAiIiIiIiIiouKHRSkiIiIiIiIiItI4FqWIiIiIiIiIiEjjWJQiIiIiIiIiIiKNY1GKiIiIiIiIiIg0jkUpIiIiIiIiIiLSOBaliIiIiIiIiIhI41iUIiIiIiIiIiIijWNRioiIqBARBEHsEIiogFE1LzCfEBUt6r6mi2KOKIrPqbBjUUok/v7+cHd3l//u7u4Of3//PO1DlcfkNS4iIhLH+fPnYWdnh/PnzwMAnj59Ch8fHzx69Ei+TX68D1DRkJycjBEjRqBevXpo3Lgx/v33X40cd+/evbCzs8PDhw81crxPFYdr4tNzfPv2bfTp0yfP+4mNjYWPj4/894cPH8LOzg579+5VW6xiUeZ1wDYvFXafvs5XrFiBdevWyX+PiIiAnZ2d0vtTV25RBzs7O0RERHz1fgrSc6LP0xE7APogMjISxsbG+f4YIiIqHGrXro0dO3bAxsYGAHD27FmcPHkSM2bMkG/D9wH6nH379uHEiROYOXMmatSogYoVK2rkuC1btsSOHTtQtmxZjRyPgCNHjuDSpUt5ftyuXbtw+/Zt+e9ly5bFjh07ULlyZXWGJwrmRioOPn2dh4WFwdfXV/77t99+C1dXV6X392n+VjW3FCRF8TkVRSxKFRC1atXSyGOIiKhwMDY2Rv369b+4Dd8H6HOSkpIAAH379oVEItHYcc3NzWFubq6x45H66Onp5ZpzCgvmRioOcnudW1pawtLSUun9FcX8XRSfU1HE2/fykSAI2Lp1Kzp16gQHBwe0bdsWa9asyfE+1o+7X2Z1nz5y5AjGjBkDR0dHNG7cGNOnT0dKSkqOjwGAlJQUBAUFoUWLFqhfvz48PT1x4sQJ+frU1FQsXrwY7dq1Q506ddCgQQMMGjQI169f/+rn+ttvv6Fv375wdHREnTp10KFDB2zZskVhm1evXmHatGlo1qwZHB0d0a9fP8TGxsrXZ2RkYNmyZWjTpg0cHBzQqVMn7NmzR77ey8sLXl5eCvv89PaWvXv3olatWti1axdcXFzQokUL3Lp1C1KpFKtXr0bnzp3h4OCA+vXro3fv3jh37pzC/q5evYqhQ4eiYcOGaNKkCcaPH48nT54gMzMTLi4umDhxYrbn/s0332Dq1KlKn6u0tDQEBASgRYsW8nMVFRWVp3OVlpaGZcuWoUOHDqhbty7atWuH1atXQyaTKZyvSZMmYcyYMWjQoAGGDx8uf+yCBQvg5uaGOnXqoEuXLjh8+LDS8VPBk9NtCh93V46IiEDbtm0RGRkJZ2dntGnTBomJicjIyMCiRYvQokULODg4YMiQIdi3b1+2W29iYmLQv39/1KtXD05OTvDz80NCQoLCsWrVqoW4uDj06tULdevWRcuWLbFmzRqFmL6Uo0JCQuDg4IC3b98qPGb16tVwdHTEu3fvlDoXWflz/fr1+Oabb+Dk5CS/FeXmzZvw8fFBgwYN0KBBA4waNQoPHjxQeLw6rj0AWLduHVq3bg0HBwf07t0bJ06cUMhVWX+TkydPokuXLqhTpw7at2+Pn376Sb6Pj/Pb3r175XmmdevW8r/3p3/7t2/fIigoCG3atEHdunXRuXNn7N69WyE2d3d3hIeHIyQkBM2aNZP/7e/du6fUOf7Y5s2b5efC1dUVs2fPRnJysnx9bnkdAA4fPgxPT084OjqiefPmmDlzJl6/fi1f/7nXL/Chp0enTp1Qp04dtGzZEhEREcjMzMzz8xCLu7s7QkNDERQUBCcnJzg5OWHy5Mny5+fv74+BAwdi1qxZaNSoEbp3747MzMxcX4deXl7y2x7s7e3lrxFl8v+1a9cwcOBANGzYEI6OjvD29kZcXJx8fUJCAiZNmoTmzZujbt266NatG/bt2ydfn9Pte2fOnEHfvn3RsGFDODs7Y+LEiXjy5InCY5TJIQ8fPsSUKVPg4uKC2rVro2nTppgyZYr8fH2Nn3/+GZ6enqhXrx5atmyJhQsXIj09Xb7+ypUrGDJkCJydndGgQQN8//33uHXrlnx91vV67tw5DB48GPXq1UOzZs0QEhKi8Jo8e/YsevXqJW/bjRw5Enfv3pWvV6at87GIiAhERkYCULzdJSEhAQEBAWjVqhXq1KkDJycnjBo1Sv538ff3x08//YRHjx7Jb9nL6fa9f//9F2PGjEHz5s1Rv359eHl5KeREZdusyjp58iQ8PT3h4OCA9u3b49ChQ2jbtq38eX3uXHx63j7Nja9fv8bUqVPh7OyMxo0bY+HChdnytjJtRWVyN5D7e4lMJsPq1avRtm1b+T42b96c5/Mlk8mwdOlSuLu7o06dOnB3d8eSJUuQkZEh3ya3zwdSqRRbt25Fly5d4ODggJYtW2LRokVIS0uTb/O5XKSu51HY5JYn1dVuOnz4MLp27QoHBwc0adIEkyZNwvPnz+XrP36dZ92mFxkZKf/549v3Vq5cidq1ayvEAQDbtm1DrVq18OLFi2xtx09zy5gxY+Dm5pbt2pk5cyZat26dp7GacrtGPnXjxg34+vqiSZMmqF27NlxdXTFv3jykpqbKt7Gzs0NkZCR69OiBhg0bYvny5Rp9TmwTqY49pfLRkiVLsG7dOnh7e6N58+a4du0aQkNDFRo5XzJr1iz06NEDy5cvx+XLlxEaGgpzc/McCyMymQxDhw7FnTt3MGbMGFhbW2P//v3w9fXF+vXr4ezsjClTpuDChQuYOHEiKleujH///RdLly7F+PHjceTIEZW/ST158iRGjRqFAQMGYPTo0UhNTcWWLVswd+5c1KpVCw0aNMC7d+/Qu3dvZGRkYOLEibC0tMTGjRsxdOhQ7N69G9bW1vDz88Px48flY2CcOnUK06ZNg7a2Njw8PJSORyqVYuXKlZg3bx4SEhJgY2ODBQsWYNu2bZg0aRLs7Ozw9OlTLFu2DGPHjsXJkydhaGiIGzduoE+fPnBwcEBwcDAEQcDixYsxePBgHDhwAB4eHti8eTOSk5PlXWXj4uJw9+5dzJkzR+n4AgMDcfr0afj5+aF06dL4448/EBISglKlSsHT0zPXc1W9enV8//33+PvvvzFq1CjUrFkT58+fR1hYGB48eIC5c+fKj3XkyBF06NABy5Ytg1QqhSAIGDVqFC5evCh/nRw7dgzjx49Henp6ns4zFS6PHz/GsWPHsGTJEiQmJsLMzAxTp07FoUOHMHr0aNSsWROHDh1SuDUMAC5cuIBBgwahSZMmCAsLw+vXr7F06VIMGDAAu3fvhr6+PoAPOWjcuHHw9vbGuHHjsHv3bixatAj29vZwdXXNNUf17NkTUVFR+OWXX/Dtt9/Kj79v3z506NABhoaGeXq+oaGhmDlzJkxNTVGnTh3cu3cPvXv3RvXq1REcHAypVIoVK1agT58+2L9/PywsLNR27UVGRmLZsmUYMmQImjRpglOnTmH8+PHZYnzx4gXmzJmDESNGwMrKCuvWrYO/vz8cHBxgbW2tsG3Lli0xYsQIrFixQqHB+bHU1FT07dsXL1++xOjRo1GpUiX89ttvmD59Ol6+fInvv/9evu2mTZvQsGFDBAUF4fXr1wgMDIS/vz927Nih9Dn++eefERISAj8/P9jZ2eHu3bsICQlBamoqgoODASDXvL58+XIsXboUffv2xfjx4/HgwQMsXboUf//9N3bu3Cl/feX0+l21ahVCQ0PRv39/TJ06FdevX0dERASePHmC+fPnK/08xLZt2zZUqVIF8+fPR0JCAhYvXoy7d+9i165dAD58uJFIJIiIiEBKSgq0tbUxbNiwL74OZ82ahfXr12P37t3YsWMHzM3Nlcr/ycnJGDp0KJydnREeHo6MjAysWLECQ4YMwe+//w4TExNMnjwZr169QkBAAIyMjHDgwAH4+fmhfPnycHZ2zvb89u/fjylTpqBjx47w8fFBYmIiwsPD0atXL/z000+wsLAAkHsOef/+PQYMGAAzMzPMmjULJiYmiI2NxbJly1CiRAmF9768+vHHHzFr1iz07NkT48ePx8OHD7FgwQIkJiZi/vz5+PPPPzF06FA0btwYgYGBSE9Px6pVq9C7d2/s3LlT4XqdNGkS+vbti2HDhuHkyZOIiopClSpV0Lt3bzx48AAjRoxAjx49MH78eLx+/RqhoaEYPnw4fv31V2hp5f274m+//RZPnz6V/60tLS0hCAJ8fHzw+vVrTJw4EWXKlMH169exdOlSzJw5E1FRURg5ciQSEhLwzz//IDIyEpUrV85W/L99+za+++47VKlSBT/88AN0dXWxadMmDBw4EFFRUXBycpJvm5c26+f8+eefGDlyJFq1aoWxY8fi/v37mDVrlkJxRBVZ7z8PHz7EpEmTYGFhgbVr1+Ly5csKt5kuWrQo17YikHvuVqbNO3v2bOzduxc+Pj5wdHTEhQsXMH/+fLx58wajRo1S+rmtWbMGW7duhZ+fHypVqoS4uDiEhoZCV1cXo0ePVurzwcyZM7Fv3z4MHToUTk5O+Oeff7Bs2TJcv34da9eulX8++DQX6ejoYObMmWp5HoVJbnnyxo0bamk3xcbGYtKkSRg5ciQaN26Mp0+fYuHChZg4cWKOhb8dO3agV69e6Nmzp0I7KkvXrl0RFhaGX3/9Fb1795YvP3ToEJo2bYoyZcoobJ9Tbrl58yaOHj2K8+fPo2nTpgCA9PR0HDlyBAMHDlT6s6Qy18jHnj9/jn79+qF+/foIDg6Gnp4eTp48iY0bN6J06dIK7ZsVK1Zg7NixsLOzg6WlJa5du6aR58Q20VcSKF+8fv1aqF27tjB//nyF5UFBQcKgQYMEPz8/oVWrVvLlrVq1Evz8/ARBEIQHDx4Itra2wqRJkxQe6+XlJXTu3DnHx/z++++Cra2t8Ntvv8nXy2QyoXfv3kJYWJiQlpYmDB48WPj5558V9hkVFSXY2toKz549EwRByBaXMtasWSNMmTJFYVliYqJga2srrFy5UhAEQdiyZYtgZ2cnXL9+Xb5Namqq0KFDB2H79u3CzZs3BVtbW2Hjxo0K+xk7dqzg7+8vCIIg9O/fX+jfv7/C+j///FOwtbUV/vzzT0EQBGHPnj2Cra2tsHPnToXtJkyYIKxfv15h2dGjRwVbW1vh4sWLgiAIwujRo4XmzZsLqamp8m3i4uKEVq1aCVeuXBHu3r0r2NraCrt375avnzVrltCmTRtBJpMpfb7at28vTJ8+XWFZZGSkcOLECaXO1cmTJwVbW1th//79CvtYtmyZYGtrK9y6dUt+vurUqSOkpKTItzl9+rRga2ub7XUwadIkoXnz5kJGRobSz4MKjo9zQZasa+HBgwdCeHi4YGtrK5w5c0a+/v79+4KdnZ0QFRWl8LjBgwfLHycIgtCrVy+hc+fOQmZmpnybu3fvCjVr1hS2bNmicKyPr7u0tDShbt26wpw5cwRByD1HZR2rX79+8vVxcXGCra2tcOHCBaXPRVb+nDhxosLyCRMmCE2bNhXevn0rX5aYmCg0bNhQCA4OFgRBPddeSkqK4ODgIMydO1dhmxkzZijkqqy/ydmzZ+XbPHr0SLC1tRXWrVsnCMLn81vW30YQFP/2W7duFWxtbYWYmBiFY0+bNk2oW7eukJiYKH9Mq1atFP6mERERgq2trZCQkJDbKVZ4Tu3atROkUql82f79+4UNGzYIgiDkmteTkpKEOnXqZMuHFy5cEGxtbYWtW7cqnKuPX79v3rwR6tWrJ8ycOVPhsTt37hRsbW2FmzdvKv08xNSqVSuhcePGwps3b+TLjh07Jtja2gq///674OfnJ9ja2gr//vuvfL2y7wFZ5y2LMvn/0qVL2V5D9+/fF0JCQoTHjx8LgiAIderUEZYvXy5fL5VKheDgYPl1+vHrVCqVCs2bNxe8vb0Vjnn//n2hdu3awoIFCxQe86Uc8s8//wh9+vQR7t+/r7AvHx8foV27dgrn9NN8+CVSqVRo1qyZMGrUKIXl69evF7p27SqkpaUJPXv2FDp06KBwzbx+/VpwcnISxo4dKwjC/67X0NBQhf24u7sLPj4+giAIwqFDhwRbW1vh6dOn8vVxcXHCkiVL5LkpL22drFzw6d/66dOngpeXV7bcOXfuXKF27dry3z9t82Xlzz179giC8OFadXJyUnh9ZmRkCO3btxd69uyp8Jjc2qzK6Nu3r9ClSxeFNlXWOQsPD8/xXGT59Lzl1Eb+/fff5etTUlIEZ2dnheevTFtRmdyd23vJ3bt3BTs7O2HVqlUKxwoNDRXq1q2bpzw8ePDgbNfX5s2bhZ9++knhuX/uvffWrVuCra2twjUtCIKwb98+wdbWVjh58qQgCEKOuUidz6MwyS1PqqvdtGrVKqF+/foKn0tOnjwpREREyK+RT/Pdx9eKIGTPDZ9eJ48ePRLs7Ozk7ye55RapVCq0aNFC4XPfzz//LNjZ2QkPHz5U+hzmdo18+lxOnTol9OvXT6ENJwiC0LlzZ2Hw4MEKz793794K22jqObFN9HV4+14++fvvv5GRkYG2bdsqLPf39892q9bnfHpfv6Wl5WdvYYmJiYGuri5atWolXyaRSLB9+3aMHTsWenp6WLduHTp27Ijnz5/jwoUL2LFjB37//XcAUOjmm1dDhw5FSEgI3r17hxs3buDIkSNYvXq1wn5jYmJQsWJF2Nvbyx9XokQJHDlyBL1790ZMTAwAZDtfYWFhCAoKynNMtra2Cr8vXrwY3t7eSEhIwKVLl7B3714cOHBAIcbY2Fi0aNECJUqUkD/OwcEBJ06cQJ06dVCtWjU0bNgQ+/fvB/Chin748GF4eHjkqZeZs7Mzdu3ahWHDhmHbtm149OgRRo0aJf/b5Xau/vrrL2hra6Njx44K++3atSsAKHRpr1ixokIPk3PnzkEikcDNzQ2ZmZnyf+7u7njx4oXCrQhU9Hx8XZw/fx6CIKBDhw4K23Tu3Fn+8/v37xEXFwc3NzcIgiB/vVSqVAnW1tY4c+aMwmMdHR3lP+vp6cHc3Fyes3LLUQDQo0cPxMTEyG8v2bt3LypXroxGjRp91XMFPnwD7+zsDH19ffnzMDY2RqNGjXD27Fl5jF977f39999ITU394nn92Md5PmvcB2VvVfzUX3/9BSsrKzRs2DBbfGlpaQq3FtStWxfa2trZjv3+/Xulj9ekSRP8+++/8PT0xPLly/HPP/+gS5cuGDhwIADkmtf//vtvpKeno0uXLgrrGzVqBCsrq2y353z8N7106RLev38Pd3f3bLkMQLbXZkHWqlUrmJiYyH93d3eHrq6u/Pzp6+srDDydl/eAjymT/2vUqAFzc3OMGDECs2bNwokTJ1CmTBlMmTIF5cuXB/DhPSwiIgJjx47F3r17kZCQAD8/vxyv03v37uHFixfZ/saVK1eGo6Njtli/lENq1qyJbdu2oWLFinjw4AFOnTqFqKgo3L1796vaMPfu3cPLly/Rpk0bheXe3t7Yv38/MjMzceXKFXTs2FHhmjE1NUWrVq2++BwAxbZbvXr1UKJECfTs2RNBQUE4e/Ys7O3tMX78eLUOyl2uXDls2rQJjRo1wuPHj3Hu3Dls2bIFFy9ezNO5+uuvv7K9PnV0dNCpUydcuXJF4fa8vLRZc5Keno5Lly6hffv2Cm2q9u3bQ0fn627syHr/adGihXyZoaEh3NzcFLZTpq2Y5Uu5O7f3kj///BOCIOSYv9LS0r54C9OnnJ2dcfbsWfTt2xfr16/HnTt30L9/f3nP99zee//66y8AyHaNdurUCdra2gqv709zkTqfR2HypTxZqlQptbWbGjdujNTUVHTp0gWhoaGIjY2Fi4sLfH19Vb67pVu3boiJiZHfAvjzzz/DwMAg2/v052hpaaF79+749ddf5e2Fn376Cc7OzrCyslI6jtyukU+5uLhgy5YtKFGiBO7du4fff/8dK1euREJCQrY7kD5t/2nqObFN9HV4+14+yRpg9GsGVjMwMFD4XUtL67P3tSYlJaFUqVJf7Pp96tQpzJ8/H3fv3oWRkRHs7OxgZGQEAHm6X/ZTCQkJmDVrFn777TdIJBJUqVJF/qEoa79JSUnyLvqfix/AF7fJi0/3c+XKFQQEBODKlSvQ19eHjY2NPNEoGyMA9OzZE9OmTcPjx48RFxeHN2/eoHv37nmKbfr06bC0tMSBAwcQEBAA4MOb0syZM1GrVq1c43j9+jXMzMyyNdKyut1+PCZP6dKlFbZJSkqCIAho0KBBjvt+/vw5atasmafnQ4XHx6+HrDEFPn2tfbzNmzdvIJPJsGbNmmzjHABQKOACkHcrzvJxzlImR3Xs2BHz58/HgQMHMHToUHnXaVXk9No/fPhwjuOnZeVpdVx7Wef109z/aTxZPs7zWedG1Xz8+vXrHI+TtezNmzc5HvfjY386psKXdOzYETKZDNu2bUNkZCSWLl0KKysrTJw4EZ06dco1r2eNkfC5mD8dX+zj7bL2nTVW3qc+HnOjoPt0ljotLS2UKlVK/veysLBQ+ACSl/eAjymb/7du3YoVK1bg8OHD+PHHH2FgYICuXbti+vTpKFGiBEJDQ7Fy5UocOXIEv/zyC7S0tNCsWTPMnj0blSpVynZM4PN/43/++Udh2ZdyCACsX78eq1atQmJiIkqXLo3atWvDwMDgs89ZGbm9Tt++fQtBEJR+nX7pOVSsWBFbtmzB6tWrsXPnTmzYsAGmpqbo27cvxo4dq9Lte59z4MABLFmyBE+ePEGpUqVgb2+fLbbcfCmnCIKgMFZKXtqsOUlKSoJUKs32d9DR0YGZmVme4v7U69evc3z/+fR2JWXailm+lLuVbfN26tQpx/XPnj1T4ll9MHToUBgZGWHPnj0ICQlBcHAwbG1tMW3aNDRt2jTX996sPPzpucg67x+/vj/NRep8HoWJkZHRZ/PkqFGj1NZucnR0xOrVq7FhwwasW7cOK1euRJkyZTBs2DCV20YdOnTA3Llz5e2rQ4cOoV27dtmu3y/p0aMHVq5ciV9//RXNmjXDmTNn8tyBQJnPXB+TyWRYsmQJtm7dinfv3qF8+fJwcHDIdj6Bz7e3vkQdz4ltoq/DolQ+MTU1BfDhg1/16tXly588eYL79+9/1bd6OTExMUFSUhJkMpnCG8/169eRmZmJkiVLYtSoUWjdujVWrVol/6Zj69atOHXq1Fcde9KkSbhz5w7Wr1+PBg0aQE9PD+/fv5ePh5EV38eDnma5dOkSjI2NFc7Xx7NE3L17FwkJCfJvYKVSqcLjlfkWLuvebzs7Oxw6dAjW1tbQ0tJCdHQ0jh49qhDjp4P/AUB0dDTs7e1Rrlw5dOjQAfPmzcPRo0dx6dIlNG3aFBUqVMg1ho/p6elhxIgRGDFiBB4/fozff/8dy5cvx8SJE3HkyJFcz1XJkiWRmJiIzMxMhQ8lWQnnS403ExMTGBoaYtOmTTmur1KlSp6eCxUceb02ypUrB+DDQJNZPSCyfs9iZGQEiUQCb2/vHBudeWnE5Jaj6tatCyMjI3To0AFHjhxBzZo18ebNG7WNc2ZiYoJmzZph0KBB2dZlXUfquPay8tenuT+n3KJuJUuWxP3797Mtf/HihTw+devcuTM6d+6Mt2/f4vTp01izZg0mT56MRo0a5ZrXS5YsCQB4+fJltvEjXrx4ka3A8bGsfS9atAhVq1bNtl6VRqlYshqTWaRSKRITE2Fubo6nT59m217V9wBl83/16tWxcOFCSKVSXL58Gfv378f27dtRsWJFDB8+XD6u1OTJk3H37l0cP34cy5cvR0BAANauXauwz1KlSgH48Df+1IsXL/L0mjx48CCCg4MxceJE9OzZU174HTt2LK5cuaL0fj718ev0Y0lJSbh27RocHBwgkUg++xyynqOyHBwcEBkZifT0dMTGxmLHjh1YuXIl7Ozs5L3fVGnrfCwmJgZ+fn7o378/hgwZIr/+FixYkKfeKyVLlvzs8wY+vNbU9WHHwsICurq6Cu9BwIcPox8PZJ9VFPm0gJ6SkiL/ovVTZmZmSExMhFQqVejt9vG1p2xbURnKtnk3btyYY8x5aVdqaWmhX79+6NevH169eoXo6GisXLkSo0ePxtmzZ5X6fAB8+JtWrFhRvj4jI0M+Vs3nqPN5FDafy5Nly5ZVW7sJAFxdXeVj6v3555/YtGkT5s+fj/r166NevXp5jtvY2BitW7fGkSNH4OLighs3bsDPzy9P+6hUqRKcnJxw5MgRvH37FgYGBmjXrl2e9pHbNVKjRg2F5VnFudmzZ6N9+/by3ps9e/bM03E/Rx3PCWCb6Gvw9r184uDgAF1dXRw/flxh+caNGzF27Fi1T8/cqFEjZGRkIDo6Wr5MEARMnz4dK1aswNWrV5GWlgYfHx+FrrdZBamv6SkVGxuL9u3bo0mTJtDT0wMA/PHHHwD+12ho1KgRHjx4gPj4ePnj0tPTMXr0aOzcuVPes+q3335T2HdoaKh88FJjY+NsDfSLFy/mGt/du3eRlJSEAQMGoEaNGvI35ZxiPHXqlEI30Pj4eAwfPlze4DU0NETHjh1x6NAhnDp1Ks+9pFJTU9G+fXv5LZwVKlRAv3790KlTJ/lzy+1cOTk5QSqVZuvxkdXF/NNbdz7m5OSEd+/eQRAE1K1bV/7v1q1bWLZsWaGZoYEUqXJtNGzYENra2vj1118Vln/8u7GxMWrVqoW7d+8qvF5q1KiByMjIz94mlJPcclSWnj174ubNm4iKikKTJk3U1qh1cnLC7du3UbNmTfnzqFOnDjZs2IBjx47JY/zaa8/e3h4mJibZzmteP9TkJLdeFI0bN8ajR4+yfeg8cOAAdHV14eDg8NUxfGzcuHHw9fUF8KGB+c0332DkyJGQSqV4/vx5rnm9Xr160NPTw8GDBxXWx8TE4PHjx5/t0QN8uA1KV1cXz549U3ht6urqYvHixTk2dguqT993jh8/jszMTPmAq59S9T1Amfz/yy+/oEmTJnjx4gW0tbXh6OiI2bNnw9TUFE+fPsWjR4/g5uaGX375BcCHD2bDhg1Ds2bNciygVatWDWXKlMn2N37w4AH+/vvvL/6NPxUbGwsTExMMHz5cXpBKSUlBbGxsnnr4fap69eowMzPL1l47ePAghg0bhoyMDNSpUweHDx9WKBa9ffsWJ0+e/OJ77qc2bNgAd3d3pKenQ09PD02bNpW3cbJmI1Qln3+aGy5dugSZTIYxY8bIP/xIpVL5rcpZ50uZnPL7778rfEMvlUrx888/o27duvI2nzpoa2ujQYMG2fLFiRMnFNomWbc5fjx74+vXr3Hnzp3P7rtp06bIzMxU2Hd6errCLS3KthWVkdt7SePGjQEAiYmJCtdiUlISwsLCshWqv6R3796YN28egA+FPU9PT/Tr1w9v375FcnJyru+9WYPVf3qN/vzzz5BKpV98favzeRQmX8qTCQkJams3hYSEoGfPnhAEAQYGBmjVqpW8gPTx6/9jyvS27NatG+Li4rB161aULVsWTZo0+ey2n9tfz549cfbsWRw4cADffPNNnottuV0jn4qNjYWNjQ169uwpL0g9e/YMN2/ezHP+z6/nxDbR12FPqXxibm6OAQMGYOPGjdDT00OTJk1w5coVbNmyBRMmTMDNmzfVeryWLVvC0dERU6dOxdixY1GlShUcPHgQN2/exIwZM2Bubg4dHR0sXLgQgwcPRnp6Ovbu3YuTJ08CUH0ME+BDAe7gwYOoXbs2LC0tcenSJaxatQoSiUR+b66npyc2b96MESNGYOzYsTA3N8fWrVuRmpoKLy8vVK5cGR06dMCiRYuQmpqK2rVr4/Tp0zh27BjCwsIAfBh348SJEwgMDESbNm0QGxurMA3151SrVg3GxsZYuXIldHR0oKOjg6NHj8qnSc+KceTIkejVq5e8W2x6ejqWLl2K2rVrK4xD0LNnT/Tq1QvGxsZ5rqLr6+ujdu3aiIyMhK6uLuzs7HDv3j389NNPaN++vVLnqlKlSnB2dsasWbPw/Plz1KpVC3/99RfWrFmD7t27w8bG5rPHd3Nzk09BPXLkSFhbW+Py5cuIiIiAi4vLV91uSuJp1aoVVq1ahZUrV6J+/fo4efKkwhTWOalUqRJ69Oghnzra3t4ex44dk48zl/WmPWHCBAwfPhwTJ05E165dIZVKERUVhbi4OIwYMULpGHPLUVkaNmyI6tWr46+//sKiRYtUOBs5GzlyJHr37g0fHx/06dMHJUqUwI4dO/Dbb78hPDwcgPquvaFDhyI8PBwGBgZwcnLCX3/9he3btwNQrsH4OVnfhB07dgwtWrTI9k2ap6cntm3bBl9fX4wZMwaVKlXCiRMnsGfPHvj6+sofry5NmjTBrFmzEBISghYtWuDNmzeIjIxE1apVYW9vD11d3S/m9VKlSmH48OHyfNi6dWs8fPgQS5cuhY2NDTw9PT97bDMzMwwdOhRLly5FcnIynJ2d8ezZMyxduhQSiURhnIqC7unTpxgxYgQGDBiAJ0+eYMmSJXBxcYGzs3O2aeYBoEWLFiq9ByiT/xs0aACZTIZRo0Zh+PDhMDIykn9z3K5dO1hZWcHS0hLz5s1DcnIyKleujKtXryI6Oho+Pj7ZjqmlpYUJEyZg6tSpGD9+PDw8PJCYmIjIyEiULFkyx56Ln+Pg4IDt27cjODgYrVq1wvPnz7Fu3Tq8fPlS/g2zKrS1tTF69GjMmTMHs2fPRtu2bfHvv/8iLCwMffr0kc8gN2TIEAwdOhT9+/dHRkYGVq9ejfT0dPmHEGU0adIEixYtwqhRo9C/f39oa2vjxx9/hJ6ennzMH1XaOlnX9qFDh1CvXj15AXrOnDno0aMH3rx5gy1btuDGjRsAPrT5snrsvHz5EtHR0Tneuu/r64s//vgDAwYMwPDhw6Gnp4ctW7bgwYMH2XrFqcOYMWPg5eWFMWPGoGfPnnj8+DGWLl0K4H89pOzs7FC+fHlERkbCxMQEWlpaWL169Rc/QDZt2hQuLi744Ycf8OrVK1hZWWHTpk1ISEiQ30qjbFtRGcq0ebt27YoZM2bg0aNH8hliQ0NDUbFixRx7OnxO48aNERUVhdKlS8PR0RHPnj3D+vXr4eTkBHNz81zfe21sbNC9e3dERkYiNTUVzs7OuH79uny6eVdX188e29bWVm3PozDJLU+6u7urpd3UtGlTrF+/Hv7+/ujatSsyMjKwdu1alCpV6rOFJFNTU1y6dAkXLlz47HicWfn+xx9/hLe39xfbJZ/mlqzeOu3bt8fcuXMRFxcHf39/pZ9TltyukU85ODhg+fLlWL16NerXr4/79+9j1apVSE9Pz9O1mZ/PiW2ir8OiVD6aPHkySpcuje3btyMqKgoVK1bEtGnT0LdvX5Ve7F+ira2NNWvWYPHixYiIiMC7d+9gb2+PtWvXygfRW7x4MSIjIzFixAiULFkS9evXx+bNm+Hl5YWYmJgcpxhXRnBwMObOnSv/tq9q1aoICAjAgQMH5IO6GRsbY8uWLViwYAECAwORmZmJevXqYfPmzfKeWwsXLkRkZCQ2b96MxMREVKtWDWFhYfIBg3v06IH//vsPP/30E3bs2AEnJycsXboUffr0+WJ8JiYmWL58ORYsWICxY8fCyMgINWvWxJYtWzBs2DDExMTA3d0dtWrVwubNm7F48WKMHz8eRkZGcHNzw6RJkxS+Daxfvz7MzMzQrl27PI/PAHxoJIaFhSEqKgovXryAhYUFevbsKR/sWZlztWrVKoSHh8sbVRUrVsT48eNzbeBnNd6WLl2KVatW4dWrVyhXrhy8vb2L7NS9xYGPjw8SEhIQFRWFjIwMtGzZEoGBgbk2fmbMmAFDQ0NERUUhOTkZTZs2xYgRI7Bs2TL5APkuLi5Yt24dIiMjMWbMGOjq6qJ27dpYv359toFtv0SZHJWlZcuWePHihdIDbyrD3t4eW7duRWhoKKZMmQJBEGBra4tly5ahdevWANR37fn4+EAmk2HHjh1Yt24d6tWrh0mTJiEoKEhh4oG8cnZ2RrNmzbB48WKcO3dOPqFEFgMDA3kOCw8PR3JyMqpXr47AwEC1dXH/WNZ0zj/++CO2bdsGfX19NG3aFJMnT4auri6A3PP66NGjUbp0aWzZsgW7du1CqVKl0KFDB4wbNy7XbynHjRuHMmXKYNu2bVi7di1KliyJpk2bYsKECQoDMxd0nTp1gqmpKcaNGwdDQ0N0794d48eP/+z2EolEpfcAZfJ/2bJlsXbtWixduhTTp0/H+/fvUaNGDURERMg/BEVGRmLJkiVYunQpEhMTUb58efj6+n52LAtPT08YGRlh1apVGDVqFIyNjeHq6ooJEyZkG8fmS7p3746HDx9iz5492LZtG8qVKwc3Nzf07dsXM2bMwO3bt7/4pcyX9OvXD4aGhli3bh12796NcuXKYfDgwfLnlPXhMDw8HBMmTICenh4aNWqEkJCQbLeZfIm9vT1WrlyJZcuWYcKECZBKpahTpw6ioqLkt/uq0tZp164d9u/fD39/f/Ts2ROzZ8/GzJkzsX79evzyyy8oXbo0nJ2dERkZiVGjRiE2NhZubm7w9PREdHQ0Ro0ahTFjxmQbPL9GjRrYtm0blixZgmnTpkEikcDBwUE+iLq6NWrUCBEREVi6dClGjhwJKysrzJgxQ94mAz68l4SHh2P+/PmYMGECSpcujYEDB+Lu3bu4d+/eZ/cdGRmJRYsWITw8HGlpaejYsSO+++47eQ85ZduKylDmvSQoKAirVq3Cjz/+iKdPn8LCwgIdO3bEuHHjFG4xzE3WZEZ79uzBsmXLYGJiAnd3d0ycOFF+vnJ77w0MDESVKlWwZ88erFu3DmXLloWXlxdGjRqV6xcp6noehYkyeVId7aYWLVpg0aJFiIqKkg9u3rBhQ2zatOmztw1///33WL58OYYNG5bjGJrAh9dEp06dsHHjRvkEGZ+TU24BPoyN1bRpU8THx+epx2sWZa6Rj/n4+CAxMRGbNm3CsmXLUL58eXTr1k3+fvj69Wulv5zIr+fENtHXkQhfc98WUTF0+fJlfPvtt9izZw/q1KkjdjhEKklKSsIff/wBV1dXhTEjQkJCsHfv3jx1MVcnQRDQpUsXODs7K/SgKiwyMzNx6NAhODs7K4zVtXXrVsybNw/nz59Xe48lKrzc3d3h5OSE4OBgsUMhEt3x48dhaWmJ2rVry5fdunULnTt3xvLly+VfIBCRuFJTU+Hm5gYfHx8MHjxY7HDUoig+p8KEPaUoR4IgZBtoMydaWlpqnS2mIDt//jzOnz+Pffv2oUmTJgoFKZ4vKmwMDAwQGBiImjVrYuDAgTA0NMTFixexefNmfP/99xqPJzk5GRs2bMCVK1fw77//Yvny5QrrpVJprmPfSSQS0b+Z1dHRwZo1a7Bx40aMGDECZmZmuHHjBpYuXQoPD49CUZBSZmy5gnCuib5EJpMpNdaItra22sf5pP/JS/vo9OnTOHz4MCZNmoRq1arh6dOnWLFiBapXrw4XFxcNRFtwKJOH2aYkTXv06BF++ukn+fh03377rcL6wth+KIrPqTBiUYpy9Ndff2HAgAG5bufr64vRo0drICLxJSYmYv369bCxsck2TSjPFxU2JUqUwIYNGxAWFgZ/f3+8f/8elStXhr+/P/r166fxePT19fHjjz9CJpMhMDAwW/fttm3b4tGjR1/ch5WVFU6cOJGfYSpl5cqVWLJkCWbPno03b96gQoUK8Pb2znHMnYLo414Kn+Pk5ITNmzdrIBoi1SxbtgyRkZG5brdp0yY4OztrIKLiKS/tIz8/P+jr62PFihV4/vw5SpUqBVdXV0ycODHHqd+LqocPHyrVK6x79+7sZUkapaWlhc2bN8PQ0BBLlizJdltYYWw/FMXnVBjx9j3KUXJy8hfvzc9StmxZ+dTyxRnPF1H+io+PV5ihLCd6enoqj41H/5M12+iXGBkZycfAISqInj17hufPn+e6XdYA15Q/2D7Ku/T0dIVZyT7HzMwMFStW1EBERMopiu2HovicCiIWpYiIiIiIiIiISON4IzIREREREREREWkci1JERERERERERKRxLEoREREREREREZHGFenZ9168eCt2CESkpDJlTHLfqAhhfiIqPJifiKggY44iooJKmfzEnlJERERERERERKRxLEoREREREREREZHGsShFREREREREREQax6IUERERERERERFpHItSRERERERERESkcSxKERERERERERGRxrEoRUREREREREREGseiFBERERERERERaRyLUkREREREREREpHEFoiiVkJCAtm3b4vz58/JlcXFx+Pbbb+Ho6Ah3d3fs2rVLxAiJqDhjjiKigor5iYgKKuYnIlKG6EWp2NhY9OrVC//995982evXrzF8+HB4eHjgwoULCAwMRFBQEC5fvixipERUHDFHEVFBxfxERAUV8xMRKUvUotRPP/2ESZMmYfz48QrLf/31V5QqVQr9+vWDjo4OmjZtii5dumDr1q0iRUpExRFzFBHlh+joaHh5ecHFxQWPHj1CeHg49u3bl6d9MD8RUUHF/EREeaEj5sFdXFzQpUsX6Ojo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ERFpHotSRERERBqio6ODxMTEbMvfv38vQjRERERE4mJRioiIiEhD3NzcMG/ePNy/f1++7MGDB5g/fz5cXV1FjIyIiIhI8zj7HhEREZGG+Pn5YfDgwejQoQNMTU0BAG/evEHt2rXh7+8vcnREREREmsWiFBEREZGGmJubY8+ePTh37hxu3rwJHR0d2NjYoGnTppBIJGKHR0RERKRRLEpRkZeQkICUlGSxw8izZ8+eKPxf2BgZGcPc3FzsMIgKNOYn8YiZo7S1teHi4gIXFxdkZGTgxo0bePfuHYyMjESJp6B7+fJFvo25ld+vZQMDA5QuXSZf9k1ERFQUsChFRVpCQgKC5s9EekaG2KGobPPmKLFDUImeri6mTpvDwhTRZzA/iUusHPXkyRNMnz4d48aNg52dHXr06IHbt2+jZMmS2LBhA2rWrKnReAq65ORkzJs3A4Ig5Otx8uu1rKWlhblzF8LY2Dhf9k9ERFTYsShFRVpKSjLSMzLQ384c5Qz5cteUZ+8ysSX+Qw8QFqWIcsb8JB4xc1RQUBDevn0Lc3NzHD16FI8ePcK2bduwe/duLFy4EFFRhbfQlx+MjY3xww9zC+3shAYGBixIERERfQFbwVQslDPUQSVjPbHDICLKhvmpePnzzz+xceNGVKxYEaGhoWjRogUaNGgAMzMzeHp6ih1egcTb34iIiIouLbEDICIiIiouMjIyULJkSQDAuXPn0KxZMwCATCaDjg6/KyQiIqLiha0fIiIiIg2pVasWdu3ahbJlyyIxMRFubm5IT0/HmjVrYG9vL3Z4RERERBrFohQRERGRhvj5+eH7779HYmIihg0bBktLS8yePRu//fYb1q1bJ3Z4RERERBrFohQRERGRhjg4OODMmTN4+/YtTE1NAQADBw7E2LFjYWZmJt/u9OnTaNy4MUqUKCFWqERERET5jmNKEREREWmQRCKRF6QAoFq1agoFKQAYM2YMnj9/runQiIiIiDSKRSkiIiKiAkYQBLFDICIiIsp3LEoREREREREREZHGsShFREREREREREQax6IUERERERERERFpHItSRERERERERESkcSxKERERERERERUgMpkMaWlpkMlkYodClK90xA6AiIiIiIiIiIBHjx7g5MnjuHQpBhkZGdDV1YWjYyO0bNkaVlaVxA6PSO1YlCIiIiIqYDw9PWFsbCx2GERE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7du3XHdLcKvVqm3bNis6upl8fHxcXCEAoCysWrVK48aN03333ec41rx5c02aNEnr1q0zsDIAAADXoykFuIk2bdrp/PlspaYuLdKYslqtSk1dqgsXzishIdGgCgEApXX69GnVqVOnyPGwsDDl5OQYUBEAAIBxWFMKcBPh4bWVlDRAKSmLdejQAbVo0UohIdWUlXVW27Zt1oUL55WUNEDh4bWNLhUAUEIRERHaunWrevbsWej4p59+qvr16xtUFQAAgDFoSgFuJCamuWrUCNPGjev0xRerZbFYZDabFR3dTAkJiTSkAMDDDR06VMOHD9eBAwdktVr10Ucf6ciRI/r88881e/Zso8sDAABwKR/7Lby3fGZmrtElACVms9kcu+x5wxpSoaHeteMU+QR4jrLOp6+++koLFizQDz/8IJvNpgYNGmjw4MHq2LFjmV6npMgnwLNwDwXAXRUnn5gpBbgpk8nk2JkJAOC5evXqpblz5yo0NFQrVqzQgw8+qNatWxtdFgAAgOFY6BwAAMCJfvjhB8ci5i+++KIuXrxocEUAAADugZlSAAAATnTXXXepX79+uv3222W32zVkyBCZzeZrnrt06VIXVwcAAGAcmlIAAABO9Oqrr2rp0qXKycnR119/rRo1aqh8+fJGlwUAAGA4mlIAAABOFB4erhdffFGSdOLECU2cOFGBgYEGVwUAAGA8mlIAAAAu8n//93+SpE2bNmn//v3y8/NTgwYNFBcXJ19fX4OrAwAAcC2aUgAAAC6Sk5OjQYMGae/evQoMDJTNZtPFixfVuHFjLV68mBlUAADAq7D7HgAAgItMmzZN+fn5WrlypXbu3Km0tDStWLFCV65c0axZs4wuDwAAwKVoSgEAALjI2rVrNX78eEVGRjqONWrUSOPGjdOXX35pYGUAAACuR1MKAADARQoKClS1atUix0NCQnTx4kUDKgIAADAOTSkAAAAXady4sVJTU4scX758ue68804DKgIAADAOC50DAAC4yPDhw/XEE0/o22+/VXR0tHx8fJSWlqZ9+/bp7bffNro8AAAAl2KmFAAAgItERUVp2bJlqlWrljZv3qyvvvpKtWrVUkpKilq0aGF0eQAAAC7FTCkAAAAXmTRpkvr166fZs2cbXQoAAIDhmCkFAADgIitWrJDJxO0XAACARFMKcFs2m02XL1+WzWYzuhQAKKSg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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(12,4))\n", + "for i, col in enumerate(score_columns):\n", + " plt.subplot(1, len(score_columns), i+1)\n", + " sns.boxplot(x=with_LLM_response_df['has_error'], y=with_LLM_response_df[col], palette='Set2')\n", + " plt.xticks([0,1], ['No Error', 'With Error'])\n", + " plt.title(col)\n", + " plt.xlabel(\"Error Present\")\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.3 Are there patterns by message type?" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
clinical_accuracy_scoreurgency_recognition_scoreprofessional_consultation_guidance_scoresensitivity_clarity_score
type
Administrative Request7.757.887.009.12
Appointment Request8.148.867.009.43
Clinical Advice Request7.757.887.589.25
General Inquiry10.0010.0010.0010.00
Medication Request7.767.957.009.38
Referral Request6.856.856.088.23
Test Result Inquiry7.568.837.789.61
\n", + "
" + ], + "text/plain": [ + " clinical_accuracy_score urgency_recognition_score \\\n", + "type \n", + "Administrative Request 7.75 7.88 \n", + "Appointment Request 8.14 8.86 \n", + "Clinical Advice Request 7.75 7.88 \n", + "General Inquiry 10.00 10.00 \n", + "Medication Request 7.76 7.95 \n", + "Referral Request 6.85 6.85 \n", + "Test Result Inquiry 7.56 8.83 \n", + "\n", + " professional_consultation_guidance_score \\\n", + "type \n", + "Administrative Request 7.00 \n", + "Appointment Request 7.00 \n", + "Clinical Advice Request 7.58 \n", + "General Inquiry 10.00 \n", + "Medication Request 7.00 \n", + "Referral Request 6.08 \n", + "Test Result Inquiry 7.78 \n", + "\n", + " sensitivity_clarity_score \n", + "type \n", + "Administrative Request 9.12 \n", + "Appointment Request 9.43 \n", + "Clinical Advice Request 9.25 \n", + "General Inquiry 10.00 \n", + "Medication Request 9.38 \n", + "Referral Request 8.23 \n", + "Test Result Inquiry 9.61 " + ] + }, + "execution_count": 197, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_scores_by_type = with_LLM_response_df.groupby('type')[score_columns].mean().round(2)\n", + "mean_scores_by_type\n" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "type\n", + "Clinical Advice Request 24\n", + "Medication Request 21\n", + "Test Result Inquiry 18\n", + "Referral Request 13\n", + "Administrative Request 8\n", + "Appointment Request 7\n", + "General Inquiry 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 267, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with_LLM_response_df[\"type\"].value_counts()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9kAAAJOCAYAAACjoMSlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VGXawOHfmZ7ee0JoSYCEHnoTEFEUK+7ay9o+RVdd17auXVddxYINRcReVhQbiEoR6b0mBAIhkN57Mv18fwwMhIQQIDAJPPd1cYWc8s5z3jlzMs85b1FUVVURQgghhBBCCCHESdN4OgAhhBBCCCGEEOJMIUm2EEIIIYQQQgjRRiTJFkIIIYQQQggh2ogk2UIIIYQQQgghRBuRJFsIIYQQQgghhGgjkmQLIYQQQgghhBBtRJJsIYQQQgghhBCijUiSLYQQQgghhBBCtBFJsoUQQgghhBBCiDYiSbYQQnQQ119/PUlJSVx11VVH3eb+++8nKSmJRx555DRG1rI333yTpKSkFrdZs2YNSUlJrFmzpsXtkpKSSEpK4tVXX212vdPpZNSoUSQlJfHdd98dM6Yj//Xr148LLriA6dOnY7fbj31wZ7HvvvuOq666igEDBtC3b18uvPBCXnvtNWpraz0d2kkbN27cKfkMHTzvevfufdR6+vLLL0lKSmLcuHFt/vrt2SOPPNLsZ/Lwf2dbnQghOi6dpwMQQgjRehqNhs2bN1NQUEBUVFSjdQ0NDfzxxx+eCew00mg0LFiwgH/84x9N1q1bt47i4uJWl/X11183+r2iooKff/6Zt99+G5vNxgMPPHDS8Z6J3nrrLWbMmMFNN93EnXfeiV6vZ/v27XzwwQcsX76cr776Cr1e7+kw2y273c6iRYu45JJLmqybP3++ByLyvLvuuqvRDcR33nmH9PR03nrrLfcyg8HgidCEEOK4SZIthBAdSK9evdi9ezcLFizg5ptvbrRu8eLFGI1G/Pz8PBTd6TFgwADWr19PWloaycnJjdbNmzePnj17smPHjlaV1a9fvybLxo4dS25uLnPmzJEkuxlWq5WZM2fyt7/9rdGNjuHDh9O1a1emTp3KwoULueCCCzwYZfs2YMAAfvnllyZJdlFREevXr6dnz55UV1d7KDrP6NSpE506dXL/HhwcjMFgaPYzKoQQ7Z00FxdCiA7E29ubMWPG8MsvvzRZN3/+fM4//3x0usb3T51OJ++//z4TJkwgJSWFiRMn8umnnzbaxuFw8P7773PRRRfRp08f+vXrx1VXXcWqVavc27z55ptMmDCBP/74g8mTJ7vLmjt37qk52KMYPHgwoaGhTerAbrfz22+/ceGFF570a/j6+jZZtn79eq677jr69u3L4MGDefjhhykvL3evdzqdvPHGG4wbN46UlBTGjRvHq6++is1mAyA3N5ekpCTmzZvH//3f/9G3b1/GjBnDm2++idPpdJfjcDj4/PPPmTx5Mn369OGcc87hlVdewWKxuLd55JFHuOmmm/j222+ZOHEiKSkpXHzxxSxdurTV8QBYLBb++9//MmbMGFJSUpg8efIxn6TW1tZiNptRVbXJujFjxnD//fcTFxfnXlZXV8cLL7zA6NGj6devH5dffjmLFy8+7uO98cYbefLJJ0lNTeWyyy7Dbre36tzOycnhzjvvZMiQIfTt25e//vWvjerpaGw2G8899xyDBg1i0KBBjd7vP/74g6SkJJYvX95on82bN5OUlMTatWtbLHvSpEmsWLGCmpqaRssXLFhAly5d6NGjR5N9Fi5cyOWXX07v3r0ZMWIEzz33HPX19e71FouFp59+mtGjR5OSksL555/Phx9+2KiMTz/9lPPPP5/evXszatQonnrqqUbN1svLy3n66acZO3YsKSkpDB48mKlTp5Kbm9uonFmzZjF+/Hj69OnDVVddxeLFi5t099i1axd33HEHAwYMYMCAAUydOpWcnJwW6+VYMjMzSUpKatICpaioiJ49ezJ37txWf84AvvnmGy688EJSUlI455xzePPNN6WbiBCiTUiSLYQQHcykSZPYsmUL+fn57mW1tbX8+eefXHTRRU22f+qpp5g+fToXX3wxM2bM4Pzzz+c///kPb7/9tnubV155hbfffpu//vWvfPDBBzzzzDNUVFRw7733NvoiX1JSwjPPPMMNN9zA+++/T2xsLI888gh79uw5tQd9GI1Gw8SJE1mwYEGj5atWrcJisTB27NhWl2W3293/rFYrxcXFzJ49mxUrVnDppZe6t1u3bh033XQTJpOJ119/nX/961+sXbuWG264AbPZDMDMmTP5/PPPmTp1Kh9++CFXX301H3zwATNmzGj0mk899RS+vr68+eabXHrppbzzzjv897//da9/4okn+M9//sO4ceN49913ufbaa/nss8+46667GiW227dvZ9asWfz973/n7bffRqfT8fe//52qqqpWxaOqKlOnTuWrr77i5ptv5t1336V///7cf//9fP/990ets+DgYPr27cusWbN4+OGHWbhwoTv51Ov1/N///R8pKSmAK9G/9dZbmTt3LrfffjvvvvsuiYmJ3H333e6ErLXHu379evbt28ebb77J1KlT0el0xzy3nU4nd9xxB/X19fz3v//lnXfeITAwkLvuuot9+/a1eG788ssvbN++nRdffJGHHnqIP/74g7vuuguAUaNGERERwQ8//NBon7lz5xIXF8egQYNaLHvixIk4HA4WLVrUaPn8+fObvUn0008/MXXqVLp27crbb7/N3XffzY8//tiojp5//nmWLl3Kww8/7E6CX3rpJffYBPPmzeOll17i2muvZdasWUydOpUffviB5557DnCdD3fccQcrVqzggQceYNasWdx1112sXLmSJ554wh3LW2+9xSuvvMIFF1zAO++8Q9++fbn//vsbxbt3716uuuoqysrKePHFF3n++efJycnh6quvpqysrMW6aUlCQgJ9+/ZtUu8//PADJpOJiRMnupcd63P23nvv8fjjjzNs2DBmzJjBtddey8yZMxsdqxBCnDBVCCFEh3Ddddep1113ndrQ0KD269dPnTVrlnvdd999p44ePVp1Op3q2LFj1YcfflhVVVXNyspSk5KS1Pfee69RWa+99prau3dvtby8XFVVVf3HP/6hzp49u9E2v/76q5qYmKhu3LhRVVVVnT59upqYmKiuXLnSvU1eXp6amJjYKJYjHdyvJatXr1YTExPV1atXt7hdYmKiOn36dHXdunVqYmKium3bNve6Rx55RH3ggQfUnJwcNTExUf3222+PGVNz/8455xz1rbfeUq1Wq3v7v/71r+pFF12k2u1297KsrCy1Z8+e6meffaaqqqr+7W9/U2+66aZGr/Ppp5+qc+fOVVVVdcd1ww03NNrmueeeU5OTk9Wqqio1MzNTTUxMVN95551G23z//fdqYmKi+scff6iqqqoPP/ywmpiYqO7bt8+9zdq1a9XExER1wYIFrYpn+fLlamJiojpv3rxG2/zzn/9UR4wYodpstqPWX0FBgXrddde56ywpKUm96KKL1Ndff12trKx0b7dkyRI1MTFRXbhwoXuZ0+lUr7rqKvX1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igpCQkLcy6644goeffRR9u7dy4oVK3jhhReOWt6RgoKCGDp0KAsWLKB///7s2LGDd99996jH+dBDDzF48OAm6w/WocFg4M477+TOO+8kPz+fJUuW8M477/DAAw+4W3xcdNFFXHTRRdTU1LB8+XJmzpzJgw8+SGpqKjk5OTz88MNcd9113HLLLe6WEf/973/dLV4OLisvL6dr167uGA4fABBc7/vw4cObzIAANBmY8URcccUVzJ07l61bt/Lrr79y/fXXN9mmpc/ZwUH1XnnllSYtB6DpTQMhhDhe0lxcCCE6IIPBwPjx4/ntt9/45Zdfjvo07+DT2IqKCnr37u3+V1lZyeuvv05lZSVZWVlUVlZyww03kJCQ4E6G/vzzT4AmI/K2F/369SMmJoaffvqJxYsXt8mo4lFRUdx5553k5OTw/vvvA64nZ7169SIrK6tRHSYkJPDWW2+5mzRfddVV7kGkQkJCuPzyy7n22mupqalpNILz4SNrA/z66694eXm5Ry0H10BXh5s3bx4Oh4OBAwe2+liOFc/gwYOpr69HVdVGx5WZmcnbb7991FGWu3fvTkVFRZNRvMGViObk5LibYqempmKz2RqN5q2qKo899hjvvvvuSR1va87tTZs2MXz4cLZu3YqiKPTs2ZP777+fxMRECgsLW6y/lStXNqqDX3/9FbvdzpAhQ9zLJk6ciLe3N0888QQmk4nzzjuvxTKPdHCU8W+++YbU1FR3Enu4rl27EhISQm5ubqPjjIyMZNq0aaSnp2M2m5k4caJ7NPHo6GiuvfZaLrzwQvdx3nfffdx9992AKwm+4IILuOuuu3A4HBQXF7Np0yacTid///vf3XE4HA73DSKn00mPHj3w8/Pjt99+axTjkTfjBg8ezO7du+nZs6c73pSUFD766CN38/qTMWjQIDp37szLL79MRUVFs030W/qc9e3bF71eT1FRUaM61ev1TJs2rclo6kIIcbzkSbYQQnRQkyZN4o477kCj0fDvf/+72W0SExO5+OKLefzxx8nLyyMlJYW9e/fy2muvERsbS+fOnamvr8fX15cZM2ag0+nQ6XT8+uuvzJkzBzjUx/dkffTRR02W+fr6MmXKFPfvv/76a7NzXE+ZMqXZabXOP/98PvnkEwIDA5t9yncibrrpJubMmcPMmTO59NJLiYuL4x//+Ae33347DzzwABdffDEOh4MPP/yQLVu2cOeddwKuL/4ffvghoaGh9O/fn6KiImbPns3gwYMJDg5291tfsGABoaGhjBkzhrVr1/L5559z//334+3tTffu3bnssst46623MJvNDBkyhB07dvDWW28xZMgQRo0a1erjOFY8Y8aMYdCgQdx1113cdddddOvWja1bt/Lmm28ycuTIozbrHTFiBBdddBGvvvoqO3fuZOLEiQQHB1NYWMhXX31FYWEhr7/+OgDnnHMO/fv359FHH+Xee+8lPj6en376iV27dvH444+f1PG25ty22+2YTCYeeugh7rnnHkJDQ1m5ciU7duzghhtuaLH+SktLueeee7j++uvJzs7m1VdfZcSIEY2a/nt5eXHhhRfy9ddf85e//KVR0+rWmDBhAk8++SQff/wxjz32WLPbaLVa7r//fp544gm0Wi1jx46lurqad955h6KiIpKTkzGZTCQnJ/PWW2+h1+tJSkpi7969zJ071z3i9tChQ3nyySd56aWXGD16NNXV1bz11lt07tyZHj16uM/PZ555hiuuuILq6mo+++wzMjIyANzXiVtvvZXp06fj5eXF4MGDWbt2LV9++SVwqPvIXXfdxVVXXcUdd9zB1VdfjdFo5Ouvv2bhwoVMnz79uOroaK644gqmTZvGiBEjiIqKarK+pc+Zt7c3t956K2+88Qa1tbUMGTKEoqIi3njjDRRFaXYKNSGEOB6SZAshRAc1fPhw/P39iYqKolu3bkfd7oUXXuC9995zJ0AhISFMmjSJ++67D61Wi5+fn3t6m3vvvRcfHx969uzJZ599xm233cb69evdAwKdjOaa0sbExDRKsj///PNm9z333HObTbInTZrErFmzuOCCC47a7/d4GQwG/vWvf3HHHXfwwgsv8M477zBy5EhmzZrFW2+9xd///nf0ej3JycnMnj3bPRDcvffei8Fg4Ntvv+Xtt9/Gz8+PcePG8cADDzQq/+CAX19//TVRUVE88cQTXH311e71zz//PPHx8Xz77bfMmjWL8PBwrr/+eqZOnXpcx3iseDQaDe+//z5vvPEG7733HmVlZURERHDTTTcxderUFst++eWXGTJkCD/88AP//ve/qa+vJzg4mBEjRvDCCy+458nWarXMnDmTadOm8eabb1JfX0+PHj344IMP6N+//0kf77HOba1Wy4cffsi0adN4/vnnqa6u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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Make sure you have mean_scores_by_type computed:\n", + "# mean_scores_by_type = with_LLM_response_df.groupby('type')[score_columns].mean().round(2)\n", + "\n", + "plt.figure(figsize=(10,6))\n", + "\n", + "for col in mean_scores_by_type.columns:\n", + " plt.plot(mean_scores_by_type.index, mean_scores_by_type[col], marker='o', label=col)\n", + "\n", + "plt.xticks(rotation=30, ha='right')\n", + "plt.xlabel('Message Type')\n", + "plt.ylabel('Mean Score')\n", + "plt.title('Mean LLM Response Scores by Message Type')\n", + "plt.legend(title='Score Type')\n", + "plt.grid(axis='y', linestyle='--', alpha=0.7)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3.1 “Does the LLM make mistakes that physicians wouldn’t?”" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LLM made 94 errors (78.3%) not found in physician responses.\n" + ] + } + ], + "source": [ + "unique_llm_error_count = sum(\n", + " response == 'No'\n", + " for row in with_LLM_response_df[\"error_in_physician_response\"]\n", + " for response in row\n", + ")\n", + "total_errors = with_LLM_response_df[\"num_errors\"].sum()\n", + "unique_llm_error_pct = unique_llm_error_count / total_errors * 100\n", + "print(f\"LLM made {unique_llm_error_count} errors ({unique_llm_error_pct:.1f}%) not found in physician responses.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of responses with shared errors: 19\n" + ] + } + ], + "source": [ + "with_LLM_response_df['shared_error'] = with_LLM_response_df[\"error_in_physician_response\"].apply(lambda lst: 'Yes' in lst)\n", + "shared_errors_df = with_LLM_response_df[with_LLM_response_df['shared_error'] == True]\n", + "print(f\"Number of responses with shared errors: {len(shared_errors_df)}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shared error type counts:\n", + " Non-Clinical Error 10\n", + "Clinical Error 18\n", + "dtype: int64\n", + "\n", + "Shared severity distribution:\n", + " 1 4\n", + "2 15\n", + "3 8\n", + "4 1\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "from collections import Counter\n", + "import pandas as pd\n", + "\n", + "# Flatten error_types and error_severities for shared errors\n", + "shared_error_types = [et for row in shared_errors_df['error_types'] for et in row]\n", + "shared_severities = [sev for row in shared_errors_df['error_severities'] for sev in row]\n", + "\n", + "# Counts by error type and severity\n", + "error_type_counts = pd.Series(Counter(shared_error_types))\n", + "severity_counts = pd.Series(Counter(shared_severities)).sort_index()\n", + "\n", + "print(\"Shared error type counts:\\n\", error_type_counts)\n", + "print(\"\\nShared severity distribution:\\n\", severity_counts)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh0AAAHTCAYAAACDaqq+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQ95JREFUeJzt3Xt8z/X///H7eyd2cBqLSOScUyZzyGnknFNMJD4qh8g5x1KkCCE55LyUopQsFOUTJfXR2KjmFCM5lZbNbDO2eb9/f/Tz/nrbe/OO9Xpt792ul8suvJ+v5/v1fry3vd67v5/P5/v1sthsNpsAAAD+ZR5mFwAAAPIHQgcAADAEoQMAABiC0AEAAAxB6AAAAIYgdAAAAEMQOgAAgCEIHQAAwBCEDgAAYAhCBzKZOHGiqlatmuVXgwYNzC4x2/qufy1cuNDsMl02ePBgffzxx5KkhQsXqmrVqtn2j4yMVNWqVRUZGZltv+vfizfeeMPpdqvVqqZNm6pq1arasGHDLev85ptv1LlzZwUHB6tHjx766aefbnkfSerbt2+mn0/NmjUVGhqqqVOnKjEx0aFv3759XdrvnWjZsqUmTpz4r/W/U9HR0Ro8eLAaNGhg/149//zzOnXqlKl1/RO3Og6v/x5n9/X1118bWLFrHn/8cW3dutXsMvIkL7MLQO4UFBSkRYsWOd3m5WX+r826descbvfs2VNhYWHq0aOHva1UqVJGl3VbNmzYoN9//13du3f/V/bv4eGhL774Qs8991ymbXv37tWff/7p0n5++eUXDRs2TN26ddPEiRO1cOFCPfPMM9q+fbv8/f1vef/q1atrypQp9tvp6ek6ePCg3njjDR0+fFgffPCBLBaL60/sDi1atEgBAQH/Wv87sXv3bg0YMEAPP/ywpk2bpsKFC+vUqVN6++231aNHD3388ce69957DanFCJMnT1aNGjWcbqtQoYLB1dzapEmTNGjQINWvX1/Fixc3u5w8xfy/HsiVfHx8VKdOHbPLyJKz2kqVKpWra3bm6tWrmjt3riZNmiQPj39n4LFu3bqKiorSwYMHM72wf/7557r//vt1+PDhW+7n+++/V3p6usaPH6+AgAClpaXpmWee0a+//qqaNWve8v4BAQGZfj4hISFKSUnRggUL9NNPPxn686tevfq/2v9OLF26VLVq1dKCBQvsbQ0aNFDz5s3VunVrrVq1yiHA5XWVKlXKU8duzZo1VaNGDS1ZskQvvvii2eXkKUyv4I707dtXY8eO1YgRI1S3bl0NGjRIZ86cUdWqVbVq1Sq1b99e9evXtw/dx8TEqH///mrQoIHq1q2rwYMH69ixY/b9XR9u/fDDD9WiRQs99NBD+u67726rtlmzZql27dpKSkpyaF++fLmCg4N1+fJlLVy4UC1bttTXX3+tdu3a6YEHHlCPHj20e/duh/tcvHhRkydP1kMPPaRatWrpsccey9Tnf//7n3r27Kng4GCFhITo2Wef1YkTJ7Ktcf369UpNTVXLli1v6zm6on79+ipRokSm4eCMjAxt27ZNjzzyiEv7uf6Oc9u2bZL+/lkVLVpU99133x3Vdz2wnDt3zt5ms9m0YsUKhYaGqnbt2urZs6diYmIkSceOHVPVqlUzjXadP39e999/vyIiIiRJW7ZsUefOnVW7dm01bNhQY8eOdRjVuXlaIiUlRTNmzFCzZs1Up04ddevWTTt27Miy/5kzZzR+/Hg1adJENWrUUKNGjTR+/HglJCQ43GfBggWaNWuWHnroIdWuXVv9+/fXr7/+mu335K+//nLaftddd+nFF19U48aNHdrT09P1+uuvq3HjxqpTp46efvpp/fbbbw59Pv74Y3Xr1k116tRR7dq11aVLF23ZssW+fcOGDapevbo+/vhjNWnSRM2aNbMfm1999ZW6deumWrVqqXHjxpo2bZouX77ssP89e/aoZ8+eeuCBB9S2bVv973//y/Y5/lNZ1efsNUiSkpKSNGPGDLVq1Uq1atVSx44dtX79eod9tmzZUq+99pr69eununXravLkyZKk9957T+3atVOtWrXUtGlTvfzyy0pOTna4b+fOnbV+/XrFx8fn6PN0d4QOZCkjI8Pp180XJt66dau8vb311ltv6T//+Y+9fd68eerfv7+mTZumhg0b6ocfftDjjz8uq9Wq6dOna9q0afr999/Vq1cvHT9+3GGf8+bN04QJEzRhwoTbfgcUFhamq1ev6osvvnBo//TTT9WuXTv5+flJkuLj4zVhwgT17t1b8+fPl6+vrwYOHKgDBw5I+ns0ol+/ftq+fbtGjx6tRYsWqVSpUhowYIA9eJw+fVpDhgyxv/uZNm2aTpw4oUGDBslqtWZZ46ZNm9SiRQsVLFjwtp6jKzw8PNS2bdtM34fdu3fr6tWratGihUv7CQ0NVfPmzfXKK6/oueee04YNG7RgwQKXplayc/0PcNmyZe1t0dHR+u9//6uXXnpJs2bN0vnz5zV48GBlZGSocuXKeuCBB7Rx40aH/WzcuFEFCxZU27ZtFR0drbFjx6pNmzZasWKFnn/+ef3www8aM2aM0xqsVqsGDBigiIgIDRo0SEuWLFGVKlU0bNgwp+tmUlNT9Z///EfHjx/XlClTFB4erj59+uizzz7LtH5m9erVOnHihGbMmKFp06bpwIEDt1yDERoaqv3796tv375av369Tp8+bd/Wo0cPtWrVyqH/li1bdOzYMc2cOVOTJ09WTEyMRo8ebd++Zs0aTZ48WQ8//LCWLVum2bNny9vbW+PGjXMIe9euXdPSpUs1bdo0jRo1SpUqVdLmzZs1dOhQVahQQW+99ZaGDRumTZs26dlnn7W/Fhw8eFBPP/20AgICNH/+fPXr18/pdF5WrFar09eaa9euOfRzVp+U+TXoypUr6t27tzZt2qSnn35aixcv1oMPPqhJkyZp6dKlDvtcs2aNfe1Jly5d9Pnnn2vWrFl64oknFB4erqFDh2rjxo2aNm2aw/0efvhhXbt2Tf/9739dfp5gegVZOHv2bJZzrCNHjtSzzz5rv+3h4aFXX33V/kf8zJkzkqQ2bdooLCzM4X5ly5bVypUr5enpKUlq0qSJWrdurYULF+rNN9+09+3Vq5fatWt3R8+hYsWKCg4O1saNG+1rPX7++WcdP35cr7zyir1famqqXn75ZXXt2lWS1LBhQ7Vq1UrLly/XggULtHHjRh05ckQfffSRHnjgAUlSs2bN1LdvX82ZM0effPKJfv75Z125ckXPPPOMSpYsKUm6++67tX37dl2+fNnpWoDk5GTFxMSoffv2d/Q8XdGhQwetWbNGBw4csI8sbNmyRQ8//LDLgScuLk5+fn5KTU3V559/rtWrV/+jRcU2m00ZGRn224mJidqzZ4+WLFmiOnXqOEzR+Pj4aPny5SpatKikv79XL774omJjY1WtWjV1795dkydP1unTp+1h5dNPP1X79u3l5+en6OhoFShQQAMHDlSBAgUkSUWLFlVMTIxsNlumtSPffvut9u3bp8WLF+vhhx+W9PfvwW+//aYffvgh0/M8efKkSpUqpZkzZ9rXVjRs2FAxMTHas2ePQ9/ChQtr8eLF9t/5U6dOaeHChUpISFCxYsWcfq9GjhyppKQkffLJJ/b9lSxZUqGhoerXr58qVqzo0L9kyZJavHixvL29JUm//fabli5dquTkZAUEBOj06dN6+umnNXToUPt97rnnHnXr1k379u1T6dKl7e2DBw9WaGio/Wc2Z84cNW3aVHPmzLH3KV++vJ588knt3LlToaGhWrZsmQIDA7VkyRL5+PjYv983Bp/sPPnkk07b77333kx/1G+s77qbX4PWrl2ro0ePau3atXrwwQclSU2bNlVGRoYWL16sXr162X+37rrrLk2cONE+vTl58mSVKVNGTzzxhDw8PFS/fn35+fk5jGBJkp+fnypWrKjdu3erZ8+eLj1PEDqQhaCgIC1ZssTptut/VK+755577Af7japUqWL//+XLlxUTE6OhQ4faX3ylv1+QW7RooZ07dzrc91af3nBV9+7d9dJLL+nMmTO65557tGHDBt17772qV6+evY+np6fDFEPBggXVrFkze027d+9WUFCQatSo4fBHs0WLFnr99deVmJioBx54QAUKFFBYWJg6dOig5s2bq169eqpdu3aWtf3++++6du2a7rnnnhx5rtl58MEHVbJkSW3dulU1a9ZUWlqavvrqK82ePdul+584cUL9+vVT8eLFtXDhQk2aNEmTJ0/Wxx9/rKNHjyomJkZhYWEqVKhQlvvYu3dvpiDr4eGhRo0a6dVXX3UIApUqVbL/UZBk/x5dnyp75JFHNGPGDG3cuFHDhg3LFCZDQkI0b948derUSe3bt1ezZs3UpEkTNW/e3GltUVFR8vb2dhj1sVgs+uCDD5z2v//++7V27VpZrVadPn1aJ0+e1LFjx3TixAmH3xFJqlWrlsPv/PUFzqmpqVmGDh8fH73yyisaPny4du7cqR9++EGRkZFat26dNmzYoLlz56pt27b2/rVr17YHDun/Ro0uXbqkgIAA+8hKUlKSTp48qZMnT9pH6dLT0x0e+8bj9sSJE/rjjz/0zDPPODyvkJAQBQQE6Pvvv1doaKiio6MVGhpqDxzS3286bnze2Zk6darTNznXA2NW9V1382vQnj17VKZMGXvguO76lMhPP/1k/12oWLGiw3qqhg0bat26derWrZvatGmj0NBQderUyeki5zJlytjfZME1hA445ePjo1q1arnUt0SJErdsT0pKks1mc9q3RIkSmdZd5NSK8A4dOui1117Tpk2bNGDAAG3dulX9+vVz6BMYGOjwgn398a9/jPPixYuKi4vLcuQnLi5OlSpV0vvvv6/ly5fro48+0jvvvKPChQurd+/eGjlypNNFotefs7PAltMsFovatWunL774QuPGjdOuXbvk4eGhxo0b6/z587e8/7Rp0+Tn56f3339fAQEBCggI0MCBAzV69Gh5e3srKipKTzzxRLb7qFGjhqZOnWqvp0CBArr77rudjgLd/D25/v27PlUVEBCgdu3aadOmTRo2bJgiIiJUrlw5e5gMDg7W8uXL9c477yg8PFxLly5VUFCQBg4cmOnnL/39My5atOg/Wsy7atUqLVu2TAkJCSpRooRq1KghX1/fTL/Lvr6+2T6X7AQFBSksLMw+YhgZGamxY8dq6tSpat26tX1ft/p+nTp1SpMnT9YPP/wgLy8vVahQwR7sb54uvfHYu3jxoqS/Q8H1n92Nrq+RSUxMVGBgoMM2Ly+vLEPVze677z6XX2+cvTbc/LqSmJiY5WuN9HcYy+q+HTp0kNVq1dq1a7Vo0SLNnz9fZcqU0ZgxYzKtf3L280b2CB0wRKFChWSxWJwukIuLi3N4V5uT/P391a5dO23dulX333+/Ll26ZJ9Gue7ixYuZhtz/+usv+4tboUKFVL58eYfh5Rtdfxdeu3ZtLVq0SGlpaYqOjta6deu0dOlSVa1aVR06dMh0v+svyDe+AP6bOnTooHfffVcxMTHasmWL2rRpkylsZWX//v3q1auXPSA89NBDev755/Xqq69Kkp5++mmHd7nO+Pv7u/yHxRXdu3dXRESEfv75Z3355ZeZzu3RtGlTNW3aVKmpqfrhhx+0evVqvfbaa6pTp459muy6QoUK6eLFi7JarQ7B4/Dhw8rIyMhU9+bNmzVz5kyNGTNGYWFh9j+4I0eOtC94vV0//fSThgwZotmzZ2daMNqgQQP1799fM2bMUEJCgkvh3Gq1atCgQfL29tZHH32k6tWry8vLS7Gxsdq0aVO29y1cuLAkafz48apfv36m7UWKFJH091TKzce2zWZzOP+KkYoUKZJpIa3092uNpFuGoY4dO6pjx45KSkrSd999pxUrVmjcuHGqV6+ew0jvpUuXXA5W+BsLSWEIPz8/1axZU1u2bHFYHJaUlKRvvvkm0zBoTgoLC9PRo0f19ttvq2HDhg7z19Lfw8u7du2y375y5Yq+/fZbNWrUSNLfn/74/fffVbx4cdWqVcv+tXv3bvv6lHfeeUctW7ZUWlqafHx87FMG0t/TKM6ULFlSnp6e+uOPP/6lZ+6oTp06KlOmjDZv3qwdO3a4/KkV6e9gFRUV5fCu+NFHH7W/SzTjhTckJETly5fX7NmzlZCQ4BAmZ82apbCwMNlsNvn6+qpFixaaMGGCJOc/j3r16ik9Pd1hms9ms2nSpElOpxmjo6NVqFAhDRo0yB44UlJSFB0d7dIIRnbKly+v1NRUrV692um+fv31VwUFBWUaWchKQkKCfv31V4WFhal27dr28+x8++23krIfcalQoYKKFy+uM2fOOPzulypVSnPnztWhQ4ckSY0aNdK3336r1NRU+3137dqVaerGKCEhITp79qyio6Md2jdt2iRvb+9spz1HjRqlYcOGSfo7jLZv317PPvusrl27lumcNr///rvKlCmT80/AjTHSAafS0tL0448/Zrm9SpUq/3haYMyYMerfv78GDBigPn36KD09XcuXL1daWpr9IP83PPjgg6pQoYL27NmT5WjFCy+8oFGjRql48eIKDw/X5cuXNWTIEElSt27d9P777+upp57S4MGDdffdd+t///ufVqxYoT59+sjb21sNGzbUnDlzNHToUPXp00eenp768MMP5ePjk+WnQ/z8/FS3bl3t27fP6UK6d955J1NbQECAw+LcL7/80uk5NsLCwpxOW7Rr106rV69W0aJFnb5zzcqIESM0bNgwjR49Wt26dVN8fLyWLVsmi8Wili1b6o033pDFYtHAgQNd3mdO6N69u+bOnavGjRvr7rvvtrc3atRIq1at0sSJE9W5c2elp6dr5cqVKlq0qBo2bJhpP6GhoQoODtbzzz+vkSNHqly5ctq8ebOOHj2ql156KVP/2rVr64MPPtDMmTPVokUL/fnnnwoPD9dff/1lf/d/u4oUKaIJEyZoypQp6t27tx577DGVLVtWSUlJ+u9//6uIiAjNmTPH5ROpFS9eXGXKlNGaNWtUqlQpFS5cWN99953effddSXIICjfz9PTU6NGjNXnyZHl6eqpFixa6dOmSFi9erPPnz9unHIcOHaqvvvrKfnwnJCRo3rx5Lo+kxcbGOl2/If09/fFP1z1169ZNa9eu1bBhwzRixAiVLVtWO3bs0CeffKJhw4bZR3CcadiwoaZM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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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T3PkJDg4WDt37lS7du20cOFCHT161LmuRYsWeuqpp5zfT506VW+99Zbq1KmjKVOmqE2bNpo+fbrefvttSVKjRo1UoEABrVy50uVnrFixQmXLllVgYKCuXLmi9u3ba8OGDerdu7cmTpyo4sWLq3PnzilC6+TJkxUSEqIxY8boySefdFnXokULhYWFSZK++uor5/f/+9//FBUV5dzu6tWrWr16tV544QXZbLZUX4Nly5bpkUceUYkSJVJdn1Wefvppff/994qPj3cuO3TokPbu3aunn346XW08+OCDevnllzV58mT169dPH330kUaNGqVSpUrdUW1///23JLlM/zh+/LimTZumnj17avz48UpKSlL37t115swZFS5cWE899ZSWL1/u0pc3bNig2NhYPf/88zp69Khef/11VapUSZMnT9b777+vQ4cOqUuXLilOKpL1799f06ZNU1hYmKZOnar69etr0KBBWrJkSYptk5KS9Nprr2nz5s3q27evZs6cqW7dumnLli3OPpls7dq12rBhg4YMGaIxY8bo9OnT6tGjhxITE9N8TYKDg3Xs2DG1atVK8+fP18GDB53PNTQ0VC+88ILL9tHR0fr222/11ltvaeTIkTpx4oS6du3qPKH7/vvvFR4erkqVKumTTz7RhAkTVKpUKQ0bNky//PKLS1s377s///yzOnTooHz58mncuHEaNGiQtm/frldeecXZn06cOKG2bdvq/PnzGj16tHr27KnIyEidOHEized4I4fDkeqxKrXXKLVjy44dO3T48GFNmDBB4eHh8vDwUNeuXTVjxgyFhYVpypQpCg0N1bhx41J8anPz8S86OloRERFq3Lixpk+froEDB2rbtm0p5oFXq1ZNxYoV04oVK9L1HIFbYUoAcq1///1XlSpVSnVdz5491a1bN+f3drtdw4YNc34knTxC1LhxY2cwS35c6dKlNWPGDHl4eEiS6tWrp0aNGmnChAkaN26cc9tWrVopNDT0ljX27NlTsbGx+uabb7R9+3ZJ1z9qCw4OVvv27Z1zw2JjYzV58mS1bNlSQ4YMcf7cwoULa8iQIerYsaMqVKigkJAQrVq1yvnGEh8frw0bNujVV1+VJC1dulR79+7V119/rapVq0qSnnjiCbVr106RkZEuo2mBgYHO0RZJ2rNnj/P/xYsXV/HixSXJ+YZ57733qnjx4lqyZInq1Kkj6fqIVmxsbIpwcaNt27a55WPwJk2aaPTo0dq0aZNCQkIkXR9FqlatWroD58WLF2W325WYmKilS5dqxIgR6Q67yZIDVHJ7u3fv1ogRI1SqVCnVr1/fuc7hcGjSpEnOPpA3b1517NhRv/76q5588kk1b95cq1atUlRUlGrXri1JWrx4sYKCgnTfffdp5cqVio+P12uvvaZixYpJkkqUKKENGzbo8uXLKliwoEtd+/fv18qVKzV48GDnSVudOnV07NgxRUVF6fnnn3fZ/uTJk/L29lb//v1Vo0YNSdens/zzzz/68ssvUzznmTNnOn/mpUuX1L9/f/35559pjk63bt1ap06d0syZM/Xee+9Jknx9fVWvXj21a9fO2X+TeXl5adq0aSpcuLDztR0yZIgOHDigihUr6sCBA3r++ec1ePBg52OqVaumoKAg/fzzz6pevbpz+c377kcffaSyZctq6tSpzv2+atWqzhHoNm3aaPbs2UpISND06dNVpEgRSddH5F966aVUn9/NBg8e7FJbMg8PjxQXmaV2bElISNDQoUN1//33S7r+ycqWLVs0evRoNWvWTJL02GOPKV++fPr444/Vvn175xSPm49/06ZNU968efXqq68653wXLlxYu3fvVlJSkvPk02azqXLlyilOdoHMILAi1/L3909zblXyG3iy++67L9X5kw8++KDz/5cvX9bu3budoxfJfHx81KBBgxRXiwcEBNy2Ri8vL7333nvq3r27Nm3apG3btikqKkpfffWVFi1apI8++kghISHauXOn4uLi1LBhQ5fAk3wl+ebNm1WhQgU1a9ZMixYt0q5du1S1alVt3LhRly9fVtOmTSVdv8jL399flSpVcmmnQYMGGjVqlM6fP69ChQqleO7pYbfb9cILL+izzz7Tu+++K29vb2eASisQxsXF6cyZM265qKRkyZJ65JFHtHr1apfA2qZNm3Q9/vTp02rfvr3i4+M1fvx4jRw5UqNGjVKtWrUUHx+vjRs36rnnnkvRt26U1klU1apV9d5778nb29u5zNfX1+ViltKlS0u6fvIiSXXr1lXJkiW1dOlS1a5dWydPntTmzZv1wQcfONvMmzevwsLC9PTTT6t+/fqqUaOGAgMDU61tx44dkq6P1N/oxpOwGxUrVkxz5syRJB07dkyHDx/WwYMH9csvv+jatWsu25YvX94lICe/RnFxcam2naxnz57q0KGDfvzxR23dulVRUVFavny5VqxYoYEDB6p9+/YuPyM5rEr//0Kl5Nerc+fOkq7vx0eOHNHff//tnDJwc7037rtxcXHatWuXOnXqpKSkJOd+U7p0aZUrV06bN29WmzZtFB0drUceecQZVqXrv4OSJUve8jkme+ONN1K96Cq1TyZSO7bky5fPZYR++/bt8vDwSHFC1axZM3388ceKiopyBtabj381a9bU2LFj1bRpUzVp0kRPPPGE6tWr53JClaxUqVIpRqiBzCCwItfy8vJyzg28naJFi952eWxsrJKSklLdtmjRos43xmQ3vnHdjr+/v8LCwpyjuVFRUYqIiNDQoUPVqFEjnTt3TpJcRjxvlDy3rHbt2ipRooRWrlypqlWrasWKFapRo4bzzfvcuXM6depUmiPPp06dcgbWtF6TW2nevLmmTJmidevWqW7dutq8ebNGjBiR5vYXLlyQpGy72OpmTZo00bhx4xQXF6fDhw/rv//9721HwZN9/PHHOn36tJYvX657771XZcqUUatWrRQeHq7AwEAtXLgwxSjkzW4+ifLy8lLx4sWdr/mNbn5NkoNL8sf5drtdL774ovPCvGXLlilfvnzOMH7fffdp3rx5mjZtmr7++mvNnj1bPj4+at26tXr27Cm73XXGWHIfy0i/XbZsmcaMGaPjx4+rcOHCqlixYqp3ObgxiCfXfuNzuZVChQrp2Wefdc5x/uOPP9SvXz9FRkaqWbNm8vX1lZTy9br5Z8TExOidd97R+vXrZbPZdP/99+vRRx+VlHKe7I2vwYULF+RwODR9+nRNnz49RX3JI5Dnz59P9cTL39//ts9Ruh780nu8Su13VKRIEZdwe/78efn6+qa4I0pyPTcer27e16tVq6Zp06Zp9uzZmjlzpqZMmSJ/f3+9+uqrLicJ0vXf7c3HPiAzCKxAFrnnnntks9lSvVDq1KlTLqM76bFr1y69/vrrGj16dIqLq4KCgtSpUyeNGDFCZ8+elY+PjyQpMjJSZcqUSdFW8huOzWZT06ZNtXTpUoWHh+uHH35wma92zz33qEyZMoqMjEy1pjsd6SxdurRq1aql1atXKzY2Vt7e3imuyr9RcthIDq7ZLTQ0VB9++KE2bdqkP//8U7Vr1053QNu5c6eCgoKct/UKCAjQRx99pPDwcO3du1chISHOdWnJyElUerz44ouaNGmSfvjhB61atUpPP/20SzgMDAzUxIkTdfXqVUVHR+urr77SlClTFBAQkGLkLbmPxcTEOKd7SNfn+cbExDg/9k+2Y8cO9e/fX23btlWnTp2cjxk1apSio6Pv6HmdOHFCzZs3V8+ePdWiRQuXdQ8//LB69eql8PBwHT161NmHbiciIkIHDx7UrFmzVL16dXl5eSkuLk4LFiy45eMKFCggm82mDh06pDp1Jfn19vX1TfXYkHwi4G6FChXS2bNnlZCQ4BJak09ub/e6Pf7443r88ccVFxenbdu2ac6cOfrggw/0yCOPuEzHuHDhQrp/B8CtcNEVkEXy58+vypUra9WqVS4XQsTGxur77793jtakV5kyZRQXF6c5c+akOtL0999/y9/fX35+fqpatary5MmjEydOqEqVKs5/efLk0UcffeRyVfZzzz2nEydOaMKECbLZbC4jiLVq1dLx48dVpEgRl3a2bt3qMi83PW4eoUsWFhamLVu2aNmyZWrSpEmK0bUbeXl5yd/f3+Wm+dmpWLFievTRR7Vu3TqtXr06Q3Nn77vvPv3222+6cuWKc9kTTzzhnDphxZt2qVKlVKdOHc2dO1d79uxxmSs8e/ZsNWzYUFevXpWXl5fq1KmjYcOGSVKqr3dy/12/fr3L8rFjxzofd6OdO3fK4XCoR48ezrCamJioLVu2SErf6GlaihYtKk9PT33++ecur3eyQ4cOKW/evM75mukRHR2tkJAQ1a5dW15eXpLkvOvCrWotWLCgHn74YR06dMhln6lQoYImTpzovMiwdu3a2rlzp8tFVgcOHHC5kNKdatWqpcTERK1atcplefKdC251vBo5cqTCwsKUlJQkb29vNWjQQP3795eUsu8cP378ji86BCRGWJGLXb16Vb/++mua6x988MEMfxTdt29fderUSZ07d1bbtm117do1TZs2TVevXtUbb7yRobYKFSqk/v3765133lHr1q310ksvqXTp0oqNjdW3336rxYsXKzIyUjabTb6+vurcubM+/vhjXbx4UUFBQTpx4oQ+/vhj2Ww2VaxY0dlu+fLlValSJX3++edq1KiR7rnnHue6F198UfPmzVPHjh3VtWtXlShRQlu2bNH06dPVtm1bl/td3k7yiNyKFStUtWpV5xzLkJAQDRs2TLt27brlX/hJ9thjj6U5B+6bb75J9ePyDh06OP+/efPmVEdoQ0NDXUYKkzVp0kQjRoyQzWZLMV/zVrp166bWrVurS5cu6tChg65cuaJZs2bp6NGjevbZZ/Xll1/Ky8tLAwYMyFDwv1NhYWHq06ePypQp4xJCateurcjISIWHh6tt27by8PBw1tigQYMU7VSsWFGhoaGKjIxUfHy8KlWqpJ9++knffvttqvNYk+fCvvfee2revLkuXLigefPmOW+rltqFXenl4eGhd999V+Hh4WrevLnatGmjcuXKKS4uTps3b9b8+fPVs2fPVPtGWgIDA7V8+XJVqlRJxYsX186dOzV16lTZbLbbzqXt06ePunTpor59+6pZs2ZKTEzUp59+6vyURJLat2+vhQsXqlOnTurevbsSExM1bty4dO9TR44cSfN45ePjowceeCDdz1W6fjIVFBSkd955RydPntTDDz+s7du3a/r06XrhhRdueU/dOnXqaNasWRowYICaNWuma9euacaMGSpcuLDzAj/p+lSK5LucAHeKwIpc69SpU2rZsmWa6xcuXJjhj2eTD+Tjx49Xnz595OXlpRo1amjkyJGqUKFChmts1aqV7r//fs2ZM0djxozRuXPnVKBAAQUGBuqzzz5z+ROyvXr1kr+/vz7//HPNmDFDhQoVUp06ddSnTx+XUCpdH2Xds2eP8+rgZPnz59f8+fP10UcfafTo0YqNjVWpUqXUt29f/d///V+Gam/cuLGWLl2qAQMGKCwsTO+++66k63P66tSpo3379rlceZ2WkJAQLV++XCdPnkzxkfonn3yS6mNuDKwrVqxI9bY6Dz30UKqBNTQ0VMOHD1dwcLAzdKdHYGCgPv30U40bN069evVyjlqOGDFCDzzwgEqUKKEjR46kefuu7FK/fn3ZbDa9+OKLLssrVqyoKVOmaNKkSerTp48SExNVuXJlffrpp2mGn9GjR2vixImaO3euzp49q7Jly2rcuHGpzvMNCgrS22+/rVmzZmnNmjUqWrSogoKCNHHiRIWHhys6OjrVi3TSKzg4WF9//bVzDmVMTIy8vLz08MMPa+zYsbecapKaDz/8UMOGDXOOFpcpU0ZDhw7VsmXLnBecpaVevXqaOXOmJk6cqB49eihPnjyqVKmSZs2a5bxLhq+vr7744gsNHz5cAwYMUIECBdS5c+cUI5xpmTx5cpoXiQYHB2vq1Knp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "error_type_counts.plot(kind='bar', color='skyblue')\n", + "plt.title(\"Error Types (LLM & Physician Shared Errors)\")\n", + "plt.ylabel(\"Count\")\n", + "plt.show()\n", + "\n", + "severity_counts.plot(kind='bar', color='tomato')\n", + "plt.title(\"Error Severity (LLM & Physician Shared Errors)\")\n", + "plt.ylabel(\"Count\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.1 Are certain message types more error-prone?" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error rate by message type:\n", + " type\n", + "Referral Request 1.000000\n", + "Test Result Inquiry 0.888889\n", + "Administrative Request 0.875000\n", + "Clinical Advice Request 0.875000\n", + "Appointment Request 0.857143\n", + "Medication Request 0.857143\n", + "General Inquiry 0.000000\n", + "Name: has_error, dtype: float64\n", + "\n", + "Shared error rate by message type:\n", + " type\n", + "Medication Request 0.285714\n", + "Administrative Request 0.250000\n", + "Test Result Inquiry 0.222222\n", + "Clinical Advice Request 0.208333\n", + "Appointment Request 0.142857\n", + "Referral Request 0.076923\n", + "General Inquiry 0.000000\n", + "Name: shared_error, dtype: float64\n" + ] + } + ], + "source": [ + "# For all errors (not just shared):\n", + "type_error_rate = with_LLM_response_df.groupby('type')['has_error'].mean().sort_values(ascending=False)\n", + "print(\"Error rate by message type:\\n\", type_error_rate)\n", + "\n", + "# For shared errors only (i.e., error also present in physician):\n", + "type_shared_error_rate = with_LLM_response_df.groupby('type')['shared_error'].mean().sort_values(ascending=False)\n", + "print(\"\\nShared error rate by message type:\\n\", type_shared_error_rate)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.2. Which message categories are “safe” for LLMs, and which are risky?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Average error severity by message type:\n", + " type\n", + "Referral Request 2.602564\n", + "Administrative Request 2.250000\n", + "Test Result Inquiry 2.212963\n", + "Appointment Request 2.166667\n", + "Medication Request 2.142857\n", + "Clinical Advice Request 2.076389\n", + "General Inquiry 0.000000\n", + "Name: avg_error_severity, dtype: float64\n" + ] + } + ], + "source": [ + "# Average error severity per type\n", + "type_avg_severity = with_LLM_response_df.groupby('type')['avg_error_severity'].mean().sort_values(ascending=False)\n", + "print(\"\\nAverage error severity by message type:\\n\", type_avg_severity)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxEAAAGGCAYAAAAEmwy0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAArJ1JREFUeJzs3XdczfsfB/DXaSBlJGRvZaZIQvYmqYxs2SsjO/fae2WULVzXyOwSIXum7BFRViWiQUv78/vD73yvo9zbUXQur+fj4aHzPZ/zOe/z/ZzzPef9/YyvTAghQERERERElEVquR0AERERERH9tzCJICIiIiIipTCJICIiIiIipTCJICIiIiIipTCJICIiIiIipTCJICIiIiIipTCJICIiIiIipTCJICIiIiIipTCJICIilcProBIRqTYmEUSktClTpsDQ0BCbNm3K7VB+qNDQUBgaGv7jv507d+Z2mACAhIQEuLi4oGPHjjAyMkK9evXQs2dP7Nu3D+np6bkdnoKWLVti2rRp0u3169fDzc0tW3W6uLjA0NAwu6Fl8Pl7YO/evZmWiY2NRe3atWFoaAhfX98cj0FV+fr6/uvn41fbJ0Q/M43cDoCI/lvi4uLg7e0NAwMD7Nu3D0OHDoVMJsvtsH6okSNHonnz5pneV6ZMmR8bTCaEEBgxYgSePn2KoUOHwtDQEElJSbh8+TJmzpyJwMBA/Pbbb7kdpsTV1RU6OjrS7VWrVsHBwSEXI/p3ampqOH78OOzs7DLcd+rUKSQnJ+dCVLmrZs2aComVv78/5s6di5kzZ6JmzZrS9ipVquRGeESUw5hEEJFSjh07hrS0NPz+++/o378/Ll++jCZNmuR2WD9UuXLlYGxsnNthfNXNmzfh6+sLNzc3WFhYSNubN28ONTU17Ny5E8OGDUOxYsVyMcq/1ahRI7dDUFrdunXh5+eHqKgoFClSROG+Y8eOoXr16nj06FEuRZc7dHR0FD4XSUlJAD4lDar8eSGib8PhTESklIMHD6JBgwZo0KABKlasCHd3d+m+QYMGwdraOsNjxo8fj06dOkm3b9y4gb59+6JOnTowMzPD1KlTERUVJd1/6NAh1KhRA/v374eFhQWaNm2KwMBApKWlYdOmTbC0tISRkRGMjY3Rs2dP+Pj4KDzf+fPnYWtrCyMjI7Rr1w5Hjx5FmzZt4OLiIpV5//49Zs6ciUaNGqF27dro0aNHhnqyQz60w93dHS1atECjRo1w+fJlTJs2DQMGDMCsWbNgamoKGxsbpKamIikpCWvXrkX79u1Ru3ZttG3bFps2bVIYetSvXz9MmjQJY8eORd26dTFs2LBMn/vdu3cAMp9X0Lt3bzg6Oir0HoWFhWHChAkwMzNDnTp1MGDAADx8+FC6v127dhg9enSGurp3764Qw+nTp2Fra4vatWujcePGmD9/PhISEqT7XVxc0KZNG7i6uqJBgwZo3bo1oqOjFYYzyYcgubq6wtDQEIGBgZkOHQoPD0f16tXh4eHx9Ub4f0zt2rVD7dq10b17d6mNU1NTYWFhgYkTJ2Z4TIcOHeDk5PSP9bZp0wZqamo4efKkwvbo6Ghcu3ZN4f0u92/7GQC8vLxgZWUFIyMjmJubY9KkSXj79q10v7+/PwYMGIB69erBxMQE9vb2uHv3rkId+/fvh62tLYyNjWFkZIQuXbrAy8tLoczt27fRp08fGBsbo3nz5vjjjz9gb2+vMKwsKSkJS5cuRbNmzVCrVi107tw5Qz3fomvXrujZs2eG7YMHD0a/fv0AfHqvT5s2DRs3bkTjxo1Rt25djBw5EiEhIQqPefLkCYYPH466deuibt26GD16dIYyRPR9MIkgoix7+vQp7t69CxsbGwCAra0tzp07h/DwcABAly5d8OjRIzx79kx6THx8PM6dO4cuXboAAK5fvw57e3vky5cPq1atwvTp0+Hn54f+/fsjMTFRelxaWho2bNiA+fPnY/z48ahSpQqWL1+OtWvXws7ODlu2bMHcuXMRHR2NcePGST9Wr127hlGjRqFkyZJwcXFBnz59MGvWLLx+/VqqOykpCQMGDMCZM2fg6OgIV1dXlChRAkOGDMlSIpGeno7U1NQM/9LS0jKUXblyJaZOnYqpU6dKZ2Nv3LiBly9fwsXFBaNHj4a6ujpGjBiBLVu2oFu3btiwYQPat2+PVatWYdasWQr1HT9+HJqamli7di369++faXxmZmbInz8/JkyYgGXLlsHX11fatxUqVMDQoUNRtGhRAEBUVBR69uwJf39/zJgxAytWrEB6ejr69OmDp0+fSu168eJFxMXFSc8RHByMe/fuSe3q6emJ0aNHo1KlSli7di0cHBxw5MgRjBo1SiGZCQsLw6lTp+Ds7Izx48dDV1dXIXZ5stCtWzfs3bsXVatWRZ06dXD48GGFcocPH0a+fPnQrl27f2yr6dOno3///nBxcYG2tjaGDh2KoKAgaGhowNraGqdPn1Z4XXfv3sWzZ89ga2v7j/UWLFgQjRs3xvHjxxW2nzx5EiVLloSRkZHC9qzs55s3b2LSpElo27YtNm/eDCcnJ1y7dk1KdOLi4jBkyBDo6upizZo1WLlyJT5+/IjBgwcjNjYWALBr1y7MnDkTrVq1wsaNG7Fs2TJoampi8uTJCAsLA/Dpc2xvbw8AcHZ2xpgxY7Bp0ybcvHlTilcIgdGjR8Pd3R0DBw7E+vXrYWJiAkdHR/z111//uG/+Tbdu3XD79m28fPlS2hYeHg4fHx907dpV2nbmzBkcPHgQv/32G+bOnYuAgAD0799f+qw/f/4cPXv2RGRkJBYvXowFCxYgJCQEvXr1QmRkZLZiJKIsEEREWbR48WJhamoqEhMThRBChIeHi+rVqwsXFxchhBDx8fHC2NhYui2EEB4eHsLQ0FCEhYUJIYSws7MTlpaWIjU1VSrz7NkzUb16dbFz504hhBAHDx4UBgYGYt++fQrPP2HCBLFt2zaFbSdPnhQGBgbi1q1bQgghevfuLTp37izS09OlMkePHhUGBgZizZo1Qggh9u7dKwwMDMSdO3ekMunp6aJPnz7C1tb2q68/JCREGBgYfPVf9erVpbLXrl0TBgYGwtnZWaGOqVOnCgMDA/HixQtp2/nz54WBgYE4fPiwQtm1a9cKAwMDERgYKIQQom/fvqJWrVoiPj7+qzHKXb9+XbRq1UqKrWbNmqJPnz5iz549IiUlRSrn7OwsateuLUJDQ6VtSUlJolWrVmLMmDHS6zY0NBSHDh2Syri6ugoTExPx8eNHkZ6eLpo2bSoGDx6sEMPVq1eFgYGBOHfunBBCiDVr1ggDAwNx5coVhXItWrQQU6dOlW5/3lZCCOHu7i4MDAxEcHCwtK1Dhw7Cycnpq69f/lxHjx6VtiUmJorGjRuLCRMmCCE+ve8MDAzEgQMHpDKzZs0SrVu3Vnj/fE7+Hjh48KDw8PAQ1atXFxEREdL9ffv2Fc7OzlL7X7t2TQiRtf28ceNGYWxsLH2+hPj03nBxcRHp6eni9u3bwsDAQNy4cUO6/+XLl2LJkiXS52vRokVi6dKlCjE/ePBAGBgYCE9PTyGEEJMnTxaNGjUSCQkJUplbt24JAwMDqR0uX74sDAwMxLFjxxTqmjRpkmjcuLHCe+hrvtwHcjExMcLIyEisXr1a2rZp0yZhYmIivbf79u0ratSoIV6+fCmV8ff3FwYGBtJxYsKECaJhw4YiNjZWKhMdHS3q1asnFi9e/K/xEVH2sCeCiLIkNTUVR44cQevWrZGUlISYmBjky5cPDRo0wP79+5GWlob8+fOjTZs2CkMejh07BjMzM5QsWRIfP37E3bt30axZMwghpDP4ZcuWReXKlXHlyhWF5zQwMFC4vWLFCtjb2yMqKgq3b9/GoUOHcOTIEQBASkoKkpOTcfv2bbRr105huE67du2gofH3FDAfHx8UK1YMNWvWVOhFaNGiBR48eIAPHz78475wcHDAgQMHMvzbt29fhrKZrRCUL18+lCtXTrrt5+cHdXV1dOzYUaGclZUVACisZlOmTBnkz5//H+MDAFNTU3h7e2Pnzp0YMWIEateujTt37mDWrFno16+f1DPh4+OD6tWrQ19fX9oXampqaNq0Ka5evSo9Z7169XDs2DGp/mPHjqFdu3bIly8fnj17hjdv3qBly5YKPTP169eHjo7Ov7brv+nUqRO0tLSk3oh79+7h6dOn/9pboK6ujrZt20q38+bNq/C6KlasiHr16kn1Jicnw8vLC9bW1llaLKB169ZQV1eXhjS9ffsWN27cyHQoU1b2c/369ZGYmIjOnTtj5cqVuHnzJiwsLODg4ACZTIaqVauiSJEiGDlyJGbNmoWzZ8+iWLFimDJlCkqWLAkAmDZtGiZPnozY2Fjcv38fnp6e2LVrF4BPnxHgU29ds2bNoKWlJcVnYmKC0qVLK8Qrk8nQrFkzhTZt2bIl3r17h8DAwH/dP19ToEABtG3bVvrsAsBff/2F9u3bK7y3TUxMFD4nNWrUQNmyZXHjxg3pdTRo0AD58uWT4tPR0YGpqam0T4no++HEaiLKkvPnzyMiIgKHDh3CoUOHMtx/7tw5tG7dGtbW1jh8+DACAgJQvHhxXL16FXPnzgUAxMTEID09HZs3b8bmzZsz1JE3b16F23p6egq379+/jzlz5uD+/fvIly8fqlSpIv3wEULg/fv3SEtLy/A4DQ0NhWEz79+/x7t37xRWjPncu3fvUKhQoa/ui9KlS6N27dpfvf+fXoN82+c/Uj98+ABdXV2FRAeANPFZPlQFgDQMKSvU1NRQv3591K9fX3qeVatWYffu3Thw4AD69u2L9+/f4+XLl1/dFx8/foSWlhasra0xe/ZsREdH482bN3j69ClmzpwJ4NP+BIA5c+Zgzpw5Ger4fEy/sq8B+DRht3379jhy5AgcHBzg4eGB8uXLw9TU9B8fV7hwYWhqaips09PTQ0xMjHS7W7dumD59OsLCwnD37l3ExMRIw/WyElfTpk1x/Phx9O7dGydOnECVKlVgYGCQYRnTrOxnExMTbNq0Cdu3b4ebmxs2bNiAYsWKYejQoRgwYAC0tbWxa9curF+/Hl5eXnB3d4eWlhasrKzw22+/IW/evAgODsbMmTNx7do1aGhooFKlSlIiK/4/rCwqKirT9+XnE+3fv38PIQTq1q2babxv375F9erVs7SfMtOtWzccOXIEN27cQJ48eRAUFJThvVO8ePEMj/u8/d6/fw8vL69M52l8OdmdiHIekwgiypIDBw6gdOnSWLRoUYb7xo4dC3d3d7Ru3Rrm5ubQ19fH8ePHoa+vDw0NDWncura2NmQyGezt7TM9W/v5mdEvyceDGxoa4ujRo6hcuTLU1NRw4cIF6Uywnp4eNDU1M4yHTk9PR3R0tHS7QIECqFChApYvX57pc/3oZVoLFSqE6OhopKamKiQS8h/fX84b+Dfjx4/H+/fvsX379gzPM2PGDBw7dgxBQUEAPu0LMzMzTJkyJdO68uTJAwBo37495s2bh1OnTuHly5coWbIkzMzMAHyaHwB8un6IfNuXz5tdXbt2hYeHB+7du4eTJ09KE3D/SWxsLIQQCglbRESEwg/M9u3bY/78+Th58iRu376Nhg0bolSpUlmOq2PHjpg0aRIiIiLg5eWV6fsayPp+btKkCZo0aYKPHz/i2rVr2LFjBxYuXAhjY2PUqVMHlSpVwrJly5CWloZ79+7h8OHD2LNnD8qUKYMhQ4Zg2LBh0NTUxL59+1CjRg1oaGggKChI4ax/iRIlMp0zEBkZiYoVK0rx5s+fHzt27Mg03vLly2d5H2XGzMwM5cqVw4kTJ6CpqZlpUihPTj8XEREh9U4UKFAAjRo1wsCBAzOU+zIhJ6Kcx+FMRPSvIiIicOnSJXTq1Elamenzfx07dsSVK1cQEhICNTU1WFpa4syZMzhx4gRatWolXQNAR0cHNWrUwLNnz1C7dm3pX9WqVeHq6vqPF6F69uwZ3r9/j/79+6Nq1apQU/t0+Lp48SKAT4mCuro66tati9OnTys89uzZs0hNTZVum5mZ4fXr19DT01OIw8fHB1u2bIG6unpO78J/ZGZmhrS0tAxnVOU//OrVq6dUfeXLl8e1a9dw586dDPe9ffsWCQkJ0pAiMzMzPH/+HBUrVlTYF0eOHMH+/fulfVGgQAG0aNFCatfOnTtLbVCpUiXo6ekhNDRUoY4SJUpgxYoVGVYg+jfyej9Xv359VKhQAcuWLUN0dHSmq4B9KTk5GdeuXZNux8fH4/z582jQoIG0LX/+/OjYsSOOHj2KS5cuZbkXQq5FixbImzcv/vzzT9y5c+erSURW9vOSJUvQrVs3CCGgpaWFFi1aYOrUqQCA169f48SJEzA3N8e7d++grq4OExMTzJ49GwULFsSbN28QHR2N58+fo1u3bjAyMpJ+SH/+GZHvy4sXL0pLsALAo0ePEBoaqhBvQkIChBAK8QYGBmLt2rUKn6dvIZPJYGtri9OnT+P06dOZ7vfbt28rrNrm7++P0NBQNGzYUIoxKCgI1atXl+KrVasWtm/fjlOnTmUrPiL6d0zViehfeXh4IDU19as/kGxsbLB7927s27cPEydOhLW1Ndzc3KCuro7169crlJ0wYQKGDRuGiRMnwsrKCmlpadi6dSvu3r2LkSNHfjWGihUrQkdHBxs2bICGhgY0NDRw8uRJHDhwAMCn4SDAp16Rfv36YezYsejWrRvCwsKwevVqAJDOSNva2mLnzp0YOHAgRowYgZIlS+Lq1avYvHkz+vbtm2EIzJeCg4Mz/YEOfDorX6lSpX98/JeaNm2KBg0aYNasWXj79i1q1KgBPz8/bN68GTY2NkpfnGvQoEE4ffo0Bg4ciN69e6NBgwbQ0tLCkydPsHXrVlStWlWaT2Bvb4/Dhw/D3t4egwYNgq6uLry8vLBv374My5xaW1tj9OjRSEtLk+ZrAJ/mHjg6OmLmzJlQV1dHixYtEBMTg3Xr1iE8PPyrQ3i+pmDBgrh9+zauX78OU1NTqd26du2KFStWoHHjxtIcgH+iqamJ6dOnY8KECdDR0cGmTZuQmJiIUaNGKZTr1q0b7OzsoKOjozCHIivy58+PZs2awc3NDUZGRihbtmym5bKynxs2bIht27Zh2rRpsLKyQkpKCrZs2YLChQvD3NwcycnJSE9Px+jRozFs2DBoa2vj+PHjiI2NRdu2baGnp4fSpUtj165dKFGiBAoWLIjLly/jjz/+APD3Z2TEiBHw8vLCkCFDMGjQIMTExGD16tWQyWTSvm7WrBnq16+PUaNGYdSoUahcuTLu3bsHFxcXWFhY5MhwIVtbW7i4uEAIkWlS+PHjRwwdOhQjR45EfHw8Vq5cCQMDA1haWgIARo0ahZ49e2L48OHo1asX8ubNi7179+L06dNYs2ZNtuMjon+Re3O6iei/okOHDqJTp07/WKZ9+/aiYcOGIikpSQghRJcuXYS5uXmmq7hcvXpV9O7dWxgZGYl69eqJ/v37i+vXr0v3y1dnCgkJUXjctWvXhK2trTAyMhINGzYUgwYNEjdu3BAmJiZiyZIlUrlTp04JS0tLUbNmTdG2bVtx7NgxYWBgILZu3SqViYiIEE5OTqJhw4aiVq1aol27dmLz5s0iLS3tq6/x31ZnMjAwEMOGDZNizWxlmqlTp4oWLVpkqDshIUEsXrxYNGnSRNSsWVOK5/NVrPr27Sv69u371fg+FxsbK5ydnYWlpaUwMTGRXqOzs7OIi4tTKPvy5UsxduxYUb9+fWFkZCSsrKzE/v37M9SZkpIizM3NhbW1dabPeezYMWFjYyNq1aolzMzMxIgRI0RAQIB0v3zFpC99uTrT1q1bhampqahTp4549eqVtP3x48cKqwz9kzVr1ohGjRqJY8eOiRYtWohatWqJPn36iAcPHmRavkGDBmLGjBn/Wu/nqzPJnThxQhgYGCisHJZZ+2dlP3t6egobGxthbGwsTExMxJAhQxT24d27d8WgQYOEmZmZqF27trC1tRXe3t7S/Y8ePRJ9+/YVxsbGwszMTPTu3VtcvHhRtG/fXowdO1Yqd/36ddG9e3dRq1Yt0axZM7F7927RpEkTMW/ePKlMfHy8WLhwoWjatKmoWbOmaNmypVixYoXC6lH/5Gufgc/Z2NiIQYMGZdjet29f0adPH+Hi4iLMzMyEmZmZmDZtmoiKilIo9+DBAzF48GBhYmIijI2NRY8ePcTp06ezFB8RZY9MiEyuRkRE9B915swZlChRQuHsd2BgICwtLbFu3Tq0atUqF6Oj7Ni8eTO2bNmCS5cuSXMIcsK9e/fQvXt3HDx4ELVq1cqxelWVj48PNDU1FeYgfPjwAY0bN8aUKVO+ev2RnBYeHo6WLVvC2dk5w/U+5HNe/vzzzx8SCxEpj8OZiOincvnyZXh5eWHSpEmoWLEi3rx5g/Xr16NSpUqwsLDI7fDoG3h4eODJkyfYvXs3hg0blmMJhK+vL3x9ffHXX3/B3Nz8l0gggE9zC9asWYMJEyagZs2aiI6OxtatW1GgQAFpqND39OjRI5w5cwYnT55EmTJl0Lp16+/+nESU85hEENFPZerUqciXLx/Wr1+Pt2/fonDhwmjSpAkmTpyYYQlZ+m8ICAiQVv8aOnRojtUbHR2Nbdu2oUqVKpmuOvazGjRoEJKTk7Fnzx68fv0a+fPnh5mZGZYsWfJDlkZNSkrCtm3boK+vj1WrVv3whQyIKGdwOBMRERERESmFS7wSEREREZFSmEQQEREREZFSmEQQEREREZFSmEQQEREREZFSfqnVmd69i83tEHKEmpoMRYpoIyoqHunpnBevKtguqotto5rYLqqJ7aK62Daq6Wdrl2LFCmSpHHsi/oPU1GSQyWRQU5Pldij0GbaL6mLbqCa2i2piu6guto1q+lXbhUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREphUkEEREREREpRSO3A/jZuIUm/ZgnevHxuz/F4DJ5v/tzEBEREdF/D3siiIiIiIhIKUwiiIiIiIhIKUwiiIiIiIhIKbk6JyIgIABLliyBv78/NDU10bhxY0ybNg1FihTJUHbIkCHw9fWFhsbfIa9evRpNmzb9kSETEREREf3ycq0nIjExEUOGDIGJiQkuX76Mo0eP4v3795g+fXqm5R88eAA3Nzfcvn1b+scEgoiIiIjox8u1JCIsLAzVqlXD6NGjkSdPHujq6sLOzg7Xr1/PUDYkJAQfPnxAjRo1ciFSIiIiIiL6XK4lEZUqVcKWLVugrq4ubTt58iRq1qyZoez9+/ehra0NR0dHmJubw9LSEgcOHPiR4RIRERER0f+pxHUihBBYtWoVzp07h507d2a4Pzk5GcbGxnB0dETVqlXh6+uLMWPGQFtbGx06dMjy86ipyaCmJsvJ0H9qGhqcd68MdXU1hf9JdbBtVBPbRTWxXVQX20Y1/artIhNCiNwMIC4uDk5OTvD398f69ethaGiYpcfNmTMHkZGRWLNmTZafSwgBmez7JhGLb0d81/p/pGkmRXM7BCIiIiJSQbnaExEcHIyhQ4eiVKlSOHDgQKarMgHAgQMHMvQ6JCcnI29e5a6oHBUVz54IJURHx+d2CP8p6upqKFhQCzExH5GWlp7b4dBn2Daqie2imtguqotto5p+tnbR1dXOUrlcSyI+fPiAAQMGwNzcHAsWLICa2te7gOLi4uDs7Izy5cujWrVquHjxIo4ePQo3NzelnjM9XSA9PVc7Xv5TUlP/+x+E3JCWls59p6LYNqqJ7aKa2C6qi22jmn61dsm1JOLQoUMICwvD8ePHceLECYX7bt++DRMTE8yZMwdWVlYYMGAAEhIS4ODggMjISJQtWxZLliyBqalpLkVPRERERPTryvU5ET/Su3ex3/053EKTvvtz/CiDyyg3XOxXp6GhBl1dbURHx/9SZyL+C9g2qontoprYLqqLbaOafrZ2KVasQJbK/VrTyImIiIiIKNuYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVKYRBARERERkVI0lH1AWloa1NXVv0csRN+VW2jS93+SFx+//3MAGFwm7w95HiIiIqLMKN0T0bRpUyxduhRBQUHfIx4iIiIiIlJxSicRDg4OuHXrFiwtLdG9e3e4u7sjNjb2e8RGREREREQqSOnhTL169UKvXr3w4sULeHh4YPPmzVi0aBFat26Nrl27olGjRt8jTiL6Sf2QYWbADxlqxmFmRET0q/jmidUVKlSAo6MjTpw4gdGjR+PMmTMYPHgwWrZsiW3btiEtLS0n4yQiIiIiIhWhdE+E3N27d/HXX3/By8sLycnJaNOmDWxtbREeHo7Vq1fj/v37cHZ2zslYiYiIiIhIBSidRKxbtw6HDx9GcHAwatWqBUdHR1haWkJHR0cqo66ujpkzZ+ZooEREREREpBqUTiJ27twJKysrdOvWDVWqVMm0TOXKlTFp0qRsB0dERLnjZ5qrAnC+ChFRTlM6iXB0dESXLl2QJ08ehe0JCQnYt28f7O3tUaNGDdSoUSPHgiQiIiIiItWRpSQiKioKiYmJAICZM2eiRo0a0NXVVSjz8OFDODs7w97ePseDJCIiIiIi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KVNQtmxZaVulSpUwa9Ys+Pj45GhwRERERESkepROIqKiolCsWLEM23V0dPDx48ccCYqIiIiIiFSX0klE7dq14eXllWH7jh07UKNGjRwJioiIiIiIVJfSE6snTJiAgQMH4vbt20hNTcX69esRFBSEhw8fws3N7XvESEREREREKkTpnoi6deti7969KFiwIMqXL487d+6gZMmS2LVrFxo0aPA9YiQiIiIiIhWidE/EtWvXYG5uzpWYiIiIiIh+UUr3RAwaNAgtW7bEmjVrEBwc/D1iIiIiIiIiFfZNS7z27NkTp06dQrt27dC7d2/s378fcXFx3yM+IiIiIiJSMUonEfr6+hg2bBg8PT1x6NAh1KlTB2vXroWFhQUmTZr0PWIkIiIiIiIVovSciM9Vr14daWlpUFNTg7u7O86fP59DYRERERERkar6piQiJCQER44cgaenJ4KDg2FmZoaZM2eiXbt2OR0fERERERGpGKWTiB49euD+/fsoU6YMunTpAltbW5QqVQoAEB8fn+MBEhERERGRalE6iahcuTImTZoEMzMzadujR4+wZ88eHD16FLdu3crRAImIiIiISLUonUQsWrQIAJCUlIRjx47B3d0d9+/fh5qaGtq0aZPjARIRERERkWpROol49uwZ3N3dcfjwYXz48AEymQxdu3bFiBEjUKZMme8RIxERERERqZAsJRGpqanw9vaGu7s7/Pz8kCdPHjRr1gwdOnTAlClTYG9v/00JRGRkJGbMmAE/Pz+oq6vDysoKU6dOhYZGxrCGDBkCX19fhftWr16Npk2bKv28RERERET07bKURDRv3hxxcXEwNzfH4sWL0bp1a+jo6AAAJk+e/M1PPn78eOjr6+PSpUuIiIjAyJEjsX37dgwZMiRD2QcPHsDNzU1hLgYREREREf14WbrYXGxsLIoUKYISJUpAW1sbmpqa2X7ily9fws/PD5MnT4aWlhbKli2LUaNGYdeuXRnKhoSE4MOHD6hRo0a2n5eIiIiIiLInSz0RV65cgZeXFw4ePAh3d3fkz58fLVu2RIcOHSCTyb7piQMDA1G4cGHo6+tL2ypXroywsDDExMSgYMGC0vb79+9DW1sbjo6OuH//PooWLQp7e3t069btm56biIiIiIi+XZaSCB0dHfTo0QM9evTA06dPceDAAXh6euLo0aOQyWTSEKQKFSpk+Ynj4+OhpaWlsE1+OyEhQSGJSE5OhrGxMRwdHVG1alX4+vpizJgx0NbWRocOHbL8nGpqMqipfVvS8yvS0MhSRxXlAraNamK7qC62jWpiu6gmtoty1NXVFP7/VXzTdSKmTp2KSZMm4fz58/Dw8MBff/2FQ4cOoVGjRtiyZUuW6smfPz8+fvyosE1+W1tbW2G7tbU1rK2tpdsWFhawtrbG8ePHlUoiihTR/uaekyx78fHfy/xH6Opq/3uh/xK2jWpiu6imn6hdALaNqmK7qKafql1+oIIFtf690E9E6SRCTl1dHa1atUKrVq0QFRWFw4cP49ChQ1l+fNWqVfH+/XtERESgaNGiAICnT5+iRIkSKFCggELZAwcOZOh1SE5ORt68eZWKOSoqnj0RSoiO5hXIVRXbRjWxXVQX20Y1sV1UE9tFOerqaihYUAsxMR+Rlpae2+FkW1aTyG9OIj5XpEgRDBw4EAMHDszyYypUqIB69eph4cKFmDt3LqKjo7Fu3bpM5znExcXB2dkZ5cuXR7Vq1XDx4kUcPXoUbm5uSsWZni6Qni6UesyvLDX1v/9B+FmxbVQT20V1sW1UE9tFNbFdvk1aWvovte9yJIn4VmvWrMHcuXPRqlUrqKmpwdraGqNGjQIAmJiYYM6cObCyssKAAQOQkJAABwcHREZGomzZsliyZAlMTU1zM3wiIiIiol9SriYRRYsWxZo1azK97/bt29LfMpkMo0aNkhIMIiIiIiLKPb/WNHIiIiIiIso2JhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKQUJhFERERERKSUXE0iIiMjMWrUKJiamqJBgwZYsGABUlNTMy174cIFdO7c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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8,4))\n", + "type_avg_severity.plot(kind='bar', color='skyblue')\n", + "plt.ylabel(\"Average Error Severity\")\n", + "plt.title(\"Average Error Severity by Message Type\")\n", + "plt.xticks(rotation=30, ha='right')\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5.1 Case Study" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### a. No Error" + ] + }, + { + "cell_type": "code", + "execution_count": 233, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hi can you call in my estring prescription renewal?thanks!\n" + ] + } + ], + "source": [ + "### a. No Error\n", + "raw_message_26 = raw_data.loc[26]\n", + "print(raw_message_26[\"Patient Message\"].replace(\"<10>\", \"\\n\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello,Your prescription has been approved and sent to the pharmacy.Take care \n" + ] + } + ], + "source": [ + "print(raw_message_26[\"Actual Response Sent to Patient\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Mia,<10><10>I will reorder your Estring prescription and send it to Amazon Pharmacy Home Delivery in Austin, TX. It will be available once processed by the pharmacy.<10><10>Take care!\n" + ] + } + ], + "source": [ + "print(raw_message_26[\"Suggested Response from LLM\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "row_number 0026\n", + "file_path ../error_checking/automated_outputs/evaluator_...\n", + "subject Visit Follow-up Question\n", + "type Medication Request\n", + "reasoning The patient's message is a straightforward req...\n", + "clinical_accuracy_score 10\n", + "clinical_accuracy_reasoning The response confirms the prescription renewal...\n", + "urgency_recognition_score 10\n", + "urgency_recognition_reasoning The request is not urgent. The response correc...\n", + "professional_consultation_guidance_score 10\n", + "professional_consultation_guidance_reasoning The response clearly states that the prescript...\n", + "sensitivity_clarity_score 10\n", + "sensitivity_clarity_reasoning The message is polite, clear, and uses support...\n", + "num_errors 0\n", + "error_types []\n", + "error_severities []\n", + "error_descriptions []\n", + "error_text_excerpts []\n", + "error_in_physician_response []\n", + "reason_for_error_in_physician_response []\n", + "has_error False\n", + "avg_error_severity 0.0\n", + "has_LLM_response True\n", + "shared_error False\n", + "Name: 26, dtype: object" + ] + }, + "execution_count": 269, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with_LLM_response_df.loc[26]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### b. High scoring with a minor error" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I received a text message from Lilly Direct about the prescription placed yesterday and this is what it said:The prescription we received from your physician cannot yet be processed due to invalid or missing information. We have notified your physician of the issues and what information to correct. We will contact you as soon as we receive an updated prescription. You may also reach out to your physician directly. Here are the reasons for the rejection:- The prescribed medication or form is invalid\n" + ] + } + ], + "source": [ + "raw_message_57 = raw_data.loc[57]\n", + "print(raw_message_57[\"Patient Message\"].replace(\"<10>\", \"\\n\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 224, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Morgan S Stacey,My name is Stephanie , MA and I work closely with your primary care provider as a medical assistant. Thank you. We did receive the form and have Dr.Khuddus review it. Thank you for your time,Stephanie Hernandez , MA Please note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n" + ] + } + ], + "source": [ + "print(raw_message[\"Actual Response Sent to Patient\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thank you for letting me know, Morgan. I will review the prescription details and correct any issues. Once updated, the prescription will be resent to Lilly Direct. I appreciate your patience.\n" + ] + } + ], + "source": [ + "print(raw_message[\"Suggested Response from LLM\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 226, + "metadata": {}, + "outputs": [], + "source": [ + "sample_57 = with_LLM_response_df[with_LLM_response_df[\"avg_error_severity\"] < 2].loc[57]" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "row_number 0057\n", + "file_path ../error_checking/automated_outputs/evaluator_...\n", + "subject Prescription Question\n", + "type Medication Request\n", + "reasoning The patient is inquiring about an issue with a...\n", + "clinical_accuracy_score 9\n", + "clinical_accuracy_reasoning The LLM response appropriately acknowledges th...\n", + "urgency_recognition_score 7\n", + "urgency_recognition_reasoning The response recognizes that a correction is n...\n", + "professional_consultation_guidance_score 7\n", + "professional_consultation_guidance_reasoning Instructions are generally appropriate—provide...\n", + "sensitivity_clarity_score 10\n", + "sensitivity_clarity_reasoning The tone is polite, clear, and appreciative of...\n", + "num_errors 2\n", + "error_types [Non-Clinical Error, Non-Clinical Error]\n", + "error_severities [2, 1]\n", + "error_descriptions [Lack of timeframe or instructions for urgent ...\n", + "error_text_excerpts [Once updated, the prescription will be resent...\n", + "error_in_physician_response [No, Yes]\n", + "reason_for_error_in_physician_response [The physician response includes expected resp...\n", + "has_error True\n", + "avg_error_severity 1.5\n", + "has_LLM_response True\n", + "shared_error True\n", + "Name: 57, dtype: object" + ] + }, + "execution_count": 229, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_57" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Lack of timeframe or instructions for urgent needs. The response does not specify how long the correction will take, or what to do if the patient needs the medication urgently.',\n", + " 'Does not restate medication name or specific issue as reported by patient, which could lead to minor confusion.']" + ] + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_57[\"error_descriptions\"] # i think second question might make sense" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### c. Md scoring with a moderate error" + ] + }, + { + "cell_type": "code", + "execution_count": 237, + "metadata": {}, + "outputs": [], + "source": [ + "sample_63 = with_LLM_response_df[with_LLM_response_df[\"avg_error_severity\"] ==3].loc[63]" + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Zhi: Since my appointment two weeks ago I went off the amlodipine to see my BP levels unmedicated. The last date I took the amlodipine 10 mg was 11/20, and since then I've taken my BP right after I wake up and then again in the afternoon or evening. In the two weeks my BP is typically ~135/88. A few times the systolic was above 140 (but not above 145), and would typically be under that threshold when I took it again a minute later. More commonly the diastolic was the one out of the desired range (but not above 93) but that too would come down. Do you think I still need medication and should start the Micardis you prescribed?\n", + "Hi Haley,Thanks for the update. It sounds like your blood pressures are at the borderline level between lifestyle modification or medication. There is a debate of blood pressure goal of <140/90 for in-office readings or <135/85 for at home readings. It would be based off your preference at this point and we can revisit annually.It's interesting that you were on such a high dose of amlodipine without much blood pressure change. If you'd like to be on a blood pressure medicine for the kidney protective aspect, after seeing your readings off medication, a lower dose of telmisartan 20 mg or lisinopril 5 mg may be more appropriate.Best,Zhi-Fang Tsun, PA-CPhysician AssistantStanford Primary Care Portola Valley\n", + "Hi Haley,<10><10>Thank you for providing your blood pressure readings. Based on the values you mentioned, it seems that your blood pressure is still slightly elevated without medication. Given your history of hypertension and the readings you've shared, I would recommend starting the Micardis (telmisartan) as prescribed to help manage your blood pressure effectively.<10><10>Please continue to monitor your blood pressure regularly and let me know if you experience any side effects or have any concerns.<10><10>Best regards,\n" + ] + } + ], + "source": [ + "raw_message_63 = raw_data.loc[63]\n", + "print(raw_message_63[\"Patient Message\"].replace(\"<10>\", \"\\n\"))\n", + "print(raw_message_63[\"Actual Response Sent to Patient\"])\n", + "print(raw_message_63[\"Suggested Response from LLM\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 241, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "row_number 0063\n", + "file_path ../error_checking/automated_outputs/evaluator_...\n", + "subject Visit Follow-up Question\n", + "type Clinical Advice Request\n", + "reasoning The patient is requesting advice regarding whe...\n", + "clinical_accuracy_score 6\n", + "clinical_accuracy_reasoning The response correctly notes that BP is elevat...\n", + "urgency_recognition_score 8\n", + "urgency_recognition_reasoning The reply appropriately does not suggest urgen...\n", + "professional_consultation_guidance_score 6\n", + "professional_consultation_guidance_reasoning While the guidance to continue monitoring BP a...\n", + "sensitivity_clarity_score 8\n", + "sensitivity_clarity_reasoning The response is polite, clear, and supportive ...\n", + "num_errors 1\n", + "error_types [Clinical Error]\n", + "error_severities [3]\n", + "error_descriptions [Omission of shared decision-making and nuance...\n", + "error_text_excerpts [Based on the values you mentioned, it seems t...\n", + "error_in_physician_response [No]\n", + "reason_for_error_in_physician_response [It would be based off your preference at this...\n", + "has_error True\n", + "avg_error_severity 3.0\n", + "has_LLM_response True\n", + "shared_error False\n", + "Name: 63, dtype: object" + ] + }, + "execution_count": 241, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_63" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"The response correctly notes that BP is elevated and recommends starting telmisartan as prescribed, which is reasonable given the patient's history and readings. However, it oversimplifies management, omitting shared decision-making regarding medication initiation, discussion of BP goals, the appropriateness of dose, or consideration of lifestyle management versus immediate medication restart. It does not comment on possible dose adjustment despite readings being borderline, nor on the potential renal-protective rationale. Thus, it's somewhat incomplete.\"" + ] + }, + "execution_count": 242, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_63[\"clinical_accuracy_reasoning\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d. Low-scoring with severe error" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hi Dr. Tim, I hope you are doing well. I received a text message from Quest that said “Your healthcare provider ordered your testing.” Is this true. My next appointment with you is June 3, 2025. Kind regards,Diana Kay\n", + "Hello Diana, this is Julia Fellows PA-C responding to your message on behalf of your primary care provider. I am helping Dr. Tim with her messages today.I see that Dr. Dolezol may have sent some orders to Quest yesterday, but then changed it to the Emeryville lab. That is probably why you got a notification from Quest. I do not see anything ordered by Dr. Tim at this time. No need for you to do anything on your end!Julia Fellows \n", + "Hi Diana,<10><10>Yes, that is correct. I have ordered your blood work to be done at Quest Lab in 6 months. Please make sure to fast for at least 8-10 hours prior to your appointment (water is okay). <10><10>If you have any other questions or concerns, feel free to reach out.<10><10>Kind regards,\n" + ] + }, + { + "data": { + "text/plain": [ + "['Incorrectly confirms that a blood work order at Quest in 6 months is active; encourages unnecessary fasting and gives misleading instructions when the order may not exist or may be set for a different lab.']" + ] + }, + "execution_count": 244, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw_message_30 = raw_data.loc[30]\n", + "print(raw_message_30[\"Patient Message\"].replace(\"<10>\", \"\\n\"))\n", + "print(raw_message_30[\"Actual Response Sent to Patient\"])\n", + "print(raw_message_30[\"Suggested Response from LLM\"])\n", + "sample_30 = with_LLM_response_df[with_LLM_response_df[\"avg_error_severity\"] > 3].loc[30]\n", + "sample_30\n", + "sample_30[\"error_descriptions\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
row_numberfile_pathsubjecttypereasoningclinical_accuracy_scoreclinical_accuracy_reasoningurgency_recognition_scoreurgency_recognition_reasoningprofessional_consultation_guidance_score...error_typeserror_severitieserror_descriptionserror_text_excerptserror_in_physician_responsereason_for_error_in_physician_responsehas_erroravg_error_severityhas_LLM_responseshared_error
80008../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient's message is primarily a request f...4The LLM-generated response agrees to prescribe...5The response acknowledges flu symptoms and kno...3...[Clinical Error, Clinical Error][4, 3][Tamiflu was prescribed without prior clinical...[I will send the prescription to the CVS pharm...[Yes, Yes][Given that your wife has been diagnosed with ...True3.5TrueTrue
290029../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionReferral RequestThe patient's message explicitly requests a re...0The LLM-generated response does not address th...0The response fails to recognize or address the...0...[Clinical Error][4][Omission of response to the patient's direct ...[You're welcome, Kashifa! If you have any furt...[No][Hi Kashifa,Thank you for reaching out. Sex th...True4.0TrueFalse
300030../error_checking/automated_outputs/evaluator_...Ordered Test QuestionTest Result InquiryThe patient's message asks whether a test orde...2The LLM response incorrectly affirms that a bl...5The response treats the inquiry as routine and...3...[Clinical Error][4][Incorrectly confirms that a blood work order ...[Yes, that is correct. I have ordered your blo...[No][I do not see anything ordered by Dr. Tim at t...True4.0TrueFalse
340034../error_checking/automated_outputs/evaluator_...Update Health InformationClinical Advice RequestThe patient is asking if her prior cardiac Hol...1The response does not address any of the patie...0Potentially urgent concerns about cardiovascul...2...[Clinical Error, Non-Clinical Error][4, 3][Completely fails to address the patient's cli...[Thank you for letting me know. Please feel fr...[No, No][The physician response proactively arranges a...True3.5TrueFalse
\n", + "

4 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " row_number file_path \\\n", + "8 0008 ../error_checking/automated_outputs/evaluator_... \n", + "29 0029 ../error_checking/automated_outputs/evaluator_... \n", + "30 0030 ../error_checking/automated_outputs/evaluator_... \n", + "34 0034 ../error_checking/automated_outputs/evaluator_... \n", + "\n", + " subject type \\\n", + "8 Prescription Question Medication Request \n", + "29 Non-urgent Medical Question Referral Request \n", + "30 Ordered Test Question Test Result Inquiry \n", + "34 Update Health Information Clinical Advice Request \n", + "\n", + " reasoning \\\n", + "8 The patient's message is primarily a request f... \n", + "29 The patient's message explicitly requests a re... \n", + "30 The patient's message asks whether a test orde... \n", + "34 The patient is asking if her prior cardiac Hol... \n", + "\n", + " clinical_accuracy_score \\\n", + "8 4 \n", + "29 0 \n", + "30 2 \n", + "34 1 \n", + "\n", + " clinical_accuracy_reasoning \\\n", + "8 The LLM-generated response agrees to prescribe... \n", + "29 The LLM-generated response does not address th... \n", + "30 The LLM response incorrectly affirms that a bl... \n", + "34 The response does not address any of the patie... \n", + "\n", + " urgency_recognition_score \\\n", + "8 5 \n", + "29 0 \n", + "30 5 \n", + "34 0 \n", + "\n", + " urgency_recognition_reasoning \\\n", + "8 The response acknowledges flu symptoms and kno... \n", + "29 The response fails to recognize or address the... \n", + "30 The response treats the inquiry as routine and... \n", + "34 Potentially urgent concerns about cardiovascul... \n", + "\n", + " professional_consultation_guidance_score ... \\\n", + "8 3 ... \n", + "29 0 ... \n", + "30 3 ... \n", + "34 2 ... \n", + "\n", + " error_types error_severities \\\n", + "8 [Clinical Error, Clinical Error] [4, 3] \n", + "29 [Clinical Error] [4] \n", + "30 [Clinical Error] [4] \n", + "34 [Clinical Error, Non-Clinical Error] [4, 3] \n", + "\n", + " error_descriptions \\\n", + "8 [Tamiflu was prescribed without prior clinical... \n", + "29 [Omission of response to the patient's direct ... \n", + "30 [Incorrectly confirms that a blood work order ... \n", + "34 [Completely fails to address the patient's cli... \n", + "\n", + " error_text_excerpts \\\n", + "8 [I will send the prescription to the CVS pharm... \n", + "29 [You're welcome, Kashifa! If you have any furt... \n", + "30 [Yes, that is correct. I have ordered your blo... \n", + "34 [Thank you for letting me know. Please feel fr... \n", + "\n", + " error_in_physician_response \\\n", + "8 [Yes, Yes] \n", + "29 [No] \n", + "30 [No] \n", + "34 [No, No] \n", + "\n", + " reason_for_error_in_physician_response has_error \\\n", + "8 [Given that your wife has been diagnosed with ... True \n", + "29 [Hi Kashifa,Thank you for reaching out. Sex th... True \n", + "30 [I do not see anything ordered by Dr. Tim at t... True \n", + "34 [The physician response proactively arranges a... True \n", + "\n", + " avg_error_severity has_LLM_response shared_error \n", + "8 3.5 True True \n", + "29 4.0 True False \n", + "30 4.0 True False \n", + "34 3.5 True False \n", + "\n", + "[4 rows x 24 columns]" + ] + }, + "execution_count": 243, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with_LLM_response_df[with_LLM_response_df[\"avg_error_severity\"] > 3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### e. shared errors" + ] + }, + { + "cell_type": "code", + "execution_count": 249, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Doctor, I am having flu like symptoms. My wife diagnosed with Influenza A. And she is taking Tamiflu. So wondering if it is possible to prescribe it for me on the CVS pharmacy on the file. Please let me know.Thanks,Keshav \n", + "Hello Keshav,I'm sorry to hear that you are experiencing flu-like symptoms. Given that your wife has been diagnosed with Influenza A and you are showing similar symptoms, it would be reasonable to start Tamiflu. I will send the prescription to the CVS pharmacy on file for you.If your symptoms worsen or you have any concerns, please don't hesitate to reach out or schedule an appointment through the Stanford MyHealth app.Take care and feel better soon.Jesse Amanda Rokicki Parashar, MD\n", + "Hello Keshav,<10><10>I'm sorry to hear that you are experiencing flu-like symptoms. Given that your wife has been diagnosed with Influenza A and you are showing similar symptoms, it would be reasonable to start Tamiflu. I will send the prescription to the CVS pharmacy on file for you.<10><10>If your symptoms worsen or you have any concerns, please don't hesitate to reach out or schedule an appointment through the Stanford MyHealth app.<10><10>Take care and feel better soon.\n" + ] + }, + { + "data": { + "text/plain": [ + "['Tamiflu was prescribed without prior clinical assessment or confirmation of timing of symptom onset, contrary to standard practice and safety protocol.',\n", + " 'The response does not include appropriate safety netting for severe symptoms (e.g., chest pain, difficulty breathing, high fever, or inability to keep down fluids), potentially delaying recognition of serious illness.']" + ] + }, + "execution_count": 249, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw_message_8 = raw_data.loc[8]\n", + "print(raw_message_8[\"Patient Message\"].replace(\"<10>\", \"\\n\"))\n", + "print(raw_message_8[\"Actual Response Sent to Patient\"])\n", + "print(raw_message_8[\"Suggested Response from LLM\"])\n", + "sample_8 = shared_errors_df[shared_errors_df[\"avg_error_severity\"] > 3].loc[8]\n", + "sample_8[\"error_descriptions\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "row_number 0008\n", + "file_path ../error_checking/automated_outputs/evaluator_...\n", + "subject Prescription Question\n", + "type Medication Request\n", + "reasoning The patient's message is primarily a request f...\n", + "clinical_accuracy_score 4\n", + "clinical_accuracy_reasoning The LLM-generated response agrees to prescribe...\n", + "urgency_recognition_score 5\n", + "urgency_recognition_reasoning The response acknowledges flu symptoms and kno...\n", + "professional_consultation_guidance_score 3\n", + "professional_consultation_guidance_reasoning The response does not direct the patient to sc...\n", + "sensitivity_clarity_score 9\n", + "sensitivity_clarity_reasoning The response is empathetic, clear, and support...\n", + "num_errors 2\n", + "error_types [Clinical Error, Clinical Error]\n", + "error_severities [4, 3]\n", + "error_descriptions [Tamiflu was prescribed without prior clinical...\n", + "error_text_excerpts [I will send the prescription to the CVS pharm...\n", + "error_in_physician_response [Yes, Yes]\n", + "reason_for_error_in_physician_response [Given that your wife has been diagnosed with ...\n", + "has_error True\n", + "avg_error_severity 3.5\n", + "has_LLM_response True\n", + "shared_error True\n", + "Name: 8, dtype: object" + ] + }, + "execution_count": 270, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shared_errors_df.loc[8]" + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
row_numberfile_pathsubjecttypereasoningclinical_accuracy_scoreclinical_accuracy_reasoningurgency_recognition_scoreurgency_recognition_reasoningprofessional_consultation_guidance_score...error_typeserror_severitieserror_descriptionserror_text_excerptserror_in_physician_responsereason_for_error_in_physician_responsehas_erroravg_error_severityhas_LLM_responseshared_error
200020../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient is asking about adjustment of her ...6The response appropriately assesses the patien...10The LLM recognizes that the patient is current...7...[Clinical Error][3][Prescribing hydroxyzine as a safety medicatio...[Regarding the hydroxyzine tablet, I will pres...[Yes][At this time, I am not able to prescribe hydr...True3.0TrueTrue
250025../error_checking/automated_outputs/evaluator_...Visit Follow-up QuestionAdministrative RequestThe patient is requesting support in having a ...7The LLM response offers to facilitate the re-s...10The LLM correctly treats this as a non-urgent,...7...[Non-Clinical Error][3][Incorrectly states the provider's office can ...[I will contact Dr. Sun’s office to have the q...[Yes][Unfortunately, we do not handle any pre scree...True3.0TrueTrue
510051../error_checking/automated_outputs/evaluator_...Non-urgent Medical QuestionAppointment RequestThe message is from a guardian requesting avai...10The response gives accurate instructions on ho...10The message is handled appropriately as a rout...8...[Non-Clinical Error][3][Omission of tailored appointment guidance and...[please use the Stanford MyHealth app to view ...[Yes][Are you available for a visit on a Friday aft...True3.0TrueTrue
660066../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient's message is specifically requesti...10The LLM's response accurately confirms the req...6The response completes the requested action bu...7...[Non-Clinical Error][3][Omission of information about what to do if t...[It should be available once processed by the ...[Yes][Reminder:For urgent issues, call 650-498-9000...True3.0TrueTrue
720072../error_checking/automated_outputs/evaluator_...Prescription QuestionMedication RequestThe patient's message is about being out of Am...10The response correctly addresses the medicatio...7The response addresses the issue efficiently a...7...[Clinical Error][3][Does not acknowledge potential clinical conce...[I will reorder the medication for you and sen...[Yes][The actual physician response also does not e...True3.0TrueTrue
\n", + "

5 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " row_number file_path \\\n", + "20 0020 ../error_checking/automated_outputs/evaluator_... \n", + "25 0025 ../error_checking/automated_outputs/evaluator_... \n", + "51 0051 ../error_checking/automated_outputs/evaluator_... \n", + "66 0066 ../error_checking/automated_outputs/evaluator_... \n", + "72 0072 ../error_checking/automated_outputs/evaluator_... \n", + "\n", + " subject type \\\n", + "20 Prescription Question Medication Request \n", + "25 Visit Follow-up Question Administrative Request \n", + "51 Non-urgent Medical Question Appointment Request \n", + "66 Prescription Question Medication Request \n", + "72 Prescription Question Medication Request \n", + "\n", + " reasoning \\\n", + "20 The patient is asking about adjustment of her ... \n", + "25 The patient is requesting support in having a ... \n", + "51 The message is from a guardian requesting avai... \n", + "66 The patient's message is specifically requesti... \n", + "72 The patient's message is about being out of Am... \n", + "\n", + " clinical_accuracy_score \\\n", + "20 6 \n", + "25 7 \n", + "51 10 \n", + "66 10 \n", + "72 10 \n", + "\n", + " clinical_accuracy_reasoning \\\n", + "20 The response appropriately assesses the patien... \n", + "25 The LLM response offers to facilitate the re-s... \n", + "51 The response gives accurate instructions on ho... \n", + "66 The LLM's response accurately confirms the req... \n", + "72 The response correctly addresses the medicatio... \n", + "\n", + " urgency_recognition_score \\\n", + "20 10 \n", + "25 10 \n", + "51 10 \n", + "66 6 \n", + "72 7 \n", + "\n", + " urgency_recognition_reasoning \\\n", + "20 The LLM recognizes that the patient is current... \n", + "25 The LLM correctly treats this as a non-urgent,... \n", + "51 The message is handled appropriately as a rout... \n", + "66 The response completes the requested action bu... \n", + "72 The response addresses the issue efficiently a... \n", + "\n", + " professional_consultation_guidance_score ... error_types \\\n", + "20 7 ... [Clinical Error] \n", + "25 7 ... [Non-Clinical Error] \n", + "51 8 ... [Non-Clinical Error] \n", + "66 7 ... [Non-Clinical Error] \n", + "72 7 ... [Clinical Error] \n", + "\n", + " error_severities error_descriptions \\\n", + "20 [3] [Prescribing hydroxyzine as a safety medicatio... \n", + "25 [3] [Incorrectly states the provider's office can ... \n", + "51 [3] [Omission of tailored appointment guidance and... \n", + "66 [3] [Omission of information about what to do if t... \n", + "72 [3] [Does not acknowledge potential clinical conce... \n", + "\n", + " error_text_excerpts \\\n", + "20 [Regarding the hydroxyzine tablet, I will pres... \n", + "25 [I will contact Dr. Sun’s office to have the q... \n", + "51 [please use the Stanford MyHealth app to view ... \n", + "66 [It should be available once processed by the ... \n", + "72 [I will reorder the medication for you and sen... \n", + "\n", + " error_in_physician_response \\\n", + "20 [Yes] \n", + "25 [Yes] \n", + "51 [Yes] \n", + "66 [Yes] \n", + "72 [Yes] \n", + "\n", + " reason_for_error_in_physician_response has_error \\\n", + "20 [At this time, I am not able to prescribe hydr... True \n", + "25 [Unfortunately, we do not handle any pre scree... True \n", + "51 [Are you available for a visit on a Friday aft... True \n", + "66 [Reminder:For urgent issues, call 650-498-9000... True \n", + "72 [The actual physician response also does not e... True \n", + "\n", + " avg_error_severity has_LLM_response shared_error \n", + "20 3.0 True True \n", + "25 3.0 True True \n", + "51 3.0 True True \n", + "66 3.0 True True \n", + "72 3.0 True True \n", + "\n", + "[5 rows x 24 columns]" + ] + }, + "execution_count": 260, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shared_errors_df[shared_errors_df[\"avg_error_severity\"] == 3]" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Good morning, Dr. Baule,Hope you had a nice Thanksgiving. At our last appointment, we discussed scheduling a colonoscopy. I received a questionnaire, from Dr. Sun’s office, however, it expired and I’m unable to complete the pre screening process. Can the questionnaire, be resent. Thank you,Marco \n", + "Hi Marco,Unfortunately, we do not handle any pre screening questionnaires that are sent by Dr. Sun's office. Please give them a call in regards to the questionnaire, if they are able to resend it or maybe do it over the phone with you. Let us know. Thank you.Best,Family Medicine Samaritan Los GatosPlease note: It may take up to 48 hours to respond to your myhealth message. If you have any urgent concerns, please call. Calls/Messages sent after 5pm will not be addressed until the following business day. Office Hours: Monday - Friday 8:00am - 5:00pm. Saturday/Sunday: CLOSED\n", + "Good morning, Marco,<10><10>I hope you had a nice Thanksgiving as well.<10><10>I will contact Dr. Sun’s office to have the questionnaire resent to you. You should receive it shortly. If you encounter any further issues, please let me know.<10><10>Best regards,\n" + ] + }, + { + "data": { + "text/plain": [ + "[\"Incorrectly states the provider's office can contact Dr. Sun's office and have the questionnaire resent, which does not align with actual office workflow.\"]" + ] + }, + "execution_count": 264, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shared_errors_df[shared_errors_df[\"avg_error_severity\"] == 3].loc[25]\n", + "raw_message_25 = raw_data.loc[25]\n", + "print(raw_message_25[\"Patient Message\"].replace(\"<10>\", \"\\n\"))\n", + "print(raw_message_25[\"Actual Response Sent to Patient\"])\n", + "print(raw_message_25[\"Suggested Response from LLM\"])\n", + "sample_25 = shared_errors_df[shared_errors_df[\"avg_error_severity\"] == 3].loc[25]\n", + "sample_25[\"error_descriptions\"]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sage_recommender", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/evaluator_analysis_notebook.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/evaluator_analysis_notebook.ipynb new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/evaluator_analysis_notebook.ipynb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/example_config_usage.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/example_config_usage.py new file mode 100644 index 00000000..85867c4d --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/example_config_usage.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 +""" +Example script showing how to use config.py with the automated error checking system. + +This demonstrates different ways to use the configuration system. +""" + +from automated_error_checking import AutomatedErrorChecker +import config + +def example_1_basic_usage(): + """Example 1: Use all default config values""" + print("=== Example 1: Basic Usage (All Defaults) ===") + + try: + # This uses all values from config.py automatically + processor = AutomatedErrorChecker() + print(f"Using Excel file: {processor.excel_path}") + print(f"Output directory: {processor.output_dir}") + print(f"Model: {config.MODEL}") + print(f"Delay: {config.DELAY_BETWEEN_CALLS}s") + print("✅ Successfully initialized AutomatedErrorChecker") + except ValueError as e: + if "HEALTHREX_API_KEY" in str(e): + print("⚠️ API Key not set - this is expected for demonstration") + print(" To run actual processing, create a .env file with:") + print(" HEALTHREX_API_KEY=your_api_key_here") + print(" Install python-dotenv if not already installed: pip install python-dotenv") + else: + print(f"❌ Error: {e}") + except Exception as e: + print(f"❌ Unexpected error: {e}") + print() + +def example_2_override_some_config(): + """Example 2: Override some config values""" + print("=== Example 2: Override Some Config Values ===") + + try: + # Override some values while keeping others from config + processor = AutomatedErrorChecker( + excel_path="../data/sampled_df_with_generated_questions.xlsx", + output_dir="../custom_outputs" + ) + + print(f"✅ Successfully created processor with custom paths") + print(f" Excel: {processor.excel_path}") + print(f" Output: {processor.output_dir}") + + # Note: We don't actually call process_all_data here to avoid API calls + print(" (Skipping actual processing to avoid API calls)") + + except ValueError as e: + if "HEALTHREX_API_KEY" in str(e): + print("⚠️ API Key not set - this is expected for demonstration") + print(" To run actual processing, create a .env file with:") + print(" HEALTHREX_API_KEY=your_api_key_here") + print(" Install python-dotenv if not already installed: pip install python-dotenv") + else: + print(f"❌ Error: {e}") + except Exception as e: + print(f"❌ Unexpected error: {e}") + print() + +def example_3_modify_config_programmatically(): + """Example 3: Modify config values programmatically""" + print("=== Example 3: Modify Config Programmatically ===") + + try: + # Temporarily modify config values + original_model = config.MODEL + original_delay = config.DELAY_BETWEEN_CALLS + + # Change config for this run + config.MODEL = "gemini-2.5-pro" + config.DELAY_BETWEEN_CALLS = 0.5 + + processor = AutomatedErrorChecker() + print(f"✅ Successfully created processor with modified config") + print(f" Model: {config.MODEL}") + print(f" Delay: {config.DELAY_BETWEEN_CALLS}s") + + # Restore original values + config.MODEL = original_model + config.DELAY_BETWEEN_CALLS = original_delay + + except ValueError as e: + if "HEALTHREX_API_KEY" in str(e): + print("⚠️ API Key not set - this is expected for demonstration") + print(" To run actual processing, create a .env file with:") + print(" HEALTHREX_API_KEY=your_api_key_here") + print(" Install python-dotenv if not already installed: pip install python-dotenv") + else: + print(f"❌ Error: {e}") + except Exception as e: + print(f"❌ Unexpected error: {e}") + print() + +def example_4_selective_saving(): + """Example 4: Use selective saving options""" + print("=== Example 4: Selective Saving ===") + + try: + # Temporarily disable some saving options + original_save_inputs = config.SAVE_INPUTS + original_save_parser = config.SAVE_PARSER_OUTPUTS + + config.SAVE_INPUTS = False # Don't save input files + config.SAVE_PARSER_OUTPUTS = False # Don't save parser outputs + + processor = AutomatedErrorChecker() + print(f"✅ Successfully created processor with selective saving") + print(f" Save inputs: {config.SAVE_INPUTS}") + print(f" Save parser outputs: {config.SAVE_PARSER_OUTPUTS}") + print(f" Save evaluator outputs: {config.SAVE_EVALUATOR_OUTPUTS}") + print(f" Save summary: {config.SAVE_SUMMARY}") + + # Restore original values + config.SAVE_INPUTS = original_save_inputs + config.SAVE_PARSER_OUTPUTS = original_save_parser + + except ValueError as e: + if "HEALTHREX_API_KEY" in str(e): + print("⚠️ API Key not set - this is expected for demonstration") + print(" To run actual processing, create a .env file with:") + print(" HEALTHREX_API_KEY=your_api_key_here") + print(" Install python-dotenv if not already installed: pip install python-dotenv") + else: + print(f"❌ Error: {e}") + except Exception as e: + print(f"❌ Unexpected error: {e}") + print() + +def example_5_batch_processing(): + """Example 5: Batch processing with different configs""" + print("=== Example 5: Batch Processing ===") + + try: + # Process in batches with different settings + batches = [ + {"start": 0, "end": 10, "model": "gpt-4.1", "delay": 1.0}, + {"start": 10, "end": 20, "model": "gemini-2.5-pro", "delay": 0.5}, + ] + + for i, batch in enumerate(batches): + print(f"Processing batch {i+1}: rows {batch['start']}-{batch['end']}") + + # Temporarily set config for this batch + original_model = config.MODEL + original_delay = config.DELAY_BETWEEN_CALLS + + config.MODEL = batch["model"] + config.DELAY_BETWEEN_CALLS = batch["delay"] + + processor = AutomatedErrorChecker() + print(f" ✅ Created processor for batch {i+1}") + print(f" Model: {config.MODEL}, Delay: {config.DELAY_BETWEEN_CALLS}s") + + # Note: We don't actually call process_all_data here to avoid API calls + print(f" (Skipping actual processing to avoid API calls)") + + # Restore original config + config.MODEL = original_model + config.DELAY_BETWEEN_CALLS = original_delay + + except ValueError as e: + if "HEALTHREX_API_KEY" in str(e): + print("⚠️ API Key not set - this is expected for demonstration") + print(" To run actual processing, create a .env file with:") + print(" HEALTHREX_API_KEY=your_api_key_here") + print(" Install python-dotenv if not already installed: pip install python-dotenv") + else: + print(f"❌ Error: {e}") + except Exception as e: + print(f"❌ Unexpected error: {e}") + print() + +def show_current_config(): + """Show current configuration values""" + print("=== Current Configuration ===") + print(f"Excel Path: {config.EXCEL_PATH}") + print(f"Output Directory: {config.OUTPUT_DIR}") + print(f"Start Row: {config.START_ROW}") + print(f"End Row: {config.END_ROW}") + print(f"Model: {config.MODEL}") + print(f"Delay Between Calls: {config.DELAY_BETWEEN_CALLS}s") + print(f"Log Level: {config.LOG_LEVEL}") + print(f"Save Inputs: {config.SAVE_INPUTS}") + print(f"Save Parser Outputs: {config.SAVE_PARSER_OUTPUTS}") + print(f"Save Evaluator Outputs: {config.SAVE_EVALUATOR_OUTPUTS}") + print(f"Save Summary: {config.SAVE_SUMMARY}") + print(f"Create Analysis DF: {config.CREATE_ANALYSIS_DF}") + print() + +if __name__ == "__main__": + print("Config.py Usage Examples") + print("=" * 50) + + # Show current config + show_current_config() + + # Run all examples (they now handle missing API key gracefully) + example_1_basic_usage() + # example_2_override_some_config() + # example_3_modify_config_programmatically() + # example_4_selective_saving() + # example_5_batch_processing() + + print("Examples completed successfully!") + print("\n📝 Note: To run actual processing with API calls:") + print(" 1. Create a .env file with: HEALTHREX_API_KEY=your_api_key_here") + print(" 2. Install python-dotenv if not already installed: pip install python-dotenv") + print(" 3. Then run: python automated_error_checking.py") \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/huggingface_embedding.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/huggingface_embedding.ipynb new file mode 100644 index 00000000..54ebebf8 --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/notebook/huggingface_embedding.ipynb @@ -0,0 +1,893 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "import traceback\n", + "import pandas as pd\n", + "pd.set_option('display.max_columns', None)\n", + "from typing import Tuple, Dict, List\n", + "\n", + "from langchain_huggingface import HuggingFaceEmbeddings\n", + "from langchain.text_splitter import RecursiveCharacterTextSplitter\n", + "from sklearn.metrics.pairwise import cosine_similarity\n", + "import numpy as np\n", + "import marshal\n", + "\n", + "\n", + "from pinecone import Pinecone, ServerlessSpec\n", + "from dotenv import load_dotenv\n", + "load_dotenv()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "pc = Pinecone(api_key=os.getenv(\"PINECONE_API_KEY\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "data_path = \"/Users/wenyuanchen/Library/CloudStorage/Box-Box/ART_PerMessage_1_17_Updated.xlsx\"\n", + "data_sample = pd.read_excel(data_path, nrows=100) # or whatever number of rows you want" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_sample[\"Message Position in Thread\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Find Thread_IDs that appear once now\n", + "thread_counts = data_sample['Thread ID'].value_counts()\n", + "threads_to_keep = thread_counts[thread_counts == 1].index\n", + "\n", + "# Filter the dataframe to keep only rows with those Thread_IDs\n", + "filtered_data = data_sample[data_sample['Thread ID'].isin(threads_to_keep)].sort_values('Thread ID')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2674" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Filter out rows where patient message and actual response are not present\n", + "condition =(filtered_data[\"Patient Message\"].notna()) & (filtered_data[\"Actual Response Sent to Patient\"].notna())\n", + "filtered_data = filtered_data[condition]\n", + "filtered_data[\"Thread ID\"].nunique() # only 2674 threads left\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "question_answer_pairs = filtered_data[[\"Thread ID\",\"Patient Message\", \"Actual Response Sent to Patient\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_97824/3905878187.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " question_answer_pairs[\"_id\"] = question_answer_pairs[\"Thread ID\"].astype(str)\n", + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_97824/3905878187.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " question_answer_pairs[\"chunk_text\"] = question_answer_pairs[\"Patient Message\"]\n", + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_97824/3905878187.py:3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " question_answer_pairs.drop(columns=[\"Patient Message\",\"Thread ID\"], inplace=True)\n" + ] + } + ], + "source": [ + "question_answer_pairs[\"_id\"] = question_answer_pairs[\"Thread ID\"].astype(str)\n", + "question_answer_pairs[\"chunk_text\"] = question_answer_pairs[\"Patient Message\"]\n", + "question_answer_pairs.drop(columns=[\"Patient Message\",\"Thread ID\"], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "records = question_answer_pairs.to_dict('records')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def create_embeddings():\n", + " embeddings = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/all-mpnet-base-v2\"\n", + " )\n", + " return embeddings\n", + "embeddings_model = create_embeddings()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/8AAANVCAYAAAAuhU7eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoNNJREFUeJzs3XlclXX+///nkeUICEdQAUlcMjUJt7QQnVxyLdAma9QoyjS10SRMx3TasCkxtzbLbHEpK5pKm0kSlyzL3G2oULPNNUEcRVB0QOH6/dGX6+cRNI6cI3R9Hvfb7dxunvf7da7rdZ1zoJ5cm80wDEMAAAAAAMCyalV3AwAAAAAAwLMI/wAAAAAAWBzhHwAAAAAAiyP8AwAAAABgcYR/AAAAAAAsjvAPAAAAAIDFEf4BAAAAALA4wj8AAAAAABZH+AcAAAAAwOII/wAASdKiRYtks9nMR+3atRUeHq6ePXsqNTVVubm55V6TkpIim83m0npOnTqllJQUff755y69rqJ1NW3aVPHx8S4t5/e88847eu655yqcs9lsSklJcev63O3TTz9Vp06dFBAQIJvNpo8++qhcTY8ePZw+6ws9yrbVZrPpgQceuLwbcokq+50cNmyYbDabAgMDdfLkyXLz+/btU61atf4Qn3l1+OWXX/TAAw+oZcuW8vPzk7+/v6655ho9+uij+vXXX6u7PUnSJ598wmcHAOfwru4GAAA1y8KFC3X11VfrzJkzys3N1fr16/XMM89o1qxZeu+999S7d2+z9r777lP//v1dWv6pU6c0depUSb+F0Mq6lHVdinfeeUdZWVlKTk4uN7dx40Y1atTI4z1cKsMwNHjwYLVs2VL//ve/FRAQoFatWpWre/nll1VQUGA+T09P11NPPWV+9mVq8ra6g4+Pj86ePav33ntPI0aMcJpbuHChAgMDnd4n/Gb58uUaOnSo6tevrwceeEAdOnSQzWbTd999pwULFig9PV3/+c9/qrtNffLJJ3rppZf4AwAA/D+EfwCAk+joaHXq1Ml8ftttt2n8+PH605/+pEGDBunHH39UWFiYpN/CoacD4qlTp+Tv739Z1vV7OnfuXK3r/z2HDh3SsWPHdOutt6pXr14XrIuKinJ6/v3330sq/9m7Q9nnVxP5+vpqwIABWrBggVP4NwxDixYt0pAhQ/Taa69VY4c1z549ezR06FC1bNlSn332mRwOhzl34403KikpScuWLavGDgEAF8Jh/wCA39W4cWPNnj1bJ06c0Pz5883xig6xXrt2rXr06KF69erJz89PjRs31m233aZTp05p7969atCggSRp6tSp5uHlw4YNc1re119/rdtvv13BwcFq3rz5BddVZtmyZWrbtq1q166tK6+8Ui+88ILTfNkpDXv37nUa//zzz2Wz2cxTEHr06KH09HTt27fP6fD3MhUdAp6VlaVbbrlFwcHBql27ttq3b6/FixdXuJ53331XjzzyiCIiIhQUFKTevXtr9+7dF37jz7F+/Xr16tVLgYGB8vf3V5cuXZSenm7Op6SkmH8cefjhh2Wz2dS0adNKLbuy3nrrLbVu3Vr+/v5q166dli9f7jR/sc/PMAy9/PLLat++vfz8/BQcHKzbb79dv/zyi9MyVq9erVtuuUWNGjVS7dq1ddVVV2n06NH673//W66f9PR0tW/fXna7Xc2aNdOsWbNc3qbhw4drw4YNTp/DmjVrtG/fPt17770VviYnJ0ejR49Wo0aN5Ovrq2bNmmnq1Kk6e/asU928efPUrl071alTR4GBgbr66qv197//3Zw/deqUJk6cqGbNmql27doKCQlRp06d9O6775o127Zt09ChQ9W0aVP5+fmpadOmuuOOO7Rv375yfa1fv16xsbGqXbu2rrjiCj322GN6/fXXK/zuv/fee4qNjVVAQIDq1Kmjfv36VWpv/Zw5c1RYWKiXX37ZKfiXsdlsGjRokNPYggUL1K5dO3Mbb731Vu3atcuppkePHhUeCTRs2DCn7/HevXtls9k0a9YszZkzR82aNVOdOnUUGxurTZs2Ob3upZdeMnsqe5S9D++//75iYmLkcDjk7++vK6+8UsOHD//d7QeAPzL2/AMAKuXmm2+Wl5eXvvjiiwvW7N27V3Fxcbrhhhu0YMEC1a1bV7/++qsyMjJUXFyshg0bKiMjQ/3799eIESN03333SZL5B4EygwYN0tChQ3X//fersLDwon1lZmYqOTlZKSkpCg8P19tvv60HH3xQxcXFmjhxokvb+PLLL2vUqFH6+eefK7X3cvfu3erSpYtCQ0P1wgsvqF69elqyZImGDRumw4cPa9KkSU71f//739W1a1e9/vrrKigo0MMPP6wBAwZo165d8vLyuuB61q1bpz59+qht27Z64403ZLfb9fLLL2vAgAF69913NWTIEN13331q166dBg0apHHjxikhIUF2u92l7b+Y9PR0bd26VU8++aTq1KmjGTNm6NZbb9Xu3bt15ZVXOtVW9PmNHj1aixYtUlJSkp555hkdO3ZMTz75pLp06aJvvvnGPJrk559/VmxsrO677z45HA7t3btXc+bM0Z/+9Cd999138vHxkfTbtQ1uueUWxcbGKi0tTSUlJZoxY4YOHz7s0nb17t1bTZo00YIFC/TMM89Ikt544w1169ZNLVq0KFefk5Oj66+/XrVq1dLjjz+u5s2ba+PGjXrqqae0d+9eLVy4UJKUlpamMWPGaNy4cZo1a5Zq1aqln376STt37jSX9dBDD+mtt97SU089pQ4dOqiwsFBZWVk6evSoWbN37161atVKQ4cOVUhIiLKzszVv3jxdd9112rlzp+rXry9J+vbbb9WnTx+1bNlSixcvlr+/v1555RUtWbKk3DZMmzZNjz76qO699149+uijKi4u1syZM3XDDTdoy5Yt5Y4MOdeqVasUFhZW6aNgUlNT9fe//1133HGHUlNTdfToUaWkpCg2NlZbt26t8D2ujJdeeklXX321eX2Oxx57TDfffLP27Nkjh8Ohxx57TIWFhfrggw+0ceNG83UNGzbUxo0bNWTIEA0ZMkQpKSmqXbu29u3bp7Vr115SLwDwh2EAAGAYxsKFCw1JxtatWy9YExYWZrRu3dp8/sQTTxjn/qfkgw8+MCQZmZmZF1zGkSNHDEnGE088UW6ubHmPP/74BefO1aRJE8Nms5VbX58+fYygoCCjsLDQadv27NnjVPfZZ58ZkozPPvvMHIuLizOaNGlSYe/n9z106FDDbrcb+/fvd6q76aabDH9/f+P48eNO67n55pud6v75z38akoyNGzdWuL4ynTt3NkJDQ40TJ06YY2fPnjWio6ONRo0aGaWlpYZhGMaePXsMScbMmTMvurzz/d5nL8kICwszCgoKzLGcnByjVq1aRmpqqjl2oc9v48aNhiRj9uzZTuMHDhww/Pz8jEmTJlW43tLSUuPMmTPGvn37DEnGv/71L3MuJibGiIiIME6fPm2OFRQUGCEhIeW+JxW55557jICAALPv8PBw48yZM8bRo0cNu91uLFq0qMLv6ujRo406deoY+/btc1rerFmzDEnGjh07DMMwjAceeMCoW7fuRXuIjo42/vznP/9ur+c6e/ascfLkSSMgIMB4/vnnzfG//OUvRkBAgHHkyBFzrKSkxIiKinL67u/fv9/w9vY2xo0b57TcEydOGOHh4cbgwYMvuv7atWsbnTt3rlSveXl5hp+fX7nv/f79+w273W4kJCSYY927dze6d+9ebhn33HOP089j2Xe8TZs2xtmzZ83xLVu2GJKMd9991xwbO3Zshd+Fss+q7OcTAP6v4LB/AEClGYZx0fn27dvL19dXo0aN0uLFi8sd0l1Zt912W6Vrr7nmGrVr185pLCEhQQUFBfr6668vaf2VtXbtWvXq1UuRkZFO48OGDdOpU6ec9jhK0sCBA52et23bVpIqPIS7TGFhoTZv3qzbb79dderUMce9vLyUmJiogwcPVvrUgaro2bOnAgMDzedhYWEKDQ2tsPfzP7/ly5fLZrPprrvu0tmzZ81HeHi42rVr53Tnh9zcXN1///2KjIyUt7e3fHx81KRJE0kyDxUvLCzU1q1bNWjQINWuXdt8bWBgoAYMGODytt177706fPiwVqxYobffflu+vr76y1/+UmHt8uXL1bNnT0VERDhty0033STpt6M0JOn666/X8ePHdccdd+hf//pXhactXH/99VqxYoUmT56szz//XKdPny5Xc/LkST388MO66qqr5O3tLW9vb9WpU0eFhYVOh86vW7dON954o3kkgCTVqlVLgwcPdlreypUrdfbsWd19991O/deuXVvdu3d3+S4cF7Nx40adPn3aPK2nTGRkpG688UZ9+umnl7zsuLg4p6NlKvOzVOa6666TJA0ePFj//Oc/a8zdCQDA0wj/AIBKKSws1NGjRxUREXHBmubNm2vNmjUKDQ3V2LFj1bx5czVv3lzPP/+8S+tq2LBhpWvDw8MvOHbu4dOecPTo0Qp7LXuPzl9/vXr1nJ6XHZZfUegrk5eXJ8MwXFqPJ5zfu/Rb/xX1fn6vhw8flmEYCgsLk4+Pj9Nj06ZNZjAuLS1V3759tXTpUk2aNEmffvqptmzZYp7LXbauvLw8lZaWXvSzd0WTJk3Uq1cvLViwQAsWLNDQoUMveJHCw4cP6+OPPy63Hddcc40kmduSmJioBQsWaN++fbrtttsUGhqqmJgYrV692lzWCy+8oIcfflgfffSRevbsqZCQEP35z3/Wjz/+aNYkJCRo7ty5uu+++7Ry5Upt2bJFW7duVYMGDZze+6NHj5qnTpzr/LGy0yKuu+66ctvw3nvvVfhHinM1btxYe/bsuWjNuT1JFf88R0REVOl7eyk/S2W6deumjz76yPwjSKNGjRQdHe10rQUAsCLO+QcAVEp6erpKSkp+9/Z8N9xwg2644QaVlJRo27ZtevHFF5WcnKywsDANHTq0UuuqzH3ay+Tk5FxwrCwglO0dLioqcqr7vaDze+rVq6fs7Oxy44cOHZIkp72wlyo4OFi1atXy+Hrc6fzPr379+rLZbPryyy8rvA5B2VhWVpa++eYbLVq0SPfcc485/9NPPznVBwcHy2azXfSzd9Xw4cN11113qbS0VPPmzbtgXf369dW2bVs9/fTTFc6f+8exe++9V/fee68KCwv1xRdf6IknnlB8fLx++OEHNWnSRAEBAZo6daqmTp1qHnkwefJkDRgwQN9//73y8/O1fPlyPfHEE5o8ebK53KKiIh07dsxpvfXq1avwegfnvx9l35UPPvjAPKLCFf369dOLL76oTZs2/e55/2U/fxf67p77va1du7by8/PL1VX1Z/RCbrnlFt1yyy0qKirSpk2blJqaqoSEBDVt2lSxsbEeWScAVDf2/AMAftf+/fs1ceJEORwOjR49ulKv8fLyUkxMjHnF7bJD8F3ZQ1cZO3bs0DfffOM09s477ygwMFDXXnutJJlXC//222+d6v7973+XW96F9mZXpFevXlq7dq0Zwsu8+eab8vf3d8utAQMCAhQTE6OlS5c69VVaWqolS5aoUaNGatmyZZXX40nx8fEyDEO//vqrOnXqVO7Rpk0bSf//Hw3O/wPBuXeYkH57T66//notXbpU//vf/8zxEydO6OOPP76kHm+99VbdeuutGj58+EU/t/j4eGVlZal58+YVbktFR8YEBATopptu0iOPPKLi4mLt2LGjXE1YWJiGDRumO+64Q7t379apU6dks9lkGEa59+P1119XSUmJ01j37t21du1ap7BcWlqq999/36muX79+8vb21s8//1xh/793q8fx48crICBAY8aMqTCsG4ZhXiwzNjZWfn5+5S46ePDgQfOUmTJNmzbVDz/84PQHuqNHj2rDhg0X7ediKvO7xm63q3v37ubFHitzxwMA+KNizz8AwElWVpZ5HnBubq6+/PJLLVy4UF5eXlq2bFm5K/Of65VXXtHatWsVFxenxo0b63//+58WLFgg6berqku/nZfdpEkT/etf/1KvXr0UEhKi+vXrX/Jt6SIiIjRw4EClpKSoYcOGWrJkiVavXq1nnnnGPHT7uuuuU6tWrTRx4kSdPXtWwcHBWrZsmdavX19ueW3atNHSpUs1b948dezYUbVq1bpgIHriiSfMc8Aff/xxhYSE6O2331Z6erpmzJhR4a3QLkVqaqr69Omjnj17auLEifL19dXLL7+srKwsvfvuuy4dKVEdunbtqlGjRunee+/Vtm3b1K1bNwUEBCg7O1vr169XmzZt9Ne//lVXX321mjdvrsmTJ8swDIWEhOjjjz92OlS+zD/+8Q/1799fffr00YQJE1RSUqJnnnlGAQEB5faKV0bt2rX1wQcf/G7dk08+qdWrV6tLly5KSkpSq1at9L///U979+7VJ598oldeeUWNGjXSyJEj5efnp65du6phw4bKyclRamqqHA6Hec55TEyM4uPj1bZtWwUHB2vXrl166623FBsba353u3XrppkzZ5o/I+vWrdMbb7yhunXrOvX1yCOP6OOPP1avXr30yCOPyM/PT6+88op5t4VatX7b39O0aVM9+eSTeuSRR/TLL7+of//+Cg4O1uHDh7VlyxbzaIQLadasmdLS0jRkyBC1b99eDzzwgDp06CBJ2rlzpxYsWCDDMHTrrbeqbt26euyxx/T3v/9dd999t+644w4dPXpUU6dOVe3atfXEE0+Yy01MTNT8+fN11113aeTIkTp69KhmzJihoKCgyn+I5yn7o9Izzzyjm266SV5eXmrbtq2eeuopHTx4UL169VKjRo10/PhxPf/88/Lx8VH37t0veX0AUONV37UGAQA1SdkV38sevr6+RmhoqNG9e3dj2rRpRm5ubrnXnH8F/o0bNxq33nqr0aRJE8Nutxv16tUzunfvbvz73/92et2aNWuMDh06GHa73ZBk3HPPPU7LO/eK5Rdal2H8drX/uLg444MPPjCuueYaw9fX12jatKkxZ86ccq//4YcfjL59+xpBQUFGgwYNjHHjxhnp6enlrvZ/7Ngx4/bbbzfq1q1r2Gw2p3WqgrsUfPfdd8aAAQMMh8Nh+Pr6Gu3atTMWLlzoVFN2tf/333/fabzsyuXn11fkyy+/NG688UYjICDA8PPzMzp37mx8/PHHFS7PE1f7Hzt2bLnxJk2amJ+dYVz88zMMw1iw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TwYOHCiHw6HAwEDze+KqC/03a+zYsU4/NxEREfLz8zP/m+Nuv9fH7/3cXMoyL/Q9OXv27AX/e33uXNnvLh8fH3Xr1k2jR49Ws2bNZLfb5e/vb36PMjMznX6XBAQEKCIiwvzv8KW4WI/nctf35GLK/v+lSZMm8vPzU5cuXbR161Zzvuz3a/369c33A0DlXCj7SKr075XRo0erefPm8vPzU4MGDXTLLbfo+++/v8xbUjWE//+jCgsL1a5dOzOwlFm3bp3Gjh2rTZs2afXq1Tp79qz69u2rwsJCNWrUSNOnT9e2bdu0bds23XjjjbrlllvK/c/L1q1b9eqrr6pt27bm2DXXXKPs7Gzz8d1330mS8vLy1LVrV/n4+GjFihXauXOnZs+erbp162rr1q1Or1m9erWk335AX3nlFc2dO1e7du3SjBkzNHPmTL344ouSpPvuu0+rV6/WhAkTNHr0aN16662SpKNHjzptf2Fhoc6ePStJmjlzpsLDw9WnTx8dOXJEV1xxhf785z+Xe9+OHTumkpISJSUlSZIefvhh/fDDDxo4cKAKCwvVunVrPfLII5J+CytNmzZV3759dejQIaf3+4cfflBERITZS3BwsNq3by9JWrBggbKzs/XJJ5+osLBQjRs31unTpyVJTz31lL755hsNGTJEbdq00euvv+70mgULFkiS+T/20m9hdPz48Ro3bpzef/99nThxQm3bttWbb76pG264QZmZmbrxxhu1du1ajR07ViNHjpQkRUdHq169ejp16pQOHjyoTz/9VJMmTVJwcLBq1frtV8fXX3+t4cOHq2PHjpo2bZr+9Kc/ycvLS7t27dLLL7+ssWPH6h//+IdeeukldevWTXXq1NEVV1yhV199VXfffbf5PTt48KCWLVum8PBw/fzzzxo7dqxuvvlmdenSRb1799YVV1yhn3/+WS1bttTYsWP1z3/+U2fPnlVAQIACAwO1ceNGhYaGasSIEfr888+1Zs0a83VlQWXcuHHq16+f6tWrp/bt26t+/foaM2aM/vnPf+qWW25R8+bN1bZtW915550yDEPBwcE6duyY7r33Xvn4+GjAgAEyDEN+fn566aWXNHDgQI0ZM0ZPPvmkJGn8+PHasWOH6tevryuuuEKzZ8/WihUrlJCQoM8++0x9+vRRo0aNdM899+iNN97QmjVrNHz4cH333Xfq1auXAgMDzZ+v1NRU8zuXnZ2tRo0a6dprr9UNN9yg9evXKykpST4+PpozZ44aNWqkBx98UN7e3rrnnnt0zz33qKSkRHfffbcaN26sJUuWaP369ebrvLy8zO9S//79FR4ersGDB0v67XanDzzwgLp3765ffvlFqampCgsLU0hIiJYuXarCwkJJMn/m/Pz81LJlS/n7+6tPnz46ceKECgsL1bRpU/n5+Tn97Jw6dUpff/217rjjDoWGhuqqq67S8ePHNXDgQElSy5YtNW7cOIWFhally5YKCgpS3759deTIEfN3StOmTZWTk2P+7EhSbGysIiMjFRUVpfvuu0+ffPKJJOnnn39W586dlZ2drRYtWujOO+/UY489ptq1ays7O1srVqwwX1f2h7TbbrtN48eP10cffSR/f39dffXV6tChg1l77bXXKiYmRp988ok2bNigJk2a6M0331RoaKgCAgL0+uuv67PPPtPNN9+sPn36qKioSFdccYUmTpyoWbNmSZL++c9/mr/HAgICNH/+fH355Zdavny5oqKizPejUaNGeu+997Rp0yZ9/vnnuv32283fxWW/TxcsWKCoqCiFhYWZ70fdunXVs2dPffPNN/rmm2/03Xff6c4779Q111yjjRs3qm7duvrrX/+qNWvW6JtvvlG3bt101VVXmfXffPONnnvuOaf3IyMjQ0uWLNGuXbvM3yVvv/32BX93l/1e//7772Wz2fT/tXfm8TVd6///nCE5J7OIzBMhpiAhMUQiSUsEEVpFEERNr5iiKG65aiaGxNwYrqL0Sl1CYwpCaFFCGwRBzHOrqBpjyOf3h9/ePTsnJ4Zqfa+73q/XfiV7PXut/exnP+tZe+211j6pqalYuHAhXF1d0bhxYzRs2BAk0a1bN9nXbWxscPv2bYSFheH27dsYN24csrKykJKSgitXrqBFixYICQmBvb09Zs2ahV27dsk+IfmJxLp167B//364uLhg9uzZJeoocebMGYSGhqJq1arYuXMnDh8+LPvJq2KqzWrXrp1cb1JSUjB37lwcOHBAbnPu3r37yuf6M3oAQLNmzRTHSPXmdcs05SfdunUz2V5PmTIF8+fPR0REBHQ6HQYNGgRzc3OcPn0aixYtwtSpUzF58mTExMQoOuJSLBk1ahR++uknpKeny+3w6yDpYeqZAnizflIa0vPL8uXLkZeXh6ZNm6JJ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of threads is 246588\n", + "the number of messages is 848790\n", + " the average number of messages per thread is 3.4421383035670834\n" + ] + } + ], + "source": [ + "# Get the count of each Thread ID\n", + "thread_counts = data_sample['Thread ID'].value_counts()\n", + "# Now, get the frequency of each count (i.e., how many threads have count=1, count=2, etc.)\n", + "count_frequency = thread_counts.value_counts().sort_index()\n", + "\n", + "# Plot\n", + "plt.figure(figsize=(12,10))\n", + "plt.bar(count_frequency.index, count_frequency.values)\n", + "plt.xlabel('Number of Messages in Thread (Count)')\n", + "plt.ylabel('Number of Threads (Frequency)')\n", + "plt.title('Distribution of Thread Message Counts')\n", + "plt.xticks(count_frequency.index) # Show all counts on x-axis if not too many\n", + "plt.show()\n", + "print(f\"the number of threads is {len(thread_counts)}\")\n", + "print(f\"the number of messages is {thread_counts.sum()}\")\n", + "print(f\" the average number of messages per thread is {thread_counts.mean()}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "------------------finished embedding---------------\n", + "Processed batch 1, vectors 0 to 100\n", + "Processed batch 2, vectors 100 to 200\n", + "Processed batch 3, vectors 200 to 300\n", + "Processed batch 4, vectors 300 to 400\n", + "Processed batch 5, vectors 400 to 500\n", + "Processed batch 6, vectors 500 to 600\n", + "Processed batch 7, vectors 600 to 700\n", + "Processed batch 8, vectors 700 to 800\n", + "Processed batch 9, vectors 800 to 900\n", + "Processed batch 10, vectors 900 to 1000\n", + "Processed batch 11, vectors 1000 to 1100\n", + "Processed batch 12, vectors 1100 to 1200\n", + "Processed batch 13, vectors 1200 to 1300\n", + "Processed batch 14, vectors 1300 to 1400\n", + "Processed batch 15, vectors 1400 to 1500\n", + "Processed batch 16, vectors 1500 to 1600\n", + "Processed batch 17, vectors 1600 to 1700\n", + "Processed batch 18, vectors 1700 to 1800\n", + "Processed batch 19, vectors 1800 to 1900\n", + "Processed batch 20, vectors 1900 to 2000\n", + "Processed batch 21, vectors 2000 to 2100\n", + "Processed batch 22, vectors 2100 to 2200\n", + "Processed batch 23, vectors 2200 to 2300\n", + "Processed batch 24, vectors 2300 to 2400\n", + "Processed batch 25, vectors 2400 to 2500\n", + "Processed batch 26, vectors 2500 to 2600\n", + "Processed batch 27, vectors 2600 to 2674\n", + "Successfully saved all 2674 embeddings to Pinecone using Thread IDs as identifiers\n" + ] + } + ], + "source": [ + "# Create embeddings for all texts\n", + "texts = question_answer_pairs[\"chunk_text\"].tolist()\n", + "thread_ids = question_answer_pairs[\"_id\"].tolist()\n", + "actual_responses = question_answer_pairs[\"Actual Response Sent to Patient\"].tolist()\n", + "embeddings = embeddings_model.embed_documents(texts)\n", + "\n", + "\n", + "print(\"------------------finished embedding---------------\")\n", + "# Initialize Pinecone index if not exists\n", + "index_name = \"question-answer-pairs\"\n", + "if not pc.has_index(index_name):\n", + " pc.create_index(\n", + " name=index_name,\n", + " dimension=len(embeddings[0]),\n", + " metric=\"cosine\",\n", + " spec=ServerlessSpec(\n", + " cloud=\"aws\",\n", + " region=\"us-east-1\"\n", + " )\n", + " )\n", + "\n", + "# Get the index\n", + "index = pc.Index(index_name)\n", + "\n", + "# Process in batches of 100\n", + "batch_size = 100\n", + "for i in range(0, len(texts), batch_size):\n", + " # Get the current batch\n", + " batch_end = min(i + batch_size, len(texts))\n", + " batch_vectors = []\n", + " \n", + " # Prepare vectors for the current batch\n", + " for j in range(i, batch_end):\n", + " batch_vectors.append({\n", + " \"id\": str(thread_ids[j]),\n", + " \"values\": embeddings[j],\n", + " \"metadata\": {\n", + " \"text\": texts[j],\n", + " \"thread_id\": str(thread_ids[j]),\n", + " \"response\": actual_responses[j], # Added the actual response\n", + " \"model\": \"sentence-transformers/all-mpnet-base-v2\"\n", + " }\n", + " })\n", + " \n", + " # Upsert the batch\n", + " index.upsert(vectors=batch_vectors, namespace=\"subsample-space\")\n", + " print(f\"Processed batch {i//batch_size + 1}, vectors {i} to {batch_end}\")\n", + "\n", + "print(f\"Successfully saved all {len(texts)} embeddings to Pinecone using Thread IDs as identifiers\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'matches': [{'id': '254764934',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'The refill has been sent for Trulicity '\n", + " '1.5 mg per week <13><10>Let me know '\n", + " \"how you feel in 3 months and we'll \"\n", + " 'check your labs again at that '\n", + " 'point.<13><10><13><10>Katy Young-Lee '\n", + " 'M.D.<13><10>',\n", + " 'text': \"No side effects noted so far. It's been \"\n", + " 'easy to tolerate this drug while Ozempic '\n", + " 'just destroyed me.I had all kinds of side '\n", + " 'effects with that one, but Trulicity has '\n", + " 'been just fine. Thx. ',\n", + " 'thread_id': '254764934'},\n", + " 'score': 0.813580036,\n", + " 'values': []},\n", + " {'id': '255093088',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'No problem, sent to: CVS/pharmacy '\n", + " '#0550 - San Carlos, CA - 1324 San '\n", + " 'Carlos Ave 650-591-7659<13><10> '\n", + " '<13><10>William Hui, MD, 1/8/2025, '\n", + " '12:37 PM<13><10>',\n", + " 'text': 'Hello thank you. No bad side effects. We '\n", + " 'can increase to 5 mg now. thank you!',\n", + " 'thread_id': '255093088'},\n", + " 'score': 0.571994,\n", + " 'values': []},\n", + " {'id': '254397598',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Hi Jana,<13><10>Thank you for your '\n", + " 'message. <13><10>Minoxidil tablets can '\n", + " 'sometimes cause changes in blood '\n", + " 'pressure and heart rate, which may '\n", + " 'interact with your current '\n", + " 'medications, flecainide and nadolol. '\n", + " '<13><10>I recommend discussing this '\n", + " 'with your cardiologist to ensure it '\n", + " 'is safe for you to start minoxidil '\n", + " 'tablets.<13><10>Please let me know if '\n", + " 'you have any other questions or '\n", + " 'concerns.<13><10><13><10>Best '\n", + " 'regards,<13><10><13><10>Umme Hani '\n", + " 'Khuddus, MD',\n", + " 'text': 'I have a really quick question. I have '\n", + " 'started ozempic as you k ow and would like '\n", + " 'to start taking minoxidil tablets for hair '\n", + " 'loss. Could you please let me know if that '\n", + " 'would be a problem?<13><10><13><10>I am '\n", + " 'currently on flecanide 100mg twice a day '\n", + " 'and nadalol 10mg once a '\n", + " 'day.<13><10><13><10>Thank '\n", + " 'you,<13><10><13><10>Jana',\n", + " 'thread_id': '254397598'},\n", + " 'score': 0.54825455,\n", + " 'values': []},\n", + " {'id': '254823624',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Hi Dar-Der,<13><10><13><10>Thank you '\n", + " \"for reaching out. It's important to be \"\n", + " 'aware of potential side effects of any '\n", + " 'medication. Atorvastatin, like all '\n", + " 'medications, can have side effects. '\n", + " 'Common side effects may include muscle '\n", + " 'pain, fatigue, and digestive issues. '\n", + " 'If you experience any severe or '\n", + " 'persistent side effects, please let me '\n", + " 'know immediately. <13><10><13><10>If '\n", + " 'you have any specific concerns or '\n", + " 'questions about the message from CVS, '\n", + " 'feel free to reply to them for more '\n", + " 'information or schedule an appointment '\n", + " 'with me through the Stanford MyHealth '\n", + " 'app to discuss '\n", + " 'further.<13><10><13><10>Best '\n", + " 'regards,<13><10>Dr Hung',\n", + " 'text': 'Hi Dr. Hung,<13><10>CVS sent me a message '\n", + " 'regarding the side effects of Atorvastatin '\n", + " 'as the following,<13><10>“CVS Pharmacy: Hi '\n", + " 'Dar-der, help manage potential side '\n", + " 'effects of your prescription ATO. Reply M '\n", + " 'for more info.”',\n", + " 'thread_id': '254823624'},\n", + " 'score': 0.523793101,\n", + " 'values': []},\n", + " {'id': '254848035',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': \"Hi Lindsay,<13><10><13><10>I'm glad to \"\n", + " 'hear that you have been tolerating the '\n", + " '1 mg dose of Ozempic well. Since you '\n", + " 'have been doing great on the current '\n", + " 'dose, we can consider increasing it. '\n", + " 'However, I would like to review your '\n", + " 'progress and discuss the next steps in '\n", + " 'detail. <13><10><13><10>Please '\n", + " 'schedule an appointment with me '\n", + " 'through the Stanford MyHealth app so '\n", + " 'we can evaluate and make any necessary '\n", + " 'adjustments to your '\n", + " 'prescription.<13><10><13><10>Thank '\n", + " 'you,<13><10><13><10>Ebony Yvonne '\n", + " 'Tinsley, PA-C',\n", + " 'text': 'Hi Ebony,<13><10><13><10>I was wondering '\n", + " 'if we are able to increase dose of '\n", + " 'ozempic? I think at our last appointment '\n", + " 'you wanted me to be on the 1 mg for 4 '\n", + " 'weeks to make sure I tolerated okay before '\n", + " 'increasing, and I’ve been great on the '\n", + " '1mg. <13><10>Do I need another appointment '\n", + " 'with you or can the prescription be '\n", + " 'changed?<13><10><13><10>Thank '\n", + " 'you,<13><10>Lindsay ',\n", + " 'thread_id': '254848035'},\n", + " 'score': 0.507808626,\n", + " 'values': []},\n", + " {'id': '253971943',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Good Morning Kavya,<13><10><13><10>My '\n", + " \"name is Johnson and I'm one of the \"\n", + " 'nurses supporting Dr. '\n", + " 'Kim.<13><10><13><10>Your message was '\n", + " 'forwarded to our team. Are you back '\n", + " 'from India or are you still '\n", + " 'traveling?<13><10><13><10>Can you '\n", + " 'confirm the medication you completed '\n", + " 'was the rifaximin for 14 '\n", + " 'days?<13><10><13><10>I was reviewing '\n", + " 'your last visit with Naomi and she '\n", + " 'thinks some of your underlying '\n", + " 'symptoms are related to constipation '\n", + " 'and incomplete evacuation. How are '\n", + " 'your bowel movements now? Are you '\n", + " 'having daily bowel movements? Hard, '\n", + " 'soft, loose? <13><10><13><10>Naomi had '\n", + " 'also recommended introducing foods '\n", + " 'with prebiotics (high fiber fruits, '\n", + " 'vegetables, whole grains, reducing '\n", + " 'processed foods, fermented foods such '\n", + " 'as yogurt, kimchi, sauerkraut. A high '\n", + " 'fiber diet with plenty of fluids (up '\n", + " 'to 8 glasses of water daily). You can '\n", + " 'also try adding 1 TBS of metamucil '\n", + " 'once or twice daily to keep your '\n", + " 'bowels regular if '\n", + " 'needed.<13><10><13><10>I have also '\n", + " 'attached some additional educational '\n", + " 'information below to help minimize '\n", + " 'some of the symptoms you are '\n", + " 'experiencing.<13><10><13><10>Thank '\n", + " 'you,<13><10><13><10>Johnson, '\n", + " 'RN<13><10><13><10><13><10><13><10> '\n", + " 'Digestive Health '\n", + " 'Center<13><10>Nutrition Services '\n", + " '<13><10><13><10>Nutrition Tips to '\n", + " 'Reduce Excessive Gas and '\n", + " 'Bloating<13><10><13><10>The Basics of '\n", + " 'Gas<13><10><13><10>Is normal to '\n", + " 'have.<13><10>Is produced <13><10>when '\n", + " 'we swallow, which brings air as a form '\n", + " 'of gas into the body <13><10>when '\n", + " 'bacteria in the digestive tract '\n", + " 'ferments on foods that do not digest '\n", + " 'well<13><10>We get rid of gas by '\n", + " 'belching (burping) and as flatus (gas '\n", + " 'passed from the '\n", + " 'rectum).<13><10><13><10>When gas is '\n", + " 'excessive, then the belching and/or '\n", + " 'flatus may '\n", + " 'increase.<13><10><13><10>Bloating '\n", + " '(trapped air) may occur when gas '\n", + " 'remains and collects in the body. '\n", + " 'This may cause abdominal pain and a '\n", + " 'feeling of '\n", + " 'fullness.<13><10><13><10>General '\n", + " 'Guidelines<13><10><13><10>Try these '\n", + " 'general nutrition tips one by one to '\n", + " 'see whether it would help you feel '\n", + " 'better. Start with what is easy to '\n", + " 'do.<13><10><13><10>However, the '\n", + " 'treatment of gas and bloating may '\n", + " 'change depending on the cause. Work '\n", + " 'with your doctor to help you find the '\n", + " 'cause and resolve your '\n", + " 'symptoms.<13><10><13><10>Reduce '\n", + " 'Swallowed Air<13><10><13><10>This form '\n", + " 'of gas normally passes from the '\n", + " 'stomach into the small intestine where '\n", + " 'part of it is absorbed. The rest '\n", + " 'enters the colon to be passed as '\n", + " 'flatus.<13><10><13><10>When we swallow '\n", + " 'excess air, the air may get expelled '\n", + " 'frequently by '\n", + " 'belching.<13><10><13><10>Tips<13><10>Limit '\n", + " 'carbonated sodas and sparkling water. '\n", + " '<13><10>Make sure your dentures fit '\n", + " 'properly.<13><10>Do not chew '\n", + " 'gum.<13><10>Do not suck on hard '\n", + " 'candies or mints.<13><10>Do not use '\n", + " 'straws.<13><10>Do not '\n", + " 'smoke.<13><10><13><10><13><10><13><10><13><10><13><10>Limit '\n", + " 'Foods That Do Not Digest '\n", + " 'Well<13><10><13><10>How well you '\n", + " 'tolerate these foods depends on the '\n", + " 'type and the amount you '\n", + " 'eat.<13><10><13><10>When these foods '\n", + " 'are eaten in large amounts, gas and/or '\n", + " 'bloating may '\n", + " 'increase.<13><10><13><10>It may help '\n", + " 'to try to eat less of these foods as a '\n", + " 'start. There is no need to avoid any '\n", + " 'food unless that food absolutely '\n", + " 'bothers you.<13><10><13><10>Artificial '\n", + " 'Sweeteners<13><10>Some artificial '\n", + " 'sweeteners if made with sugar alcohols '\n", + " 'do not absorb '\n", + " 'well.<13><10><13><10>Tips<13><10>Limit '\n", + " 'sugar free foods made with sorbitol, '\n", + " 'mannitol, xylitol and maltitol. '\n", + " '<13><10>Read food labels to find out '\n", + " 'if these sweeteners are used as '\n", + " 'ingredients.<13><10><13><10>Lactose '\n", + " '<13><10>Lactose is the milk sugar '\n", + " 'found mainly in '\n", + " 'dairy.<13><10><13><10>A gradual '\n", + " 'decrease over time in lactase levels '\n", + " '(the intestinal enzyme that digests '\n", + " 'lactose) is the most common cause of '\n", + " 'not being able to digest lactose '\n", + " 'well.<13><10><13><10>Tips<13><10>Limit '\n", + " 'dairy with high amounts of lactose '\n", + " 'such as ice cream and regular cow’s '\n", + " 'milk. <13><10>Eat small amounts of low '\n", + " 'lactose and lactose free dairy '\n", + " '<13><10>½ cup of greek yogurt, 1 TBSP '\n", + " 'of cream cheese, a slice of hard '\n", + " 'cheese (cheddar, colby, parmesan, '\n", + " 'swiss), 1 cup of lactose free cow’s '\n", + " 'milk, etc<13><10>Avoid eating multiple '\n", + " 'sources of dairy at the same '\n", + " 'meal.<13><10>Take lactase enzyme pills '\n", + " 'before you eat '\n", + " 'dairy.<13><10><13><10>Fiber<13><10>Fiber '\n", + " 'is found only in plant based foods '\n", + " 'such as beans, fruits, vegetables and '\n", + " 'grains.<13><10><13><10>Tips<13><10>Pay '\n", + " 'attention to how many foods with fiber '\n", + " 'are coming into each meal. If you are '\n", + " 'having symptoms, put less on your '\n", + " 'plate next time. <13><10>Limit high '\n", + " 'fiber foods (>4 grams fiber / ½ cup) '\n", + " 'to a few TBSP to ½ '\n", + " 'cup<13><10>artichokes, beans, '\n", + " 'blackberries, bran, bulgur, chickpeas, '\n", + " 'lentils, multi-grain breads, quinoa, '\n", + " 'raspberries, split peas and '\n", + " 'soybeans<13><10>Do not combine high '\n", + " 'fiber foods together at the same '\n", + " 'meal. <13><10>Drink plenty of water '\n", + " 'throughout the '\n", + " 'day.<13><10><13><10>Raffinose<13><10>Raffinose '\n", + " 'is a sugar found only in plant based '\n", + " 'foods such as asparagus, beans, '\n", + " 'broccoli, brussel sprouts, cabbage, '\n", + " 'cauliflower, chickpeas and '\n", + " 'lentils.<13><10><13><10>Tips<13><10>Do '\n", + " 'not eat daily.<13><10>Limit serving '\n", + " 'sizes to a few TBSP to ½ '\n", + " 'cup.<13><10>As raffinose is water '\n", + " 'soluble (means it leaches into water), '\n", + " 'soak beans/lentils overnight and then '\n", + " 'remove the water the next day. Cook '\n", + " 'the beans/lentils with fresh water. '\n", + " '<13><10><13><10>Fructose<13><10>Fructose '\n", + " 'is a sugar found mainly in fruits, '\n", + " 'vegetables, honey, wheat, garlic and '\n", + " 'onion. It is also used as a sweetener '\n", + " '(high fructose corn syrup). '\n", + " '<13><10><13><10>Tips<13><10>Eat fruits '\n", + " 'and vegetables with low amounts of '\n", + " 'fructose (see list).<13><10>Limit '\n", + " 'major sources of wheat such as breads, '\n", + " 'cereals and pastas. Try gluten free '\n", + " 'versions of these foods as they do not '\n", + " 'have wheat in them. <13><10>Reduce '\n", + " 'honey. <13><10>Do not use garlic and '\n", + " 'onion (including powders). Can use '\n", + " 'garlic and onion infused oils. '\n", + " '<13><10>Limit foods and beverages made '\n", + " 'with high fructose corn syrup. Read '\n", + " 'food labels. <13><10>Eat (keep '\n", + " 'serving sizes to ½ cup) Limit '\n", + " '<13><10>Fruits: banana, berries, '\n", + " 'cantaloupe, grapes, guava, honeydew, '\n", + " 'kiwi, lemon, lime, orange, papaya, '\n", + " 'pineapple, rhubarb, juices made from '\n", + " 'allowed '\n", + " 'fruits<13><10><13><10>Vegetables: bell '\n", + " 'peppers, bok choy, cabbage (common), '\n", + " 'carrots, celery, corn, cucumbers, '\n", + " 'eggplant, green beans, kale, lettuce, '\n", + " 'okra, pumpkin, potatoes, sweet '\n", + " 'potatoes, squash, spinach, tomatoes, '\n", + " 'yam, juices made from allowed '\n", + " 'vegetables Fruits: apple, apricot, '\n", + " 'boysenberries, cherries, dried fruit, '\n", + " 'figs, grapefruit, mango, nectarine, '\n", + " 'pear, peach, persimmon, plum, '\n", + " 'pomegranate, prunes, watermelon, '\n", + " 'juices made from fruits to '\n", + " 'limit<13><10><13><10>Vegetables: '\n", + " 'artichokes, asparagus, beets, '\n", + " 'broccoli, brussel sprouts, '\n", + " 'cauliflower, garlic, leeks, mushrooms, '\n", + " 'onions, peas (green, snow, sugar '\n", + " 'snap), juices made from vegetables to '\n", + " 'limit '\n", + " '<13><10><13><10><13><10>References<13><10>“Living '\n", + " 'with Gas in the Digestive Tract” '\n", + " 'brochure American Gastroenterological '\n", + " 'Association<13><10><13><10>McCray, S. '\n", + " '(2003). Lactose intolerance: '\n", + " 'considerations for the clinician. '\n", + " 'Practical Gastroenterology, 27(2), '\n", + " '21-42.<13><10><13><10>Gibson, P. R., & '\n", + " 'Shepherd, S. J. (2010). Evidence?based '\n", + " 'dietary management of functional '\n", + " 'gastrointestinal symptoms: The FODMAP '\n", + " 'approach. Journal of gastroenterology '\n", + " 'and hepatology, 25(2), '\n", + " '252-258.<13><10><13><10>Not for '\n", + " 'reproduction or publication without '\n", + " 'permission<13><10>Direct inquiries to '\n", + " 'Digestive Health Center (Stanford '\n", + " 'Health Care) NDS '\n", + " '(dietitian) 7/2015 <13><10><13><10>',\n", + " 'text': 'Hi! <13><10><13><10>I completed my course '\n", + " 'of medication, but wanted to note that I '\n", + " 'felt gassiness, more than normal belching '\n", + " 'and bloating, and occasional nausea '\n", + " 'throughout the course of medication. '\n", + " '<13><10><13><10>Those symptoms have '\n", + " 'subsided since completing the course, but '\n", + " 'thought I should report that it didn’t get '\n", + " 'better throughout the 14 days. '\n", + " '<13><10><13><10>Is there any cause for '\n", + " 'concern or anything I should be looking '\n", + " 'out for going forward? ',\n", + " 'thread_id': '253971943'},\n", + " 'score': 0.49942109,\n", + " 'values': []},\n", + " {'id': '254979364',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Hello Denita,<13><10><13><10>A in '\n", + " 'office visit to needed to chart weight '\n", + " 'and height, that are required by '\n", + " 'insurances and for the doctor to '\n", + " 'discuss weight loss options. '\n", + " '<13><10>Please give out office a call '\n", + " 'to schedule an in office appointment. '\n", + " '<13><10><13><10>Thank '\n", + " 'you,<13><10>Angela M ,MA',\n", + " 'text': 'Hi Dr. Alper, <13><10><13><10>I am '\n", + " 'concerned about my recent weight regain '\n", + " 'that currently puts me at 235 lbs - post '\n", + " 'gastric sleeve done June 2016. '\n", + " '<13><10><13><10>I am very fearful of this '\n", + " 'regain and I am requesting a prescription '\n", + " 'for the weight loss drug Ozempic. '\n", + " '<13><10><13><10>Please kindly me know the '\n", + " 'next steps and or your thoughts on moving '\n", + " 'forward with my request. '\n", + " '<13><10><13><10>Thank you, <13><10>Denita '\n", + " 'Canton',\n", + " 'thread_id': '254979364'},\n", + " 'score': 0.494397163,\n", + " 'values': []},\n", + " {'id': '254798955',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Hello Linda, '\n", + " '<13><10><13><10><13><10><13><10>We do '\n", + " 'not recommend you use expired '\n", + " 'medications. Please discard. Are the '\n", + " 'doses '\n", + " 'different?<13><10><13><10><13><10><13><10> '\n", + " 'Best Regards,<13><10><13><10>Perla '\n", + " 'Lara, MA, 1/6/2025, 8:17 '\n", + " 'AM<13><10><13><10>Samaritan Internal '\n", + " 'Medicine<13><10>2410 Samaritan Dr. '\n", + " 'Suite 201<13><10>San Jose, CA '\n", + " '95124<13><10>PH. 408-371-9010 '\n", + " '<13><10><13><10><13><10>',\n", + " 'text': 'Hello Dr Gubbala. Happy new year. Last '\n", + " 'year before I went to the hospital for my '\n", + " 'knee surgery I ordered Ozempic. I have '\n", + " 'that one but it expired last month. Is it '\n", + " 'safe to use or should I throw away and use '\n", + " 'the one just ordered. Thank '\n", + " 'you<13><10>Linda',\n", + " 'thread_id': '254798955'},\n", + " 'score': 0.483372629,\n", + " 'values': []},\n", + " {'id': '255065763',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Hi Luis,<13><10><13><10>My name is '\n", + " 'Christian Martinez, MPA, PA-C. I am a '\n", + " 'covering clinician for your primary '\n", + " 'care doctor, Tsai, Jennifer. '\n", + " '<13><10><13><10>Thank you for reaching '\n", + " 'out. Ozempic (semaglutide) is a '\n", + " 'medication that can be used for weight '\n", + " 'loss in certain cases. It is primarily '\n", + " 'used to manage type 2 diabetes, but it '\n", + " 'has also been shown to help with '\n", + " 'weight loss. <13><10><13><10>To '\n", + " 'determine if Ozempic is a suitable '\n", + " 'option for you, we would need to '\n", + " 'review your medical history, current '\n", + " 'health status, and any potential '\n", + " 'contraindications. I recommend '\n", + " 'scheduling an appointment so you can '\n", + " 'discuss this in more detail and '\n", + " 'evaluate if it is appropriate for you. '\n", + " 'You can use the Stanford MyHealth app '\n", + " 'to schedule the '\n", + " 'appointment.<13><10><13><10>Best,<13><10><13><10>Christian '\n", + " 'Eloy Martinez, PA',\n", + " 'text': 'Hi Dr Tsai, <13><10>I forgot to mention at '\n", + " 'my last visit that i also wanted to '\n", + " 'discuss the use of ozempic for weight '\n", + " 'loss. I wanted to see if that was an '\n", + " 'option for me. ',\n", + " 'thread_id': '255065763'},\n", + " 'score': 0.478905529,\n", + " 'values': []},\n", + " {'id': '253858581',\n", + " 'metadata': {'model': 'sentence-transformers/all-mpnet-base-v2',\n", + " 'response': 'Good Morning Mr. '\n", + " 'Shaw,<13><10><13><10>My name is '\n", + " 'Norris, Medical Assistant here in '\n", + " 'Stanford family medicine (Pleasanton). '\n", + " 'I believe it would be beneficial for '\n", + " 'you to touch base with the Doctor to '\n", + " 'go over any potential interactions and '\n", + " 'care plans before starting the '\n", + " 'medication. The appointment could be '\n", + " 'done via Video visit for your '\n", + " 'convenience. You may reach out to our '\n", + " 'schedulers at 925-534-6500 or via the '\n", + " 'MyHealth app if you are comfortable '\n", + " 'using that '\n", + " 'instead.<13><10><13><10>Thank you so '\n", + " 'much for your time.<13><10>-Norris, MA',\n", + " 'text': 'Hi Dr Luong,<13><10><13><10>I read up side '\n", + " 'effects, there was mention of interactions '\n", + " '- high blood pressure, (active) stomach '\n", + " 'ulcers.<13><10><13><10>Would there be any '\n", + " 'concerns with these interactions taking '\n", + " 'tadalafil?<13><10><13><10>Thank you.',\n", + " 'thread_id': '253858581'},\n", + " 'score': 0.47121942,\n", + " 'values': []}],\n", + " 'namespace': 'subsample-space',\n", + " 'usage': {'read_units': 6}}\n" + ] + } + ], + "source": [ + "vector = embeddings_model.embed_query(\"No side effects noted so far. It's been easy to tolerate this drug while Ozempic\")\n", + "response = index.query(\n", + " namespace=\"subsample-space\",\n", + " vector=vector,\n", + " top_k=10,\n", + " include_values=False,\n", + " include_metadata=True\n", + ")\n", + " \n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# evaluation:\n", + "focus on one provider's response to see the similarity among patients\n", + "closest response from the same provider " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# index_name = \"quickstart-py\"\n", + "# if not pc.has_index(index_name):\n", + "# pc.create_index_for_model(\n", + "# name=index_name,\n", + "# cloud=\"aws\",\n", + "# region=\"us-east-1\",\n", + "# embed={\n", + "# \"model\":\"llama-text-embed-v2\",\n", + "# \"field_map\":{\"text\": \"chunk_text\"}\n", + "# }\n", + "# )\n", + "# # Target the index\n", + "# dense_index = pc.Index(index_name)\n", + "\n", + "# # Upsert the records in batches\n", + "# BATCH_SIZE = 96\n", + "# for i in range(0, len(records), BATCH_SIZE):\n", + "# batch = records[i:i + BATCH_SIZE]\n", + "# dense_index.upsert_records(\"example-namespace\", batch)\n", + "# # Small delay between batches\n", + "# time.sleep(1)\n", + "\n", + "# # Wait for the upserted vectors to be indexed\n", + "# import time\n", + "# time.sleep(10)\n", + "# # View stats for the index\n", + "# stats = dense_index.describe_index_stats()\n", + "# print(stats)\n", + "# # Search the dense index and rerank results\n", + "# query = \"Chiang\"\n", + "# reranked_results = dense_index.search(\n", + "# namespace=\"example-namespace\",\n", + "# query={\n", + "# \"top_k\": 10,\n", + "# \"inputs\": {\n", + "# 'text': query\n", + "# }\n", + "# },\n", + "# rerank={\n", + "# \"model\": \"bge-reranker-v2-m3\",\n", + "# \"top_n\": 10,\n", + "# \"rank_fields\": [\"chunk_text\"]\n", + "# } \n", + "# )\n", + "\n", + "# # Print the reranked results\n", + "# for hit in reranked_results['result']['hits']:\n", + "# print(f\"id: {hit['_id']}, score: {round(hit['_score'], 2)}, text: {hit['fields']['chunk_text']}, Actual Response Sent to Patient: {hit['fields']['Actual Response Sent to Patient']}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sage_recommender", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/export_from_bigquery.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/export_from_bigquery.py new file mode 100644 index 00000000..ceb3d50b --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/export_from_bigquery.py @@ -0,0 +1,41 @@ +from google.cloud import bigquery +import json +import os + +def export_bigquery_to_json(output_file="messages_with_embeddings_export.json"): + client = bigquery.Client() + + query = """ + SELECT `index`, `Thread ID`, `Date Sent`, Subject, `Patient Message`, `Message Sender`, + `Actual Response Sent to Patient`, `Recipient Names`, `Recipient IDs`, + `Message Department`, `Department Specialty Title`, `embeddings` + FROM `som-nero-phi-jonc101.rag_embedding_R01.messages_with_embeddings` + """ + + query_job = client.query(query) + results = query_job.result() + + data = [] + for row in results: + data.append({ + "id": row["index"], + "thread_id": row["Thread ID"], + "date_sent": str(row["Date Sent"]), # convert timestamp to string + "subject": row["Subject"], + "patient_message": row["Patient Message"], + "message_sender": row["Message Sender"], + "actual_response": row["Actual Response Sent to Patient"], + "recipient_names": row["Recipient Names"], + "recipient_ids": row["Recipient IDs"], + "message_department": row["Message Department"], + "department_specialty_title": row["Department Specialty Title"], + "embedding": row["embeddings"] + }) + + with open(output_file, "w") as f: + json.dump(data, f) + + print(f"Exported {len(data)} records to {output_file}") + +if __name__ == "__main__": + export_bigquery_to_json() diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/query_logger.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/query_logger.py new file mode 100644 index 00000000..886368ff --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/query_logger.py @@ -0,0 +1,87 @@ +import logging +from datetime import datetime +import os + +def setup_logging(method = "strictest", run = "generated_question_set_1"): + """ + Set up logging configuration to write to both file and console. + Returns the logger instance. + """ + # Create data directory if it doesn't exist + os.makedirs(f"../{method}/{run}/logs", exist_ok=True) + + # Create log filename with timestamp + log_filename = f"../{method}/{run}/logs/query_log_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" + + # Configure logging + logger = logging.getLogger('query_logger') + logger.setLevel(logging.INFO) + + # Remove any existing handlers to prevent duplicates + if logger.handlers: + logger.handlers.clear() + + # Create formatters + formatter = logging.Formatter('%(asctime)s - %(message)s') + + # File handler + file_handler = logging.FileHandler(log_filename) + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) + + # Console handler + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + + # Prevent propagation to root logger to avoid duplicate messages + logger.propagate = False + + return logger + +def log_original_message(logger, original_query_message): + """Log original message""" + logger.info("Original Message:") + logger.info(f"original_query_message: {original_query_message}") + +def log_query_parameters(logger, query_message, receiver, department, specialty): + """Log query parameters""" + logger.info("Query Parameters:") + logger.info(f"query_message: {query_message}") + logger.info(f"receiver: {receiver}") + logger.info(f"department: {department}") + logger.info(f"specialty: {specialty}") + +def log_results(logger, results, beautiful_print_thread_func, answer_question_paired_data_dedup): + """Log query results""" + logger.info(f"\nNumber of results: {len(results)}") + + if len(results) > 0: + for row in results: + logger.info("##" * 40 + "START" + "##" * 40) + # Log personalization information if available + if 'personalization_tier' in row and 'personalized_score' in row: + logger.info(f"[{row['personalization_tier']}] Score: {row['personalized_score']:.3f} (CosSim: {row['cosine_similarity']:.3f})") + else: + logger.info(f"✅ similarity: {row['cosine_similarity']:.4f}") + + logger.info(f"Sender: {row['Message Sender']} -> the retrieved similar message : {row['Patient Message']}") + logger.info(f"Provider's response to this similar message: {row['Actual Response Sent to Patient']}") + + # Log tier information if available (either retrieval_tier or personalization_tier) + if 'retrieval_tier' in row: + logger.info(f"This result is from tier: {row['retrieval_tier']}") + elif 'personalization_tier' in row: + logger.info(f"This result is from tier: {row['personalization_tier']}") + + logger.info("-----------printing the whole thread-------------") + # Get the thread output as a string and log it + thread_output = beautiful_print_thread_func(row["Thread ID"], answer_question_paired_data_dedup) + logger.info(thread_output) + logger.info("##" * 40 + "END" + "##" * 40) + else: + logger.info("No results found matching the criteria") + +def log_error(logger, error_message): + """Log error messages""" + logger.error(f"Error getting results: {str(error_message)}") \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/update_ssh_ip.sh b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/update_ssh_ip.sh new file mode 100755 index 00000000..3ff0ca7b --- /dev/null +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Embedding_Pilot_Exp/script/update_ssh_ip.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Check if host and IP were provided +if [ $# -ne 2 ]; then + echo "Usage: ./update_ssh_ip.sh " + exit 1 +fi + +HOST_NAME="$1" +NEW_IP="$2" +CONFIG_FILE="$HOME/.ssh/config" +BACKUP_FILE="$CONFIG_FILE.bak" + +echo "Updating SSH config for host: $HOST_NAME with IP: $NEW_IP" +echo "Backing up config file to: $BACKUP_FILE" + +# Backup existing config +cp "$CONFIG_FILE" "$BACKUP_FILE" + +# Function to generate the new block +generate_block() { + IDENTITY_FILE="~/.ssh/$HOST_NAME" + USER=$(grep -A2 "^Host $HOST_NAME" "$BACKUP_FILE" | grep "User " | awk '{print $2}') + if [ -z "$USER" ]; then + USER="$USER_NAME" # default fallback + fi + cat < "$CONFIG_FILE.tmp" + +mv "$CONFIG_FILE.tmp" "$CONFIG_FILE" + +# Append the new block +echo "" >> "$CONFIG_FILE" +generate_block >> "$CONFIG_FILE" + +echo "Done. Updated SSH block for $HOST_NAME:" +grep -A3 "^Host $HOST_NAME" "$CONFIG_FILE" diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug.ipynb index e8a159bf..c16ef2a6 100644 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug.ipynb +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug.ipynb @@ -128,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -280,13 +280,13 @@ }, { "cell_type": "code", - "execution_count": 473, + "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "61579f243f884a839a1fc4767b7a53f6", + "model_id": "f6b5837f047a4dab9e4ea1a33a373156", "version_major": 2, "version_minor": 0 }, @@ -300,7 +300,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f36be6f47e204624a9dcd1d0b6eeaba5", + "model_id": "ca71b14dbe814acb949e297416b341c0", "version_major": 2, "version_minor": 0 }, @@ -371,7 +371,7 @@ " USING\n", " (anon_id)\n", " WHERE\n", - " DATE_DIFF(CAST(mc.order_time_jittered_utc as DATE), demo.BIRTH_DATE_JITTERED, YEAR) >= 18\n", + " DATE_DIFF(CAST(mc.order_time_jittered_utc as DATE), demo.BIRTH_DATE_JITTERED, YEAR) >= 0 # include all patients\n", " \n", ")\n", "\n", @@ -410,14 +410,14 @@ }, { "cell_type": "code", - "execution_count": 474, + "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for all urine culture is 480007\n" + "the unique order number for all urine culture is 544776\n" ] } ], @@ -435,13 +435,13 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f1e97cf7b8eb4099aa632a8424a2640f", + "model_id": "f7c6f3471d1942de961cd80dedf87485", "version_major": 2, "version_minor": 0 }, @@ -455,7 +455,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "843625a734264eccbf909eb7efeedac7", + "model_id": "e524f1228c0a421eaf45ffd5000f5b34", "version_major": 2, "version_minor": 0 }, @@ -500,7 +500,7 @@ " op.order_proc_id_coded = lr.order_id_coded\n", " WHERE\n", " op.order_type LIKE \"Microbiology%\"\n", - " # AND op.ordering_mode LIKE \"Inpatient\"\n", + " AND op.ordering_mode LIKE \"Inpatient\"\n", " AND (op.description LIKE \"%URINE%\")\n", "), # Only keep urine culture\n", "\n", @@ -787,61 +787,357 @@ }, { "cell_type": "code", - "execution_count": 230, + "execution_count": 85, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for adult urine only culture is 479615\n", - "the unique patient encounter number for adult urine only culture is 439923\n" + "the unique order number for adult urine only culture is 228223\n" ] } ], "source": [ - "condition = (starting_cohort['was_positive'] == 1) & (starting_cohort[\"organism\"].isnull())\n", - "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort[~condition])))\n", - "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))" + "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort)))" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for adult urine only culture is 480007\n" + "the unique order number for adult urine only culture is 228223\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_95596/1511061011.py:4: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n", + " print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number for adult urine only culture is 201105\n" ] } ], "source": [ - "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort)))" + "condition = (starting_cohort['was_positive'] == 1) & (starting_cohort[\"organism\"].isnull())\n", + "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort[~condition])))\n", + "# starting_cohort = starting_cohort[~condition]\n", + "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modeculture_descriptionwas_positiveorganismantibioticsusceptibility
0JC18431631312923707836754622482020-08-31 02:27:00+00:002020-09-01 16:14:00+00:00InpatientURINE1STAPHYLOCOCCUS AUREUSClindamycinSusceptible
1JC18431631312923707836754622482020-08-31 02:27:00+00:002020-09-01 16:14:00+00:00InpatientURINE1STAPHYLOCOCCUS AUREUSTrimethoprim/SulfamethoxazoleSusceptible
2JC18431631312923707836754622482020-08-31 02:27:00+00:002020-09-01 16:14:00+00:00InpatientURINE1STAPHYLOCOCCUS AUREUSOxacillinSusceptible
3JC18431631312923707836754622482020-08-31 02:27:00+00:002020-09-01 16:14:00+00:00InpatientURINE1STAPHYLOCOCCUS AUREUSCefazolinSusceptible
4JC18431631312923707836754622482020-08-31 02:27:00+00:002020-09-01 16:14:00+00:00InpatientURINE1STAPHYLOCOCCUS AUREUSErythromycinSusceptible
....................................
1268157JC18561471311801500674881876842016-02-27 04:27:00+00:002016-02-29 20:27:00+00:00InpatientURINE1ZZZENTEROBACTER AEROGENESNitrofurantoinIntermediate
1268158JC18561471311801500674881876842016-02-27 04:27:00+00:002016-02-29 20:27:00+00:00InpatientURINE1ZZZENTEROBACTER AEROGENESGentamicinSusceptible
1268159JC18561471311801500674881876842016-02-27 04:27:00+00:002016-02-29 20:27:00+00:00InpatientURINE1ZZZENTEROBACTER AEROGENESTrimethoprim/SulfamethoxazoleSusceptible
1268160JC18561471311801500674881876842016-02-27 04:27:00+00:002016-02-29 20:27:00+00:00InpatientURINE1ZZZENTEROBACTER AEROGENESCefepimeSusceptible
1268161JC18561471311801500674881876842016-02-27 04:27:00+00:002016-02-29 20:27:00+00:00InpatientURINE1ZZZENTEROBACTER AEROGENESCefazolinResistant
\n", + "

1267830 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", + "0 JC1843163 131292370783 675462248 \n", + "1 JC1843163 131292370783 675462248 \n", + "2 JC1843163 131292370783 675462248 \n", + "3 JC1843163 131292370783 675462248 \n", + "4 JC1843163 131292370783 675462248 \n", + "... ... ... ... \n", + "1268157 JC1856147 131180150067 488187684 \n", + "1268158 JC1856147 131180150067 488187684 \n", + "1268159 JC1856147 131180150067 488187684 \n", + "1268160 JC1856147 131180150067 488187684 \n", + "1268161 JC1856147 131180150067 488187684 \n", + "\n", + " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", + "0 2020-08-31 02:27:00+00:00 2020-09-01 16:14:00+00:00 Inpatient \n", + "1 2020-08-31 02:27:00+00:00 2020-09-01 16:14:00+00:00 Inpatient \n", + "2 2020-08-31 02:27:00+00:00 2020-09-01 16:14:00+00:00 Inpatient \n", + "3 2020-08-31 02:27:00+00:00 2020-09-01 16:14:00+00:00 Inpatient \n", + "4 2020-08-31 02:27:00+00:00 2020-09-01 16:14:00+00:00 Inpatient \n", + "... ... ... ... \n", + "1268157 2016-02-27 04:27:00+00:00 2016-02-29 20:27:00+00:00 Inpatient \n", + "1268158 2016-02-27 04:27:00+00:00 2016-02-29 20:27:00+00:00 Inpatient \n", + "1268159 2016-02-27 04:27:00+00:00 2016-02-29 20:27:00+00:00 Inpatient \n", + "1268160 2016-02-27 04:27:00+00:00 2016-02-29 20:27:00+00:00 Inpatient \n", + "1268161 2016-02-27 04:27:00+00:00 2016-02-29 20:27:00+00:00 Inpatient \n", + "\n", + " culture_description was_positive organism \\\n", + "0 URINE 1 STAPHYLOCOCCUS AUREUS \n", + "1 URINE 1 STAPHYLOCOCCUS AUREUS \n", + "2 URINE 1 STAPHYLOCOCCUS AUREUS \n", + "3 URINE 1 STAPHYLOCOCCUS AUREUS \n", + "4 URINE 1 STAPHYLOCOCCUS AUREUS \n", + "... ... ... ... \n", + "1268157 URINE 1 ZZZENTEROBACTER AEROGENES \n", + "1268158 URINE 1 ZZZENTEROBACTER AEROGENES \n", + "1268159 URINE 1 ZZZENTEROBACTER AEROGENES \n", + "1268160 URINE 1 ZZZENTEROBACTER AEROGENES \n", + "1268161 URINE 1 ZZZENTEROBACTER AEROGENES \n", + "\n", + " antibiotic susceptibility \n", + "0 Clindamycin Susceptible \n", + "1 Trimethoprim/Sulfamethoxazole Susceptible \n", + "2 Oxacillin Susceptible \n", + "3 Cefazolin Susceptible \n", + "4 Erythromycin Susceptible \n", + "... ... ... \n", + "1268157 Nitrofurantoin Intermediate \n", + "1268158 Gentamicin Susceptible \n", + "1268159 Trimethoprim/Sulfamethoxazole Susceptible \n", + "1268160 Cefepime Susceptible \n", + "1268161 Cefazolin Resistant \n", + "\n", + "[1267830 rows x 11 columns]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "starting_cohort" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number for adult urine only culture is 440088\n" + "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort replaced with new data from CSV.\n" ] } ], "source": [ - "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort)))" + "# # Define table ID\n", + "# table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort\"\n", + "\n", + "# # Define job config with WRITE_TRUNCATE to replace the table\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + "# autodetect=True, # Automatically detect schema\n", + "# source_format=bigquery.SourceFormat.PARQUET\n", + "# )\n", + "\n", + "# # Upload DataFrame to BigQuery\n", + "# job = client.load_table_from_dataframe(\n", + "# starting_cohort, table_id, job_config=job_config\n", + "# )\n", + "\n", + "# job.result() # Wait for the job to complete\n", + "\n", + "# print(f\"Table {table_id} replaced with new data from CSV.\")" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -850,13 +1146,13 @@ "" ] }, - "execution_count": 10, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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Gxurjz/+WGfPns33LMYff/yhqKgoZWRk6JVXXlF4eLgWL16sQYMGac+ePXr77bfVuHFjrV+/Xvfff7+qV69u/8ujqy9ZTElJ0aOPPqqBAwdq+PDhWrhwoYYOHaqwsDA9/vjj+f7eypUrde+99yoyMlJz585VVlaWxo8fr6NHj17zXHbs2KGoqChVqVJFkyZNUmhoqJYtW6a+ffvqzz//1PDhw6/5ufOTnJysxx57TIMHD9bo0aPl4XHlf4t86623VKdOHU2ZMkWS9PLLL+uee+7R3r177ZcQOvu+uVRCQoIkFfoZ0caNG2vGjBl64okn9O9//1uxsbGSpEqVKl3T87355puqVauWJk6cqICAANWsWfO6Xofly5dLuvLrcN999ykhIUGrV6/Www8/fMW5OPN+ffrppzVz5kz17dtX48aN04kTJzRq1ChFRUXpxx9/VEhIiH1sXu+fnM99tmjRQh9++KHKlCmjw4cPa+nSpcrIyLjqmZ+kpCT169dPI0aMUGhoqD755BO98MILysjI0KBBgyT9dQapZcuWOnTokP71r3+pQYMG2r59u4YNG6aff/5ZK1ascCjkX3zxhb777jsNGzZMoaGhqlChQr75FStW1FtvvaVHHnlEY8aM0YQJE9SlSxf7JYwFfX327NmjyMhIPfXUUwoMDNS+ffs0efJk3XHHHfr5559zHR87d+6shx9+WM8880yuUgm4NQMA12DGjBlGktm8ebNJT083N998s2natKnJzs42xhjTsmVLc8stt9jH792710gyM2bMyPVckszw4cPtj4cPH24kmUmTJjmMa9iwoZFkPv/8c/u2zMxMU758edO5c2f7tlWrVhlJpnHjxvb5GGPMvn37TIkSJcxTTz1l31anTh3TqFEjk5mZ6ZDVoUMHU7FiRZOVleWw3scff7xAr8+QIUOMJLNx40aH7c8++6yx2Wxm165d9m1Vq1Y1sbGxBXpeSaZPnz557ps3b56RZFatWmXf1rJlyzznUa9ePRMTE2N/nNefT7NmzUxYWJg5f/68fdupU6dM2bJlzaX/9+HMn21MTIypVKmSSUtLcxj33HPPGV9fX3PixIkrLf+a179y5cpc41u2bGlatmyZax3169c3Fy9etG/ftGmTkWQ+/fRT+7aCvm/y0q5dOyPJXLhw4YprzdGtWzdTtWrVXNtz/ju5VNWqVU23bt3sjzdv3pzvn83l688vL+d1qV69usnIyHAYW9ivw9dff20kmXHjxl11LgV9v65fvz7P48vBgweNn5+fGTx4sH1bfu+f+fPnG0kmKSkp37nnp2rVqsZms+X63bZt25qAgABz9uxZY4wxY8aMMR4eHmbz5s15Zn/11Vf2bZJMYGDgVf/7uVzXrl2NJBMSEmL++OMPY4xzr8+lsrOzTWZmptm/f7+RZP73v//Z9+W8V4cNG+bU/AB3wSWLAK6bt7e3Xn31Vf3www8FulSpoDp06ODwuG7durLZbGrfvr19m5eXl2rUqJHnnR7j4uIc/gW5atWqioqKsl/etHv3bv3yyy969NFHJUkXL160/9xzzz1KTk7Wrl27HJ4zv7uTXe6bb75RvXr1dNtttzls7969u4wx+uabbwr0PK4QGhqaax4NGjTI8zXLcfbsWW3evFmdO3eWr6+vfXvp0qXVsWPHa5rHhQsXtHLlSt1///0qWbJkrtf7woULeV4aeL2CgoKcOnMbGxsrT09P++MGDRpIkv31upb3TXHQqVMnhzMeRfE6GGMkKdelmZfPxZn36+LFi2Wz2fTYY485zDk0NFS33nprrrt05vX+adiwoby9vdWrVy/NmjUr16V8V3PLLbfk+sxtXFycTp06Zb/D5uLFixUREaGGDRs6zDMmJibPu4nefffdCgoKcmoeo0aNkiT17dtX5cqVs+cW9PXJuSlN5cqV5eXlpRIlSqhq1aqSpJ07d+bKK+jxE3A3FDIALvHwww+rcePGeumll1xyq2pJKlu2rMNjb29vlSxZ0uEvXDnbL1y4kOv3Q0ND89x2/PhxSbJfyjRo0CCVKFHC4ad3796SlOuzEAW9nPD48eN5jg0LC7Pvvxaenp7KysrKc9/FixclKddlQsHBwbnG+vj46Pz58/nmpKamKjs7O9/X8FocP35cFy9e1NSpU3O93vfcc4+k3K/35a5l/c5eAnr565Vzs4ic1+ta3jeXqlKliqS/bkH+d3L561gUr0PO5ykrV658xbk48349evSojDEKCQnJNe8NGzYU6L/56tWra8WKFapQoYL69Omj6tWrq3r16nrjjTfyXcuV5nTptkuPTz/99FOuOZYuXVrGmGs+Nl0q573t7e1t31bQ1yc7O1vR0dH6/PPPNXjwYK1cuVKbNm2y/6NKXscXK+4gC/wd8BkyAC5hs9k0btw4tW3bVu+9916u/Tkl6vKbYFxrMSmInBsBXL4t5y/cOf8iPHTo0FyfP8tRu3Zth8cFvaNicHCwkpOTc20/cuSIQ7azQkJCdPjw4Tz35Wy/9PMv1yooKEg2my3f1/BSBf2zDQoKkqenp+Lj49WnT588c6tVq3bFeV3L+l39HVTX8r65VExMjN577z198cUXGjJkyFXzfH1987x5zNXKa0GeNy0trcDPe/nreL2vQ86x4kqvwxdffCEvL69cNx+5fC7OvF/LlSsnm82m7777Ls87M16+Lb/3T4sWLdSiRQtlZWXphx9+0NSpU9WvXz+FhIQ4fN4tL1ea56XHJz8/P3344Yd5PsflxxBXvc8L+vps27ZNP/74o2bOnKlu3brZ9+/evTvf5+b74IC8UcgAuEybNm3Utm1bjRo1Kte/aIeEhMjX11c//fSTw/b//e9/hTafTz/9VAMGDLD/JWD//v1at26d/UYWtWvXVs2aNfXjjz9q9OjRLs1u3bq1xowZoy1btqhx48b27R999JFsNpvuuuuua3reNm3a6PPPP9cff/yh8uXL27cbYzRv3jyFh4erRo0a1z1/f39/3Xbbbfr88881YcIEe+k6ffq0Fi1a5DC2oH+2JUuW1F133aWtW7eqQYMGDv8qX1BFtf4rud73zb333qv69etrzJgx6tChQ553Wly2bJn9rpjh4eE6duyYjh49ai+bGRkZWrZs2VWzLj+7d6nw8HDNmzdP6enp9nHHjx/XunXrFBAQcNXnvt7X4f7771e9evU0duxYde7cOdedFj/77DMlJCTomWeeuepZWWferx06dNDYsWN1+PBhde3a1el5X87T01PNmjVTnTp19Mknn2jLli1XLWTbt2/Xjz/+6HDZ4pw5c1S6dGn78aJDhw4aPXq0goODr/oPFa5U0Ncn57h6eWnjS6UB51HIALjUuHHj1KRJEx07dky33HKLfXvOZxI+/PBDVa9eXbfeeqs2bdqkOXPmFNpcjh07pvvvv189e/ZUWlqahg8fLl9fXw0dOtQ+5t1331X79u0VExOj7t2766abbtKJEye0c+dObdmyRfPmzbum7P79++ujjz5SbGysRo0apapVq2rJkiV6++239eyzz+Z5m++CGDZsmBYtWqRmzZppyJAhqlmzplJSUvT+++9r8+bNLv0M3yuvvKJ27dqpbdu2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XLigUqVKaeHChapXr569LIWEhDiMDwkJsX8BdUpKiry9vRUUFJRrTEpKin1MhQoVcuVWqFDBYczlOUFBQfL29raPyUt6errS09PtjzmbBgAAAMAZTheyZ599VpI0efLkXPtsNpvTlzPWrl1bSUlJOnnypBYsWKBu3bppzZo1Ds95KWNMrm2Xu3xMXuOvZczlxowZc02fnQMAAAAA6RouWczOzs7351o+W+bt7a0aNWqoadOmGjNmjG699Va98cYbCg0NlaRcZ6iOHTtmP5sVGhqqjIwMpaamXnHM0aNHc+X+8ccfDmMuz0lNTVVmZmauM2eXGjp0qNLS0uw/Bw8edHL1AAAAANyZ04XsUhcuXHDVPOyMMUpPT1e1atUUGhqq5cuX2/dlZGRozZo1ioqKkiQ1adJEJUqUcBiTnJysbdu22cdERkYqLS1NmzZtso/ZuHGj0tLSHMZs27ZNycnJ9jEJCQny8fFRkyZN8p2rj4+P/Zb9OT8AAAAAUFBOF7KsrCy98soruummm1SqVCn9/vvvkqSXX35Z06dPd+q5/vWvf+m7777Tvn379PPPP+ull17S6tWr9eijj8pms6lfv34aPXq0Fi5cqG3btql79+4qWbKk4uLiJEmBgYHq0aOHBg4cqJUrV2rr1q167LHHVL9+fbVp00aSVLduXbVr1049e/bUhg0btGHDBvXs2VMdOnRQ7dq1JUnR0dGqV6+e4uPjtXXrVq1cuVKDBg1Sz549KVkAAAAACo3They1117TzJkzNX78eHl7e9u3169fXx988IFTz3X06FHFx8erdu3aat26tTZu3KilS5eqbdu2kqTBgwerX79+6t27t5o2barDhw8rISHB/h1kkvT666/rvvvuU9euXdW8eXOVLFlSixYtsn8HmSR98sknql+/vqKjoxUdHa0GDRro448/tu/39PTUkiVL5Ovrq+bNm6tr16667777NHHiRGdfHgAAAAAoMKdv6vHRRx/pvffeU+vWrfXMM8/Ytzdo0EC//PKLU891tTNqNptNI0aM0IgRI/Id4+vrq6lTp17xC5zLli2r2bNnXzGrSpUqWrx48RXHAAAAAIArOX2G7PDhw6pRo0au7dnZ2crMzHTJpAAAAADAHThdyG655RZ99913ubbPmzdPjRo1csmkAAAAAMAdOH3J4vDhwxUfH6/Dhw8rOztbn3/+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+81UrVrVBAcHm4oVKxqbzWZiY2NNs2bNjKenp3nwwQdNZmamSzNbtWplHn744Tw/hJ+enm4eeeQR06pVK5dmklu8c91preQWTa47rZXcosl1p7WSW7xz3Wmt7phLIbNA+/btzdNPP22ysrKMMcaMGTPGtG/f3hhjzK+//mrCw8PN8OHDXZrp5+fncKv9y/3888/Gz8/PpZnkFu9cd1oruUWT605rJbdoct1preQW71x3Wqs75nq49nwbCmLNmjUaOHCgPDz+evkHDBigFStW6Pjx46pZs6amTJmiWbNmuTQzKChIv/32W777d+/eraCgIJdmklu8c91preQWTa47rZXcosl1p7WSW7xz3Wmt7pjLGTILhIWFmcTERPvj1NRUY7PZzKlTp4wxxvz+++8u/2Lo4cOHm8DAQDNhwgSTlJRkkpOTTUpKiklKSjITJkwwQUFBZuTIkS7NJLd457rTWsnlPUXu3zPXndZKbvHOdae1umMuhcwC3bp1My1btjQ7d+40v//+u3nooYdMo0aN7PtXr15tKleu7PLcsWPH2j+z5uHhYTw8PIzNZjMVK1a84jfdk0vujZRJbvHOdae1kst7ilxyb/RMcosml7ssWuDYsWO69957tXHjRtlsNlWpUkWff/65GjVqJEmaP3++kpOT9fzzzxdK/t69e5WSkiLpry95rVatWqHkkOs+ue60VnJ5T5H798x1p7WSW7xz3Wmt7pJLIbPQb7/9pvT0dNWpU0deXl5WTwcAAABAEeOmHhaqWbOmIiIicpWxgwcP6sknn3R53vnz57V27Vrt2LEj174LFy7oo48+cnkmucU7153WSm7R5LrTWsktmlx3Wiu5xTvXndbqdrmFciEkrktSUpLx8PBw6XPu2rXLVK1a1X49bMuWLc2RI0fs+1NSUlyeSW7xznWntZLLe4rcv2euO62V3OKd605rdcdczpBZ4Msvv7ziz6pVq1ye+eKLL6p+/fo6duyYdu3apYCAADVv3lwHDhxweRa57pHrTmsll/cUuX/PXHdaK7nFO9ed1uqOuZwhs0BO67bZbPn+uLp9V6hQwfz0008O23r37m2qVKli9uzZU2iNn9zim+tOayW3aHLdaa3kFk2uO62V3OKd605rdcdc7iRhgYoVK+qtt97Sfffdl+f+pKQkNWnSxKWZ58+fz/VZtbfeekseHh5q2bKl5syZ49I8cot/rjutldyiyXWntZJbNLnutFZyi3euO63VHXM5Q2aBjh07mpdffjnf/UlJScZms7k08x//+If56KOP8tzXp08fU6ZMmUJp/OQW31x3Wiu5RZPrTmslt2hy3Wmt5BbvXHdaqzvmUsgs8O2335qvv/463/1nzpwxq1evdmnm6NGjTfv27fPd/+yzz7q8BJJbvHPdaa3kFk2uO62V3KLJdae1klu8c91pre6Yy/eQAQAAAIBFuMsiAAAAAFiEQgYAAAAAFqGQAQAAAIBFKGQAAAAAYBEKGQAAeTDGqE2bNoqJicm17+2331ZgYKAOHDhgwcwAAMUJhQwAgDzYbDbNmDFDGzdu1LvvvmvfvnfvXr344ot64403VKVKFZdmZmZmuvT5AAA3PgoZAAD5qFy5st544w0NGjRIe/fulTFGPXr0UOvWrXXbbbfpnnvuUalSpRQSEqL4+Hj9+eef9t9dunSp7rjjDpUpU0bBwcHq0KGD9uzZY9+/b98+2Ww2/fe//1WrVq3k6+ur2bNnW7FMAICF+B4yAACu4r777tPJkyfVpUsXvfLKK9q8ebOaNm2qnj176vHHH9f58+f14osv6uLFi/rmm28kSQsWLJDNZlP9+vV19uxZDRs2TPv27VNSUpI8PDy0b98+VatWTeHh4Zo0aZIaNWokHx8fhYWFWbxaAEBRopABAHAVx44dU0REhI4fP6758+dr69at2rhxo5YtW2Yfc+jQIVWuXFm7du1SrVq1cj3HH3/8oQoVKujnn39WRESEvZBNmTJFL7zwQlEuBwBwA+GSRQAArqJChQrq1auX6tatq/vvv1+JiYlatWqVSpUqZf+pU6eOJNkvS9yzZ4/i4uJ08803KyAgQNWqVZOkXDcCadq0adEuBgBwQ/GyegIAAPwdeHl5ycvrr//bzM7OVseOHTVu3Lhc4ypWrChJ6tixoypXrqz3339fYWFhys7OVkREhDIyMhzG+/v7F/7kAQA3LAoZAABOaty4sRYsWKDw8HB7SbvU8ePHtXPnTr377rtq0aKFJGnt2rVFPU0AwN8AlywCAOCkPn366MSJE3rkkUe0adMm/f7770pISNCTTz6prKwsBQUFKTg4WO+99552796tb775RgMGDLB62gCAGxCFDAAAJ4WFhen7779XVlaWYmJiFBERoRdeeEGBgYHy8PCQh4eH5s6dq8TEREVERKh///6aMGGC1dMGANyAuMsiAAAAAFiEM2QAAAAAYBEKGQAAAABYhEIGAAAAABahkAEAAACARShkAAAAAGARChkAAAAAWIRCBgAAAAAWoZABAAAAgEUoZAAAAABgEQoZAAAAAFiEQgYAAAAAFqGQAQAAAIBF/h/jsAw6u2yacQAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAI3CAYAAAD0hZglAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjs0lEQVR4nO3deVxU9eL/8fcIsogwgciWG6m5oZl2U7DSSkFDLbWsKNKbYTctM/Wa3m6plXvaonWvlam5ZLdcbmnhki3X3DEql0zLtUBNEdMMED+/P/p5vo6AMgYcRl7Px2MeD+d8Ppx5n3FienvOfMZhjDECAAAAAJS5SnYHAAAAAICKikIGAAAAADahkAEAAACATShkAAAAAGATChkAAAAA2IRCBgAAAAA2oZABAAAAgE0oZAAAAABgEwoZAAAAANiEQgbgksycOVMOh0N+fn7au3dvgfF27dopJibGhmTSZ599JofDoffff9+Wx3fXnj17lJiYqJCQEDkcDg0cOLDIuQ6HQ48++mihY++//74cDoc+++yzS8rgcDg0c+ZMt3+2LJXk8bdr107t2rUruXBuOn78uEaPHq3rrrtOQUFB8vX1VZ06dfTggw9q8+bNl7TPOnXqqHfv3tb9n3/+WSNHjlR6enrJhC4FR44c0fDhw9W4cWNVqVJFQUFBat26tV599VXl5eX96f2PHDlSDoejBJJ6vt27dyswMFA9evQodHzevHlyOByaNm1aGScDKjZvuwMA8Gw5OTn65z//qdmzZ9sdxWM98cQTWr9+vd566y1FREQoMjKyzDNERkZq7dq1qlu3bpk/tl1ee+012x77hx9+UHx8vA4dOqS//e1vGjVqlKpWrao9e/boP//5j1q2bKljx47J6XT+qcf5+eefNWrUKNWpU0fNmzcvmfAl6LvvvlN8fLxOnDihwYMHKy4uTqdOndKSJUv0+OOP67333tNHH32kKlWq2B31shAdHa3Jkyerb9++mjdvnpKSkqyxzMxMPfbYY0pISNDDDz9sY0qg4qGQAfhTOnbsqHnz5mnIkCG65ppr7I5Tpk6dOiU/P78//a/vW7Zs0fXXX6877rijZIJdAl9fX7Vu3dq2xy9Lv/32m6pUqaLGjRvb8vj5+fnq1q2bfvnlF61du9blTHLbtm3Vq1cvffzxx6pcubIt+YojPz9fp0+flq+v75/aR48ePXT8+HFt2LBBV199tTV22223qW3btrrnnns0aNAg/fvf/y7VLO44+/opz4wx+v333+Xv719gLCUlRYsWLdJjjz2mm2++2foHoIcffljGGE2fPr1MMnrC8wiUFS5ZBPCnDB06VNWqVdOTTz55wXkXuiTO4XBo5MiR1v2zlxh98803uuuuu+R0OhUSEqJBgwbp9OnT2rFjhzp27KjAwEDVqVNHEyZMKPQxf//9dw0aNEgRERHy9/dX27Zt9dVXXxWYt2nTJnXt2lUhISHy8/PTtddeq//85z8uc85eorl8+XI9+OCDql69uqpUqaKcnJwij3nfvn26//77FRYWJl9fXzVq1EiTJk3SmTNnJP3fpZW7du3Sxx9/LIfDIYfDoT179lzwuXTH2UtHN27cqBtvvFFVqlTRVVddpXHjxlk5pKL/fpYuXarmzZvL19dX0dHReuGFFwpcAubO360k7dy5U0lJSS7Py6uvvlpix3yus8f/xRdfKC4uTlWqVNGDDz5ojZ17yeLZ43jhhRc0efJkRUdHq2rVqoqNjdW6desK7Ls4r5vCLF68WN9++62GDx9e5GW9nTp1sv5ntXfv3qpTp06BORe7FO+zzz7TX/7yF0nSX//6V+v1dfbvo6hLNs9/vLPPy4QJE/T8888rOjpavr6++vTTT//U87Bo0SJt27ZNw4YNcyljZ919992Kj4/X9OnTlZmZWawshb1eC2OM0WuvvabmzZvL399fwcHBuvPOO/Xjjz+6zLvQ62fVqlVq166dqlWrJn9/f9WqVUs9evTQb7/9dsHjrlOnjjp37qxFixapWbNm8vPz01VXXaVXXnmlwNzjx49ryJAhio6Olo+Pj6688koNHDhQJ0+edJl39lLef//732rUqJF8fX01a9asIjOcLV19+/aVJM2ePVsffPCBpk6dqiuvvLLYz8+KFSt0++23q0aNGvLz81O9evX08MMP65dffnGZd/a1unnzZt15550KDg6uUGfjgYvhDBmAPyUwMFD//Oc/9fjjj2vVqlW65ZZbSmzfPXv21P3336+HH35YK1as0IQJE5SXl6eVK1eqX79+GjJkiObNm6cnn3xS9erVU/fu3V1+/h//+IdatGihN998U9nZ2Ro5cqTatWunr776SldddZUk6dNPP1XHjh3VqlUr/fvf/5bT6dT8+fN1991367fffnP5PI4kPfjgg0pMTNTs2bN18uTJIs9iHD58WHFxccrNzdVzzz2nOnXqaMmSJRoyZIh++OEHvfbaa2rRooXWrl2rbt26qW7dutb/PJb0JYuZmZm67777NHjwYI0YMUKLFi3S8OHDFRUVpQceeKDIn/vkk090++23KzY2VvPnz1d+fr4mTJiggwcPXnKWbdu2KS4uTrVq1dKkSZMUERGhZcuWacCAAfrll180YsSIS953UTIyMnT//fdr6NChGjNmjCpVuvC/Rb766qtq2LChXnrpJUnS008/rdtuu027d++2LiF093VzruXLl0tSqZ8RbdGihWbMmKG//vWv+uc//6nExERJUo0aNS5pf6+88oquvvpqvfDCCwoKClL9+vX/1POwYsUKSRd+Hu644w4tX75cn332me65554LZnHn9frwww9r5syZGjBggMaPH6+jR4/q2WefVVxcnL7++muFh4dbcwt7/Zz93OeNN96ot956S1dccYV++uknpaamKjc396JnftLT0zVw4ECNHDlSERERmjt3rh5//HHl5uZqyJAhkv44g9S2bVsdOHBA//jHP9SsWTNt3bpVzzzzjL799lutXLnSpZAvXrxY//vf//TMM88oIiJCYWFhRT5+ZGSkXn31Vd17770aO3asJk6cqB49eliXMBb3+fnhhx8UGxurhx56SE6nU3v27NHkyZN1ww036Ntvvy3w+7F79+6655579Le//a1AqQQqNAMAl2DGjBlGktm4caPJyckxV111lbnuuuvMmTNnjDHGtG3b1jRp0sSav3v3biPJzJgxo8C+JJkRI0ZY90eMGGEkmUmTJrnMa968uZFkFi5caG3Ly8sz1atXN927d7e2ffrpp0aSadGihZXHGGP27NljKleubB566CFrW8OGDc21115r8vLyXB6rc+fOJjIy0uTn57sc7wMPPFCs52fYsGFGklm/fr3L9kceecQ4HA6zY8cOa1vt2rVNYmJisfYryfTv37/Qsffee89IMp9++qm1rW3btoXmaNy4sUlISLDuF/b306pVKxMVFWVOnTplbTt+/LgJCQkx5759uPN3m5CQYGrUqGGys7Nd5j366KPGz8/PHD169EKHf8nH/8knnxSY37ZtW9O2bdsCx9G0aVNz+vRpa/uGDRuMJPPOO+9Y24r7uilMx44djSTz+++/X/BYz+rVq5epXbt2ge1n/zs5V+3atU2vXr2s+xs3bizy7+b84y/q8c4+L3Xr1jW5ubkuc0v7efj444+NJDN+/PiLZinu63Xt2rWF/n7Zv3+/8ff3N0OHDrW2FfX6ef/9940kk56eXmT2otSuXds4HI4CP9uhQwcTFBRkTp48aYwxZuzYsaZSpUpm48aNhT72Rx99ZG2TZJxO50X/+zlfz549jSQTHh5uDh8+bIxx7/k515kzZ0xeXp7Zu3evkWT++9//WmNnX6vPPPOMW/mAioJLFgH8aT4+Pnr++ee1adOmYl2qVFydO3d2ud+oUSM5HA516tTJ2ubt7a169eoVutJjUlKSy78g165dW3FxcdblTbt27dJ3332n++67T5J0+vRp63bbbbcpIyNDO3bscNlnUauTnW/VqlVq3Lixrr/+epftvXv3ljFGq1atKtZ+SkJERESBHM2aNSv0OTvr5MmT2rhxo7p37y4/Pz9re2BgoLp06XJJOX7//Xd98skn6tatm6pUqVLg+f79998LvTTwzwoODnbrzG1iYqK8vLys+82aNZMk6/m6lNfN5aBr164uZzzK4nkwxkhSgUszz8/izut1yZIlcjgcuv/++10yR0RE6JprrimwSmdhr5/mzZvLx8dHffv21axZswpcyncxTZo0KfCZ26SkJB0/ftxaYXPJkiWKiYlR8+bNXXImJCQUuproLbfcouDgYLdyPPvss5KkAQMGKDQ01Hrc4j4/ZxelqVmzpry9vVW5cmXVrl1bkrR9+/YCj1fc359ARUMhA1Ai7rnnHrVo0UJPPfVUiSxVLUkhISEu9318fFSlShWX/+E6u/33338v8PMRERGFbjty5IgkWZcyDRkyRJUrV3a59evXT5IKfBaiuJcTHjlypNC5UVFR1vil8PLyUn5+fqFjp0+flqQClwlVq1atwFxfX1+dOnWqyMfJysrSmTNninwOL8WRI0d0+vRpTZkypcDzfdttt0kq+Hyf71KO391LQM9/vs4uFnH2+bqU1825atWqJemPJcg9yfnPY1k8D2c/T1mzZs0LZnHn9Xrw4EEZYxQeHl4g97p164r133zdunW1cuVKhYWFqX///qpbt67q1q2rl19+uchjuVCmc7ed+/vpm2++KZAxMDBQxphL/t10rrOvbR8fH2tbcZ+fM2fOKD4+XgsXLtTQoUP1ySefaMOGDdY/qhT2+8WOFWQBT8BnyACUCIfDofHjx6tDhw56/fXXC4yfLVHnL4JxqcWkOM4uBHD+trP/w332X4SHDx9e4PNnZzVo0MDlfnFXVKxWrZoyMjIKbP/5559dHttd4eHh+umnnwodO7v93M+/XKrg4GA5HI4in8NzFffvNjg4WF5eXkpOTlb//v0Lfdzo6OgL5rqU4y/p76C6lNfNuRISEvT6669r8eLFGjZs2EUfz8/Pr9DFYy5WXouz3+zs7GLv9/zn8c8+D2d/V1zoeVi8eLG8vb0LLD5yfhZ3Xq+hoaFyOBz63//+V+jKjOdvK+r1c+ONN+rGG29Ufn6+Nm3apClTpmjgwIEKDw93+bxbYS6U89zfT/7+/nrrrbcK3cf5v0NK6nVe3Odny5Yt+vrrrzVz5kz16tXLGt+1a1eR++b74IDCUcgAlJj27durQ4cOevbZZwv8i3Z4eLj8/Pz0zTffuGz/73//W2p53nnnHQ0aNMj6n4C9e/dqzZo11kIWDRo0UP369fX1119rzJgxJfrYt956q8aOHavNmzerRYsW1va3335bDodDN9988yXtt3379lq4cKEOHz6s6tWrW9uNMXrvvfdUp04d1atX70/nDwgI0PXXX6+FCxdq4sSJVun69ddf9eGHH7rMLe7fbZUqVXTzzTfrq6++UrNmzVz+Vb64yur4L+TPvm5uv/12NW3aVGPHjlXnzp0LXWlx2bJl1qqYderU0aFDh3Tw4EGrbObm5mrZsmUXfazzz+6dq06dOnrvvfeUk5NjzTty5IjWrFmjoKCgi+77zz4P3bp1U+PGjTVu3Dh17969wEqL7777rpYvX66//e1vFz0r687rtXPnzho3bpx++ukn9ezZ0+3c5/Py8lKrVq3UsGFDzZ07V5s3b75oIdu6dau+/vprl8sW582bp8DAQOv3RefOnTVmzBhVq1btov9QUZKK+/yc/b16fmnjS6UB91HIAJSo8ePHq2XLljp06JCaNGlibT/7mYS33npLdevW1TXXXKMNGzZo3rx5pZbl0KFD6tatm1JSUpSdna0RI0bIz89Pw4cPt+ZMmzZNnTp1UkJCgnr37q0rr7xSR48e1fbt27V582a99957l/TYTzzxhN5++20lJibq2WefVe3atbV06VK99tpreuSRRwpd5rs4nnnmGX344Ydq1aqVhg0bpvr16yszM1NvvPGGNm7cWKKf4XvuuefUsWNHdejQQYMHD1Z+fr7Gjx+vgIAAHT161Jrnzt/tyy+/rBtuuEE33nijHnnkEdWpU0e//vqrdu3apQ8//PCin60ry+O/kD/zuvHy8tKiRYsUHx+v2NhYPfLII7r55psVEBCgvXv36v3339eHH36orKwsSX8s//7MM8/onnvu0d///nf9/vvveuWVV4q8dPNcdevWlb+/v+bOnatGjRqpatWqioqKUlRUlJKTkzVt2jTdf//9SklJ0ZEjRzRhwoRilbGSeh4WLFigDh06KDY2VoMHD1ZsbKxycnL04Ycf6vXXX1fbtm01adKkYmUp7uu1TZs26tu3r/76179q06ZNuummmxQQEKCMjAytXr1aTZs21SOPPHLBx/r3v/+tVatWKTExUbVq1dLvv/9unclq3779RbNGRUWpa9euGjlypCIjIzVnzhytWLFC48ePt1ZoHDhwoBYsWKCbbrpJTzzxhJo1a6YzZ85o3759Wr58uQYPHqxWrVoV67lxR3Gfn4YNG6pu3boaNmyYjDEKCQnRhx9+aK2eCcAN9q0nAsCTnbvK4vmSkpKMJJdVFo0xJjs72zz00EMmPDzcBAQEmC5dupg9e/YUucri2VW/zurVq5cJCAgo8Hjnr+h4dpXF2bNnmwEDBpjq1asbX19fc+ONN5pNmzYV+Pmvv/7a9OzZ04SFhZnKlSubiIgIc8stt5h///vfxTreouzdu9ckJSWZatWqmcqVK5sGDRqYiRMnFlh5zp1VFo0xZufOneb+++83kZGRxtvb21xxxRUmPj6+yJUEz/97MKbolfTOX43vgw8+MM2aNTM+Pj6mVq1aZty4cYWu7lfcv9uzj/Xggw+aK6+80lSuXNlUr17dxMXFmeeff77Mjv/sWGGrLE6cOLHA3MKOozivmws5duyYee6550yLFi1M1apVTeXKlU2tWrXM/fffb7788kuXuR999JFp3ry58ff3N1dddZWZOnVqsVZZNMaYd955xzRs2NBUrly5wHHMmjXLNGrUyPj5+ZnGjRubd999t8jXRmHPS0k8D7/88osZNmyYadiwofHz8zNVq1Y1119/vZk6dWqBlRQvlqW4r1djjHnrrbdMq1atTEBAgPH39zd169Y1DzzwgMvviKJeP2vXrjXdunUztWvXNr6+vqZatWqmbdu25oMPPrjo8Z797/399983TZo0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8+Zm+vTpLuPvvvuuadSokR3RiuTv72/9zo6MjDSbN292Gd+xY0e5+x1izP8913l5eeb99983t912m/Hy8jLh4eFm6NCh5rvvvrM7YgG8P5Yt3h/LDu+PZae8vj/yGbJyxsfHR7///rskKTc3V2fOnLHuS9KpU6fK5TW5p0+fdrkOvmrVqjp9+rROnjypKlWqKD4+XkOGDLExYdEcDscljdklJydHjzzySJGfldi7d69GjRpVxqku7qefflJMTIx1v27duvrss890yy23KDk5WRMmTLAxXeGysrJ05ZVXSpJCQkJUpUoV1a5d2xqvW7euMjIy7IpXpA0bNmjo0KHq0aOH5syZo2uvvdYai4qKcjmG8ubsf3P79+/X9ddf7zJ2/fXXa+/evXbEKlKzZs20atUq1a1bVxEREdq7d6/L87137175+/vbmPDCvL291aNHD/Xo0UM//fST3nrrLc2cOVMvvPCC2rRpoy+++MLuiBbeH8se749lg/fHslNu3x/LvALigm6//XbTuXNns3r1atO3b19z3XXXmcTERHPixAlz8uRJc+edd5qOHTvaHbOADh06uJyanjhxoomMjLTub9682YSGhtoR7YLuv/9+06xZM7Nx48YCYxs3bjTNmzc3ycnJNiQrWlxcnHnppZeKHC+vl2RER0e7/OvZWT/99JO5+uqrTfv27ctd7lq1apn169db95988klz5MgR6356enq5fF2f9dFHH5kaNWqYMWPGmPz8fOPt7W22bt1qd6wiORwOM3r0aPPyyy+bqKgo88UXX7iMp6enm+DgYJvSFW7JkiUmJCTEzJgxw8yYMcPUqVPHvPnmm+bLL780b731lqlZs6b5+9//bnfMAs69PLQwK1euNElJSWWY6OJ4fyxbvD+WHd4fy155e3+kkJUz33//valXr55xOBymSZMm5qeffjJdu3Y13t7extvb21SvXt2kpaXZHbOAtLQ0ExISYiIiIkytWrWMj4+Peeedd6zxqVOnlstrzbOyskzHjh2Nw+EwwcHBpkGDBqZhw4YmODjYVKpUyXTq1MlkZWXZHdPF6NGjzciRI4sc37dvn+ndu3cZJiqePn36mAcffLDQsQMHDph69eqVuzecrl27XvDNferUqeaWW24pw0Tuy8zMNJ06dTI33HCD7W84F1O7dm1Tp04d63b+c//iiy+a1q1b25Su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", "text/plain": [ "
" ] @@ -867,35 +1163,9 @@ ], "source": [ "unique_order_starting_cohort = starting_cohort.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "# find_unique_orders(unique_order_starting_cohort)\n", - "# 423185\n", "unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, - { - "cell_type": "code", - "execution_count": 567, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAACJgAAAakCAIAAAA9C6TfAAD64ElEQVR4nOzdeUBU1f//8QMMCCrI4oqaIiiuiRtuuaGVBqmV33Kt1Myl0I+aS6lZmZallplrn8RPamppLqm5Gygq7guYC1KioKCCijAsA/P743y/9zefGWYc1rni8/HXmzvn3nvm3hnK++KcY6fX6wUAAAAAAAAAAADUx97WHQAAAAAAAAAAAED+CHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUI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L1myZMyYMWlpaUKINWvWbNy4sW3btg0aNHBzc8vKykpISIiKijKcoGnEiBFvvPGGlcfPlw2vszWGDx8+ffp0IURYWFh8fHzv3r39/PzKlSt369at3bt3K5+fgQMH5rsqu6natWt7e3snJibm5OQIkwVyJF9fX3d39/v378uUqFmzZoZfGevVrVvXx8fn77//FkKMHz++W7ducthQaGiolb19cr333nuRkZHx8fFpaWlvvvlm3759W7Vq5eLicvv27T/++EPJjAcPHqyMnilGfJUKoW3btidOnFB+NB2pZsjo1UaNGhXuOyKe7q8JyiqCHAAAAAAAnhZZWVk3b9603EZZfCI9PV1ZwGbMmDHly5c3atmrV681a9ZcvHjx/v37ixcv/vDDD5WXypcvv3Tp0vfff//q1at5eXm///7777//brR77969851xaNy4cadPn5ZzW8nlRkJCQpQgp3fv3r///rt8Ynv37l3DsSkuLi5z5szx9PS0EOS0adNm4sSJ8+fPF0Lcv39/2bJlhq9279591qxZFia8qlix4tKlS0NDQ+Pi4jIyMpYvX758+XKjNr6+vvPnz1emgCuWU5crV87V1VU+PhZCGA6NskazZs3WrFkzbdq06OhoIURmZmZ4eHh4eLhpS1dX16lTpxb9b/NteJ2tERISEhcXJwPL/fv379+/37RN165dR48ebf0xO3bs+Ouvv8o636fVcpkc5VyFm1dNmjZt2qhRo3Q6nVar3blzp9w4YsSIMv+EumLFisuXL3///fevXbuWlZW1YcMG09FpAwYMmDBhQgl1gK9SQbVr1+77779XfrQc5DzzzDM1atS4deuWsm9RTv3Ufk1QVjG1GgAAAAAAyMeyZcvu3r0rhPDx8XnllVdMG9jZ2SkPTH/55RejmY6qVau2du3aiRMn1qpVy2ivNm3afPfdd5999pkyi5ohPz+/9evX9+3bt2bNmqYNHBwcvv/++379+ilrWQshNBpN9+7dN2zY0K1bN7kkgwVDhgz5/vvvlWRIqlWr1syZM+fNm1e+fHnDI5uqWbPm2rVrR4wY4eXlZfRS1apVx4wZs2bNGnNBS6FP7eDg8OGHH8qr4e3t/e6771p+j6bq1Knz008/ffXVV+3bt8/3sj/zzDNjxozZvn17cc2wZMPrbI2xY8euWLEi36vh7+8/a9asb7755rGfJUPK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+eyzz4b1zTfffBgvsXTp0v3794d1wStvjkZ3gB87K3IAAAAA+BG78sor33jjjWXLlsVisVGjRv3tb38rUeKI/u1y/fr1L7roosK3L+RWaWHWUqlSpb/97W9PPvlkVlZW/FZKSsrXX3/92muvtWvX7qGHHjrppJOyd9y6dWtYxM+JmTdv3quvvrpo0aKMjIzs0/7lL3/5y1/+slSpUoWffGjQoEFffPHFqlWrtm7des0119x8883nn39+hQoVtm/fPmvWrClTpoQ5yvXXX9+pU6dDHTwIgpdeeiks6tat26xZs2PcHeDHTpADAAAAwI9YiRIlfve731133XWxWGzZsmWvv/76VVdddSQDduvWrVu3bkU1vVAsFgvP3dmxY8cTTzwRXqxRo0a5cuV27twZ3zfso48++tWvfvXCCy9kz3LiB/ZUrFhxy5YtQ4YM+fjjj3O/xLfffvvoo4+++eab48aNyxEFHdQJJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r17H9KwoUWLFs2ePTusb7755oSEhGPZHeA4YGs1AAAAAH7cmjdv3rNnz7AeN25c/DSa6EhNTc3MzAyCIBaLJScn33nnnf/+97/ffffd11577b333nvzzTfj0dF33303dOjQ7H337dsXFlu2bOnVq1eY4pQuXfqss8668sore/Xq1alTp7Jly4ZtVq5cefvtt8e7FF65cuU6dOjQuHHjPO+2b9++TZs2hzpmOOf7778/rNu0aXP55Zcfy+4AxwcrcgAAAAD40RswYMCsWbNSUlJ27tz55JNPDhs2rLhn9P/Ys2dPvXr1giBISkoaOXJko0aNst+tW7fuyJEjq1SpMnny5CAIPvroo4ULF5577rk5Blm/fn0QBBUqVOjXr1+PHj3i4U0QBKmpqQ8++OB7770XBMGqVasmTZrUr1+/wk9vy5Yt99577+effx7+WKtWrZYtW5YpU2b37t3Lli3btm3bO++8884771x11VX33Xdf6dKlCznszp07+/fvH+4pV7ly5UceeeSQdr07wu4Axw1BDgAAAAA/ehUqVLjjjjuGDx8eBMG0adOuvPLKli1bHt5Q8+fPX7RoUeHb9+jRo2HDhgW3qVmz5vTp0wtu85vf/GbGjBkpKSlBELzzzjvxICf7mTenn376o48+Wq1atRx9y5cv//DDD2/atGnFihVBEEydOrVv374lS5YszPx37Nhx8803b9y4MQiCWrVqDR069LzzzovfPXDgwJw5c0aNGrV9+/Zp06Zt2bJl7NixhRl5x44dt91225o1a4IgKFu27FNPPVWjRo3CzKdIugMcTwQ5AAAAABwPrrjiimnTpi1btiwIgpEjR06ZMuXwFnB89tln4cqYQmrbtu1Bg5zCKFOmTIcOHcK8Z/ny5fHr5cqVC4t69epNnDgxvwUxiYmJN99889133x0EwQ8//PDVV18VMsp67LHHwhSnevXqkydPrlq1ava7JUqU6Ny5c5MmTa677rqdO3d++OGHr7zyyrXXXlvwmJs3b+7Xr9+6deuCIChbtuz48eNbtGhRmMkUSXeA44zViAAAAAAcDxISEoYMGZKQkBAEwVdffTVt2rTintEhi2+5tmnTpvjF+PqbxMTEgrc1a9euXbz+z3/+U5hX/P777995552wHjRoUI4UJ+7kk0+O79V20JRr7dq1N9xwQxjDVKhQYeLEiYd0vs4Rdgc4/liRAwAAAMBxomnTptdcc83UqVODIBg3blyXLl3Kly9/qINccsklTZo0KXz7Zs2aHepL5Cc5OTks0tPT4xfr1q0bFhs3bjxw4EABy4zKly+flJQU9k1NTS3MK3722WexWCysO3ToUEDLjh07jh49OgiCzZs3f/fdd/ltdLZs2bLbb799165dQRBUr159woQJDRo0KMxMiqQ7wHFJkAMAAADA8aN///4zZ85MSUlJTU194oknhg0bdqgjNGrUKL4ypkhkZGTs3LkzrCtXrlzAATP79u0LizJlysQvxoOi9PT0NWvWnHrqqQW8VlZWVlhkP1mnANu2bQuLcuXKxWOkPJ144onZe+UZ5CxYsGDQoEFhktSgQYPx48cf0sE2R9gd4HhlazUAAAAAjh8VKlQYNGhQWE+fPv2LL74o3vkEQbBmzZou/+e///1vAS03bNgQFtWrV49frFGjRnxRznvvvVdA9y1btmRkZOQeoQDxxCg9PT0eAuVp79698TrPlOjdd98dOHBgGMO0bt160qRJhxTDHGF3gOOYIAcAAACA40r37t3jp6o8/PDDxTqXIAiCWrVqxetly5bl1ywWiy1YsCCsW7Zsmf3Wz372s7B47bXX9uzZk98I8+bNi9fNmzcvzNzq1KkTFpmZmZ9//nkBLT/55JN4Xbt27Rx3p06dOnjw4MzMzCAI2rdvP3HixIoVKxZmAkXSHeD4JsgBAAAA4LiSkJBw//33h2fJrFq1qrinE1SoUKFFixZh/fzzz2c//ya7t956a/369WF98cUXZ7919dVXh0tnduzY8dhjj+XZPS0tbdKkSWF9xhlnVK1aNfvdnTt3jhkzZtCgQW+88Ub266eddtoJJ5wQ1hMmTMhvUc6+ffueeeaZsG7VqlW5cuWy350wYcIjjzwS1ldcccWf/vSnpKSkPMfJ0xF2BzjuCXIAAAAAON40btz4mmuuKe5Z/P9uvPHGsFi7du2AAQO2bNmSo8Hs2bNHjBgR1k2bNu3QoUP2u9WqVbv55pvD+vXXX3/wwQdTU1OzN9i1a9c999yzadOm8Me+ffvmGH/QoEGTJ0+ePXv28OHD33777fj1pKSka6+9NqyXLFly5513bt26NUffdevW9evX7+uvvw5//NWvfhW/deDAgZEjR06cODH88aabbho+fHhiYmGP5T7C7gA/Ef63CABwcMuWLYtvyrFixYrst+J/761WrdrYsWOP9cwAAMhH//79Z86cuWPHjuKeSBAEQdeuXXv06BGuhlmyZEn37t3bt2/frFmzsmXLpqSkLFq0aPny5WHLcuXKjRw5MlxOlN0tt9zy6aefLl68OAiCf/zjH//61786d+7csGHDIAjWrFkze/bseLTzy1/+8txzz83ed+/evdk3Rnv//fcvu+yy+I99+/ZduHBhOIEPPvige/fuHTp0aN68+QknnPDDDz8sXbp08eLFBw4cCBv36NGja9eu8b7PP//8q6++Gv/xrbfeeuuttw76aTz44IPnnHPOkXcH+IkQ5AAAHFyzZs3mzJnz3Xff5b718ssvh8WUKVOO7aQAAChI+fLl77777iFDhhT3RP7XsGHDypUr9+KLLwZBkJGRMXv27NmzZ+doc9JJJz3++ONhPJNDYmLiE088MXTo0Pfffz8Igt27d0+fPj13s1/+8peDBw/OcbFMmTLly5ePJz27du3Kfrd06dITJkz4/e9/P2fOnCAI9u/fP2vWrFmzZuUevE+fPnfeeWf2KzlystyrefK0f//+IukO8BNhazUAgINLTEwcM2ZMAQ1q1Khx9dVXH7P5AABQGJdddtmZZ55Z3LP4XyVLlvztb3/74osvXnzxxeGBN9mddNJJv/71r19//fWWLVvmN0JycvKYMWOeeOKJM844I/fds846a/z48UOGDClZsmTul/7d734X37KsQoUKORqUL1/+T3/601NPPXXeeefl3tnshBNO6Nat29SpU+++++7cgwNwtCXEYrHingMAwI9AZmZmnTp18lyUEwTBlClT4nusAcAxlpCQEBZLly4t1okAhZWRkbFq1arNmzdnZGQkJyefcsopdevWjf+3XBg//PDDN998s3379hIlSlSpUqVx48YVK1YsuMuOHTu6du2alZXVv3//X//61/k1S0tLW7169datW/fv31+2bNlatWo1aNBAfgPHWJs2bYIg8O09IUEOAEBhvfTSS9ddd13u6zVq1NiwYYNDWQEoLoIcoDDeeeed3/3ud0EQvPHGG6ecckpxTwcoiCCH7GytBgBQWFdffXWNGjVyXx8zZowUBwCAKFu1atUjjzwSBEGPHj2kOAA/LoIcAIDCyvOkHKfjAAAQcTNnzrzhhht27tx52mmn3XfffcU9HQAOjSAHAOAQ5F6UYzkOAAARl5GRsXfv3m7duk2cODE5Obm4pwPAoXFGDgDAocl+Uo7TcQCIAmfkAAXbv3//559/3rZt2+KeCFBYzsghOytyAAAOTfZFOZbjAAAQfaVLl5biAPx4CXIAAA5N/KQcp+MAAAAAR5sgBwDgkIWLcizHAQAAAI42Xz0AAByyxMTE55577uKLLy7uiQAAAADHOUEOAMDhuOyyy4p7CgAAAMDxz9ZqAAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACJKkAMAAAAAABBRCbFYrLjnAABHICGhuGcAcPzylwX4kUjwJyIAOB759p6QFTkAAAAAAAARJcgBAAAAAACIqMTingAAFIHPly4t7ikAHD9at2lT3FMADo19VwAAjmNW5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAABFafv27VlZWcU9CwAAADhOJBb3BADgJyQ9Pf3SSy9NS0sLgiA5Ofmdd95JSko6wjG3bNlyxRVXhPVbb71VtWrVI53l/1m+fPn//M//hPXcuXPLlClTVCMHQTBgwIAlS5bkeat06dLVqlVr0aJF165dzz///BIl/LuTH409e/bceuuty5cvr1at2rPPPlu/fv3inlFOqampXbt2Devbb7+9T58+B+1yzjnnhMVNN9106623BkFw//33z549+5Bet0+fPrfffntYx3/527Zt++STTx7SOAAAAPwECXIA4NiZP39+SkpKWKenp8+fP79z585HPmx6enpYxGKxIx8t7sCBA/GRi9y+ffvyGzw9PX3Xrl1r1qx58803mzVrNnLkyAYNGhylaVC05s+fv3z58iAIvv/++3/84x933313cc8op1gsFv/Fy8jIKEyX3O0L+O3NT2ZmZryOd9+3b98hDQIAAMBPkyAHAI6dmTNnZv/xX//6V5EEOcXl3XffffHFF4MgaNKkybBhww5vkFKlSp144onxH2Ox2O7du3fv3h3++NVXX/3qV7/6y1/+0rRp0yOfMEfooE+8Vq1a8bpOnTrHbmbHVnJycrly5XJc3LNnT5iklixZMjk5Ocfd0qVLH6PJAQAAcNwR5ADAMZKWljZv3rwgCE444YSsrKz09PR58+alp6cf+e5qxWXbtm3h8ovExMP/E8Xpp5/+7LPP5ri4du3av/71r2+++WYQBLt37x40aNC0adNyfznOMXbQJ96yZcsnn3xy/vz5p5566pVXXnlsZ3fsPPTQQ7kv9u7d+6uvvgqCoH379k888cSxnhMAAADHL5vOA8Ax8uGHH4b7KbVv3/68884LgiAtLW3+/PnFPa8oatCgwYMPPjhgwIDwx02bNr388svFOyUKqX379oMHD77qqqscbgQAAABFwl+wAeAYie+rduGFF1500UVh/a9//avYJhR5N910U/369cN6xowZxTsZAAAAgGJhazUAOBbS0tI++OCDIAgSExMvuOCCjIyMhISEWCxW+N3VNm7cOHv27NWrV+/fv79GjRrnnHNOu3btEhISCuiSmpoaX/HTuXPnUqVK5W7z/ffff/LJJ0EQlCxZsmvXroV5L+vXr//yyy+DIAg3kgqCYMeOHe+++268QadOnYrkRJASJUp06tTpueeeC4Jg7dq1qamp5cuXD4IgKyvrvffeC9t06dIl3Obrs88+W7JkyQ8//HDvvffmHiojI2Px4sWfffbZd999FwRB1apVW7dufcEFF5QpU6bgOYSrppYvX/7999/HYrFKlSo1bty4ffv2VatWzd34CD/w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bYrgopwuXbokJiYGQbB+/frZs2fn2ebRRx/t1q1bt27dsn+Me/bsue6666677rpevXrt3Lkzd6/MzMw9e/aEdaVKleLXj/ADP5b+9Kc/7dq1K/f1BQsWrFmzJqxzhytH/sTD3dWCIFi7du2KFSs+//zzIAiaNm168skn52582E+wYN27d4/Xo0ePLmDt1AcffBCuHAqC4JJLLgknAwAAAMeYIAcAjor4Jmlt2rQ56NEa9erVq1+/fo6OQRC0atWqSZMmYT169OgcJ4Vs2bLl1ltvjX/tnlupUqVatmwZ1s8//3z2L+5jsdjrr79+yy237N69O7/utWrVin9z/d577+VucOqpp4ZFamrq4sWL839/xePEE0/8xS9+EdYjRoxYt25djgbLli176623wrpbt27x61WqVIk/jr/+9a+5R54xY8b+/fuDIEhKSop/CMERf+DH0oYNG/r165djFcumTZv+8Ic/hHW9evXOO++8HL2K5InHd1F7+OGHwzQoz33VgiN4ggWrV6/eZZddFtZLliwZOHDgxo0bc7TJzMycNm3ab3/72/DHpKSkG2+8sZDjAwAAQNHy7woBoOht3749vq9anntG5dahQ4dvv/02CIJ58+alpaXFN+n67W9/27dv3yAItm7d2qtXr169ep166ql79+794osvZsyYkZaW1qFDhwI2nurRo0e46GH9+vW/+MUvOnfuXKlSpe3bty9evHjDhg0JCQm9e/d++eWX8+xbunTpc889N1yR8PTTTy9evLhGjRo33nhjo0aNwgannHJK/fr1w2nfddddHTt2DJenDBgwIPsmY8Vo4MCBixYtWr9+fUpKSu/evfv06XPOOedUrlw5JSVlwYIFkydPDldjtGrVKkeWcMsttwwdOjQIgkmTJq1fv/7yyy9v1KhRmTJlNm/ePHPmzPgndu211+Z4p0fygR9LzZs3//LLL3v06NGtW7eWLVuWKlXqm2++mTZtWjxnGjx4cIkSOf/FT5E88c6dO4cRzvLly8MrXbp0ya/xYT/Bgt13333Lly9fv359EAQLFizo3r1769atmzRpUqFChczMzI0bN3788cc7duyItx86dGjt2rULPz4AAAAUIUEOABS99957L77xVMeOHQvT5cILL/zb3/4W/N/uavFvpdu2bXv33XePGTMmCIIffvjhmWeeyd6rc+fOI0aMyL1yIu7yyy//5z//+emnnwZBsG3btldeeSV+Kzk5edSoUVWqVCkgV7jjjjs+/fTTcBuxMJrq3r17PMgJgmDIkCH9+vXLzMxMS0t7++23w4t9+/aNSJBTrly5CRMmDBgwYO3atXv37p04ceLEiRNztGnYsOGYMWPiW6KFunfvvnbt2ueffz4Igvfff//999/PPfhFF11022235bh4hB/4MXPvvfc+/fTTS5Ysee2111577bUcd++5555zzz03z45H/sSrVq165plnxpPORo0a1atXL7/Gh/0EC1axYsVJkybde++9n3zySRAEsVhs6dKlS5cuzd0yOTn5gQceuOSSSwo/OAAAABQtW6sBQNGLb0TWqFGjPA//yK1169bx01Zy7GPWp0+fp556Knt8EgTBySef/MADDzz22GNly5aNH0GfW8mSJZ966qmePXtmb5OYmNi5c+dXXnmlY8eOpUqVKmBWjRo1mjp1ao8ePWrXrp3nASFnnXXWlClTLrvssurVqx/SN+nHTO3atadMmdK3b9+qVavmuHXSSSf179//xRdfPOmkk3J3HDhw4LPPPnvuuefmfuNNmjQZMWLEn/70p9yf3hF+4MdMUlLS+PHjBw4cGD/2JtS8efOJEyded911+XUskieefQnOQVfSHPYTLFjVqlX//Oc/jxo1qk2bNgkJCXk2uP7666dPny7FAQAAoHglRPBoYgA4BAkJQRB8ntc/pT/+bNiwYcOGDUEQ1K5du4BFDHlKS0tbu3btnj17ypUrV79+/YismDmWYrHYunXr/vvf/+7bty85Ofnkk0+uU6dOnt/g55CWlrZ69eodO3ZkZmZWqFChQYMGuROFPHtF7QPft2/f2WefHdZTp05t2rRpEASZmZmrVq3asmVLYmJigwYNatWqVaxzLMhhP8GD2r179+rVq7du3Zqenp6YmFipUqW6devWrl27SAb/kWrdps3/Vv6yAAAAUNwEOQD8yP2Ughw4EnkGOZAnQQ4AAEB02FoNAAAAAAAgogQ5AAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACIqsbgnAADAsVC6dOnXXnstrOvUqVO8kwEAAAAKSZADAPCTkJCQ0KhRo+KeBQAAAHBobK0GAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYnFPQEA4Fjbvn17pUqVSpYsWdwTOUxZWVn//e9/t2zZkpaWVqpUqRNPPLFu3bpJSUnFPa+flvApfPfdd2lpaYmJiVWqVDnllFPKli1b3PMCAACA440gBwCKTWpqateuXcP69ttv79Onz0G7nHPOOWFx00033XrrrYf6inv27Ln11luXL19erVq1Z599tn79+oc6QvFavHjxtGnT5s+fv2fPnuzXExMTW7du3b17927dupUuXbrIX3f58uX/8z//E9Zz584tU6ZMkb/Ej8iCBQtee+21hQsXpqWlZb+ekJDQvHnzSy+99KqrrkpOTj4GM9myZcsVV1wR1m+99VbVqlWPwYsCAADAMSbIAYBiE4vF0tPTwzojI6MwXQ61fQ7z589fvnx5EATff//9P/7xj7vvvvswBikWW7dufeCBBxYuXJjn3czMzE8++eSTTz559tlnH3jggXjcVVQOHDgQ/+R/yrZs2fLAAw8sWrQoz7uxWGzFihUrVqyYNGnSAw880KFDh2MwpfhzicVix+DlAAAA4NgT5ADAT0itWrXidZ06dYpxJodk9erV/fv337p1a/hjyZIlW7du3bhx4/Lly6enp3/77bcff/xx+IX+5s2bb7vttt///vdXXnnlsZzhu+++++KLLwZB0KRJk2HDhh3Llz5mVq1addttt23bti38sUSJEm3atAmfwr59+zZt2vTxxx//8MMPQRBs37594MCBd999d2EWmQEAAAAFE+QAwE9Iy5Ytn3zyyfnz55966qnHOOo4bNu2bcue4vziF7+47bbbqlWrlr3N3r17p06dOmHChIyMjFgs9uCDD9aoUePcc889lpMMlzolJh6ff7jaunVr9hTnyiuvvO2220466aTsbTIzM2fMmDFmzJjU1NQgCMaMGVOlSpVu3boVw3QBAADgOHJ8ftcAAOSnffv27du3L+5ZHILhw4fHU5zBgwf36tUrd5uyZcvefPPNrVu3vu222/bv3x+LxUaMGDF9+vRSpUod28ketx544IF4inPvvfdee+21udskJib26NGjdevWN998c0pKShAEDz300BlnnFGzZs1jOlcAAAA4vpQo7gkAAORr4cKFH374YVj37NkzzxQn7swzz/zNb34T1ps2bZo7d+5Rn99Pw/z58+OnE/Xs2TPPFCeufv36jz32WFinpaU99dRTR31+AAAAcFyzIgcAjgdZWVnvvfdeWHfp0iXc4Ouzzz5bsmTJDz/8cO+994a3YrHYzJkzw/qcc86pVKlSniNceOGFycnJQRDs2LFj3rx5a9euTU9Pr1ixYps2bc4555ySJUsWPJmMjIzFixd/9tln3333XRAEVatWbd269QUXXFCmTJlDfV9//etfw6JcuXIDBw48aPurr756woQJaWlpQRDMnTu3S5cu4fXU1NT58+eHdefOnfNcqfP9999/8sknQRCULFmya9euhZne+vXrv/zyyyAIvvrqq/DKjh073n333XiDTp06lS5d+sjnUMjnm10RPoUXXnghLAr5FM4888xLLrkk/BzeeeedO+64I/smbIfxXjZu3Dh79uzVq1fv37+/Ro0a55xzTrt27RISEgo5/0P9KA5phmlpafPnz1++fPn3338fi8UqVarUuHHj9u3bV61atZDTAwAAgIIJcgDgeJCZmTl48OCwnjdvXmZm5n333bdkyZIgCEqUKBH/6jkrKyve7IUXXsge5GQfYcaMGTVq1Hj22WcnTZqUkZGR/YVOPfXUsWPH1qpVK7+ZzJs3b9SoUeE35tlVqVJl0KBB3bt3L/yb2rZt2+LFi8O6e/fuFSpUOGiXpKSks84664MPPgiyhStBEGzZsiX755NniPLNN9+EbZKSkgoZ5CxevHjkyJHZr6xfvz7+QkEQzJkzJx7kHMkcCvl844r3KQRBcO2114ZBzoEDB2bOnNmnT5/Dey8ZGRmPP/74K6+8cuDAgfjFSZMmtWjRYtSoUUlJSQedyWF8FIWf4csvvzx+/PjwTKDsEhMTe/XqNXDgwPjTBwAAgMNmazUAON6kpKT07ds3/N758OzevXvgwIHPPvtsjhQnCIJVq1bdcccdmZmZeXacNm3awIEDwy/NS5QoUa9evYYNG4aJxY4dO4YOHfrMM88Ufhrx9StBEHTs2LGQvX73u99NmTJlypQpo0aNKvxr/Ygc9PlG4Sm0atWqSpUqYR3mankq+L0cOHDgnnvuefnll+MpTnwVzooVK2644Yb169cXPI0j/ygKmOHYsWNHjx4dpjilS5du2LBhkyZNwmwpMzPzxRdfvOeee2KxWMHjAwAAwEFZkQMAx5tHHnlkzZo1iYmJF110UevWrStXrnyoIzzwwANff/11lSpVbrrppvPOO69KlSpbt26dOHHi7NmzgyBYtWrVzJkzu3XrlqPXl19+Gc9OevXq1a9fv3DFT1pa2uTJkydMmBCLxZ555plmzZpdeOGFhZnGsmXLwiIhIaF169aFnHytWrUKWDBUtDp16tSkSZMgCN59992XXnopCIJTTz112LBh8Qbly5cv8hct+PlG5CkkJCSceeaZ4QZly5cvj8Viee6EVvB7eeWVV/7973+Hdbt27e64445mzZplZWUtX7580qRJ8+bNGzFiRAFzKJKPIr8Zrly5ctKkSWF9yy233HLLLWXLlg2CYP/+/W+88cbo0aOzsrLmzp07a9asQq7uAgAAgPwIcgDgeLNw4cJmzZr98Y9/PPnkkw9vhK+//vqss84aM2ZMxYoVwyuVK1d+9NFHe/bs+Z///CcIgvfffz93kPPYY49lZWUFQdCnT5+77747fj05OfnXv/51cnLymDFjwmbt27cvUeLgy4LXrl0bFnXr1i3MJlrHXtWqVcOjUL744ovwygknnHDaaacd1Rct+PlG5yk0atQoDHL27t27devW6tWrH9J72b9//7PPPhvWbdu2HT9+fHhWTYkSJU4//fTTTz/98ccfjx/ek6ci+Sjym+Hbb78dFmefffaAAQPi10uXLn311VevXbt26tSpQRC89957ghwAAACOkK3VAOB407Bhw2efffawU5wgCM4444ynn346nuKEEhMTL7nkkrBeuXJlji6rV6/+9NNPgyAoX758//79c4957bXXhgtlNmzY8NFHHxVmGlu2bAmLmjVrHuI7OJ4V8Hwj9RSyt899RE2ogPfywQcfpKSkhPXgwYPDFCe7u+66q23btvm9elF9FPnNcMOGDWHRokWL3L0uv/zya6+99tprrz3aqR4AAAA/BYIcADje3HPPPUe4o9eAAQPKlCmT+3r9+vXDYseOHTluzZ07Nyw6deqUnJycu2/JkiW7dOkS1gUcmpJd/Az5ChUqFKb9T0QBzzdSTyF7EBgfJIcC3suCBQvComXLlg0bNszdICEhIftSmByK6qPIb4bhQTtBEGzatCn33ebNm99777333nvv9ddfn9/IAAAAUEiCHAA43oRndRyJkiVL5nk9/o32/v37c9xaunRpWLRp0ya/YZs1axYWuRf05Cn+KvEvzQkKfL6RegrZ22dkZOTZpoD3Ep/eGWeckV+bPLdrCxXVR5HfDJs2bRoWM2fO/Oc//5lfdwAAADhyghwAoLAKOFLl22+/DYvatWvn16ZatWphkecihtziSUB+MQA5ROopZGZm5h6k8DZu3BgWp5xyyqH2DY7OR5HdFVdcEeaasVhs2LBh119//auvvrpt27bDmCoAAAAULOdu4wAAh2Hr1q1hMWDAgISEhDzbHDhwICx2795dmDHLlSsXbsmV38Zc5BCpp7Br1654fah7/cVisZ07d4Z1lSpVDqlv6Gh8FNlVrVp1zJgxgwYNCvsuX758+fLlI0eObNq0aadOnX7+85872AkAAICiIsgBAI7UgQMH4htw7du376Dts7KyCjNs9erVN2/eHATBli1bjmR6PxFRewrZ28fXvhRSRkZGLBYL6zyPayrYUfoocmjXrt1rr702YcKEt99+O75caeXKlStXrnzmmWcuv/zyu+66K/tBQQAAAHB4BDkAUGyyLxSIf21dgOxt8ltkUCziKxuCILjppptq1apVcPtCfjVfv3798KSTdevW7d+/v3Tp0kcwx+PfUXoKp5xyyuE9hVWrVoVFUlJSjRo1CtkrlP3XO/v7KqSj9FHkVqNGjT/84Q933XXXrFmz5s6du2TJkvT09HACb7zxxmeffTZp0qTDW1EEAAAAcYIcACg2SUlJ8bow6wbC74hDh/3V89GQmJiYmJgYnoly/vnnn3XWWUUybKtWrV5//fUgCLKysj7//PO2bdsWptfMmTM//PDDIAhKlSr1+9//vkhm8qNwlJ7Caaed9sYbbwRBkJWV9cUXXxR+2E8//TQsWrRoUcDpSnkqVapU/L0cxr5nR+mjyE+lSpV69uzZs2fP9PT0OXPmPP/882GItW7dutGjR48ePfqovjoAAADHvUP7SzUAUIRKlSoVPzskfqRHAbK3OfHEE4/WtA5LfMnFd999V1RjnnvuufF67ty5hez17rvv/vOf//znP//5ySefFNVMfiyOxlM455xz4vW///3vQvb66quv4r+u55133mG8bnw3tsL8p5Hb0fgoDiopKenSSy+dOnXqpZdeGl7517/+FT/sBwAAAA6PIAcAilPDhg3DYsWKFQdtnL1NgwYNjtacDkvjxo3DYuXKlUU1Zs2aNU8//fSwfvPNN/fs2XPQLvv37//444/DunXr1nm2CRdqHCWF2SLv6M3haDyFWrVqtWnTJqwL+RSCIJg6dWq8vuSSSw7jdevUqRMWq1evPozuR+OjKKSSJUvec889YR2LxeJbzAEAAMDhEeQAQHGKbxe2atWqg35h/c4774RF+fLlmzdvfnRndojatWsXFvPmzcuvzZ49ezZu3Lhx48YtW7YUctg+ffqExa5du55++umDtp8+fXpqampYd+zYMX49OTk5Xm/fvj3Pvtu2bctv2OxHtmRlZeVuED85Jvv2dzkc4RwK4yg9heuvvz4sdu3aNX78+IO2X758+ZtvvhnWnTp1ql27diFfKLvTTjstLBYuXJjfMTmbNm3Kr/tR+ihC+/btW7FixYoVK/JLiapUqVK5cuWw3rt37yENDgAAADkIcgCgOHXv3j1ejx49uoCFGh988MEHH3wQ1pdcckliYrQOuuvSpUs4pfXr18+ePTvPNo8++mi3bt26dev20EMPFXLYjh07nnHGGWH90ksvhUfm5Gf16tVPPPFEWNepU6d9+/bxWyeddFLJkiXDOs/FTytWrPjjH/+Y38jxHfCCfHb6in9rv2nTpvwW5RzhHArjKD2Fzp07xxflTJkyJTwyJz+bNm26++67ww+hVKlSd9xxR6Gn//+48MILw2Lr1q1z5szJ3WD37t0FvIWj9FGE9uzZc91111133XW9evXKc+e0zMzM+NKlSpUqHdLgAAAAkIMgBwCKU7169S677LKwXrJkycCBAzdu3JijTWZm5rRp037729+GPyYlJd14443HcpKFceKJJ/7iF78I6xEjRqxbty5Hg2XLlr311lth3a1bt0IOm5CQMGLEiIoVK4Y//uEPf3jkkUdyf3WelZU1Y8aMm266Kfz2PCEhYciQIdmzrlKlSrVs2TKsn3/++V27dsVvxWKx119//ZZbbtm9e3d+06hVq1Z8tPfeey93g1NPPTUsUlNTFy9enOcgRziHwjiqTyGeZg0fPvyxxx7LPv9QLBabNWvW9ddfH1/g8tvf/rZevXqH8UaCIGjVqlWTJk3CevTo0TmOutmyZcutt966Zs2a/LofpY8iVKVKlfr164f1X//619wNZsyYsX///iAIkpKS4r8bAAAAcHii9Y95AeAn6L777lu+fPn69euDIFiwYEH37t1bt27dpEmTChUqZGZmbty48eOPP96xY0e8/dChQw9vr6qjbeDAgYsWLVq/fn1KSkrv3r379OlzzjnnVK5cOSUlZcGCBZMnTw7XG7Vq1apr166FH7Z27dpPPfXU7bffHiYHU6dOnTZt2llnnXXqqadWqFBh3759mzZtWrx4cfZNye65555zzjknxzg9evT4/PPPgyBYv379L37xi86dO1eqVGn79u2LFy/esGFDQkJC7969X3755TznULp06XPPPTdcEfX0008vXry4Ro0aN954Y6NGjcIGp5xySv369b/99tsgCO66666OHTuG6zAGDBiQfUe1I5lDIR2lp1CnTp3x48f3798/3LnuxRdffO21184+++zGjRuHT2Hjxo2LFy/OvtdZ3759r7nmmiN5L7/97W/79u0bBMHWrVt79erVq1evU089de/evV988cWMGTPS0tI6dOhQwM5pR+mjCN1yyy1Dhw4NgmDSpEnr16+//PLLGzVqVKZMmc2bN8+cOTP+EK+99trsvwAAAABwGBIKeSQvAERUQkIQBJ8vXVrc8zgi27dvv/feez/55JOCmyUnJz/wwAN5Hh2/b9++s88+O6xfeOGF+PkiOWRmZp511ll5NivMCIsWLerXr18QBCVKlPj0009zN9i4ceOAAQPWrl2b31to2LDhhAkTTjrppPwa5GfDhg1Dhgz54osvCm5WoUKFYcOG5fm9fFZWVt++ffOcdnJy8qhRo6pUqXLDDTcEQZCUlLRo0aIcbVavXn3DDTfE98sKguCZZ57JHhd9/PHH/fr1y7E53pw5c+K7rh3JHAr5fENH7ymsW7duyJAhy5cvL7hZ+fLlBw8enN8yl0N6L5MnTx4zZkyetzp37jxixIjzzjsv/HHWrFknnnhijjaH91EUcobjxo17/vnnC5j8RRdd9Mc//rFUqVIFtIms1v+3mV7gLwsAAADFzdZqAFD8qlat+uc//3nUqFFt2rRJSEjIs8H1118/ffr0PFOc6Khdu/aUKVP69u1btWrVHLdOOumk/v37v/jii4eRHwRBUKdOnb/97W9jxow599xz8zwfqEGDBrfffvuMGTPyW11RsmTJp556qmfPnqVLl45fTExM7Ny58yuvvNKxY8eCv3Bv1KjR1KlTe/ToUbt27TwncNZZZ02ZMuWyyy6rXr16/Cycop1DIR29p1CvXr0XXnjh0Ucfze8p1K1bt3///jNmzDjUzcry06dPn6eeeiq+8il08sknP/DAA4899ljZsmWzf5K5Hb2PIgiCgQMHPvvss3l+FE2aNBkxYsSf/vSnH2mKAwAAQKRYkQPAj9xxsSInu927d69evXrr1q3p6emJiYmVKlWqW7du7dq18wx4IisWi61bt+6///3vvn37kpOTTz755Dp16hTVW9i3b9/atWs3b96cnp5eunTpypUr169fv0qVKoXsnpaWtnbt2j179pQrV65+/frFsvPVsZnDUX0K6enpa9eu/e6778Jf1MqVKzdo0CB3XlJUNmzYsGHDhiAIateufRjn7hzVjyItLW316tU7duzIzMysUKHCUf0cjhkrcgAAAKJDkAPAj9xxF+QAFDtBDgAAQHTYWg0AAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAERUYnFPAAA4rgwYMGDJkiVBEJQsWXLSpEmNGzcuuH1mZuYFF1wQ1i+88MJB2xeLWCy2cOHCWCwWBEGDBg1q1qxZcPutW7d++eWXmzdvTk9PT05Orl27dqtWrSpVqlTIl9u+ffvnn3++adOmffv2lS1btm7duq1atapQocIRvoscNm/e/P333wdBcOKJJ9aqVauQvXbt2rV06dINGzakp6eXL1++QYMGrVq1KlOmTH7tY7HYpk2bCjNytWrVSpcuXchpAAAAwE+HIAcAKEr79u1LT08P61GjRk2aNCkhIaHgLvH2Bw4cOLqTO1wvv/zyo48+Gtb33Xdf796982u5YMGCiRMnfv755zmuJyQkdOjQYeDAgQ0bNizghZYtWzZ+/PiFCxfmuF6yZMkLL7zwtttuO/XUUw/rHeS0cePG66+/PiUlJQiCPn363H333QftsmrVqgkTJsydOzcrKyv79bJly3bv3r1fv35VqlTJ3SslJaVbt26FmdKUKVNatGhRuOkDAADAT4it1QCAo2Xp0qUzZswo7lkcqXXr1o0dO/agzWKx2OjRo/v37587xQnvzp07t1evXjNnzsxvhBdeeOFXv/pV7hQnCIKsrKzZs2f37t379ddfP6TJ52ndunV9+/YNU5xCmj59eu/evWfPnp0jxQmCYO/evX//+9+vuuqqZcuW5e54SK8CAAAA5GZFDgBwFD3++OMXXXRR+fLli3sihykzM3PIkCH79u07aMvnnnvu5ZdfDuvExMQLLrigSZMm5cqVC/ciC7eby8jIuP/++2vWrHnaaafl6P6Pf/zj8ccfD+ukpKSuXbu2atWqbNmyO3fuXLp06Zw5czIzMzMzM//whz+ceOKJ7du3P+x39P777w8fPjw1NbXwXebPnz98+PBwZ7mkpKTLL7/87LPPrlix4vbt2z/88MO33347KysrJSXl9ttvnzp1ao5d2uJBTtWqVQveki45OfnQ3w0AAAAc/wQ5AMBRlJKS8vTTTw8ePLi4J3KYnn/++eXLlx+02ZYtW5555pmwbtiw4bhx42rXrp29wYIFC+688879+/dnZWU9+uijL774Yva7O3bsiG/dduqppz755JM1atSI373uuuu+/fbb22+/PTxs5tFHH73gggsOumFdDrFYbOnSpc8999yHH354qB0feeSRMMWpWbPmxIkT69atG7/7s5/9rHfv3rfeemtqauquXbsmTJgwYsSI7N3jQU7Pnj1vu+22Q3ppAAAAILC1GgBwlJxyyilh8corr6xcubJY53KYvvrqq4kTJwZBcMIJJxS8mmT69OmZmZlBEJQqVeqJJ57IkeIEQXDeeef169cvrJcvX7569ersd998883woKDSpUuPGzcue4oTql+//gMPPBDWGzZs+Prrrw/pjbz11ls/+9nPbrrppniK06NHj+x5TAG++eabDRs2hPXw4cNz92revPmAAQPC+v33389x0FE8yKlcufIhzRkAAAAICXIAgKPiiiuuaNasWRAEsVhs1KhR4ZKOH5H9+/cPHTo0PBLmvvvuq1q1agGNP/roo7Do2rVrnTp18mxz1VVXxeulS5dmv/Xxxx+HRZcuXfJLjNq2bZuUlBTW69atK8xbiFu/fv3WrVvDOikp6Z577nnggQcKuaYn/lrly5dv165dnm3iW73t3bs3/kKhH374ISwK/gABAACA/AhyAICjokSJEkOGDAnrL774Yvr06cU7n0P15JNPrlmzJgiCTp06XX755QU3Xr9+fViceeaZ+bWpWLFi9erVw3rLli3Zb3333Xdh0aRJk/y6lyhRomzZsmGdkZFxkNnnpUaNGrfccsuMGTOuu+66wu/MFj8fqGLFivn1qlixYu72oR07doSFFTkAAABweJyRAwAcLS1btrzqqqumTZsWBMHYsWM7depUoUKFIx92x44dO3fuLHz76tWrxyOQQvr0008nT54cBEHlypWHDh160PaXXHJJGGC0bNmygGaJiXn/0Wvy5MnhiqVSpUrl1zctLS2+uiUeCBXSz372s0svvbRevXqHerJOkG0lzfbt27OyskqWLJm7zbZt23K3D8WDHCtyAAAA4PAIcgCAo2jAgAGzZs3auXNnSkrKk08+GV+jcyReeumlv/zlL4VvP27cuA4dOhS+/d69e+PhzdChQ6tUqXLQLoMGDTpom8zMzO+//z6sq1Wrlv1WcnLyQbvPnDkzPH6mfPnyrVq1Omj77Bo0aHBI7bNr2bJlYmJiZmZmWlrahx9+eOGFF+ZuM2vWrHjjcuXKZb8VD5+syAEAAIDDY2s1AOAoqlSp0sCBA8P6tdde++qrr4p3PoXx2GOPbdq0KQiC7t27d+7cuaiGXbp06f79+8O64IU7uX377bdPPPFEWN9yyy3xw3KOgQoVKlxxxRVhPXLkyPCTye7LL7989tlnw/rmm2/OcTclJSUIgpIlS1asWPHbb7995JFHevbsedFFF3Xs2PGaa6556KGHPvnkk6P8DgAAAODHzYocAODouvLKK994441ly5bFYrFRo0b97W9/K1HiiP4pSf369S+66KLCtz+kTb3mzZv3j3/8IwiC6tWrDx48+FDnVoCXXnopLOrWrdusWbOCG6empu7bty8zM3PTpk0ffPDByy+/nJ6eHgTBL37xi1/96ldFOKvCGDRo0BdffLFq1aqtW7dec801N9988/nnn1+hQoXt27fPmjVrypQpYUB1/fXXd+rUKUffcGu1SpUq/e1vf3vyySezsrLit1JSUr7++uvXXnutXbt2Dz300EknnXQs3xQAAAD8WAhyAICjq0SJEr/73e+uu+66WCy2bNmy119//aqrrjqSAbt169atW7eiml52P/zwwx/+8IewfvDBB3PsEnYkFi1aNHv27LC++eabD3pWzZgxY954443sV0455ZRbb7310ksvLaopFd4JJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r175+gYi8XC04x27NgRX1FUo0aNcuXK7dy5M77R3EcfffSrX/3qhRdekOUAAABAbrZWAwCOuubNm/fs2TOsx40bFz83JWpGjhy5ffv2IAh69ep19tlnF9WwW7Zsuf/++8O6TZs2l19++aGOkJiYWL9+/dKlS8disaKa1SEpV65chw4dGjdunOfd9u3bt2nTJvf11NTUzMzMIAhisVhycvKdd97573//+913333ttdfee++9N998Mx7Ifffdd/FziQAAAIDsrMgBAI6FAQMGzJo1KyUlZefOnU8++eSwYcOKe0Y5vf322++9914QBPXq1bvjjjuKatidO3f2798/3GGscuXKjzzySGF2lmvevHmYgmzfvv2bb77Zv3//nDlz5syZ06ZNm0cfffQYr1zZsmXLvffe+/nnn4c/1qpVq2XLlmXKlNm9e/eyZcu2bdv2zjvvvPPOO1ddddV9991XunTpeMc9e/bUq1cvCIKkpKSRI0c2atQo+7B169YdOXJklSpVJk+eHATBRx99tHDhwnPPPfcYvjMAAAD4ERDkAADHQoUKFe64447hw4cHQTBt2rQrr7yyZcuWhzfU/PnzFy1aVPj2PXr0aNiwYcFttmzZ8vDDDwdBUKJEiYceeig5Ofnw5pbDjh07brvttjVr1gRBULZs2aeeeqpGjRqF6Xj11VdfffXVYZ2env7uu++OHTs2JSVl6dKl//M//zN58uSKFSsWyQwPaseOHTfffPPGjRuDIKhVq9bQoUPPO++8+N0DBw7MmTNn1KhR27dvnzZt2pYtW8aOHVuyZMnwbs2aNadPn17w+L/5zW9mzJiRkpISBME777wjyAEAAIAcBDkAwDFyxRVXTJs2bdmyZUEQjBw5csqUKYVZm5LbZ599Fq7hKKS2bdsWHOTEYrHhw4enpqYGQXDLLbe0atXqMGaV2+bNm/v167du3bogCMqWLTt+/PgWLVocxjhJSUk9evRo27Zt7969d+3atX79+ieffPKYbUT22GOPhSlO9erVJ0+eXLVq1ex3S5Qo0blz5yZNmlx33XU7d+788MMPX3nllWuvvbbw45cpU6ZDhw5h3rN8+fKinTwAAAAcB5yRAwAcIwkJCUOGDElISAiC4Kuvvpo2bVpxz+h/vfrqqwsXLgyCoGnTpr/+9a+LZMy1a9fecMMNYYpToUKFiRMn5nmKTOHVrl37xhtvDOsZM2bs27fviOd4cN9///0777wT1oMGDcqR4sSdfPLJ/fr1C+tDythC8S3XNm3adFjTBAAAgOOZFTkAwLHTtGnTa665ZurUqUEQjBs3rkuXLuXLlz/UQS655JImTZoUvn2zZs0KuLt58+bHH388rPv06RNug5ZbWlpaWGzdunXlypVh3aRJkzCXymHZsmW33377rl27giCoXr36hAkTGjRoUPgJ5+fcc88dN25cEATp6elr1qxp3rz5kY9ZsM8++ywWi4V1hw4dCmjZsWPH0aNHB0GwefPm7777rpA7yIXiG9mlp6cf7kwBAADguCXIAQCOqf79+8+cOTMlJSU1NfWJJ54YNmzYoY7QqFGj+BqOI7du3bp4fjBkyJCDtp80adKkSZPC+uOPP05MzPmnqQULFgwaNCgcs0GDBuPHjy841XjllVf+/ve/B0HQqlWr8Ayh/FSqVCle79y586BTPXLbtm0Li3LlyhV8btCJJ56YvVeNGjUyMjLik6xcuXL84Jzc4quLypQpc6QzBgAAgOOOrdUAgGOqQoUKgwYNCuvp06d/8cUXxTufovXuu+8OHDgwTHFat249adKkg65NOXDgwJo1a9asWfPJJ58U3DI8xSd0bDKP+Kukp6dnZWUV0HLv3r3xulSpUkEQrFmzpsv/+e9//1tA3w0bNoRF9erVj3TGAAAAcNyxIgcAONa6d+8+bdq0pUuXBkHw8MMPF+9kKleufNFFFx202UcffRRmFY0aNTr55JPDizn2VZs6deojjzwS1u3bt//jH/+YlJR00JHjq4s2bNiwdu3aAjZhW758ebyuU6fOQUc+cvFXyczM/Pzzz88444z8WmZPoWrXrh0EQa1ateJXli1bVq9evTw7xmKxBQsWhHXLli2PfM4AAABwnBHkAADHWkJCwv3339+rV68DBw6sWrWqeCfTpEmTJ5544qDNrrrqqvD4nKuuuqp37965G0yYMGHixIlhfcUVVwwbNiz3rmt5atOmTcWKFcNdyB599NGnn346z13I9u/fP2XKlLBu2LBhtWrV4rd27tz5l7/8ZePGjR06dOjRo0dhXrSQTjvttBNOOGHPnj1BEEyYMOGZZ57Jc2779u175plnwrpVq1blypULgqBChQotWrRYsWJFEATPP/98ly5d8oy13nrrrfXr14f1xRdfXISTBwAAgOODrdUAgGLQuHHja665prhnUTQOHDgwcuTIeIpz0003DR8+vJApThAEpUqVuvHGG8N60aJFd9999/bt23O02bZt25133hkmSUEQ9OnTJ/vdQYMGTZ48efbs2cOHD3/77bcP+43klpSUdO2114b1kiVL7rzzzq1bt+Zos27dun79+n399dfhj7/61a/it+Lva+3atQMGDNiyZUuOvrNnzx4xYkRYN23atEOHDkU4eQAAADg+WJEDABSP/v37z5w5c8eOHcU9kSP1/PPPv/rqq/Ef33rrrbfeeuugvR588MFzzjknrPv06bNo0aLFixcHQfDvf/97wYIF559/fuPGjcuVK7d79+6vv/56wYIF+/fvDxt36NDhiiuuiI+zd+/e7Nuavf/++5dddlnul3v//ffHjRuX/Ur8ZJo33nhj3rx58eudOnW644474j/27dt34cKF4a5uH3zwQffu3Tt06NC8efMTTjjhhx9+WLp06eLFiw8cOBA27tGjR9euXeN9u3bt2qNHjzfeeCMIgiVLlnTv3r19+/bNmjUrW7ZsSkrKokWL4pvFlStXbuTIkSVK+DdGAAAAkJMgBwAoHuXLl7/77ruHDBlS3BM5UjmyqNxrVvIUD2aCIEhMTBw7duyIESPCBGj//v1z5syZM2dO7l6XX3750KFDs5/NU6ZMmfLly6empoY/7tq1K8+X271797p16/K8lZqaGu8eBMG2bduy3y1duvSECRN+//vfh/PZv3//rFmzZs2alXucPn363HnnnTkuDhs2rFy5ci+++GIQBBkZGbNnz549e3aONieddNLjjz/esGHDPKcHAAAAP3H+2SMAUGwuu+yyM888s7hnEQlJSUkjR478y1/+0r59+1KlSuW4m5iY2L59+z//+c8PPvhg6dKls98qWbLk7373u/hObhUqVCjyuZUvX/5Pf/rTU089dd555+XeMu6EE07o1q3b1KlT77777twn6JQsWfK3v/3tiy++ePHFF5cpUybH3ZNOOunXv/7166+/3rJlyyKfNgAAABwfEmKxWHHPAQCOQEJCEASfL11a3POAIpOenr5mzZrvvvtu3759ZcqUqV69esOGDZOTkwvosmPHjq5du2ZlZfXv3//Xv/710ZtbWlra6tWrt27dun///rJly9aqVatBgwa585s8ZWRkrFq1avPmzRkZGcnJyaecckrdunWzry4iOlq3afO/lb8sAAAAFDdbqwEAREtSUlKLFi1atGhR+C6LFy/OysoKguDiiy8+avMKgiBITk5u1arV4fUtVapU8+bNmzdvXrRTAgAAgOObrdUAAH7cVq1a9cgjjwRB0KNHj1NOOaW4pwMAAAAUJUEOAMCP2MyZM2+44YadO3eedtpp9913X3FPBwAAAChighwAgB+xjIyMvXv3duvWbeLEiQWfowMAAAD8GDkjBwDgR+ziiy+uXr1627Zti3siAAAAwFFhRQ4AwI9Y6dKlpTgAAABwHBPkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARFRCLBYr7jkAwBFISCjuGQAcv/xlAQAAoLhZkQMAAAAAABBRghwAAAAAAICISizuCQDAkbHtDwAAAADHLytyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAP6/9uxYAAAAAGCQv/U0dpRGAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTAZC2AiYGP3ydAAAAAElFTkSuQmCC", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# pages = convert_from_path('imgs/Aim_4_Flowchart_Custom.pdf', dpi=200)\n", - "# path_png = 'imgs/step1-2.png'\n", - "# pages[1].save(path_png, 'PNG')\n", - "# # Display the image in the notebook\n", - "# display(Image(filename=path_png))" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1262,13 +1532,13 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "30a54ddc558541349a03b88c24680175", + "model_id": "bd7fe1261bf84682b86e19ed8e0caecf", "version_major": 2, "version_minor": 0 }, @@ -1282,7 +1552,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8685c1ac341e437b8d4ba1e9ed9906ec", + "model_id": "6a26a4088eaa44668f57f689338fe753", "version_major": 2, "version_minor": 0 }, @@ -1391,7 +1661,7 @@ }, { "cell_type": "code", - "execution_count": 231, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1425,7 +1695,6 @@ " medication_name\n", " order_med_id_coded\n", " medication_action\n", - " cleaned_antibiotic\n", " \n", " \n", " \n", @@ -1441,7 +1710,6 @@ " HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS\n", " 325234169\n", " Given\n", - " No Match\n", " \n", " \n", " 1\n", @@ -1455,7 +1723,6 @@ " ENOXAPARIN 30 MG/0.3 ML SC SYRG\n", " 325234165\n", " Given\n", - " No Match\n", " \n", " \n", " 2\n", @@ -1469,7 +1736,6 @@ " FERROUS SULFATE 325 MG (65 MG IRON) PO TABS\n", " 325234166\n", " Given\n", - " No Match\n", " \n", " \n", " 3\n", @@ -1483,7 +1749,6 @@ " HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS\n", " 325234169\n", " Given\n", - " No Match\n", " \n", " \n", " 4\n", @@ -1497,7 +1762,6 @@ " HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS\n", " 325234169\n", " Given\n", - " No Match\n", " \n", " \n", " ...\n", @@ -1511,10 +1775,9 @@ " ...\n", " ...\n", " ...\n", - " ...\n", " \n", " \n", - " 90074215\n", + " 89486147\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -1525,10 +1788,9 @@ " METOPROLOL TARTRATE 25 MG PO TABS\n", " 471942713\n", " Given\n", - " No Match\n", " \n", " \n", - " 90074216\n", + " 89486148\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -1539,10 +1801,9 @@ " ZZZ IMS TEMPLATE\n", " 472018107\n", " Given\n", - " No Match\n", " \n", " \n", - " 90074217\n", + " 89486149\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -1553,10 +1814,9 @@ " ZZZ IMS TEMPLATE\n", " 472905353\n", " Given\n", - " No Match\n", " \n", " \n", - " 90074218\n", + " 89486150\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -1567,10 +1827,9 @@ " ALPRAZOLAM 0.5 MG PO TB24\n", " 472056138\n", " Missed\n", - " No Match\n", " \n", " \n", - " 90074219\n", + " 89486151\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -1581,11 +1840,10 @@ " ALPRAZOLAM 1 MG PO TB24\n", " 473003929\n", " Given\n", - " No Match\n", " \n", " \n", "\n", - "

90074220 rows × 11 columns

\n", + "

89486152 rows × 10 columns

\n", "" ], "text/plain": [ @@ -1596,11 +1854,11 @@ "3 JC1000013 15196628 325085592 \n", "4 JC1000013 15196628 325085592 \n", "... ... ... ... \n", - "90074215 JC999925 131107270857 471989931 \n", - "90074216 JC999925 131107270857 471989931 \n", - "90074217 JC999925 131107270857 471989931 \n", - "90074218 JC999925 131107270857 471989931 \n", - "90074219 JC999925 131107270857 471989931 \n", + "89486147 JC999925 131107270857 471989931 \n", + "89486148 JC999925 131107270857 471989931 \n", + "89486149 JC999925 131107270857 471989931 \n", + "89486150 JC999925 131107270857 471989931 \n", + "89486151 JC999925 131107270857 471989931 \n", "\n", " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", "0 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", @@ -1609,11 +1867,11 @@ "3 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", "4 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", "... ... ... ... \n", - "90074215 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "90074216 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "90074217 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "90074218 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "90074219 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "89486147 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "89486148 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "89486149 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "89486150 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "89486151 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", "\n", " medication_time \\\n", "0 2008-04-22 12:10:00+00:00 \n", @@ -1622,11 +1880,11 @@ "3 2008-04-22 16:27:00+00:00 \n", "4 2008-04-22 22:04:00+00:00 \n", "... ... \n", - "90074215 2015-08-20 15:43:00+00:00 \n", - "90074216 2015-08-20 15:43:00+00:00 \n", - "90074217 2015-08-20 15:43:00+00:00 \n", - "90074218 2015-08-20 19:00:00+00:00 \n", - "90074219 2015-08-20 22:30:00+00:00 \n", + "89486147 2015-08-20 15:43:00+00:00 \n", + "89486148 2015-08-20 15:43:00+00:00 \n", + "89486149 2015-08-20 15:43:00+00:00 \n", + "89486150 2015-08-20 19:00:00+00:00 \n", + "89486151 2015-08-20 22:30:00+00:00 \n", "\n", " medication_name order_med_id_coded \\\n", "0 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS 325234169 \n", @@ -1635,29 +1893,29 @@ "3 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS 325234169 \n", "4 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS 325234169 \n", "... ... ... \n", - "90074215 METOPROLOL TARTRATE 25 MG PO TABS 471942713 \n", - "90074216 ZZZ IMS TEMPLATE 472018107 \n", - "90074217 ZZZ IMS TEMPLATE 472905353 \n", - "90074218 ALPRAZOLAM 0.5 MG PO TB24 472056138 \n", - "90074219 ALPRAZOLAM 1 MG PO TB24 473003929 \n", + "89486147 METOPROLOL TARTRATE 25 MG PO TABS 471942713 \n", + "89486148 ZZZ IMS TEMPLATE 472018107 \n", + "89486149 ZZZ IMS TEMPLATE 472905353 \n", + "89486150 ALPRAZOLAM 0.5 MG PO TB24 472056138 \n", + "89486151 ALPRAZOLAM 1 MG PO TB24 473003929 \n", "\n", - " medication_action cleaned_antibiotic \n", - "0 Given No Match \n", - "1 Given No Match \n", - "2 Given No Match \n", - "3 Given No Match \n", - "4 Given No Match \n", - "... ... ... \n", - "90074215 Given No Match \n", - "90074216 Given No Match \n", - "90074217 Given No Match \n", - "90074218 Missed No Match \n", - "90074219 Given No Match \n", + " medication_action \n", + "0 Given \n", + "1 Given \n", + "2 Given \n", + "3 Given \n", + "4 Given \n", + "... ... \n", + "89486147 Given \n", + "89486148 Given \n", + "89486149 Given \n", + "89486150 Missed \n", + "89486151 Given \n", "\n", - "[90074220 rows x 11 columns]" + "[89486152 rows x 10 columns]" ] }, - "execution_count": 231, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1666,26 +1924,6 @@ "current_med_original_no_mapped_with_12_hours_inpatient_temp" ] }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "228555" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)" - ] - }, { "cell_type": "code", "execution_count": 15, @@ -1719,305 +1957,28 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Yearunique_order_starting_cohortunique_order_starting_cohort_mergeddiff
0199985NaNNaN
120002943NaNNaN
220012888NaNNaN
320022426NaNNaN
420032335NaNNaN
520042294NaNNaN
620052206NaNNaN
720062015NaNNaN
820071NaNNaN
92008161229811.06311.0
1020091948912725.06764.0
1120101854912466.06083.0
1220111815514211.03944.0
1320121833415671.02663.0
1420131902416170.02854.0
1520141975916299.03460.0
1620152529912356.012943.0
1720163293611857.021079.0
1820173495711417.023540.0
1920183931414206.025108.0
2020193904814605.024443.0
2120203381112971.020840.0
2220213824014852.023388.0
2320224185617427.024429.0
2420234689421013.025881.0
2520241027498.0529.0
\n", - "
" - ], - "text/plain": [ - " Year unique_order_starting_cohort unique_order_starting_cohort_merged \\\n", - "0 1999 85 NaN \n", - "1 2000 2943 NaN \n", - "2 2001 2888 NaN \n", - "3 2002 2426 NaN \n", - "4 2003 2335 NaN \n", - "5 2004 2294 NaN \n", - "6 2005 2206 NaN \n", - "7 2006 2015 NaN \n", - "8 2007 1 NaN \n", - "9 2008 16122 9811.0 \n", - "10 2009 19489 12725.0 \n", - "11 2010 18549 12466.0 \n", - "12 2011 18155 14211.0 \n", - "13 2012 18334 15671.0 \n", - "14 2013 19024 16170.0 \n", - "15 2014 19759 16299.0 \n", - "16 2015 25299 12356.0 \n", - "17 2016 32936 11857.0 \n", - "18 2017 34957 11417.0 \n", - "19 2018 39314 14206.0 \n", - "20 2019 39048 14605.0 \n", - "21 2020 33811 12971.0 \n", - "22 2021 38240 14852.0 \n", - "23 2022 41856 17427.0 \n", - "24 2023 46894 21013.0 \n", - "25 2024 1027 498.0 \n", - "\n", - " diff \n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "5 NaN \n", - "6 NaN \n", - "7 NaN \n", - "8 NaN \n", - "9 6311.0 \n", - "10 6764.0 \n", - "11 6083.0 \n", - "12 3944.0 \n", - "13 2663.0 \n", - "14 2854.0 \n", - "15 3460.0 \n", - "16 12943.0 \n", - "17 21079.0 \n", - "18 23540.0 \n", - "19 25108.0 \n", - "20 24443.0 \n", - "21 20840.0 \n", - "22 23388.0 \n", - "23 24429.0 \n", - "24 25881.0 \n", - "25 529.0 " - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "# Combine the value_counts from both dataframes\n", - "combined_counts = pd.DataFrame({\n", - " \"unique_order_starting_cohort\": unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index(),\n", - " \"unique_order_inp_cohort_merged\": unique_order_inp_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "}).reset_index()\n", - "\n", - "# Rename the columns for clarity\n", - "combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_inp_cohort_merged\"]\n", - "\n", - "# Display the combined dataframe\n", - "combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_inp_cohort_merged\"]\n", - "combined_counts\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# # unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", + "# # Combine the value_counts from both dataframes\n", + "# combined_counts = pd.DataFrame({\n", + "# \"unique_order_starting_cohort\": unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index(),\n", + "# \"unique_order_inp_cohort_merged\": unique_order_inp_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", + "# }).reset_index()\n", + "\n", + "# # Rename the columns for clarity\n", + "# combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_inp_cohort_merged\"]\n", + "\n", + "# # Display the combined dataframe\n", + "# combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_inp_cohort_merged\"]\n", + "# combined_counts\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, "outputs": [ { @@ -2045,247 +2006,15 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_action
0JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-22 12:10:00+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
1JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-22 15:00:00+00:00ENOXAPARIN 30 MG/0.3 ML SC SYRG325234165Given
2JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-22 15:00:00+00:00FERROUS SULFATE 325 MG (65 MG IRON) PO TABS325234166Given
3JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-22 16:27:00+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
4JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-22 22:04:00+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
5JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-23 02:42:24+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
6JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-23 03:05:30+00:00ENOXAPARIN 30 MG/0.3 ML SC SYRG325234165Given
7JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-23 07:09:32+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
8JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-23 13:24:20+00:00HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS325234169Given
9JC1000013151966283250855922008-04-16 04:30:00+00:002008-04-17 01:22:00+00:00Inpatient2008-04-23 15:09:28+00:00FERROUS SULFATE 325 MG (65 MG IRON) PO TABS325234166Given
\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000013 15196628 325085592 \n", - "1 JC1000013 15196628 325085592 \n", - "2 JC1000013 15196628 325085592 \n", - "3 JC1000013 15196628 325085592 \n", - "4 JC1000013 15196628 325085592 \n", - "5 JC1000013 15196628 325085592 \n", - "6 JC1000013 15196628 325085592 \n", - "7 JC1000013 15196628 325085592 \n", - "8 JC1000013 15196628 325085592 \n", - "9 JC1000013 15196628 325085592 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "1 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "2 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "3 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "4 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "5 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "6 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "7 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "8 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "9 2008-04-16 04:30:00+00:00 2008-04-17 01:22:00+00:00 Inpatient \n", - "\n", - " medication_time medication_name \\\n", - "0 2008-04-22 12:10:00+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "1 2008-04-22 15:00:00+00:00 ENOXAPARIN 30 MG/0.3 ML SC SYRG \n", - "2 2008-04-22 15:00:00+00:00 FERROUS SULFATE 325 MG (65 MG IRON) PO TABS \n", - "3 2008-04-22 16:27:00+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "4 2008-04-22 22:04:00+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "5 2008-04-23 02:42:24+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "6 2008-04-23 03:05:30+00:00 ENOXAPARIN 30 MG/0.3 ML SC SYRG \n", - "7 2008-04-23 07:09:32+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "8 2008-04-23 13:24:20+00:00 HYDROCODONE-ACETAMINOPHEN 5-500 MG PO TABS \n", - "9 2008-04-23 15:09:28+00:00 FERROUS SULFATE 325 MG (65 MG IRON) PO TABS \n", - "\n", - " order_med_id_coded medication_action \n", - "0 325234169 Given \n", - "1 325234165 Given \n", - "2 325234166 Given \n", - "3 325234169 Given \n", - "4 325234169 Given \n", - "5 325234169 Given \n", - "6 325234165 Given \n", - "7 325234169 Given \n", - "8 325234169 Given \n", - "9 325234166 Given " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "current_med_original_no_mapped_with_12_hours_inpatient_temp.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, + "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 228555\n", - "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 201213\n" + "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 228223\n", + "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 201105\n" ] } ], @@ -2296,7 +2025,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -2308,18 +2037,18 @@ }, { "cell_type": "code", - "execution_count": 232, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with current medication is 152546\n", - "the percentage of unique patient encounter with any medication (out of all inpatients) is 75.81%\n", + "the unique patient encounter number with current medication is 152445\n", + "the percentage of unique patient encounter with any medication (out of all inpatients) is 75.80%\n", "----------------------------------------------------------\n", - "the unique culture order with current medication is 178984\n", - "the percentage of unique culture order with any medication (out of all inpatients) is 78.31%\n" + "the unique culture order with current medication is 178663\n", + "the percentage of unique culture order with any medication (out of all inpatients) is 78.28%\n" ] } ], @@ -2350,18 +2079,18 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with current abx medication is 108872\n", - "the percentage of unique patient encounter with current abx medication(out of any med) is 71.37%\n", + "the unique patient encounter number with current abx medication is 108783\n", + "the percentage of unique patient encounter with current abx medication(out of any med) is 71.36%\n", "----------------------------------------------------------\n", - "the unique culture order with current abx medication is 134150\n", - "the percentage of unique culture order with current abx medication (out of any med) is 74.95%\n" + "the unique culture order with current abx medication is 133842\n", + "the percentage of unique culture order with current abx medication (out of any med) is 74.91%\n" ] } ], @@ -2407,9 +2136,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ba8659eefe614caf8b058134d6b71560", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Query is running: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c60209d6cbc04bb98d29fc2e4322439a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "%%bigquery --use_rest_api df_hosp_ward_info\n", "WITH\n", @@ -2634,7 +2392,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -2643,18 +2401,18 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with ED order is 119737\n", + "the unique patient encounter number with ED order is 119676\n", "the percentage of unique patient encounter with ED order (out of all inpatients) is 59.51%\n", "----------------------------------------------------------\n", - "the unique culture order with ED order is 132026\n", - "the percentage of unique culture order with ED order (out of all inpatients) is 57.77%\n" + "the unique culture order with ED order is 131878\n", + "the percentage of unique culture order with ED order (out of all inpatients) is 57.78%\n" ] } ], @@ -2680,20 +2438,20 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with ED order and any medication is 108095\n", - "the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is 90.28%\n", + "the unique patient encounter number with ED order and any medication is 108034\n", + "the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is 90.27%\n", "----------------------------------------------------------\n", - "the unique culture order with ED order and any medication is 120310\n", - "the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is 91.13%\n", + "the unique culture order with ED order and any medication is 120162\n", + "the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is 91.12%\n", "----------------------------------------------------------\n", - "the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is 70.86%\n" + "the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is 70.87%\n" ] } ], @@ -2718,20 +2476,20 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with ED order and abx medication is 74797\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is 62.47%\n", + "the unique patient encounter number with ED order and abx medication is 74743\n", + "the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is 62.45%\n", "----------------------------------------------------------\n", - "the unique culture order with ED order and abx medication is 86254\n", - "the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is 65.33%\n", + "the unique culture order with ED order and abx medication is 86113\n", + "the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is 65.30%\n", "----------------------------------------------------------\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is 68.70%\n" + "the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is 68.71%\n" ] } ], @@ -2754,86 +2512,6 @@ "print(\"the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))" ] }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "86254" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "abx_med_inp_ed_order_cnt" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "134150" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "abx_med_inp_order_cnt" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.6429668281774134" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "abx_med_inp_ed_order_cnt/abx_med_inp_order_cnt" - ] - }, - { - "cell_type": "code", - "execution_count": 207, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.6689215125950063" - ] - }, - "execution_count": 207, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "78417/117229" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -2852,7 +2530,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -2882,17 +2560,17 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with ED order and abx medication empirical is 73286\n", + "the unique patient encounter number with ED order and abx medication empirical is 73228\n", "the percentage of unique patient encounter with ED order and empirical abx medication \n", "(out of all ED inpatients with abx med) \n", - "is 97.98%\n" + "is 97.97%\n" ] } ], @@ -2905,14 +2583,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number with ED order and abx medication empirical is 83383\n", + "the unique order number with ED order and abx medication empirical is 83245\n", "the percentage of unique order with ED order and empirical abx medication \n", "(out of all ED inpatients with abx med) \n", "is 96.67%\n" @@ -2928,7 +2606,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -2940,29 +2618,29 @@ } ], "source": [ - "# Define table ID\n", - "table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical\"\n", + "# # Define table ID\n", + "# table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical\"\n", "\n", - "# Define job config with WRITE_TRUNCATE to replace the table\n", - "job_config = bigquery.LoadJobConfig(\n", - " write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", - " autodetect=True, # Automatically detect schema\n", - " source_format=bigquery.SourceFormat.PARQUET\n", - ")\n", + "# # Define job config with WRITE_TRUNCATE to replace the table\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + "# autodetect=True, # Automatically detect schema\n", + "# source_format=bigquery.SourceFormat.PARQUET\n", + "# )\n", "\n", - "# Upload DataFrame to BigQuery\n", - "job = client.load_table_from_dataframe(\n", - " abx_med_inp_ed_empirical, table_id, job_config=job_config\n", - ")\n", + "# # Upload DataFrame to BigQuery\n", + "# job = client.load_table_from_dataframe(\n", + "# abx_med_inp_ed_empirical, table_id, job_config=job_config\n", + "# )\n", "\n", - "job.result() # Wait for the job to complete\n", + "# job.result() # Wait for the job to complete\n", "\n", - "print(f\"Table {table_id} replaced with new data from CSV.\")" + "# print(f\"Table {table_id} replaced with new data from CSV.\")" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -2986,13 +2664,13 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f2f6df1c6eb541129ec68adf551c0843", + "model_id": "97338a812e50469f9cb2e94caf02db74", "version_major": 2, "version_minor": 0 }, @@ -3006,7 +2684,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "803517437f904c309dc1e71bf53b743b", + "model_id": "e4f935df839845618a2b2886f4d8febf", "version_major": 2, "version_minor": 0 }, @@ -3081,18 +2759,18 @@ }, { "cell_type": "code", - "execution_count": 234, + "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number for final cohort is 55250\n", - "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 75.39%\n", + "the unique patient encounter number for final cohort is 55225\n", + "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 75.42%\n", "----------------------------------------------------------\n", - "the unique order number for final cohort is 57182\n", - "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 68.58%\n" + "the unique order number for final cohort is 57154\n", + "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 68.66%\n" ] } ], @@ -3123,15 +2801,15 @@ }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with valid given medication is 47048\n", - "the unique order number with valid given medication is 48737\n" + "the unique patient encounter number with valid given medication is 47028\n", + "the unique order number with valid given medication is 48714\n" ] } ], @@ -3148,372 +2826,27 @@ }, { "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibiotichosp_ward_IPhosp_ward_OPhosp_ward_ERhosp_ward_ICU
0JC10000631310111276943737590752010-09-30 16:47:00+00:002010-10-02 14:53:00+00:00Inpatient2010-10-01 00:30:00+00:00DOXYCYCLINE HYCLATE 100 MG PO CAPS373783716Given[Doxycycline Hyclate]1010
3JC10000631310111276943737590752010-09-30 16:47:00+00:002010-10-02 14:53:00+00:00Inpatient2010-10-02 10:40:34+00:00AMPICILLIN 2 GM IVPB373855197Given[Ampicillin]1010
4JC10000631310111276943737590752010-09-30 16:47:00+00:002010-10-02 14:53:00+00:00Inpatient2010-10-02 11:58:28+00:00GENTAMICIN (CUSTOM DOSE) IVPB373855357Given[Gentamicin]1010
5JC10000631310111276943737590752010-09-30 16:47:00+00:002010-10-02 14:53:00+00:00Inpatient2010-10-02 13:47:49+00:00CLINDAMYCIN IN D5W 900 MG/50 ML IV PGBK373855382Given[Clindamycin In]1010
6JC10001291313546061228770031032023-04-24 01:28:00+00:002023-04-26 01:57:00+00:00Inpatient2023-04-23 23:14:00+00:00CEFEPIME 2 GRAM/20 ML IV PUSH876966020Given[Cefepime]1011
................................................
334770JC9998421311928637845002087632016-07-16 14:51:00+00:002016-07-18 16:13:00+00:00Inpatient2016-07-18 04:08:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...500348131Given[Metronidazole In Nacl, Metronidazole]1011
334771JC9998421311928637845002087632016-07-16 14:51:00+00:002016-07-18 16:13:00+00:00Inpatient2016-07-18 13:02:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...500348131Given[Metronidazole In Nacl, Metronidazole]1011
334772JC9999251311072708574719899312015-08-09 09:12:00+00:002015-08-11 14:59:00+00:00Inpatient2015-08-10 01:59:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS472111321Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
334774JC9999251311072708574719899312015-08-09 09:12:00+00:002015-08-11 14:59:00+00:00Inpatient2015-08-10 17:25:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS472111321Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
334775JC9999251311072708574719899312015-08-09 09:12:00+00:002015-08-11 14:59:00+00:00Inpatient2015-08-11 04:53:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS472111321Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
\n", - "

169312 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000063 131011127694 373759075 \n", - "3 JC1000063 131011127694 373759075 \n", - "4 JC1000063 131011127694 373759075 \n", - "5 JC1000063 131011127694 373759075 \n", - "6 JC1000129 131354606122 877003103 \n", - "... ... ... ... \n", - "334770 JC999842 131192863784 500208763 \n", - "334771 JC999842 131192863784 500208763 \n", - "334772 JC999925 131107270857 471989931 \n", - "334774 JC999925 131107270857 471989931 \n", - "334775 JC999925 131107270857 471989931 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", - "3 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", - "4 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", - "5 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", - "6 2023-04-24 01:28:00+00:00 2023-04-26 01:57:00+00:00 Inpatient \n", - "... ... ... ... \n", - "334770 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", - "334771 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", - "334772 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "334774 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "334775 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2010-10-01 00:30:00+00:00 \n", - "3 2010-10-02 10:40:34+00:00 \n", - "4 2010-10-02 11:58:28+00:00 \n", - "5 2010-10-02 13:47:49+00:00 \n", - "6 2023-04-23 23:14:00+00:00 \n", - "... ... \n", - "334770 2016-07-18 04:08:00+00:00 \n", - "334771 2016-07-18 13:02:00+00:00 \n", - "334772 2015-08-10 01:59:00+00:00 \n", - "334774 2015-08-10 17:25:00+00:00 \n", - "334775 2015-08-11 04:53:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 DOXYCYCLINE HYCLATE 100 MG PO CAPS 373783716 \n", - "3 AMPICILLIN 2 GM IVPB 373855197 \n", - "4 GENTAMICIN (CUSTOM DOSE) IVPB 373855357 \n", - "5 CLINDAMYCIN IN D5W 900 MG/50 ML IV PGBK 373855382 \n", - "6 CEFEPIME 2 GRAM/20 ML IV PUSH 876966020 \n", - "... ... ... \n", - "334770 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 500348131 \n", - "334771 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 500348131 \n", - "334772 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", - "334774 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", - "334775 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Doxycycline Hyclate] \n", - "3 Given [Ampicillin] \n", - "4 Given [Gentamicin] \n", - "5 Given [Clindamycin In] \n", - "6 Given [Cefepime] \n", - "... ... ... \n", - "334770 Given [Metronidazole In Nacl, Metronidazole] \n", - "334771 Given [Metronidazole In Nacl, Metronidazole] \n", - "334772 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "334774 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "334775 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "\n", - " hosp_ward_IP hosp_ward_OP hosp_ward_ER hosp_ward_ICU \n", - "0 1 0 1 0 \n", - "3 1 0 1 0 \n", - "4 1 0 1 0 \n", - "5 1 0 1 0 \n", - "6 1 0 1 1 \n", - "... ... ... ... ... \n", - "334770 1 0 1 1 \n", - "334771 1 0 1 1 \n", - "334772 1 0 1 0 \n", - "334774 1 0 1 0 \n", - "334775 1 0 1 0 \n", - "\n", - "[169312 rows x 15 columns]" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "given_final_cohort_inp_ed_only" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 46, + "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "85.23136651393796" + "10126" ] }, - "execution_count": 46, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "given_final_cohort_inp_ed_only_order_cnt/find_unique_orders(final_cohort_inp_ed_only) * 100" + "57154- 47028" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -3522,13 +2855,13 @@ "" ] }, - "execution_count": 48, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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/iqw5yeeeEJOp1M5OTmuZY899pgcDocmTZrkWnb48GH5+Pi4Tp86/z02evRo138y4+LiCjwVLTk5WQ0bNlRwcLBq1Kihd955p8DacuU+LyNHjswTtHJVqlTJ7Y9D59e3cOFCORwOffnll3l+97XXXnN9vufy5DN45cqVeuSRR1SmTBlFRESoW7du+uOPPy7aV64ZM2YoICBAM2fOVGxsrGbOnCljTL5jL7YP+fPPPxUbG6vmzZu7nfL6008/KSQkRElJSYWq6d5775UkffDBB65lGRkZmj9/vuv1dr5Tp07pueeeU40aNRQYGKiyZcuqV69eOnTokNu406dPa9iwYYqOjlaJEiV00003acOGDYWq69z32/PPP6+KFSsqKChIjRs3zve5Lcxne+5+77333tOQIUNUvnx5BQYGaseOHfnWEBYWphkzZuibb77RSy+9JOnvs0EOHz6s2bNny9fXV5mZmRo6dKji4uIUEBCg8uXLa+DAgTpx4oTbtl555RXdfPPNioyMVEhIiOrWrauJEyfmOV35Qu972IwBbGzmzJlGktm4caOZOnWqkWS+/PJL1/pWrVqZ2rVru27v2rXLSDIzZ87Msy1JZtSoUa7bo0aNMpJM9erVzbPPPmuWLVtmhg0bZiSZRx991NSoUcO8/PLLZtmyZaZXr15Gkpk/f77r91euXGkkmdjYWHPHHXeYRYsWmTlz5piqVaua0NBQ89tvv7nGrlixwgQEBJiWLVuajz76yCQnJ5uePXvmqTW33/Lly5u+ffuaL774wnz88cfmzJkz+T4+Bw8eNOXLlzdly5Y1r7/+uklOTjaPPvqokWQeeeQRY4wxGRkZZu3atSY6Otq0aNHCrF271qxdu9acPHmywMddkunfv3++6+bNm2ckmZUrV7o9DxEREaZatWrm9ddfN8uWLTP9+vUzkszs2bMv+PwsX77c+Pr6mptuusl88sknZt68eebGG280FStWNOd+hHny3G7dutU4nU5Tt25d8+6775qlS5eaIUOGGB8fHzN69OgC+76c/sPDw01sbKyZNm2aWblypVm1apVrXatWrfL0UblyZdOhQwezcOFCs3DhQlO3bl0TFhZmjh496hpb2NdNfvr27WskmW3btl20X2OM6dGjh6lUqVKe5bnvk3NVqlTJ9OjRwxjz9+sr93X773//2/X62rdvX779F3R/uY9L+fLlzS233GI+/vhjs3TpUrNr1y7LH4dXX33VSDIffPDBRWsp7OvVGGP69Olj/P39zZAhQ0xycrJ5//33TY0aNUxUVJRJS0tzjSvo9bNr1y4TFBRkEhISzMKFC81XX31l5s6da5KSkkx6enqB/SQnJxtJZs2aNa5lNWrUMMHBwSYhIcG17KOPPjKSzE8//eTWd+5jum/fPvPYY48ZSeaTTz5xPbcZGRnGmL9fBxUqVDC1atUy7777rlmyZIm56667jCTX678gffr0MZLM9u3bLzjuXOfXd/r0aRMZGWnuu+++PGObNGliGjZs6Lrt6WfwddddZx577DGzZMkS8/bbb5uwsDBzyy23FKrOffv2GR8fH3PXXXcZY4z597//bSSZr776ym2cJ/uQ1atXGz8/PzNo0CBjjDEnTpwwtWrVMjVq1DDHjx+/YD3n7keTkpJMkyZNXOtee+01ExISYjIzM03t2rXd3qs5OTmmQ4cOJiQkxIwZM8YsW7bMvP3226Z8+fKmVq1a5q+//nKN7dGjh3E4HOaJJ54wS5cuNZMnTzbly5c3oaGhrs+KguQ+r7Gxseamm24y8+fPd72v/P393V7Hhf1sz31sy5cvb/75z3+aTz/91CxevNgcPnz4grU8/PDDJigoyEyePNlIMtOnT3c93vXr1zdlypQxkydPNsuXLzdTp041TqfT3Hrrrebs2bOubQwaNMi89tprJjk52axYscK89NJLpkyZMqZXr15u93Wh/QbshbAFWzt3J5GdnW2uu+4607hxY9cHW1GErRdffNFtXP369V3/uch1+vRpU7ZsWdOtWzfXstwP84YNG7p90O7evdv4+/ubhx56yLWsRo0apkGDBub06dNu99W5c2dTrlw5k5OT49bvAw88UKjHZ/jw4UaSWb9+vdvyRx55xDgcDrf/yFSqVMl06tSpUNu9lLCRXx21atUy7du3d93O7/lp2rSpiYmJMVlZWa5lmZmZJjw8/JLDVvv27U2FChVc/ynM9eijj5qgoCBz5MiRC7V/yf2f+4eAc9flF7bq1q3rFqI3bNjg9h9+Ywr/uslPhw4djKQLhupzXWrYMsaYjRs3FvjceBq2qlSpYk6dOuU21urH4YsvvjCSzIQJEy5aS2Ffr2vXrs3382Xfvn0mODjYDBs2zLWsoNfPxx9/bCSZlJSUAmvPz4kTJ0xAQIB55plnjDHG/P7770aSefLJJ01wcLDrsejTp4+JiYlx/V5+77FJkyYZSWbXrl157qdSpUomKCjI7Nmzx7UsKyvLhIeHm4cffviCNRb0vJw9e9acPn3a9XPueyS/+gYPHmyCg4Pd/kjx008/GUlm2rRprmWefgb369fPbdzEiRONJJOamnrBvowx5plnnjGSTHJysjHGmJ07dxqHw2GSkpLcxnmyDzHGmAkTJhhJZsGCBaZHjx4mODjY/PDDDxet59z9aO59btmyxRhjzI033mh69uxpjDF5wtYHH3yQ54+Mxvy/9/urr75qjDFm27ZtRpIrCOaaO3eukVTosFXQ+6pt27auZYX9bM/t8+abb77o43OuY8eOmeuuu85IMm3btnU9L+PGjTM+Pj5m48aNbuNz36Off/55vtvLyckxp0+fNu+++67x9fV12/dcaL8Be+E0Qlw1AgIC9Nxzz2nTpk2FOn2osM6fKapmzZpyOBzq2LGja5mfn5+qVq2a74yIiYmJbqdZVapUSc2bN3edcrRjxw79/PPPuu+++yT9fa1C7s9tt92m1NRUbd++3W2bd955Z6FqX7FihWrVqqUmTZq4Le/Zs6eMMVqxYkWhtlMUoqOj89RRr169fB+zXCdOnNDGjRvVrVs3BQUFuZaXKlVKt99++yXVcfLkSX355Zfq2rWrSpQokefxPnnyZL6n612usLAw3XrrrYUe36lTJ/n6+rpu5158nft4Xcrr5mrQpUsXt+vIrsTjYP7/07vOP13y/Fo8eb0uXrxYDodD999/v1vN0dHRuuGGG/Kcipff66d+/foKCAhQ3759NXv27DynHxakRIkSio+P1/LlyyVJy5YtU+nSpfXEE0/o1KlTWr16tSRp+fLlatu2baG2WZD69eurYsWKrttBQUG6/vrrL/i+v5CpU6fK39/f9XOxa3QffPBBZWVl6aOPPnItmzlzpgIDA5WYmCjp0l5DXbp0cbt9/vuzIMYY16mDCQkJkv4+BbN169aaP39+vtdFXWwfkuuJJ55Qp06ddO+992r27NmaNm2a6tate8F6zteqVStVqVJF77zzjn788Udt3LixwFPXFi9erNKlS+v22293e8zq16+v6Oho12s4t87cxzdX9+7d870+qiAFva++/vpr5eTkXNJne2H3pblKliypYcOGSZLGjBnjel4WL16sOnXq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etR06dLFOBwOU7p0aXP99debatWqmdKlSxsfHx9zxx13mIyMDG+XeVlSUlKMj4+Pt8so0KlTp8wTTzxhqlSpYm688UbzzjvvuK1PS0sr1vUbY8wff/xhWrRoYXx9fc3NN99sjhw5Yjp16uR6X1x//fXmjz/+8HaZBfr+++/z/fH39zcLFixw3S7ORowYYU6cOGGM+fs11adPH+Pj4+P6XOratavJysrycpUFu/POO838+fONMcZs3brVlClTxpQtW9Y0bdrUREVFmejoaPPTTz95ucqCORwOc91115nnn3/e/P77794u55KsXLnShISEGIfDYcqVK2e+//57U6FCBVOtWjVTvXp1ExgYaJYsWeLtMgtk9/2xMVf/Prm474+Nsf8+2e77Y2OK9z6ZsOUFffv2NS1atDApKSnm559/NnfeeacZNmyYOXHihJkxY4YpUaKEmTt3rrfLLFBSUpKpW7euWbduXZ5169atM/Xq1TMPPPCAFyorOsX9w33UqFEmKirKTJo0yYwcOdI4nU7Tt29f1/q0tDTjcDi8WOHFJSUlmebNm5tPP/3U3H333aZ58+amZcuW5vfffzd79+41LVu2NP379/d2mQXK/Y9Z7s7o3J9zA0tx5uPjYw4cOGCMMeb55583ZcuWNfPnzzf79+83ixYtMuXLlzfPPPOMl6ssWJkyZcwvv/xijDGmY8eOJjEx0WRnZxtj/v7PT+/evU27du28WeIFORwO06dPHxMVFWX8/PxMp06dzIIFC8yZM2e8XVqhtWjRwvTv398cO3bMTJo0yVSoUMHtfTt06FDTvHlzL1Z4YXbfHxtz9e+Ti/v+2Bj775Ptvj82pnjvkwlbXlCmTBmzadMm1+0jR46YoKAg11+Yp0+fburXr++t8i7K6XTm+6Gea+3atcbpdF65gi5BWFjYBX9CQ0OL9Yd71apVzaJFi1y3d+zYYapVq2Z69uxpzp49W+z/imaMMeXKlTNr1641xhhz+PBh43A4zPLly13rV6xYYa677jpvlXdRN9xwg+nUqZPZtm2b2b17t9m9e7fZtWuX8fPzM8uWLXMtK84cDocrbNWvX9/MmDHDbf1HH31katas6Y3SCiU4ONjs2LHDGPP36+nbb791W799+/Zi/VmU+/ifPn3afPzxx+a2224zvr6+JioqygwbNsz8/PPP3i7xokJDQ13PwenTp42fn5/57rvvXOt/+eWXYv0c2H1/bIz998l23x8bY/99st33x8YU730y12x5wZkzZ9zOAy9ZsqTOnDmjEydOqESJEmrXrp2GDh3qxQovzuFwXNK64iI7O1uPPPJIgdcS7NmzR2PGjLnCVRXe/v37VadOHdftKlWq6KuvvtKtt96qpKQkTZw40YvVFU56errKly8vSQoPD1eJEiVUqVIl1/oqVaooNTXVW+Vd1IYNGzRs2DDdeeedmjNnjho0aOBaFxMT49ZLcZb7ft23b5+aNGnitq5Jkybas2ePN8oqlHr16mnFihWqUqWKoqOjtWfPHrfnYc+ePQoODvZihYXj5+enO++8U3feeaf279+vd955R7NmzdILL7ygFi1a6Ouvv/Z2iQUKCAjQyZMnJUmnTp3S2bNnXbclKSsrq1hf63E17I8le++T7b4/luy/T7b7/lgq5vtkr0S8a1xCQoLb4dhJkyaZcuXKuW5/++23pkyZMt4orVDuv/9+U69ePbNx48Y86zZu3Gjq169vkpKSvFBZ4TVv3txMmTKlwPXF/bSFuLg4t7865dq/f7+5/vrrTdu2bYt1/cYYU7FiRbN+/XrX7SeffNIcPnzYdTslJaVYvw9yff7556ZChQpm7NixJicnx/j5+ZmtW7d6u6xCcTgc5vnnnzdTp041MTEx5uuvv3Zbn5KSYsLCwrxU3cUtXrzYhIeHm5kzZ5qZM2eaypUrm7ffftt888035p133jGxsbHmiSee8HaZBTr3NM78LF++3CQmJl7Bijx3xx13mM6dO5vVq1ebvn37msaNG5tOnTqZ48ePmxMnTph//vOfpkOHDt4us0B23x8bY/99st33x8bYf598teyPjSme+2TClhds3rzZhIeHm+joaFOxYkUTEBBgPvjgA9f66dOnF+vzq9PT002HDh2Mw+EwYWFhpnr16qZGjRomLCzM+Pj4mI4dO5r09HRvl3lBzz//vBk9enSB6/fu3Wt69ux5BSvyTO/evc2DDz6Y77rff//dVK1atVh/sBtjTJcuXS64g50+fbq59dZbr2BFly4tLc107NjR3HTTTcXig72wKlWqZCpXruz6Of/5eOmll0yzZs28VF3hfPzxx6ZChQp5ztUPCgoyAwcOLNbXP517Gqdd/fLLL6Zq1arG4XCY2rVrm/3795suXboYPz8/4+fnZ8qWLWs2b97s7TILZPf9sTH23yfbfX9sjP33yVfT/tiY4rdPdhhjjPeOq127UlNTtXjxYmVnZ+vWW29VrVq1vF2Sx37++WetXbtWaWlpkqTo6GjFx8erRo0aXq7s6rdnzx79/PPPat++fb7rU1NTtXTpUvXo0eMKV1Z0Nm7cqODgYLdTM4q7l19+WStXrtS0adNsN216ftatW6fAwEC30zGKo5ycHH377bfauXOnzp49q3LlyqlRo0YqVaqUt0u7oFWrVqlFixby87P/Gf2HDx9WRESE6/aXX36prKwsxcfHuy0vjq6G/bHEPtmbrvZ9sh33x1Lx2ScTtgAAAADAAj7eLuBaZYzRsmXLNGbMGD3yyCPq16+fxowZo+XLl8vu+Tc9PV3vvvuut8u4LHbvwe71S/bvwe71S/bvgfq9z+492Kn+s2fPFrh87969V7gaz9m9fsn+Pdi9fql49kDY8oL9+/erYcOG6tixoxYsWKCdO3dqx44dWrBggTp06KDGjRtr//793i7zku3du1e9evXydhmXxe492L1+yf492L1+yf49UL/32b0HO9SfmZmp7t27KyQkRFFRURo1apRycnJc6w8dOqS4uDgvVnhhdq9fsn8Pdq9fKt492P9EcRvq16+fwsPDtW/fPpUrV85tXWpqqu6//371799fCxcu9E6BF5GZmXnB9ceOHbtClVw6u/dg9/ol+/dg9/ol+/dA/d5n9x7sXr8kPfXUU/r+++/13nvv6ejRo3ruuee0efNmffLJJwoICJCkYn3GjN3rl+zfg93rl4p3D1yz5QUlS5bUN998oxtuuCHf9d99951atmyp48ePX+HKCsfHx+eC39thjJHD4XD7i0JxY/ce7F6/ZP8e7F6/ZP8eqN/77N6D3euXpEqVKmn27Nlq3bq1pL8nK+nUqZOcTqc+/fRTHT16VDExMcW2B7vXL9m/B7vXLxXvHjiy5QXBwcE6cuRIgevT09OL9RdxlipVSiNHjlTTpk3zXf/rr7/q4YcfvsJVecbuPdi9fsn+Pdi9fsn+PVC/99m9B7vXL0l//vmn2xe2RkREaNmyZWrfvr1uu+02vf32216s7uLsXr9k/x7sXr9UvHsgbHnBPffcox49emjy5MlKSEiQ0+mUJGVkZGjZsmUaMmSIEhMTvVxlwRo2bChJatWqVb7rS5cuXewPN9u9B7vXL9m/B7vXL9m/B+r3Prv3YPf6JSk2Nlbbtm1zux6lVKlSWrp0qdq1a6euXbt6sbqLs3v9kv17sHv9UvHugQkyvODFF19Up06ddN999yk8PFzBwcEKDg5WeHi47rvvPnXq1EmTJk3ydpkFSkxMVFBQUIHro6OjNWrUqCtYkefs3oPd65fs34Pd65fs3wP1e5/de7B7/ZLUrl07zZw5M8/ykiVLasmSJRfsrziwe/2S/Xuwe/1S8e6Ba7a8KDMzU5s2bdKBAwck/f2h3qhRI4WGhnq5MgAAYAfp6en6448/VLt27XzXHz9+XJs3by7w6J232b1+yf492L1+qXj3QNgCAAAAAAtwzZaXnDhxQu+//77WrFmjtLQ0ORwORUVFqUWLFrr33nsVEhLi7RIvyO71S/bvwe71S/bvwe71S/bvgfq9z+492L1+yf492L1+yf492L1+qfj2wJEtL/jpp5+UkJCgv/76S61atVJUVJSMMTp48KBWrVqlkJAQLV26VLVq1fJ2qfmye/2S/Xuwe/2S/Xuwe/2S/Xugfu+zew92r1+yfw92r1+yfw92r18q3j0QtrzglltuUXR0tGbPnu36orVcp06dUs+ePZWamqqVK1d6qcILs3v9kv17sHv9kv17sHv9kv17oH7vs3sPdq9fsn8Pdq9fsn8Pdq9fKuY9GFxxwcHBZuvWrQWu//HHH01wcPAVrMgzdq/fGPv3YPf6jbF/D3av3xj790D93mf3HuxevzH278Hu9Rtj/x7sXr8xxbsHpn73grCwMP36668Frt+xY4fCwsKuYEWesXv9kv17sHv9kv17sHv9kv17oH7vs3sPdq9fsn8Pdq9fsn8Pdq9fKuY9eCXiXeNGjRplnE6nmTRpkklJSTGpqakmLS3NpKSkmEmTJpmwsDAzZswYb5dZILvXb4z9e7B7/cbYvwe712+M/Xugfu+zew92r98Y+/dg9/qNsX8Pdq/fmOLdA2HLS8aPH2/KlStnHA6H8fHxMT4+PsbhcJhy5cqZCRMmeLu8i7J7/cbYvwe712+M/Xuwe/3G2L8H6vc+u/dg9/qNsX8Pdq/fGPv3YPf6jSm+PTBBhpft2rVLaWlpkv7+UuO4uDgvV+QZu9cv2b8Hu9cv2b8Hu9cv2b8H6vc+u/dg9/ol+/dg9/ol+/dg9/ql4tcDYQsAAAAALMAEGV6SlZWl1atX66effsqz7uTJk3r33Xe9UFXh2b1+yf492L1+yf492L1+yf49UL/32b0Hu9cv2b8Hu9cv2b8Hu9cvFeMevHYC4zVs+/btplKlSq5zSlu1amX++OMP1/q0tDTj4+PjxQovzO71G2P/HuxevzH278Hu9Rtj/x6o3/vs3oPd6zfG/j3YvX5j7N+D3es3pnj3wJEtL3jyySdVt25dHTx4UNu3b1doaKhatGihvXv3eru0QrF7/ZL9e7B7/ZL9e7B7/ZL9e6B+77N7D3avX7J/D3avX7J/D3avXyrmPXgl4l3jIiMjzQ8//OC2rF+/fqZixYrmt99+K/Z/QbB7/cbYvwe712+M/Xuwe/3G2L8H6vc+u/dg9/qNsX8Pdq/fGPv3YPf6jSnePfh5O+xdi7KysuTn5/7Qv/LKK/Lx8VGrVq30/vvve6mywrF7/ZL9e7B7/ZL9e7B7/ZL9e6B+77N7D3avX7J/D3avX7J/D3avXyrePRC2vKBGjRratGmTatas6bZ82rRpMsaoS5cuXqqscOxev2T/Huxev2T/Huxev2T/Hqjf++zeg93rl+zfg93rl+zfg93rl4p3D1yz5QVdu3bVBx98kO+66dOn695775UpxjPy271+yf492L1+yf492L1+yf49UL/32b0Hu9cv2b8Hu9cv2b8Hu9cvFe8e+J4tAAAAALAAR7YAAAAAwAKELQAAAACwAGELAAAAACxA2AIAAAAACxC2AADXJGOM2rZtq/bt2+dZ9+qrr8rpdGrv3r1eqAwAcLUgbAEArkkOh0MzZ87U+vXr9cYbb7iW79q1S08++aSmTp2qihUrFul9nj59uki3BwAo3ghbAIBrVmxsrKZOnaqhQ4dq165dMsaod+/eatOmjZo0aaLbbrtNJUuWVFRUlJKSkvTnn3+6fjc5OVk33XSTSpcurYiICHXu3Fm//faba/3u3bvlcDj0n//8R61bt1ZQUJDmzJnjjTYBAF7C92wBAK55//jHP3T06FHdeeedevbZZ7Vx40Y1btxYffr00QMPPKCsrCw9+eSTOnPmjFasWCFJmj9/vhwOh+rWrasTJ07o6aef1u7du5WSkiIfHx/t3r1bcXFxqly5sl588UU1aNBAgYGBiomJ8XK3AIArhbAFALjmHTx4UHXq1NHhw4f18ccf67vvvtP69eu1ZMkS15jff/9dsbGx2r59u66//vo82zh06JAiIyP1448/qk6dOq6wNWXKFD3++ONXsh0AQDHBaYQAgGteZGSk+vbtq5o1a6pr167avHmzVq5cqZIlS7p+atSoIUmuUwV/++03JSYm6rrrrlNoaKji4uIkKc+kGo0bN76yzQAAig0/bxcAAEBx4OfnJz+/v3eLZ8+e1e23364JEybkGVeuXDlJ0u23367Y2Fi99dZbiomJ0dmzZ1WnTh2dOnXKbXxISIj1xQMAiiXCFgAA52nYsKHmz5+vypUruwLYuQ4fPqxt27bpjTfeUMuWLSVJq1evvtJlAgCKOU4jBADgPP3799eRI0d07733asOGDdq5c6eWLl2qBx98UDk5OQoLC1NERITefPNN7dixQytWrNDgwYO9XTYAoJghbAEAcJ6YmBh98803ysnJUfv27VWnTh09/vjjcjqd8vHxkY+Pjz788ENt3rxZderU0aBBgzRp0iRvlw0AKGaYjRAAAAAALMCRLQAAAACwAGELAAAAACxA2AIAAAAACxC2AAAAAMAChC0AAAAAsABhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELYAAAAAwAL/H/3fpOvjFVrVAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAI3CAYAAABtfUGQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgNklEQVR4nO3dfXzO9f////ux8xk7bGObMSzkXM7CSBRzEulN71SrhUTvKDlLfLwLnTgtEZ0nFJ28Jd5RzUmkt5yrVSQlp2lDzIZmmOfvj347vg7b2MFejr24XS+XXS6O1+u51+vxOM5e7nu9jufhMMYYAQAAAACKlI+3CwAAAACAqxFhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELYAAAAAwAKELQAAAACwAGELtjZr1iw5HA4FBQVpz549eda3bt1aderU8UJl0ldffSWHw6GPP/7YK/v31O7du9WpUyeFh4fL4XBo4MCBBY51OBx69NFH81338ccfy+Fw6KuvvrqkGhwOh2bNmuXx715JRdl/69at1bp166IrzkOZmZl6/vnn1bhxY4WGhiowMFCVK1fWgw8+qG+//faStlm5cmX17NnTdfuPP/7Q6NGjlZKSUjRFW+Dw4cMaMWKEatWqpRIlSig0NFTNmjXTK6+8otOnT1/29kePHi2Hw1EElXpPfq/PNWvWaPTo0Tp69Gie8ZUrV1bnzp0va5+ZmZkaP368mjZtqtKlS8vf319RUVHq0KGD3n//fWVnZ1+wvuJs8ODBcjgcBd5HV+oYknscLeh9yxijqlWryuFwFPl71fnvFcXRvHnz5HA4NG3atHzX9+3bV4GBgfrhhx+ucGWwCz9vFwAUhezsbP373//We++95+1SbGvQoEFav3693nnnHUVHR6tcuXJXvIZy5cpp7dq1qlKlyhXft7e8+uqrXtv3b7/9pnbt2ungwYP617/+pTFjxqhkyZLavXu3/vOf/6hRo0Y6evSonE7nZe3njz/+0JgxY1S5cmXVr1+/aIovQj///LPatWun48ePa8iQIWrevLmysrK0ePFiPf7445o3b54+//xzlShRwtulelV+r881a9ZozJgx6tmzp0qXLl2k+/v111/VoUMHHTx4UH379tXIkSMVFham1NRULVmyRA8++KC2bdumZ599tsD6iqvTp09rzpw5kqTk5GTt379f5cuX92pNpUqV0owZM/IEqlWrVum3335TqVKlvFOYl911111KTEzU8OHD1bFjR1WtWtW1bunSpXrrrbc0btw41atXz4tVojgjbOGqkPtXzqFDh+qGG27wdjlXVFZWloKCgi77r+ZbtmxRkyZN9I9//KNoCrsEgYGBatasmdf2fyX99ddfKlGihGrVquWV/efk5Khr1676888/tXbtWrczwK1atVKPHj30xRdfyN/f3yv1FUZOTo7OnDmjwMDAy9rGnXfeqczMTG3YsEHXX3+9a91tt92mVq1a6Z577tHgwYP1+uuvW1qLJ3KfP1fSlXx9njlzRv/4xz905MgRbdiwQTVr1nRb3717dz399NP67rvvvFLf5frvf/+rQ4cOqVOnTvrss880e/Zs/d///Z9Xa7r77rs1d+5cvfLKKwoNDXUtnzFjhuLj45WZmenF6qx3+vRpORwO+fnl/a/x9OnT9dVXX6lnz576+uuv5ePjo8zMTD300EOKj4/XE088cUVq9MbrHpePywhxVRg2bJgiIiL05JNPXnDchS4zcTgcGj16tOt27mU/P/zwg+666y45nU6Fh4dr8ODBOnPmjLZv364OHTqoVKlSqly5siZOnJjvPk+ePKnBgwcrOjpawcHBatWqldt/EHJt2rRJXbp0UXh4uIKCgtSgQQP95z//cRuTe7nH0qVL9eCDD6ps2bIqUaKE26U059u7d6/uv/9+RUZGKjAwUDVr1tSLL76os2fPSvp/l6rs2LFDX3zxhetykt27d1/wvvRE7uWcGzduVMuWLVWiRAldd911Gj9+vKsOqeDH57PPPlP9+vUVGBiouLg4vfDCC3kuy/LksZX+/qt5YmKi2/3yyiuvFFnP58rt/+uvv1bz5s1VokQJPfjgg6515/4lObePF154QZMnT1ZcXJxKliyp+Ph4rVu3Ls+2C/O8yc/ChQv1448/asSIEQVeatuxY0fXgb1nz56qXLlynjEXuzzuq6++0o033ihJ6tWrl+v5lft4FHQZ5fn7y71fJk6cqOeee05xcXEKDAzUypUrL+t+WLBggX766ScNHz7cLWjluvvuu9WuXTvNmDFDaWlphaolv+drfowxevXVV1W/fn0FBwcrLCxM//znP7Vz5063cRd6/qxYsUKtW7dWRESEgoODVbFiRd15553666+/Cuz5iSeekNPpVE5OjmvZY489JofDoUmTJrmWHT58WD4+Pq7Lp85/jY0ePdr1n8y4uLgCL0VLTk5Ww4YNFRwcrBo1auidd94psLZcuY/LyJEj8wStXJUqVXL749D59S1cuFAOh0Nffvllnt997bXXXO/vuTx5D165cqUeeeQRlSlTRhEREerWrZv++OOPi/aVa8aMGQoICNDMmTMVGxurmTNnyhiT79iLHUP+/PNPxcbGqnnz5m6XvP70008KCQlRUlJSoWq69957JUkffPCBa1lGRobmz5/ver6d79SpU3ruuedUo0YNBQYGqmzZsurVq5cOHTrkNu706dMaNmyYoqOjVaJECd10003asGFDoeo69/X2/PPPq2LFigoKClLjxo3zfWwL896ee9x77733NGTIEJUvX16BgYHasWNHvjWEhYVpxowZ+uabb/TSSy9J+vtqkMOHD2v27Nny9fVVZmamhg4dqri4OAUEBKh8+fIaOHCgTpw44batV155RTfffLMiIyMVEhKiunXrauLEiXkuV77Q6x42YwAbmzlzppFkNm7caKZOnWokmS+//NK1vlWrVqZ27dqu27t27TKSzMyZM/NsS5IZNWqU6/aoUaOMJFO9enXz7LPPmmXLlplhw4YZSebRRx81NWrUMC+//LJZtmyZ6dWrl5Fk5s+f7/r9lStXGkkmNjbW3HHHHWbRokVmzpw5pmrVqiY0NNT89ttvrrErVqwwAQEBpmXLluajjz4yycnJpmfPnnlqze23fPnypm/fvuaLL74wH3/8sTlz5ky+98/BgwdN+fLlTdmyZc3rr79ukpOTzaOPPmokmUceecQYY0xGRoZZu3atiY6ONi1atDBr1641a9euNSdPnizwfpdk+vfvn++6efPmGUlm5cqVbo9DRESEqVatmnn99dfNsmXLTL9+/YwkM3v27As+PsuXLze+vr7mpptuMp988omZN2+eufHGG03FihXNuW9hnjy2W7duNU6n09StW9e8++67ZunSpWbIkCHGx8fHjB49usC+L6f/8PBwExsba6ZNm2ZWrlxpVq1a5VrXqlWrPH1UrlzZdOjQwSxcuNAsXLjQ1K1b14SFhZmjR4+6xhb2eZOfvn37Gklm27ZtF+3XGGN69OhhKlWqlGd57uvkXJUqVTI9evQwxvz9/Mp93v773/92Pb/27duXb/8F7S/3filfvry55ZZbzMcff2yWLl1qdu3aZfn98OqrrxpJ5oMPPrhoLYV9vhpjTJ8+fYy/v78ZMmSISU5ONu+//76pUaOGiYqKMmlpaa5xBT1/du3aZYKCgkxCQoJZuHCh+eqrr8zcuXNNUlKSSU9PL7Cf5ORkI8msWbPGtaxGjRomODjYJCQkuJZ99NFHRpL56aef3PrOvU/37dtnHnvsMSPJfPLJJ67HNiMjwxjz9/OgQoUKplatWubdd981S5YsMXfddZeR5Hr+F6RPnz5Gktm+ffsFx53r/PpOnz5tIiMjzX333ZdnbJMmTUzDhg1dtz19D77uuuvMY489ZpYsWWLefvttExYWZm655ZZC1blv3z7j4+Nj7rrrLmOMMf/+97+NJPPVV1+5jfPkGLJ69Wrj5+dnBg0aZIwx5sSJE6ZWrVqmRo0a5vjx4xes59zjaFJSkmnSpIlr3WuvvWZCQkJMZmamqV27tttrNScnx3To0MGEhISYMWPGmGXLlpm3337blC9f3tSqVcv89ddfrrE9evQwDofDPPHEE2bp0qVm8uTJpnz58iY0NNT1XlGQ3Mc1NjbW3HTTTWb+/Pmu15W/v7/b87iw7+2592358uXNP//5T/Ppp5+axYsXm8OHD1+wlocfftgEBQWZyZMnG0lm+vTprvu7fv36pkyZMmby5Mlm+fLlZurUqcbpdJpbb73VnD171rWNQYMGmddee80kJyebFStWmJdeesmUKVPG9OrVy21fFzpuwF4IW7C1cw8S2dnZ5rrrrjONGzd2vbEVRdh68cUX3cbVr1/f9Z+LXKdPnzZly5Y13bp1cy3LfTNv2LCh2xvt7t27jb+/v3nooYdcy2rUqGEaNGhgTp8+7bavzp07m3LlypmcnBy3fh944IFC3T/Dhw83ksz69evdlj/yyCPG4XC4/UemUqVKplOnToXa7qWEjfzqqFWrlmnfvr3rdn6PT9OmTU1MTIzJyspyLcvMzDTh4eGXHLbat29vKlSo4PpPYa5HH33UBAUFmSNHjlyo/Uvu/9w/BJy7Lr+wVbduXbcQvWHDBrf/8BtT+OdNfjp06GAkXTBUn+tSw5YxxmzcuLHAx8bTsFWlShVz6tQpt7FW3w9ffPGFkWQmTJhw0VoK+3xdu3Ztvu8v+/btM8HBwWbYsGGuZQU9fz7++GMjyaSkpBRYe35OnDhhAgICzDPPPGOMMeb33383ksyTTz5pgoODXfdFnz59TExMjOv38nuNTZo0yUgyu3btyrOfSpUqmaCgILNnzx7XsqysLBMeHm4efvjhC9ZY0ONy9uxZc/r0adfPua+R/OobPHiwCQ4OdvsjxU8//WQkmWnTprmWefoe3K9fP7dxEydONJJMamrqBfsyxphnnnnGSDLJycnGGGN27txpHA6HSUpKchvnyTHEGGMmTJhgJJkFCxaYHj16mODgYPPDDz9ctJ5zj6O5+9yyZYsxxpgbb7zR9OzZ0xhj8oStDz74IM8fGY35f6/3V1991RhjzLZt24wkVxDMNXfuXCOp0GGroNdV27ZtXcsK+96e2+fNN9980fvnXMeOHTPXXXedkWTatm3relzGjRtnfHx8zMaNG93G575GP//883y3l5OTY06fPm3effdd4+vr63bsudBxA/bCZYS4agQEBOi5557Tpk2bCnX5UGGdP1NUzZo15XA41LFjR9cyPz8/Va1aNd8ZERMTE90us6pUqZKaN2/uuuRox44d+vnnn3XfffdJ+vuzCrk/t912m1JTU7V9+3a3bd55552Fqn3FihWqVauWmjRp4ra8Z8+eMsZoxYoVhdpOUYiOjs5TR7169fK9z3KdOHFCGzduVLdu3RQUFORaXqpUKd1+++2XVMfJkyf15ZdfqmvXripRokSe+/vkyZP5Xq53ucLCwnTrrbcWenynTp3k6+vrup374evc++tSnjdXgy5durh9juxK3A/m/7+86/zLJc+vxZPn6+LFi+VwOHT//fe71RwdHa0bbrghz6V4+T1/6tevr4CAAPXt21ezZ8/Oc/lhQUqUKKH4+HgtX75ckrRs2TKVLl1aTzzxhE6dOqXVq1dLkpYvX662bdsWapsFqV+/vipWrOi6HRQUpOuvv/6Cr/sLmTp1qvz9/V0/F/uM7oMPPqisrCx99NFHrmUzZ85UYGCgEhMTJV3ac6hLly5ut89/fRbEGOO6dDAhIUHS35dgtm7dWvPnz8/3c1EXO4bkeuKJJ9SpUyfde++9mj17tqZNm6a6detesJ7ztWrVSlWqVNE777yjH3/8URs3bizw0rXFixerdOnSuv32293us/r16ys6Otr1HM6tM/f+zdW9e/d8Px9VkIJeV19//bVycnIu6b29sMfSXCVLltSwYcMkSWPGjHE9LosXL1adOnVUv359t/22b98+z6W13333nbp06aKIiAj5+vrK399fDzzwgHJycvTLL7+47c/T4waKJ8IWrir33HOPGjZsqJEjRxbJdM2SFB4e7nY7ICBAJUqUcHvTz11+8uTJPL8fHR2d77LDhw9Lkg4cOCBJGjp0qNt/Ivz9/dWvXz9Jf1+Tf67CzhR4+PDhfMfGxMS41l8KX19ft897nOvMmTOSlGdihYiIiDxjAwMDlZWVVeB+0tPTdfbs2QLvw0tx+PBhnTlzRtOmTctzf992222S8t7f57uU/j2d3fH8+yt34oXc++tSnjfnyv0P8K5duzyqy9vOvx+vxP2Q+/nF2NjYC9biyfP1wIEDMsYoKioqT93r1q0r1Gu+SpUqWr58uSIjI9W/f39VqVJFVapU0dSpUwvsJVfbtm21bt06nThxQsuXL9ett96qiIgINWrUSMuXL9euXbu0a9euyw5bl/K6l/7f43J+eElMTNTGjRu1ceNGNWzY8KL7r127tm688UbNnDlT0t8TmcyZM0d33HGH6739Up5DF3t9FmTFihXatWuX7rrrLmVmZuro0aM6evSounfvrr/++svt81K5LnYMyeVwONSzZ0+dPHlS0dHRhf6s1vnb6NWrl+bMmaPXX39d119/vVq2bJnv2AMHDujo0aMKCAjIc7+lpaW57rPcOs/vw8/PL9/nR0EKuh9OnTql48ePX9J7+6XMupv7WAcEBLiWHThwQD/88EOe/ZYqVUrGGNd+9+7dq5YtW2r//v2aOnWq/ve//2njxo2uz5Sd//zxxqzAKHrMRoirisPh0IQJE5SQkKA333wzz/rcgHT+hBKXGjoKI/dD9ecvyz3IlClTRpI0YsQIdevWLd9tVK9e3e12YWcejIiIUGpqap7luR/kzt23p6KiorR///581+Uuj4qKuqRtnyssLEwOh6PA+/BchX1sw8LC5Ovrq6SkJPXv3z/f/cbFxV2wrkvpv6i/Y+lSnjfnat++vd58800tXLhQw4cPv+j+goKC8p2I5WLBtDDbzcjIKPR2z78fL/d+yH2vuND9sHDhQvn5+eWZyOP8Wjx5vpYpU0YOh0P/+9//8p3B8PxlBT1/WrZsqZYtWyonJ0ebNm3StGnTNHDgQEVFRemee+7J93ckqU2bNnrqqaf09ddf68svv9SoUaNcy5cuXep6DbRp06bAbVgp93H59NNPNXToUNfyyMhIRUZGSvr7zMaFJgfK1atXL/Xr10/btm3Tzp07lZqaql69ernWX+5zyBMzZsyQJE2ePFmTJ0/Od/3DDz/stuxix5Bcqamp6t+/v+rXr6+tW7dq6NChevnllz2usWfPnnr66af1+uuv6/nnny9wXO7kIMnJyfmuz50qPrfOtLQ0t+ntz5w549Gxt6D7ISAgQCVLlpS/v7/H7+1F9b5cpkwZBQcHFzj5S+5zbOHChTpx4oQ++eQTVapUybW+oO8gtPt38+FvhC1cddq2bauEhAQ988wzef4SHRUVpaCgoDxfPvjf//7Xsno++OAD15dXSn//pXbNmjV64IEHJP19EK9WrZq+//57jR07tkj33aZNG40bN07ffvut21+B3333XTkcDt1yyy2XtN22bdvqk08+0aFDh1S2bFnXcmOM5s2bp8qVK7t9F8mlCgkJUZMmTfTJJ59o0qRJrkB17NgxLVq0yG1sYR/bEiVK6JZbbtF3332nevXquf11srCuVP8XcrnPmzvuuEN169bVuHHj1Llz53xnJFyyZIlr9sjKlSvr4MGDOnDggCtInjp1SkuWLLnovi70V//KlStr3rx5ys7Odo07fPiw1qxZ4zb9dEEu937o2rWratWqpfHjx6tbt255ZiT86KOPtHTpUv3rX/+66NlUT56vnTt31vjx47V//351797d47rP5+vrq6ZNm6pGjRqaO3euvv322wuGrSZNmig0NFRTpkxRWlqa65K2tm3basKECfrPf/6jWrVquc6CF6SwZ3Q8lfu4jB07Vp07d1aNGjUueVv33nuvBg8erFmzZmnnzp0qX7682rVr51pv5XvwudLT07VgwQK1aNFCzz33XJ71b7/9tubOnastW7a4vR4vdgyR/j5jd++998rhcOiLL77Q3LlzNXToULVu3brAAFmQ8uXL64knntDPP/+sHj16FDiuc+fO+vDDD5WTk6OmTZsWOC73jxRz585Vo0aNXMv/85//uK4EKIyCXlctW7aUr69vkby3X6rOnTtr7NixioiIuOAf63Ifw3P/mGKM0VtvvWV5jfAewhauShMmTFCjRo108OBB1a5d27U89zMS77zzjqpUqaIbbrhBGzZs0Pvvv29ZLQcPHlTXrl3Vp08fZWRkaNSoUQoKCtKIESNcY9544w117NhR7du3V8+ePVW+fHkdOXJE27Zt07fffqt58+Zd0r4HDRqkd999V506ddIzzzyjSpUq6bPPPtOrr76qRx55JN+prgvj6aef1qJFi9S0aVMNHz5c1apVU1pamt566y1t3LixSD8z9+yzz6pDhw5KSEjQkCFDlJOTowkTJigkJERHjhxxjfPksZ06dapuuukmtWzZUo888ogqV66sY8eOaceOHVq0aNFFP8t2Jfu/kMt53vj6+mrBggVq166d4uPj9cgjj+iWW25RSEiI9uzZo48//liLFi1Senq6pL+nQH/66ad1zz336IknntDJkyf18ssvF3g55bmqVKmi4OBgzZ07VzVr1lTJkiUVExOjmJgYJSUl6Y033tD999+vPn366PDhw5o4cWKhglZR3Q/z589XQkKC4uPjNWTIEMXHxys7O1uLFi3Sm2++qVatWunFF18sVC2Ffb62aNFCffv2Va9evbRp0ybdfPPNCgkJUWpqqlavXq26devqkUceueC+Xn/9da1YsUKdOnVSxYoVdfLkSddf1i92+Z+vr69atWqlRYsWKS4uzvVFwC1atFBgYKC+/PJLDRgw4KL95n4maOrUqerRo4f8/f1VvXr1y/4CXF9fXy1cuFDt27dXkyZN1KdPH7Vu3VphYWE6evSo1q9fr++//77AaeHPVbp0aXXt2lWzZs3S0aNHNXToUPn4uH+Kwqr34HPNnTtXJ0+e1IABA/L9uoOIiAjNnTtXM2bMcE0vLhXuGDJq1Cj973//09KlSxUdHa0hQ4Zo1apV6t27txo0aHDRs/XnGz9+/EXH3HPPPZo7d65uu+02Pf7442rSpIn8/f31+++/a+XKlbrjjjvUtWtX1axZU/fff7+mTJkif39/tW3bVlu2bNELL7zg0evc19dXCQkJGjx4sM6ePasJEyYoMzNTY8aMcY253Pf2SzVw4EDNnz9fN998swYNGqR69erp7Nmz2rt3r5YuXaohQ4aoadOmSkhIUEBAgO69914NGzZMJ0+e1GuvveZ6n8VVyntzcwCX79xZlM6XmJhoJLnNRmjM31NRP/TQQyYqKsqEhISY22+/3ezevbvA2QgPHTrk9vs9evQwISEhefZ3/syHubMdvffee2bAgAGmbNmyJjAw0LRs2dJs2rQpz+9///33pnv37iYyMtL4+/ub6Ohoc+utt5rXX3+9UP0WZM+ePSYxMdFEREQYf39/U716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u0++vr6u5fXq1dPPP/9cpMUBAAAAgF15HLb279+vqlWr5ll+9uxZnT59ukiKAgAAAAC78zhs1a5dW//73//yLJ83b54aNGhQJEUBAAAAgN15PPX7qFGjlJSUpP379+vs2bP65JNPtH37dr377rtavHixFTUCAAAAgO14fGbr9ttv10cffaTPP/9cDodDTz/9tLZt26ZFixYpISHBihoBAAAAwHY8PrMlSe3bt1f79u2LuhYAAAAAuGpc1pcaAwAAAADyV6gzW2FhYXI4HIXa4JEjRy6rIAAAAAC4GhQqbE2ZMsX178OHD+u5555T+/btFR8fL0lau3atlixZoqeeesqSIgEAAADAbgoVtnr06OH695133qlnnnlGjz76qGvZgAEDNH36dC1fvlyDBg0q+ioBAAAAwGY8/szWkiVL1KFDhzzL27dvr+XLlxdJUQAAAABgdx6HrYiICC1YsCDP8oULFyoiIqJIigIAAAAAu/N46vcxY8aod+/e+uqrr1yf2Vq3bp2Sk5P19ttvF3mBAAAAAGBHHoetnj17qmbNmnr55Zf1ySefyBijWrVq6ZtvvlHTpk2tqBEAANuqPPwzy/exe3wny/cBAPCcR2Hr9OnT6tu3r5566inNnTvXqpoAAAAAwPY8Clv+/v5asGABU7wDKDSr/6rPX/QBAEBx5fEEGV27dtXChQstKAUAAAAArh4ef2aratWqevbZZ7VmzRo1atRIISEhbusHDBhQZMUBAAAAgF15HLbefvttlS5dWps3b9bmzZvd1jkcDsIWAAAAAOgSwtauXbuKbOevvfaaXnvtNe3evVuSVLt2bT399NPq2LGjJMkYozFjxujNN99Uenq6mjZtqldeeUW1a9d2bSM7O1tDhw7VBx98oKysLLVp00avvvqqKlSo4BqTnp6uAQMG6NNPP5UkdenSRdOmTVPp0qWLrBcAKK743BwAAN7h8We2cv355586fPjwZe28QoUKGj9+vDZt2qRNmzbp1ltv1R133KGtW7dKkiZOnKjJkydr+vTp2rhxo6Kjo5WQkKBjx465tjFw4EAtWLBAH374oVavXq3jx4+rc+fOysnJcY1JTExUSkqKkpOTlZycrJSUFCUlJV1W7QAAAABwIR6FraNHj6p///4qU6aMoqKiFBkZqTJlyujRRx/V0aNHPd757bffrttuu03XX3+9rr/+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ogAAAADA7jwOW4cPH1abNm10/fXX67bbblNqaqok6aGHHtKQIUOKvEAAAAAAsCOPw9agQYPk7++vvXv3qkSJEq7ld999t5KTk4u0OAAAAACwK48/s7V06VItWbJEFSpUcFterVo17dmzp8gKAwAAAAA78/jM1okTJ9zOaOX6888/FRgYWCRFAQAAAIDdeRy2br75Zr377ruu2w6HQ2fPntWkSZN0yy23FGlxAAAAAGBXHl9GOGnSJLVu3VqbNm3SqVOnNGzYMG3dulVHjhzRN998Y0WNAAAAAGA7Hp/ZqlWrln744Qc1adJECQkJOnHihLp166bvvvtOVapUsaJGAAAAALAdj89sSVJ0dLTGjBlT1LUAAAAAwFXjksJWenq6ZsyYoW3btsnhcKhmzZrq1auXwsPDi7o+AAAAALAljy8jXLVqleLi4vTyyy8rPT1dR44c0csvv6y4uDitWrXKihoBAAAAwHY8PrPVv39/de/eXa+99pp8fX0lSTk5OerXr5/69++vLVu2FHmRAAAAAGA3Hp/Z+u233zRkyBBX0JIkX19fDR48WL/99luRFgcAAAAAduVx2GrYsKG2bduWZ/m2bdtUv379oqgJAAAAAGyvUJcR/vDDD65/DxgwQI8//rh27NihZs2aSZLWrVunV155RePHj7emSgAAAACwmUKFrfr168vhcMgY41o2bNiwPOMSExN19913F111AAAAAGBThQpbu3btsroOAAAAALiqFCpsVapUyeo6AAAAAOCqcklfarx//3598803OnjwoM6ePeu2bsCAAUVSGAAAAADYmcdha+bMmfrXv/6lgIAARUREyOFwuNY5HA7CFgAAAADoEsLW008/raefflojRoyQj4/HM8cDAAAAwDXB47T0119/6Z577iFoAQAAAMAFeJyYevfurXnz5llRCwAAAABcNTy+jHDcuHHq3LmzkpOTVbduXfn7+7utnzx5cpEVBwAAAAB25XHYGjt2rJYsWaLq1atLUp4JMgAAAAAAlxC2Jk+erHfeeUc9e/a0oBwAAAAAuDp4/JmtwMBAtWjRwopaAAAAAOCq4XHYevzxxzVt2jQragEAAACAq4bHlxFu2LBBK1as0OLFi1W7du08E2R88sknRVYcAAAAANiVx2GrdOnS6tatmxW1AAAAAMBVw+OwNXPmTCvqAAAAAICrisef2QIA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", "text/plain": [ "
" ] @@ -3551,19 +2884,19 @@ }, { "cell_type": "code", - "execution_count": 236, + "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_22422/3317590827.py:24: SettingWithCopyWarning: \n", + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_95596/29407992.py:24: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", - "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_22422/3317590827.py:25: SettingWithCopyWarning: \n", + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_95596/29407992.py:25: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -3597,30 +2930,22 @@ "\n", "# Apply the function to your column\n", "given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", - "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)" - ] - }, - { - "cell_type": "code", - "execution_count": 237, - "metadata": {}, - "outputs": [], - "source": [ + "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n", "given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"result_time_jittered_utc\", \"final_antibiotic\"])" ] }, { "cell_type": "code", - "execution_count": 146, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ - "given_final_cohort_inp_ed_only.to_csv('../csv_folder/given_final_cohort_inp_ed_only_adults.csv', index=False)" + "given_final_cohort_inp_ed_only.to_csv('../csv_folder/final_cohort_for_analysis_adults_ed.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 238, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -3750,7 +3075,7 @@ " ...\n", " \n", " \n", - " 334762\n", + " 334283\n", " JC999841\n", " 131042520339\n", " 447106081\n", @@ -3765,7 +3090,7 @@ " Nitrofurantoin\n", " \n", " \n", - " 334763\n", + " 334284\n", " JC999842\n", " 131192863784\n", " 500208763\n", @@ -3780,7 +3105,7 @@ " Ceftriaxone\n", " \n", " \n", - " 334764\n", + " 334285\n", " JC999842\n", " 131192863784\n", " 500208763\n", @@ -3795,7 +3120,7 @@ " Metronidazole\n", " \n", " \n", - " 334767\n", + " 334288\n", " JC999842\n", " 131192863784\n", " 500208763\n", @@ -3810,7 +3135,7 @@ " Trimethoprim/Sulfamethoxazole\n", " \n", " \n", - " 334772\n", + " 334293\n", " JC999925\n", " 131107270857\n", " 471989931\n", @@ -3826,7 +3151,7 @@ " \n", " \n", "\n", - "

74991 rows × 12 columns

\n", + "

74941 rows × 12 columns

\n", "" ], "text/plain": [ @@ -3837,11 +3162,11 @@ "5 JC1000063 131011127694 373759075 \n", "6 JC1000129 131354606122 877003103 \n", "... ... ... ... \n", - "334762 JC999841 131042520339 447106081 \n", - "334763 JC999842 131192863784 500208763 \n", - "334764 JC999842 131192863784 500208763 \n", - "334767 JC999842 131192863784 500208763 \n", - "334772 JC999925 131107270857 471989931 \n", + "334283 JC999841 131042520339 447106081 \n", + "334284 JC999842 131192863784 500208763 \n", + "334285 JC999842 131192863784 500208763 \n", + "334288 JC999842 131192863784 500208763 \n", + "334293 JC999925 131107270857 471989931 \n", "\n", " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", "0 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", @@ -3850,11 +3175,11 @@ "5 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", "6 2023-04-24 01:28:00+00:00 2023-04-26 01:57:00+00:00 Inpatient \n", "... ... ... ... \n", - "334762 2014-10-10 06:41:00+00:00 2014-10-12 16:01:00+00:00 Inpatient \n", - "334763 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", - "334764 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", - "334767 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", - "334772 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "334283 2014-10-10 06:41:00+00:00 2014-10-12 16:01:00+00:00 Inpatient \n", + "334284 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "334285 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "334288 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "334293 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", "\n", " medication_time \\\n", "0 2010-10-01 00:30:00+00:00 \n", @@ -3863,11 +3188,11 @@ "5 2010-10-02 13:47:49+00:00 \n", "6 2023-04-23 23:14:00+00:00 \n", "... ... \n", - "334762 2014-10-10 06:31:00+00:00 \n", - "334763 2016-07-16 18:31:00+00:00 \n", - "334764 2016-07-16 19:35:00+00:00 \n", - "334767 2016-07-17 16:29:00+00:00 \n", - "334772 2015-08-10 01:59:00+00:00 \n", + "334283 2014-10-10 06:31:00+00:00 \n", + "334284 2016-07-16 18:31:00+00:00 \n", + "334285 2016-07-16 19:35:00+00:00 \n", + "334288 2016-07-17 16:29:00+00:00 \n", + "334293 2015-08-10 01:59:00+00:00 \n", "\n", " medication_name order_med_id_coded \\\n", "0 DOXYCYCLINE HYCLATE 100 MG PO CAPS 373783716 \n", @@ -3876,11 +3201,11 @@ "5 CLINDAMYCIN IN D5W 900 MG/50 ML IV PGBK 373855382 \n", "6 CEFEPIME 2 GRAM/20 ML IV PUSH 876966020 \n", "... ... ... \n", - "334762 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 447105727 \n", - "334763 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 500216262 \n", - "334764 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 500216263 \n", - "334767 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 500183117 \n", - "334772 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", + "334283 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 447105727 \n", + "334284 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 500216262 \n", + "334285 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 500216263 \n", + "334288 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 500183117 \n", + "334293 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", "\n", " medication_action cleaned_antibiotic \\\n", "0 Given [Doxycycline Hyclate] \n", @@ -3889,11 +3214,11 @@ "5 Given [Clindamycin In] \n", "6 Given [Cefepime] \n", "... ... ... \n", - "334762 Given [Nitrofurantoin] \n", - "334763 Given [Ceftriaxone] \n", - "334764 Given [Metronidazole In Nacl, Metronidazole] \n", - "334767 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "334772 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", + "334283 Given [Nitrofurantoin] \n", + "334284 Given [Ceftriaxone] \n", + "334285 Given [Metronidazole In Nacl, Metronidazole] \n", + "334288 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", + "334293 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", "\n", " final_antibiotic \n", "0 Doxycycline \n", @@ -3902,16 +3227,16 @@ "5 Clindamycin \n", "6 Cefepime \n", "... ... \n", - "334762 Nitrofurantoin \n", - "334763 Ceftriaxone \n", - "334764 Metronidazole \n", - "334767 Trimethoprim/Sulfamethoxazole \n", - "334772 Trimethoprim/Sulfamethoxazole \n", + "334283 Nitrofurantoin \n", + "334284 Ceftriaxone \n", + "334285 Metronidazole \n", + "334288 Trimethoprim/Sulfamethoxazole \n", + "334293 Trimethoprim/Sulfamethoxazole \n", "\n", - "[74991 rows x 12 columns]" + "[74941 rows x 12 columns]" ] }, - "execution_count": 238, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -3949,7 +3274,7 @@ }, { "cell_type": "code", - "execution_count": 334, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ @@ -3973,7 +3298,7 @@ }, { "cell_type": "code", - "execution_count": 335, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -4001,924 +3326,230 @@ }, { "cell_type": "code", - "execution_count": 336, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "inherent_resistance = implied_suspectibility[\n", " implied_suspectibility['Implied_Agent'].isna()\n", "][['Organism', 'Antibiotic']].drop_duplicates()\n", - "resistant_to_add = pd.merge(\n", - " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", - " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", - " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", - " inherent_resistance,\n", - " left_on='matched_organism',\n", - " right_on='Organism',\n", - " how='inner'\n", - ")\n", - "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", - "resistant_to_add['susceptibility'] = 'Resistant'\n", - "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", - "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", - "added_resistant_cohort = (pd.concat([\n", - " with_implied_susceptibility_starting_cohort,\n", - " resistant_to_add[cols_to_keep]\n", - "], ignore_index=True))\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", - " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" - ] - }, - { - "cell_type": "code", - "execution_count": 236, - "metadata": {}, - "outputs": [], - "source": [ - "# duplicate_check = added_resistant_cohort.duplicated(\n", - "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility'],\n", - "# keep=False # Mark all duplicates as True\n", - "# )\n", - "\n", - "# # Step 2: Create a separate dataframe with just duplicates\n", - "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", - "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility']\n", - "# )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Step 2: Check for implied susceptibility" - ] - }, - { - "cell_type": "code", - "execution_count": 337, - "metadata": {}, - "outputs": [], - "source": [ - "implied_agent_rules = implied_suspectibility[\n", - " implied_suspectibility['Implied_Agent'].notna()\n", - "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", - "implied_to_process = pd.merge(\n", - " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", - " implied_agent_rules,\n", - " left_on=['matched_organism', 'antibiotic'],\n", - " right_on=['Organism', 'Implied_Agent'],\n", - " how='inner'\n", - ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", - "implied_to_process['susceptibility_source'] = 'implied'\n", - "cols_to_keep = added_resistant_cohort.columns\n", - "final_implied_cohort = (pd.concat([\n", - " added_resistant_cohort,\n", - " implied_to_process[cols_to_keep]\n", - "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')" - ] - }, - { - "cell_type": "code", - "execution_count": 338, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "480007" - ] - }, - "execution_count": 338, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "find_unique_orders(final_implied_cohort)" - ] - }, - { - "cell_type": "code", - "execution_count": 244, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "479615" - ] - }, - "execution_count": 244, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# condition = (final_implied_cohort[\"was_positive\"] == 1) & (final_implied_cohort[\"organism\"].isna())\n", - "# final_implied_cohort = final_implied_cohort[~condition]\n", - "# find_unique_orders(final_implied_cohort)" - ] - }, - { - "cell_type": "code", - "execution_count": 339, - "metadata": {}, - "outputs": [], - "source": [ - "final_implied_cohort.to_csv('../csv_folder/final_implied_cohort.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 340, - "metadata": {}, - "outputs": [], - "source": [ - "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" - ] - }, - { - "cell_type": "code", - "execution_count": 281, - "metadata": {}, - "outputs": [], - "source": [ - "# merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 341, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "while the unique culture order is 48737, the number of medication to evaluate is 74991\n" - ] - } - ], - "source": [ - "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" - ] - }, - { - "cell_type": "code", - "execution_count": 342, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the number of unique medications to be evaluated is 74991\n" - ] - } - ], - "source": [ - "print(\"the number of unique medications to be evaluated is {}\"\\\n", - " .format(len(given_final_cohort_inp_ed_only.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))))" - ] - }, - { - "cell_type": "code", - "execution_count": 373, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.5442504189868628, 0.4557495810131373)" - ] - }, - "execution_count": 373, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# negative rate\n", - "10067/18497, 8430/18497" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Incorporate antibiotic ranking to both prescribe and tested antibioti" - ] - }, - { - "cell_type": "code", - "execution_count": 343, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0fb7c8298b9c4d448462438cbaee04f3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4ac0e64bfb3245fcba19de23eb3ed7d6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api aim_4_antibiotic_ranking\n", - "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_copy.aim_4_antibiotic_ranking" - ] - }, - { - "cell_type": "code", - "execution_count": 344, - "metadata": {}, - "outputs": [], - "source": [ - "with_prescribed_abx_rank_df = merged_culture_med.merge(aim_4_antibiotic_ranking, \\\n", - " left_on=['final_antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", - " .rename(columns={'spectrum_ranking': 'presciribed_antibiotic_rank'})\\\n", - " .drop(columns = ['antibiotic_agent', 'spectrum'])\n", - "with_tested_and_prescribed_abx_rank_df = with_prescribed_abx_rank_df.merge(aim_4_antibiotic_ranking, \\\n", - " left_on=['antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", - " .rename(columns={'spectrum_ranking': 'tested_antibiotic_rank',\n", - " 'ordering_mode_x': 'ordering_mode'})\\\n", - " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])" - ] - }, - { - "cell_type": "code", - "execution_count": 345, - "metadata": {}, - "outputs": [], - "source": [ - "negative_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 0]\n", - "positive_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 1]\n", - "# print(\"the unique order number for negative cohort is {}\".format(find_unique_orders(negative_cohort)))\n", - "# print(\"the unique order number for positive cohort is {}\".format(find_unique_orders(positive_cohort)))" - ] - }, - { - "cell_type": "code", - "execution_count": 346, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "42840" - ] - }, - "execution_count": 346, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(negative_cohort.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" - ] - }, - { - "cell_type": "code", - "execution_count": 347, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "32151" - ] - }, - "execution_count": 347, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(positive_cohort.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" - ] - }, - { - "cell_type": "code", - "execution_count": 348, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "74991" - ] - }, - "execution_count": 348, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "42840 + 32151" - ] - }, - { - "cell_type": "code", - "execution_count": 357, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "presciribed_antibiotic_rank\n", - "1 7469\n", - "2 12713\n", - "3 36052\n", - "4 8636\n", - "5 8238\n", - "6 773\n", - "99 1110\n", - "Name: count, dtype: Int64" - ] - }, - "execution_count": 357, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with_tested_and_prescribed_abx_rank_df.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", - "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 367, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "73881" - ] - }, - "execution_count": 367, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "7469 + 12713 +36052 + 8636 +8238+773+1110 - 1110" - ] - }, - { - "cell_type": "code", - "execution_count": 352, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_antibiotic_appropriateness(group):\n", - " # Get all tested antibiotics with their susceptibility and ranking\n", - " tested_abx = group[['antibiotic', 'susceptibility', 'tested_antibiotic_rank']].drop_duplicates()\n", - " \n", - " # Get the prescribed antibiotic\n", - " prescribed_abx = group['final_antibiotic'].iloc[0]\n", - " prescribed_rank = group['presciribed_antibiotic_rank'].iloc[0]\n", - " \n", - " # Scenario 1: Appropriate (susceptible and minimal rank)\n", - " susceptible_tested = tested_abx[tested_abx['susceptibility'] == 'Susceptible']\n", - " min_rank = susceptible_tested['tested_antibiotic_rank'].min()\n", - " try:\n", - " min_tested_susceptible_abx = susceptible_tested[susceptible_tested['tested_antibiotic_rank'] == min_rank]['antibiotic'].iloc[0]\n", - " except IndexError:\n", - " min_tested_susceptible_abx = None\n", - " if not susceptible_tested.empty:\n", - " # min_rank = susceptible_tested['tested_antibiotic_rank'].min()\n", - " if prescribed_abx in susceptible_tested['antibiotic'].values:\n", - " if prescribed_rank == min_rank:\n", - " return pd.Series({\n", - " 'scenario': 'appropriate',\n", - " 'ranking_diff': 0,\n", - " 'min_susceptible_test_rank': min_rank,\n", - " 'min_tested_susceptible_abx': prescribed_abx,\n", - " 'prescribed_rank': prescribed_rank\n", - " })\n", - " \n", - " # Scenario 2: Too broad (susceptible but not minimal rank)\n", - " else:\n", - " return pd.Series({\n", - " 'scenario': 'too_broad',\n", - " 'ranking_diff': prescribed_rank - min_rank,\n", - " 'min_susceptible_test_rank': min_rank,\n", - " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", - " 'prescribed_rank': prescribed_rank\n", - " })\n", - " \n", - " # Scenario 3: Resistant (non-susceptible)\n", - " if prescribed_abx in group['antibiotic'].values:\n", - " prescribed_susceptibility = group[group['antibiotic'] == prescribed_abx]['susceptibility'].iloc[0]\n", - " \n", - " if prescribed_susceptibility != 'Susceptible':\n", - " return pd.Series({\n", - " 'scenario': 'resistant',\n", - " 'ranking_diff': \"N/A\",\n", - " 'min_susceptible_test_rank': susceptible_tested['tested_antibiotic_rank'].min() if not susceptible_tested.empty else None,\n", - " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", - " 'prescribed_rank': prescribed_rank\n", - " })\n", - " \n", - " # Scenario 4: Not performed\n", - " return pd.Series({\n", - " 'scenario': 'not_performed',\n", - " 'ranking_diff': \"N/A\",\n", - " 'min_susceptible_test_rank': susceptible_tested['tested_antibiotic_rank'].min() if not susceptible_tested.empty else None,\n", - " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", - " 'prescribed_rank': prescribed_rank\n", - " })\n", - "\n", - "# Apply to each group\n", - "results = positive_cohort.groupby([\n", - " \"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"\n", - "]).apply(evaluate_antibiotic_appropriateness).reset_index()\n", - "\n", - "# Merge results back with original data\n", - "final_cohort_with_evaluation = positive_cohort.merge(\n", - " results,\n", - " on=[\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 353, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcfinal_antibioticscenarioranking_diffmin_susceptible_test_rankmin_tested_susceptible_abxprescribed_rank
0JC10001291313593378478944653212023-07-12 23:05:00+00:002023-07-17 23:46:00+00:00Ceftriaxonetoo_broad21.0Cefazolin3
1JC10001291313593378478944653212023-07-12 23:05:00+00:002023-07-17 23:46:00+00:00Ertapenemtoo_broad41.0Cefazolin5
2JC10001591312336871075281013512017-06-25 18:22:00+00:002017-06-27 19:56:00+00:00Ceftriaxonetoo_broad21.0Ampicillin3
3JC10001591312336871075281013512017-06-25 18:22:00+00:002017-06-27 19:56:00+00:00Ciprofloxacintoo_broad21.0Ampicillin3
4JC10004411310161406123920350822011-11-10 22:20:00+00:002011-11-13 05:38:00+00:00Nitrofurantointoo_broad11.0Cefazolin2
....................................
32146JC9991901313633106749083547972023-10-19 09:32:00+00:002023-10-22 17:36:00+00:00Amoxicillin/Clavulanic Acidtoo_broad11.0Ampicillin2
32147JC9993741310248744354206009922013-05-31 15:31:00+00:002013-06-02 16:08:00+00:00Ciprofloxacintoo_broad12.0Nitrofurantoin3
32148JC9995901310227874144142449262013-02-04 01:57:00+00:002013-02-06 07:08:00+00:00Aztreonamnot_performedN/A1.0Cefazolin6
32149JC9995901310227874144142449262013-02-04 01:57:00+00:002013-02-06 07:08:00+00:00Levofloxacintoo_broad21.0Cefazolin3
32150JC9995901310227874144142449262013-02-04 01:57:00+00:002013-02-06 07:08:00+00:00Vancomycinnot_performedN/A1.0Cefazolin5
\n", - "

32151 rows × 11 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000129 131359337847 894465321 \n", - "1 JC1000129 131359337847 894465321 \n", - "2 JC1000159 131233687107 528101351 \n", - "3 JC1000159 131233687107 528101351 \n", - "4 JC1000441 131016140612 392035082 \n", - "... ... ... ... \n", - "32146 JC999190 131363310674 908354797 \n", - "32147 JC999374 131024874435 420600992 \n", - "32148 JC999590 131022787414 414244926 \n", - "32149 JC999590 131022787414 414244926 \n", - "32150 JC999590 131022787414 414244926 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc \\\n", - "0 2023-07-12 23:05:00+00:00 2023-07-17 23:46:00+00:00 \n", - "1 2023-07-12 23:05:00+00:00 2023-07-17 23:46:00+00:00 \n", - "2 2017-06-25 18:22:00+00:00 2017-06-27 19:56:00+00:00 \n", - "3 2017-06-25 18:22:00+00:00 2017-06-27 19:56:00+00:00 \n", - "4 2011-11-10 22:20:00+00:00 2011-11-13 05:38:00+00:00 \n", - "... ... ... \n", - "32146 2023-10-19 09:32:00+00:00 2023-10-22 17:36:00+00:00 \n", - "32147 2013-05-31 15:31:00+00:00 2013-06-02 16:08:00+00:00 \n", - "32148 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32149 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32150 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "\n", - " final_antibiotic scenario ranking_diff \\\n", - "0 Ceftriaxone too_broad 2 \n", - "1 Ertapenem too_broad 4 \n", - "2 Ceftriaxone too_broad 2 \n", - "3 Ciprofloxacin too_broad 2 \n", - "4 Nitrofurantoin too_broad 1 \n", - "... ... ... ... \n", - "32146 Amoxicillin/Clavulanic Acid too_broad 1 \n", - "32147 Ciprofloxacin too_broad 1 \n", - "32148 Aztreonam not_performed N/A \n", - "32149 Levofloxacin too_broad 2 \n", - "32150 Vancomycin not_performed N/A \n", - "\n", - " min_susceptible_test_rank min_tested_susceptible_abx prescribed_rank \n", - "0 1.0 Cefazolin 3 \n", - "1 1.0 Cefazolin 5 \n", - "2 1.0 Ampicillin 3 \n", - "3 1.0 Ampicillin 3 \n", - "4 1.0 Cefazolin 2 \n", - "... ... ... ... \n", - "32146 1.0 Ampicillin 2 \n", - "32147 2.0 Nitrofurantoin 3 \n", - "32148 1.0 Cefazolin 6 \n", - "32149 1.0 Cefazolin 3 \n", - "32150 1.0 Cefazolin 5 \n", - "\n", - "[32151 rows x 11 columns]" - ] - }, - "execution_count": 353, - "metadata": {}, - "output_type": "execute_result" - } - ], + "resistant_to_add = pd.merge(\n", + " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", + " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", + " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", + " inherent_resistance,\n", + " left_on='matched_organism',\n", + " right_on='Organism',\n", + " how='inner'\n", + ")\n", + "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", + "resistant_to_add['susceptibility'] = 'Resistant'\n", + "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", + "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", + "added_resistant_cohort = (pd.concat([\n", + " with_implied_susceptibility_starting_cohort,\n", + " resistant_to_add[cols_to_keep]\n", + "], ignore_index=True))\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", + " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "metadata": {}, + "outputs": [], "source": [ - "results" + "# duplicate_check = added_resistant_cohort.duplicated(\n", + "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility'],\n", + "# keep=False # Mark all duplicates as True\n", + "# )\n", + "\n", + "# # Step 2: Create a separate dataframe with just duplicates\n", + "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", + "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility']\n", + "# )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step 2: Check for implied susceptibility" ] }, { "cell_type": "code", - "execution_count": 359, + "execution_count": 51, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "scenario\n", - "too_broad 16542\n", - "not_performed 9192\n", - "resistant 5408\n", - "appropriate 1009\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 359, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "results[\"scenario\"].value_counts()" + "implied_agent_rules = implied_suspectibility[\n", + " implied_suspectibility['Implied_Agent'].notna()\n", + "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", + "implied_to_process = pd.merge(\n", + " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", + " implied_agent_rules,\n", + " left_on=['matched_organism', 'antibiotic'],\n", + " right_on=['Organism', 'Implied_Agent'],\n", + " how='inner'\n", + ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", + "implied_to_process['susceptibility_source'] = 'implied'\n", + "cols_to_keep = added_resistant_cohort.columns\n", + "final_implied_cohort = (pd.concat([\n", + " added_resistant_cohort,\n", + " implied_to_process[cols_to_keep]\n", + "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')" ] }, { "cell_type": "code", - "execution_count": 368, + "execution_count": 52, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "73881" - ] - }, - "execution_count": 368, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "1009+16542+5408+42840+9192 - 1110" + "final_implied_cohort.to_csv('../csv_folder/final_implied_cohort_adults_ed.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 369, + "execution_count": 53, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "8082" - ] - }, - "execution_count": 369, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], "source": [ - "9192 - 1110" + "merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis_adults_ed.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 370, + "execution_count": 55, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "73881" - ] - }, - "execution_count": 370, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "while the unique culture order is 48714, the number of medication to evaluate is 74941\n" + ] } ], "source": [ - "1009+16542+5408+42840+8082" + "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" ] }, { "cell_type": "code", - "execution_count": 356, + "execution_count": 56, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "42840" - ] - }, - "execution_count": 356, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of unique medications to be evaluated is 74941\n" + ] } ], "source": [ - "len(negative_cohort.groupby(\n", - " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" + "print(\"the number of unique medications to be evaluated is {}\"\\\n", + " .format(len(given_final_cohort_inp_ed_only.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))))" ] }, { "cell_type": "code", - "execution_count": 286, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "final_cohort_with_evaluation.drop(columns = ['medication_action', 'ordering_mode', 'culture_description'], inplace=True)" + "# Incorporate antibiotic ranking to both prescribe and tested antibiotic" ] }, { "cell_type": "code", - "execution_count": 162, + "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "83ab2fbe752a4265992baa143cb634bc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Query is running: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bd3d87bcb7254dcb95c3581dbc14c8bd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# final_cohort_with_evaluation.drop(columns = ['prescribed_rank'], inplace=True)" + "%%bigquery --use_rest_api aim_4_antibiotic_ranking\n", + "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_copy.aim_4_antibiotic_ranking" ] }, { "cell_type": "code", - "execution_count": 371, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ - "# Filter out rows where scenario is 'not_performed'\n", - "not_performed_df = final_cohort_with_evaluation[final_cohort_with_evaluation[\"scenario\"] == \"not_performed\"]\n", - "\n", - "# Select only the columns you care about and drop duplicates to get unique pairs\n", - "unique_pairs = not_performed_df[[\"organism\",\"final_antibiotic\"]].drop_duplicates()\n", - "\n", - "# Count occurrences of each antibiotic-organism pair\n", - "pair_counts = not_performed_df.drop_duplicates(subset= [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\", \"organism\"]).groupby([\"final_antibiotic\", \"organism\"]).size().reset_index(name=\"count\").sort_values(by=\"count\", ascending=False)\n", - "\n", - "# Display the result\n", - "\n", - "# Display the result\n", - "not_performed_df.to_csv('../csv_folder/not_performed_df.csv', index=False)\n", - "unique_pairs.to_csv('../csv_folder/unique_pairs.csv', index=False)\n", - "pair_counts.to_csv('../csv_folder/unique_pair_counts.csv', index=False)" + "with_prescribed_abx_rank_df = merged_culture_med.merge(aim_4_antibiotic_ranking, \\\n", + " left_on=['final_antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", + " .rename(columns={'spectrum_ranking': 'presciribed_antibiotic_rank'})\\\n", + " .drop(columns = ['antibiotic_agent', 'spectrum'])\n", + "with_tested_and_prescribed_abx_rank_df = with_prescribed_abx_rank_df.merge(aim_4_antibiotic_ranking, \\\n", + " left_on=['antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", + " .rename(columns={'spectrum_ranking': 'tested_antibiotic_rank',\n", + " 'ordering_mode_x': 'ordering_mode'})\\\n", + " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])\n", + "with_tested_and_prescribed_abx_rank_df = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"presciribed_antibiotic_rank\"] != 99]" ] }, { "cell_type": "code", - "execution_count": 303, + "execution_count": 67, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "presciribed_antibiotic_rank\n", - "1 3246\n", - "2 5304\n", - "3 16981\n", - "4 2792\n", - "5 3050\n", - "6 371\n", - "99 407\n", - "Name: count, dtype: Int64" - ] - }, - "execution_count": 303, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "positive_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].max().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", - "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" + "negative_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 0]\n", + "positive_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 1]\n", + "# print(\"the unique order number for negative cohort is {}\".format(find_unique_orders(negative_cohort)))\n", + "# print(\"the unique order number for positive cohort is {}\".format(find_unique_orders(positive_cohort)))" ] }, { "cell_type": "code", - "execution_count": 379, + "execution_count": 93, "metadata": {}, "outputs": [ { @@ -4947,60 +3578,138 @@ " order_proc_id_coded\n", " order_time_jittered_utc\n", " result_time_jittered_utc\n", + " ordering_mode\n", + " medication_time\n", + " medication_name\n", + " order_med_id_coded\n", + " medication_action\n", " final_antibiotic\n", + " culture_description\n", + " was_positive\n", + " organism\n", + " antibiotic\n", + " susceptibility\n", + " susceptibility_source\n", + " matched_organism\n", " presciribed_antibiotic_rank\n", + " tested_antibiotic_rank\n", " \n", " \n", " \n", " \n", " 0\n", - " JC1000129\n", - " 131359337847\n", - " 894465321\n", - " 2023-07-12 23:05:00+00:00\n", - " 2023-07-17 23:46:00+00:00\n", - " Ceftriaxone\n", - " 3\n", - " \n", - " \n", - " 1\n", - " JC1000129\n", - " 131359337847\n", - " 894465321\n", - " 2023-07-12 23:05:00+00:00\n", - " 2023-07-17 23:46:00+00:00\n", - " Ertapenem\n", - " 5\n", + " JC1000063\n", + " 131011127694\n", + " 373759075\n", + " 2010-09-30 16:47:00+00:00\n", + " 2010-10-02 14:53:00+00:00\n", + " Inpatient\n", + " 2010-10-01 00:30:00+00:00\n", + " DOXYCYCLINE HYCLATE 100 MG PO CAPS\n", + " 373783716\n", + " Given\n", + " Doxycycline\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", + " \n", + " \n", + " 1\n", + " JC1000063\n", + " 131011127694\n", + " 373759075\n", + " 2010-09-30 16:47:00+00:00\n", + " 2010-10-02 14:53:00+00:00\n", + " Inpatient\n", + " 2010-10-02 10:40:34+00:00\n", + " AMPICILLIN 2 GM IVPB\n", + " 373855197\n", + " Given\n", + " Ampicillin\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 1\n", + " <NA>\n", " \n", " \n", " 2\n", - " JC1000159\n", - " 131233687107\n", - " 528101351\n", - " 2017-06-25 18:22:00+00:00\n", - " 2017-06-27 19:56:00+00:00\n", - " Ceftriaxone\n", - " 3\n", + " JC1000063\n", + " 131011127694\n", + " 373759075\n", + " 2010-09-30 16:47:00+00:00\n", + " 2010-10-02 14:53:00+00:00\n", + " Inpatient\n", + " 2010-10-02 11:58:28+00:00\n", + " GENTAMICIN (CUSTOM DOSE) IVPB\n", + " 373855357\n", + " Given\n", + " Gentamicin\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", " \n", " \n", " 3\n", - " JC1000159\n", - " 131233687107\n", - " 528101351\n", - " 2017-06-25 18:22:00+00:00\n", - " 2017-06-27 19:56:00+00:00\n", - " Ciprofloxacin\n", - " 3\n", + " JC1000063\n", + " 131011127694\n", + " 373759075\n", + " 2010-09-30 16:47:00+00:00\n", + " 2010-10-02 14:53:00+00:00\n", + " Inpatient\n", + " 2010-10-02 13:47:49+00:00\n", + " CLINDAMYCIN IN D5W 900 MG/50 ML IV PGBK\n", + " 373855382\n", + " Given\n", + " Clindamycin\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", " \n", " \n", " 4\n", - " JC1000441\n", - " 131016140612\n", - " 392035082\n", - " 2011-11-10 22:20:00+00:00\n", - " 2011-11-13 05:38:00+00:00\n", - " Nitrofurantoin\n", - " 2\n", + " JC1000129\n", + " 131354606122\n", + " 877003103\n", + " 2023-04-24 01:28:00+00:00\n", + " 2023-04-26 01:57:00+00:00\n", + " Inpatient\n", + " 2023-04-23 23:14:00+00:00\n", + " CEFEPIME 2 GRAM/20 ML IV PUSH\n", + " 876966020\n", + " Given\n", + " Cefepime\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 4\n", + " <NA>\n", " \n", " \n", " ...\n", @@ -5011,118 +3720,407 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 32146\n", - " JC999190\n", - " 131363310674\n", - " 908354797\n", - " 2023-10-19 09:32:00+00:00\n", - " 2023-10-22 17:36:00+00:00\n", - " Amoxicillin/Clavulanic Acid\n", + " 705129\n", + " JC999841\n", + " 131042520339\n", + " 447106081\n", + " 2014-10-10 06:41:00+00:00\n", + " 2014-10-12 16:01:00+00:00\n", + " Inpatient\n", + " 2014-10-10 06:31:00+00:00\n", + " NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS\n", + " 447105727\n", + " Given\n", + " Nitrofurantoin\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", " 2\n", + " <NA>\n", " \n", " \n", - " 32147\n", - " JC999374\n", - " 131024874435\n", - " 420600992\n", - " 2013-05-31 15:31:00+00:00\n", - " 2013-06-02 16:08:00+00:00\n", - " Ciprofloxacin\n", + " 705130\n", + " JC999842\n", + " 131192863784\n", + " 500208763\n", + " 2016-07-16 14:51:00+00:00\n", + " 2016-07-18 16:13:00+00:00\n", + " Inpatient\n", + " 2016-07-16 18:31:00+00:00\n", + " CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS\n", + " 500216262\n", + " Given\n", + " Ceftriaxone\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", " 3\n", + " <NA>\n", " \n", " \n", - " 32148\n", - " JC999590\n", - " 131022787414\n", - " 414244926\n", - " 2013-02-04 01:57:00+00:00\n", - " 2013-02-06 07:08:00+00:00\n", - " Aztreonam\n", - " 6\n", + " 705131\n", + " JC999842\n", + " 131192863784\n", + " 500208763\n", + " 2016-07-16 14:51:00+00:00\n", + " 2016-07-18 16:13:00+00:00\n", + " Inpatient\n", + " 2016-07-16 19:35:00+00:00\n", + " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", + " 500216263\n", + " Given\n", + " Metronidazole\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", " \n", " \n", - " 32149\n", - " JC999590\n", - " 131022787414\n", - " 414244926\n", - " 2013-02-04 01:57:00+00:00\n", - " 2013-02-06 07:08:00+00:00\n", - " Levofloxacin\n", - " 3\n", + " 705132\n", + " JC999842\n", + " 131192863784\n", + " 500208763\n", + " 2016-07-16 14:51:00+00:00\n", + " 2016-07-18 16:13:00+00:00\n", + " Inpatient\n", + " 2016-07-17 16:29:00+00:00\n", + " SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS\n", + " 500183117\n", + " Given\n", + " Trimethoprim/Sulfamethoxazole\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", " \n", " \n", - " 32150\n", - " JC999590\n", - " 131022787414\n", - " 414244926\n", - " 2013-02-04 01:57:00+00:00\n", - " 2013-02-06 07:08:00+00:00\n", - " Vancomycin\n", - " 5\n", + " 705133\n", + " JC999925\n", + " 131107270857\n", + " 471989931\n", + " 2015-08-09 09:12:00+00:00\n", + " 2015-08-11 14:59:00+00:00\n", + " Inpatient\n", + " 2015-08-10 01:59:00+00:00\n", + " SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS\n", + " 472111321\n", + " Given\n", + " Trimethoprim/Sulfamethoxazole\n", + " URINE\n", + " 0\n", + " None\n", + " None\n", + " None\n", + " original\n", + " None\n", + " 2\n", + " <NA>\n", " \n", " \n", "\n", - "

32151 rows × 7 columns

\n", + "

696424 rows × 20 columns

\n", "" ], "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000129 131359337847 894465321 \n", - "1 JC1000129 131359337847 894465321 \n", - "2 JC1000159 131233687107 528101351 \n", - "3 JC1000159 131233687107 528101351 \n", - "4 JC1000441 131016140612 392035082 \n", - "... ... ... ... \n", - "32146 JC999190 131363310674 908354797 \n", - "32147 JC999374 131024874435 420600992 \n", - "32148 JC999590 131022787414 414244926 \n", - "32149 JC999590 131022787414 414244926 \n", - "32150 JC999590 131022787414 414244926 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc \\\n", - "0 2023-07-12 23:05:00+00:00 2023-07-17 23:46:00+00:00 \n", - "1 2023-07-12 23:05:00+00:00 2023-07-17 23:46:00+00:00 \n", - "2 2017-06-25 18:22:00+00:00 2017-06-27 19:56:00+00:00 \n", - "3 2017-06-25 18:22:00+00:00 2017-06-27 19:56:00+00:00 \n", - "4 2011-11-10 22:20:00+00:00 2011-11-13 05:38:00+00:00 \n", - "... ... ... \n", - "32146 2023-10-19 09:32:00+00:00 2023-10-22 17:36:00+00:00 \n", - "32147 2013-05-31 15:31:00+00:00 2013-06-02 16:08:00+00:00 \n", - "32148 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32149 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32150 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "\n", - " final_antibiotic presciribed_antibiotic_rank \n", - "0 Ceftriaxone 3 \n", - "1 Ertapenem 5 \n", - "2 Ceftriaxone 3 \n", - "3 Ciprofloxacin 3 \n", - "4 Nitrofurantoin 2 \n", - "... ... ... \n", - "32146 Amoxicillin/Clavulanic Acid 2 \n", - "32147 Ciprofloxacin 3 \n", - "32148 Aztreonam 6 \n", - "32149 Levofloxacin 3 \n", - "32150 Vancomycin 5 \n", - "\n", - "[32151 rows x 7 columns]" + " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", + "0 JC1000063 131011127694 373759075 \n", + "1 JC1000063 131011127694 373759075 \n", + "2 JC1000063 131011127694 373759075 \n", + "3 JC1000063 131011127694 373759075 \n", + "4 JC1000129 131354606122 877003103 \n", + "... ... ... ... \n", + "705129 JC999841 131042520339 447106081 \n", + "705130 JC999842 131192863784 500208763 \n", + "705131 JC999842 131192863784 500208763 \n", + "705132 JC999842 131192863784 500208763 \n", + "705133 JC999925 131107270857 471989931 \n", + "\n", + " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", + "0 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", + "1 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", + "2 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", + "3 2010-09-30 16:47:00+00:00 2010-10-02 14:53:00+00:00 Inpatient \n", + "4 2023-04-24 01:28:00+00:00 2023-04-26 01:57:00+00:00 Inpatient \n", + "... ... ... ... \n", + "705129 2014-10-10 06:41:00+00:00 2014-10-12 16:01:00+00:00 Inpatient \n", + "705130 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "705131 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "705132 2016-07-16 14:51:00+00:00 2016-07-18 16:13:00+00:00 Inpatient \n", + "705133 2015-08-09 09:12:00+00:00 2015-08-11 14:59:00+00:00 Inpatient \n", + "\n", + " medication_time \\\n", + "0 2010-10-01 00:30:00+00:00 \n", + "1 2010-10-02 10:40:34+00:00 \n", + "2 2010-10-02 11:58:28+00:00 \n", + "3 2010-10-02 13:47:49+00:00 \n", + "4 2023-04-23 23:14:00+00:00 \n", + "... ... \n", + "705129 2014-10-10 06:31:00+00:00 \n", + "705130 2016-07-16 18:31:00+00:00 \n", + "705131 2016-07-16 19:35:00+00:00 \n", + "705132 2016-07-17 16:29:00+00:00 \n", + "705133 2015-08-10 01:59:00+00:00 \n", + "\n", + " medication_name order_med_id_coded \\\n", + "0 DOXYCYCLINE HYCLATE 100 MG PO CAPS 373783716 \n", + "1 AMPICILLIN 2 GM IVPB 373855197 \n", + "2 GENTAMICIN (CUSTOM DOSE) IVPB 373855357 \n", + "3 CLINDAMYCIN IN D5W 900 MG/50 ML IV PGBK 373855382 \n", + "4 CEFEPIME 2 GRAM/20 ML IV PUSH 876966020 \n", + "... ... ... \n", + "705129 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 447105727 \n", + "705130 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 500216262 \n", + "705131 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 500216263 \n", + "705132 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 500183117 \n", + "705133 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 472111321 \n", + "\n", + " medication_action final_antibiotic culture_description \\\n", + "0 Given Doxycycline URINE \n", + "1 Given Ampicillin URINE \n", + "2 Given Gentamicin URINE \n", + "3 Given Clindamycin URINE \n", + "4 Given Cefepime URINE \n", + "... ... ... ... \n", + "705129 Given Nitrofurantoin URINE \n", + "705130 Given Ceftriaxone URINE \n", + "705131 Given Metronidazole URINE \n", + "705132 Given Trimethoprim/Sulfamethoxazole URINE \n", + "705133 Given Trimethoprim/Sulfamethoxazole URINE \n", + "\n", + " was_positive organism antibiotic susceptibility susceptibility_source \\\n", + "0 0 None None None original \n", + "1 0 None None None original \n", + "2 0 None None None original \n", + "3 0 None None None original \n", + "4 0 None None None original \n", + "... ... ... ... ... ... \n", + "705129 0 None None None original \n", + "705130 0 None None None original \n", + "705131 0 None None None original \n", + "705132 0 None None None original \n", + "705133 0 None None None original \n", + "\n", + " matched_organism presciribed_antibiotic_rank tested_antibiotic_rank \n", + "0 None 2 \n", + "1 None 1 \n", + "2 None 2 \n", + "3 None 2 \n", + "4 None 4 \n", + "... ... ... ... \n", + "705129 None 2 \n", + "705130 None 3 \n", + "705131 None 2 \n", + "705132 None 2 \n", + "705133 None 2 \n", + "\n", + "[696424 rows x 20 columns]" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with_tested_and_prescribed_abx_rank_df" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "73832" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(with_tested_and_prescribed_abx_rank_df.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "42116" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(negative_cohort.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "31716" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(positive_cohort.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "73832" ] }, - "execution_count": 379, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "(positive_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"]))[\"presciribed_antibiotic_rank\"].min().reset_index()" + "42116 + 31716" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_antibiotic_appropriateness(group):\n", + " # Get all tested antibiotics with their susceptibility and ranking\n", + " tested_abx = group[['antibiotic', 'susceptibility', 'tested_antibiotic_rank']].drop_duplicates()\n", + " \n", + " # Get the prescribed antibiotic\n", + " prescribed_abx = group['final_antibiotic'].iloc[0]\n", + " prescribed_rank = group['presciribed_antibiotic_rank'].iloc[0]\n", + " \n", + " # Scenario 1: Appropriate (susceptible and minimal rank)\n", + " susceptible_tested = tested_abx[tested_abx['susceptibility'] == 'Susceptible']\n", + " min_rank = susceptible_tested['tested_antibiotic_rank'].min()\n", + " try:\n", + " min_tested_susceptible_abx = susceptible_tested[susceptible_tested['tested_antibiotic_rank'] == min_rank]['antibiotic'].iloc[0]\n", + " except IndexError:\n", + " min_tested_susceptible_abx = None\n", + " if not susceptible_tested.empty:\n", + " # min_rank = susceptible_tested['tested_antibiotic_rank'].min()\n", + " if prescribed_abx in susceptible_tested['antibiotic'].values:\n", + " if prescribed_rank == min_rank:\n", + " return pd.Series({\n", + " 'scenario': 'appropriate',\n", + " 'ranking_diff': 0,\n", + " 'min_susceptible_test_rank': min_rank,\n", + " 'min_tested_susceptible_abx': prescribed_abx,\n", + " 'prescribed_rank': prescribed_rank\n", + " })\n", + " \n", + " # Scenario 2: Too broad (susceptible but not minimal rank)\n", + " else:\n", + " return pd.Series({\n", + " 'scenario': 'too_broad',\n", + " 'ranking_diff': prescribed_rank - min_rank,\n", + " 'min_susceptible_test_rank': min_rank,\n", + " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", + " 'prescribed_rank': prescribed_rank\n", + " })\n", + " \n", + " # Scenario 3: Resistant (non-susceptible)\n", + " if prescribed_abx in group['antibiotic'].values:\n", + " prescribed_susceptibility = group[group['antibiotic'] == prescribed_abx]['susceptibility'].iloc[0]\n", + " \n", + " if prescribed_susceptibility != 'Susceptible':\n", + " return pd.Series({\n", + " 'scenario': 'resistant',\n", + " 'ranking_diff': \"N/A\",\n", + " 'min_susceptible_test_rank': susceptible_tested['tested_antibiotic_rank'].min() if not susceptible_tested.empty else None,\n", + " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", + " 'prescribed_rank': prescribed_rank\n", + " })\n", + " \n", + " # Scenario 4: Not performed\n", + " return pd.Series({\n", + " 'scenario': 'not_performed',\n", + " 'ranking_diff': \"N/A\",\n", + " 'min_susceptible_test_rank': susceptible_tested['tested_antibiotic_rank'].min() if not susceptible_tested.empty else None,\n", + " 'min_tested_susceptible_abx': min_tested_susceptible_abx,\n", + " 'prescribed_rank': prescribed_rank\n", + " })\n", + "\n", + "# Apply to each group\n", + "results = positive_cohort.groupby([\n", + " \"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"\n", + "]).apply(evaluate_antibiotic_appropriateness).reset_index()\n", + "\n", + "# Merge results back with original data\n", + "final_cohort_with_evaluation = positive_cohort.merge(\n", + " results,\n", + " on=[\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]\n", + ")\n", + "final_cohort_with_evaluation.drop(columns = ['ordering_mode', 'culture_description',\"order_med_id_coded\", \"was_positive\"], inplace=True)" ] }, { "cell_type": "code", - "execution_count": 378, + "execution_count": 74, "metadata": {}, "outputs": [ { @@ -5152,7 +4150,11 @@ " order_time_jittered_utc\n", " result_time_jittered_utc\n", " final_antibiotic\n", - " presciribed_antibiotic_rank\n", + " scenario\n", + " ranking_diff\n", + " min_susceptible_test_rank\n", + " min_tested_susceptible_abx\n", + " prescribed_rank\n", " \n", " \n", " \n", @@ -5164,6 +4166,10 @@ " 2023-07-12 23:05:00+00:00\n", " 2023-07-17 23:46:00+00:00\n", " Ceftriaxone\n", + " too_broad\n", + " 2\n", + " 1.0\n", + " Cefazolin\n", " 3\n", " \n", " \n", @@ -5174,6 +4180,10 @@ " 2023-07-12 23:05:00+00:00\n", " 2023-07-17 23:46:00+00:00\n", " Ertapenem\n", + " too_broad\n", + " 4\n", + " 1.0\n", + " Cefazolin\n", " 5\n", " \n", " \n", @@ -5184,6 +4194,10 @@ " 2017-06-25 18:22:00+00:00\n", " 2017-06-27 19:56:00+00:00\n", " Ceftriaxone\n", + " too_broad\n", + " 2\n", + " 1.0\n", + " Cefazolin\n", " 3\n", " \n", " \n", @@ -5194,6 +4208,10 @@ " 2017-06-25 18:22:00+00:00\n", " 2017-06-27 19:56:00+00:00\n", " Ciprofloxacin\n", + " too_broad\n", + " 2\n", + " 1.0\n", + " Cefazolin\n", " 3\n", " \n", " \n", @@ -5204,6 +4222,10 @@ " 2011-11-10 22:20:00+00:00\n", " 2011-11-13 05:38:00+00:00\n", " Nitrofurantoin\n", + " too_broad\n", + " 1\n", + " 1.0\n", + " Cefazolin\n", " 2\n", " \n", " \n", @@ -5215,60 +4237,84 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 32146\n", + " 31711\n", " JC999190\n", " 131363310674\n", " 908354797\n", " 2023-10-19 09:32:00+00:00\n", " 2023-10-22 17:36:00+00:00\n", " Amoxicillin/Clavulanic Acid\n", + " too_broad\n", + " 1\n", + " 1.0\n", + " Ampicillin\n", " 2\n", " \n", " \n", - " 32147\n", + " 31712\n", " JC999374\n", " 131024874435\n", " 420600992\n", " 2013-05-31 15:31:00+00:00\n", " 2013-06-02 16:08:00+00:00\n", " Ciprofloxacin\n", + " too_broad\n", + " 1\n", + " 2.0\n", + " Amikacin\n", " 3\n", " \n", " \n", - " 32148\n", + " 31713\n", " JC999590\n", " 131022787414\n", " 414244926\n", " 2013-02-04 01:57:00+00:00\n", " 2013-02-06 07:08:00+00:00\n", " Aztreonam\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Ampicillin\n", " 6\n", " \n", " \n", - " 32149\n", + " 31714\n", " JC999590\n", " 131022787414\n", " 414244926\n", " 2013-02-04 01:57:00+00:00\n", " 2013-02-06 07:08:00+00:00\n", " Levofloxacin\n", + " too_broad\n", + " 2\n", + " 1.0\n", + " Ampicillin\n", " 3\n", " \n", " \n", - " 32150\n", + " 31715\n", " JC999590\n", " 131022787414\n", " 414244926\n", " 2013-02-04 01:57:00+00:00\n", " 2013-02-06 07:08:00+00:00\n", " Vancomycin\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Ampicillin\n", " 5\n", " \n", " \n", "\n", - "

32151 rows × 7 columns

\n", + "

31716 rows × 11 columns

\n", "" ], "text/plain": [ @@ -5279,11 +4325,11 @@ "3 JC1000159 131233687107 528101351 \n", "4 JC1000441 131016140612 392035082 \n", "... ... ... ... \n", - "32146 JC999190 131363310674 908354797 \n", - "32147 JC999374 131024874435 420600992 \n", - "32148 JC999590 131022787414 414244926 \n", - "32149 JC999590 131022787414 414244926 \n", - "32150 JC999590 131022787414 414244926 \n", + "31711 JC999190 131363310674 908354797 \n", + "31712 JC999374 131024874435 420600992 \n", + "31713 JC999590 131022787414 414244926 \n", + "31714 JC999590 131022787414 414244926 \n", + "31715 JC999590 131022787414 414244926 \n", "\n", " order_time_jittered_utc result_time_jittered_utc \\\n", "0 2023-07-12 23:05:00+00:00 2023-07-17 23:46:00+00:00 \n", @@ -5292,36 +4338,117 @@ "3 2017-06-25 18:22:00+00:00 2017-06-27 19:56:00+00:00 \n", "4 2011-11-10 22:20:00+00:00 2011-11-13 05:38:00+00:00 \n", "... ... ... \n", - "32146 2023-10-19 09:32:00+00:00 2023-10-22 17:36:00+00:00 \n", - "32147 2013-05-31 15:31:00+00:00 2013-06-02 16:08:00+00:00 \n", - "32148 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32149 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", - "32150 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", + "31711 2023-10-19 09:32:00+00:00 2023-10-22 17:36:00+00:00 \n", + "31712 2013-05-31 15:31:00+00:00 2013-06-02 16:08:00+00:00 \n", + "31713 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", + "31714 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", + "31715 2013-02-04 01:57:00+00:00 2013-02-06 07:08:00+00:00 \n", + "\n", + " final_antibiotic scenario ranking_diff \\\n", + "0 Ceftriaxone too_broad 2 \n", + "1 Ertapenem too_broad 4 \n", + "2 Ceftriaxone too_broad 2 \n", + "3 Ciprofloxacin too_broad 2 \n", + "4 Nitrofurantoin too_broad 1 \n", + "... ... ... ... \n", + "31711 Amoxicillin/Clavulanic Acid too_broad 1 \n", + "31712 Ciprofloxacin too_broad 1 \n", + "31713 Aztreonam not_performed N/A \n", + "31714 Levofloxacin too_broad 2 \n", + "31715 Vancomycin not_performed N/A \n", "\n", - " final_antibiotic presciribed_antibiotic_rank \n", - "0 Ceftriaxone 3 \n", - "1 Ertapenem 5 \n", - "2 Ceftriaxone 3 \n", - "3 Ciprofloxacin 3 \n", - "4 Nitrofurantoin 2 \n", - "... ... ... \n", - "32146 Amoxicillin/Clavulanic Acid 2 \n", - "32147 Ciprofloxacin 3 \n", - "32148 Aztreonam 6 \n", - "32149 Levofloxacin 3 \n", - "32150 Vancomycin 5 \n", + " min_susceptible_test_rank min_tested_susceptible_abx prescribed_rank \n", + "0 1.0 Cefazolin 3 \n", + "1 1.0 Cefazolin 5 \n", + "2 1.0 Cefazolin 3 \n", + "3 1.0 Cefazolin 3 \n", + "4 1.0 Cefazolin 2 \n", + "... ... ... ... \n", + "31711 1.0 Ampicillin 2 \n", + "31712 2.0 Amikacin 3 \n", + "31713 1.0 Ampicillin 6 \n", + "31714 1.0 Ampicillin 3 \n", + "31715 1.0 Ampicillin 5 \n", "\n", - "[32151 rows x 7 columns]" + "[31716 rows x 11 columns]" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "scenario\n", + "too_broad 16542\n", + "not_performed 8757\n", + "resistant 5408\n", + "appropriate 1009\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[\"scenario\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "31716" ] }, - "execution_count": 378, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "(positive_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"]))[\"presciribed_antibiotic_rank\"].max().reset_index()" + "16542 +8757 +5408 +1009" + ] + }, + { + "cell_type": "code", + "execution_count": 371, + "metadata": {}, + "outputs": [], + "source": [ + "# Filter out rows where scenario is 'not_performed'\n", + "not_performed_df = final_cohort_with_evaluation[final_cohort_with_evaluation[\"scenario\"] == \"not_performed\"]\n", + "\n", + "# Select only the columns you care about and drop duplicates to get unique pairs\n", + "unique_pairs = not_performed_df[[\"organism\",\"final_antibiotic\"]].drop_duplicates()\n", + "\n", + "# Count occurrences of each antibiotic-organism pair\n", + "pair_counts = not_performed_df.drop_duplicates(subset= [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\", \"organism\"]).groupby([\"final_antibiotic\", \"organism\"]).size().reset_index(name=\"count\").sort_values(by=\"count\", ascending=False)\n", + "\n", + "# Display the result\n", + "\n", + "# # Display the result\n", + "# not_performed_df.to_csv('../csv_folder/not_performed_df.csv', index=False)\n", + "# unique_pairs.to_csv('../csv_folder/unique_pairs.csv', index=False)\n", + "# pair_counts.to_csv('../csv_folder/unique_pair_counts.csv', index=False)" ] }, { @@ -5436,16 +4563,19 @@ }, { "cell_type": "code", - "execution_count": 290, + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "not_performed_df_adults_ed = final_cohort_with_evaluation[final_cohort_with_evaluation[\"scenario\"] == \"not_performed\"][[\"final_antibiotic\", \"organism\",\"antibiotic\", \"susceptibility\",\"susceptibility_source\", \"min_tested_susceptible_abx\"]]\n", + "# not_performed_df_adults_ed.to_csv('../csv_folder/not_performed_df_adults_ed.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Randomly picked group: ('JC732372', 131243323769, 546850574, Timestamp('2018-01-29 21:05:00+0000', tz='UTC'), Timestamp('2018-01-31 17:02:00+0000', tz='UTC'), 'Metronidazole')\n" - ] - }, { "data": { "text/html": [ @@ -5467,765 +4597,817 @@ " \n", " \n", " \n", - " anon_id\n", - " pat_enc_csn_id_coded\n", - " order_proc_id_coded\n", - " order_time_jittered_utc\n", - " result_time_jittered_utc\n", - " medication_time\n", - " medication_name\n", - " order_med_id_coded\n", " final_antibiotic\n", - " was_positive\n", " organism\n", " antibiotic\n", " susceptibility\n", " susceptibility_source\n", - " matched_organism\n", - " presciribed_antibiotic_rank\n", - " tested_antibiotic_rank\n", - " scenario\n", - " ranking_diff\n", - " min_susceptible_test_rank\n", + " min_tested_susceptible_abx\n", " \n", " \n", " \n", " \n", - " 568558\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", - " Metronidazole\n", - " 1\n", + " 172\n", + " Fosfomycin\n", " ESCHERICHIA COLI\n", - " Ceftazidime\n", - " Resistant\n", + " Levofloxacin\n", + " Intermediate\n", " original\n", + " Cefazolin\n", + " \n", + " \n", + " 173\n", + " Fosfomycin\n", " ESCHERICHIA COLI\n", - " 2\n", - " 3\n", - " not_performed\n", - " NaN\n", - " 2.0\n", + " Trimethoprim/Sulfamethoxazole\n", + " Resistant\n", + " original\n", + " Cefazolin\n", " \n", " \n", - " 568559\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", - " Metronidazole\n", - " 1\n", + " 174\n", + " Fosfomycin\n", " ESCHERICHIA COLI\n", - " Ertapenem\n", + " Tobramycin\n", " Susceptible\n", " original\n", + " Cefazolin\n", + " \n", + " \n", + " 175\n", + " Fosfomycin\n", " ESCHERICHIA COLI\n", - " 2\n", - " 5\n", - " not_performed\n", - " NaN\n", - " 2.0\n", + " Ampicillin\n", + " Resistant\n", + " original\n", + " Cefazolin\n", " \n", " \n", - " 568560\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", - " Metronidazole\n", - " 1\n", + " 176\n", + " Fosfomycin\n", " ESCHERICHIA COLI\n", + " Meropenem\n", + " Susceptible\n", + " original\n", + " Cefazolin\n", + " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 654303\n", + " Vancomycin\n", + " PROTEUS MIRABILIS\n", " Trimethoprim/Sulfamethoxazole\n", " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 2\n", - " 2\n", - " not_performed\n", - " NaN\n", - " 2.0\n", + " Ampicillin\n", " \n", " \n", - " 568561\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", - " Metronidazole\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Amoxicillin/Clavulanic Acid\n", - " Intermediate\n", + " 654304\n", + " Vancomycin\n", + " PROTEUS MIRABILIS\n", + " Ampicillin\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 2\n", - " 2\n", - " not_performed\n", - " NaN\n", - " 2.0\n", + " Ampicillin\n", " \n", " \n", - " 568562\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", - " Metronidazole\n", - " 1\n", - " ESCHERICHIA COLI\n", + " 654305\n", + " Vancomycin\n", + " PROTEUS MIRABILIS\n", + " Cefazolin\n", + " Susceptible\n", + " original\n", + " Ampicillin\n", + " \n", + " \n", + " 654306\n", + " Vancomycin\n", + " PROTEUS MIRABILIS\n", " Ciprofloxacin\n", - " Resistant\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 2\n", - " 3\n", - " not_performed\n", - " NaN\n", - " 2.0\n", + " Ampicillin\n", " \n", " \n", - " 568563\n", - " JC732372\n", - " 131243323769\n", - " 546850574\n", - " 2018-01-29 21:05:00+00:00\n", - " 2018-01-31 17:02:00+00:00\n", - " 2018-01-30 00:36:00+00:00\n", - " METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...\n", - " 546853819\n", + " 654307\n", + " Vancomycin\n", + " PROTEUS MIRABILIS\n", + " Doxycycline\n", + " Resistant\n", + " inherent_resistance\n", + " Ampicillin\n", + " \n", + " \n", + "\n", + "

154678 rows × 6 columns

\n", + "" + ], + "text/plain": [ + " final_antibiotic organism antibiotic \\\n", + "172 Fosfomycin ESCHERICHIA COLI Levofloxacin \n", + "173 Fosfomycin ESCHERICHIA COLI Trimethoprim/Sulfamethoxazole \n", + "174 Fosfomycin ESCHERICHIA COLI Tobramycin \n", + "175 Fosfomycin ESCHERICHIA COLI Ampicillin \n", + "176 Fosfomycin ESCHERICHIA COLI Meropenem \n", + "... ... ... ... \n", + "654303 Vancomycin PROTEUS MIRABILIS Trimethoprim/Sulfamethoxazole \n", + "654304 Vancomycin PROTEUS MIRABILIS Ampicillin \n", + "654305 Vancomycin PROTEUS MIRABILIS Cefazolin \n", + "654306 Vancomycin PROTEUS MIRABILIS Ciprofloxacin \n", + "654307 Vancomycin PROTEUS MIRABILIS Doxycycline \n", + "\n", + " susceptibility susceptibility_source min_tested_susceptible_abx \n", + "172 Intermediate original Cefazolin \n", + "173 Resistant original Cefazolin \n", + "174 Susceptible original Cefazolin \n", + "175 Resistant original Cefazolin \n", + "176 Susceptible original Cefazolin \n", + "... ... ... ... \n", + "654303 Susceptible original Ampicillin \n", + "654304 Susceptible original Ampicillin \n", + "654305 Susceptible original Ampicillin \n", + "654306 Susceptible original Ampicillin \n", + "654307 Resistant inherent_resistance Ampicillin \n", + "\n", + "[154678 rows x 6 columns]" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_performed_df_adults_ed" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Randomly picked group: ('JC2955552', 131319413576, 752390538, Timestamp('2021-10-01 22:38:00+0000', tz='UTC'), Timestamp('2021-10-04 16:01:00+0000', tz='UTC'), 'Metronidazole')\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcmedication_timemedication_namemedication_actionfinal_antibioticorganism...susceptibilitysusceptibility_sourcematched_organismpresciribed_antibiotic_ranktested_antibiotic_rankscenarioranking_diffmin_susceptible_test_rankmin_tested_susceptible_abxprescribed_rank
317784JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIMeropenemKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA225not_performedNaN2.0N/A1.0Cefazolin2
568564JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317785JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLITobramycinKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA225not_performedNaN2.0N/A1.0Cefazolin2
568565JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317786JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIAmikacinKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLI2KLEBSIELLA25not_performedNaN2.0N/A1.0Cefazolin2
568566JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317787JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIPiperacillin/TazobactamKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA243not_performedNaN2.0N/A1.0Cefazolin2
568567JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317788JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefoxitinKLEBSIELLA PNEUMONIAE...ResistantoriginalESCHERICHIA COLIKLEBSIELLA231not_performedNaN2.0N/A1.0Cefazolin2
568568JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317789JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIAmpicillinResistantKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA221not_performedNaN2.0N/A1.0Cefazolin2
568569JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317790JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefazolinResistantKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA215not_performedNaN2.0N/A1.0Cefazolin2
568570JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317791JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICeftriaxoneResistantKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA223not_performedNaN2.0N/A1.0Cefazolin2
568571JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317792JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLINitrofurantoinKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA22not_performedNaN2.0N/A1.0Cefazolin2
568572JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317793JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLILevofloxacinResistantKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLIKLEBSIELLA23not_performedNaN2.0N/A1.0Cefazolin2
568573JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317794JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIGentamicinKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLI2KLEBSIELLA21not_performedNaN2.0N/A1.0Cefazolin2
568574JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317795JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLITetracyclineKLEBSIELLA PNEUMONIAE...SusceptibleoriginalESCHERICHIA COLI2KLEBSIELLA24not_performedNaN2.0N/A1.0Cefazolin2
568575JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317796JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIVancomycinResistantinherent_resistanceESCHERICHIA COLIKLEBSIELLA PNEUMONIAE...SusceptibleoriginalKLEBSIELLA25not_performedNaN2.0N/A1.0Cefazolin2
568576JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317797JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefepimeResistantimpliedESCHERICHIA COLIKLEBSIELLA PNEUMONIAE...SusceptibleoriginalKLEBSIELLA243not_performedNaN2.0N/A1.0Cefazolin2
568577JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317798JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefotetanResistantimpliedESCHERICHIA COLIKLEBSIELLA PNEUMONIAE...SusceptibleoriginalKLEBSIELLA23not_performedNaN2.0N/A1.0Cefazolin2
568578JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317799JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefpodoximeResistantimpliedESCHERICHIA COLIKLEBSIELLA PNEUMONIAE...SusceptibleoriginalKLEBSIELLA223not_performedNaN2.0N/A1.0Cefazolin2
568579JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317800JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLICefuroximeResistantimpliedESCHERICHIA COLIKLEBSIELLA PNEUMONIAE...IntermediateoriginalKLEBSIELLA223not_performedNaN2.0N/A1.0Cefazolin2
568580JC7323721312433237695468505742018-01-29 21:05:00+00:002018-01-31 17:02:00+00:002018-01-30 00:36:00+00:00METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I...546853819317801JC29555521313194135767523905382021-10-01 22:38:00+00:002021-10-04 16:01:00+00:002021-10-03 20:52:00+00:00METRONIDAZOLE 500 MG PO TABSGivenMetronidazole1ESCHERICHIA COLIDoxycyclineKLEBSIELLA PNEUMONIAE...SusceptibleimpliedESCHERICHIA COLI2originalKLEBSIELLA23not_performedNaN2.0N/A1.0Cefazolin2
\n", + "

18 rows × 21 columns

\n", "
" ], "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "568558 JC732372 131243323769 546850574 \n", - "568559 JC732372 131243323769 546850574 \n", - "568560 JC732372 131243323769 546850574 \n", - "568561 JC732372 131243323769 546850574 \n", - "568562 JC732372 131243323769 546850574 \n", - "568563 JC732372 131243323769 546850574 \n", - "568564 JC732372 131243323769 546850574 \n", - "568565 JC732372 131243323769 546850574 \n", - "568566 JC732372 131243323769 546850574 \n", - "568567 JC732372 131243323769 546850574 \n", - "568568 JC732372 131243323769 546850574 \n", - "568569 JC732372 131243323769 546850574 \n", - "568570 JC732372 131243323769 546850574 \n", - "568571 JC732372 131243323769 546850574 \n", - "568572 JC732372 131243323769 546850574 \n", - "568573 JC732372 131243323769 546850574 \n", - "568574 JC732372 131243323769 546850574 \n", - "568575 JC732372 131243323769 546850574 \n", - "568576 JC732372 131243323769 546850574 \n", - "568577 JC732372 131243323769 546850574 \n", - "568578 JC732372 131243323769 546850574 \n", - "568579 JC732372 131243323769 546850574 \n", - "568580 JC732372 131243323769 546850574 \n", + " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", + "317784 JC2955552 131319413576 752390538 \n", + "317785 JC2955552 131319413576 752390538 \n", + "317786 JC2955552 131319413576 752390538 \n", + "317787 JC2955552 131319413576 752390538 \n", + "317788 JC2955552 131319413576 752390538 \n", + "317789 JC2955552 131319413576 752390538 \n", + "317790 JC2955552 131319413576 752390538 \n", + "317791 JC2955552 131319413576 752390538 \n", + "317792 JC2955552 131319413576 752390538 \n", + "317793 JC2955552 131319413576 752390538 \n", + "317794 JC2955552 131319413576 752390538 \n", + "317795 JC2955552 131319413576 752390538 \n", + "317796 JC2955552 131319413576 752390538 \n", + "317797 JC2955552 131319413576 752390538 \n", + "317798 JC2955552 131319413576 752390538 \n", + "317799 JC2955552 131319413576 752390538 \n", + "317800 JC2955552 131319413576 752390538 \n", + "317801 JC2955552 131319413576 752390538 \n", "\n", " order_time_jittered_utc result_time_jittered_utc \\\n", - "568558 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568559 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568560 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568561 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568562 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568563 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568564 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568565 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568566 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568567 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568568 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568569 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568570 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568571 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568572 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568573 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568574 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568575 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568576 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568577 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568578 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568579 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", - "568580 2018-01-29 21:05:00+00:00 2018-01-31 17:02:00+00:00 \n", + "317784 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317785 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317786 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317787 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317788 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317789 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317790 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317791 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317792 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317793 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317794 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317795 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317796 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317797 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317798 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317799 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317800 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", + "317801 2021-10-01 22:38:00+00:00 2021-10-04 16:01:00+00:00 \n", "\n", - " medication_time \\\n", - "568558 2018-01-30 00:36:00+00:00 \n", - "568559 2018-01-30 00:36:00+00:00 \n", - "568560 2018-01-30 00:36:00+00:00 \n", - "568561 2018-01-30 00:36:00+00:00 \n", - "568562 2018-01-30 00:36:00+00:00 \n", - "568563 2018-01-30 00:36:00+00:00 \n", - "568564 2018-01-30 00:36:00+00:00 \n", - "568565 2018-01-30 00:36:00+00:00 \n", - "568566 2018-01-30 00:36:00+00:00 \n", - "568567 2018-01-30 00:36:00+00:00 \n", - "568568 2018-01-30 00:36:00+00:00 \n", - "568569 2018-01-30 00:36:00+00:00 \n", - "568570 2018-01-30 00:36:00+00:00 \n", - "568571 2018-01-30 00:36:00+00:00 \n", - "568572 2018-01-30 00:36:00+00:00 \n", - "568573 2018-01-30 00:36:00+00:00 \n", - "568574 2018-01-30 00:36:00+00:00 \n", - "568575 2018-01-30 00:36:00+00:00 \n", - "568576 2018-01-30 00:36:00+00:00 \n", - "568577 2018-01-30 00:36:00+00:00 \n", - "568578 2018-01-30 00:36:00+00:00 \n", - "568579 2018-01-30 00:36:00+00:00 \n", - "568580 2018-01-30 00:36:00+00:00 \n", + " medication_time medication_name \\\n", + "317784 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317785 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317786 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317787 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317788 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317789 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317790 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317791 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317792 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317793 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317794 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317795 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317796 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317797 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317798 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317799 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317800 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", + "317801 2021-10-03 20:52:00+00:00 METRONIDAZOLE 500 MG PO TABS \n", "\n", - " medication_name order_med_id_coded \\\n", - "568558 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568559 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568560 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568561 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568562 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568563 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568564 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568565 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568566 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568567 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568568 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568569 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568570 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568571 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568572 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568573 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568574 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568575 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568576 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568577 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568578 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568579 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", - "568580 METRONIDAZOLE IN NACL (ISO-OS) 500 MG/100 ML I... 546853819 \n", + " medication_action final_antibiotic organism ... \\\n", + "317784 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317785 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317786 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317787 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317788 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317789 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317790 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317791 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317792 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317793 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317794 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317795 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317796 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317797 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317798 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317799 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317800 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", + "317801 Given Metronidazole KLEBSIELLA PNEUMONIAE ... \n", "\n", - " final_antibiotic was_positive organism \\\n", - "568558 Metronidazole 1 ESCHERICHIA COLI \n", - "568559 Metronidazole 1 ESCHERICHIA COLI \n", - "568560 Metronidazole 1 ESCHERICHIA COLI \n", - "568561 Metronidazole 1 ESCHERICHIA COLI \n", - "568562 Metronidazole 1 ESCHERICHIA COLI \n", - "568563 Metronidazole 1 ESCHERICHIA COLI \n", - "568564 Metronidazole 1 ESCHERICHIA COLI \n", - "568565 Metronidazole 1 ESCHERICHIA COLI \n", - "568566 Metronidazole 1 ESCHERICHIA COLI \n", - "568567 Metronidazole 1 ESCHERICHIA COLI \n", - "568568 Metronidazole 1 ESCHERICHIA COLI \n", - "568569 Metronidazole 1 ESCHERICHIA COLI \n", - "568570 Metronidazole 1 ESCHERICHIA COLI \n", - "568571 Metronidazole 1 ESCHERICHIA COLI \n", - "568572 Metronidazole 1 ESCHERICHIA COLI \n", - "568573 Metronidazole 1 ESCHERICHIA COLI \n", - "568574 Metronidazole 1 ESCHERICHIA COLI \n", - "568575 Metronidazole 1 ESCHERICHIA COLI \n", - "568576 Metronidazole 1 ESCHERICHIA COLI \n", - "568577 Metronidazole 1 ESCHERICHIA COLI \n", - "568578 Metronidazole 1 ESCHERICHIA COLI \n", - "568579 Metronidazole 1 ESCHERICHIA COLI \n", - "568580 Metronidazole 1 ESCHERICHIA COLI \n", + " susceptibility susceptibility_source matched_organism \\\n", + "317784 Susceptible original KLEBSIELLA \n", + "317785 Susceptible original KLEBSIELLA \n", + "317786 Susceptible original KLEBSIELLA \n", + "317787 Susceptible original KLEBSIELLA \n", + "317788 Resistant original KLEBSIELLA \n", + "317789 Susceptible original KLEBSIELLA \n", + "317790 Susceptible original KLEBSIELLA \n", + "317791 Susceptible original KLEBSIELLA \n", + "317792 Susceptible original KLEBSIELLA \n", + "317793 Susceptible original KLEBSIELLA \n", + "317794 Susceptible original KLEBSIELLA \n", + "317795 Susceptible original KLEBSIELLA \n", + "317796 Susceptible original KLEBSIELLA \n", + "317797 Susceptible original KLEBSIELLA \n", + "317798 Susceptible original KLEBSIELLA \n", + "317799 Susceptible original KLEBSIELLA \n", + "317800 Intermediate original KLEBSIELLA \n", + "317801 Susceptible original KLEBSIELLA \n", "\n", - " antibiotic susceptibility susceptibility_source \\\n", - "568558 Ceftazidime Resistant original \n", - "568559 Ertapenem Susceptible original \n", - "568560 Trimethoprim/Sulfamethoxazole Susceptible original \n", - "568561 Amoxicillin/Clavulanic Acid Intermediate original \n", - "568562 Ciprofloxacin Resistant original \n", - "568563 Meropenem Susceptible original \n", - "568564 Tobramycin Susceptible original \n", - "568565 Amikacin Susceptible original \n", - "568566 Piperacillin/Tazobactam Susceptible original \n", - "568567 Cefoxitin Resistant original \n", - "568568 Ampicillin Resistant original \n", - "568569 Cefazolin Resistant original \n", - "568570 Ceftriaxone Resistant original \n", - "568571 Nitrofurantoin Susceptible original \n", - "568572 Levofloxacin Resistant original \n", - "568573 Gentamicin Susceptible original \n", - "568574 Tetracycline Susceptible original \n", - "568575 Vancomycin Resistant inherent_resistance \n", - "568576 Cefepime Resistant implied \n", - "568577 Cefotetan Resistant implied \n", - "568578 Cefpodoxime Resistant implied \n", - "568579 Cefuroxime Resistant implied \n", - "568580 Doxycycline Susceptible implied \n", + " presciribed_antibiotic_rank tested_antibiotic_rank scenario \\\n", + "317784 2 2 not_performed \n", + "317785 2 2 not_performed \n", + "317786 2 5 not_performed \n", + "317787 2 3 not_performed \n", + "317788 2 1 not_performed \n", + "317789 2 2 not_performed \n", + "317790 2 5 not_performed \n", + "317791 2 2 not_performed \n", + "317792 2 2 not_performed \n", + "317793 2 3 not_performed \n", + "317794 2 1 not_performed \n", + "317795 2 4 not_performed \n", + "317796 2 5 not_performed \n", + "317797 2 3 not_performed \n", + "317798 2 3 not_performed \n", + "317799 2 2 not_performed \n", + "317800 2 2 not_performed \n", + "317801 2 3 not_performed \n", "\n", - " matched_organism presciribed_antibiotic_rank tested_antibiotic_rank \\\n", - "568558 ESCHERICHIA COLI 2 3 \n", - "568559 ESCHERICHIA COLI 2 5 \n", - "568560 ESCHERICHIA COLI 2 2 \n", - "568561 ESCHERICHIA COLI 2 2 \n", - "568562 ESCHERICHIA COLI 2 3 \n", - "568563 ESCHERICHIA COLI 2 5 \n", - "568564 ESCHERICHIA COLI 2 5 \n", - "568565 ESCHERICHIA COLI 2 2 \n", - "568566 ESCHERICHIA COLI 2 4 \n", - "568567 ESCHERICHIA COLI 2 3 \n", - "568568 ESCHERICHIA COLI 2 1 \n", - "568569 ESCHERICHIA COLI 2 1 \n", - "568570 ESCHERICHIA COLI 2 3 \n", - "568571 ESCHERICHIA COLI 2 2 \n", - "568572 ESCHERICHIA COLI 2 3 \n", - "568573 ESCHERICHIA COLI 2 2 \n", - "568574 ESCHERICHIA COLI 2 2 \n", - "568575 ESCHERICHIA COLI 2 5 \n", - "568576 ESCHERICHIA COLI 2 4 \n", - "568577 ESCHERICHIA COLI 2 3 \n", - "568578 ESCHERICHIA COLI 2 3 \n", - "568579 ESCHERICHIA COLI 2 3 \n", - "568580 ESCHERICHIA COLI 2 2 \n", + " ranking_diff min_susceptible_test_rank min_tested_susceptible_abx \\\n", + "317784 N/A 1.0 Cefazolin \n", + "317785 N/A 1.0 Cefazolin \n", + "317786 N/A 1.0 Cefazolin \n", + "317787 N/A 1.0 Cefazolin \n", + "317788 N/A 1.0 Cefazolin \n", + "317789 N/A 1.0 Cefazolin \n", + "317790 N/A 1.0 Cefazolin \n", + "317791 N/A 1.0 Cefazolin \n", + "317792 N/A 1.0 Cefazolin \n", + "317793 N/A 1.0 Cefazolin \n", + "317794 N/A 1.0 Cefazolin \n", + "317795 N/A 1.0 Cefazolin \n", + "317796 N/A 1.0 Cefazolin \n", + "317797 N/A 1.0 Cefazolin \n", + "317798 N/A 1.0 Cefazolin \n", + "317799 N/A 1.0 Cefazolin \n", + "317800 N/A 1.0 Cefazolin \n", + "317801 N/A 1.0 Cefazolin \n", "\n", - " scenario ranking_diff min_susceptible_test_rank \n", - "568558 not_performed NaN 2.0 \n", - "568559 not_performed NaN 2.0 \n", - "568560 not_performed NaN 2.0 \n", - "568561 not_performed NaN 2.0 \n", - "568562 not_performed NaN 2.0 \n", - "568563 not_performed NaN 2.0 \n", - "568564 not_performed NaN 2.0 \n", - "568565 not_performed NaN 2.0 \n", - "568566 not_performed NaN 2.0 \n", - "568567 not_performed NaN 2.0 \n", - "568568 not_performed NaN 2.0 \n", - "568569 not_performed NaN 2.0 \n", - "568570 not_performed NaN 2.0 \n", - "568571 not_performed NaN 2.0 \n", - "568572 not_performed NaN 2.0 \n", - "568573 not_performed NaN 2.0 \n", - "568574 not_performed NaN 2.0 \n", - "568575 not_performed NaN 2.0 \n", - "568576 not_performed NaN 2.0 \n", - "568577 not_performed NaN 2.0 \n", - "568578 not_performed NaN 2.0 \n", - "568579 not_performed NaN 2.0 \n", - "568580 not_performed NaN 2.0 " + " prescribed_rank \n", + "317784 2 \n", + "317785 2 \n", + "317786 2 \n", + "317787 2 \n", + "317788 2 \n", + "317789 2 \n", + "317790 2 \n", + "317791 2 \n", + "317792 2 \n", + "317793 2 \n", + "317794 2 \n", + "317795 2 \n", + "317796 2 \n", + "317797 2 \n", + "317798 2 \n", + "317799 2 \n", + "317800 2 \n", + "317801 2 \n", + "\n", + "[18 rows x 21 columns]" ] }, - "execution_count": 290, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } @@ -6347,22 +5529,22 @@ }, { "cell_type": "code", - "execution_count": 294, + "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ranking_diff\n", - "1.0 4041\n", - "2.0 10244\n", - "3.0 1770\n", - "4.0 441\n", - "5.0 46\n", + "1 4041\n", + "2 10244\n", + "3 1770\n", + "4 441\n", + "5 46\n", "Name: count, dtype: int64" ] }, - "execution_count": 294, + "execution_count": 96, "metadata": {}, "output_type": "execute_result" } @@ -6382,18 +5564,29 @@ }, { "cell_type": "code", - "execution_count": 333, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { - "image/png": "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ooKsGgqZe+65x7ro2rdvn5KTkwu4RoD9Va1aVc8++6z1/8qVKwuwNria6tatq/Xr1+u2226TdLndwHfeeSdX47p48aIkqUSJElmWyaocrj+EFx78+uuv1gnvo48+KknWSe+KFSt08uTJbI1nyZIlat++vUJDQ1WqVClFR0erf//+On78eJbDZrcF8Nw+W+xs0fqnn36SdDmsyY/GF+2iYsWKevfdd63/x44dW4C18e7w4cPq16+f6tatq9KlS6tUqVKKiopSnz59tGvXLp/DXtlY5TfffKMHHnhAVapUUUBAgGrWrKl//vOfOnr06DWYk4KVl+XotGvXLj311FOKiopSqVKlVLp0adWtW1f9+vW7prfZu75JwlMjVZ7aUPj888/VoUMHhYWFyc/Pz+O2+9VXX1nPpPr7+6tChQpq2rSpxo0bp5SUFJ91OnTokCZOnKj7779fERERCgwMVGBgoMLDw/X3v/9dy5Yty9a8nT9/XqNHj1b9+vUVFBSkChUqqHnz5po2bdpVaWT3o48+0qVLl1SsWDH94x//UOPGja1faLITRF/ZJtC+ffvUu3dvRUREyN/fXzfccIM6deqkTZs2eRze4XCoRo0a1v89e/b02dhsTvfnx44dU//+/RUdHa1SpUopNDRUHTp00NKlS3M0X97kdJ1xrputW7e2urVu3TrTPLu2/ZHd1v0zMjI0b948de7cWdWrV1dgYKAqVKig+vXr64knntCyZcvy/Jx1VrLaNq88biclJenVV1/VbbfdprJly3pt92TlypV69NFHVaNGDQUGBqpMmTKqX7++BgwYoF9++cVnnXbv3q1Ro0apXbt21vcUHBysqKgo9ejRw+u6mRM7d+5UlSpV5HA4dMMNN3hsxf/06dMaOHCgbrrpJgUGBqpSpUq69957rcdvsys3+/ItW7ZYy3358uUey9x7771WmYkTJ3os869//UsOh0OVKlVyu63d03Y5f/583XPPPQoNDVVgYKBq166tAQMG6I8//sjR/Gblhx9+0FNPPaUaNWooICBAVapU0UMPPaSNGzd6LN+/f3+rQUXnr9e+NGzYUA6HQ7Vr187Xeru6/fbbrb+PHDnisUxqaqo++eQT9erVSw0aNFBISIhKlCih0NBQxcTE6LXXXsvyOHXlPnXLli16+OGHre2iatWqeuyxx/T999/naX6OHDmim266SQ6HQ8HBwW6BTE7fGHXmzBkNHTpUdevWVVBQkMqWLauWLVvqo48+ylZdFi1apHbt2qlixYrWdca///1vnThxQtK1b9cuMDBQH3zwgbUPfO211zw2opnV8c/btUmrVq2s/ayvY6unRtzT09M1Y8YM61zJ399fFStWVMuWLTV58mSvjYJKmd8ClJiYqH/+85/W+aKn41d+Ts95rI+MjLSOfe3atcvyWO906tQpjRw5Us2bN1elSpXk7++vatWqqXnz5ho5cqR++OEHr8PmZT6ky42qPvnkk4qOjlZQUJACAgJUrVo1NWzYUM8++6wWLVqU80etDDJ5/fXXjSTjcDjMTz/9ZIwx5vDhw8bhcBhJZuLEiVmO44UXXjCSPH4qVapkEhISTHh4uJFkevTokWn4YcOGWeV9Wb16tVVu9erVmfr36NHDSDLh4eFu3WNiYrzWz/mJiYnJcj6zIz/GN3PmTGs8M2fOzNYwGRkZpnbt2tZwx44dy1TGdTlnd7z5Vd/Zs2cbf39/r8u/ePHiZsyYMV6n4Sw3bNgwM3z4cK/jKVOmjFmzZk2e5sd1WtfStViOxhgzZswYU6xYMa/j8Pf3N7Nnz87TvGR3O5gyZYpVdt68eZn6//jjj1b/999/3zz22GM+t93z58+bTp06+dzWw8LCzLZt2zzW59ChQ1nuKySZRx991KSlpXmdr2PHjpmbbrrJ6/D33XefWb58uc/9WU7deuutRpK5++67rW4jRowwkoyfn585efKkz+Fd99GfffaZKVWqlNd17OOPP840fHaWm+s2lZP9+ZYtW0ylSpW8jveFF17I1nx5ktt1xnXd9PVx3ZZdt/Eff/zRY31+/PFH06BBgyzHm5t1JifHljvuuMNIMgEBASYjIyNTf9fjyf79+01ERITPeU9JSclyOQcHB5uvvvrKY31c1xdfn4EDB3qdp6zONdatW2fKli1rrXf79+/PVGbPnj2mSpUqXqf/xBNPZOt7zu2+PD093ZQpU8ZIMi+//HKm/hcvXnTbdjt27Ohx+vXr1zeSTOfOnd26uy7nb775xvzjH//wWsfIyEjzyy+/eBx/djjPzWJiYsySJUtMUFCQx+kUK1bM47nonj17rDJjx471Oa0dO3Zku6wnruuOr21v6dKlVrnnn3/eY5nsnJPWqFHDfP/9916n47pPfeutt4yfn5/H8ZQqVcrrOVFW6+m+fftMtWrVjCRTrlw5s3HjRrf+OdmHf//99x73Ec7Ps88+63VeMzIyTJ8+fbwOW7lyZbN169Ys9/VZcZ2fnJz/tW3b1hpu/fr1mfp7Gmd29mcxMTFu6523z5V1PXDggKlTp47PYaKiojzu34xx3y4XLlzocbt0XV/yc3pr1641FSpU8Dqe//znPz6/iw8//NDrfsT5ufIaMb/m4/XXX/d5bu38nD171uc8XInwwgPnAaxly5Zu3e+66y4jydSvX9/n8K+99pr1hYSFhZm33nrLbN682axZs8YMGDDAlCxZ0kRERJjQ0FCvO5WrHV4cOnTI7Nq1y4SFhRlJ5q9//avZtWuX2+fQoUM+p51drjud3MpNeGGMMc8884w1nKeLi4IKL77++msrDAsODjbDhg0za9euNRs3bjQTJ040FStWtIZ/5513PE7D2d95Ql27dm0zY8YMs2XLFvPNN9+YPn36WDuN0qVLm8OHD+d6fpzTqlOnjomOjjYBAQEmODjYREZGmu7du5tVq1blety+XIvl+Pbbb1tlQkNDzWuvvWY2btxo1q1bZ4YPH27t9B0Oh1m8eHGu5yU728G5c+esA0WpUqXMr7/+mqmM6wWi8+L8rrvuMnPnzjUJCQnmm2++MdOnT7fKd+3a1Spfv359M2fOHLNlyxazfPly07NnT2v5lS9f3hw9ejTT9BITE03JkiXN/fffb958803zzTffmK1bt5pvvvnGvPPOO6Zu3brW+IcOHepxvtLS0sxtt91mlWvbtq354osvTEJCgvn888/NvffeaySZRo0a+dyf5cT27dutcb3//vtW94MHD1rdJ02a5HMczhO/2267zQQEBJgaNWqYKVOmmE2bNpmNGzea4cOHm4CAACNdDgmv/L527drlFsiMGjUq037WNUDJ7v48NDTUREREGH9/fzNw4EATFxdnNm/ebN588023i0hvQXtWJ7S5XWf+/PNPs2vXLvP++++7Lfsr5/n06dPWMFldLJw4ccI6TkmXg6jZs2ebzZs3m/j4ePPJJ5+YPn36mPLly1/V8GLVqlXW/vShhx7yWMb1eHLrrbeaEiVKmOeee86sXLnSJCQkmHnz5pkNGzYYYy5fcLdu3dratzz88MPm008/NQkJCWbjxo3mjTfeMNWrVzeSTMmSJU1CQkKm6a1cudIEBQWZrl27mnfffdfExsaarVu3mmXLlpmJEyda3/OV24C3Ol9pyZIl1kX/zTffbI4cOZKpzJkzZ8yNN95ojePvf/+7WbJkiUlISDBz5861jk+u27an7zmv+/L27dsbSebOO+/M1G/t2rVuJ8ohISEmPT3drcwff/xhfb9vvfWWWz/X7bJZs2ZGknnwwQfN559/br777juzZMkS07FjR6tMt27dPC7r7HBetERFRZmyZcuakJAQM2bMGLNhwwazYcMGM3r0aCuokWQ+++yzTONo2rSpkWSio6N9Tutf//qXkS6HQsePH89xXbMbXkycONEq9/rrr3ss07x5c1OvXj0zePBg88UXX5jNmzebTZs2mU8++cR069bN+m5q165tzp8/73Eczmk0adLEOBwOU79+ffP++++bLVu2mLi4ONOvXz9rPNWrVzcXL17MNA5f+6OEhARrPaxSpYrZtWtXpuFzsg+PiooypUuXNkOGDDGxsbEmISHBTJs2zW17WrZsmcd5HTNmjFXmxhtvNFOmTDGbN282cXFxZvDgwSYwMNDUrFnT53VGduQ2vJgwYYI13Lhx4zL19zTOlJQU6xjh7drk0KFD5uTJk1keW12Pq8ePHzc33HCDdS784osvmqVLl5qtW7ea1atXm0GDBln7uZo1a5ozZ85kqq9zu6xRo4YJDg42oaGhZty4cWb9+vVm06ZN5q233jKnTp3K9+lFR0ebihUrmkqVKplx48aZdevWmfj4ePP6669bobKfn5/ZvXu3x+9h9uzZ1jIKCAgwzz33nFmyZInZunWriYuLM1OmTDHt2rUzNWvWzDRsXudjx44d1vZWo0YNM3HiRPPtt9+abdu2mbVr11o/vgUHBxNe5NXOnTutL/q9995z6/ff//7X6rdz506Pw584ccL6MsPDwz0m8N9++61bIlwQ4YVTXlPZ7HDW74477sh0Euvp43pi65Tb8GL69OnWcCNHjszUvyDCiz///NNUrVrVOknz9Iv34cOHrYuQUqVKWTtFV64nY7fffrvHjX/OnDlWmS5duuR6flyn5e3z4IMPetwJ58XVXo6//vqrtb2GhYWZn3/+OdM4tm7dagUYVatWNX/++Weu5sXXdrB582YzY8YM6wLf4XCYN9980+N4rvx1u3v37h5/BTbm8gWBs9w999zj8WTtvffes8p07do1U/+UlBSfJ7YZGRnm8ccfN5JMUFCQ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HOrRo4fX/s4GCqXMyyIoKEjdunWTJH3yySc6d+5cpuFnzpwpSQoNDdVf/vKXPNVVcm+Yt1ixYqpWrZo6deqkffv2KSQkRK+++qr+85//ZHt8p06dUmJiorUe7969W6GhoZKyXo/btGmjSpUqeexXunRpRUVFScredzR79mx17txZFy5cUNOmTbVmzRpVrlw52/PhjcPh0D/+8Q+v/Z3r0unTp3XmzBm3ft9++60kqUKFCurYsaPXcXTv3j3P9cytrM69r5Uvv/xS0uU3uflaVtL/9rXHjx/32rBsyZIl9dBDD12z6ZUtW9bneJzriad1efHixZIuv8bY1/WoJ/kxH1WqVJEk7d27V/Hx8TmaflYIL1ysWLHCOqHwdMLr2v2XX37xeFLobA37tttuk5+fn9dpNWjQIFfvPi7MYmJirKDA1yc/QwTXnWaZMmXybbx5sXv3bkmXW4H2doCVLu8knRdFzmE8adSokc/pNW7cONO0c+rKIM/VDTfcoAULFljr81tvvZWraeRUfixH5/+33Xabz1dt3XDDDVbr4Lldhk6etoM///xTP/74o95++22FhITos88+U5MmTbR//36f4/J2QS1dPpg5T1rvvPNOn+Nx7e9p/tLS0vT222+rSZMmCg4OVrVq1VSnTh3Vq1fP+vz666+SLr973ZXrGwJysq7mhfNV1xUqVNB9992Xqb9r948++ijLN53cdNNNPvuXL19e0rU7SStZsqTP775EiRLZ2ndcKT/Xmfywbds2SZfnp0mTJldlGq5mzpyZads8e/as4uPj1atXL/3yyy965ZVX9PDDD2cZYPj6fhISEqy/mzZtmultLK4f14sAZyDnKjU1VWPHjrXe4BMeHq66deta26VzPZAyb5tX6t+/v4YMGSLp8lsRFixYIH9/f6/l82vbzo99uZ+fn5o3by7JPZiIj4/XuXPnVKZMGd12221WeLF27VrrB6gzZ85o586dkpTlW9Z87Quc+wEp7/uCGjVqqGLFil77h4aG+jwmOQP3s2fP6rPPPnPrd+LECesNUY899thVf81kq1at9Oyzz2b59rz169fr73//uypUqKBKlSopOjra7Rgzbdo0SVmvx/m1v37jjTfUs2dPXbp0Se3atdM333yjcuXK+RwmuypWrGgF/r7q6Kmezu+7QYMGKl68uNdx1KtXz+f2ezXZ5dzbua89d+6c/Pz8fO5rXUM8T/taSYqKilJAQMA1nZ63UFjyvi6npaVZ68ldd92V5bZ3Nebj4YcfVokSJXTx4kU1b95c999/v959913t2bMn528XuQLhhQvnq/N8JV2ud2R4etWe81cIXwdg6fKB1nXnhKvD9SBnl+XtfJXaDTfckGVZZ8Lv6/VrWa1rrtPJ79e4OdWsWVNt2rSRJB04cCBbrwPOq/xYjvn9XeRWiRIlFBERoWeeeUaxsbEqUaKEjh496nbHhye+TqRc65nV/Ln+kuRpGTVt2lT//Oc/tXnzZv35558+x3X+/Hm3/537RCln62puJSUladGiRZLc77C4kjOIPnbsmPVLljfe7hZxcp5ceLob72ooX768z3Bc+t+yzMn6ml/rTH5x7r/Lly9fYCfhwcHBatSokaZNm6ZXXnlF0uVfs52/XHvja9t0Bn05deUv6IcPH1a9evX0yiuvaOfOnVmuf1dum1eaNGmSJOmWW27RjBkzfF4YSfm3befXftgZPHz33XfWazWdQcZdd92l4sWL684771RgYKCSk5OtcGzNmjVWgBkTE+Nz+r72Ba4XGXndF2S1PCXf23ijRo1Uv359Scq0rs6ZM8d6rXB+3QX8/vvva9euXdq1a5e2bNmi+fPnWwHxl19+qTZt2vh8peLw4cPVokULzZ8/P8v9SVbrcX7trydPnixjjEJDQ/XZZ59lOd6cyG4dpcz1zO51RvHixfMtbMkpu5x759e+1imr5Znf08vuenLlDzB//PGHFRA474DIifyYj5tuuknz5s1TuXLllJ6erq+//lpPP/20brnlFlWqVEmPPfaY1q5dm6vp+D77KUKSk5Ot22TOnDmTrROlhQsX6uzZsx5v285OypXX5AlZc56cSLqq7zHPjfxaR3KaqF4tderUsW5TO3bsmMLCwq7JdPNjOdppe61bt646dOigL7/8UmvXrlViYqJ1m+uVsrq4cMrLOvLCCy/ou+++kyQ9+OCDeuKJJ3TrrbeqUqVKCggIsMZdvXp1HTlyJNNycv0/q3rkxzKeP3++dZL8zjvv6J133slymDlz5ljhW2FwLdZXu+xXJPvU5cUXX9S4ceOUkZGhGTNm+Lzw87Vtul6MxMbG+vwF1tWVFyuPPfaYfvzxRzkcDvXs2VPdunXTzTffrNDQUOscJiMjw6pLVutE586d9dlnn2n37t164YUXsryLLr+37byu187gIT09XevWrdN9991nPQblDDZKliyppk2batWqVYqNjdUdd9xhlSlXrpzPO2aupfzYxnv16qXnnntOsbGx+vHHH1WjRg1J0qxZsyRdvnuqbt26ea6rdPlOkVtuucX6/4477tBDDz2kl19+WRMmTNB3332nl19+WW+88UamYb/99luNGDFC0uUfQl566SW1aNFC1atXV3BwsLX+Dh06VK+++mq+1Dc7nNvDqVOn9Oijj+rTTz/NMjTGZXY593bua2vUqGH9qJEdzm3lSlmdc+X39PJDbo6f+TUfnTt31r333qtPPvlEy5cv19q1a3Xq1Cn99ttv+vDDD/Xhhx+qR48eev/9933eYXIltsL/b/78+VmmuVc6d+6cFixY4Pbscbly5XTixAmdPHnS57Dp6eluv1pcyfVLzMjI8Pqlpqam5qjORYkxxu3RnhYtWhRgbf7HmUJ7u03MlXM98pVcZ7Wuufa/mgn4tQ7j8mM5li9fXr/88ku+fRf55aabbrLC1F27dnkNL3xxrWdW8+fa33W45ORkffLJJ5IuP+v90UcfeR2Ht/2Z6/iyWldzm/a7cj4ykhNffPGFUlJSvD7bbze///67Ll265PNEyrksc7K+5sc6k5+ct83//vvv+vPPPwv8Ucvy5csrNDRUJ0+edHtkIqdcw4qSJUu6XfRl1759+7Ru3TpJ0qBBgzR69GiP5XydZ1xp3rx56tq1qxYuXKgpU6bIz8/PuhvDkyu37ejoaK9lfW3b+XVMbNSokYKCgpSamqrY2Fjdc889bu1dOLVq1coKL1566aVst3dxLWW1r5Sy3sYfffRR/fvf/9aFCxc0e/ZsDR8+XJs2bbLaILoWba+NHj1ay5Yt086dO/X222/rmWeeyXQx63wcpGzZstq4caPXOwpysi7nh9dee01VqlTRlClTtHDhQj388MOaN29egQcYzuuMrI6Xly5duubLzGnlypXW3wV57u3c1548eVI33XTTVf/urvX0vClfvryKFSumjIyMXN0JnZ/zERISoqeeekpPPfWUpMttYCxatEhvvfWWjh8/rtmzZ+u2227TCy+8kO1x8tjI/+d8BKRKlSqaN29elp/q1au7DedUr149SdL27dut2/I82bFjh8/br13v5vC18/nhhx+ynjkf7HKgvhqWLFmixMRESVKTJk3ypZGl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NrXKrF69OtM4evToYSSZ8PBwj9MYPHiwNfzYsWPN9u3bTWJioklMTDRHjx7N1rLIinP8d9xxh9m1a1e2Pld+DzNnzrTGM2rUKLeyGzZsMF999ZUZOXKkadasmVXOudzOnz/vtW7Dhg2zys6cOTNf5vfK+noa79dff20cDoeRZIKDg82IESPMunXrzKZNm8zrr79uKlWqZA3/zjvveJyG63KVZG666SYzc+ZMk5CQYL799lvz9NNPm2LFihlJpnTp0ubHH3/M1byEh4ebsLAw89xzz5m5c+eaDRs2mG3btpmVK1eawYMHmwoVKlh1adGihblw4UKupuPJtViOb7/9tlWmUqVK5vXXXzebNm0y69evNyNGjDDBwcFGknE4HGbx4sW5nhdf28HWrVvNV199Zfr27Wv8/Pyssu+9916m8fz44485Wmcfeughq3yDBg3MBx98YBISEszKlSvNk08+aS2/8uXLe9zmO3bsaA3frl078/nnn5uEhASzZMkS8+STT5rixYubqKgon/uztLQ0c9ttt1njue+++8zChQvNd999ZxYuXGjatm1rJJlGjRr53J/5EhcXZw374osvZnu4FStWWMONGTPGrV94eLjPfbRTVvvZ5s2bG0mmQoUKZu7cuWbv3r3Wfvb333+3yq1evTpb+/PQ0FATHh5uAgICzKBBg8zatWtNfHy8mTJligkLC7PGMXHiRI/1yWq+8rrOGGOs42ONGjXMwoULzffff2/Nc3JyslXOdRv3tI86ceKE2zzdfffdZs6cOSY+Pt5s2bLFfPrpp+bZZ581FSpUyPE6c+X0rzy27Nq1y2zatMm8//77bsfaChUqmF9++SXTuFyPJ1lJT08399xzj1W+evXqZsyYMWb16tVm27ZtJi4uzkybNs088sgjJigoyFSoUMFt+IyMDHPLLbdYwz/88MPm66+/trapLl26GEnWuifJDBs2LEd1vnDhgmnXrp3Vf+jQoZnKnDlzxvqunfVYunSp+e6778y8efOsbdp12/b0PefHvtwYY/78809TqlQpt/OALVu2ZCo3cuRItzL333+/13FmtV268rWssyMmJsZIMlFRUSYkJMSULVvWjB071mzcuNFs3LjRjB071oSEhFjTWbBgQZbjHDdunNu81qpVy2RkZOSqfq5c152slktGRoapV6+ekWT8/PzMoUOHrH6ffvqpNZ4bb7zRvPXWW2bDhg1m/fr15j//+Y+pUqWKcTgcbtugJ9ld9s5lHBMTk6mfr/1RRkaG6dmzp9W/Z8+emZZjdvfh3o4V2amHMcaMGTPG6l+tWjXz9ttvm/j4eLN27VozZMgQExgYaCIiIqzj8uOPP+5zet64zs/TTz+dad+4dOlSM378eNO2bVtr+5VkmjRpYk6dOuV1vFl9V9k59mb3XOjYsWOmSpUqVtk777zT/Pe//zUbNmwwW7duNStXrjQTJ040bdq0McWLFzedO3fONA5f60xBTi+rY86cOXOs/oGBgeb55583S5cuNdu2bTNr1641U6dONe3btzc1a9bM9/mIiYkxpUqVMg899JCZOnWqiY2NNdu2bTOrVq0yEyZMMNWqVbPGvXDhwiyXq6siH16sW7fOWnh9+vTJ0bDPP/+8NeymTZu89rvyU7FiRbNly5YsN84TJ06YqKgor+Pp2rWr+eabb/K0ozx69KgpX768x/FnZyPNDm/19/U5ffq02zhcd+TZ+YSHh5t33303y7oVVHhhjDGzZs0y/v7+XuehePHimS6mXLnu/F3n48pPmTJlTGxsbK7nxbmeZvXp3Llzpu8tr67FcjTGmNGjR1tBj6ePv7+/mT17dp7mJSfrb4kSJcz48eM9jien4cX58+etsNPbJywszGzbts3j8D///LOpXr2612GrV69u9uzZk+X+7NixY6Z27dpex9O2bVuzfPlyn/szX3r16mUNu3HjxmwPl5aWZu0Db775Zrd++RVeuF6YXflxPXnLyYnvli1bTMWKFb0uz+eff95rfbOar7yuM8YY884773gd1nW9zeok3RhjDh486Hah7u2T1/AiO58aNWqY7777zuO4chJeGGPMuXPnTPfu3bM93Stt27bNlCtXzusw9erVM8ePH/e4rmW3zufPnzdt2rSxyowcOTJTmd27d5vKlSt7rUfPnj2z9T3nx77cGOMWCoWEhJj09PRMZVzDTsl70GdMwYQXMTEx5uuvv84UxDg/xYoVM6+99lq2xnnixAm3UHz06NG5qtuVchJeGGPMxx9/bJV/6qmn3Pq5hgKevvfJkydnua5md9nnNrwwxphLly65bbO9evVyCzCuVXiRkZFh+vTp43WZOa8znBeIffv29Tk9b1znJzuf0NBQM3r0aJOWluZzvFl9V/kZXhhjzOHDh90CVF+fnj17Zho+J+HFtZxedo45s2bNMoGBgT7r4G19zMt8OOfB1ye7+/QrFfnHRlxvhXY2bJRdruWvvKX6jTfe0OLFi9WuXTuVL19eAQEBioyM1PPPP69t27ZlqwGbG264QZs3b9bLL7+sqKgo+fv7q3z58mrZsqU++OADffLJJ9l+VaI3VatWVXx8vJ588klFRka6PatcGPj5+alcuXKKiIjQ3XffrZdffllLly7VoUOH1KdPn4Kunk89evTQvn379MILL+jmm29WUFCQAgMDVatWLfXu3Vvbtm3Ldlsdw4cP17Jly9SxY0fdcMMNKlmypCIiIvTMM89oz549eXqWd/bs2RoxYoTuu+8+RUdHq3z58vLz81PZsmVVr1499enTRxs2bNCCBQtUtmzZXE8nt/JjOb7yyivatm2bevfurVq1aikwMFBBQUG6+eab9cILL2jfvn3q3r37VZuH4sWLq3z58mrcuLFefvll7d27VwMGDMiXcQcEBOjzzz/XokWL9Le//U1hYWEqWbKkypUrpzvvvFNjx47VDz/8oAYNGngcvlq1atq6dav+/e9/Kzo6Wv7+/goJCVH9+vU1bNgwbd++XXXq1MmyHmFhYdq2bZtGjRqlW265RYGBgSpbtqyaNGmid955R0uXLs312yQuXLigTz/9VNLlfdqdd96Z7WH9/Pys266///77PDca6knHjh317bff6q9//avCwsJUokSJPI/zjjvu0NatW/X888+rVq1aCggIUIUKFXTfffdpyZIlHl9JmF15XWeky48KffbZZ2rbtq0qVaqUp+eea9asqe3bt2vWrFnq2LGjqlSpopIlS6pixYqqX7++evfurW+++UYtW7bM9TS8CQgI0I033qiOHTvqv//9r3bv3m01JJpXgYGBmj17thISEvT000+rbt26CgkJsfavDRo00JNPPqkFCxZYb4hw1aBBA23fvl19+/ZVeHi4SpQoYe1HXnvtNcXHx+fqUUFXAQEB+vLLL3X33XdLuvy6SmdDt05169bVnj17NGDAAOtcpWLFimrdurXmzp2bZRtfTvl1THR9TKRFixYez5PuvPNO65FByV7tXTh17NhRCQkJ6tmzp8LDw1WyZElVqlRJnTt31rp167w+gnelG264wXoVdPHixXP8KFl+eeihh3TTTTdJutxmh+ut6u+//74++OAD3XXXXSpdurT8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ERERlWkyqQMQEREREdHbpYFHjRoldQwiojKJxQsiIiIiojLg0aNHqFChgtQxiIjKJBYviIiIqEzq3Lkzzpw5o9SxGRkZmD9/Pn755RcVpyJSH3d3d/zzzz9SxyAiKpNYvCAiIqIy6fbt2/D29karVq0QHh6O9PT0Dx5z+vRpfP3113B0dERwcDCsrKw0kJRINb7//nvs2LEDUVFRUkchIipzOGEnERERlUmiKCIsLAyhoaG4desWZDIZateuDU9PT9ja2qJixYrIyMhAamoqkpKScPr0aaSlpUEmk+HTTz/FrFmzirVCCVFZsXr1amzcuBERERHo3r07GjVqBFtbWwiCkK/toEGDJEhIRCQdFi+IiIioTMvJycGuXbsQHh6OmJgYpKam5msjk8ng6uqKgIAADB06FPb29hIkJSodmUwGQRDwfvf83eKFKIoQBAHZ2dmajkdEJCkWL4iIiEirJCQk4M6dO3j8+DGMjIxgbW2NevXqwczMTOpoRKWyatWqYrcNDAxUYxIiorKHxQsiIiIiIiIiKtM4YScRERERERERlWksXhARERERlSF///03Pv30U7i6uqJGjRqK7VeuXMG8efNw9+5dCdMREUlDLnUAIiIiIiJ6OzntZ599hr/++gsAYGRkhIyMDMX+ihUrYvLkycjOzsbEiROliklEJAmOvCAiIiIiKgMWLlyITZs24YsvvsCTJ08wbty4PPttbW3RokUL7Nq1S6KERETSYfGCiIiIiKgMCA8Ph5eXF5YtWwZTU9M8S6TmqlGjBm7cuCFBOiIiabF4QURERERUBly9ehUtW7Ysso2lpSUeP36soURERGUHixdERERERGWAkZER0tPTi2xz8+ZNmJubayYQEVEZwuIFEREREVEZ4OHhgb179yIzM7PA/ampqYiIiECTJk00nIyISHosXhARERERlQFfffUVbt++jV69euVbDvXatWvo3r070tLS8NVXX0mUkIhIOoIoiqLUIYiIiIiICJg0aRLmzJkDQRBgYmKCFy9eKOa5EEURU6dOxfTp06WOSUSkcSxeEBERERGVIfv378eSJUtw4sQJpKamwtTUFI0bN8ZXX32Fdu3aSR2PiEgSLF4QERERERERUZnGOS+IiIiIiIiIqEyTSx2AiIiIiIj+T3JyMtatW4e4uDikpaXBzMwM7u7u6NevH5ycnKSOR0QkCd42QkRERERURsydOxfBwcHIysrC+910fX19hIaG4vvvv5coHRGRdFi8ICIiIiIqA8LCwvD555/Dzs4O33zzDVq0aAFbW1vcv38fsbGxWLBgAe7fv4+VK1ciKChI6rhERBrF4gURERERURng6uqKhw8f4vz587Cxscm3//79+3Bzc4ONjQ0uXLggQUIiIulwwk4iIiIiojIgKSkJn376aYGFCwCwtbVF7969kZSUpOFkRETSY/GCiIiIiKgMsLa2hr6+fpFtypUrB2traw0lIiIqO1i8ICIiIiIqA/r27YvNmzfj5cuXBe5//vw5Nm/ejM8++0zDyYiIpMc5L4iIiIiIyoDMzEz07t0bN27cwJQpU9C8eXPY2NjgwYMHOHToEGbNmgVnZ2ds3LgRBgYGUsclItIoFi+IiIiIiMoAPT09AIAoihAEId/+wrYLgoCsrCy15yMikpJc6gBERERERAS0aNGiwOIEERFx5AURERERERERlXGcsJOIiIiIiIiIyjQWL4iIiIiIiIioTOOcF0REREREEhgyZAgEQcDs2bNha2uLIUOGFOs4QRCwcuVKNacjIipbOOcFEREREZEEZDIZBEFAQkICatasCZmseIOiBUFAdna2mtMREZUtHHlBRERERCSBGzduAAAcHBzyPCYiovw48oKIiIiIiIiIyjSOvCAiIiIiktCTJ0+wZMkSnDp1CgDg7e2NUaNGwdzcXNpgRERlCEdeEBERERFJ5PHjx/D29kZycjJyu+WCIMDZ2RknTpyAhYWFxAmJiMoGLpVKRERERCSR2bNn48aNG/D19cWGDRuwYcMGtGzZEteuXcOcOXOkjkdEVGZw5AURERERkUTq1KmD7OxsJCQkQE9PDwCQlZWFOnXqQF9fH5cvX5Y4IRFR2cCRF0REREREErl58ybatWunKFwAgFwuR/v27ZGcnCxdMCKiMobFCyIiIiIiibx69QrW1tb5tltZWSEzM1OCREREZROLF0RERERERERUpnGpVCIiIiIiCR0+fBjz5s3Ltw0AfvzxRxQ0Rd13332nkWxERGUFJ+wkIiIiIpKITFbygdCCICA7O1sNaYiIyi6OvCAiIiIikkhYWJjUEYiItAJHXhARERERERFRmcYJO4mIiIiIiIioTGPxgoiIiIiIiIjKNBYviIiIiIiIiKhMY/GCiIiIiIiIiMo0Fi+IiIiIiIiIqExj8YKIiIiIiIiIyjQWL4iIiIiIiIioTGPxgoiIiIiIiIjKNBYviIiIiIi0gL+/P9q2bYuwsDBkZWVJHYeISKMEURRFqUMQEREREVHRZLK31x0FQYCDgwPGjx+P0aNHS5yKiEgzWLwgIiIiItICMTExyMnJQXx8PGJiYnD06FGkpKRIHYuISCNYvCAiIiIiIiKiMo1zXhARERERERFRmSaXOgAREREREf2fV69eIS0tDQBgamoKIyMjiRMREUmPIy+IiIiIiCQWExODAQMGoEqVKjAxMYG9vT3s7e1Rvnx5VKlSBQMHDkRsbKzUMYmIJMM5L4iIiIiIJCKKIkaMGIEVK1ZAFEWYm5ujRo0aMDU1BQCkp6fj6tWrePr0KQRBwLBhw7B8+XKJUxMRaR5vGyEiIiIiksiyZcvw66+/olWrVpg1axa8vb0LbHfixAlMmTIFK1asgKurK0aOHKnhpERE0uLICyIiIiIiibi5uUEQBJw5cwZ6enpFts3KyoKXlxdycnJw4cIFDSUkIiobOOcFEREREZFEkpKS0KFDhw8WLgBALpejffv2uHr1qgaSERGVLSxeEBERERFJpHz58khJSSl2+5SUFJQvX16NiYiIyiYWL4iIiIiIJOLr64s///wTe/fu/WDbiIgIbNy4EX5+fhpIRkRUtnDOCyIiIiIiiVy9ehVeXl549uwZ/P390aZNG7i4uMDMzAwAkJaWhqSkJOzbtw9RUVEwMzPDyZMnUaNGDYmTExFpFosXREREREQSunz5MkaMGIFDhw4BAARByLM/t7vesmVL/PLLL6hTp47GMxIRSY3FCyIiIiKiMiApKQnR0dFISkpCWloaAMDMzAwuLi7w9fWFi4uLxAmJiKTD4gURERERERERlWmcsJOIiIiIiIiIyjQWL4iIiIiIiIioTGPxgoiIiIhICyQmJkJPTw9yuVzqKEREGsdPPiIiIiIiLSGKIjhlHRF9jDhhJxERERERERGVabxthIiIiIiIiIjKNBYviIiIiIiIiKhMY/GCiIiIiKiMys7ORmJiIq5duyZ1FCIiSbF4QUREREQkoYSEBPTp0wcNGzZEUFAQbt68CQCIjo5GtWrVULduXdSsWRO1a9fGsWPHJE5LRCQNTthJRERERCSRlJQU1K9fH0+fPlVsq169Ovbt2wdPT08YGRmhSZMmSElJwcmTJ2Fqaor4+HhUrlxZutBERBLgyAsiIiIiIon8+OOPSEtLw8qVK5GWloa1a9ciOTkZffv2Rb169ZCYmIgtW7bg+PHjWLlyJdLT0/Hf//5X6thERBrHkRdERERERBKpX78+7OzssH//fsW2Tp06ISIiAlFRUWjZsmWe9l5eXsjMzMTFixc1HZWISFIceUFEREREJJGbN2/C3d09z7b69esDADw8PPK19/b2RnJysgaSERGVLSxeEBERERFJRCbL3x03NjYGAFSoUCHfPjMzM7x580btuYiIyhoWL4iIiIiIJGJra4t79+7l2ebu7o5BgwYV2P7u3buwsrLSRDQiojKFc14QEREREUmkd+/euHDhAhITE4vV3tXVFdbW1oiMjFRzMiKisoUjL4iIiIiIJNKvXz80btwYr1+//mDbEydOID4+Hn5+fhpIRkRUtnDkBRERERGRFnj9+jUyMjJgYmICuVwudRwiIo1i8YKIiIiIiIiIyjTeNkJEREREREREZRqLF0REREREEujcuTPOnDmj1LEZGRmYP38+fvnlFxWnIiIqm1i8ICIiIiKSwO3bt+Ht7Y1WrVohPDwc6enpHzzm9OnT+Prrr+Ho6Ijg4GAum0pEHw3OeUFEREREJAFRFBEWFobQ0FDcunULMpkMtWvXhqenJ2xtbVGxYkVkZGQgNTUVSUlJOH36NNLS0iCTyfDpp59i1qxZcHJykvplEBFpBIsXREREREQSysnJwa5duxAeHo6YmBikpqbmayOTyeDq6oqAgAAMHToU9vb2EiQlIpIOixdERERERGVIQkIC7ty5g8ePH8PIyAjW1taoV68ezMzMpI5GRCQZFi+IiIiIiIiIqEzjhJ1EREREREREVKaxeEFEREREREREZRqLF0RERERERERUprF4QURERERERERlGosXRERERERERFSmsXhBREQq4+vrC0EQEB0dLXWUMi8kJASCICAkJKTYx4SHh0MQBAQFBaktl64JCgqCIAgIDw9X6zHaShAECIJQ4L7k5GT07dsXNjY2kMlk+d6T8+fPo3PnzrCwsFDs598+ERGpC4sXRERUpAYNGkAQBBgZGSE9PV3qOMUSHR2t+FImCAIuXLhQZHsPDw9FWxYGisfJySnPeywIAgwNDVGtWjUMGDAAp06dkjqiTktOTs73/svlclhYWKBGjRro0aMHFixY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", + "image/png": "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vLl10rVv3z4lJCTkcosA71e6dGm9+OKL1v8//fRTLrYGN1L16tW1Zs0a3XPPPZKu9Rv44YcfZqmuy5cvS5J8fX3TLZNeOfzzEF64cOrUKeuA96mnnpIk66B32bJlOnnyZIbqWbRokVq3bq3Q0FAVKFBAlStXVt++fXX8+PF0x81oD+BZvbfY3qP177//LulaWJMTnS96i+LFi+vjjz+2/h89enQutsa9uLg49enTR9WrV1fBggVVoEABVapUSb169dLOnTs9jnt9Z5U///yzHnroIZUqVUoBAQEqX768/v3vf+vo0aM3YU5yV3aWo93OnTv13HPPqVKlSipQoIAKFiyo6tWrq0+fPjf1MnvHJ0m46qTKVR8K3377rdq0aaPw8HD5+Pi43HZ//PFH655Uf39/FStWTPXq1dOYMWOUmJjosU2HDh3ShAkT9OCDDyoyMlKBgYEKDAxURESEHnvsMS1ZsiRD83bx4kWNHDlSd999t4KCglSsWDE1aNBAU6ZMuSGd7H7xxRe6evWq8uXLpyeeeEJ16tSxfqHJSBB9fZ9A+/btU8+ePRUZGSl/f3+VKFFC7dq10/r1612Ob7PZVK5cOev/7t27e+xsNrP782PHjqlv376qXLmyChQooNDQULVp00aLFy/O1Hy5k9l1xr5uNm3a1HqvadOmaebZse+PjPbun5qaqtmzZ6t9+/YqW7asAgMDVaxYMd1999165plntGTJkmzfZ52e9LbN67+34+Pj9eabb+qee+5R4cKF3fZ78tNPP+mpp55SuXLlFBgYqEKFCunuu+9W//799eeff3ps065du/TWW2+pVatW1ucUHBysSpUqqWvXrm7XzczYsWOHSpUqJZvNphIlSrjsxf/s2bMaMGCAbr/9dgUGBiosLEz33XefdfttRmVlX75p0yZruS9dutRlmfvuu88qM2HCBJdlXn31VdlsNoWFhTld1u5qu5wzZ46aN2+u0NBQBQYGqkqVKurfv7/+/vvvTM1ven777Tc999xzKleunAICAlSqVCl17NhR69atc1m+b9++VoeK9l+vPalZs6ZsNpuqVKmSo+129K9//cv6+8iRIy7LJCUl6euvv1aPHj1Uo0YNhYSEyNfXV6GhoYqKitL48ePT/Z66fp+6adMmPf7449Z2Ubp0aT399NPau3dvtubnyJEjuv3222Wz2RQcHOwU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EyZYn/P124C7Nl9v0aJF1kl/1apVzZEjR9KUOXfunLntttusOh577DGzaNEis3nzZvPll19a30+O27arzzm7+/LWrVsbSebee+9NM2zVqlVOB8ohISEmJSXFqczff/9tfb7vv/++0zDH7bJ+/fpGknnkkUfMt99+a3799VezaNEi07ZtW6tM586dXS7rjLCftFSqVMkULlzYhISEmFGjRpm1a9eatWvXmpEjR1pBjSQzb968NHXUq1fPSDKVK1f2OK1XX33VSNdCoePHj2e6rRkNLyZMmGCVe+edd1yWadCggbnzzjvNoEGDzHfffWc2bNhg1q9fb77++mvTuXNn67OpUqWKuXjxoss67NOoW7eusdls5u677zbTpk0zmzZtMjExMaZPnz5WPWXLljWXL19OU4en/dHmzZut9bBUqVJm586dacbPzD68UqVKpmDBgmbw4MEmOjrabN682UyZMsVpe1qyZInLeR01apRV5rbbbjOTJ082GzZsMDExMWbQoEEmMDDQlC9f3uN5RkZkNbwYN26cNd6YMWPSDHdVZ2JiovUd4e7c5NChQ+bkyZPpfrc6fq8eP37clChRwjoW7tevn1m8eLHZsmWLWbFihRk4cKC1nytfvrw5d+5cmvbat8ty5cqZ4OBgExoaasaMGWPWrFlj1q9fb95//31z+vTpHJ9e5cqVTfHixU1YWJgZM2aMWb16tdm4caN55513rFDZx8fH7Nq1y+XnMHPmTGsZBQQEmJdeesksWrTIbNmyxcTExJjJkyebVq1amfLly6cZN7vzsX37dmt7K1eunJkwYYL55ZdfzNatW82qVausH9+Cg4MJL7Jrx44d1gf9ySefOA373//+Zw3bsWOHy/FPnDhhfZgREREuE/hffvnFKRHOjfDCLrupbEbY21erVq00B7GuXo4HtnZZDS8+/fRTa7wRI0akGZ4b4cWVK1dM6dKlrYM0V794x8XFWSchBQoUsHaKjhwPxv71r3+53PhnzZpllenQoUOW58dxWu5ejzzyiMudcHbc6OV46tQpa3sNDw83f/zxR5o6tmzZYgUYpUuXNleuXMnSvHjaDjZs2GCmTp1qneDbbDbz3nvvuazn+l+3u3Tp4vJXYGOunRDYyzVv3tzlwdonn3xilenUqVOa4YmJiR4PbFNTU023bt2MJBMUFORyHXjvvfesaTz33HMu63nmmWec5iu74UWfPn2sL+z4+HinYfaD+3vuucdjHY4nfzVr1nQ5b59//rnHA3PHzyu9fUxG9+eSjK+vr8tfD48dO2Yd/BYoUMDl1SWe9vs5sc6kNx+O0gsvHnnkEWv42LFj3daTmJho/v77b4/TSm/61x8Ab9++3fzyyy9myJAh1gljqVKlzG+//eayLsfvk3z58plly5a5na79Rw5fX1+zaNEil2X+/vtvKxxs2LBhmuGnT592+X1pd/nyZdOiRQvrGOD6E/br2+xo9uzZxtfX10jXgoe//vrL5TT69u1rje/qqogrV644/Qrr6nPOiX352LFjrQP5678L33zzTSPJtGjRwgQGBhpJZtOmTU5lvvvuO7fHd9f/IvzWW2+laV9qaqo1nz4+Pi6D54xwvAIhJCTE7NmzJ02ZXbt2WetjeHh4mm3UMTx09au3MdeWuf3E9oEHHshSWzMSXiQmJpqKFSsa6VpI4u6qG3e/3Nr99NNP1omQYzjvyPEzatOmjct911tvvWWV+fbbb9MMd7c/WrFihSlYsKCRZCpUqOD2x73M7MMLFy7s8qQzNjbWCsUfeuihNMOPHz9uDS9fvrzLffyaNWuMn5+fNa2bHV78/PPP1njPPPNMmuHp1ZmRc5OMfrc+8MADRpIpU6aMOXjwoMsyjsd5gwcPTjPccbsMDw+3rsq/GdOLiIhw+cPSqlWrrMDX1RVNx44ds45vw8LCXIZtdq6C6ezOx3//+1/ruPDEiRNup33u3Dlz9epVt8NdIby4Tr9+/Yx07TLx6w8Kzp49a13S2K9fP5fj279AJZm5c+e6nc7zzz/vcafyTwwvMvpytRPKanjheEDSp0+fNMNzI7z4+uuvrWGeLtV0PCkaN25cmuGOy8zVr3J29l+kfHx8svTrijHGFChQwHTu3NlMmTLFrFq1ymzdutUsW7bMDBo0yOlytqioqCyf3Ltyo5ej4/bq6hYNO8cDnjlz5mRpXjK6/rdo0cL89NNPbutx/MIuXLiwSUhIcFvW/tn7+vq6DGbs7Fc+ZHUdOXPmjMmfP7/b/V7VqlWNJFOiRAmTlJTkso7z589bB9OeDoYzIiUlxZQsWdJIrk+uHa+28fSF7hhebN++3WWZ1NRU61eidu3apRl+o8KLf//7327rcdw2XO07PO33c2KdyanwYu/evdbB2cMPP+yxnqxynL6nl7+/v+nfv7/Lgzw7x+8TVwfsdleuXLFOxF19LzlatGiRVWdsbGym58/xCiRX3xOujjU+/PBD60SxWbNmbn8Vu3TpkilSpIiRrl1p4u4A9MiRI1YQ4upzzol9+fr1661hixcvdhpmX1fffvtt06xZM+tvR/arEIoVK5YmDHZcn2vWrOk2LF6yZIlV7vvvv3c7H544nrSMHz/ebTnH767rv5MSExOtcKNHjx4ux583b541vquT+IxwF16kpqaaI0eOmO+++87pVkF3x80ZZQ8y3YUt9ukEBAS4vSUwISHBOql3te252h/Nnz/fCgvuvPNOj7cFZWYf7u4HCmOM6dy5s5Gu3ZpyvdGjR2doPbMH+O729RmR1fBi69at1niuvhfTqzOnwoudO3dmeJvs37+/ka6FE9dz3C5nzZrlto4bMb0ffvjBbR1169Y1kusfYgYMGGDV8d1333lsy42Yj549e7ptW3bRYaeDq1ev6ssvv5QktW3bVoULF3YaXrhwYbVp00aS9OWXX+rq1atp6rA/m7hIkSJOz4u/3jPPPJNDrYYnwcHB1t/nz59PM3zYsGEy10K8m9ahkX0dsdlsHteDjh07KiQkxGkcV+68806Pjx6zTyMlJSVTnbo6OnbsmGbPnq0ePXqoYcOGqlGjhlq0aKG33npLu3fvtnqXXrlypT766KMsTSOzcmI52v8vXLiw2rdv77aOHj16pBnnRomOjtbHH3+coc7WHnzwQRUsWNDlsJSUFOsZ6C1atLCevuNKz549rXHSW0eSk5N19OhR7d27V7t27dKuXbt0/PhxFStWTJK0fft2p/LHjx+3Okjr1KmTChQo4LLe4OBgderUyeO0M2rp0qVWh2X2TpcdPfbYY1bv5J999lm69d1555266667XA6z2WzW+n/o0KGsNjnTPD2qs127dtb3V2bW1xu1zmTVokWLrI68+vTpc0OmkVGXL1/WZ599ps8++yxDnYvZO/l2ZePGjVZHnOmt840bN7b+dtdJo2Mb//jjD+3Zs8faNh3bev226crIkSP1wgsvKDU1VY888ogWLVrk9D3q6Ndff9XZs2clSV27dlW+fK4PKW+77Ta1bNnS7TRzYl9es2ZNq52O62NycrLWrl0r6VonePYO8K5fZ+3/N27c2GNH6U888YTb4Y7fw9ndF9hsNnXt2tXtcHsHhVLaZREUFKTOnTtLkr7++mtduHAhzfjTp0+XJIWGhuqBBx7IVlsl54558+XLpzJlyqhdu3bat2+fQkJC9Oabb+rtt9/OcH2nT59WbGystR7v2rVLoaGhktJfj1u0aKGwsDCXwwoWLKhKlSpJythnNHPmTLVv316XLl1SvXr1tHLlSpUsWTLD8+GOzWbTE0884Xa4fV06e/aszp075zTsl19+kSQVK1ZMbdu2dVtHly5dst3OrErv2Ptm+f777yVde5Kbp2Ul/d++9vjx4247lvXz81PHjh1v2vQKFy7ssR77euJqXV64cKGka48x9nQ+6kpOzEepUqUkSXv27NHGjRszNf30EF44WLZsmXVA4eqA1/H9P//80+VBob037HvuuUc+Pj5up1WjRo0sPfv4VhYVFWUFBZ5eORkiOO40CxUqlGP1ZseuXbskXesF2t0XrHRtJ2k/KbKP40rt2rU9Tq9OnTpppp1Z1wd5jkqUKKG5c+da6/P777+fpWlkVk4sR/v/99xzj8dHbZUoUcLqHTyry9DO1XZw5coVHT58WB988IFCQkI0b9481a1bV/v37/dYl7sTaunal5n9oPXee+/1WI/jcFfzl5ycrA8++EB169ZVcHCwypQpo2rVqunOO++0XqdOnZJ07dnrjhyfEJCZdTU77I+6LlasmO6///40wx3f/+KLL9J90sntt9/ucXjRokUl3byDND8/P4+fva+vb4b2HdfLyXUmJ2zdulXStfmpW7fuDZmGo+nTp6fZNs+fP6+NGzeqR48e+vPPP/Wf//xHjz/+eLoBhqfPZ/Pmzdbf9erVS/M0FseX40mAPZBzlJSUpNGjR1tP8ImIiFD16tWt7dK+Hkhpt83r9e3bV4MHD5Z07akIc+fOlb+/v9vyObVt58S+3MfHRw0aNJDkHExs3LhRFy5cUKFChXTPPfdY4cWqVausH6DOnTunHTt2SFK6T1nztC+w7wek7O8LypUrp+LFi7sdHhoa6vE7yR64nz9/XvPmzXMaduLECesJUU8//fQNf8xkkyZN9OKLL6b79Lw1a9boscceU7FixRQWFqbKlSs7fcdMmTJFUvrrcU7tr9999111795dV69eVatWrfTzzz+rSJEiHsfJqOLFi1uBv6c2umqn/fOuUaOG8ufP77aOO++80+P2eyN5y7G3fV974cIF+fj4eNzXOoZ4rva1klSpUiUF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Pv16ef62EcdLoe0dG2WUY/nrL6l+9913tXDhQrVq1UpFixZVQECAKlasqJdffllbt27NUAc2JUqU0IYNG/TGG2+oUqVK8vf3V9GiRdW4cWN99tln+vrrrzP8qER3SpcurY0bN+rZZ59VxYoVne5VvhX4+PioSJEiioyMVLNmzfTGG29o8eLFOnTokHr16pXbzfOoa9eu2rdvn1555RVVrVpVQUFBCgwMVIUKFdSzZ09t3bo1w311DBs2TEuWLFHbtm1VokQJ+fn5KTIyUi+88IJ2796drXt5Z86cqeHDh+v+++9X5cqVVbRoUfn4+Khw4cK688471atXL61du1Zz585V4cKFszydrMqJ5fif//xHW7duVc+ePVWhQgUFBgYqKChIVatW1SuvvKJ9+/apS5cuN2we8ufPr6JFi6pOnTp64403tGfPHvXv3z9H6g4ICNC3336rH374QY8++qjCw8Pl5+enIkWK6N5779Xo0aP122+/qUaNGi7HL1OmjLZs2aLXX39dlStXlr+/v0JCQnT33Xdr6NCh2rZtm6pVq5ZuO8LDw7V161a99dZbuuOOOxQYGKjChQurbt26+vDDD7V48eIsP03i0qVL+uabbyRd26fde++9GR7Xx8fHuux679692e401JW2bdvql19+0cMPP6zw8HD5+vpmu85atWppy5Ytevnll1WhQgUFBASoWLFiuv/++7Vo0SKXjyTMqOyuM9K1W4XmzZunli1bKiwsLFv3PZcvX17btm3TjBkz1LZtW5UqVUp+fn4qXry47r77bvXs2VM///yzGjdunOVpuBMQEKDbbrtNbdu21f/+9z/t2rXL6kg0uwIDAzVz5kxt3rxZzz//vKpXr66QkBBr/1qjRg09++yzmjt3rvWECEc1atTQtm3b1Lt3b0VERMjX19faj4wfP14bN27M0q2CjgICAvT999+rWbNmkq49rtLe0a1d9erVtXv3bvXv3986VilevLiaNm2qL7/8Mt0+vuxy6jvR8TaRhg0bujxOuvfee61bBiXv6u/Crm3bttq8ebO6d++uiIgI+fn5KSwsTO3bt9fq1avd3oJ3vRIlSliPgs6fP3+mbyXLKR07dtTtt98u6VqfHY6Xqk+bNk2fffaZGjVqpIIFC8rf318RERF6+umntXbt2kw9ieBGypcvn6ZPn64nn3xS0rW+f55//vmb/rQ1+60s33//vVq2bOn2PMN+m1BISEiOTj9fvnwKCQlR2bJl1ahRI7366quaN2+ejh49qv/85z+5/kSW60VERGjDhg367rvv1LlzZ5UrV04FChSQr6+vQkNDVb9+ffXr108rV67U1KlTb7npedK1a1cdPHhQgwYNUs2aNVW4cGH5+fmpbNmyatiwoUaOHKkVK1bk+HzMmTNHX3zxhbp166YaNWqoZMmS8vHxUXBwsO644w698MILmTrPcWQzN3uLA5Aj7H0RDB06VMOGDcvdxgAAAK9jjFFkZKT++OMPtW7d2uoHC/9sR48etToW/vTTT60+O4BbXZ6/8gIAAAD4J/r555+tp+JxApt3OHagWLdu3VxsCZCzCC8AAACAfyD7U2BKlSrl9slruLUkJSXpzz//dDt869atevPNNyVde6Rx9erVb1bTgBvOu25KAgAAAJAl58+f18mTJ5WQkKCZM2fqp59+knTtceA50d8Oct/p06dVtWpVPfLII7r//vtVpUoV+fv76/jx41qyZImmTp2qixcvymaz6Z133snt5gI5ivACHu3fv9/j89ndCQsLU1hY2A1oEQAAAFyZN2+eunfv7vRejRo19NJLL+VSi3AjXLp0SV999ZW++uorl8P9/Pw0ZcqUG9KRMZCbCC/gUcuWLfX7779nejw6kQQAAMgd+fLlU5kyZfTggw9q2LBhWX6aE7xP6dKl9fXXX2vx4sXavHmzTp06pbNnz6pAgQKKjIzUfffdp5deekkRERG53VQgx/G0EXgUGRlJeAEAAAAAyFWEF14gNTVVx48fV8GCBa3HXwIAAAAAcKMYY3T+/HmFh4crXz7vf5YHt414gePHj1vPYgYAAAAA4GY5cuSIbrvtttxuRroIL7xAwYIFJV1baQoVKpTLrQEAAAAA/NMlJCSoTJky1vmotyO88AL2W0UKFSpEeAEAAAAAuGlula4LvP/GFuQJf/31l8aNG6cGDRqoZMmS8vf3V3h4uO699169/vrrWrduXabqu3DhgsqXLy+bzSabzabIyMgMj/f222+rTp06Klq0qIKDg1W1alW99tpr+uOPPzyOGxkZaU0vo6+4uLhMzRcAAAAA5EVceYFc98033+j555/XmTNnnN7/888/9eeff2rjxo2KjY3V/PnzM1znkCFDdPjw4Uy14+DBg2rbtq1+++03p/f37dunffv26dNPP9WXX36pNm3aZKped0JCQlSyZMkcqQsAAAAA/skIL5CrZs2ape7duys1NVVhYWF6/vnn1bBhQxUtWlQnTpzQwYMH9eOPP8rX1zfDdW7dulWTJk1SQECAfH19df78+XTHSUxM1AMPPGAFFz179lTnzp0VGBioFStWaPTo0YqPj1fHjh21bt063XXXXWnqWLZsma5cueJxOj///LP69OkjSerUqZMCAgIyPF8AAAAAkFcRXiDX7N27V88995xSU1PVqFEj/fjjjwoJCUlT7qWXXko3FLC7evWqevbsqatXr2ro0KGaOnVqhsKL8ePHa9++fZKkcePG6fXXX7eG1atXT02bNlXjxo114cIFvfrqq1q+fHmaOipXrpzudN58803r7y5dumRklgAAAAAgz6PPC+Sal156SZcvX1bx4sX17bffugwu7Pz8/DJU57vvvqtff/1VVapU0RtvvJGhcZKTk/Xuu+9KkqpWrap+/fqlKVOvXj09++yzkqQVK1bo119/zVDdjuLj4/XDDz9IksqXL6+GDRtmug4AAAAAyIsIL5Ar9u3bp19++UWS9O9//1vFixfPdp2///67hgwZIkn66KOPMhx4REdH69y5c5Kkrl27Kl8+15tFt27drL+//fbbTLdvzpw5unTpkiSuugAAAACAzCC8QK745ptvrL87duxo/X327FnFxsam6bwzI1544QUlJSXp6aefVtOmTTM83qpVq6y/o6Ki3JarVauWgoKCJEmrV6/OdPtmzZol6dqjiJ5++ulMjw8AAAAAeRXhBXLF+vXrJV174kbVqlX1xRdf6O6771bRokVVuXJlFS9eXOXLl9fw4cOVmJiYbn1fffWVFi1apCJFimj8+PGZasvevXutv2+//Xa35Xx8fFShQoU042TE4cOHtWbNGklSw4YNVb58+UyNDwAAAAB5GeEFcsWePXskSZGRkXrppZf01FNPaceOHU5lDh8+rGHDhqlevXo6fvy427rOnj2rV199VZI0ZswYhYWFZaotR44ckSQFBQWpcOHCHsuWKVNGknT69Gldvnw5w9OYNWuWjDGSuGUEAAAAADKL8AK54u+//5Z0re+LDz74QIULF9bHH3+sU6dO6dKlS9q0aZNat24tSdq1a5c6duyo1NRUl3W9/vrrOnnypOrVq6eePXtmui32p5EEBwenW9Z+24ik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XSmRL18+Va5cOUv1XL582fo7t+cJAAAA/wwcVQJALlq5cqX19+23355u+W7duqlEiRLy8/NT8eLFVbduXQ0ePNjqSDOzkpOT9ccff+irr75S/fr1deDAAUlS9+7dVbBgwSzVmdl5AgAAANLD00YAIJekpqZqzJgx1v+dOnVKdxzHYODMmTM6c+aMNmzYoAkTJmjSpEnq1atXunXExcWpXLlyboffd999Tn1xZMaFCxc0adIkSZKfn58efvjhLNUDAAAAOCK8AIBcMnHiRG3cuFGS1K5dO9WqVctt2fLly+vRRx9VvXr1VKZMGUnSoUOHNG/ePM2dO1eXLl1S7969ZbPZ9Nxzz2WpPcWKFdPkyZPVsWPHdDv3dOeNN97QH3/8IUl68cUXVbp06SzVAwAAADjiUale4FZ7RI0jHpV68/Go1H+GlStX6r777lNKSorCwsK0Y8cOlShRwmVZ+77B3RM+FixYoEcffVTJyckqUKCADh48qJIlS7qddnJysn777TdJ154IcuzYMS1ZskRTp05VQECAXnvtNQ0cONDt9Nz54osv9NRTT0mSqlatql9//VWBgYGZqgMAAAA3x612HkqfFwBwk+3evVvt2rVTSkqK/P39NWfOHLfBhSSFhIR4DBIeeOABDR06VNK12zamTp3qcfq+vr664447dMcdd6hGjRpq27at3n//fa1fv142m02DBg3Ss88+m6l5io6OtsYpUqSI5s6dS3ABAACAHEN4AQA30eHDh9WyZUudPXtW+fPn1+zZsxUVFZXtenv27GkFHI79YmTGXXfdpbfeekuSNH36dC1btixD423evFkPPfSQLl++rKCgIC1atEjVqlXLUhsAAAAAVwgvAOAmOX78uO677z4dP35cNptN06ZNU7t27XKk7rCwMBUvXlySsvzkEUlOHWzOnTs33fK7d+/W/fffr/Pnz8vf31/z589X3bp1szx9AAAAwBXCCwC4Cf766y+1aNFChw4dkiS9//776tKlS45OIye6MAoNDbX+/v333z2WPXjwoFq0aKEzZ87Ix8dHX3/9te67775stwEAAAC4HuEFANxg8fHxatWqlfbs2SNJGjNmjF588cUcncapU6d05swZSVJ4eHiW63G8aiM4ONhtuaNHj6p58+b6888/lS9fPs2cOZPHogIAAOCGIbwAgBvowoULatu2rbZs2SJJ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J06cSNFEVlFRUTp37py8vLxSMRWQ+qKiop64aJEWjwGkFT7PASDpKF4AAAAAAAC7xlTceGpERERozZo1OnLkiO7cuaNPPvlEknTv3j2FhoYqT548slqtJqcEAAAAng70z/EkGHmBp8Kff/6p3r1768qVK7almKKioiRJO3bsUM2aNTVnzhx16tTJ5KRA8l26dEm7d+/WzZs3bef3o7p165bOqYDUFRERoSVLlmjnzp0JnusWi0XTpk0zIR2QOq5cuaLDhw/r/PnzcZYFjsHnOTI6+ud4UhQvkOlt2bJF9evXV4ECBfTBBx9o27ZtWrBgQawOb5kyZVShQgUtWrTIxKRA8ty7d0+vv/66FixYoIQ+0h/tFAAZ0enTp9W4cWOdOHEiwXNdEuc6MqywsDD1799fs2bNSrBowec5MgP650gOLhtBpvf5558rZ86c2rVrl/Lmzatr167FaVO1alXt2LHDhHRAyn344YeaN2+eSpcurVdeeUWFCxeWoyMf78h8BgwYoOPHj6tr167q2bMn5zoynXfffVc//fSTKlasqHbt2qlAgQKc48iU6J8jOfg0RKa3bds2tWvXTnnz5k2wTZEiRfTnn3+mYyog9SxcuFDly5fX7t275eLiYnYcIM2sW7dODRs21KxZs8yOAqSJ3377TdWqVVNgYCCr5CBTo3+O5GD2E2R64eHhcnd3T7RNSEgIkwEhw7p586aaNWtG4QKZXnR0tCpXrmx2DCDNREVFqV69ehQukOnRP0dycDYg0ytevLh27dqVaJvAwECVLVs2nRIBqatcuXIKDg42OwaQ5mrWrKnDhw+bHQNIM88++6yOHTtmdgwgzdE/R3JQvECm99JLL2nTpk2aPXt2vPvHjRungwcPqkOHDumcDEgdH374of744w8dP37c7ChAmvriiy+0fv16/fbbb2ZHAdLEZ599ptWrV+uvv/4yOwqQpuifIzlYbQSZ3u3bt1WjRg0dPnxYDRs21L1797Rlyxa99957CgwM1NatW+Xr66utW7cy7B4Z0saNG/Xtt99qzZo16t+/vypXrpzgUMznnnsundMBqWfkyJHauXOnli9fLn9//wTPdYvFok8++cSEhEDKbd26VS1btlSVKlVUqVIlubm5xWnDOY6Mjv45koPiBZ4KN27cUN++ffXrr7/GWoLJYrGoffv2mjx5sjw8PExMCCSf1WqVxWKxLR1psVgSbMvSesjIknrtM8tIIqO6du2a2rZtq82bNyfajnMcmQH9czwpihd4qly7dk07d+7U9evX5ebmpurVq8vT09PsWECKjBgxItGCxcOGDx+exmmAtLNhw4Ykt/X390/DJEDa6NSpk37++Wc1b95cHTt2THSpVM5xZBb0z5FUFC8AAAAAO5ArVy75+vpq3bp1ZkcBALvDhJ0AAACAHTAMQ9WqVTM7BgDYpfjHoQGZzKFDh/Ttt99q586dunnzZrzXiVosFp04ccKEdACA+Jw5c0aSVKhQITk4ONjuJ0XRokXTKhaQZmrXrq39+/ebHQNIF/TP8aS4bASZ3oYNG9SsWTOFh4fL0dFRnp6eCV4/eurUqXROBzy54sWLy2KxaM2aNSpWrJiKFy+epOPoACCjiZmM9vDhwypdurTt/uNYLBZFRkamQ0IgdR05ckS1atXSyJEj1bdvX7PjAGmG/jmSg5EXyPQGDx6syMhI/fTTT+revbscHBzMjgSkSHR0dKwvcI/eTwi1amQ03bp1k8VisS2HGnMfyKy+/PJLVaxYUe+++64mTZqU6FKp06ZNMyEhkDronyM5GHmBTC9btmx66aWXNGfOHLOjAAAAJIjlgPG0oH+O5GDkBTK9HDlyKF++fGbHAAAASBTD4/G0oH+O5KB4gUzvhRde0KZNm8yOAaSZqKgo3blzR9mzZ4/3V7uY/a6urgzLRKZx/vx57d+/XyEhIXJzc5Ovr68KFSpkdiwgRby8vMyOAKQL+udIDpZKRab35ZdfKiQkRO+8847u3r1rdhwg1X366afKly+frl27Fu/+69evy9PTU6NGjUrnZEDqO3nypJo0aaKiRYuqZcuW6tKli1q1aqWiRYuqSZMmOn78uNkRAQCPQf8cycGcF8j0GjRooJs3b2r//v1ydXVVqVKlbJO/PcxisWjt2rUmJARSpkqVKipQoICWLVuWYJuWLVvqwoUL2r17dzomA1LXuXPnVL16dQUHB6tcuXJ67rnnlD9/fgUHB2vTpk36999/5enpqR07dqhIkSJmxwWS7d69e9q5c6cuXLig8PDweNt069YtnVMBqYf+OZKD4gUyPSa/QmaXM2dOvfbaaxo/fnyCbd5//31Nnz5d169fT8dkQOrq1auXpk+frh9//FG9evWKs3/atGnq3bu3evbsqalTp5qQEEi57777Tp988olCQkLi3W8YBn0WZHj0z5EcXDaCTC86OjpJ//hgREYVGRn52E6AxWLRvXv30ikRkDZWrVqlVq1axVu4kKTXXntNLVu21IoVK9I5GZA6Fi9erH79+qlIkSIaN26cDMNQ69atNXr0aDVr1kyGYeill17S9OnTzY4KpAj9cyQHxQsAyOBKlCihdevWJdpm3bp1KlasWDolAtLG5cuX5ePjk2gbHx8fXblyJZ0SAanr66+/Vr58+RQYGKgBAwZIknx9ffXhhx9q2bJlmjt3rpYsWcLEngCeShQv8NS5c+eOLl68qDt37pgdBUgVL730kvbt26dhw4bF+YUiKipKn3zyifbt26eXX37ZpIRA6sibN6/+/fffRNscOnRIefPmTadEQOr6559/1KpVK2XLls227eHP9U6dOqlhw4YaOXKkGfGANEP/HElB8QJPhfv372v06NEqXbq03NzcVLhwYbm5ualUqVIaPXq0IiIizI4IJNvAgQNVtmxZjRo1SuXKldMbb7yhkSNH6o033lC5cuU0evRolStXTu+//77ZUYEUadq0qZYuXapp06bFu3/69OlaunSpmjVrls7JgNRx//79WMW3rFmz6ubNm7HaVKxYUXv27EnnZEDqo3+OJ8WEncj0wsLC1LhxYwUGBsrBwUElSpSwzU5/4sQJRUZG6tlnn9XatWuVNWtWs+MCyXLt2jW9+eabWrRokR7+WLdarXrppZc0efJk5c6d28SEQMqdPXtW1apV09WrV1W+fHn5+/vL09NTwcHB2rhxo/7991/lyZNHu3btYrURZEilSpVS3bp1bXNalC9fXnny5NHGjRttbTp06KC1a9fq6tWrZsUEUoz+OZLD0ewAQFr78ssvtXXrVnXq1ElffPGFChcubNt34cIFDR48WHPnztWXX36p4cOHm5gUSL7cuXPr119/1eXLl7Vr1y7dvHlTOXPmVLVq1ZQvXz6z4wGpokiRItqyZYveeOMNrV+/Ps4lJPXr19eUKVMoXCDDql69eqxRFc2aNdOkSZP0xRdfqGXLltq8ebMWL16sRo0amZgSSDn650gORl4g0ytXrpxy5MihHTt2JNjGz89Pt27d0uHDh9MxGQAguc6dO6e9e/cqNDRUbm5u8vX1pWiBDO/333/XkCFDtGLFCnl7e+vKlSuqVq2azp07J+nBMqnu7u7auHGj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u589e3Zdvnw5VhsvLy8tXbo0vaMBqWbJkiXq1auXbty4Eeea0Zw5c2rq1Kl68cUXTUwIpNyIESN04sQJzZ49W507d5aDg4MGDBigYcOGaefOnerXr58cHR21evVqs6MCyfLZZ59JkrZv365y5crJarWqbdu2GjZsmMLCwvTee+/pt99+0/Tp001OCqQM/XMkB3NeINMrUqSIzp49a7tftmxZbdy4MdYXvG3btilXrlxmxANSLDAwUO3bt9edO3fUu3dvLViwQOvXr9fPP/+sN954Q2FhYerYsaMCAwPNjgqkyPLly9WwYUN16dIlzpKp1atX14oVKxQUFKQRI0aYExBIoc2bN6tVq1YqV66cbVtMfyVr1qz69ttvVbBgQQ0ZMsSsiECqoH+O5KB4gUzP398/1odhhw4d9N9//6lFixb67rvv9Morr2jz5s1q1qyZyUmB5Bk1apRcXFy0c+dOTZkyRR06dJC/v7/at2+vyZMna8eOHXJxcdHo0aPNjgqkyMWLF1W5cmXbfQcHB9vlIpLk4eGh559/XgsXLjQjHpBiISEhKl68uO2+k5OTbt++bbtvtVpVr149rV271ox4QKqhf47k4LIRZHo9e/ZUVFSUzp07pyJFiqhfv34KCAjQX3/9pRUrVkiS/Pz89MUXX5icFEiewMBAdejQQRUqVIh3f4UKFdS+fXstWbIkfYMBqczd3T3WNdEeHh46d+5crDZubm4KDg5O72hAqsiXL59u3Lhhu58/f34dO3YsVpt79+7p7t276R0NSFX0z5EcFC+Q6VWpUkVTpkyx3XdyctKff/6pXbt26cSJE/Ly8pKfn5+sVgYiIWO6e/eu8uXLl2ibfPny0dlFhle8eHEFBQXZ7leuXFl///23rl+/rly5ciksLExLly5V0aJFzQsJpED58uX133//2e7Xrl1bS5Ys0bZt21SjRg0dPnxYv/76q8qWLWtiSiDl6J8jOVgqFQAyuHLlyil79uzauXNngm38/Px069YtHT58OB2TAalr+PDhmjhxoi5duqRs2bJp8eLFateunQoVKqQaNWpoz549CgoK0qhRozR48GCz4wJP7H//+58GDBigs2fPqkCBAtq/f79q1KihiIgI5cqVSzdu3FB0dLQWLVqktm3bmh0XANIVpSwAyOA6dOig3bt3q3v37rpw4UKsfRcvXlSPHj20e/du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amjLli1q0aJFuvz6XbJkSVmtVl29elUXL16Mt03M5QZp5fvvv5f04HKMYsWKpelzScn7mzHzcRMSMxopqZd3pXc+AHjaULwAANjEjLp47rnndOnSpQT/vffee7HaP2ratGkKDw+Psz1mnoMmTZrE2TdkyBD9+++/qlGjhgYPHqzvv/9e+fPn16JFizR79uxUeX0vvfSSmjRpooYNG+qdd95J0jEvvviiJOmbb75J8JKER5UtW1ZFihRRWFhYvNn37dunwMDApAd/xLlz5+KdDHPZsmU6ffq0XF1dVbt27Tj727ZtKw8PDy1dulTfffedIiIi1KpVK+XKlSvZWRIyePBgSQ/et4dHHcSMsoi59v9hM2bMeOzlACmRI0cOrVy5UlWrVlVAQIBat24d73ma2s/57LPPSlK8v7aHhIRoyZIlafb8K1eutP3dDRkyJM2e52ExfzM//PCD7t27l2qPW7duXeXJk0f79+9PlZEVjxMzker06dMTnIPlYS+88IKcnZ21fPlyHTt2LI3TAcDTh+IFAECSFBUVpQULFkh6/AocMSMYAgIC4h3mf+3aNb322mu2ofmGYWjy5MlavHixHBwcNHDgwFjt169fr6+//lrZsmXT7Nmz5eDgoNy5c2v69OmSpH79+unMmTMpfo3Zs2fXqlWrtGbNmiSv8PDGG2+oePHiWr9+vTp37hzn1/Pbt2/r119/jfWarFar7f7QoUO1detW277Tp0+re/fucnJySvbrcHR0VL9+/WL9Yn/o0CH17dtXktSnT594L8txcXFRp06dFBERoc8++0xS6l4y8rBWrVqpXLlyunHjhqZMmWLbHjOR4ccffxyrULFy5Up98MEH8a5Sk5rc3d21evVqVapUSX///bdeeuklRUREpOlzxpwLn332Wayi040bN9SxY8dELylJruPHj+u9995TixYtFBUVpS5dusSZfySttG3bVjVq1NCRI0fUsmVL23wjMcLDw7Vs2TLbSKCkypIli0aOHClJevnll/X777/HKSgePHhQH374YazVdpKrTZs2qlatmi5fvqzmzZvbRjXF2L9/f6xzu2DBgurfv7/u37+vpk2bximwGIahHTt26M0330x0VRwAQPwoXgAAJD24Pv3SpUvKkiWL2rVrl2jb8uXL1+npJgAABXRJREFUq3LlyjIMwzaHwcOGDRumhQsX2pZELFy4sN5++20ZhqExY8bEWuEjJCREPXr0kGEYGj9+vEqVKmXb9/zzz6tPnz4KDQ1V9+7dkzzyITVlz55dy5YtU7FixbRgwQIVLlxY5cuXV40aNVSmTBnlzJlTHTp0iFWgkB4UXJo3b67r16+rdu3aKleunCpXrqySJUvq5s2beuONN5KdqV27dsqTJ48qVapkWwa2QoUKOn36tKpXr65PP/00wWNjvjBGRkYqf/78thVJUpvFYtH7778vSZowYYLtF/hBgwYpV65c2r59u7y8vFS5cmUVK1ZMzz//vKpWraqXXnopTfI8LFeuXPr777/l4+OjZcuWqWPHjoku/ZtS7dq1U8+ePRUWFqZWrVqpRIkSql69ugoVKqTt27dr0KBBkpSspWqlB1/kY5aarVy5sjw9PVWqVClNmDBBDg4OGjFiRLrOsWC1WrV48WJVrlxZa9asUalSpVSqVCnVqFFDPj4+cnNzU4sWLbR8+fInfuw333xTgwcP1tWrV/Xiiy8qT5488vPzU9WqVZU7d24988wz+vLLL1NlHhEHBwctWrRIZcqU0fbt21W2bFmVKVNG1apVU548eeTr66tffvkl1jGjRo1Sly5ddOrUKdWvX18FChTQs88+K19fX7m7u+vZZ5/V999/n+YFMwDIjCheAAAk/d8lIC1btox3OcFHxfyKG9+lI3Xr1tWmTZtUp04dHT9+XDdu3FCNGjW0ePFiffDBB7Ha9u3bV2fOnFGzZs3ind8ipqAREBAQZ/6E9FK2bFnt379fX3zxhapXr67z589r3759ioiIkL+/v8aNG6eff/451jEODg5asmSJxowZo9KlS+vkyZMKDg5W9+7dtWPHDuXOnTvZeVxcXLRhwwbbhJj//fefihYtqsGDB2v9+vUJrqogSVWqVLEtzdmlS5dkf2FOii5duqhgwYK6dOmSbRRN0aJFFRgYqBdffFHOzs46cuSIsmTJok8//VQrV66Uo2P6LISWN29erVmzRmXKlNHvv/+uLl26KCoqKs2eb+rUqZo8ebKeeeYZnT9/XqdPn1bLli21Y8cOFShQQFLyVx3ZtWuXtmzZosDAQAUFBSlHjhxq27atJkyYoHPnzmn48OFp+v9zfAoUKKDAwEBNnjxZzz33nK5du6a9e/fq1q1b8vPz06effmpbkvlJjRkzRlu2bFGnTp3k6uqq/fv3KygoSIULF1bPnj21bNkyNWzYMFVeR9GiRbV7926NGTNGVapU0YULF3T48GHlypVL3bt3t41giuHo6Kg5c+Zo2bJlttFde/fu1cWLF1W6dGn17dtXAQEB8c5JAwBInMUw42csAABgiujoaBUpUkQXLlzQwYMHk71EKlJPv3799O2332rixInq37+/2XEAALBLjLwAAOApsmLFCl24cEHVq1encGEHbt++rd9++02S4p1kFQAAPEDxAgCAp0RYWJhtPoy33nrL5DRPl6+//lr79u2Lte38+fN66aWXdOnSJVWpUkXVq1c3JxwAABkAl40A/6+9O7ZRGAqiKPoqMEJy5gxCKMIpiVshcyFuADpBUICd/pCYDkhga1itBF+rcyqY+Go0A/DPnc/nnE6nlFLyeDyy2+2yLMufPp7wO33f53q9ZrVaZbPZ5Pl8ppSS1+uVtm1zuVyy3++/PSYAVOszV7EAgK+53++53W5pmibDMGSaJuHiw47HY9brdeZ5Tikl7/c72+02h8Mh4zim67pvjwgAVbN5AQAAAFTNzQsAAACgauIFAAAAUDXxAgAAAKiaeAEAAABUTbwAAAAAqiZeAAAAAFUTLwAAAICqiRcAAABA1cQLAAAAoGo/wm504UiI7PgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", + "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", + "\u001b[1;31mClick here for more info. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -6416,6 +5609,10 @@ " fontsize=14 # Adjust font size for tick labels\n", ")\n", "\n", + "# Add value labels on top of each bar\n", + "for i, v in enumerate(top_5):\n", + " ax.text(i, v, str(v), ha='center', va='bottom', fontsize=20)\n", + "\n", "# Customize title and axis labels with larger font sizes\n", "ax.set_title('Adult_ED: Top 5 Too Broad Antibiotic Breakdown by Ranking Differences', fontsize=20)\n", "ax.set_xlabel('Abx Med by Ranking Difference', fontsize=16)\n", diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug_outpatient.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug_outpatient.ipynb index 472f06d4..89b3eed5 100644 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug_outpatient.ipynb +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/Adult_ED_Cohort_no_allergy_debug_outpatient.ipynb @@ -2,15 +2,21 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 34, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The google.cloud.bigquery extension is already loaded. To reload it, use:\n", + " %reload_ext google.cloud.bigquery\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/wenyuanchen/anaconda3/lib/python3.11/site-packages/google/cloud/bigquery/__init__.py:237: FutureWarning: %load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.\n", - " warnings.warn(\n", "/Users/wenyuanchen/anaconda3/lib/python3.11/site-packages/google/auth/_default.py:76: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK without a quota project. You might receive a \"quota exceeded\" or \"API not enabled\" error. See the following page for troubleshooting: https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds. \n", " warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)\n" ] @@ -18,6 +24,8 @@ ], "source": [ "import pandas as pd\n", + "import ast\n", + "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import random\n", "from google.cloud import bigquery;\n", @@ -128,131 +136,7 @@ }, { "cell_type": "code", - "execution_count": 169, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['Cefazolin', 'Nafcillin', 'Penicillin', 'Amoxicillin', 'Oxacillin',\n", - " 'Ampicillin', 'Dicloxacillin', 'Cephalothin',\n", - " 'Cephalexin/Cephalothin', 'Doxycycline',\n", - " 'Amoxicillin/Clavulanic Acid', 'Tetracycline', 'Nitrofurantoin',\n", - " 'Trimethoprim/Sulfamethoxazole', 'Ampicillin/Sulbactam',\n", - " 'Clindamycin', 'Gentamicin', 'Amikacin', 'Metronidazole',\n", - " 'Erythromycin', 'Moxifloxacin', 'Ceftriaxone', 'Ciprofloxacin',\n", - " 'Cefuroxime', 'Ticaracillin', 'Cefotetan', 'Clarithromycin',\n", - " 'Ceftazidime', 'Chloramphenicol', 'Cefoxitin', 'Minocycline',\n", - " 'Piperacillin', 'Cefdinir', 'Levofloxacin', 'Azithromycin',\n", - " 'Cefotaxime', 'Cefixime', 'Cefpodoxime',\n", - " 'Ticacarcillin/Clavulanic Acid', 'Cefepime',\n", - " 'Piperacillin/Tazobactam', 'Streptomycin', 'Tobramycin',\n", - " 'Ertapenem', 'Doripenem', 'Vancomycin', 'Meropenem', 'Imipenem',\n", - " 'Daptomycin', 'Colistin', 'Fosfomycin', 'Tigecycline',\n", - " 'Imipenem/Ebactam', 'Cefiderocol', 'Meropenem/Vaborbactam',\n", - " 'Imipenem/Relebactam', 'Aztreonam', 'Ceftaroline',\n", - " 'Quinupristin/Dalfopristin', 'Ticarcillin', 'Linezolid',\n", - " 'Ceftolozane/Tazobactam', 'Ceftazidime/Avibactam'], dtype=object)" - ] - }, - "execution_count": 169, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "aim_4_antibiotic_ranking[\"antibiotic_agent\"].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "array(['Macrobid', 'Cipro', 'Bactrim', 'Trimethoprim', 'Rifaximin',\n", - " 'Cefuroxime Axetil', 'Ofloxacin', 'Ampicillin Sodium', 'Hiprex',\n", - " 'Augmentin', 'Keflex', 'Bactrim Ds', 'Methenamine', 'Zithromax',\n", - " 'Levaquin', 'Macrodantin', 'Ethambutol', 'Isoniazid',\n", - " 'Doxycycline Monohydrate', 'Silver Sulfadiazine', 'Dapsone',\n", - " 'Cefadroxil', 'Xifaxan', 'Gatifloxacin', 'Methenamine Mandelate',\n", - " 'Moxifloxacin-Sod.Chloride(Iso)', 'Flagyl',\n", - " 'Vancomycin-Diluent Combo', 'Rifampin', 'Linezolid In Dextrose',\n", - " 'Fidaxomicin', 'Cefepime In', 'Erythromycin Ethylsuccinate',\n", - " 'Zyvox'], dtype=object)" - ] - }, - { - "cell_type": "code", - "execution_count": 179, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Amoxicillin',\n", - " 'Azithromycin',\n", - " 'Cefdinir',\n", - " 'Cefixime',\n", - " 'Ceftaroline',\n", - " 'Cephalothin',\n", - " 'Chloramphenicol',\n", - " 'Clarithromycin',\n", - " 'Dicloxacillin',\n", - " 'Imipenem/Relebactam',\n", - " 'Metronidazole',\n", - " 'Nafcillin',\n", - " 'Streptomycin',\n", - " 'Ticaracillin'}" - ] - }, - "execution_count": 179, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set(aim_4_antibiotic_ranking[\"antibiotic_agent\"].unique()) - set(starting_cohort[\"antibiotic\"].unique())" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Cefadroxil',\n", - " 'Dapsone',\n", - " 'Erythromycin Ethylsuccinate',\n", - " 'Ethambutol',\n", - " 'Fidaxomicin',\n", - " 'Gatifloxacin',\n", - " 'Isoniazid',\n", - " 'Methenamine',\n", - " 'Methenamine Mandelate',\n", - " 'Ofloxacin',\n", - " 'Rifabutin',\n", - " 'Rifampin',\n", - " 'Rifaximin',\n", - " 'Silver Sulfadiazine',\n", - " 'Trimethoprim',\n", - " 'Trimethoprim / Sulfamethoxazole'}" - ] - }, - "execution_count": 187, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set(cleaning_mapping_df[\"Cleaned\"].unique()) - set(aim_4_antibiotic_ranking[\"antibiotic_agent\"].unique())" - ] - }, - { - "cell_type": "code", - "execution_count": 247, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -559,13 +443,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "1e837d1c7cac447db59e342a043ed374", + "model_id": "366923cb9acc48cfb4f08d02c6eb9e38", "version_major": 2, "version_minor": 0 }, @@ -579,7 +463,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ce86d1907fd545e7857adedf7295756f", + "model_id": "05741b6386b247adb15ebd56ca5e1aa3", "version_major": 2, "version_minor": 0 }, @@ -911,69 +795,70 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for adult urine only culture is 246280\n" + "the unique order number for adult urine only culture is 246280\n", + "the unique patient encounter number for adult urine only culture is 233852\n" ] - } - ], - "source": [ - "condition = (starting_cohort['was_positive'] == 1) & (starting_cohort[\"organism\"].isnull())\n", - "\n", - "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort[~condition])))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# starting_cohort = starting_cohort_outpatient.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ + }, { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "the unique order number for adult urine only culture is 246340\n" + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_19309/1511061011.py:4: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n", + " print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))\n" ] } ], "source": [ - "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort)))" + "condition = (starting_cohort['was_positive'] == 1) & (starting_cohort[\"organism\"].isnull())\n", + "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort[~condition])))\n", + "starting_cohort = starting_cohort[~condition]\n", + "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number for adult urine only culture is 233909\n" + "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort_outpatient replaced with new data from CSV.\n" ] } ], "source": [ - "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort)))" + "# # Define table ID\n", + "# table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort_outpatient\"\n", + "\n", + "# # Define job config with WRITE_TRUNCATE to replace the table\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + "# autodetect=True, # Automatically detect schema\n", + "# source_format=bigquery.SourceFormat.PARQUET\n", + "# )\n", + "\n", + "# # Upload DataFrame to BigQuery\n", + "# job = client.load_table_from_dataframe(\n", + "# starting_cohort, table_id, job_config=job_config\n", + "# )\n", + "\n", + "# job.result() # Wait for the job to complete\n", + "\n", + "# print(f\"Table {table_id} replaced with new data from CSV.\")" ] }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -982,13 +867,13 @@ "" ] }, - "execution_count": 71, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAI3CAYAAAD0hZglAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbNUlEQVR4nO3dd3gU5f7//9cmIYVAQgpp0iIdAiJ4hAQRVEhAihRF5RhBEVQQpB2Ej0cpKihNFPQcCwKCiIfmEdDQ0YP0aFSKSK8JIIRQhCSE+/eHX/bHkgSysMlg9vm4rr0udubefd/3ZBh4ZWbusRljjAAAAAAARc7D6g4AAAAAgLsikAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAbgh06ZNk81mk6+vr/bv359rfbNmzRQTE2NBz6TVq1fLZrNp7ty5ltR31r59+9S6dWsFBwfLZrOpX79++ba12Wx64YUX8lw3d+5c2Ww2rV69+ob6YLPZNG3aNKc/W5RcOf5mzZqpWbNmruuck06fPq033nhDd911lwICAuTj46NKlSrp6aef1g8//HBD31mpUiV169bN/v7IkSMaPny4UlJSXNPpQnDixAkNHTpUtWrVUsmSJRUQEKBGjRrpvffeU3Z29k1///Dhw2Wz2VzQ07++vXv3qnTp0urUqVOe62fNmiWbzaYPPvigiHsGuDcvqzsA4K8tMzNT//znPzVjxgyru/KX1b9/f23YsEGffPKJIiIiFBkZWeR9iIyM1Lp161S5cuUir22V999/37Lau3fvVnx8vI4dO6bnnntOI0aMUKlSpbRv3z795z//UYMGDXTq1CkFBgbeVJ0jR45oxIgRqlSpkurVq+eazrvQr7/+qvj4eJ09e1YDBw5UXFyczp8/r0WLFunFF1/UnDlz9PXXX6tkyZJWd7VYiI6O1oQJE9SzZ0/NmjVLXbp0sa9LS0tTnz59lJCQoGeffdbCXgLuh0AG4Ka0bNlSs2bN0qBBg3THHXdY3Z0idf78efn6+t70b9+3bNmiu+++W+3bt3dNx26Aj4+PGjVqZFn9ovTHH3+oZMmSqlWrliX1c3Jy1KFDB/3+++9at26dw5nkpk2bqmvXrvrmm29UokQJS/pXEDk5Obp48aJ8fHxu6js6deqk06dPa+PGjapWrZp93YMPPqimTZvqscce04ABA/Tvf/+7UPvijMv7z63MGKMLFy7Iz88v17oePXpowYIF6tOnj+677z77L4CeffZZGWM0ZcqUIunjX2E7AkWFSxYB3JTBgwcrJCREL7300jXbXeuSOJvNpuHDh9vfX77E6Oeff9YjjzyiwMBABQcHa8CAAbp48aJ27Nihli1bqnTp0qpUqZLGjBmTZ80LFy5owIABioiIkJ+fn5o2baoff/wxV7vNmzerXbt2Cg4Olq+vr+6880795z//cWhz+RLNpUuX6umnn1bZsmVVsmRJZWZm5jvmAwcO6IknnlBYWJh8fHxUs2ZNjR8/XpcuXZL0/19auWvXLn3zzTey2Wyy2Wzat2/fNbelMy5fOrpp0yY1adJEJUuW1O23364333zT3g8p/5/P4sWLVa9ePfn4+Cg6Olrjxo3LdQmYMz9bSdq5c6e6dOnisF3ee+89l435SpfH/9133ykuLk4lS5bU008/bV935SWLl8cxbtw4TZgwQdHR0SpVqpRiY2O1fv36XN9dkP0mL19++aV++eUXDR06NN/Lelu1amX/z2q3bt1UqVKlXG2udyne6tWr9be//U2S9NRTT9n3r8s/j/wu2by63uXtMmbMGL3++uuKjo6Wj4+PVq1adVPbYcGCBdq2bZuGDBniEMYue/TRRxUfH68pU6YoLS2tQH3Ja3/NizFG77//vurVqyc/Pz8FBQXp4Ycf1p49exzaXWv/WblypZo1a6aQkBD5+fmpQoUK6tSpk/74449rjrtSpUpq06aNFixYoLp168rX11e333673n333VxtT58+rUGDBik6Olre3t667bbb1K9fP507d86h3eVLef/973+rZs2a8vHx0fTp0/Ptw+XQ1bNnT0nSjBkz9NVXX2ny5Mm67bbbCrx9li1bpoceekjlypWTr6+vqlSpomeffVa///67Q7vL++oPP/yghx9+WEFBQW51Nh64Hs6QAbgppUuX1j//+U+9+OKLWrlype6//36XfXfnzp31xBNP6Nlnn9WyZcs0ZswYZWdna/ny5erVq5cGDRqkWbNm6aWXXlKVKlXUsWNHh8//3//9n+rXr6+PP/5YGRkZGj58uJo1a6Yff/xRt99+uyRp1apVatmypRo2bKh///vfCgwM1OzZs/Xoo4/qjz/+cLgfR5KefvpptW7dWjNmzNC5c+fyPYtx/PhxxcXFKSsrS6+99poqVaqkRYsWadCgQdq9e7fef/991a9fX+vWrVOHDh1UuXJl+38eXX3JYlpamv7+979r4MCBGjZsmBYsWKChQ4cqKipKTz75ZL6fW7FihR566CHFxsZq9uzZysnJ0ZgxY3T06NEb7su2bdsUFxenChUqaPz48YqIiNCSJUvUt29f/f777xo2bNgNf3d+UlNT9cQTT2jw4MEaNWqUPDyu/bvI9957TzVq1NDEiRMlSa+88ooefPBB7d27134JobP7zZWWLl0qSYV+RrR+/fqaOnWqnnrqKf3zn/9U69atJUnlypW7oe979913Va1aNY0bN04BAQGqWrXqTW2HZcuWSbr2dmjfvr2WLl2q1atX67HHHrtmX5zZX5999llNmzZNffv21VtvvaWTJ09q5MiRiouL008//aTw8HB727z2n8v3fTZp0kSffPKJypQpo8OHDyspKUlZWVnXPfOTkpKifv36afjw4YqIiNBnn32mF198UVlZWRo0aJCkP88gNW3aVIcOHdL//d//qW7dutq6dateffVV/fLLL1q+fLlDIP/yyy/1v//9T6+++qoiIiIUFhaWb/3IyEi99957evzxxzV69GiNHTtWnTp1sl/CWNDts3v3bsXGxuqZZ55RYGCg9u3bpwkTJuiee+7RL7/8kuv42LFjRz322GN67rnncoVKwK0ZALgBU6dONZLMpk2bTGZmprn99tvNXXfdZS5dumSMMaZp06amdu3a9vZ79+41kszUqVNzfZckM2zYMPv7YcOGGUlm/PjxDu3q1atnJJn58+fbl2VnZ5uyZcuajh072petWrXKSDL169e398cYY/bt22dKlChhnnnmGfuyGjVqmDvvvNNkZ2c71GrTpo2JjIw0OTk5DuN98sknC7R9hgwZYiSZDRs2OCx//vnnjc1mMzt27LAvq1ixomndunWBvleS6d27d57r5syZYySZVatW2Zc1bdo0z37UqlXLJCQk2N/n9fNp2LChiYqKMufPn7cvO336tAkODjZX/vPhzM82ISHBlCtXzmRkZDi0e+GFF4yvr685efLktYZ/w+NfsWJFrvZNmzY1TZs2zTWOOnXqmIsXL9qXb9y40Ugyn3/+uX1ZQfebvLRs2dJIMhcuXLjmWC/r2rWrqVixYq7ll/+eXKlixYqma9eu9vebNm3K92dz9fjzq3d5u1SuXNlkZWU5tC3s7fDNN98YSeatt966bl8Kur+uW7cuz+PLwYMHjZ+fnxk8eLB9WX77z9y5c40kk5KSkm/f81OxYkVjs9lyfbZFixYmICDAnDt3zhhjzOjRo42Hh4fZtGlTnrW//vpr+zJJJjAw8Lp/f67WuXNnI8mEh4eb48ePG2Oc2z5XunTpksnOzjb79+83ksx///tf+7rL++qrr77qVP8Ad8EliwBumre3t15//XVt3ry5QJcqFVSbNm0c3tesWVM2m02tWrWyL/Py8lKVKlXynOmxS5cuDr9BrlixouLi4uyXN+3atUu//vqr/v73v0uSLl68aH89+OCDSk1N1Y4dOxy+M7/Zya62cuVK1apVS3fffbfD8m7duskYo5UrVxboe1whIiIiVz/q1q2b5za77Ny5c9q0aZM6duwoX19f+/LSpUurbdu2N9SPCxcuaMWKFerQoYNKliyZa3tfuHAhz0sDb1ZQUJBTZ25bt24tT09P+/u6detKkn173ch+Uxy0a9fO4YxHUWwHY4wk5bo08+q+OLO/Llq0SDabTU888YRDnyMiInTHHXfkmqUzr/2nXr168vb2Vs+ePTV9+vRcl/JdT+3atXPdc9ulSxedPn3aPsPmokWLFBMTo3r16jn0MyEhIc/ZRO+//34FBQU51Y+RI0dKkvr27avQ0FB73YJun8uT0pQvX15eXl4qUaKEKlasKEnavn17rnoFPX4C7oZABsAlHnvsMdWvX18vv/yyS6aqlqTg4GCH997e3ipZsqTDf7guL79w4UKuz0dEROS57MSJE5Jkv5Rp0KBBKlGihMOrV69ekpTrXoiCXk544sSJPNtGRUXZ198IT09P5eTk5Lnu4sWLkpTrMqGQkJBcbX18fHT+/Pl866Snp+vSpUv5bsMbceLECV28eFGTJk3Ktb0ffPBBSbm399VuZPzOXgJ69fa6PFnE5e11I/vNlSpUqCDpzynI/0qu3o5FsR0u309Zvnz5a/bFmf316NGjMsYoPDw8V7/Xr19foL/zlStX1vLlyxUWFqbevXurcuXKqly5st555518x3KtPl257Mrj088//5yrj6VLl5Yx5oaPTVe6vG97e3vblxV0+1y6dEnx8fGaP3++Bg8erBUrVmjjxo32X6rkdXyxYgZZ4K+Ae8gAuITNZtNbb72lFi1a6MMPP8y1/nKIunoSjBsNJgVxeSKAq5dd/g/35d8IDx06NNf9Z5dVr17d4X1BZ1QMCQlRampqruVHjhxxqO2s8PBwHT58OM91l5dfef/LjQoKCpLNZst3G16poD/boKAgeXp6KjExUb17986zbnR09DX7dSPjd/UzqG5kv7lSQkKCPvzwQ3355ZcaMmTIdev5+vrmOXnM9cJrQb43IyOjwN979Xa82e1w+Vhxre3w5ZdfysvLK9fkI1f3xZn9NTQ0VDabTf/73//ynJnx6mX57T9NmjRRkyZNlJOTo82bN2vSpEnq16+fwsPDHe53y8u1+nnl8cnPz0+ffPJJnt9x9THEVft5QbfPli1b9NNPP2natGnq2rWrff2uXbvy/W6eBwfkjUAGwGWaN2+uFi1aaOTIkbl+ox0eHi5fX1/9/PPPDsv/+9//Flp/Pv/8cw0YMMD+n4D9+/dr7dq19oksqlevrqpVq+qnn37SqFGjXFr7gQce0OjRo/XDDz+ofv369uWffvqpbDab7rvvvhv63ubNm2v+/Pk6fvy4ypYta19ujNGcOXNUqVIlValS5ab77+/vr7vvvlvz58/X2LFj7aHrzJkzWrhwoUPbgv5sS5Ysqfvuu08//vij6tat6/Bb+YIqqvFfy83uNw899JDq1Kmj0aNHq02bNnnOtLhkyRL7rJiVKlXSsWPHdPToUXvYzMrK0pIlS65b6+qze1eqVKmS5syZo8zMTHu7EydOaO3atQoICLjud9/sdujQoYNq1aqlN998Ux07dsw10+IXX3yhpUuX6rnnnrvuWVln9tc2bdrozTff1OHDh9W5c2en+301T09PNWzYUDVq1NBnn32mH3744bqBbOvWrfrpp58cLlucNWuWSpcubT9etGnTRqNGjVJISMh1f1HhSgXdPpePq1eHNh4qDTiPQAbApd566y01aNBAx44dU+3ate3LL9+T8Mknn6hy5cq64447tHHjRs2aNavQ+nLs2DF16NBBPXr0UEZGhoYNGyZfX18NHTrU3uaDDz5Qq1atlJCQoG7duum2227TyZMntX37dv3www+aM2fODdXu37+/Pv30U7Vu3VojR45UxYoVtXjxYr3//vt6/vnn85zmuyBeffVVLVy4UA0bNtSQIUNUtWpVpaWl6aOPPtKmTZtceg/fa6+9ppYtW6pFixYaOHCgcnJy9NZbb8nf318nT560t3PmZ/vOO+/onnvuUZMmTfT888+rUqVKOnPmjHbt2qWFCxde9966ohz/tdzMfuPp6akFCxYoPj5esbGxev7553XffffJ399f+/fv19y5c7Vw4UKlp6dL+nP691dffVWPPfaY/vGPf+jChQt69913871080qVK1eWn5+fPvvsM9WsWVOlSpVSVFSUoqKilJiYqA8++EBPPPGEevTooRMnTmjMmDEFCmOu2g7z5s1TixYtFBsbq4EDByo2NlaZmZlauHChPvzwQzVt2lTjx48vUF8Kur82btxYPXv21FNPPaXNmzfr3nvvlb+/v1JTU7VmzRrVqVNHzz///DVr/fvf/9bKlSvVunVrVahQQRcuXLCfyWrevPl1+xoVFaV27dpp+PDhioyM1MyZM7Vs2TK99dZb9hka+/Xrp3nz5unee+9V//79VbduXV26dEkHDhzQ0qVLNXDgQDVs2LBA28YZBd0+NWrUUOXKlTVkyBAZYxQcHKyFCxfaZ88E4ATr5hMB8Fd25SyLV+vSpYuR5DDLojHGZGRkmGeeecaEh4cbf39/07ZtW7Nv3758Z1m8POvXZV27djX+/v656l09o+PlWRZnzJhh+vbta8qWLWt8fHxMkyZNzObNm3N9/qeffjKdO3c2YWFhpkSJEiYiIsLcf//95t///neBxpuf/fv3my5dupiQkBBTokQJU716dTN27NhcM885M8uiMcbs3LnTPPHEEyYyMtJ4eXmZMmXKmPj4+HxnErz652BM/jPpXT0b31dffWXq1q1rvL29TYUKFcybb76Z5+x+Bf3ZXq719NNPm9tuu82UKFHClC1b1sTFxZnXX3+9yMZ/eV1esyyOHTs2V9u8xlGQ/eZaTp06ZV577TVTv359U6pUKVOiRAlToUIF88QTT5jvv//eoe3XX39t6tWrZ/z8/Mztt99uJk+eXKBZFo0x5vPPPzc1atQwJUqUyDWO6dOnm5o1axpfX19Tq1Yt88UXX+S7b+S1XVyxHX7//XczZMgQU6NGDePr62tKlSpl7r77bjN58uRcMylery8F3V+NMeaTTz4xDRs2NP7+/sbPz89UrlzZPPnkkw7HiPz2n3Xr1pkOHTqYihUrGh8fHxMSEmKaNm1qvvrqq+uO9/Lf97lz55ratWsbb29vU6lSJTNhwoRcbc+ePWv++c9/murVqxtvb28TGBho6tSpY/r372/S0tLs7XSN2Uev5VrbsyDbZ9u2baZFixamdOnSJigoyDzyyCPmwIEDBT6mA/iTzZj/N4URAAAFMHz4cI0YMUL88wE4r1KlSoqJidGiRYus7gqAWwSzLAIAAACARQhkAAAAAGARLlkEAAAAAItwhgwAAAAALEIgAwAAAACLEMgAAAAAwCI8GNqFLl26pCNHjqh06dL2J9gDAAAAcD/GGJ05c0ZRUVHy8Mj/PBiBzIWOHDmi8uXLW90NAAAAALeIgwcPqly5cvmuJ5C5UOnSpSX9udEDAgIs7g0AAAAAq5w+fVrly5e3Z4T8EMhc6PJligEBAQQyAAAAANe9lYlJPQAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACziZXUHAAAAAKDSkMU3/Nl9b7Z2YU+KFmfIAAAAAMAiBDIAAAAAsAiBDAAAAAAsYmkgGz16tP72t7+pdOnSCgsLU/v27bVjxw6HNt26dZPNZnN4NWrUyKFNZmam+vTpo9DQUPn7+6tdu3Y6dOiQQ5v09HQlJiYqMDBQgYGBSkxM1KlTpxzaHDhwQG3btpW/v79CQ0PVt29fZWVlFcrYAQAAAMDSQPbtt9+qd+/eWr9+vZYtW6aLFy8qPj5e586dc2jXsmVLpaam2l9ff/21w/p+/fppwYIFmj17ttasWaOzZ8+qTZs2ysnJsbfp0qWLUlJSlJSUpKSkJKWkpCgxMdG+PicnR61bt9a5c+e0Zs0azZ49W/PmzdPAgQMLdyMAAAAAcFuWzrKYlJTk8H7q1KkKCwtTcnKy7r33XvtyHx8fRURE5PkdGRkZmjJlimbMmKHmzZtLkmbOnKny5ctr+fLlSkhI0Pbt25WUlKT169erYcOGkqSPPvpIsbGx2rFjh6pXr66lS5dq27ZtOnjwoKKioiRJ48ePV7du3fTGG28oICCgMDYBAAAAADd2S91DlpGRIUkKDg52WL569WqFhYWpWrVq6tGjh44dO2Zfl5ycrOzsbMXHx9uXRUVFKSYmRmvXrpUkrVu3ToGBgfYwJkmNGjVSYGCgQ5uYmBh7GJOkhIQEZWZmKjk52fWDBQAAAOD2bpnnkBljNGDAAN1zzz2KiYmxL2/VqpUeeeQRVaxYUXv37tUrr7yi+++/X8nJyfLx8VFaWpq8vb0VFBTk8H3h4eFKS0uTJKWlpSksLCxXzbCwMIc24eHhDuuDgoLk7e1tb3O1zMxMZWZm2t+fPn36xgYPAAAAwC3dMoHshRde0M8//6w1a9Y4LH/00Uftf46JidFdd92lihUravHixerYsWO+32eMkc1ms7+/8s830+ZKo0eP1ogRI/IfFAAAAABcwy1xyWKfPn301VdfadWqVSpXrtw120ZGRqpixYrauXOnJCkiIkJZWVlKT093aHfs2DH7Ga+IiAgdPXo013cdP37coc3VZ8LS09OVnZ2d68zZZUOHDlVGRob9dfDgwYINGAAAAABkcSAzxuiFF17Q/PnztXLlSkVHR1/3MydOnNDBgwcVGRkpSWrQoIFKlCihZcuW2dukpqZqy5YtiouLkyTFxsYqIyNDGzdutLfZsGGDMjIyHNps2bJFqamp9jZLly6Vj4+PGjRokGdffHx8FBAQ4PACAAAAgIKy9JLF3r17a9asWfrvf/+r0qVL289QBQYGys/PT2fPntXw4cPVqVMnRUZGat++ffq///s/hYaGqkOHDva23bt318CBAxUSEqLg4GANGjRIderUsc+6WLNmTbVs2VI9evTQBx98IEnq2bOn2rRpo+rVq0uS4uPjVatWLSUmJmrs2LE6efKkBg0apB49ehC0AAAAABQKS8+Q/etf/1JGRoaaNWumyMhI++uLL76QJHl6euqXX37RQw89pGrVqqlr166qVq2a1q1bp9KlS9u/5+2331b79u3VuXNnNW7cWCVLltTChQvl6elpb/PZZ5+pTp06io+PV3x8vOrWrasZM2bY13t6emrx4sXy9fVV48aN1blzZ7Vv317jxo0rug0CAAAAwK3YjDHG6k4UF6dPn1ZgYKAyMjI4qwYAAAA4odKQxTf82X1vtnZhT1yjoNnglpjUAwAAAADcEYEMAAAAACxCIAMAAAAAi9wyD4YGAADAX0dxu98HsApnyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCLMsggAAIC/DGZ3LBps56LDGTIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALCIl9UdAAAAAJC3SkMW3/Bn973Z2oU9QWHhDBkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBEeDA0AAPAXx8ODgb8uzpABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARbys7gAAAABwq6s0ZPENf3bfm61d2BMUN5whAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxiaSAbPXq0/va3v6l06dIKCwtT+/bttWPHDoc2xhgNHz5cUVFR8vPzU7NmzbR161aHNpmZmerTp49CQ0Pl7++vdu3a6dChQw5t0tPTlZiYqMDAQAUGBioxMVGnTp1yaHPgwAG1bdtW/v7+Cg0NVd++fZWVlVUoYwcAAAAASwPZt99+q969e2v9+vVatmyZLl68qPj4eJ07d87eZsyYMZowYYImT56sTZs2KSIiQi1atNCZM2fsbfr166cFCxZo9uzZWrNmjc6ePas2bdooJyfH3qZLly5KSUlRUlKSkpKSlJKSosTERPv6nJwctW7dWufOndOaNWs0e/ZszZs3TwMHDiyajQEAAADA7Vg67X1SUpLD+6lTpyosLEzJycm69957ZYzRxIkT9fLLL6tjx46SpOnTpys8PFyzZs3Ss88+q4yMDE2ZMkUzZsxQ8+bNJUkzZ85U+fLltXz5ciUkJGj79u1KSkrS+vXr1bBhQ0nSRx99pNjYWO3YsUPVq1fX0qVLtW3bNh08eFBRUVGSpPHjx6tbt2564403FBAQUIRbBgAAAIA7uKXuIcvIyJAkBQcHS5L27t2rtLQ0xcfH29v4+PioadOmWrt2rSQpOTlZ2dnZDm2ioqIUExNjb7Nu3ToFBgbaw5gkNWrUSIGBgQ5tYmJi7GFMkhISEpSZmank5ORCGjEAAAAAd3bLPBjaGKMBAwbonnvuUUxMjCQpLS1NkhQeHu7QNjw8XPv377e38fb2VlBQUK42lz+flpamsLCwXDXDwsIc2lxdJygoSN7e3vY2V8vMzFRmZqb9/enTpws8XgAAUPzw8GAAzrplzpC98MIL+vnnn/X555/nWmez2RzeG2NyLbva1W3yan8jba40evRo+yQhgYGBKl++/DX7BAAAAABXuiUCWZ8+ffTVV19p1apVKleunH15RESEJOU6Q3Xs2DH72ayIiAhlZWUpPT39mm2OHj2aq+7x48cd2lxdJz09XdnZ2bnOnF02dOhQZWRk2F8HDx50ZtgAAAAA3JylgcwYoxdeeEHz58/XypUrFR0d7bA+OjpaERERWrZsmX1ZVlaWvv32W8XFxUmSGjRooBIlSji0SU1N1ZYtW+xtYmNjlZGRoY0bN9rbbNiwQRkZGQ5ttmzZotTUVHubpUuXysfHRw0aNMiz/z4+PgoICHB4AQAAAEBBWXoPWe/evTVr1iz997//VenSpe1nqAIDA+Xn5yebzaZ+/fpp1KhRqlq1qqpWrapRo0apZMmS6tKli71t9+7dNXDgQIWEhCg4OFiDBg1SnTp17LMu1qxZUy1btlSPHj30wQcfSJJ69uypNm3aqHr16pKk+Ph41apVS4mJiRo7dqxOnjypQYMGqUePHgQtAAAAAIXC0kD2r3/9S5LUrFkzh+VTp05Vt27dJEmDBw/W+fPn1atXL6Wnp6thw4ZaunSpSpcubW//9ttvy8vLS507d9b58+f1wAMPaNq0afL09LS3+eyzz9S3b1/7bIzt2rXT5MmT7es9PT21ePFi9erVS40bN5afn5+6dOmicePGFdLoAQAAALg7SwOZMea6bWw2m4YPH67hw4fn28bX11eTJk3SpEmT8m0THBysmTNnXrNWhQoVtGjRouv2CQAAAABc4ZaY1AMAAAAA3BGBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiTgey6dOna/Hixfb3gwcPVpkyZRQXF6f9+/e7tHMAAAAAUJw5HchGjRolPz8/SdK6des0efJkjRkzRqGhoerfv7/LOwgAAAAAxZWXsx84ePCgqlSpIkn68ssv9fDDD6tnz55q3LixmjVr5ur+AQAAAECx5fQZslKlSunEiROSpKVLl6p58+aSJF9fX50/f961vQMAAACAYszpM2QtWrTQM888ozvvvFO//fabWrduLUnaunWrKlWq5Or+AQAAAECx5fQZsvfee09xcXE6fvy45s2bp5CQEElScnKyHn/8cZd3EAAAAACKK6fOkF28eFHvvPOOBg8erPLlyzusGzFihEs7BgAAAADFnVNnyLy8vDR27Fjl5OQUVn8AAAAAwG04fcli8+bNtXr16kLoCgAAAAC4F6cn9WjVqpWGDh2qLVu2qEGDBvL393dY365dO5d1DgAAAACKM6cD2fPPPy9JmjBhQq51NpuNyxkBAAAAoICcDmSXLl0qjH4AAAAAgNtx+h6yK124cMFV/QAAAAAAt+N0IMvJydFrr72m2267TaVKldKePXskSa+88oqmTJni8g4CAAAAQHHldCB74403NG3aNI0ZM0be3t725XXq1NHHH3/s0s4BAAAAQHHmdCD79NNP9eGHH+rvf/+7PD097cvr1q2rX3/91aWdAwAAAIDizOlAdvjwYVWpUiXX8kuXLik7O9slnQIAAAAAd+B0IKtdu7b+97//5Vo+Z84c3XnnnS7pFAAAAAC4A6envR82bJgSExN1+PBhXbp0SfPnz9eOHTv06aefatGiRYXRRwAAAAAolpw+Q9a2bVt98cUX+vrrr2Wz2fTqq69q+/btWrhwoVq0aFEYfQQAAACAYsnpM2SSlJCQoISEBFf3BQAAAADcyk09GBoAAAAAcOMKdIYsKChINputQF948uTJm+oQAAAAALiLAgWyiRMn2v984sQJvf7660pISFBsbKwkad26dVqyZIleeeWVQukkAAAAABRHBQpkXbt2tf+5U6dOGjlypF544QX7sr59+2ry5Mlavny5+vfv7/peAgAAAEAx5PQ9ZEuWLFHLli1zLU9ISNDy5ctd0ikAAAAAcAdOB7KQkBAtWLAg1/Ivv/xSISEhLukUAAAAALgDp6e9HzFihLp3767Vq1fb7yFbv369kpKS9PHHH7u8gwAAAABQXDl9hqxbt25au3atypQpo/nz52vevHkKDAzU999/r27dujn1Xd99953atm2rqKgo2Ww2ffnll7lq2Ww2h1ejRo0c2mRmZqpPnz4KDQ2Vv7+/2rVrp0OHDjm0SU9PV2JiogIDAxUYGKjExESdOnXKoc2BAwfUtm1b+fv7KzQ0VH379lVWVpZT4wEAAAAAZzh1hiw7O1s9e/bUK6+8os8+++ymi587d0533HGHnnrqKXXq1CnPNi1bttTUqVPt7729vR3W9+vXTwsXLtTs2bMVEhKigQMHqk2bNkpOTpanp6ckqUuXLjp06JCSkpIkST179lRiYqIWLlwoScrJyVHr1q1VtmxZrVmzRidOnFDXrl1ljNGkSZNuepwAAAAAkBenAlmJEiW0YMECl01v36pVK7Vq1eqabXx8fBQREZHnuoyMDE2ZMkUzZsxQ8+bNJUkzZ85U+fLltXz5ciUkJGj79u1KSkrS+vXr1bBhQ0nSRx99pNjYWO3YsUPVq1fX0qVLtW3bNh08eFBRUVGSpPHjx6tbt2564403FBAQ4JLxAgAAAMCVnL5ksUOHDrkuLSxMq1evVlhYmKpVq6YePXro2LFj9nXJycnKzs5WfHy8fVlUVJRiYmK0du1aSX8+Iy0wMNAexiSpUaNGCgwMdGgTExNjD2PSn7NGZmZmKjk5Od++ZWZm6vTp0w4vAAAAACgopyf1qFKlil577TWtXbtWDRo0kL+/v8P6vn37uqxzrVq10iOPPKKKFStq7969euWVV3T//fcrOTlZPj4+SktLk7e3t4KCghw+Fx4errS0NElSWlqawsLCcn13WFiYQ5vw8HCH9UFBQfL29ra3ycvo0aM1YsSImx0mAAAAADfldCD7+OOPVaZMGSUnJ+c6e2Sz2VwayB599FH7n2NiYnTXXXepYsWKWrx4sTp27Jjv54wxstlsDv1yRZurDR06VAMGDLC/P336tMqXL5//gAAAAADgCk4Hsr179xZGPwokMjJSFStW1M6dOyVJERERysrKUnp6usNZsmPHjikuLs7e5ujRo7m+6/jx4/azYhEREdqwYYPD+vT0dGVnZ+c6c3YlHx8f+fj43PS4AAAAALgnp+8hu+z333/XiRMnXNmX6zpx4oQOHjyoyMhISVKDBg1UokQJLVu2zN4mNTVVW7ZssQey2NhYZWRkaOPGjfY2GzZsUEZGhkObLVu2KDU11d5m6dKl8vHxUYMGDYpiaAAAAADckFOB7NSpU+rdu7dCQ0MVHh6usLAwhYaG6oUXXsj1XK+COHv2rFJSUpSSkiLpz7NvKSkpOnDggM6ePatBgwZp3bp12rdvn1avXq22bdsqNDRUHTp0kCQFBgaqe/fuGjhwoFasWKEff/xRTzzxhOrUqWOfdbFmzZpq2bKlevToofXr12v9+vXq0aOH2rRpo+rVq0uS4uPjVatWLSUmJurHH3/UihUrNGjQIPXo0YMZFgEAAAAUmgJfsnjy5EnFxsbq8OHD+vvf/66aNWvKGKPt27dr2rRpWrFihdauXZtrgo1r2bx5s+677z77+8v3Y3Xt2lX/+te/9Msvv+jTTz/VqVOnFBkZqfvuu09ffPGFSpcubf/M22+/LS8vL3Xu3Fnnz5/XAw88oGnTptmfQSZJn332mfr27WufjbFdu3aaPHmyfb2np6cWL16sXr16qXHjxvLz81OXLl00bty4Ao8FAAAAAJxV4EA2cuRIeXt7a/fu3bnuqxo5cqTi4+M1cuRIvf322wUu3qxZMxlj8l2/ZMmS636Hr6+vJk2adM0HOAcHB2vmzJnX/J4KFSpo0aJF160HAAAAAK5S4EsWv/zyS40bNy7PSS4iIiI0ZswYLViwwKWdAwAAAIDirMCBLDU1VbVr1853fUxMzDWf2QUAAAAAcFTgQBYaGqp9+/blu37v3r0KCQlxRZ8AAAAAwC0UOJC1bNlSL7/8srKysnKty8zM1CuvvKKWLVu6tHMAAAAAUJwVeFKPESNG6K677lLVqlXVu3dv1ahRQ5K0bds2vf/++8rMzNSMGTMKraMAAAAAUNwUOJCVK1dO69atU69evTR06FD77Ig2m00tWrTQ5MmTVb58+ULrKAAAAAAUNwUOZJIUHR2tb775Runp6dq5c6ckqUqVKgoODi6UzgEAAABAceZUILssKChId999t6v7AgAAAABupcCTegAAAAAAXItABgAAAAAWIZABAAAAgEUKFMjq16+v9PR0SdLIkSP1xx9/FGqnAAAAAMAdFCiQbd++XefOnZP05/PIzp49W6idAgAAAAB3UKBZFuvVq6ennnpK99xzj4wxGjdunEqVKpVn21dffdWlHQQAAACA4qpAgWzatGkaNmyYFi1aJJvNpm+++UZeXrk/arPZCGQAAAAAUEAFCmTVq1fX7NmzJUkeHh5asWKFwsLCCrVjAAAAAFDcOf1g6EuXLhVGPwAAAADA7TgdyCRp9+7dmjhxorZv3y6bzaaaNWvqxRdfVOXKlV3dPwAAAAAotpx+DtmSJUtUq1Ytbdy4UXXr1lVMTIw2bNig2rVra9myZYXRRwAAAAAolpw+QzZkyBD1799fb775Zq7lL730klq0aOGyzgEAAABAceb0GbLt27ere/fuuZY//fTT2rZtm0s6BQAAAADuwOlAVrZsWaWkpORanpKSwsyLAAAAAOAEpy9Z7NGjh3r27Kk9e/YoLi5ONptNa9as0VtvvaWBAwcWRh8BAAAAoFhyOpC98sorKl26tMaPH6+hQ4dKkqKiojR8+HD17dvX5R0EAAAAgOLK6UBms9nUv39/9e/fX2fOnJEklS5d2uUdAwAAAIDi7oaeQ3YZQQwAAAAAbpzTk3oAAAAAAFyDQAYAAAAAFiGQAQAAAIBFnApk2dnZuu+++/Tbb78VVn8AAAAAwG04FchKlCihLVu2yGazFVZ/AAAAAMBtOH3J4pNPPqkpU6YURl8AAAAAwK04Pe19VlaWPv74Yy1btkx33XWX/P39HdZPmDDBZZ0DAAAAgOLM6UC2ZcsW1a9fX5Jy3UvGpYwAAAAAUHBOB7JVq1YVRj8AAAAAwO3c8LT3u3bt0pIlS3T+/HlJkjHGZZ0CAAAAAHfgdCA7ceKEHnjgAVWrVk0PPvigUlNTJUnPPPOMBg4c6PIOAgAAAEBx5XQg69+/v0qUKKEDBw6oZMmS9uWPPvqokpKSXNo5AAAAACjOnL6HbOnSpVqyZInKlSvnsLxq1arav3+/yzoGAAAAAMWd02fIzp0753Bm7LLff/9dPj4+LukUAAAAALgDpwPZvffeq08//dT+3maz6dKlSxo7dqzuu+8+l3YOAAAAAIozpy9ZHDt2rJo1a6bNmzcrKytLgwcP1tatW3Xy5El9//33hdFHAAAAACiWnA5ktWrV0s8//6x//etf8vT01Llz59SxY0f17t1bkZGRhdFHAAAAp1QasviGP7vvzdYu7AkAXJvTgUySIiIiNGLECFf3BQAAAADcyg0FsvT0dE2ZMkXbt2+XzWZTzZo19dRTTyk4ONjV/QMAAACAYsvpST2+/fZbRUdH691331V6erpOnjypd999V9HR0fr2228Lo48AAAAAUCw5fYasd+/e6ty5s/0eMknKyclRr1691Lt3b23ZssXlnQQAAACA4sjpM2S7d+/WwIED7WFMkjw9PTVgwADt3r3bpZ0DAAAAgOLM6UBWv359bd++Pdfy7du3q169eq7oEwAAAAC4hQJdsvjzzz/b/9y3b1+9+OKL2rVrlxo1aiRJWr9+vd577z29+eabhdNLAAAAACiGChTI6tWrJ5vNJmOMfdngwYNztevSpYseffRR1/UOAAAAAIqxAgWyvXv3FnY/AAAAAMDtFCiQVaxYsbD7AQAAAABu54YeDH348GF9//33OnbsmC5duuSwrm/fvi7pGAAAAAAUd04HsqlTp+q5556Tt7e3QkJCZLPZ7OtsNhuBDAAAAAAKyOlA9uqrr+rVV1/V0KFD5eHh9Kz5AAAAAID/x+lE9ccff+ixxx4jjAEAAADATXI6VXXv3l1z5swpjL4AAAAAgFtx+pLF0aNHq02bNkpKSlKdOnVUokQJh/UTJkxwWecAAAAAoDhzOpCNGjVKS5YsUfXq1SUp16QeAAAAAICCcTqQTZgwQZ988om6detWCN0BAAAAAPfh9D1kPj4+aty4cWH0BQAAAADcitOB7MUXX9SkSZMKoy8AAAAA4FacvmRx48aNWrlypRYtWqTatWvnmtRj/vz5LuscAAAAABRnTgeyMmXKqGPHjoXRFwAAAABwK04HsqlTpxZGPwAAAADA7Th9DxkAAAAAwDWcPkMWHR19zeeN7dmz56Y6BAAAAADuwulA1q9fP4f32dnZ+vHHH5WUlKR//OMfruoXAAAAABR7TgeyF198Mc/l7733njZv3nzTHQIAAAAAd+Gye8hatWqlefPmuerrAAAAAKDYc1kgmzt3roKDg131dQAAAABQ7Dl9yeKdd97pMKmHMUZpaWk6fvy43n//fZd2DgAAAACKM6cDWfv27R3ee3h4qGzZsmrWrJlq1Kjhqn4BAAAAQLHndCAbNmxYYfQDAAAAANyOpQ+G/u6779S2bVtFRUXJZrPpyy+/dFhvjNHw4cMVFRUlPz8/NWvWTFu3bnVok5mZqT59+ig0NFT+/v5q166dDh065NAmPT1diYmJCgwMVGBgoBITE3Xq1CmHNgcOHFDbtm3l7++v0NBQ9e3bV1lZWYUxbAAAAACQ5EQg8/DwkKen5zVfXl7OnXA7d+6c7rjjDk2ePDnP9WPGjNGECRM0efJkbdq0SREREWrRooXOnDljb9OvXz8tWLBAs2fP1po1a3T27Fm1adNGOTk59jZdunRRSkqKkpKSlJSUpJSUFCUmJtrX5+TkqHXr1jp37pzWrFmj2bNna968eRo4cKBT4wEAAAAAZxQ4QS1YsCDfdWvXrtWkSZNkjHGqeKtWrdSqVas81xljNHHiRL388svq2LGjJGn69OkKDw/XrFmz9OyzzyojI0NTpkzRjBkz1Lx5c0nSzJkzVb58eS1fvlwJCQnavn27kpKStH79ejVs2FCS9NFHHyk2NlY7duxQ9erVtXTpUm3btk0HDx5UVFSUJGn8+PHq1q2b3njjDQUEBDg1LgAAAAAoiAKfIXvooYdyvapXr65p06Zp/PjxeuSRR7Rjxw6XdWzv3r1KS0tTfHy8fZmPj4+aNm2qtWvXSpKSk5OVnZ3t0CYqKkoxMTH2NuvWrVNgYKA9jElSo0aNFBgY6NAmJibGHsYkKSEhQZmZmUpOTnbZmAAAAADgSjd0D9mRI0fUo0cP1a1bVxcvXlRKSoqmT5+uChUquKxjaWlpkqTw8HCH5eHh4fZ1aWlp8vb2VlBQ0DXbhIWF5fr+sLAwhzZX1wkKCpK3t7e9TV4yMzN1+vRphxcAAAAAFJRTgSwjI0MvvfSSqlSpoq1bt2rFihVauHChYmJiCqt/Ds88k/68lPHqZVe7uk1e7W+kzdVGjx5tnygkMDBQ5cuXv2a/AAAAAOBKBQ5kY8aM0e23365Fixbp888/19q1a9WkSZNC61hERIQk5TpDdezYMfvZrIiICGVlZSk9Pf2abY4ePZrr+48fP+7Q5uo66enpys7OznXm7EpDhw5VRkaG/XXw4EEnRwkAAADAnRU4kA0ZMkQXLlxQlSpVNH36dHXs2DHPl6tER0crIiJCy5Ytsy/LysrSt99+q7i4OElSgwYNVKJECYc2qamp2rJli71NbGysMjIytHHjRnubDRs2KCMjw6HNli1blJqaam+zdOlS+fj4qEGDBvn20cfHRwEBAQ4vAAAAACioAs+y+OSTT173UkFnnT17Vrt27bK/37t3r1JSUhQcHKwKFSqoX79+GjVqlKpWraqqVatq1KhRKlmypLp06SJJCgwMVPfu3TVw4ECFhIQoODhYgwYNUp06deyzLtasWVMtW7ZUjx499MEHH0iSevbsqTZt2qh69eqSpPj4eNWqVUuJiYkaO3asTp48qUGDBqlHjx6ELAAAAACFpsCBbNq0aS4vvnnzZt1333329wMGDJAkde3aVdOmTdPgwYN1/vx59erVS+np6WrYsKGWLl2q0qVL2z/z9ttvy8vLS507d9b58+f1wAMPaNq0afL09LS3+eyzz9S3b1/7bIzt2rVzePaZp6enFi9erF69eqlx48by8/NTly5dNG7cOJePGQAAAAAuc+5Jzi7WrFmzaz67zGazafjw4Ro+fHi+bXx9fTVp0iRNmjQp3zbBwcGaOXPmNftSoUIFLVq06Lp9BgAAAABXuaFp7wEAAAAAN49ABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWMTL6g4AAG4dlYYsvuHP7nuztQt7AgCAe+AMGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEV4DhkA3IJ4HhgAAO6BM2QAAAAAYBECGQAAAABYhEAGAAAAABbhHjIAgOW4Zw4A4K44QwYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFrmlA9nw4cNls9kcXhEREfb1xhgNHz5cUVFR8vPzU7NmzbR161aH78jMzFSfPn0UGhoqf39/tWvXTocOHXJok56ersTERAUGBiowMFCJiYk6depUUQwRAAAAgBu7pQOZJNWuXVupqan21y+//GJfN2bMGE2YMEGTJ0/Wpk2bFBERoRYtWujMmTP2Nv369dOCBQs0e/ZsrVmzRmfPnlWbNm2Uk5Njb9OlSxelpKQoKSlJSUlJSklJUWJiYpGOEwAAAID78bK6A9fj5eXlcFbsMmOMJk6cqJdfflkdO3aUJE2fPl3h4eGaNWuWnn32WWVkZGjKlCmaMWOGmjdvLkmaOXOmypcvr+XLlyshIUHbt29XUlKS1q9fr4YNG0qSPvroI8XGxmrHjh2qXr160Q0WAAAAgFu55c+Q7dy5U1FRUYqOjtZjjz2mPXv2SJL27t2rtLQ0xcfH29v6+PioadOmWrt2rSQpOTlZ2dnZDm2ioqIUExNjb7Nu3ToFBgbaw5gkNWrUSIGBgfY2AAAAAFAYbukzZA0bNtSnn36qatWq6ejRo3r99dcVFxenrVu3Ki0tTZIUHh7u8Jnw8HDt379fkpSWliZvb28FBQXlanP582lpaQoLC8tVOywszN4mP5mZmcrMzLS/P336tPODBAAAAOC2bulA1qpVK/uf69Spo9jYWFWuXFnTp09Xo0aNJEk2m83hM8aYXMuudnWbvNoX5HtGjx6tESNGXHccAAAAAJCXW/6SxSv5+/urTp062rlzp/2+sqvPYh07dsx+1iwiIkJZWVlKT0+/ZpujR4/mqnX8+PFcZ9+uNnToUGVkZNhfBw8evOGxAQAAAHA/f6lAlpmZqe3btysyMlLR0dGKiIjQsmXL7OuzsrL07bffKi4uTpLUoEEDlShRwqFNamqqtmzZYm8TGxurjIwMbdy40d5mw4YNysjIsLfJj4+PjwICAhxeAAAAAFBQt/Qli4MGDVLbtm1VoUIFHTt2TK+//rpOnz6trl27ymazqV+/fho1apSqVq2qqlWratSoUSpZsqS6dOkiSQoMDFT37t01cOBAhYSEKDg4WIMGDVKdOnXssy7WrFlTLVu2VI8ePfTBBx9Iknr27Kk2bdowwyIAAACAQnVLB7JDhw7p8ccf1++//66yZcuqUaNGWr9+vSpWrChJGjx4sM6fP69evXopPT1dDRs21NKlS1W6dGn7d7z99tvy8vJS586ddf78eT3wwAOaNm2aPD097W0+++wz9e3b1z4bY7t27TR58uSiHSwAAAAAt3NLB7LZs2dfc73NZtPw4cM1fPjwfNv4+vpq0qRJmjRpUr5tgoODNXPmzBvtJgAAAADckL/UPWQAAAAAUJwQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAs4mV1BwAAsEqlIYtv+LP73mztwp4AANwVZ8gAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAswnPIAABAoeFZbwBwbZwhAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAswoOh3QAP5QQAAABuTQQyFBqCIAAAAHBtBDIAANwAvyQDgFsT95ABAAAAgEUIZAAAAABgES5ZBACgiHH5IADgMs6QAQAAAIBFCGQAAAAAYBECGQAAAABYhHvIUOzc6L0Z3JcBAACAosYZMgAAAACwCGfIABdgxjQAAADcCAIZ8BdGEAQAAPhrI5ABcBpBEAAAwDW4hwwAAAAALEIgAwAAAACLcMkigL8MLpUEAADFDWfIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIsQyAAAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAAAAACxCIAMAAAAAixDIAAAAAMAiXlZ3AAAAAACsUmnI4hv+7L43W990fc6QAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkF3l/fffV3R0tHx9fdWgQQP973//s7pLAAAAAIopAtkVvvjiC/Xr108vv/yyfvzxRzVp0kStWrXSgQMHrO4aAAAAgGKIQHaFCRMmqHv37nrmmWdUs2ZNTZw4UeXLl9e//vUvq7sGAAAAoBjiOWT/T1ZWlpKTkzVkyBCH5fHx8Vq7dm2en8nMzFRmZqb9fUZGhiTp9OnTebaPGbbkhvu3ZUTCDX/2UuYfN/zZ/MZSHOu601ipe+tzt21M3cKv605jpW7R1HWnsVK3aOoWt7FeXmeMueZ32Mz1WriJI0eO6LbbbtP333+vuLg4+/JRo0Zp+vTp2rFjR67PDB8+XCNGjCjKbgIAAAD4Czl48KDKlSuX73rOkF3FZrM5vDfG5Fp22dChQzVgwAD7+0uXLunkyZMKCQnJ9zP5OX36tMqXL6+DBw8qICDA+Y7fACtqUrd413WnsVKXfYq6f8267jRW6hbvuu401r9qXWOMzpw5o6ioqGu2I5D9P6GhofL09FRaWprD8mPHjik8PDzPz/j4+MjHx8dhWZkyZW6qHwEBAUW6k1lVk7rFu647jZW6xbcmdYt3XXcaK3WLd113GutfsW5gYOB12zCpx//j7e2tBg0aaNmyZQ7Lly1b5nAJIwAAAAC4CmfIrjBgwAAlJibqrrvuUmxsrD788EMdOHBAzz33nNVdAwAAAFAMEciu8Oijj+rEiRMaOXKkUlNTFRMTo6+//loVK1Ys9No+Pj4aNmxYrksgi1tN6hbvuu40VuoW35rULd513Wms1C3edd1prMW9LrMsAgAAAIBFuIcMAAAAACxCIAMAAAAAixDIAAAAAMAiBDIAAAAAsAiBDAAAAAAsQiADAAAAAIvwHDI3s3PnTq1du1ZpaWmy2WwKDw9XXFycqlatakl/zp07p+TkZN17772W1C8sOTk58vT0tL/fsGGDMjMzFRsbqxIlShRZP5566im98cYbioqKKpJ66enp2rVrlyIjI1WuXLkiqXnq1CnNmTNHBw4cUMWKFfXII48oMDDQ5XWSk5PVoEEDl39vQRw7dkxbt25VgwYNFBAQoKNHj2r69Om6dOmSWrdurTp16hRa7T179mjNmjVKTU2Vp6enoqOj1aJFCwUEBBRaTY5TRYPjFMcpV3K345R0ax2rOE4VrkI/ThlYZvfu3Wb69OnmzTffNGPHjjVz5841GRkZhVLr1KlTpl27dsZms5kyZcqYatWqmapVq5oyZcoYDw8P89BDDxVa7WtJSUkxHh4eLv/erKws849//MNUrlzZ/O1vfzOffPKJw/q0tLRCqXvkyBHTuHFj4+npae69915z8uRJ07p1a2Oz2YzNZjPVqlUzR44ccXndn376Kc9XiRIlzIIFC+zvXWno0KHm3Llzxpg/t3ePHj2Mh4eHsdlsxsPDw3To0MGcP3/epTWNMaZTp05m3rx5xhhjtm7dakJDQ03ZsmVNw4YNTXh4uImIiDDbtm1zeV2bzWZuv/1288Ybb5hDhw65/Pvzs2rVKuPv729sNpuJjIw0P/30kylXrpypWrWqqV69uvHx8TFLlixxed2zZ8+ahx9+2L7venh4mIiICOPp6WlKlSplJk+e7PKaHKc4TnGcujkcpwr/OGXMrXms4jjlGlYcp4wxhkBmASsOIImJiaZOnTpm/fr1udatX7/e1K1b1zz55JMur3s9hXUAGTZsmAkPDzdjx441L7/8sgkMDDQ9e/a0r09LSzM2m83ldRMTE01cXJz56quvzKOPPmri4uJMkyZNzKFDh8yBAwdMkyZNTO/evV1e9/J+dHmfuvJ15X8+XMnDw8McPXrUGGPMG2+8YcqWLWvmzZtnDh8+bBYuXGhuu+02M3LkSJfWNMaY0NBQ89tvvxljjGnVqpXp0qWLyczMNMb8+Q9H9+7dTXx8vMvr2mw206NHDxMeHm68vLxM69atzYIFC8zFixddXutKjRs3Nr179zZnzpwxY8eONeXKlXPYhwYNGmTi4uJcXrdnz56mcePGJiUlxfz666+mU6dOZvDgwebcuXNmypQppmTJkuazzz5zaU2OUxynOE7dHI5ThX+cMubWPFZxnHINK45TxhDILGHFASQwMDDPA8dl69atM4GBgS6taYwxQUFB13wFBAQUyo5dpUoVs3DhQvv7Xbt2mapVq5pu3bqZS5cuFdpvdCIjI826deuMMcacOHHC2Gw2s3z5cvv6lStXmttvv93lde+44w7TunVrs337drNv3z6zb98+s3fvXuPl5WWWLVtmX+ZKNpvN/h+devXqmSlTpjis/+KLL0zNmjVdWtMYY/z8/MyuXbuMMX9u7x9++MFh/Y4dOwplX7483uzsbDN37lzz4IMPGk9PTxMeHm4GDx5sfv31V5fXNMaYgIAA+3izs7ONl5eX+fHHH+3rf/vtt0IZb2hoqNm8ebP9/cmTJ42vr6/9bMPkyZNNvXr1XFqT4xTHKY5TN4fjVOEfp4yx5ljFcar4HqeMMYZ7yCwwf/58JSUl6Y477pAkffTRR4qKitKwYcP09NNP6/z58xo7dqy6dOni0ro2m+2G1t2MzMxMPf/88/leO75//36NGDHC5XUPHz6smJgY+/vKlStr9erVuv/++5WYmKgxY8a4vKb0570Jt912myQpODhYJUuWVMWKFR36kZqa6vK6Gzdu1ODBg9WpUyfNnDlTd955p31dVFSUQx9c6fJ+c/DgQd19990O6+6++27t37/f5TXr1q2rlStXqnLlyoqIiND+/fsdxrt//375+fm5vO5lXl5e6tSpkzp16qTDhw/rk08+0bRp0zRu3Dg1btxY3333nUvreXt768KFC5KkrKwsXbp0yf5eks6fP18o19FfvHjR4f6LUqVK6eLFizp37pxKliyp+Ph4DRo0yOV1OU5xnHI1jlMcpwpDUR+rOE4V7+MUZ8gsUKZMGfulDMb8efmCl5eXOXbsmDHmz98k+fr6urTmE088YerWrWs2bdqUa92mTZtMvXr1TGJioktrGmNMXFycmThxYr7rC+sUe3R0tMNvUi47fPiwqVatmmnevHmh1K1QoYLZsGGD/f1LL71kTpw4YX+fkpJiQkNDXV73sq+//tqUK1fOjBo1yuTk5BgvLy+zdevWQqlls9nMG2+8Yd555x0TFRVlvvvuO4f1KSkpJigoyOV1Fy1aZIKDg83UqVPN1KlTTaVKlczHH39svv/+e/PJJ5+Y8uXLm3/84x8ur3vlpU95Wb58uenSpYvL6z700EOmTZs2Zs2aNaZnz57mrrvuMq1btzZnz541586dMw8//LBp2bKly+u2aNHC4XKQsWPHmsjISPv7H374weX7MsepP3Gcch2OU444TrmGFccqjlPF9zhlDJcsWsKKA0h6erpp2bKlsdlsJigoyFSvXt3UqFHDBAUFGQ8PD9OqVSuTnp7u0prG/HnN/vDhw/Ndf+DAAdOtWzeX1+3evbt5+umn81x36NAhU6VKlUI5gLRr1+6aB8zJkyeb+++/3+V1r5SWlmZatWpl7rnnnkI9gFSsWNFUqlTJ/rp63G+//bZp1KhRodSeO3euKVeuXK7rvH19fU2/fv0K5X6JKy99Kkq//fabqVKlirHZbKZ27drm8OHDpl27dsbLy8t4eXmZsmXLmuTkZJfXTU5ONsHBwSYiIsJUqFDBeHt7m88//9y+fvLkyS6/R4Lj1P+P45RrcJwqGu50nDLGmmMVxylHxek4ZYwxNmOMKZxzb8jPDz/8oBYtWsjb21ve3t5KS0vT9OnT9dhjj0mS3nvvPW3cuFHTp093ee3t27dr/fr1SktLkyRFREQoNjZWNWrUcHktK+3fv1+//vqrEhIS8lyfmpqqpUuXqmvXrkXar02bNsnPz8/h9H9heffdd7Vq1SpNmjSpyKZ2vtL69evl4+PjcLrflXJycpScnKy9e/fq0qVLioyMVIMGDVS6dOlCqfftt9+qcePG8vKy5krvEydOKCQkxP5+xYoVOn/+vGJjYx2Wu1JqaqoWLVqkzMxM3X///apVq1ah1Lnar7/+qnXr1nGc4jhV6IriOPXDDz9oz549HKeK2XFKco9jFcepojlOEcgsYuUBBAAAAMCtgUDmRowxWr58ea6HGDZu3FgPPPBAod0wT93iW/dWG2tcXJyaN29erLaxO9bNT3p6uhYuXKgnn3ySutT9y9akbvGpe+nSJXl4eOS5/NChQ6pQoUKxqEndIqhbaBdD4rpWrFhhRowYYZ577jnTu3dvM27cOIfJPlzp0KFDpl69esbT09PccccdJj4+3rRo0cLccccdxtPT09SvX79QHiJJ3eJb153GSt2iq3sthXXTOnXdt647jZW6rpORkWEeeeQR4+vra8LCwsyrr77qcE9gYUwFb0VN6hZdXaa9t8CxY8fUtm1bbdq0SR4eHjLG6M4779S8efP00ksvacCAAS6fRrRXr14KDg7WwYMHFRkZ6bAuNTVVTzzxhHr37q0vv/ySutS9ZWtSt3jXPX369DXXnzlzxmW1qOsedd1prNQturqvvPKKfvrpJ82YMUOnTp3S66+/ruTkZM2fP1/e3t6S/rzC4K9ek7pFV5czZBZ49NFHTfv27U16err5448/TO/eve2zAK1YscKEhIRcc2aZG+Hv729SUlLyXf/DDz8Yf39/l9akbvGu605jpW7R1LXZbMbDwyPf1+X1rkbd4lvXncZK3aKrW6FCBbNq1Sr7+99//900bNjQxMfHmwsXLhTKWRQralK36OpyhswC33zzjdauXasyZcpIkt566y0FBQVp0qRJuv/++zVx4kS9/vrrevHFF11W08/PTydPnsx3fXp6eqE8pJK6xbeuO42VukVTt3Tp0nr55ZfVsGHDPNfv3LlTzz77rEtrUrd413WnsVK36Or+/vvvDg8IDgkJ0bJly5SQkKAHH3xQH3/8cbGoSd2iq8sZMguULVvW4VkGf/zxh/Hw8LA/8G737t3Gx8fHpTVfeOEFU758eTNnzhxz6tQp+/JTp06ZOXPmmAoVKpi+ffu6tCZ1i3dddxordYumbrNmzcxbb72V7/qUlBRjs9lcWpO6xbuuO42VukVXt3r16mbx4sW5lp85c8bExsaaO+64w+VnUayoSd2iq0sgs0CHDh1Mp06dzNmzZ01WVpbp16+fqVKlin39+vXrTUREhEtrZmZmmueee854e3sbDw8P4+vra3x9fY2Hh4fx9vY2zz//vMnMzHRpTeoW77ruNFbqFk3dDz/80Lzzzjv5rk9LS7vmg1GpS91boSZ1i3/dPn36mIcffjjPdadPnzYNGzZ0+X/arahJ3aKry7T3FtizZ4/i4+O1f/9+2Ww2+fv7a86cOWrevLkkadq0adqxY4dGjx7t8tqnT5/W5s2bdfToUUl/PsSwQYMGCggIcHkt6rpHXXcaK3WLri4A3KrS09N15MgR1a5dO8/1Z8+eVXJyspo2bfqXrkndoqtLILPIH3/8oTVr1igrK0uNGjVSaGio1V0CAAAAUMQIZG7k3LlzmjVrVp4PeX388cfl7+9PXere8jWpW7zrutNYqcs+RV3q3uo1qVs0dQlkFjl//rw+//xzrVmzRqmpqfL09FR0dLTat2+vBx54wOX1tm3bphYtWuiPP/5Q06ZNFR4eLmOMjh07pm+//Vb+/v5aunSpatWqRV3q3rI1qVu867rTWKnLPkVd6t7qNalbdHWZ1MMCO3fuNBUrVjQhISEmMjLS2Gw207p1a9OwYUPj6elpHnnkEZOdne3Sms2aNTOPPfZYnjfhZ2Zmmscff9w0a9bMpTWpW7zrutNYqVs0dd1prNQtmrruNFbqFu+67jRWd6xLILNAq1atzLPPPmtycnKMMcaMHj3atGrVyhhjzG+//WYqVapkhg0b5tKafn5+DlPtX+2XX34xfn5+Lq1J3eJd153GSt2iqetOY6Vu0dR1p7FSt3jXdaexumNdD9eeb0NBfPvttxo4cKA8PP7c/AMGDNDy5ct14sQJVa1aVRMnTtT06dNdWjMoKEg7d+7Md/2uXbsUFBTk0prULd513Wms1C2auu40VuoWTV13Git1i3dddxqrO9blDJkFoqKiTHJysv19enq6sdls5vTp08YYY/bs2ePyB0MPGzbMBAYGmrFjx5qUlBSTmppq0tLSTEpKihk7dqwJCgoyI0aMcGlN6hbvuu40VuqyT1H3r1nXncZK3eJd153G6o51CWQW6Nq1q2natKnZvn272bNnj3n00UfNnXfeaV+/evVqU758eZfXffPNN+33rHl4eBgPDw9js9lMZGTkNZ90T13q3ko1qVu867rTWKnLPkVd6t7qNalbNHWZZdECx44d00MPPaQNGzbIZrOpQoUKmj9/vu68805J0ty5c5Wamqo+ffoUSv29e/cqLS1N0p8PeY2Oji6UOtR1n7ruNFbqsk9R969Z153GSt3iXdedxuoudQlkFtq5c6cyMzNVo0YNeXl5Wd0dAAAAAEWMST0sVLVqVcXExOQKYwcPHtTTTz/t8nrnz5/XmjVrtG3btlzrLly4oE8//dTlNalbvOu601ipWzR13Wms1C2auu40VuoW77ruNFa3q1soF0LipqSkpBgPDw+XfueOHTtMxYoV7dfDNm3a1Bw5csS+Pi0tzeU1qVu867rTWKnLPkXdv2ZddxordYt3XXcaqzvW5QyZBb766qtrvlatWuXymi+99JLq1KmjY8eOaceOHQoICFDjxo114MABl9eirnvUdaexUpd9irp/zbruNFbqFu+67jRWd6zLGTILXE7dNpst35er03dYWJj5+eefHZb16tXLVKhQwezevbvQEj91i29ddxordYumrjuNlbpFU9edxkrd4l3XncbqjnWZScICkZGReu+999S+ffs816ekpKhBgwYurXn+/Plc96q999578vDwUNOmTTVr1iyX1qNu8a/rTmOlbtHUdaexUrdo6rrTWKlbvOu601jdsS5nyCzQtm1b88orr+S7PiUlxdhsNpfW/Nvf/mY+/fTTPNf17t3blClTplASP3WLb113Git1i6auO42VukVT153GSt3iXdedxuqOdQlkFvjuu+/MN998k+/6s2fPmtWrV7u05qhRo0yrVq3yXf/888+7PARSt3jXdaexUrdo6rrTWKlbNHXdaazULd513Wms7liX55ABAAAAgEWYZREAAAAALEIgAwAAAACLEMgAAAAAwCIEMgAAAACwCIEMAIA8GGPUvHlzJSQk5Fr3/vvvKzAwUAcOHLCgZwCA4oRABgBAHmw2m6ZOnaoNGzbogw8+sC/fu3evXnrpJb3zzjuqUKGCS2tmZ2e79PsAALc+AhkAAPkoX7683nnnHQ0aNEh79+6VMUbdu3fXAw88oLvvvlsPPvigSpUqpfDwcCUmJur333+3fzYpKUn33HOPypQpo5CQELVp00a7d++2r9+3b59sNpv+85//qFmzZvL19dXMmTOtGCYAwEI8hwwAgOto3769Tp06pU6dOum1117Tpk2bdNddd6lHjx568skndf78eb300ku6ePGiVq5cKUmaN2+ebDab6tSpo3PnzunVV1/Vvn37lJKSIg8PD+3bt0/R0dGqVKmSxo8frzvvvFM+Pj6KioqyeLQAgKJEIAMA4DqOHTummJgYnThxQnPnztWPP/6oDRs2aMmSJfY2hw4dUvny5bVjxw5Vq1Yt13ccP35cYWFh+uWXXxQTE2MPZBMnTtSLL75YlMMBANxCuGQRAIDrCAsLU8+ePVWzZk116NBBycnJWrVqlUqVKmV/1ahRQ5LslyXu3r1bXbp00e23366AgABFR0dLUq6JQO66666iHQwA4JbiZXUHAAD4K/Dy8pKX15//bF66dElt27bVW2+9latdZGSkJKlt27YqX768PvroI0VFRenSpUuKiYlRVlaWQ3t/f//C7zwA4JZFIAMAwEn169fXvHnzVKlSJXtIu9KJEye0fft2ffDBB2rSpIkkac2aNUXdTQDAXwCXLAIA4KTevXvr5MmTevzxx7Vx40bt2bNHS5cu1dNPP62cnBwFBQUpJCREH374oXbt2qWVK1dqwIABVncbAHALIpABAOCkqKgoff/998rJyVFCQoJiYmL04osvKjAwUB4eHvLw8NDs2bOVnJysmJgY9e/fX2PHjrW62wCAWxCzLAIAAACARThDBgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWOT/A5n06vKJ/cIDAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAI3CAYAAAD0hZglAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbMUlEQVR4nO3deXgUVf7+/buTkIVAQhaySYDIDgERHCFBBBUSkEUWRWWMoAgqCLINwteRTQVlEwWdcUFAFnHYHAENOzrIHo3KIrKvCSiEIAgJhPP84Y9+aJJAGjopTL9f19XXRVed7s85laLgTlWdshljjAAAAAAARc7D6g4AAAAAgLsikAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAbgh06ZNk81mk6+vrw4cOJBrfdOmTRUbG2tBz6Q1a9bIZrNp3rx5ltR31v79+9WqVSsFBwfLZrOpb9+++ba12Wx64YUX8lw3b9482Ww2rVmz5ob6YLPZNG3aNKc/W5RcOf6mTZuqadOmruuck06fPq3XX39dd911lwICAuTj46OKFSvq6aef1nfffXdD31mxYkV17drV/v7o0aMaPny4UlNTXdPpQnDixAkNGTJENWvWVMmSJRUQEKCGDRvq3Xff1YULF276+4cPHy6bzeaCnv717du3T6VLl1bHjh3zXD979mzZbDa9//77RdwzwL15Wd0BAH9tWVlZ+uc//6kZM2ZY3ZW/rH79+mnjxo36+OOPFRERocjIyCLvQ2RkpNavX69KlSoVeW2rvPfee5bV3rNnjxISEnT8+HE999xzGjFihEqVKqX9+/frP//5j+rXr69Tp04pMDDwpuocPXpUI0aMUMWKFVW3bl3XdN6Ffv75ZyUkJOjMmTMaMGCA4uPjde7cOS1evFgvvvii5s6dqy+//FIlS5a0uqvFQkxMjCZMmKAePXpo9uzZ6ty5s31denq6evfurcTERD377LMW9hJwPwQyADelRYsWmj17tgYOHKg77rjD6u4UqXPnzsnX1/emf/u+detW3X333WrXrp1rOnYDfHx81LBhQ8vqF6U//vhDJUuWVM2aNS2pn5OTo/bt2+u3337T+vXrHc4kN2nSRF26dNFXX32lEiVKWNK/gsjJydHFixfl4+NzU9/RsWNHnT59Wps2bVLVqlXt6x588EE1adJEjz32mPr3769///vfhdoXZ1zef25lxhidP39efn5+udZ1795dCxcuVO/evXXffffZfwH07LPPyhijKVOmFEkf/wrbESgqXLII4KYMGjRIISEheumll67Z7lqXxNlsNg0fPtz+/vIlRj/++KMeeeQRBQYGKjg4WP3799fFixe1c+dOtWjRQqVLl1bFihU1ZsyYPGueP39e/fv3V0REhPz8/NSkSRN9//33udpt2bJFbdu2VXBwsHx9fXXnnXfqP//5j0Oby5doLlu2TE8//bTKli2rkiVLKisrK98xHzx4UE888YTCwsLk4+OjGjVqaPz48bp06ZKk///Syt27d+urr76SzWaTzWbT/v37r7ktnXH50tHNmzercePGKlmypG6//Xa98cYb9n5I+f98lixZorp168rHx0cxMTEaN25crkvAnPnZStKuXbvUuXNnh+3y7rvvumzMV7o8/m+++Ubx8fEqWbKknn76afu6Ky9ZvDyOcePGacKECYqJiVGpUqUUFxenDRs25Pruguw3efn888/1008/aciQIfle1tuyZUv7f1a7du2qihUr5mpzvUvx1qxZo7/97W+SpKeeesq+f13+eeR3yebV9S5vlzFjxui1115TTEyMfHx8tHr16pvaDgsXLtT27ds1ePBghzB22aOPPqqEhARNmTJF6enpBepLXvtrXowxeu+991S3bl35+fkpKChIDz/8sPbu3evQ7lr7z6pVq9S0aVOFhITIz89P5cuXV8eOHfXHH39cc9wVK1ZU69attXDhQtWpU0e+vr66/fbb9c477+Rqe/r0aQ0cOFAxMTHy9vbWbbfdpr59++rs2bMO7S5fyvvvf/9bNWrUkI+Pj6ZPn55vHy6Hrh49ekiSZsyYoS+++EKTJ0/WbbfdVuDts3z5cj300EMqV66cfH19VblyZT377LP67bffHNpd3le/++47PfzwwwoKCnKrs/HA9XCGDMBNKV26tP75z3/qxRdf1KpVq3T//fe77Ls7deqkJ554Qs8++6yWL1+uMWPG6MKFC1qxYoV69uypgQMHavbs2XrppZdUuXJldejQweHz//d//6d69erpo48+UmZmpoYPH66mTZvq+++/1+233y5JWr16tVq0aKEGDRro3//+twIDAzVnzhw9+uij+uOPPxzux5Gkp59+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lJOTozfffFP+/v46efKkvZ0zP9u3335b99xzjxo3bqznn39eFStW1O+//67du3dr0aJF1723rijHfy03s994enpq4cKFSkhIUFxcnJ5//nndd9998vf314EDBzRv3jwtWrRIGRkZkv6c/n3o0KF67LHH9I9//EPnz5/XO++8k++lm1eqVKmS/Pz8NGvWLNWoUUOlSpVSVFSUoqKilJSUpPfff19PPPGEunfvrhMnTmjMmDEFCmOu2g7z589X8+bNFRcXpwEDBiguLk5ZWVlatGiRPvjgAzVp0kTjx48vUF8Kur82atRIPXr00FNPPaUtW7bo3nvvlb+/v9LS0rR27VrVrl1bzz///DVr/fvf/9aqVavUqlUrlS9fXufPn7efyWrWrNl1+xoVFaW2bdtq+PDhioyM1MyZM7V8+XK9+eab9hka+/btq/nz5+vee+9Vv379VKdOHV26dEkHDx7UsmXLNGDAADVo0KBA28YZBd0+1atXV6VKlTR48GAZYxQcHKxFixbZZ88E4ATr5hMB8Fd25SyLV+vcubOR5DDLojHGZGZmmmeeecaEh4cbf39/06ZNG7N///58Z1m8POvXZV26dDH+/v656l09o+PlWRZnzJhh+vTpY8qWLWt8fHxM48aNzZYtW3J9/ocffjCdOnUyYWFhpkSJEiYiIsLcf//95t///neBxpufAwcOmM6dO5uQkBBTokQJU61aNTN27NhcM885M8uiMcbs2rXLPPHEEyYyMtJ4eXmZMmXKmISEhHxnErz652BM/jPpXT0b3xdffGHq1KljvL29Tfny5c0bb7yR5+x+Bf3ZXq719NNPm9tuu82UKFHClC1b1sTHx5vXXnutyMZ/eV1esyyOHTs2V9u8xlGQ/eZaTp06ZV599VVTr149U6pUKVOiRAlTvnx588QTT5hvv/3Woe2XX35p6tata/z8/Mztt99uJk+eXKBZFo0x5tNPPzXVq1c3JUqUyDWO6dOnmxo1ahhfX19Ts2ZN89lnn+W7b+S1XVyxHX777TczePBgU716dePr62tKlSpl7r77bjN58uRcMylery8F3V+NMebjjz82DRo0MP7+/sbPz89UqlTJPPnkkw7HiPz2n/Xr15v27dubChUqGB8fHxMSEmKaNGlivvjii+uO9/Lf93nz5platWoZb29vU7FiRTNhwoRcbc+cOWP++c9/mmrVqhlvb28TGBhoateubfr162fS09Pt7XSN2Uev5VrbsyDbZ/v27aZ58+amdOnSJigoyDzyyCPm4MGDBT6mA/iTzZj/N4URAAAFMHz4cI0YMUL88wE4r2LFioqNjdXixYut7gqAWwSzLAIAAACARQhkAAAAAGARLlkEAAAAAItwhgwAAAAALEIgAwAAAACLEMgAAAAAwCI8GNqFLl26pKNHj6p06dL2J9gDAAAAcD/GGP3++++KioqSh0f+58EIZC509OhRRUdHW90NAAAAALeIQ4cOqVy5cvmuJ5C5UOnSpSX9udEDAgIs7g0AAAAAq5w+fVrR0dH2jJAfApkLXb5MMSAggEAGAAAA4Lq3MjGpBwAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWIZABAAAAgEW8rO4AAAAAAFQcvOSGP7v/jVYu7EnR4gwZAAAAAFiEQAYAAAAAFiGQAQAAAIBFLA1ko0eP1t/+9jeVLl1aYWFhateunXbu3OnQpmvXrrLZbA6vhg0bOrTJyspS7969FRoaKn9/f7Vt21aHDx92aJORkaGkpCQFBgYqMDBQSUlJOnXqlEObgwcPqk2bNvL391doaKj69Omj7OzsQhk7AAAAAFgayL7++mv16tVLGzZs0PLly3Xx4kUlJCTo7NmzDu1atGihtLQ0++vLL790WN+3b18tXLhQc+bM0dq1a3XmzBm1bt1aOTk59jadO3dWamqqkpOTlZycrNTUVCUlJdnX5+TkqFWrVjp79qzWrl2rOXPmaP78+RowYEDhbgQAAAAAbsvSWRaTk5Md3k+dOlVhYWFKSUnRvffea1/u4+OjiIiIPL8jMzNTU6ZM0YwZM9SsWTNJ0syZMxUdHa0VK1YoMTFRO3bsUHJysjZs2KAGDRpIkj788EPFxcVp586dqlatmpYtW6bt27fr0KFDioqKkiSNHz9eXbt21euvv66AgIDC2AQAAAAA3NgtdQ9ZZmamJCk4ONhh+Zo1axQWFqaqVauqe/fuOn78uH1dSkqKLly4oISEBPuyqKgoxcbGat26dZKk9evXKzAw0B7GJKlhw4YKDAx0aBMbG2sPY5KUmJiorKwspaSk5NnfrKwsnT592uEFAAAAAAV1ywQyY4z69++ve+65R7GxsfblLVu21KxZs7Rq1SqNHz9emzdv1v3336+srCxJUnp6ury9vRUUFOTwfeHh4UpPT7e3CQsLy1UzLCzMoU14eLjD+qCgIHl7e9vbXG306NH2e9ICAwMVHR194xsAAAAAgNu5ZR4M/cILL+jHH3/U2rVrHZY/+uij9j/HxsbqrrvuUoUKFbRkyRJ16NAh3+8zxshms9nfX/nnm2lzpSFDhqh///7296dPnyaUAQAAACiwW+IMWe/evfXFF19o9erVKleu3DXbRkZGqkKFCtq1a5ckKSIiQtnZ2crIyHBod/z4cfsZr4iICB07dizXd/36668Oba4+E5aRkaELFy7kOnN2mY+PjwICAhxeAAAAAFBQlgYyY4xeeOEFLViwQKtWrVJMTMx1P3PixAkdOnRIkZGRkqT69eurRIkSWr58ub1NWlqatm7dqvj4eElSXFycMjMztWnTJnubjRs3KjMz06HN1q1blZaWZm+zbNky+fj4qH79+i4ZLwAAAABcydJLFnv16qXZs2frv//9r0qXLm0/QxUYGCg/Pz+dOXNGw4cPV8eOHRUZGan9+/fr//7v/xQaGqr27dvb23br1k0DBgxQSEiIgoODNXDgQNWuXds+62KNGjXUokULde/eXe+//74kqUePHmrdurWqVasmSUpISFDNmjWVlJSksWPH6uTJkxo4cKC6d+/OmS8AAAAAhcLSM2T/+te/lJmZqaZNmyoyMtL++uyzzyRJnp6e+umnn/TQQw+patWq6tKli6pWrar169erdOnS9u9566231K5dO3Xq1EmNGjVSyZIltWjRInl6etrbzJo1S7Vr11ZCQoISEhJUp04dzZgxw77e09NTS5Yska+vrxo1aqROnTqpXbt2GjduXNFtEAAAAABuxWaMMVZ3org4ffq0AgMDlZmZyVk1AAAAwAkVBy+54c/uf6OVC3viGgXNBrfEpB4AAAAA4I4IZAAAAABgEQIZAAAAAFjklnkwNAAAAP46itv9PoBVOEMGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAWYZZFAAAA/GUwu2PRYDsXHc6QAQAAAIBFCGQAAAAAYBEC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ckVS89SpU5o7d64OHjyoChUq6JFHHlFgYKDL66SkpKh+/fou/96COH78uLZt26b69esrICBAx44d0/Tp03Xp0iW1atVKtWvXLrTae/fu1dq1a5WWliZPT0/FxMSoefPmCggIKLSaHKeKBscpjlOu5G7HKenWOlZxnCpchX6cMrDMnj17zPTp080bb7xhxo4da+bNm2cyMzMLpdapU6dM27Ztjc1mM2XKlDFVq1Y1VapUMWXKlDEeHh7moYceKrTa15Kammo8PDxc/r3Z2dnmH//4h6lUqZL529/+Zj7++GOH9enp6YVS9+jRo6ZRo0bG09PT3HvvvebkyZOmVatWxmazGZvNZqpWrWqOHj3q8ro//PBDnq8SJUqYhQsX2t+70pAhQ8zZs2eNMX9u7+7duxsPDw9js9mMh4eHad++vTl37pxLaxpjTMeOHc38+fONMcZs27bNhIaGmrJly5oGDRqY8PBwExERYbZv3+7yujabzdx+++3m9ddfN4cPH3b59+dn9erVxt/f39hsNhMZGWl++OEHU65cOVOlShVTrVo14+PjY5YuXeryumfOnDEPP/ywfd/18PAwERERxtPT05QqVcpMnjzZ5TU5TnGc4jh1czhOFf5xyphb81jFcco1rDhOGWMMgcwCVhxAkpKSTO3atc2GDRtyrduwYYOpU6eOefLJJ11e93oK6wAybNgwEx4ebsaOHWtefvllExgYaHr06GFfn56ebmw2m8vrJiUlmfj4ePPFF1+YRx991MTHx5vGjRubw4cPm4MHD5rGjRubXr16ubzu5f3o8j515evK/3y4koeHhzl27JgxxpjXX3/dlC1b1syfP98cOXLELFq0yNx2221m5MiRLq1pjDGhoaHml19+McYY07JlS9O5c2eTlZVljPnzH45u3bqZhIQEl9e12Wyme/fuJjw83Hh5eZlWrVqZhQsXmosXL7q81pUaNWpkevXqZX7//XczduxYU65cOYd9aODAgSY+Pt7ldXv06GEaNWpkUlNTzc8//2w6duxoBg0aZM6ePWumTJliSpYsaWbNmuXSmhynOE5xnLo5HKcK/zhlzK15rOI45RpWHKeMIZBZwooDSGBgYJ4HjsvWr19vAgMDXVrTGGOCgoKu+QoICCiUHbty5cpm0aJF9ve7d+82VapUMV27djWXLl0qtN/oREZGmvXr1xtjjDlx4oSx2WxmxYoV9vWrVq0yt99+u8vr3nHHHaZVq1Zmx44dZv/+/Wb//v1m3759xsvLyyxfvty+zJVsNpv9Pzp169Y1U6ZMcVj/2WefmRo1ari0pjHG+Pn5md27dxtj/tze3333ncP6nTt3Fsq+fHm8Fy5cMPPmzTMPPvig8fT0NOHh4WbQoEHm559/dnlNY4wJCAiwj/fChQvGy8vLfP/99/b1v/zyS6GMNzQ01GzZssX+/uTJk8bX19d+tmHy5Mmmbt26Lq3JcYrjFMepm8NxqvCPU8ZYc6ziOFV8j1PGGMM9ZBZYsGCBkpOTdccdd0iSPvzwQ0VFRWnYsGF6+umnde7cOY0dO1adO3d2aV2bzXZD625GVlaWnn/++XyvHT9w4IBGjBjh8rpHjhxRbGys/X2lSpW0Zs0a3X///UpKStKYMWNcXlP6896E2267TZIUHByskiVLqkKFCg79SEtLc3ndTZs2adCgQerYsaNmzpypO++8074uKirKoQ+udHm/OXTokO6++26HdXfffbcOHDjg8pp16tTRqlWrVKlSJUVEROjAgQMO4z1w4ID8/PxcXvcyLy8vdezYUR07dtSRI0f08ccfa9q0aRo3bpwaNWqkb775xqX1vL29df78eUlSdna2Ll26ZH8vSefOnSuU6+gvXrzocP9FqVKldPHiRZ09e1YlS5ZUQkKCBg4c6PK6HKc4TrkaxymOU4WhqI9VHKeK93GKM2QWKFOmjP1SBmP+vHzBy8vLHD9+3Bjz52+SfH19XVrziSeeMHXq1DGbN2/OtW7z5s2mbt26JikpyaU1jTEmPj7eTJw4Md/1hXWKPSYmxuE3KZcdOXLEVK1a1TRr1qxQ6pYvX95s3LjR/v6ll14yJ06csL9PTU01oaGhLq972ZdffmnKlStnRo0aZXJycoyXl5fZtm1bodSy2Wzm9ddfN2+//baJiooy33zzjcP61NRUExQU5PK6ixcvNsHBwWbq1Klm6tSppmLFiuajjz4y3377rfn4449NdHS0+cc//uHyulde+pSXFStWmM6dO7u87kMPPWRat25t1q5da3r06GHuuusu06pVK3PmzBlz9uxZ8/DDD5sWLVq4vG7z5s0dLgcZO3asiYyMtL//7rvvXL4vc5z6E8cp1+E45YjjlGtYcaziOFV8j1PGcMmiJaw4gGRkZJgWLVoYm81mgoKCTLVq1Uz16tVNUFCQ8fDwMC1btjQZGRkurWnMn9fsDx8+PN/1Bw8eNF27dnV53W7dupmnn346z3WHDx82lStXLpQDSNu2ba95wJw8ebK5//77XV73Sunp6aZly5bmnnvuKdQDSIUKFUzFihXtr6vH/dZbb5mGDRsWSu158+aZcuXK5brO29fX1/Tt27dQ7pe48tKnovTLL7+YypUrG5vNZmrVqmWOHDli2rZta7y8vIyXl5cpW7asSUlJcXndlJQUExwcbCIiIkz58uWNt7e3+fTTT+3rJ0+e7PJ7JDhO/f84TrkGx6mi4U7HKWOsOVZxnHJUnI5TxhhjM8aYwjn3hvx89913at68uby9veXt7a309HRNnz5djz32mCTp3Xff1aZNmzR9+nSX196xY4c2bNig9PR0SVJERITi4uJUvXp1l9ey0oEDB/Tzzz8rMTExz/VpaWlatmyZunTpUqT92rx5s/z8/BxO/xeWd955R6tXr9akSZOKbGrnK23YsEE+Pj4Op/tdKScnRykpKdq3b58uXbqkyMhI1a9fX6VLly6Uel9//bUaNWokLy9rrvQ+ceKEQkJC7O9Xrlypc+fOKS4uzmG5K6WlpWnx4sXKysrS/fffr5o1axZKnav9/PPPWr9+PccpjlOFriiOU99995327t3LcaqYHack9zhWcZwqmuMUgcwiVh5AAAAAANwaCGRuxBijFStW5HqIYaNGjfTAAw8U2g3z1C2+dW+1scbHx6tZs2bFahu7Y938ZGRkaNGiRXryySepS92/bE3qFp+6ly5dkoeHR57LDx8+rPLlyxeLmtQtgrqFdjEkrmvlypVmxIgR5rnnnjO9evUy48aNc5jsw5UOHz5s6tatazw9Pc0dd9xhEhISTPPmzc0dd9xhPD09Tb169QrlIZLULb513Wms1C26utdSWDetU9d967rTWKnrOpmZmeaRRx4xvr6+JiwszAwdOtThnsDCmAreiprULbq6THtvgePHj6tNmzbavHmzPDw8ZIzRnXfeqfnz5+ull15S//79XT6NaM+ePRUcHKxDhw4pMjLSYV1aWpqeeOIJ9erVS59//jl1qXvL1qRu8a57+vTpa67//fffXVaLuu5R153GSt2iq/vKK6/ohx9+0IwZM3Tq1Cm99tprSklJ0YIFC+Tt7S3pzysM/uo1qVt0dTlDZoFHH33UtGvXzmRkZJg//vjD9OrVyz4L0MqVK01ISMg1Z5a5Ef7+/iY1NTXf9d99953x9/d3aU3qFu+67jRW6hZNXZvNZjw8PPJ9XV7vatQtvnXdaazULbq65cuXN6tXr7a//+2330yDBg1MQkKCOX/+fKGcRbGiJnWLri5nyCzw1Vdfad26dSpTpowk6c0331RQUJAmTZqk+++/XxMnTtRrr72mF1980WU1/fz8dPLkyXzXZ2RkFMpDKqlbfOu601ipWzR1S5curZdfflkNGjTIc/2uXbv07LPPurQmdYt3XXcaK3WLru5vv/3m8IDgkJAQLV++XImJiXrwwQf10UcfFYua1C26upwhs0DZsmUdnmXwxx9/GA8PD/sD7/bs2WN8fHxcWvOFF14w0dHRZu7cuebUqVP25adOnTJz58415cuXN3369HFpTeoW77ruNFbqFk3dpk2bmjfffDPf9ampqcZms7m0JnWLd113Git1i65utWrVzJIlS3It//33301cXJy54447XH4WxYqa1C26ugQyC7Rv39507NjRnDlzxmRnZ5u+ffuaypUr29dv2LDBREREuLRmVlaWee6554y3t7fx8PAwvr6+xtfX13h4eBhvb2/z/PPPm6ysLJfWpG7xrutOY6Vu0dT94IMPzNtvv53v+vT09Gs+GJW61L0ValK3+Nft3bu3efjhh/Ncd/r0adOgQQOX/6fdiprULbq6THtvgb179yohIUEHDhyQzWaTv7+/5s6dq2bNmkmSpk2bpp07d2r06NEur3369Glt2bJFx44dk/TnQwzr16+vgIAAl9eirnvUdaexUrfo6gLArSojI0NHjx5VrVq18lx/5swZpaSkqEmTJn/pmtQturoEMov88ccfWrt2rbKzs9WwYUOFhoZa3SUAAAAARYxA5kbOnj2r2bNn5/mQ18cff1z+/v7Upe4tX5O6xbuuO42VuuxT1KXurV6TukVTl0BmkXPnzunTTz/V2rVrlZaWJk9PT8XExKhdu3Z64IEHXF5v+/btat68uf744w81adJE4eHhMsbo+PHj+vrrr+Xv769ly5apZs2a1KXuLVuTusW7rjuNlbrsU9Sl7q1ek7pFV5dJPSywa9cuU6FCBRMSEmIiIyONzWYzrVq1Mg0aNDCenp7mkUceMRcuXHBpzaZNm5rHHnssz5vws7KyzOOPP26aNm3q0prULd513Wms1C2auu40VuoWTV13Git1i3dddxqrO9YlkFmgZcuW5tlnnzU5OTnGGGNGjx5tWrZsaYwx5pdffjEVK1Y0w4YNc2lNPz8/h6n2r/bTTz8ZPz8/l9akbvGu605jpW7R1HWnsVK3aOq601ipW7zrutNY3bGuh2vPt6Egvv76aw0YMEAeHn9u/v79+2vFihU6ceKEqlSpookTJ2r69OkurRkUFKRdu3blu3737t0KCgpyaU3qFu+67jRW6hZNXXcaK3WLpq47jZW6xbuuO43VHetyhswCUVFRJiUlxf4+IyPD2Gw2c/r0aWOMMXv37nX5g6GHDRtmAgMDzdixY01qaqpJS0sz6enpJjU11YwdO9YEBQWZESNGuLQmdYt3XXcaK3XZp6j716zrTmOlbvGu605jdce6BDILdOnSxTRp0sTs2LHD7N271zz66KPmzjvvtK9fs2aNiY6OdnndN954w37PmoeHh/Hw8DA2m81ERkZe80n31KXurVSTusW7rjuNlbrsU9Sl7q1ek7pFU5dZFi1w/PhxPfTQQ9q4caNsNpvKly+vBQsW6M4775QkzZs3T2lpaerdu3eh1N+3b5/S09Ml/fmQ15iYmEKpQ133qetOY6Uu+xR1/5p13Wms1C3edd1prO5Sl0BmoV27dikrK0vVq1eXl5eX1d0BAAAAUMSY1MNCVapUUWxsbK4wdujQIT399NMur3fu3DmtXbtW27dvz7Xu/Pnz+uSTT1xek7rFu647jZW6RVPXncZK3aKp605jpW7xrutOY3W7uoVyISRuSmpqqvHw8HDpd+7cudNUqFDBfj1skyZNzNGjR+3r09PTXV6TusW7rjuNlbrsU9T9a9Z1p7FSt3jXdaexumNdzpBZ4Isvvrjma/Xq1S6v+dJLL6l27do6fvy4du7cqYCAADVq1EgHDx50eS3qukdddxorddmnqPvXrOtOY6Vu8a7rTmN1x7qcIbPA5dRts9nyfbk6fYeFhZkff/zRYVnPnj1N+fLlzZ49ewot8VO3+NZ1p7FSt2jqutNYqVs0dd1prNQt3nXdaazuWJeZJCwQGRmpd999V+3atctzfWpqqurXr+/SmufOnct1r9q7774rDw8PNWnSRLNnz3ZpPeoW/7ruNFbqFk1ddxordYumrjuNlbrFu647jdUd63KGzAJt2rQxr7zySr7rU1NTjc1mc2nNv/3tb+aTTz7Jc12vXr1MmTJlCiXxU7f41nWnsVK3aOq601ipWzR13Wms1C3edd1prO5Yl0BmgW+++cZ89dVX+a4/c+aMWbNmjUtrjho1yrRs2TLf9c8//7zLQyB1i3dddxordYumrjuNlbpFU9edxkrd4l3XncbqjnV5DhkAAAAAWIRZFgEAAADAIgQyAAAAALAIgQwAAAAALEIgAwAAAACLEMgAAMiDMUbNmjVTYmJirnXvvfeeAgMDdfDgQQt6BgAoTghkAADkwWazaerUqdq4caPef/99+/J9+/bppZde0ttvv63y5cu7tOaFCxdc+n0AgFsfgQwAgHxER0fr7bff1sCBA7Vv3z4ZY9StWzc98MADuvvuu/Xggw+qVKlSCg8PV1JSkn777Tf7Z5OTk3XPPfeoTJkyCgkJUevWrbVnzx77+v3798tms+k///mPmjZtKl9fX82cOdOKYQIALMRzyAAAuI527drp1KlT6tixo1599VVt3rxZd911l7p3764nn3xS586d00svvaSLFy9q1apVkqT58+fLZrOpdu3aOnv2rIYOHar9+/crNTVVHh4e2r9/v2JiYlSxYkWNHz9ed955p3x8fBQVFWXxaAEARYlABgDAdRw/flyxsbE6ceKE5s2bp++//14bN27U0qVL7W0OHz6s6Oho7dy5U1WrVs31Hb/++qvCwsL0008/KTY21h7IJk6cqBdffLEohwMAuIVwySIAANcRFhamHj16qEaNGmrfvr1SUlK0evVqlSpVyv6qXr26JNkvS9yzZ486d+6s22+/XQEBAYqJiZGkXBOB3HXXXUU7GADALcXL6g4AAPBX4OXlJS+vP//ZvHTpktq0aaM333wzV7vIyEhJUps2bRQdHa0PP/xQUVFRunTpkmJjY5Wdne3Q3t/fv/A7DwC4ZRHIAABwUr169TR//nxVrFjRHtKudOLECe3YsUPvv/++GjduLElau3ZtUXcTAPAXwCWLAAA4qVevXjp58qQef/xxbdq0SXv37tWyZcv09NNPKycnR0FBQQoJCdEHH3yg3bt3a9WqVerfv7/V3QYA3IIIZAAAOCkqKkrffvutcnJylJiYqNjYWL344osKDAyUh4eHPDw8NGfOHKWkpCg2Nlb9+vXT2LFjre42AOAWxCyLAAAAAGARzpABAAAAgEUIZAAAAABgEQIZAAAAAFiEQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAAAAAWIRABgAAAAAW+f8ArYXsc/w77oYAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1004,30 +889,6 @@ "unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, - { - "cell_type": "code", - "execution_count": 567, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAACJgAAAakCAIAAAA9C6TfAAD64ElEQVR4nOzdeUBU1f//8QMMCCrI4oqaIiiuiRtuuaGVBqmV33Kt1Myl0I+aS6lZmZallplrn8RPamppLqm5Gygq7guYC1KioKCCijAsA/P743y/9zefGWYc1rni8/HXmzvn3nvm3hnK++KcY6fX6wUAAAAAAAAAAADUx97WHQAAAAAAAAAAAED+CHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUI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L1myZMyYMWlpaUKINWvWbNy4sW3btg0aNHBzc8vKykpISIiKijKcoGnEiBFvvPGGlcfPlw2vszWGDx8+ffp0IURYWFh8fHzv3r39/PzKlSt369at3bt3K5+fgQMH5rsqu6natWt7e3snJibm5OQIkwVyJF9fX3d39/v378uUqFmzZoZfGevVrVvXx8fn77//FkKMHz++W7ducthQaGiolb19cr333nuRkZHx8fFpaWlvvvlm3759W7Vq5eLicvv27T/++EPJjAcPHqyMnilGfJUKoW3btidOnFB+NB2pZsjo1UaNGhXuOyKe7q8JyiqCHAAAAAAAnhZZWVk3b9603EZZfCI9PV1ZwGbMmDHly5c3atmrV681a9ZcvHjx/v37ixcv/vDDD5WXypcvv3Tp0vfff//q1at5eXm///7777//brR77969851xaNy4cadPn5ZzW8nlRkJCQpQgp3fv3r///rt8Ynv37l3DsSkuLi5z5szx9PS0EOS0adNm4sSJ8+fPF0Lcv39/2bJlhq9279591qxZFia8qlix4tKlS0NDQ+Pi4jIyMpYvX758+XKjNr6+vvPnz1emgCuWU5crV87V1VU+PhZCGA6NskazZs3WrFkzbdq06OhoIURmZmZ4eHh4eLhpS1dX16lTpxb9b/NteJ2tERISEhcXJwPL/fv379+/37RN165dR48ebf0xO3bs+Ouvv8o636fVcpkc5VyFm1dNmjZt2qhRo3Q6nVar3blzp9w4YsSIMv+EumLFisuXL3///fevXbuWlZW1YcMG09FpAwYMmDBhQgl1gK9SQbVr1+77779XfrQc5DzzzDM1atS4deuWsm9RTv3Ufk1QVjG1GgAAAAAAyMeyZcvu3r0rhPDx8XnllVdMG9jZ2SkPTH/55RejmY6qVau2du3aiRMn1qpVy2ivNm3afPfdd5999pkyi5ohPz+/9evX9+3bt2bNmqYNHBwcvv/++379+ilrWQshNBpN9+7dN2zY0K1bN7kkgwVDhgz5/vvvlWRIqlWr1syZM+fNm1e+fHnDI5uqWbPm2rVrR4wY4eXlZfRS1apVx4wZs2bNGnNBS6FP7eDg8OGHH8qr4e3t/e6771p+j6bq1Knz008/ffXVV+3bt8/3sj/zzDNjxozZvn17cc2wZMPrbI2xY8euWLEi36vh7+8/a9asb7755rGfJUPK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+eyzz4b1zTfffBgvsXTp0v3794d1wStvjkZ3gB87K3IAAAAA+BG78sor33jjjWXLlsVisVGjRv3tb38rUeKI/u1y/fr1L7roosK3L+RWaWHWUqlSpb/97W9PPvlkVlZW/FZKSsrXX3/92muvtWvX7qGHHjrppJOyd9y6dWtYxM+JmTdv3quvvrpo0aKMjIzs0/7lL3/5y1/+slSpUoWffGjQoEFffPHFqlWrtm7des0119x8883nn39+hQoVtm/fPmvWrClTpoQ5yvXXX9+pU6dDHTwIgpdeeiks6tat26xZs2PcHeDHTpADAAAAwI9YiRIlfve731133XWxWGzZsmWvv/76VVdddSQDduvWrVu3bkU1vVAsFgvP3dmxY8cTTzwRXqxRo0a5cuV27twZ3zfso48++tWvfvXCCy9kz3LiB/ZUrFhxy5YtQ4YM+fjjj3O/xLfffvvoo4+++eab48aNyxEFHdQJJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r17H9KwoUWLFs2ePTusb7755oSEhGPZHeA4YGs1AAAAAH7cmjdv3rNnz7AeN25c/DSa6EhNTc3MzAyCIBaLJScn33nnnf/+97/ffffd11577b333nvzzTfj0dF33303dOjQ7H337dsXFlu2bOnVq1eY4pQuXfqss8668sore/Xq1alTp7Jly4ZtVq5cefvtt8e7FF65cuU6dOjQuHHjPO+2b9++TZs2hzpmOOf7778/rNu0aXP55Zcfy+4AxwcrcgAAAAD40RswYMCsWbNSUlJ27tz55JNPDhs2rLhn9P/Ys2dPvXr1giBISkoaOXJko0aNst+tW7fuyJEjq1SpMnny5CAIPvroo4ULF5577rk5Blm/fn0QBBUqVOjXr1+PHj3i4U0QBKmpqQ8++OB7770XBMGqVasmTZrUr1+/wk9vy5Yt99577+effx7+WKtWrZYtW5YpU2b37t3Lli3btm3bO++8884771x11VX33Xdf6dKlCznszp07+/fvH+4pV7ly5UceeeSQdr07wu4Axw1BDgAAAAA/ehUqVLjjjjuGDx8eBMG0adOuvPLKli1bHt5Q8+fPX7RoUeHb9+jRo2HDhgW3qVmz5vTp0wtu85vf/GbGjBkpKSlBELzzzjvxICf7mTenn376o48+Wq1atRx9y5cv//DDD2/atGnFihVBEEydOrVv374lS5YszPx37Nhx8803b9y4MQiCWrVqDR069LzzzovfPXDgwJw5c0aNGrV9+/Zp06Zt2bJl7NixhRl5x44dt91225o1a4IgKFu27FNPPVWjRo3CzKdIugMcTwQ5AAAAABwPrrjiimnTpi1btiwIgpEjR06ZMuXwFnB89tln4cqYQmrbtu1Bg5zCKFOmTIcOHcK8Z/ny5fHr5cqVC4t69epNnDgxvwUxiYmJN99889133x0EwQ8//PDVV18VMsp67LHHwhSnevXqkydPrlq1ava7JUqU6Ny5c5MmTa677rqdO3d++OGHr7zyyrXXXlvwmJs3b+7Xr9+6deuCIChbtuz48eNbtGhRmMkUSXeA44zViAAAAAAcDxISEoYMGZKQkBAEwVdffTVt2rTintEhi2+5tmnTpvjF+PqbxMTEgrc1a9euXbz+z3/+U5hX/P777995552wHjRoUI4UJ+7kk0+O79V20JRr7dq1N9xwQxjDVKhQYeLEiYd0vs4Rdgc4/liRAwAAAMBxomnTptdcc83UqVODIBg3blyXLl3Kly9/qINccsklTZo0KXz7Zs2aHepL5Cc5OTks0tPT4xfr1q0bFhs3bjxw4EABy4zKly+flJQU9k1NTS3MK3722WexWCysO3ToUEDLjh07jh49OgiCzZs3f/fdd/ltdLZs2bLbb799165dQRBUr159woQJDRo0KMxMiqQ7wHFJkAMAAADA8aN///4zZ85MSUlJTU194oknhg0bdqgjNGrUKL4ypkhkZGTs3LkzrCtXrlzAATP79u0LizJlysQvxoOi9PT0NWvWnHrqqQW8VlZWVlhkP1mnANu2bQuLcuXKxWOkPJ144onZe+UZ5CxYsGDQoEFhktSgQYPx48cf0sE2R9gd4HhlazUAAAAAjh8VKlQYNGhQWE+fPv2LL74o3vkEQbBmzZou/+e///1vAS03bNgQFtWrV49frFGjRnxRznvvvVdA9y1btmRkZOQeoQDxxCg9PT0eAuVp79698TrPlOjdd98dOHBgGMO0bt160qRJhxTDHGF3gOOYIAcAAACA40r37t3jp6o8/PDDxTqXIAiCWrVqxetly5bl1ywWiy1YsCCsW7Zsmf3Wz372s7B47bXX9uzZk98I8+bNi9fNmzcvzNzq1KkTFpmZmZ9//nkBLT/55JN4Xbt27Rx3p06dOnjw4MzMzCAI2rdvP3HixIoVKxZmAkXSHeD4JsgBAAAA4LiSkJBw//33h2fJrFq1qrinE1SoUKFFixZh/fzzz2c//ya7t956a/369WF98cUXZ7919dVXh0tnduzY8dhjj+XZPS0tbdKkSWF9xhlnVK1aNfvdnTt3jhkzZtCgQW+88Ub266eddtoJJ5wQ1hMmTMhvUc6+ffueeeaZsG7VqlW5cuWy350wYcIjjzwS1ldcccWf/vSnpKSkPMfJ0xF2BzjuCXIAAAAAON40btz4mmuuKe5Z/P9uvPHGsFi7du2AAQO2bNmSo8Hs2bNHjBgR1k2bNu3QoUP2u9WqVbv55pvD+vXXX3/wwQdTU1OzN9i1a9c999yzadOm8Me+ffvmGH/QoEGTJ0+ePXv28OHD33777fj1pKSka6+9NqyXLFly5513bt26NUffdevW9evX7+uvvw5//NWvfhW/deDAgZEjR06cODH88aabbho+fHhiYmGP5T7C7gA/Ef63CABwcMuWLYtvyrFixYrst+J/761WrdrYsWOP9cwAAMhH//79Z86cuWPHjuKeSBAEQdeuXXv06BGuhlmyZEn37t3bt2/frFmzsmXLpqSkLFq0aPny5WHLcuXKjRw5MlxOlN0tt9zy6aefLl68OAiCf/zjH//61786d+7csGHDIAjWrFkze/bseLTzy1/+8txzz83ed+/evdk3Rnv//fcvu+yy+I99+/ZduHBhOIEPPvige/fuHTp0aN68+QknnPDDDz8sXbp08eLFBw4cCBv36NGja9eu8b7PP//8q6++Gv/xrbfeeuuttw76aTz44IPnnHPOkXcH+IkQ5AAAHFyzZs3mzJnz3Xff5b718ssvh8WUKVOO7aQAAChI+fLl77777iFDhhT3RP7XsGHDypUr9+KLLwZBkJGRMXv27NmzZ+doc9JJJz3++ONhPJNDYmLiE088MXTo0Pfffz8Igt27d0+fPj13s1/+8peDBw/OcbFMmTLly5ePJz27du3Kfrd06dITJkz4/e9/P2fOnCAI9u/fP2vWrFmzZuUevE+fPnfeeWf2KzlystyrefK0f//+IukO8BNhazUAgINLTEwcM2ZMAQ1q1Khx9dVXH7P5AABQGJdddtmZZ55Z3LP4XyVLlvztb3/74osvXnzxxeGBN9mddNJJv/71r19//fWWLVvmN0JycvKYMWOeeOKJM844I/fds846a/z48UOGDClZsmTul/7d734X37KsQoUKORqUL1/+T3/601NPPXXeeefl3tnshBNO6Nat29SpU+++++7cgwNwtCXEYrHingMAwI9AZmZmnTp18lyUEwTBlClT4nusAcAxlpCQEBZLly4t1okAhZWRkbFq1arNmzdnZGQkJyefcsopdevWjf+3XBg//PDDN998s3379hIlSlSpUqVx48YVK1YsuMuOHTu6du2alZXVv3//X//61/k1S0tLW7169datW/fv31+2bNlatWo1aNBAfgPHWJs2bYIg8O09IUEOAEBhvfTSS9ddd13u6zVq1NiwYYNDWQEoLoIcoDDeeeed3/3ud0EQvPHGG6ecckpxTwcoiCCH7GytBgBQWFdffXWNGjVyXx8zZowUBwCAKFu1atUjjzwSBEGPHj2kOAA/LoIcAIDCyvOkHKfjAAAQcTNnzrzhhht27tx52mmn3XfffcU9HQAOjSAHAOAQ5F6UYzkOAAARl5GRsXfv3m7duk2cODE5Obm4pwPAoXFGDgDAocl+Uo7TcQCIAmfkAAXbv3//559/3rZt2+KeCFBYzsghOytyAAAOTfZFOZbjAAAQfaVLl5biAPx4CXIAAA5N/KQcp+MAAAAAR5sgBwDgkIWLcizHAQAAAI42Xz0AAByyxMTE55577uKLLy7uiQAAAADHOUEOAMDhuOyyy4p7CgAAAMDxz9ZqAAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACJKkAMAAAAAABBRCbFYrLjnAABHICGhuGcAcPzylwX4kUjwJyIAOB759p6QFTkAAAAAAAARJcgBAAAAAACIqMTingAAFIHPly4t7ikAHD9at2lT3FMADo19VwAAjmNW5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAABFafv27VlZWcU9CwAAADhOJBb3BADgJyQ9Pf3SSy9NS0sLgiA5Ofmdd95JSko6wjG3bNlyxRVXhPVbb71VtWrVI53l/1m+fPn//M//hPXcuXPLlClTVCMHQTBgwIAlS5bkeat06dLVqlVr0aJF165dzz///BIl/LuTH409e/bceuuty5cvr1at2rPPPlu/fv3inlFOqampXbt2Devbb7+9T58+B+1yzjnnhMVNN9106623BkFw//33z549+5Bet0+fPrfffntYx3/527Zt++STTx7SOAAAAPwECXIA4NiZP39+SkpKWKenp8+fP79z585HPmx6enpYxGKxIx8t7sCBA/GRi9y+ffvyGzw9PX3Xrl1r1qx58803mzVrNnLkyAYNGhylaVC05s+fv3z58iAIvv/++3/84x933313cc8op1gsFv/Fy8jIKEyX3O0L+O3NT2ZmZryOd9+3b98hDQIAAMBPkyAHAI6dmTNnZv/xX//6V5EEOcXl3XffffHFF4MgaNKkybBhww5vkFKlSp144onxH2Ox2O7du3fv3h3++NVXX/3qV7/6y1/+0rRp0yOfMEfooE+8Vq1a8bpOnTrHbmbHVnJycrly5XJc3LNnT5iklixZMjk5Ocfd0qVLH6PJAQAAcNwR5ADAMZKWljZv3rwgCE444YSsrKz09PR58+alp6cf+e5qxWXbtm3h8ovExMP/E8Xpp5/+7LPP5ri4du3av/71r2+++WYQBLt37x40aNC0adNyfznOMXbQJ96yZcsnn3xy/vz5p5566pVXXnlsZ3fsPPTQQ7kv9u7d+6uvvgqCoH379k888cSxnhMAAADHL5vOA8Ax8uGHH4b7KbVv3/68884LgiAtLW3+/PnFPa8oatCgwYMPPjhgwIDwx02bNr388svFOyUKqX379oMHD77qqqscbgQAAABFwl+wAeAYie+rduGFF1500UVh/a9//avYJhR5N910U/369cN6xowZxTsZAAAAgGJhazUAOBbS0tI++OCDIAgSExMvuOCCjIyMhISEWCxW+N3VNm7cOHv27NWrV+/fv79GjRrnnHNOu3btEhISCuiSmpoaX/HTuXPnUqVK5W7z/ffff/LJJ0EQlCxZsmvXroV5L+vXr//yyy+DIAg3kgqCYMeOHe+++268QadOnYrkRJASJUp06tTpueeeC4Jg7dq1qamp5cuXD4IgKyvrvffeC9t06dIl3Obrs88+W7JkyQ8//HDvvffmHiojI2Px4sWfffbZd999FwRB1apVW7dufcEFF5QpU6bgOYSrppYvX/7999/HYrFKlSo1bty4ffv2VatWzd34CD/w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bYrgopwuXbokJiYGQbB+/frZs2fn2ebRRx/t1q1bt27dsn+Me/bsue6666677rpevXrt3Lkzd6/MzMw9e/aEdaVKleLXj/ADP5b+9Kc/7dq1K/f1BQsWrFmzJqxzhytH/sTD3dWCIFi7du2KFSs+//zzIAiaNm168skn52582E+wYN27d4/Xo0ePLmDt1AcffBCuHAqC4JJLLgknAwAAAMeYIAcAjor4Jmlt2rQ56NEa9erVq1+/fo6OQRC0atWqSZMmYT169OgcJ4Vs2bLl1ltvjX/tnlupUqVatmwZ1s8//3z2L+5jsdjrr79+yy237N69O7/utWrVin9z/d577+VucOqpp4ZFamrq4sWL839/xePEE0/8xS9+EdYjRoxYt25djgbLli176623wrpbt27x61WqVIk/jr/+9a+5R54xY8b+/fuDIEhKSop/CMERf+DH0oYNG/r165djFcumTZv+8Ic/hHW9evXOO++8HL2K5InHd1F7+OGHwzQoz33VgiN4ggWrV6/eZZddFtZLliwZOHDgxo0bc7TJzMycNm3ab3/72/DHpKSkG2+8sZDjAwAAQNHy7woBoOht3749vq9anntG5dahQ4dvv/02CIJ58+alpaXFN+n67W9/27dv3yAItm7d2qtXr169ep166ql79+794osvZsyYkZaW1qFDhwI2nurRo0e46GH9+vW/+MUvOnfuXKlSpe3bty9evHjDhg0JCQm9e/d++eWX8+xbunTpc889N1yR8PTTTy9evLhGjRo33nhjo0aNwgannHJK/fr1w2nfddddHTt2DJenDBgwIPsmY8Vo4MCBixYtWr9+fUpKSu/evfv06XPOOedUrlw5JSVlwYIFkydPDldjtGrVKkeWcMsttwwdOjQIgkmTJq1fv/7yyy9v1KhRmTJlNm/ePHPmzPgndu211+Z4p0fygR9LzZs3//LLL3v06NGtW7eWLVuWKlXqm2++mTZtWjxnGjx4cIkSOf/FT5E88c6dO4cRzvLly8MrXbp0ya/xYT/Bgt13333Lly9fv359EAQLFizo3r1769atmzRpUqFChczMzI0bN3788cc7duyItx86dGjt2rULPz4AAAAUIUEOABS99957L77xVMeOHQvT5cILL/zb3/4W/N/uavFvpdu2bXv33XePGTMmCIIffvjhmWeeyd6rc+fOI0aMyL1yIu7yyy//5z//+emnnwZBsG3btldeeSV+Kzk5edSoUVWqVCkgV7jjjjs+/fTTcBuxMJrq3r17PMgJgmDIkCH9+vXLzMxMS0t7++23w4t9+/aNSJBTrly5CRMmDBgwYO3atXv37p04ceLEiRNztGnYsOGYMWPiW6KFunfvvnbt2ueffz4Igvfff//999/PPfhFF11022235bh4hB/4MXPvvfc+/fTTS5Ysee2111577bUcd++5555zzz03z45H/sSrVq165plnxpPORo0a1atXL7/Gh/0EC1axYsVJkybde++9n3zySRAEsVhs6dKlS5cuzd0yOTn5gQceuOSSSwo/OAAAABQtW6sBQNGLb0TWqFGjPA//yK1169bx01Zy7GPWp0+fp556Knt8EgTBySef/MADDzz22GNly5aNH0GfW8mSJZ966qmePXtmb5OYmNi5c+dXXnmlY8eOpUqVKmBWjRo1mjp1ao8ePWrXrp3nASFnnXXWlClTLrvssurVqx/SN+nHTO3atadMmdK3b9+qVavmuHXSSSf179//xRdfPOmkk3J3HDhw4LPPPnvuuefmfuNNmjQZMWLEn/70p9yf3hF+4MdMUlLS+PHjBw4cGD/2JtS8efOJEyded911+XUskieefQnOQVfSHPYTLFjVqlX//Oc/jxo1qk2bNgkJCXk2uP7666dPny7FAQAAoHglRPBoYgA4BAkJQRB8ntc/pT/+bNiwYcOGDUEQ1K5du4BFDHlKS0tbu3btnj17ypUrV79+/YismDmWYrHYunXr/vvf/+7bty85Ofnkk0+uU6dOnt/g55CWlrZ69eodO3ZkZmZWqFChQYMGuROFPHtF7QPft2/f2WefHdZTp05t2rRpEASZmZmrVq3asmVLYmJigwYNatWqVaxzLMhhP8GD2r179+rVq7du3Zqenp6YmFipUqW6devWrl27SAb/kWrdps3/Vv6yAAAAUNwEOQD8yP2Ughw4EnkGOZAnQQ4AAEB02FoNAAAAAAAgogQ5AAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACIqsbgnAADAsVC6dOnXXnstrOvUqVO8kwEAAAAKSZADAPCTkJCQ0KhRo+KeBQAAAHBobK0GAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYnFPQEA4Fjbvn17pUqVSpYsWdwTOUxZWVn//e9/t2zZkpaWVqpUqRNPPLFu3bpJSUnFPa+flvApfPfdd2lpaYmJiVWqVDnllFPKli1b3PMCAACA440gBwCKTWpqateuXcP69ttv79Onz0G7nHPOOWFx00033XrrrYf6inv27Ln11luXL19erVq1Z599tn79+oc6QvFavHjxtGnT5s+fv2fPnuzXExMTW7du3b17927dupUuXbrIX3f58uX/8z//E9Zz584tU6ZMkb/Ej8iCBQtee+21hQsXpqWlZb+ekJDQvHnzSy+99KqrrkpOTj4GM9myZcsVV1wR1m+99VbVqlWPwYsCAADAMSbIAYBiE4vF0tPTwzojI6MwXQ61fQ7z589fvnx5EATff//9P/7xj7vvvvswBikWW7dufeCBBxYuXJjn3czMzE8++eSTTz559tlnH3jggXjcVVQOHDgQ/+R/yrZs2fLAAw8sWrQoz7uxWGzFihUrVqyYNGnSAw880KFDh2MwpfhzicVix+DlAAAA4NgT5ADAT0itWrXidZ06dYpxJodk9erV/fv337p1a/hjyZIlW7du3bhx4/Lly6enp3/77bcff/xx+IX+5s2bb7vttt///vdXXnnlsZzhu+++++KLLwZB0KRJk2HDhh3Llz5mVq1addttt23bti38sUSJEm3atAmfwr59+zZt2vTxxx//8MMPQRBs37594MCBd999d2EWmQEAAAAFE+QAwE9Iy5Ytn3zyyfnz55966qnHOOo4bNu2bcue4vziF7+47bbbqlWrlr3N3r17p06dOmHChIyMjFgs9uCDD9aoUePcc889lpMMlzolJh6ff7jaunVr9hTnyiuvvO2220466aTsbTIzM2fMmDFmzJjU1NQgCMaMGVOlSpVu3boVw3QBAADgOHJ8ftcAAOSnffv27du3L+5ZHILhw4fHU5zBgwf36tUrd5uyZcvefPPNrVu3vu222/bv3x+LxUaMGDF9+vRSpUod28ketx544IF4inPvvfdee+21udskJib26NGjdevWN998c0pKShAEDz300BlnnFGzZs1jOlcAAAA4vpQo7gkAAORr4cKFH374YVj37NkzzxQn7swzz/zNb34T1ps2bZo7d+5Rn99Pw/z58+OnE/Xs2TPPFCeufv36jz32WFinpaU99dRTR31+AAAAcFyzIgcAjgdZWVnvvfdeWHfp0iXc4Ouzzz5bsmTJDz/8cO+994a3YrHYzJkzw/qcc86pVKlSniNceOGFycnJQRDs2LFj3rx5a9euTU9Pr1ixYps2bc4555ySJUsWPJmMjIzFixd/9tln3333XRAEVatWbd269QUXXFCmTJlDfV9//etfw6JcuXIDBw48aPurr756woQJaWlpQRDMnTu3S5cu4fXU1NT58+eHdefOnfNcqfP9999/8sknQRCULFmya9euhZne+vXrv/zyyyAIvvrqq/DKjh073n333XiDTp06lS5d+sjnUMjnm10RPoUXXnghLAr5FM4888xLLrkk/BzeeeedO+64I/smbIfxXjZu3Dh79uzVq1fv37+/Ro0a55xzTrt27RISEgo5/0P9KA5phmlpafPnz1++fPn3338fi8UqVarUuHHj9u3bV61atZDTAwAAgIIJcgDgeJCZmTl48OCwnjdvXmZm5n333bdkyZIgCEqUKBH/6jkrKyve7IUXXsge5GQfYcaMGTVq1Hj22WcnTZqUkZGR/YVOPfXUsWPH1qpVK7+ZzJs3b9SoUeE35tlVqVJl0KBB3bt3L/yb2rZt2+LFi8O6e/fuFSpUOGiXpKSks84664MPPgiyhStBEGzZsiX755NniPLNN9+EbZKSkgoZ5CxevHjkyJHZr6xfvz7+QkEQzJkzJx7kHMkcCvl844r3KQRBcO2114ZBzoEDB2bOnNmnT5/Dey8ZGRmPP/74K6+8cuDAgfjFSZMmtWjRYtSoUUlJSQedyWF8FIWf4csvvzx+/PjwTKDsEhMTe/XqNXDgwPjTBwAAgMNmazUAON6kpKT07ds3/N758OzevXvgwIHPPvtsjhQnCIJVq1bdcccdmZmZeXacNm3awIEDwy/NS5QoUa9evYYNG4aJxY4dO4YOHfrMM88Ufhrx9StBEHTs2LGQvX73u99NmTJlypQpo0aNKvxr/Ygc9PlG4Sm0atWqSpUqYR3mankq+L0cOHDgnnvuefnll+MpTnwVzooVK2644Yb169cXPI0j/ygKmOHYsWNHjx4dpjilS5du2LBhkyZNwmwpMzPzxRdfvOeee2KxWMHjAwAAwEFZkQMAx5tHHnlkzZo1iYmJF110UevWrStXrnyoIzzwwANff/11lSpVbrrppvPOO69KlSpbt26dOHHi7NmzgyBYtWrVzJkzu3XrlqPXl19+Gc9OevXq1a9fv3DFT1pa2uTJkydMmBCLxZ555plmzZpdeOGFhZnGsmXLwiIhIaF169aFnHytWrUKWDBUtDp16tSkSZMgCN59992XXnopCIJTTz112LBh8Qbly5cv8hct+PlG5CkkJCSceeaZ4QZly5cvj8Viee6EVvB7eeWVV/7973+Hdbt27e64445mzZplZWUtX7580qRJ8+bNGzFiRAFzKJKPIr8Zrly5ctKkSWF9yy233HLLLWXLlg2CYP/+/W+88cbo0aOzsrLmzp07a9asQq7uAgAAgPwIcgDgeLNw4cJmzZr98Y9/PPnkkw9vhK+//vqss84aM2ZMxYoVwyuVK1d+9NFHe/bs+Z///CcIgvfffz93kPPYY49lZWUFQdCnT5+77747fj05OfnXv/51cnLymDFjwmbt27cvUeLgy4LXrl0bFnXr1i3MJlrHXtWqVcOjUL744ovwygknnHDaaacd1Rct+PlG5yk0atQoDHL27t27devW6tWrH9J72b9//7PPPhvWbdu2HT9+fHhWTYkSJU4//fTTTz/98ccfjx/ek6ci+Sjym+Hbb78dFmefffaAAQPi10uXLn311VevXbt26tSpQRC89957ghwAAACOkK3VAOB407Bhw2efffawU5wgCM4444ynn346nuKEEhMTL7nkkrBeuXJlji6rV6/+9NNPgyAoX758//79c4957bXXhgtlNmzY8NFHHxVmGlu2bAmLmjVrHuI7OJ4V8Hwj9RSyt899RE2ogPfywQcfpKSkhPXgwYPDFCe7u+66q23btvm9elF9FPnNcMOGDWHRokWL3L0uv/zya6+99tprrz3aqR4AAAA/BYIcADje3HPPPUe4o9eAAQPKlCmT+3r9+vXDYseOHTluzZ07Nyw6deqUnJycu2/JkiW7dOkS1gUcmpJd/Az5ChUqFKb9T0QBzzdSTyF7EBgfJIcC3suCBQvComXLlg0bNszdICEhIftSmByK6qPIb4bhQTtBEGzatCn33ebNm99777333nvv9ddfn9/IAAAAUEiCHAA43oRndRyJkiVL5nk9/o32/v37c9xaunRpWLRp0ya/YZs1axYWuRf05Cn+KvEvzQkKfL6RegrZ22dkZOTZpoD3Ep/eGWeckV+bPLdrCxXVR5HfDJs2bRoWM2fO/Oc//5lfdwAAADhyghwAoLAKOFLl22+/DYvatWvn16ZatWphkecihtziSUB+MQA5ROopZGZm5h6k8DZu3BgWp5xyyqH2DY7OR5HdFVdcEeaasVhs2LBh119//auvvrpt27bDmCoAAAAULOdu4wAAh2Hr1q1hMWDAgISEhDzbHDhwICx2795dmDHLlSsXbsmV38Zc5BCpp7Br1654fah7/cVisZ07d4Z1lSpVDqlv6Gh8FNlVrVp1zJgxgwYNCvsuX758+fLlI0eObNq0aadOnX7+85872AkAAICiIsgBAI7UgQMH4htw7du376Dts7KyCjNs9erVN2/eHATBli1bjmR6PxFRewrZ28fXvhRSRkZGLBYL6zyPayrYUfoocmjXrt1rr702YcKEt99+O75caeXKlStXrnzmmWcuv/zyu+66K/tBQQAAAHB4BDkAUGyyLxSIf21dgOxt8ltkUCziKxuCILjppptq1apVcPtCfjVfv3798KSTdevW7d+/v3Tp0kcwx+PfUXoKp5xyyuE9hVWrVoVFUlJSjRo1CtkrlP3XO/v7KqSj9FHkVqNGjT/84Q933XXXrFmz5s6du2TJkvT09HACb7zxxmeffTZp0qTDW1EEAAAAcYIcACg2SUlJ8bow6wbC74hDh/3V89GQmJiYmJgYnoly/vnnn3XWWUUybKtWrV5//fUgCLKysj7//PO2bdsWptfMmTM//PDDIAhKlSr1+9//vkhm8qNwlJ7Caaed9sYbbwRBkJWV9cUXXxR+2E8//TQsWrRoUcDpSnkqVapU/L0cxr5nR+mjyE+lSpV69uzZs2fP9PT0OXPmPP/882GItW7dutGjR48ePfqovjoAAADHvUP7SzUAUIRKlSoVPzskfqRHAbK3OfHEE4/WtA5LfMnFd999V1RjnnvuufF67ty5hez17rvv/vOf//znP//5ySefFNVMfiyOxlM455xz4vW///3vQvb66quv4r+u55133mG8bnw3tsL8p5Hb0fgoDiopKenSSy+dOnXqpZdeGl7517/+FT/sBwAAAA6PIAcAilPDhg3DYsWKFQdtnL1NgwYNjtacDkvjxo3DYuXKlUU1Zs2aNU8//fSwfvPNN/fs2XPQLvv37//444/DunXr1nm2CRdqHCWF2SLv6M3haDyFWrVqtWnTJqwL+RSCIJg6dWq8vuSSSw7jdevUqRMWq1evPozuR+OjKKSSJUvec889YR2LxeJbzAEAAMDhEeQAQHGKbxe2atWqg35h/c4774RF+fLlmzdvfnRndojatWsXFvPmzcuvzZ49ezZu3Lhx48YtW7YUctg+ffqExa5du55++umDtp8+fXpqampYd+zYMX49OTk5Xm/fvj3Pvtu2bctv2OxHtmRlZeVuED85Jvv2dzkc4RwK4yg9heuvvz4sdu3aNX78+IO2X758+ZtvvhnWnTp1ql27diFfKLvTTjstLBYuXJjfMTmbNm3Kr/tR+ihC+/btW7FixYoVK/JLiapUqVK5cuWw3rt37yENDgAAADkIcgCgOHXv3j1ejx49uoCFGh988MEHH3wQ1pdcckliYrQOuuvSpUs4pfXr18+ePTvPNo8++mi3bt26dev20EMPFXLYjh07nnHGGWH90ksvhUfm5Gf16tVPPPFEWNepU6d9+/bxWyeddFLJkiXDOs/FTytWrPjjH/+Y38jxHfCCfHb6in9rv2nTpvwW5RzhHArjKD2Fzp07xxflTJkyJTwyJz+bNm26++67ww+hVKlSd9xxR6Gn//+48MILw2Lr1q1z5szJ3WD37t0FvIWj9FGE9uzZc91111133XW9evXKc+e0zMzM+NKlSpUqHdLgAAAAkIMgBwCKU7169S677LKwXrJkycCBAzdu3JijTWZm5rRp037729+GPyYlJd14443HcpKFceKJJ/7iF78I6xEjRqxbty5Hg2XLlr311lth3a1bt0IOm5CQMGLEiIoVK4Y//uEPf3jkkUdyf3WelZU1Y8aMm266Kfz2PCEhYciQIdmzrlKlSrVs2TKsn3/++V27dsVvxWKx119//ZZbbtm9e3d+06hVq1Z8tPfeey93g1NPPTUsUlNTFy9enOcgRziHwjiqTyGeZg0fPvyxxx7LPv9QLBabNWvW9ddfH1/g8tvf/rZevXqH8UaCIGjVqlWTJk3CevTo0TmOutmyZcutt966Zs2a/LofpY8iVKVKlfr164f1X//619wNZsyYsX///iAIkpKS4r8bAAAAcHii9Y95AeAn6L777lu+fPn69euDIFiwYEH37t1bt27dpEmTChUqZGZmbty48eOPP96xY0e8/dChQw9vr6qjbeDAgYsWLVq/fn1KSkrv3r379OlzzjnnVK5cOSUlZcGCBZMnTw7XG7Vq1apr166FH7Z27dpPPfXU7bffHiYHU6dOnTZt2llnnXXqqadWqFBh3759mzZtWrx4cfZNye65555zzjknxzg9evT4/PPPgyBYv379L37xi86dO1eqVGn79u2LFy/esGFDQkJC7969X3755TznULp06XPPPTdcEfX0008vXry4Ro0aN954Y6NGjcIGp5xySv369b/99tsgCO66666OHTuG6zAGDBiQfUe1I5lDIR2lp1CnTp3x48f3798/3LnuxRdffO21184+++zGjRuHT2Hjxo2LFy/OvtdZ3759r7nmmiN5L7/97W/79u0bBMHWrVt79erVq1evU089de/evV988cWMGTPS0tI6dOhQwM5pR+mjCN1yyy1Dhw4NgmDSpEnr16+//PLLGzVqVKZMmc2bN8+cOTP+EK+99trsvwAAAABwGBIKeSQvAERUQkIQBJ8vXVrc8zgi27dvv/feez/55JOCmyUnJz/wwAN5Hh2/b9++s88+O6xfeOGF+PkiOWRmZp511ll5NivMCIsWLerXr18QBCVKlPj0009zN9i4ceOAAQPWrl2b31to2LDhhAkTTjrppPwa5GfDhg1Dhgz54osvCm5WoUKFYcOG5fm9fFZWVt++ffOcdnJy8qhRo6pUqXLDDTcEQZCUlLRo0aIcbVavXn3DDTfE98sKguCZZ57JHhd9/PHH/fr1y7E53pw5c+K7rh3JHAr5fENH7ymsW7duyJAhy5cvL7hZ+fLlBw8enN8yl0N6L5MnTx4zZkyetzp37jxixIjzzjsv/HHWrFknnnhijjaH91EUcobjxo17/vnnC5j8RRdd9Mc//rFUqVIFtIms1v+3mV7gLwsAAADFzdZqAFD8qlat+uc//3nUqFFt2rRJSEjIs8H1118/ffr0PFOc6Khdu/aUKVP69u1btWrVHLdOOumk/v37v/jii4eRHwRBUKdOnb/97W9jxow599xz8zwfqEGDBrfffvuMGTPyW11RsmTJp556qmfPnqVLl45fTExM7Ny58yuvvNKxY8eCv3Bv1KjR1KlTe/ToUbt27TwncNZZZ02ZMuWyyy6rXr16/Cycop1DIR29p1CvXr0XXnjh0Ucfze8p1K1bt3///jNmzDjUzcry06dPn6eeeiq+8il08sknP/DAA4899ljZsmWzf5K5Hb2PIgiCgQMHPvvss3l+FE2aNBkxYsSf/vSnH2mKAwAAQKRYkQPAj9xxsSInu927d69evXrr1q3p6emJiYmVKlWqW7du7dq18wx4IisWi61bt+6///3vvn37kpOTTz755Dp16hTVW9i3b9/atWs3b96cnp5eunTpypUr169fv0qVKoXsnpaWtnbt2j179pQrV65+/frFsvPVsZnDUX0K6enpa9eu/e6778Jf1MqVKzdo0CB3XlJUNmzYsGHDhiAIateufRjn7hzVjyItLW316tU7duzIzMysUKHCUf0cjhkrcgAAAKJDkAPAj9xxF+QAFDtBDgAAQHTYWg0AAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAERUYnFPAAA4rgwYMGDJkiVBEJQsWXLSpEmNGzcuuH1mZuYFF1wQ1i+88MJB2xeLWCy2cOHCWCwWBEGDBg1q1qxZcPutW7d++eWXmzdvTk9PT05Orl27dqtWrSpVqlTIl9u+ffvnn3++adOmffv2lS1btm7duq1atapQocIRvoscNm/e/P333wdBcOKJJ9aqVauQvXbt2rV06dINGzakp6eXL1++QYMGrVq1KlOmTH7tY7HYpk2bCjNytWrVSpcuXchpAAAAwE+HIAcAKEr79u1LT08P61GjRk2aNCkhIaHgLvH2Bw4cOLqTO1wvv/zyo48+Gtb33Xdf796982u5YMGCiRMnfv755zmuJyQkdOjQYeDAgQ0bNizghZYtWzZ+/PiFCxfmuF6yZMkLL7zwtttuO/XUUw/rHeS0cePG66+/PiUlJQiCPn363H333QftsmrVqgkTJsydOzcrKyv79bJly3bv3r1fv35VqlTJ3SslJaVbt26FmdKUKVNatGhRuOkDAADAT4it1QCAo2Xp0qUzZswo7lkcqXXr1o0dO/agzWKx2OjRo/v37587xQnvzp07t1evXjNnzsxvhBdeeOFXv/pV7hQnCIKsrKzZs2f37t379ddfP6TJ52ndunV9+/YNU5xCmj59eu/evWfPnp0jxQmCYO/evX//+9+vuuqqZcuW5e54SK8CAAAA5GZFDgBwFD3++OMXXXRR+fLli3sihykzM3PIkCH79u07aMvnnnvu5ZdfDuvExMQLLrigSZMm5cqVC/ciC7eby8jIuP/++2vWrHnaaafl6P6Pf/zj8ccfD+ukpKSuXbu2atWqbNmyO3fuXLp06Zw5czIzMzMzM//whz+ceOKJ7du3P+x39P777w8fPjw1NbXwXebPnz98+PBwZ7mkpKTLL7/87LPPrlix4vbt2z/88MO33347KysrJSXl9ttvnzp1ao5d2uJBTtWqVQveki45OfnQ3w0AAAAc/wQ5AMBRlJKS8vTTTw8ePLi4J3KYnn/++eXLlx+02ZYtW5555pmwbtiw4bhx42rXrp29wYIFC+688879+/dnZWU9+uijL774Yva7O3bsiG/dduqppz755JM1atSI373uuuu+/fbb22+/PTxs5tFHH73gggsOumFdDrFYbOnSpc8999yHH354qB0feeSRMMWpWbPmxIkT69atG7/7s5/9rHfv3rfeemtqauquXbsmTJgwYsSI7N3jQU7Pnj1vu+22Q3ppAAAAILC1GgBwlJxyyilh8corr6xcubJY53KYvvrqq4kTJwZBcMIJJxS8mmT69OmZmZlBEJQqVeqJJ57IkeIEQXDeeef169cvrJcvX7569ersd998883woKDSpUuPGzcue4oTql+//gMPPBDWGzZs+Prrrw/pjbz11ls/+9nPbrrppniK06NHj+x5TAG++eabDRs2hPXw4cNz92revPmAAQPC+v33389x0FE8yKlcufIhzRkAAAAICXIAgKPiiiuuaNasWRAEsVhs1KhR4ZKOH5H9+/cPHTo0PBLmvvvuq1q1agGNP/roo7Do2rVrnTp18mxz1VVXxeulS5dmv/Xxxx+HRZcuXfJLjNq2bZuUlBTW69atK8xbiFu/fv3WrVvDOikp6Z577nnggQcKuaYn/lrly5dv165dnm3iW73t3bs3/kKhH374ISwK/gABAACA/AhyAICjokSJEkOGDAnrL774Yvr06cU7n0P15JNPrlmzJgiCTp06XX755QU3Xr9+fViceeaZ+bWpWLFi9erVw3rLli3Zb3333Xdh0aRJk/y6lyhRomzZsmGdkZFxkNnnpUaNGrfccsuMGTOuu+66wu/MFj8fqGLFivn1qlixYu72oR07doSFFTkAAABweJyRAwAcLS1btrzqqqumTZsWBMHYsWM7depUoUKFIx92x44dO3fuLHz76tWrxyOQQvr0008nT54cBEHlypWHDh160PaXXHJJGGC0bNmygGaJiXn/0Wvy5MnhiqVSpUrl1zctLS2+uiUeCBXSz372s0svvbRevXqHerJOkG0lzfbt27OyskqWLJm7zbZt23K3D8WDHCtyAAAA4PAIcgCAo2jAgAGzZs3auXNnSkrKk08+GV+jcyReeumlv/zlL4VvP27cuA4dOhS+/d69e+PhzdChQ6tUqXLQLoMGDTpom8zMzO+//z6sq1Wrlv1WcnLyQbvPnDkzPH6mfPnyrVq1Omj77Bo0aHBI7bNr2bJlYmJiZmZmWlrahx9+eOGFF+ZuM2vWrHjjcuXKZb8VD5+syAEAAIDDY2s1AOAoqlSp0sCBA8P6tdde++qrr4p3PoXx2GOPbdq0KQiC7t27d+7cuaiGXbp06f79+8O64IU7uX377bdPPPFEWN9yyy3xw3KOgQoVKlxxxRVhPXLkyPCTye7LL7989tlnw/rmm2/OcTclJSUIgpIlS1asWPHbb7995JFHevbsedFFF3Xs2PGaa6556KGHPvnkk6P8DgAAAODHzYocAODouvLKK994441ly5bFYrFRo0b97W9/K1HiiP4pSf369S+66KLCtz+kTb3mzZv3j3/8IwiC6tWrDx48+FDnVoCXXnopLOrWrdusWbOCG6empu7bty8zM3PTpk0ffPDByy+/nJ6eHgTBL37xi1/96ldFOKvCGDRo0BdffLFq1aqtW7dec801N9988/nnn1+hQoXt27fPmjVrypQpYUB1/fXXd+rUKUffcGu1SpUq/e1vf3vyySezsrLit1JSUr7++uvXXnutXbt2Dz300EknnXQs3xQAAAD8WAhyAICjq0SJEr/73e+uu+66WCy2bNmy119//aqrrjqSAbt169atW7eiml52P/zwwx/+8IewfvDBB3PsEnYkFi1aNHv27LC++eabD3pWzZgxY954443sV0455ZRbb7310ksvLaopFd4JJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r175+gYi8XC04x27NgRX1FUo0aNcuXK7dy5M77R3EcfffSrX/3qhRdekOUAAABAbrZWAwCOuubNm/fs2TOsx40bFz83JWpGjhy5ffv2IAh69ep19tlnF9WwW7Zsuf/++8O6TZs2l19++aGOkJiYWL9+/dKlS8disaKa1SEpV65chw4dGjdunOfd9u3bt2nTJvf11NTUzMzMIAhisVhycvKdd97573//+913333ttdfee++9N998Mx7Ifffdd/FziQAAAIDsrMgBAI6FAQMGzJo1KyUlZefOnU8++eSwYcOKe0Y5vf322++9914QBPXq1bvjjjuKatidO3f2798/3GGscuXKjzzySGF2lmvevHmYgmzfvv2bb77Zv3//nDlz5syZ06ZNm0cfffQYr1zZsmXLvffe+/nnn4c/1qpVq2XLlmXKlNm9e/eyZcu2bdv2zjvvvPPOO1ddddV9991XunTpeMc9e/bUq1cvCIKkpKSRI0c2atQo+7B169YdOXJklSpVJk+eHATBRx99tHDhwnPPPfcYvjMAAAD4ERDkAADHQoUKFe64447hw4cHQTBt2rQrr7yyZcuWhzfU/PnzFy1aVPj2PXr0aNiwYcFttmzZ8vDDDwdBUKJEiYceeig5Ofnw5pbDjh07brvttjVr1gRBULZs2aeeeqpGjRqF6Xj11VdfffXVYZ2env7uu++OHTs2JSVl6dKl//M//zN58uSKFSsWyQwPaseOHTfffPPGjRuDIKhVq9bQoUPPO++8+N0DBw7MmTNn1KhR27dvnzZt2pYtW8aOHVuyZMnwbs2aNadPn17w+L/5zW9mzJiRkpISBME777wjyAEAAIAcBDkAwDFyxRVXTJs2bdmyZUEQjBw5csqUKYVZm5LbZ599Fq7hKKS2bdsWHOTEYrHhw4enpqYGQXDLLbe0atXqMGaV2+bNm/v167du3bogCMqWLTt+/PgWLVocxjhJSUk9evRo27Zt7969d+3atX79+ieffPKYbUT22GOPhSlO9erVJ0+eXLVq1ex3S5Qo0blz5yZNmlx33XU7d+788MMPX3nllWuvvbbw45cpU6ZDhw5h3rN8+fKinTwAAAAcB5yRAwAcIwkJCUOGDElISAiC4Kuvvpo2bVpxz+h/vfrqqwsXLgyCoGnTpr/+9a+LZMy1a9fecMMNYYpToUKFiRMn5nmKTOHVrl37xhtvDOsZM2bs27fviOd4cN9///0777wT1oMGDcqR4sSdfPLJ/fr1C+tDythC8S3XNm3adFjTBAAAgOOZFTkAwLHTtGnTa665ZurUqUEQjBs3rkuXLuXLlz/UQS655JImTZoUvn2zZs0KuLt58+bHH388rPv06RNug5ZbWlpaWGzdunXlypVh3aRJkzCXymHZsmW33377rl27giCoXr36hAkTGjRoUPgJ5+fcc88dN25cEATp6elr1qxp3rz5kY9ZsM8++ywWi4V1hw4dCmjZsWPH0aNHB0GwefPm7777rpA7yIXiG9mlp6cf7kwBAADguCXIAQCOqf79+8+cOTMlJSU1NfWJJ54YNmzYoY7QqFGj+BqOI7du3bp4fjBkyJCDtp80adKkSZPC+uOPP05MzPmnqQULFgwaNCgcs0GDBuPHjy841XjllVf+/ve/B0HQqlWr8Ayh/FSqVCle79y586BTPXLbtm0Li3LlyhV8btCJJ56YvVeNGjUyMjLik6xcuXL84Jzc4quLypQpc6QzBgAAgOOOrdUAgGOqQoUKgwYNCuvp06d/8cUXxTufovXuu+8OHDgwTHFat249adKkg65NOXDgwJo1a9asWfPJJ58U3DI8xSd0bDKP+Kukp6dnZWUV0HLv3r3xulSpUkEQrFmzpsv/+e9//1tA3w0bNoRF9erVj3TGAAAAcNyxIgcAONa6d+8+bdq0pUuXBkHw8MMPF+9kKleufNFFFx202UcffRRmFY0aNTr55JPDizn2VZs6deojjzwS1u3bt//jH/+YlJR00JHjq4s2bNiwdu3aAjZhW758ebyuU6fOQUc+cvFXyczM/Pzzz88444z8WmZPoWrXrh0EQa1ateJXli1bVq9evTw7xmKxBQsWhHXLli2PfM4AAABwnBHkAADHWkJCwv3339+rV68DBw6sWrWqeCfTpEmTJ5544qDNrrrqqvD4nKuuuqp37965G0yYMGHixIlhfcUVVwwbNiz3rmt5atOmTcWKFcNdyB599NGnn346z13I9u/fP2XKlLBu2LBhtWrV4rd27tz5l7/8ZePGjR06dOjRo0dhXrSQTjvttBNOOGHPnj1BEEyYMOGZZ57Jc2779u175plnwrpVq1blypULgqBChQotWrRYsWJFEATPP/98ly5d8oy13nrrrfXr14f1xRdfXISTBwAAgOODrdUAgGLQuHHja665prhnUTQOHDgwcuTIeIpz0003DR8+vJApThAEpUqVuvHGG8N60aJFd9999/bt23O02bZt25133hkmSUEQ9OnTJ/vdQYMGTZ48efbs2cOHD3/77bcP+43klpSUdO2114b1kiVL7rzzzq1bt+Zos27dun79+n399dfhj7/61a/it+Lva+3atQMGDNiyZUuOvrNnzx4xYkRYN23atEOHDkU4eQAAADg+WJEDABSP/v37z5w5c8eOHcU9kSP1/PPPv/rqq/Ef33rrrbfeeuugvR588MFzzjknrPv06bNo0aLFixcHQfDvf/97wYIF559/fuPGjcuVK7d79+6vv/56wYIF+/fvDxt36NDhiiuuiI+zd+/e7Nuavf/++5dddlnul3v//ffHjRuX/Ur8ZJo33nhj3rx58eudOnW644474j/27dt34cKF4a5uH3zwQffu3Tt06NC8efMTTjjhhx9+WLp06eLFiw8cOBA27tGjR9euXeN9u3bt2qNHjzfeeCMIgiVLlnTv3r19+/bNmjUrW7ZsSkrKokWL4pvFlStXbuTIkSVK+DdGAAAAkJMgBwAoHuXLl7/77ruHDBlS3BM5UjmyqNxrVvIUD2aCIEhMTBw7duyIESPCBGj//v1z5syZM2dO7l6XX3750KFDs5/NU6ZMmfLly6empoY/7tq1K8+X271797p16/K8lZqaGu8eBMG2bduy3y1duvSECRN+//vfh/PZv3//rFmzZs2alXucPn363HnnnTkuDhs2rFy5ci+++GIQBBkZGbNnz549e3aONieddNLjjz/esGHDPKcHAAAAP3H+2SMAUGwuu+yyM888s7hnEQlJSUkjR478y1/+0r59+1KlSuW4m5iY2L59+z//+c8PPvhg6dKls98qWbLk7373u/hObhUqVCjyuZUvX/5Pf/rTU089dd555+XeMu6EE07o1q3b1KlT77777twn6JQsWfK3v/3tiy++ePHFF5cpUybH3ZNOOunXv/7166+/3rJlyyKfNgAAABwfEmKxWHHPAQCOQEJCEASfL11a3POAIpOenr5mzZrvvvtu3759ZcqUqV69esOGDZOTkwvosmPHjq5du2ZlZfXv3//Xv/710ZtbWlra6tWrt27dun///rJly9aqVatBgwa585s8ZWRkrFq1avPmzRkZGcnJyaecckrdunWzry4iOlq3afO/lb8sAAAAFDdbqwEAREtSUlKLFi1atGhR+C6LFy/OysoKguDiiy8+avMKgiBITk5u1arV4fUtVapU8+bNmzdvXrRTAgAAgOObrdUAAH7cVq1a9cgjjwRB0KNHj1NOOaW4pwMAAAAUJUEOAMCP2MyZM2+44YadO3eedtpp9913X3FPBwAAAChighwAgB+xjIyMvXv3duvWbeLEiQWfowMAAAD8GDkjBwDgR+ziiy+uXr1627Zti3siAAAAwFFhRQ4AwI9Y6dKlpTgAAABwHBPkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARFRCLBYr7jkAwBFISCjuGQAcv/xlAQAAoLhZkQMAAAAAABBRghwAAAAAAICISizuCQDAkbHtDwAAAADHLytyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAP6/9uxYAAAAAGCQv/U0dpRGAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTAZC2AiYGP3ydAAAAAElFTkSuQmCC", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# pages = convert_from_path('imgs/Aim_4_Flowchart_Custom.pdf', dpi=200)\n", - "# path_png = 'imgs/step1-2.png'\n", - "# pages[1].save(path_png, 'PNG')\n", - "# # Display the image in the notebook\n", - "# display(Image(filename=path_png))" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1067,13 +928,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "937660012c8e4486aad5f60ac5781146", + "model_id": "4822d3ca742f450981513f5a33fa9c62", "version_major": 2, "version_minor": 0 }, @@ -1087,7 +948,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ac1fd836abd045d3bc15ff60e4752497", + "model_id": "bc50f44b5d9e4182817193d4bf86e95c", "version_major": 2, "version_minor": 0 }, @@ -1199,248 +1060,7 @@ }, { "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_coded
4JC10000211310091590443667950292010-05-29 23:22:00+00:002010-06-01 00:13:00+00:00Outpatient2010-05-29 07:00:00+00:00MONTELUKAST 10 MG PO TABS366795167
12JC10001291313489990248561190392023-01-24 01:26:00+00:002023-01-26 00:28:00+00:00Outpatient2023-01-23 08:00:00+00:00NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS856119198
13JC10001291313489990248561190392023-01-24 01:26:00+00:002023-01-26 00:28:00+00:00Outpatient2023-01-25 08:00:00+00:00FUROSEMIDE 20 MG PO TABS856561981
14JC10001291313489990248561190392023-01-24 01:26:00+00:002023-01-26 00:28:00+00:00Outpatient2023-01-25 08:00:00+00:00POTASSIUM CHLORIDE 20 MEQ PO PACK856561985
16JC10001431312668329876067567162019-03-30 18:39:00+00:002019-04-01 18:57:00+00:00Outpatient2019-03-30 07:00:00+00:00DEXTROSE 50 % IN WATER (D50W) IV SYRG606799990
..............................
559258JC9998141310087203653643371382010-04-06 23:09:00+00:002010-04-08 15:57:00+00:00Outpatient2010-04-07 07:00:00+00:00CIPROFLOXACIN 250 MG PO TABS364367210
559262JC9999921311895475414972011032016-06-06 03:57:00+00:002016-06-08 00:36:00+00:00Outpatient2016-06-06 07:00:00+00:00CEPHALEXIN 500 MG PO CAPS497224508
559263JC9999921311900832184976662892016-06-12 00:23:00+00:002016-06-14 02:33:00+00:00Outpatient2016-06-11 07:00:00+00:00CEFTRIAXONE 250 MG INJ SOLR497664548
559264JC9999921311900832184976662892016-06-12 00:23:00+00:002016-06-14 02:33:00+00:00Outpatient2016-06-11 07:00:00+00:00CIPROFLOXACIN HCL 500 MG PO TABS497664549
559265JC9999921311900832184976662892016-06-12 00:23:00+00:002016-06-14 02:33:00+00:00Outpatient2016-06-11 07:00:00+00:00IBUPROFEN 600 MG PO TABS497664550
\n", - "

421632 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "4 JC1000021 131009159044 366795029 \n", - "12 JC1000129 131348999024 856119039 \n", - "13 JC1000129 131348999024 856119039 \n", - "14 JC1000129 131348999024 856119039 \n", - "16 JC1000143 131266832987 606756716 \n", - "... ... ... ... \n", - "559258 JC999814 131008720365 364337138 \n", - "559262 JC999992 131189547541 497201103 \n", - "559263 JC999992 131190083218 497666289 \n", - "559264 JC999992 131190083218 497666289 \n", - "559265 JC999992 131190083218 497666289 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "4 2010-05-29 23:22:00+00:00 2010-06-01 00:13:00+00:00 Outpatient \n", - "12 2023-01-24 01:26:00+00:00 2023-01-26 00:28:00+00:00 Outpatient \n", - "13 2023-01-24 01:26:00+00:00 2023-01-26 00:28:00+00:00 Outpatient \n", - "14 2023-01-24 01:26:00+00:00 2023-01-26 00:28:00+00:00 Outpatient \n", - "16 2019-03-30 18:39:00+00:00 2019-04-01 18:57:00+00:00 Outpatient \n", - "... ... ... ... \n", - "559258 2010-04-06 23:09:00+00:00 2010-04-08 15:57:00+00:00 Outpatient \n", - "559262 2016-06-06 03:57:00+00:00 2016-06-08 00:36:00+00:00 Outpatient \n", - "559263 2016-06-12 00:23:00+00:00 2016-06-14 02:33:00+00:00 Outpatient \n", - "559264 2016-06-12 00:23:00+00:00 2016-06-14 02:33:00+00:00 Outpatient \n", - "559265 2016-06-12 00:23:00+00:00 2016-06-14 02:33:00+00:00 Outpatient \n", - "\n", - " medication_time \\\n", - "4 2010-05-29 07:00:00+00:00 \n", - "12 2023-01-23 08:00:00+00:00 \n", - "13 2023-01-25 08:00:00+00:00 \n", - "14 2023-01-25 08:00:00+00:00 \n", - "16 2019-03-30 07:00:00+00:00 \n", - "... ... \n", - "559258 2010-04-07 07:00:00+00:00 \n", - "559262 2016-06-06 07:00:00+00:00 \n", - "559263 2016-06-11 07:00:00+00:00 \n", - "559264 2016-06-11 07:00:00+00:00 \n", - "559265 2016-06-11 07:00:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \n", - "4 MONTELUKAST 10 MG PO TABS 366795167 \n", - "12 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 856119198 \n", - "13 FUROSEMIDE 20 MG PO TABS 856561981 \n", - "14 POTASSIUM CHLORIDE 20 MEQ PO PACK 856561985 \n", - "16 DEXTROSE 50 % IN WATER (D50W) IV SYRG 606799990 \n", - "... ... ... \n", - "559258 CIPROFLOXACIN 250 MG PO TABS 364367210 \n", - "559262 CEPHALEXIN 500 MG PO CAPS 497224508 \n", - "559263 CEFTRIAXONE 250 MG INJ SOLR 497664548 \n", - "559264 CIPROFLOXACIN HCL 500 MG PO TABS 497664549 \n", - "559265 IBUPROFEN 600 MG PO TABS 497664550 \n", - "\n", - "[421632 rows x 9 columns]" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].notnull()\n", - "current_med_original_no_mapped_with_12_hours_inpatient_temp[condition]" - ] - }, - { - "cell_type": "code", - "execution_count": 72, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -1449,13 +1069,13 @@ "" ] }, - "execution_count": 72, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAJECAYAAAB5M+dKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABezklEQVR4nO3de1hU5cL+8XsEOYgwAgZIopCaJzTTdgbWlspjkO2sbUbRydTSMk/b9G2naOWxzNLanUwtM3srbacVHjq4t3nGqDSzLM+KmiKmIiA8vz96nZ8joGAwa5Z+P9c119Ws9cyaew0T481a6xmHMcYIAAAAAOBx1awOAAAAAAAXKwoZAAAAAFiEQgYAAAAAFqGQAQAAAIBFKGQAAAAAYBEKGQAAAABYhEIGAAAAABahkAEAAACARShkAAAAAGARChmA8zJz5kw5HA4FBARo+/btJdYnJSUpPj7egmTSV199JYfDoQ8++MCS56+obdu2KTk5WWFhYXI4HBo4cGCZYx0Ohx555JFS133wwQdyOBz66quvziuDw+HQzJkzK/xYT6rM/U9KSlJSUlLlhaugI0eO6JlnntFVV12lkJAQ+fv7KzY2Vg888IDWr19/XtuMjY3Vfffd57q/Z88epaenKysrq3JCV4GDBw9qxIgRatasmWrUqKGQkBBdc801eumll1RYWPint5+eni6Hw1EJSe1v69atCg4O1m233Vbq+jlz5sjhcOjVV1/1cDLg4uZrdQAA9pafn69//vOfevvtt62OYluDBg3S6tWr9eabbyoqKkp16tTxeIY6depo5cqVatCggcef2yovv/yyZc/9yy+/qFOnTtq/f78eeughjR49WjVr1tS2bdv0v//7v2rTpo0OHz4sp9P5p55nz549Gj16tGJjY9WqVavKCV+JfvzxR3Xq1ElHjx7VkCFDlJiYqLy8PC1cuFCPPfaY3n//fX366aeqUaOG1VEvCHFxcZo8ebL69OmjOXPmKDU11bUuOztbjz76qDp37qy+fftamBK4+FDIAPwpXbp00Zw5czR06FBdccUVVsfxqLy8PAUEBPzpv75v2LBBV199tf72t79VTrDz4O/vr2uuucay5/ek48ePq0aNGmrWrJklz19UVKRbb71Vv/32m1auXOl2JLl9+/a699579dlnn6l69eqW5CuPoqIinTx5Uv7+/n9qG7fddpuOHDmiNWvW6PLLL3etu+mmm9S+fXv17NlTgwcP1iuvvFKlWSri1PvHmxljdOLECQUGBpZY17t3b82fP1+PPvqorr/+etcfgPr27StjjKZPn+6RjHZ4HQFP4ZRFAH/KsGHDFB4erscff/ys4852SpzD4VB6errr/qlTjL777jv9/e9/l9PpVFhYmAYPHqyTJ09q8+bN6tKli4KDgxUbG6uJEyeW+pwnTpzQ4MGDFRUVpcDAQLVv317ffPNNiXHr1q1Tt27dFBYWpoCAAF155ZX63//9X7cxp07RXLx4sR544AFdcsklqlGjhvLz88vc5x07dujuu+9WRESE/P391bRpUz333HMqLi6W9P9PrdyyZYs+++wzORwOORwObdu27ayvZUWcOnV07dq1uu6661SjRg1ddtllGj9+vCuHVPbP55NPPlGrVq3k7++vuLg4PfvssyVOAavIz1aSfv75Z6Wmprq9Li+99FKl7fPpTu3/f/7zHyUmJqpGjRp64IEHXOtOP2Xx1H48++yzmjx5suLi4lSzZk0lJCRo1apVJbZdnvdNaT766CN9//33GjFiRJmn9Xbt2tX1j9X77rtPsbGxJcac61S8r776Sn/5y18kSffff7/r/XXq51HWKZtnPt+p12XixIl6+umnFRcXJ39/f3355Zd/6nWYP3++fvjhBw0fPtytjJ1yxx13qFOnTpo+fbqys7PLlaW092tpjDF6+eWX1apVKwUGBio0NFS33367fv31V7dxZ3v/fPHFF0pKSlJ4eLgCAwNVr1493XbbbTp+/PhZ9zs2NlYpKSmaP3++WrZsqYCAAF122WV68cUXS4w9cuSIhg4dqri4OPn5+enSSy/VwIEDdezYMbdxp07lfeWVV9S0aVP5+/tr1qxZZWY4Vbr69OkjSXr77bf18ccfa9q0abr00kvL/fosWbJEt9xyi+rWrauAgAA1bNhQffv21W+//eY27tR7df369br99tsVGhp6UR2NB86FI2QA/pTg4GD985//1GOPPaYvvvhCN9xwQ6Vtu0ePHrr77rvVt29fLVmyRBMnTlRhYaGWLl2qfv36aejQoZozZ44ef/xxNWzYUN27d3d7/P/8z/+odevWeuONN5Sbm6v09HQlJSXpm2++0WWXXSZJ+vLLL9WlSxe1bdtWr7zyipxOp+bOnas77rhDx48fd7seR5IeeOABJScn6+2339axY8fKPIpx4MABJSYmqqCgQE899ZRiY2O1cOFCDR06VL/88otefvlltW7dWitXrtStt96qBg0auP7xWNmnLGZnZ+uuu+7SkCFDNGrUKM2fP18jRoxQdHS07rnnnjIf9/nnn+uWW25RQkKC5s6dq6KiIk2cOFH79u077yw//PCDEhMTVa9ePT333HOKiorSokWLNGDAAP32228aNWrUeW+7LHv37tXdd9+tYcOGaezYsapW7ex/i3zppZfUpEkTTZkyRZL05JNP6qabbtLWrVtdpxBW9H1zusWLF0tSlR8Rbd26tWbMmKH7779f//znP5WcnCxJqlu37nlt78UXX9Tll1+uZ599ViEhIWrUqNGfeh2WLFki6eyvw9/+9jctXrxYX331lXr27HnWLBV5v/bt21czZ87UgAEDNGHCBB06dEhjxoxRYmKivv32W0VGRrrGlvb+OXXd53XXXac333xTtWrV0u7du5WRkaGCgoJzHvnJysrSwIEDlZ6erqioKL3zzjt67LHHVFBQoKFDh0r64whS+/bttWvXLv3P//yPWrZsqY0bN2rkyJH6/vvvtXTpUrdC/tFHH+m///2vRo4cqaioKEVERJT5/HXq1NFLL72kO++8U+PGjdOkSZN02223uU5hLO/r88svvyghIUEPPvignE6ntm3bpsmTJ+vaa6/V999/X+L3Y/fu3dWzZ0899NBDJUolcFEzAHAeZsyYYSSZtWvXmvz8fHPZZZeZq666yhQXFxtjjGnfvr1p3ry5a/zWrVuNJDNjxowS25JkRo0a5bo/atQoI8k899xzbuNatWplJJl58+a5lhUWFppLLrnEdO/e3bXsyy+/NJJM69atXXmMMWbbtm2mevXq5sEHH3Qta9KkibnyyitNYWGh23OlpKSYOnXqmKKiIrf9veeee8r1+gwfPtxIMqtXr3Zb/vDDDxuHw2E2b97sWla/fn2TnJxcru1KMv379y913fvvv28kmS+//NK1rH379qXmaNasmencubPrfmk/n7Zt25ro6GiTl5fnWnbkyBETFhZmTv/4qMjPtnPnzqZu3bomNzfXbdwjjzxiAgICzKFDh862++e9/59//nmJ8e3btzft27cvsR8tWrQwJ0+edC1fs2aNkWTeffdd17Lyvm9K06VLFyPJnDhx4qz7esq9995r6tevX2L5qf9PTle/fn1z7733uu6vXbu2zJ/Nmftf1vOdel0aNGhgCgoK3MZW9evw2WefGUlmwoQJ58xS3vfrypUrS/39snPnThMYGGiGDRvmWlbW++eDDz4wkkxWVlaZ2ctSv35943A4Sjy2Y8eOJiQkxBw7dswYY8y4ceNMtWrVzNq1a0t97k8//dS1TJJxOp3n/P/nTD169DCSTGRkpDlw4IAxpmKvz+mKi4tNYWGh2b59u5Fk/v3vf7vWnXqvjhw5skL5gIsFpywC+NP8/Pz09NNPa926deU6Vam8UlJS3O43bdpUDodDXbt2dS3z9fVVw4YNS53pMTU11e0vyPXr11diYqLr9KYtW7boxx9/1F133SVJOnnypOt20003ae/evdq8ebPbNsuanexMX3zxhZo1a6arr77abfl9990nY4y++OKLcm2nMkRFRZXI0bJly1Jfs1OOHTumtWvXqnv37goICHAtDw4O1s0333xeOU6cOKHPP/9ct956q2rUqFHi9T5x4kSppwb+WaGhoRU6cpucnCwfHx/X/ZYtW0qS6/U6n/fNhaBbt25uRzw88ToYYySpxKmZZ2apyPt14cKFcjgcuvvuu90yR0VF6YorrigxS2dp759WrVrJz89Pffr00axZs0qcyncuzZs3L3HNbWpqqo4cOeKaYXPhwoWKj49Xq1at3HJ27ty51NlEb7jhBoWGhlYox5gxYyRJAwYMUO3atV3PW97X59SkNDExMfL19VX16tVVv359SdKmTZtKPF95f38CFxsKGYBK0bNnT7Vu3VpPPPFEpUxVLUlhYWFu9/38/FSjRg23f3CdWn7ixIkSj4+Kiip12cGDByXJdSrT0KFDVb16dbdbv379JKnEtRDlPZ3w4MGDpY6Njo52rT8fPj4+KioqKnXdyZMnJanEaULh4eElxvr7+ysvL6/M58nJyVFxcXGZr+H5OHjwoE6ePKmpU6eWeL1vuukmSSVf7zOdz/5X9BTQM1+vU5NFnHq9zud9c7p69epJ+mMKcjs583X0xOtw6nrKmJiYs2apyPt13759MsYoMjKyRO5Vq1aV6//5Bg0aaOnSpYqIiFD//v3VoEEDNWjQQC+88EKZ+3K2TKcvO/3303fffVciY3BwsIwx5/276XSn3tt+fn6uZeV9fYqLi9WpUyfNmzdPw4YN0+eff641a9a4/qhS2u8XK2aQBeyAa8gAVAqHw6EJEyaoY8eOeu2110qsP1WizpwE43yLSXmcmgjgzGWn/sF96i/CI0aMKHH92SmNGzd2u1/eGRXDw8O1d+/eEsv37Nnj9twVFRkZqd27d5e67tTy069/OV+hoaFyOBxlvoanK+/PNjQ0VD4+PkpLS1P//v1Lfd64uLiz5jqf/a/s76A6n/fN6Tp37qzXXntNH330kYYPH37O5wsICCh18phzldfybDc3N7fc2z3zdfyzr8Op3xVnex0++ugj+fr6lph85MwsFXm/1q5dWw6HQ//9739LnZnxzGVlvX+uu+46XXfddSoqKtK6des0depUDRw4UJGRkW7Xu5XmbDlP//0UGBioN998s9RtnPk7pLLe5+V9fTZs2KBvv/1WM2fO1L333utav2XLljK3zffBAaWjkAGoNB06dFDHjh01ZsyYEn/RjoyMVEBAgL777ju35f/+97+rLM+7776rwYMHu/4RsH37dq1YscI1kUXjxo3VqFEjffvttxo7dmylPveNN96ocePGaf369WrdurVr+VtvvSWHw6Hrr7/+vLbboUMHzZs3TwcOHNAll1ziWm6M0fvvv6/Y2Fg1bNjwT+cPCgrS1VdfrXnz5mnSpEmu0vX7779rwYIFbmPL+7OtUaOGrr/+en3zzTdq2bKl21/ly8tT+382f/Z9c8stt6hFixYaN26cUlJSSp1pcdGiRa5ZMWNjY7V//37t27fPVTYLCgq0aNGicz7XmUf3ThcbG6v3339f+fn5rnEHDx7UihUrFBIScs5t/9nX4dZbb1WzZs00fvx4de/evcRMi++9954WL16shx566JxHZSvyfk1JSdH48eO1e/du9ejRo8K5z+Tj46O2bduqSZMmeuedd7R+/fpzFrKNGzfq22+/dTttcc6cOQoODnb9vkhJSdHYsWMVHh5+zj9UVKbyvj6nfq+eWdr4Ummg4ihkACrVhAkT1KZNG+3fv1/Nmzd3LT91TcKbb76pBg0a6IorrtCaNWs0Z86cKsuyf/9+3Xrrrerdu7dyc3M1atQoBQQEaMSIEa4xr776qrp27arOnTvrvvvu06WXXqpDhw5p06ZNWr9+vd5///3zeu5BgwbprbfeUnJyssaMGaP69evrk08+0csvv6yHH3641Gm+y2PkyJFasGCB2rZtq+HDh6tRo0bKzs7W66+/rrVr11bqNXxPPfWUunTpoo4dO2rIkCEqKirShAkTFBQUpEOHDrnGVeRn+8ILL+jaa6/Vddddp4cfflixsbH6/ffftWXLFi1YsOCc19Z5cv/P5s+8b3x8fDR//nx16tRJCQkJevjhh3X99dcrKChI27dv1wcffKAFCxYoJydH0h/Tv48cOVI9e/bUP/7xD504cUIvvvhimadunq5BgwYKDAzUO++8o6ZNm6pmzZqKjo5WdHS00tLS9Oqrr+ruu+9W7969dfDgQU2cOLFcZayyXocPP/xQHTt2VEJCgoYMGaKEhATl5+drwYIFeu2119S+fXs999xz5cpS3vdru3bt1KdPH91///1at26d/vrXvyooKEh79+7V8uXL1aJFCz388MNnfa5XXnlFX3zxhZKTk1WvXj2dOHHCdSSrQ4cO58waHR2tbt26KT09XXXq1NHs2bO1ZMkSTZgwwTVD48CBA/Xhhx/qr3/9qwYNGqSWLVuquLhYO3bs0OLFizVkyBC1bdu2XK9NRZT39WnSpIkaNGig4cOHyxijsLAwLViwwDV7JoAKsG4+EQB2dvosi2dKTU01ktxmWTTGmNzcXPPggw+ayMhIExQUZG6++Wazbdu2MmdZPDXr1yn33nuvCQoKKvF8Z87oeGqWxbffftsMGDDAXHLJJcbf399cd911Zt26dSUe/+2335oePXqYiIgIU716dRMVFWVuuOEG88orr5Rrf8uyfft2k5qaasLDw0316tVN48aNzaRJk0rMPFeRWRaNMebnn382d999t6lTp47x9fU1tWrVMp06dSpzJsEzfw7GlD2T3pmz8X388cemZcuWxs/Pz9SrV8+MHz++1Nn9yvuzPfVcDzzwgLn00ktN9erVzSWXXGISExPN008/7bH9P7WutFkWJ02aVGJsaftRnvfN2Rw+fNg89dRTpnXr1qZmzZqmevXqpl69eubuu+82X3/9tdvYTz/91LRq1coEBgaayy67zEybNq1csywaY8y7775rmjRpYqpXr15iP2bNmmWaNm1qAgICTLNmzcx7771X5nujtNelMl6H3377zQwfPtw0adLEBAQEmJo1a5qrr77aTJs2rcRMiufKUt73qzHGvPnmm6Zt27YmKCjIBAYGmgYNGph77rnH7XdEWe+flStXmltvvdXUr1/f+Pv7m/DwcNO+fXvz8ccfn3N/T/3//sEHH5jm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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAJECAYAAAB5M+dKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe20lEQVR4nO3de1hU5cL+8XsEOYgwAgZIopCah9BM2xlYWypFDbKdtc0oOplWWuZpm77tFK08lllau5OpZWZvpe20wkMH9zbNA0almWV5VtQUMQ0B4fn90ev8HAEFg1mz5Pu5rrmuZq1n1txrmBhv1lrPOIwxRgAAAAAAj6tldQAAAAAAqKkoZAAAAABgEQoZAAAAAFiEQgYAAAAAFqGQAQAAAIBFKGQAAAAAYBEKGQAAAABYhEIGAAAAABahkAEAAACARShkAM7JrFmz5HA4FBAQoO3bt5dan5SUpPj4eAuSSV988YUcDofee+89S56/srZt26aUlBSFhYXJ4XBo0KBB5Y51OBx66KGHylz33nvvyeFw6IsvvjinDA6HQ7Nmzar0Yz2pKvc/KSlJSUlJVReuko4cOaKnnnpKl19+uUJCQuTv76/Y2Fjde++9Wr9+/TltMzY2Vnfffbfr/p49e5SRkaHs7OyqCV0NDh48qJEjR6pVq1aqU6eOQkJCdOWVV+qFF15QUVHRn95+RkaGHA5HFSS1v61btyo4OFg333xzmevnzp0rh8Ohl19+2cPJgJrN1+oAAOytoKBA//znP/Xmm29aHcW2Bg8erNWrV+v1119XVFSUGjRo4PEMDRo00KpVq9SkSROPP7dVXnzxRcue++eff1ZycrL279+vBx54QGPGjFHdunW1bds2/e///q/at2+vw4cPy+l0/qnn2bNnj8aMGaPY2Fi1bdu2asJXoR9++EHJyck6evSohg4dqsTEROXn52vRokV65JFH9O677+rjjz9WnTp1rI56XoiLi9OUKVPUr18/zZ07V2lpaa51OTk5evjhh9W1a1fdf//9FqYEah4KGYA/pVu3bpo7d66GDRumSy+91Oo4HpWfn6+AgIA//df3DRs26IorrtDf/va3qgl2Dvz9/XXllVda9vye9Pvvv6tOnTpq1aqVJc9fXFysm266Sb/++qtWrVrldiS5U6dOuuuuu/TJJ5+odu3aluSriOLiYp04cUL+/v5/ahs333yzjhw5ojVr1ujiiy92rbv++uvVqVMn9e7dW0OGDNFLL71UrVkq4+T7x5sZY3T8+HEFBgaWWte3b18tWLBADz/8sK655hrXH4Duv/9+GWM0Y8YMj2S0w+sIeAqnLAL4U4YPH67w8HA9+uijZxx3plPiHA6HMjIyXPdPnmL07bff6u9//7ucTqfCwsI0ZMgQnThxQps3b1a3bt0UHBys2NhYTZo0qcznPH78uIYMGaKoqCgFBgaqU6dO+vrrr0uNW7dunXr06KGwsDAFBATosssu0//+7/+6jTl5iuaSJUt077336oILLlCdOnVUUFBQ7j7v2LFDd9xxhyIiIuTv76+WLVvqmWeeUUlJiaT/f2rlli1b9Mknn8jhcMjhcGjbtm1nfC0r4+Spo2vXrtXVV1+tOnXq6KKLLtKECRNcOaTyfz4fffSR2rZtK39/f8XFxenpp58udQpYZX62kvTTTz8pLS3N7XV54YUXqmyfT3Vy///zn/8oMTFRderU0b333utad+opiyf34+mnn9aUKVMUFxenunXrKiEhQV999VWpbVfkfVOWDz74QN99951GjhxZ7mm93bt3d/1j9e6771ZsbGypMWc7Fe+LL77QX/7yF0nSPffc43p/nfx5lHfK5unPd/J1mTRpkp588knFxcXJ399fn3/++Z96HRYsWKDvv/9eI0aMcCtjJ916661KTk7WjBkzlJOTU6EsZb1fy2KM0Ysvvqi2bdsqMDBQoaGhuuWWW/TLL7+4jTvT++ezzz5TUlKSwsPDFRgYqEaNGunmm2/W77//fsb9jo2NVWpqqhYsWKA2bdooICBAF110kZ5//vlSY48cOaJhw4YpLi5Ofn5+uvDCCzVo0CAdO3bMbdzJU3lfeukltWzZUv7+/po9e3a5GU6Wrn79+kmS3nzzTX344YeaPn26Lrzwwgq/PkuXLtWNN96ohg0bKiAgQE2bNtX999+vX3/91W3cyffq+vXrdcsttyg0NLRGHY0HzoYjZAD+lODgYP3zn//UI488os8++0zXXnttlW27V69euuOOO3T//fdr6dKlmjRpkoqKirRs2TL1799fw4YN09y5c/Xoo4+qadOm6tmzp9vj/+d//kft2rXTa6+9pry8PGVkZCgpKUlff/21LrroIknS559/rm7duqlDhw566aWX5HQ6NW/ePN166636/fff3a7HkaR7771XKSkpevPNN3Xs2LFyj2IcOHBAiYmJKiws1BNPPKHY2FgtWrRIw4YN088//6wXX3xR7dq106pVq3TTTTepSZMmrn88VvUpizk5Obr99ts1dOhQjR49WgsWLNDIkSMVHR2tO++8s9zHffrpp7rxxhuVkJCgefPmqbi4WJMmTdK+ffvOOcv333+vxMRENWrUSM8884yioqK0ePFiDRw4UL/++qtGjx59ztsuz969e3XHHXdo+PDhGjdunGrVOvPfIl944QW1aNFCU6dOlSQ9/vjjuv7667V161bXKYSVfd+casmSJZJU7UdE27Vrp5kzZ+qee+7RP//5T6WkpEiSGjZseE7be/7553XxxRfr6aefVkhIiJo1a/anXoelS5dKOvPr8Le//U1LlizRF198od69e58xS2Xer/fff79mzZqlgQMHauLEiTp06JDGjh2rxMREffPNN4qMjHSNLev9c/K6z6uvvlqvv/666tWrp927dyszM1OFhYVnPfKTnZ2tQYMGKSMjQ1FRUXrrrbf0yCOPqLCwUMOGDZP0xxGkTp06adeuXfqf//kftWnTRhs3btSoUaP03XffadmyZW6F/IMPPtB///tfjRo1SlFRUYqIiCj3+Rs0aKAXXnhBt912m8aPH6/Jkyfr5ptvdp3CWNHX5+eff1ZCQoLuu+8+OZ1Obdu2TVOmTNFVV12l7777rtTvx549e6p379564IEHSpVKoEYzAHAOZs6caSSZtWvXmoKCAnPRRReZyy+/3JSUlBhjjOnUqZO55JJLXOO3bt1qJJmZM2eW2pYkM3r0aNf90aNHG0nmmWeecRvXtm1bI8nMnz/ftayoqMhccMEFpmfPnq5ln3/+uZFk2rVr58pjjDHbtm0ztWvXNvfdd59rWYsWLcxll11mioqK3J4rNTXVNGjQwBQXF7vt75133lmh12fEiBFGklm9erXb8gcffNA4HA6zefNm17LGjRublJSUCm1XkhkwYECZ6959910jyXz++eeuZZ06dSozR6tWrUzXrl1d98v6+XTo0MFER0eb/Px817IjR46YsLAwc+rHR2V+tl27djUNGzY0eXl5buMeeughExAQYA4dOnSm3T/n/f/0009Lje/UqZPp1KlTqf1o3bq1OXHihGv5mjVrjCTz9ttvu5ZV9H1Tlm7duhlJ5vjx42fc15Puuusu07hx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8/T+++9r6NCh1bfzAAAAAGo8XyufvHv37urevXuZ65xOp5YuXeq2bNq0abriiiu0Y8cONWrUSHl5eZoxY4befPNNde7cWZI0Z84cxcTEaNmyZeratas2bdqkzMxMffXVV+rQoYMk6dVXX1VCQoI2b96s5s2ba8mSJfr++++1c+dORUdHS5KeeeYZ3X333XrqqacUEhJSja8CAAAAgJrK0kJWWXl5eXI4HKpXr54kKSsrS0VFRUpOTnaNiY6OVnx8vFauXKmuXbtq1apVcjqdrjImSVdeeaWcTqdWrlyp5s2ba9WqVYqPj3eVMUnq2rWrCgoKlJWVpWuuuabMPAUFBSooKHDdP3LkSBXvMQAA5y52xEfVtu1tE1KqbdsAUJPYZlKP48ePa8SIEUpLS3MdscrJyZGfn59CQ0PdxkZGRionJ8c1JiIiotT2IiIi3MZERka6rQ8NDZWfn59rTFnGjx/vui7N6XQqJibmT+0jAAAAgJrFFoWsqKhIvXv3VklJiV588cWzjjfGyOFwuO6f+t9/ZszpRo4cqby8PNdt586dZ80GAAAAACd5fSErKipSr169tHXrVi1dutTteq6oqCgVFhYqNzfX7TH79+93HfGKiorSvn37Sm33wIEDbmNOPxKWm5uroqKiUkfOTuXv76+QkBC3GwAAAABUlFcXspNl7KefftKyZcsUHh7utr59+/aqXbu22+Qfe/fu1YYNG5SYmChJSkhIUF5entasWeMas3r1auXl5bmN2bBhg/bu3esas2TJEvn7+6t9+/bVuYsAAAAAajBLJ/U4evSotmzZ4rq/detWZWdnKywsTNHR0brlllu0fv16LVq0SMXFxa6jWGFhYfLz85PT6VSfPn00dOhQhYeHKywsTMOGDVPr1q1dsy62bNlS3bp1U9++ffXyyy9Lkvr166fU1FQ1b95ckpScnKxWrVopPT1dkydP1qFDhzRs2DD17duXo14AAAAAqo2lhWzdunVuMxgOGTJEknTXXXcpIyNDH374oSSpbdu2bo/7/PPPlZSUJEl69tln5evrq169eik/P1/XXXedZs2aJR8fH9f4t956SwMHDnTNxtijRw+37z7z8fHRRx99pP79+6tjx44KDAxUWlqann766erYbQAAAACQZHEhS0pKkjGm3PVnWndSQECApk2bpmnTppU7JiwsTHPmzDnjdho1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KlebNm302WefqUmTJoqKitL27dvdXu/t27crMDDQwoRn5uvrq5tvvlk333yzdu/erddff12zZs3S008/rY4dO+o///mP1RFd+Hz0PD4fPYPPR8/x2s9Hj1dAnNGNN95oUlNTzYoVK0y/fv3M5ZdfblJSUszRo0fNsWPHzC233GK6detmdcxSunTp4nZoevLkyaZBgwau++vXrzf169e3ItoZ3XHHHaZNmzZm7dq1pdatXbvWtG3b1qSnp1uQrHyJiYlm6tSp5a731lMy4uLi3P56dtLu3bvNxRdfbDp37ux1uRs1amRWr17tuv/oo4+agwcPuu5nZ2d75fv6pI8//tg0bNjQjBs3zhQXFxtfX1+zceNGq2OVy+FwmKeeeso899xzJjo62vznP/9xW5+dnW1CQ0MtSle2RYsWmbCwMDNz5kwzc+ZMExsba1577TXz5Zdfmtdff93ExMSYf/zjH1bHLOXU00PLsmzZMpOWlubBRGfH56Nn8fnoOXw+ep63fT5SyLzMjz/+aJo2bWocDoe55JJLzO7du02PHj2Mr6+v8fX1NRdccIHJysqyOmYpWVlZJiwszERFRZlGjRoZPz8/8/bbb7vWT58+3SvPNc/NzTXdunUzDofDhIaGmubNm5sWLVqY0NBQU6tWLdO9e3eTm5trdUw3Tz31lMnIyCh3/Y4dO8zdd9/twUQV06dPH3PvvfeWuW7Xrl2madOmXveB06NHjzN+uE+fPt1ce+21HkxUeTk5OaZ79+7mqquusvwD52waN25sYmNjXbfTX/tnn33WXHnllRalK997771nGjZsWOq6hICAADNo0CCvvC7r1NND7YLPR8/i89Fz+Hy0hjd9PvLF0F7q4MGDCg8Pd93/9NNPlZ+fr4SEBLfl3mTv3r1atGiRCgoKdO2116pVq1ZWR6qwH374QatWrVJOTo4kKSoqSgkJCWrRooXFyc4f27dv1w8//KCuXbuWuX7v3r1asmSJ7rrrLg8nO3dr165VYGCg26km3ur555/X559/rmnTptli+viyfPXVV/L393c7xcRbFBcXa/369frll19UUlKiBg0aqH379goODrY6WpmWL1+ujh07ytfXflcu8PnoWXw+Vj8+H63lDZ+PFDIAAAAAsEgtqwOgNGOMli5dqjFjxujBBx9U//79NWbMGC1btkze3J/tmvtMcnNz9cYb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", "text/plain": [ "
" ] @@ -1471,322 +1091,15 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Yearunique_order_starting_cohortunique_order_inp_cohort_mergeddiff
0199985850
12000294329430
22001288828880
32002242624260
42003233523350
52004229422940
62005220622060
72006201520150
82007110
920081612263119811
10200919489676412725
11201018549608312466
12201118155394414211
13201218334266315671
14201319024285416170
15201419759346016299
162015252991219313106
172016329362002812908
182017349572255612401
192018393142445714857
202019390482410514943
212020338112056113250
222021382402304115199
232022418562412417732
242023468942548121413
2520241027522505
\n", - "
" - ], - "text/plain": [ - " Year unique_order_starting_cohort unique_order_inp_cohort_merged diff\n", - "0 1999 85 85 0\n", - "1 2000 2943 2943 0\n", - "2 2001 2888 2888 0\n", - "3 2002 2426 2426 0\n", - "4 2003 2335 2335 0\n", - "5 2004 2294 2294 0\n", - "6 2005 2206 2206 0\n", - "7 2006 2015 2015 0\n", - "8 2007 1 1 0\n", - "9 2008 16122 6311 9811\n", - "10 2009 19489 6764 12725\n", - "11 2010 18549 6083 12466\n", - "12 2011 18155 3944 14211\n", - "13 2012 18334 2663 15671\n", - "14 2013 19024 2854 16170\n", - "15 2014 19759 3460 16299\n", - "16 2015 25299 12193 13106\n", - "17 2016 32936 20028 12908\n", - "18 2017 34957 22556 12401\n", - "19 2018 39314 24457 14857\n", - "20 2019 39048 24105 14943\n", - "21 2020 33811 20561 13250\n", - "22 2021 38240 23041 15199\n", - "23 2022 41856 24124 17732\n", - "24 2023 46894 25481 21413\n", - "25 2024 1027 522 505" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# # unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "# # Combine the value_counts from both dataframes\n", - "# combined_counts = pd.DataFrame({\n", - "# \"unique_order_starting_cohort\": unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index(),\n", - "# \"unique_order_inp_cohort_merged\": unique_order_inp_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "# }).reset_index()\n", - "\n", - "# # Rename the columns for clarity\n", - "# combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_inp_cohort_merged\"]\n", - "\n", - "# # Display the combined dataframe\n", - "# combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_inp_cohort_merged\"]\n", - "# combined_counts\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "current_med_original_no_mapped_with_12_hours_inpatient_temp" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "When medication_name is null, medication_action is always null.\n" - ] - } - ], - "source": [ - "# # Check if there are rows where medication_name is null but medication_action is not null\n", - "# condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\n", - "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].isnull() &\n", - "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_action\"].notnull()\n", - "# ]\n", - "\n", - "# # If the condition is empty, it means the combination is not possible\n", - "# if condition.empty:\n", - "# print(\"When medication_name is null, medication_action is always null.\")\n", - "# else:\n", - "# print(\"There are cases where medication_name is null but medication_action is not null.\")\n", - "# print(condition)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 246340\n", - "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 233909\n" + "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 246280\n", + "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 233852\n" ] } ], @@ -1797,7 +1110,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -1809,18 +1122,18 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with current medication is 107419\n", - "the percentage of unique patient encounter with any medication (out of all outpatients) is 45.92%\n", + "the unique patient encounter number with current medication is 107373\n", + "the percentage of unique patient encounter with any medication (out of all outpatients) is 45.91%\n", "----------------------------------------------------------\n", - "the unique culture order with current medication is 108704\n", - "the percentage of unique culture order with any medication (out of all outpatients) is 44.13%\n" + "the unique culture order with current medication is 108657\n", + "the percentage of unique culture order with any medication (out of all outpatients) is 44.12%\n" ] } ], @@ -1841,28 +1154,20 @@ "print(\"the percentage of unique culture order with any medication (out of all outpatients) is {:.2f}%\".format(percentage))" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient encounter (**`N = 201213`**), `74.58%` (`n = 150068`) has medication (abx or non-abx)\n", - "201213 --> 150068" - ] - }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number with current abx medication is 70936\n", - "the percentage of unique patient encounter with current abx medication(out of any med) is 66.04%\n", + "the unique patient encounter number with current abx medication is 70917\n", + "the percentage of unique patient encounter with current abx medication(out of any med) is 66.05%\n", "----------------------------------------------------------\n", - "the unique culture order with current abx medication is 71683\n", - "the percentage of unique culture order with current abx medication (out of any med) is 65.94%\n" + "the unique culture order with current abx medication is 71664\n", + "the percentage of unique culture order with current abx medication (out of any med) is 65.95%\n" ] } ], @@ -1885,641 +1190,75 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### The above code shows that out of all inpatient encounter with any medication `n = 150068`, `64.95%` (`n = 97468`) has abx medication\n", - "201213 --> 150068 --> 97468" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ------------------------ ED Inpatient Only --------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Refactor Fateme's code for ward info in order to select ED order\n", - "Reference: https://github.com/HealthRex/CDSS/blob/master/scripts/antibiotic-susceptibility/sql/queries/microbiology_cultures_ward_info.sql" + "# ----------- Empirical Med for Outpatient Only -----------" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ - "%%bigquery --use_rest_api df_hosp_ward_info\n", - "WITH\n", - "-- Step 1: Extract ER and ICU Information from adt Table\n", - "temp_er_icu_info_adt AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " CASE \n", - " WHEN pat_class = 'Emergency' OR pat_class = 'Emergency Services' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ER,\n", - " CASE \n", - " WHEN pat_class = 'Intensive Care (IC)' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ICU,\n", - " CASE \n", - " WHEN pat_lv_of_care LIKE \"%Critical Care\" THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_Critical_Care\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.adt`\n", - "),\n", - "\n", - "-- Step 2: Extract ER Information from order_proc Table\n", - "temp_er_info_order_proc AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " CASE \n", - " WHEN proc_pat_class = 'Emergency' OR proc_pat_class = 'Emergency Services' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ER_order_proc\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", - "),\n", - "\n", - "-- Step 3: Combine ER and ICU Information\n", - "temp_combined_er_icu_info AS (\n", - " SELECT\n", - " adt.anon_id,\n", - " adt.pat_enc_csn_id_coded,\n", - " adt.hosp_ward_ER,\n", - " adt.hosp_ward_ICU,\n", - " adt.hosp_ward_Critical_Care,\n", - " er.order_proc_id_coded,\n", - " er.hosp_ward_ER_order_proc\n", - " FROM\n", - " temp_er_icu_info_adt adt\n", - " LEFT JOIN\n", - " temp_er_info_order_proc er\n", - " ON\n", - " adt.pat_enc_csn_id_coded = er.pat_enc_csn_id_coded\n", - "),\n", - "\n", - "-- Step 4: Extract IP and OP Information from order_proc Table\n", - "temp_ip_op_info AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc,\n", - " CASE \n", - " WHEN ordering_mode = 'Inpatient' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_IP,\n", - " CASE \n", - " WHEN ordering_mode = 'Outpatient' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_OP\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", - "),\n", - "\n", - "-- Step 5: Combine All Information into One Temporary Table\n", - "temp_combined_hosp_ward_info AS (\n", - " SELECT\n", - " ipop.anon_id,\n", - " ipop.pat_enc_csn_id_coded,\n", - " ipop.order_proc_id_coded,\n", - " ipop.order_time_jittered_utc,\n", - " ipop.hosp_ward_IP,\n", - " ipop.hosp_ward_OP,\n", - " COALESCE(icu.hosp_ward_ER, 0) AS hosp_ward_ER_adt,\n", - " COALESCE(icu.hosp_ward_ER_order_proc, 0) AS hosp_ward_ER_order_proc,\n", - " COALESCE(icu.hosp_ward_ICU, 0) AS hosp_ward_ICU,\n", - " COALESCE(icu.hosp_ward_Critical_Care, 0) AS hosp_ward_Critical_Care\n", - " FROM\n", - " temp_ip_op_info ipop\n", - " LEFT JOIN\n", - " temp_combined_er_icu_info icu\n", - " ON\n", - " ipop.pat_enc_csn_id_coded = icu.pat_enc_csn_id_coded AND ipop.order_proc_id_coded = icu.order_proc_id_coded\n", - "),\n", - "\n", - "-- Step 6: Extract ICU stay based on transfer orders\n", - "temp_cohortOfInterest AS (\n", - " SELECT DISTINCT\n", - " pat_enc_csn_id_coded,\n", - " hosp_disch_time_jittered_utc\n", - " FROM `som-nero-phi-jonc101.shc_core_2023.encounter`\n", - " WHERE hosp_disch_time_jittered_utc IS NOT NULL\n", - "),\n", - "\n", - "temp_ordersTransfer AS (\n", - " SELECT DISTINCT\n", - " pat_enc_csn_id_coded,\n", - " description,\n", - " level_of_care,\n", - " service,\n", - " order_inst_jittered_utc\n", - " FROM `som-nero-phi-jonc101.shc_core_2023.order_proc` AS procedures\n", - " WHERE (description LIKE \"CHANGE LEVEL OF CARE/TRANSFER PATIENT\" OR description LIKE \"ADMIT TO INPATIENT\") AND level_of_care IS NOT NULL\n", - "),\n", + "# Group by the specified columns\n", + "grouped = abx_med_inp.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", "\n", - "temp_icuTransferCount AS (\n", - " SELECT\n", - " mc.pat_enc_csn_id_coded,\n", - " COUNT(CASE WHEN level_of_care LIKE \"Critical Care\" THEN 1 END) AS numICUTransfers\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort` mc # only change this to the starting cohort above\n", - " LEFT JOIN\n", - " temp_ordersTransfer ot\n", - " ON\n", - " mc.pat_enc_csn_id_coded = ot.pat_enc_csn_id_coded\n", - " GROUP BY\n", - " mc.pat_enc_csn_id_coded\n", - "),\n", + "# Function to filter each group\n", + "def filter_group(group):\n", + " # Keep rows where:\n", + " # 1. medication_time is greater than culture order time but smaller than result time, OR\n", + " # 2. medication_time is within 6 hours before the culture order time\n", + " condition = (\n", + " ((group['medication_time'] > group['order_time_jittered_utc']) & \n", + " (group['medication_time'] < group['result_time_jittered_utc'])) | \n", + " ((group['medication_time'] >= (group['order_time_jittered_utc'] - pd.Timedelta(hours=12))) & \n", + " (group['medication_time'] <= group['order_time_jittered_utc'])\n", + " ))\n", + " return group[condition]\n", "\n", - "microbiology_cultures_with_icu_flag AS (\n", - " SELECT DISTINCT\n", - " mc.anon_id,\n", - " mc.pat_enc_csn_id_coded,\n", - " mc.order_proc_id_coded,\n", - " mc.order_time_jittered_utc,\n", - " CASE WHEN itc.numICUTransfers > 0 THEN 1 ELSE 0 END AS icu_flag\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort` mc\n", - " LEFT JOIN\n", - " temp_icuTransferCount itc\n", - " ON\n", - " mc.pat_enc_csn_id_coded = itc.pat_enc_csn_id_coded\n", - ")\n", + "# Apply the filter to each group\n", + "filtered_groups = [filter_group(group) for _, group in grouped]\n", "\n", - "-- Step 7: Create the Final Table with Correct Binary Indicators for Each Hospital Ward and ICU Flag\n", - "SELECT\n", - " mc.anon_id,\n", - " mc.pat_enc_csn_id_coded,\n", - " mc.order_proc_id_coded,\n", - " mc.order_time_jittered_utc,\n", - " MAX(CASE WHEN chwi.hosp_ward_IP = 1 THEN 1 ELSE 0 END) AS hosp_ward_IP,\n", - " MAX(CASE WHEN chwi.hosp_ward_OP = 1 THEN 1 ELSE 0 END) AS hosp_ward_OP,\n", - " MAX(CASE WHEN chwi.hosp_ward_ER_adt = 1 OR chwi.hosp_ward_ER_order_proc = 1 THEN 1 ELSE 0 END) AS hosp_ward_ER,\n", - " MAX(\n", - " CASE \n", - " WHEN chwi.hosp_ward_ICU = 1 THEN 1 \n", - " WHEN icu_flag.icu_flag = 1 THEN 1 \n", - " WHEN chwi.hosp_ward_Critical_Care = 1 THEN 1\n", - " ELSE 0 \n", - " END\n", - " ) AS hosp_ward_ICU\n", - "FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_cohort` mc\n", - "LEFT JOIN\n", - " temp_combined_hosp_ward_info chwi\n", - "ON\n", - " mc.anon_id = chwi.anon_id \n", - " AND mc.pat_enc_csn_id_coded = chwi.pat_enc_csn_id_coded \n", - " AND mc.order_proc_id_coded = chwi.order_proc_id_coded\n", - "LEFT JOIN\n", - " microbiology_cultures_with_icu_flag icu_flag\n", - "ON\n", - " mc.anon_id = icu_flag.anon_id \n", - " AND mc.pat_enc_csn_id_coded = icu_flag.pat_enc_csn_id_coded \n", - " AND mc.order_proc_id_coded = icu_flag.order_proc_id_coded\n", - "GROUP BY\n", - " mc.anon_id, \n", - " mc.pat_enc_csn_id_coded, \n", - " mc.order_proc_id_coded, \n", - " mc.order_time_jittered_utc;" + "# Combine the filtered groups into a new DataFrame\n", + "abx_med_inp_ed_empirical = pd.concat([group for group in filtered_groups if group is not None])\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 25, "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "dbb602813af5489daeb3e737eb30b526", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "af09a62dad014953a1efc2adee9291bc", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with ED order and abx medication empirical is 42264\n", + "the percentage of unique patient encounter with order and empirical abx medication \n", + "(out of all outpatient with abx med) \n", + "is 59.60%\n", + "----------------------------------------------------------\n", + "the unique culture order with ED order and abx medication empirical is 42607\n", + "the percentage of unique culture order with ED order and abx medication empirical \n", + "(out of all outpatient with abx med) \n", + "is 59.45%\n" + ] } ], "source": [ - "%%bigquery --use_rest_api df_hosp_ward_info\n", - "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_ward_info" + "abx_med_inp_ed_empirical_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed_empirical)\n", + "print(\"the unique patient encounter number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_pat_enc_cnt))\n", + "percentage = abx_med_inp_ed_empirical_pat_enc_cnt/ find_unique_patient_encounter(abx_med_inp) *100\n", + "print(\"the percentage of unique patient encounter with order and empirical abx medication \\n(out of all outpatient with abx med) \\nis {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "abx_med_inp_ed_empirical_order_cnt = find_unique_orders(abx_med_inp_ed_empirical)\n", + "print(\"the unique culture order with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_order_cnt))\n", + "percentage = abx_med_inp_ed_empirical_order_cnt/ find_unique_orders(abx_med_inp) *100\n", + "print(\"the percentage of unique culture order with ED order and abx medication empirical \\n(out of all outpatient with abx med) \\nis {:.2f}%\".format(percentage))\n" ] }, { "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utchosp_ward_IPhosp_ward_OPhosp_ward_ERhosp_ward_ICU
0JC20557771313094983047216669322021-05-20 23:43:00+00:000100
1JC5346081313181542187485481132021-10-12 19:20:00+00:000100
2JC62081811313294006977884247822022-04-09 15:47:00+00:000100
3JC17271821310534838814495111632014-11-11 00:28:00+00:000100
4JC6494751310087608413647128982010-03-17 22:00:00+00:000100
...........................
480002JC21438671312380380425352544722017-08-19 04:25:00+00:001010
480003JC14392421313296948287845040682022-03-15 20:44:00+00:001010
480004JC12233821312667127016061118472019-04-06 07:18:00+00:001010
480005JC62020331313588509608926785742023-08-14 02:50:00+00:001010
480006JC25875471313321862117923940732022-05-27 21:42:00+00:001011
\n", - "

480007 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC2055777 131309498304 721666932 \n", - "1 JC534608 131318154218 748548113 \n", - "2 JC6208181 131329400697 788424782 \n", - "3 JC1727182 131053483881 449511163 \n", - "4 JC649475 131008760841 364712898 \n", - "... ... ... ... \n", - "480002 JC2143867 131238038042 535254472 \n", - "480003 JC1439242 131329694828 784504068 \n", - "480004 JC1223382 131266712701 606111847 \n", - "480005 JC6202033 131358850960 892678574 \n", - "480006 JC2587547 131332186211 792394073 \n", - "\n", - " order_time_jittered_utc hosp_ward_IP hosp_ward_OP hosp_ward_ER \\\n", - "0 2021-05-20 23:43:00+00:00 0 1 0 \n", - "1 2021-10-12 19:20:00+00:00 0 1 0 \n", - "2 2022-04-09 15:47:00+00:00 0 1 0 \n", - "3 2014-11-11 00:28:00+00:00 0 1 0 \n", - "4 2010-03-17 22:00:00+00:00 0 1 0 \n", - "... ... ... ... ... \n", - "480002 2017-08-19 04:25:00+00:00 1 0 1 \n", - "480003 2022-03-15 20:44:00+00:00 1 0 1 \n", - "480004 2019-04-06 07:18:00+00:00 1 0 1 \n", - "480005 2023-08-14 02:50:00+00:00 1 0 1 \n", - "480006 2022-05-27 21:42:00+00:00 1 0 1 \n", - "\n", - " hosp_ward_ICU \n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "480002 0 \n", - "480003 0 \n", - "480004 0 \n", - "480005 0 \n", - "480006 1 \n", - "\n", - "[480007 rows x 8 columns]" - ] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_hosp_ward_info" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [], - "source": [ - "# ED_order = df_hosp_ward_info[df_hosp_ward_info['hosp_ward_OP'] == 1]\n", - "# ED_order = df_hosp_ward_info" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order is 233909\n", - "the percentage of unique patient encounter with ED order (out of all inpatients) is 100.00%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order is 246340\n", - "the percentage of unique culture order with ED order (out of all inpatients) is 100.00%\n" - ] - } - ], - "source": [ - "# All_ED_inp= current_med_original_no_mapped_with_12_hours_inpatient_temp.merge(ED_order, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'], how='inner')\n", - "# All_ED_inp_pat_enc_cnt = find_unique_patient_encounter(All_ED_inp)\n", - "# print(\"the unique patient encounter number with ED order is {}\".format(All_ED_inp_pat_enc_cnt))\n", - "# percentage = All_ED_inp_pat_enc_cnt/total_inp_pat_enc_cnt *100\n", - "# print(\"the percentage of unique patient encounter with ED order (out of all inpatients) is {:.2f}%\".format(percentage))\n", - "# print(\"----------------------------------------------------------\")\n", - "# All_ED_inp_order_cnt = find_unique_orders(All_ED_inp)\n", - "# print(\"the unique culture order with ED order is {}\".format(All_ED_inp_order_cnt))\n", - "# percentage = All_ED_inp_order_cnt/total_inp_order_cnt *100\n", - "# print(\"the percentage of unique culture order with ED order (out of all inpatients) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient encounter `n = 201213`, `59.51%` (`n = 119737`) is from ED \n" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order and abx medication is 70936\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is 30.33%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order and abx medication is 71683\n", - "the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is 29.10%\n", - "----------------------------------------------------------\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is 101.05%\n" - ] - } - ], - "source": [ - "# abx_med_inp_ed = abx_med_inp.merge(ED_order, \\\n", - "# on=['anon_id','pat_enc_csn_id_coded', \n", - "# 'order_proc_id_coded', 'order_time_jittered_utc'],\n", - "# how='inner')\n", - "# abx_med_inp_ed_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed)\n", - "# print(\"the unique patient encounter number with ED order and abx medication is {}\".format(abx_med_inp_ed_pat_enc_cnt))\n", - "# percentage = abx_med_inp_ed_pat_enc_cnt/All_ED_inp_pat_enc_cnt *100\n", - "# print(\"the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "# print(\"----------------------------------------------------------\")\n", - "# abx_med_inp_ed_order_cnt = find_unique_orders(abx_med_inp_ed)\n", - "# print(\"the unique culture order with ED order and abx medication is {}\".format(abx_med_inp_ed_order_cnt))\n", - "# percentage = abx_med_inp_ed_order_cnt/All_ED_inp_order_cnt *100\n", - "# print(\"the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "# print(\"----------------------------------------------------------\")\n", - "# percentage = abx_med_inp_ed_order_cnt/ abx_med_inp_pat_enc_cnt *100\n", - "# print(\"the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient ED encounter `n = 119737`, `57.93%` (`n = 69366`) has abx medication\n", - "### Also shows that out of all inpatient encouter with current abx med `n= 97468`, `80.45%` (`n = 69366`) is ED\n", - "201213 --> 150068 --> 97468 --> 69366" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ----------- Empirical Med for Outpatient Only -----------" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "# Group by the specified columns\n", - "grouped = abx_med_inp.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "\n", - "# Function to filter each group\n", - "def filter_group(group):\n", - " # Keep rows where:\n", - " # 1. medication_time is greater than culture order time but smaller than result time, OR\n", - " # 2. medication_time is within 6 hours before the culture order time\n", - " condition = (\n", - " ((group['medication_time'] > group['order_time_jittered_utc']) & \n", - " (group['medication_time'] < group['result_time_jittered_utc'])) | \n", - " ((group['medication_time'] >= (group['order_time_jittered_utc'] - pd.Timedelta(hours=12))) & \n", - " (group['medication_time'] <= group['order_time_jittered_utc'])\n", - " ))\n", - " return group[condition]\n", - "\n", - "# Apply the filter to each group\n", - "filtered_groups = [filter_group(group) for _, group in grouped]\n", - "\n", - "# Combine the filtered groups into a new DataFrame\n", - "abx_med_inp_ed_empirical = pd.concat([group for group in filtered_groups if group is not None])\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order and abx medication empirical is 42280\n", - "the percentage of unique patient encounter with order and empirical abx medication \n", - "(out of all outpatient with abx med) \n", - "is 59.60%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order and abx medication empirical is 42623\n", - "the percentage of unique culture order with ED order and abx medication empirical \n", - "(out of all outpatient with abx med) \n", - "is 59.46%\n" - ] - } - ], - "source": [ - "abx_med_inp_ed_empirical_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed_empirical)\n", - "print(\"the unique patient encounter number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_pat_enc_cnt))\n", - "percentage = abx_med_inp_ed_empirical_pat_enc_cnt/ find_unique_patient_encounter(abx_med_inp) *100\n", - "print(\"the percentage of unique patient encounter with order and empirical abx medication \\n(out of all outpatient with abx med) \\nis {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "abx_med_inp_ed_empirical_order_cnt = find_unique_orders(abx_med_inp_ed_empirical)\n", - "print(\"the unique culture order with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_order_cnt))\n", - "percentage = abx_med_inp_ed_empirical_order_cnt/ find_unique_orders(abx_med_inp) *100\n", - "print(\"the percentage of unique culture order with ED order and abx medication empirical \\n(out of all outpatient with abx med) \\nis {:.2f}%\".format(percentage))\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 78, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -2553,7 +1292,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -2572,18 +1311,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ----------- Filtering out Prior Abx exposure for Empirical Med for ED Inpatient Only -----------" + "# ----------- Filtering out Prior Abx exposure for Empirical Med for Outpatient Only -----------" ] }, { "cell_type": "code", - "execution_count": 418, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3879f2e7bf9b4abb9434dfd82cfe5821", + "model_id": "2832758f7f8846b9a0fac9ad3d5ff150", "version_major": 2, "version_minor": 0 }, @@ -2597,7 +1336,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "962d4c92523d4dfbb5b23587dde97593", + "model_id": "32d71e6fda404b52935c3328424eed58", "version_major": 2, "version_minor": 0 }, @@ -2672,18 +1411,18 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number for final cohort is 40040\n", - "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 94.70%\n", + "the unique patient encounter number for final cohort is 40031\n", + "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 94.72%\n", "----------------------------------------------------------\n", - "the unique order number for final cohort is 40344\n", - "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 95.42%\n" + "the unique order number for final cohort is 40335\n", + "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 95.44%\n" ] } ], @@ -2697,1790 +1436,562 @@ "print(\"the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is {:.2f}%\".format(percentage))" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The above code shows that out of all inpatient ED encounter `n = 69320` with empirical abx_med, `75.05%` (`n = 52024`) is included as final cohort\n", + "201213 --> 150068 --> 97468 --> 69366 --> 69320 --> 52024" + ] + }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0.9465312155409051, 2279)" + "" ] }, - "execution_count": 82, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" - } - ], - "source": [ - "40344/42623, 42623 - 40344" - ] - }, - { - "cell_type": "code", - "execution_count": 424, - "metadata": {}, - "outputs": [ + }, { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedcleaned_antibiotic
0JC10001691311865022294942696572016-04-27 23:50:00+00:002016-04-30 17:33:00+00:00Outpatient2016-04-30 07:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS494514044[Sulfamethoxazole-Trimethoprim, Trimethoprim]
1JC10001691312162090915165435702017-01-12 04:40:00+00:002017-01-14 17:47:00+00:00Outpatient2017-01-14 08:00:00+00:00CIPROFLOXACIN HCL 500 MG PO TABS516809057[Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo...
2JC10001691312376928805344366312017-08-01 17:33:00+00:002017-08-03 22:17:00+00:00Outpatient2017-08-01 07:00:00+00:00NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS534436283[Nitrofurantoin]
3JC10001691312376928805344366312017-08-01 17:33:00+00:002017-08-03 22:17:00+00:00Outpatient2017-08-03 07:00:00+00:00CIPROFLOXACIN HCL 500 MG PO TABS534679505[Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo...
4JC10001961310128578173811495122011-03-09 02:52:00+00:002011-03-11 03:21:00+00:00Outpatient2011-03-09 08:00:00+00:00CEFAZOLIN IN DEXTROSE (ISO-OS) 1 GRAM/50 ML IV...381175237[Cefazolin, Cefazolin In Dextrose]
.................................
53911JC9996231313169401047448285132021-07-28 04:05:00+00:002021-07-29 22:05:00+00:00Outpatient2021-07-28 07:00:00+00:00MACROBID 100 MG PO CAPS744908755[Macrobid]
53912JC9996481313305539827872595442022-03-21 07:00:00+00:002022-03-27 02:10:00+00:00Outpatient2022-03-21 07:00:00+00:00NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS786472382[Nitrofurantoin]
53913JC9996621312552735625720527982018-08-16 15:40:00+00:002018-08-18 14:54:00+00:00Outpatient2018-08-16 07:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS572108421[Sulfamethoxazole-Trimethoprim, Trimethoprim]
53914JC9998141310087203653643371382010-04-06 23:09:00+00:002010-04-08 15:57:00+00:00Outpatient2010-04-07 07:00:00+00:00CIPROFLOXACIN 250 MG PO TABS364367210[Cipro, Ciprofloxacin, Ofloxacin]
53915JC9999921311895475414972011032016-06-06 03:57:00+00:002016-06-08 00:36:00+00:00Outpatient2016-06-06 07:00:00+00:00CEPHALEXIN 500 MG PO CAPS497224508[Cephalexin]
\n", - "

53916 rows × 10 columns

\n", - "
" - ], + "image/png": "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Q4YMUUhIiLKyspzLnnrqKTkcDk2YMMG57PDhw/Ly8nJePnXh71hiYqLzP5mxsbH5XoqWlJSkBg0aKDAwUDVq1ND777+fb7YcOT+XESNG5CpaOSpVquTyx6EL882fP18Oh0PffPNNru998803na/vOdx5DV6+fLl69+6tMmXKKDw8XPfee6/27dt3yf3KMW3aNPn5+Wn69OmKiYnR9OnTZYzJc+yljiF//fWXYmJi1LRpU5dLXn/55RcFBQUpISGhQJkeeughSdLHH3/sXJaenq65c+c6n28XOn36tF588UXVqFFD/v7+Klu2rLp3765Dhw65jDtz5oyGDh2qqKgolShRQrfccovWr19foFzn/7699NJLqlixogICAtSoUaM8f7YFeW3POe59+OGHGjRokMqXLy9/f39t27YtzwyhoaGaNm2avvvuO7366quSzl0NcvjwYc2cOVPe3t46duyYBg8erNjYWPn5+al8+fLq37+/Tp486bKt119/XbfeeqsiIiIUFBSkOnXqaPz48bkuV77Y7z1sxgA2Nn36dCPJJCcnm8mTJxtJ5ptvvnGub9Gihbnhhhuct7dv324kmenTp+faliQzcuRI5+2RI0caSaZ69ermhRdeMEuWLDFDhw41ksyTTz5patSoYV577TWzZMkS0717dyPJzJ071/n9y5cvN5JMTEyMufvuu82CBQvMrFmzTNWqVU1wcLD5448/nGOXLVtm/Pz8TPPmzc2nn35qkpKSTLdu3XJlzdnf8uXLm169epmvv/7afPbZZ+bs2bN5Pj4HDx405cuXN2XLljVvvfWWSUpKMk8++aSRZHr37m2MMSY9Pd2sWbPGREVFmWbNmpk1a9aYNWvWmFOnTuX7uEsyffv2zXPdnDlzjCSzfPlyl59DeHi4qVatmnnrrbfMkiVLTJ8+fYwkM3PmzIv+fJYuXWq8vb3NLbfcYj7//HMzZ84cc9NNN5mKFSua81/C3PnZbt682YSEhJg6deqYDz74wCxevNgMGjTIeHl5mcTExHz3+0r2PywszMTExJgpU6aY5cuXm5UrVzrXtWjRItd+VK5c2bRt29bMnz/fzJ8/39SpU8eEhoaao0ePOscW9HmTl169ehlJZsuWLZfcX2OM6dq1q6lUqVKu5Tm/J+erVKmS6dq1qzHm3PMr53n773//2/n82r17d577n9/95Twu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OnLkiLZs2aLvv/9ec+bMuaz7HjBggD744AO1b99ezz//vCpVqqQvv/xSb7zxhnr37p3nVNcF8dxzz2nBggVq0qSJhg0bpmrVqik1NVXvvvuukpOTC/U9cy+88ILatm2r+Ph4DRo0SFlZWRo3bpyCgoJ05MgR5zh3fraTJ0/WLbfcoubNm6t3796qXLmyjh8/rm3btmnBggWXfC9bUe7/xVzJ88bb21vz5s1T69atFRcXp969e+u2225TUFCQdu7cqc8++0wLFixQWlqapHNToD/33HN68MEHNWTIEJ06dUqvvfZavpdTnq9KlSoKDAzU7NmzVbNmTZUsWVLR0dGKjo5WQkKC3n77bT3yyCPq2bOnDh8+rPHjxxeoaBXW4zB37lzFx8crLi5OgwYNUlxcnDIzM7VgwQK98847atGihV555ZUCZSno87VZs2bq1auXunfvrg0bNujWW29VUFCQ9u/fr1WrVqlOnTrq3bv3Re/rrbfe0rJly9S+fXtVrFhRp06dcv5l/VKX/3l7e6tFixZasGCBYmNjnR8E3KxZM/n7++ubb75Rv379Lrm/Oe8Jmjx5srp27SpfX19Vr179ij8A19vbW/Pnz1ebNm3UuHFj9ezZUy1btlRoaKiOHj2qdevW6ccff8x3WvjzlS5dWp06ddKMGTN09OhRDR48WF5eru+isOo1+HyzZ8/WqVOn1K9fvzw/7iA8PFyzZ8/WtGnTnNOLSwU7howcOVL/+9//tHjxYkVFRWnQoEFauXKlevToofr161/ybP2Fxo4de8kxDz74oGbPnq0777xTTz/9tBo3bixfX1/t2bNHy5cv1913361OnTqpZs2aeuSRRzRp0iT5+vqqVatW2rRpk15++WW3fs+9vb0VHx+vgQMHKjs7W+PGjdOxY8c0atQo55grfW2/XP3799fcuXN16623asCAAapbt66ys7O1a9cuLV68WIMGDVKTJk0UHx8vPz8/PfTQQxo6dKhOnTqlN9980/k6i6uU5+bmAK7c+bMoXahLly5GkstshMacm4r68ccfN5GRkSYoKMjcddddZseOHfnORnjo0CGX7+/atasJCgrKdX8XznyYM9vRhx9+aPr162fKli1r/P39TfPmzc2GDRtyff+PP/5oOnfubCIiIoyvr6+Jiooyt99+u3nrrbcKtL/52blzp+nSpYsJDw83vr6+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AMCu3H7P1uLFi7Vo0SJVqFDBZXm1atW0c+fOQgsGAAAAAHbm9pmtkydPupzRyvHXX3/J39+/UEIBAAAAgN25XbZuvfVWffDBB87bDodD2dnZmjBhgm677bZCDQcAAAAAduX2ZYQTJkxQy5YttWHDBp0+fVpDhw7V5s2bdeTIEX333XdWZAQAAAAA23H7zFatWrX0008/qXHjxoqPj9fJkyd177336ocfflCVKlWsyAgAAAAAtuP2mS1JioqK0qhRowo7CwAAAABcNS6rbKWlpWnatGnasmWLHA6Hatasqe7duyssLKyw8wEAAACALbl9GeHKlSsVGxur1157TWlpaTpy5Ihee+01xcbGauXKlVZkBAAAAADbcfvMVt++fdW5c2e9+eab8vb2liRlZWWpT58+6tu3rzZt2lToIQEAAADAbtw+s/XHH39o0KBBzqIlSd7e3ho4cKD++OOPQg0HAAAAAHbldtlq0KCBtmzZkmv5li1bVK9evcLIBAAAAAC2V6DLCH/66Sfnv/v166enn35a27Zt08033yxJWrt2rV5//XWNHTvWmpQAAAAAYDMFKlv16tWTw+GQMca5bOjQobnGdenSRQ888EDhpQMAAAAAmypQ2dq+fbvVOQAAAADgqlKgslWpUiWrcwAAAADAVeWyPtR47969+u6773Tw4EFlZ2e7rOvXr1+hBAMAAAAAO3O7bE2fPl3//Oc/5efnp/DwcDkcDuc6h8NB2QIAAAAAXUbZeu655/Tcc89p+PDh8vJye+Z4AAAAALgmuN2W/v77bz344IOFUrTGjBmjm266SaVKlVJERITuuecebd261WWMMUaJiYmKjo5WYGCgWrZsqc2bN7uMyczM1FNPPaUyZcooKChIHTt21J49e1zGpKWlKSEhQSEhIQoJCVFCQoKOHj16xfsAAAAAAHlxuzH16NFDc+bMKZQ7X7lypfr27au1a9dqyZIlOnv2rFq3bq2TJ086x4wfP14TJ07U1KlTlZycrKioKMXHx+v48ePOMf3799e8efP0ySefaNWqVTpx4oQ6dOigrKws55guXbooJSVFSUlJSkpKUkpKihISEgplPwAAAADgQm5fRjhmzBh16NBBSUlJqlOnjnx9fV3WT5w4scDbSkpKcrk9ffp0RUREaOPGjbr11ltljNGkSZM0YsQI3XvvvZKkmTNnKjIyUh999JGeeOIJpaena9q0afrwww/VqlUrSdKsWbMUExOjpUuXqk2bNtqyZYuSkpK0du1aNWnSRJL07rvvKi4uTlu3blX16tXdfRgAAAAA4KLcLlujR4/WokWLnAXlwgkyrkR6erokKSwsTNK5z/dKTU1V69atnWP8/f3VokULrV69Wk888YQ2btyoM2fOuIyJjo5W7dq1tXr1arVp00Zr1qxRSEiIs2hJ0s0336yQkBCtXr2asgUAAACg0LldtiZOnKj3339f3bp1K9QgxhgNHDhQt9xyi2rXri1JSk1NlSRFRka6jI2MjNTOnTudY/z8/BQaGpprTM73p6amKiIiItd9RkREOMdcKDMzU5mZmc7bx44du8w9AwAAAHAtcvs9W/7+/mrWrFmhB3nyySf1008/6eOPP8617sIzZsaYS55Fu3BMXuMvtp0xY8Y4J9MICQlRTExMQXYDAAAAACRdRtl6+umnNWXKlEIN8dRTT+mLL77Q8uXLVaFCBefyqKgoScp19ungwYPOs11RUVE6ffq00tLSLjrmwIEDue730KFDuc6a5Rg+fLjS09OdX7t37778HQQAAABwzXH7MsL169dr2bJlWrhwoW644YZcE2R8/vnnBd6WMUZPPfWU5s2bpxUrVig2NtZlfWxsrKKiorRkyRLVr19fknT69GmtXLlS48aNkyQ1bNhQvr6+WrJkiTp37ixJ2r9/vzZt2qTx48dLkuLi4pSenq7169ercePGkqR169YpPT1dTZs2zTObv7+//P39C7wvAAAAAHA+t8tW6dKlnTMDXqm+ffvqo48+0n//+1+VKlXKeQYrJCREgYGBcjgc6t+/v0aPHq1q1aqpWrVqGj16tEqUKKEuXbo4x/bo0UODBg1SeHi4wsLCNHjwYNWpU8c5O2HNmjXVtm1b9ezZU2+//bYkqVevXurQoQOTYwAAAACwhNtla/r06YV252+++aYkqWXLlrnuI2cCjqFDhyojI0N9+vRRWlqamjRposWLF6tUqVLO8a+++qp8fHzUuXNnZWRk6I477tCMGTPk7e3tHDN79mz169fPOWthx44dNXXq1ELbFwAAAAA4n9tlqzAZYy45xuFwKDExUYmJifmOCQgI0JQpUy76XrKwsDDNmjXrcmICAAAAgNvcLluxsbEXnQnwzz//vKJAAAD7qjzsS8u2vWNse8u2DQCAFdwu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i44dj43GFN/jI+/ZKmJ+fn46deqUJOn06dPKzs523pakjIyMYncd7NmzZ12uOy9ZsqTOnj2rkydPqkSJEmrdurUGDx7swYT5czgcl7XOUzIzM9W7d+9835uwc+dOjRo1qohTXdrevXtVu3Zt5+0qVapoxYoVuv3225WQkKDx48d7MF3+0tLSVL58eUlSWFiYSpQooUqVKjnXV6lSRfv37/dUvDytX79eQ4cO1X333adZs2apfv36znXR0dEu+YubnN+53bt3q3Hjxi7rGjdurJ07d3oiVr7q1q2rZcuWqUqVKoqKitLOnTtdHu+dO3cqMDDQgwkvzsfHR/fdd5/uu+8+7d27V++//75mzJihl19+Wc2aNdO3337r6YhOdjw2ShwfixLHx6Jjx2OjVIyPj0Ve765xd999t+nQoYNZtWqV6dWrl2nUqJFp3769OXHihDl58qT5xz/+Ydq2bevpmC7i4+NdThdPmDDBlCtXznn7+++/N2XKlPFEtIt65JFHTN26dU1ycnKudcnJyaZevXomISHBA8ny17RpUzNp0qR81xfXyyRiY2Nd/uqVY+/eveb66683rVq1Kpa5K1asaNatW+e8/cwzz5jDhw87b6ekpBTL57Yxxnz11VemQoUKZvTo0SYrK8v4+PiYzZs3ezpWvhwOh3nppZfM5MmTTXR0tPn2229d1qekpJjQ0FAPpcvbwoULTVhYmJk+fbqZPn26qVy5snnvvffMd999Z95//30TExNjhgwZ4umYuZx/yWZeli5darp06VKEiS7NjsdGYzg+FiWOj0XHzsdGY4rf8ZGyVcR+++03U7VqVeNwOMwNN9xg9u7dazp27Gh8fHyMj4+PKVu2rNm4caOnY7rYuHGjCQsLM1FRUaZixYrGz8/PfPzxx871U6dOLZbXdqelpZm2bdsah8NhQkNDTfXq1U2NGjVMaGio8fLyMu3atTNpaWmejunipZdeMomJifmu37Vrl+nWrVsRJiqYHj16mMceeyzPdXv27DFVq1YtdgcTY4zp2LHjRQ/eU6dONbfffnsRJnJPamqqadeunbnllls8fjC5lEqVKpnKlSs7vy583F999VVz8803eyhd/j777DNToUKFXO8DCAgIMP379y+W74M6/5JNu7DjsdEYjo9FieNj0bH7sdGY4nV8dBhjjGfOqV3bDh8+rPDwcOftb775RhkZGYqLi3NZXlzs379fCxcuVGZmpm6//XbVqlXL05EK7Ndff9WaNWuUmpoqSYqKilJcXJxq1Kjh4WRXj507d+rXX39VmzZt8ly/f/9+LV68WF27di3iZFcmOTlZgYGBLpeAFEevvfaali9frilTpthiCvW8rF27Vv7+/i6XfRQXWVlZ+v777/Xnn38qOztb5cqVU8OGDVWqVClPR8vTypUr1axZM/n42O+dAnY7NkocH3FxV+Px0S7HRql4HB8pWwAAAABgAS9PB7gWGWO0ZMkSjRo1Sr1791afPn00atQoLV26VMW1+9ox86WkpaXpgw8+8HQMt9gxs0TuomTHzJI9c9sxs2TP3HbMLBX/3NnZ2fku37VrVxGnKRg7ZpbsmduOmaVimNtjFzBeo/bs2WPq1atnvL29zY033mhat25t4uPjzY033mi8vb1NgwYNit2HUNoxc0EU1zfTXowdMxtD7qJkx8zG2DO3HTMbY8/cdsxsTPHNnZ6ebu6//34TEBBgIiIizHPPPefy/sPiOB25HTMbY8/cdsxsTPHNbb8Lum2uT58+CgsL0+7du1WuXDmXdfv379cjjzyivn37av78+Z4JmAc7ZpakY8eOXXT98ePHiyhJwdkxs0TuomTHzJI9c9sxs2TP3HbMLNk397PPPqsff/xRH374oY4ePaoXX3xRGzdu1Oeffy4/Pz9JKnZXrdgxs2TP3HbMLBXf3Lxnq4iVLFlS3333nW688cY81//www9q3ry5Tpw4UcTJ8mfHzJLk5eV10c8KMcbI4XAoKyurCFNdnB0zS+QuSnbMLNkztx0zS/bMbcfMkn1zV6pUSTNnzlTLli0lnZuYpH379goJCdEXX3yho0ePKjo6uljltmNmyZ657ZhZKr65ObNVxAIDA3XkyJF816elpRW7D8m0Y2ZJKlWqlEaMGKEmTZrkuf7333/XE088UcSpLs6OmSVyFyU7ZpbsmduOmSV75rZjZsm+uf/66y+XD3gNDw/XkiVL1KZNG91555167733PJgub3bMLNkztx0zS8U3N2WriD344IPq2rWrJk6cqPj4eIWEhEiS0tPTtWTJEg0aNEhdunTxcEpXdswsSQ0aNJAktWjRIs/1pUuXLnanwe2YWSJ3UbJjZsmeue2YWbJnbjtmluybOyYmRlu2bFFsbKxzWalSpbR48WK1bt1anTp18mC6vNkxs2TP3HbMLBXf3MxGWMReeeUVtW/fXg8//LDCwsIUGBiowMBAhYWF6eGHH1b79u01YcIET8d0YcfMktSlSxcFBATkuz4qKkojR44swkSXZsfMErmLkh0zS/bMbcfMkj1z2zGzZN/crVu31vTp03MtL1mypBYtWnTRffIUO2aW7Jnbjpml4pub92x5yLFjx7RhwwYdOHBA0rkX5IYNGyo4ONjDyfJnx8wAAMBVWlqa9u3bpxtuuCHP9SdOnNDGjRvzPWPnCXbMLNkztx0zS8U3N2ULAAAAACzAe7Y84OTJk/roo4+0evVqpaamyuFwKDIyUs2aNdNDDz2koKAgT0fMxY6ZJXvmtmNmidxFyY6ZJXvmtmNmyZ657ZhZIndRsmNmyZ657ZhZKp65ObNVxH755RfFx8fr77//VosWLRQZGSljjA4ePKiVK1cqKChIixcvVq1atTwd1cmOmSV75rZjZoncRcmOmSV75rZjZsmeue2YWSJ3UbJjZsmeue2YWSrGuQv7U5JxcS1btjQPPvigyczMzLUuMzPTPPTQQ6Zly5YeSJY/O2Y2xp657ZjZGHIXJTtmNsaeue2Y2Rh75rZjZmPIXZTsmNkYe+a2Y2Zjim9uylYRCwwMNJs3b853/c8//2wCAwOLMNGl2TGzMfbMbcfMxpC7KNkxszH2zG3HzMbYM7cdMxtD7qJkx8zG2DO3HTMbU3xzM/V7EQsNDdXvv/+e7/pt27YpNDS0CBNdmh0zS/bMbcfMErmLkh0zS/bMbcfMkj1z2zGzRO6iZMfMkj1z2zGzVIxzF3m9u8aNHDnShISEmAkTJpiUlBSzf/9+k5qaalJSUsyECRNMaGioGTVqlKdjurBjZmPsmduOmY0hd1GyY2Zj7JnbjpmNsWduO2Y2htxFyY6ZjbFnbjtmNqb45qZsecDYsWNNuXLljMPhMF5eXsbLy8s4HA5Trlw5M27cOE/Hy5MdMxtjz9x2zGwMuYuSHTMbY8/cdsxsjD1z2zGzMeQuSnbMbIw9c9sxszHFMzezEXrQ9u3blZqaKuncBwTHxsZ6ONGl2TGzZM/cdswskbso2TGzZM/cdsws2TO3HTNL5C5Kdsws2TO3HTNLxSs3ZQsAAAAALMAEGR6QkZGhVatW6Zdffsm17tSpU/rggw88kOri7JhZsmduO2aWyF2U7JhZsmduO2aW7JnbjpklchclO2aW7JnbjpmlYprbIxcvXsO2bt1qKlWq5LyWtEWLFmbfvn3O9ampqcbLy8uDCXOzY2Zj7JnbjpmNIXdRsmNmY+yZ246ZjbFnbjtmNobcRcmOmY2xZ247Zjam+ObmzFYRe+aZZ1SnTh0dPHhQW7duVXBwsJo1a6Zdu3Z5Olq+7JhZsmduO2aWyF2U7JhZsmduO2aW7JnbjpklchclO2aW7JnbjpmlYpy7yOvdNS4iIsL89NNPLsv69OljKlasaP74449i+dcCO2Y2xp657ZjZGHIXJTtmNsaeue2Y2Rh75rZjZmPIXZTsmNkYe+a2Y2Zjim9uH89WvWtPRkaGfHxcH/bXX39dXl5eatGihT766CMPJcufHTNL9sxtx8wSuYuSHTNL9sxtx8ySPXPbMbNE7qJkx8ySPXPbMbNUfHNTtopYjRo1tGHDBtWsWdNl+ZQpU2SMUceOHT2ULH92zCzZM7cdM0vkLkp2zCzZM7cdM0v2zG3HzBK5i5IdM0v2zG3HzFIxzl3k59KucaNHjzbt2rXLd33v3r2Nw+EowkSXZsfMxtgztx0zG0PuomTHzMbYM7cdMxtjz9x2zGwMuYuSHTMbY8/cdsxsTPHNzedsAQAAAIAFmI0QAAAAACxA2QIAAAAAC1C2AAAAAMAClC0AAAAAsABlCwBwTTLGqFWrVmrTpk2udW+88YZCQkK0a9cuDyQDAFwtKFsAgGuSw+HQ9OnTtW7dOr399tvO5du3b9czzzyjyZMnq2LFioV6n2fOnCnU7QEAijfKFgDgmhUTE6PJkydr8ODB2r59u4wx6tGjh+644w41btxYd955p0qWLKnIyEglJCTor7/+cn5vUlKSbrnlFpUuXVrh4eHq0KGD/vjjD+f6HTt2yOFw6D//+Y9atmypgIAAzZo1yxO7CQDwED5nCwBwzbvnnnt09OhR3XfffXrhhReUnJysRo0aqWfPnnr00UeVkZGhZ555RmfPntWyZcskSXPnzpXD4VCdOnV08uRJPffcc9qxY4dSUlLk5eWlHTt2KDY2VpUrV9Yrr7yi+vXry9/fX9HR0R7eWwBAUaFsAQCueQcPHlTt2rV1+PBhffbZZ/rhhx+0bt06LVq0yDlmz549iomJ0datW3X99dfn2sahQ4cUERGhn3/+WbVr13aWrUmTJunpp58uyt0BABQTXEYIALjmRUREqFevXqpZs6Y6deqkjRs3avny5SpZsqTzq0aNGpLkvFTwjz/+UJcuXXTdddcpODhYsbGxkpRrUo1GjRoV7c4AAIoNH08HAACgOPDx8ZGPz7nDYnZ2tu666y6NGzcu17hy5cpJku666y7FxMTo3XffVXR0tLKzs1W7dm2dPn3aZXxQUJD14QEAxRJlCwCACzRo0EBz585V5cqVnQXsfIcPH9aWLVv09ttvq3nz5pKkVatWFXVMAEAxx2WEAABcoG/fvjpy5IgeeughrV+/Xn/++acWL16sxx57TFlZWQoNDVV4eLjeeecdbdu2TcuWLdPAgQM9HRsAUMxQtgAAuEB0dLS+++47ZWVlqU2bNqpdu7aefvpphYSEyMvLS15eXvrkk0+0ceNG1a5dWwMGDNCECRM8HRsAUMwwGyEAAAAAWIAzWwAAAABgAcoWAAAAAFiAsgUAAAAAFqBsAQAAAIAFKFsAAAAAYAHKFgAAAABYgLIFAAAAABagbAEAAACABShbAAAAAGAByhYAAAAAWICyBQAAAAAWoGwBAAAAgAX+H9UyEwoRxGABAAAAAElFTkSuQmCC", "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000169 131186502229 494269657 \n", - "1 JC1000169 131216209091 516543570 \n", - "2 JC1000169 131237692880 534436631 \n", - "3 JC1000169 131237692880 534436631 \n", - "4 JC1000196 131012857817 381149512 \n", - "... ... ... ... \n", - "53911 JC999623 131316940104 744828513 \n", - "53912 JC999648 131330553982 787259544 \n", - "53913 JC999662 131255273562 572052798 \n", - "53914 JC999814 131008720365 364337138 \n", - "53915 JC999992 131189547541 497201103 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2016-04-27 23:50:00+00:00 2016-04-30 17:33:00+00:00 Outpatient \n", - "1 2017-01-12 04:40:00+00:00 2017-01-14 17:47:00+00:00 Outpatient \n", - "2 2017-08-01 17:33:00+00:00 2017-08-03 22:17:00+00:00 Outpatient \n", - "3 2017-08-01 17:33:00+00:00 2017-08-03 22:17:00+00:00 Outpatient \n", - "4 2011-03-09 02:52:00+00:00 2011-03-11 03:21:00+00:00 Outpatient \n", - "... ... ... ... \n", - "53911 2021-07-28 04:05:00+00:00 2021-07-29 22:05:00+00:00 Outpatient \n", - "53912 2022-03-21 07:00:00+00:00 2022-03-27 02:10:00+00:00 Outpatient \n", - "53913 2018-08-16 15:40:00+00:00 2018-08-18 14:54:00+00:00 Outpatient \n", - "53914 2010-04-06 23:09:00+00:00 2010-04-08 15:57:00+00:00 Outpatient \n", - "53915 2016-06-06 03:57:00+00:00 2016-06-08 00:36:00+00:00 Outpatient \n", - "\n", - " medication_time \\\n", - "0 2016-04-30 07:00:00+00:00 \n", - "1 2017-01-14 08:00:00+00:00 \n", - "2 2017-08-01 07:00:00+00:00 \n", - "3 2017-08-03 07:00:00+00:00 \n", - "4 2011-03-09 08:00:00+00:00 \n", - "... ... \n", - "53911 2021-07-28 07:00:00+00:00 \n", - "53912 2022-03-21 07:00:00+00:00 \n", - "53913 2018-08-16 07:00:00+00:00 \n", - "53914 2010-04-07 07:00:00+00:00 \n", - "53915 2016-06-06 07:00:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 494514044 \n", - "1 CIPROFLOXACIN HCL 500 MG PO TABS 516809057 \n", - "2 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 534436283 \n", - "3 CIPROFLOXACIN HCL 500 MG PO TABS 534679505 \n", - "4 CEFAZOLIN IN DEXTROSE (ISO-OS) 1 GRAM/50 ML IV... 381175237 \n", - "... ... ... \n", - "53911 MACROBID 100 MG PO CAPS 744908755 \n", - "53912 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 786472382 \n", - "53913 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 572108421 \n", - "53914 CIPROFLOXACIN 250 MG PO TABS 364367210 \n", - "53915 CEPHALEXIN 500 MG PO CAPS 497224508 \n", - "\n", - " cleaned_antibiotic \n", - "0 [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "1 [Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo... \n", - "2 [Nitrofurantoin] \n", - "3 [Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo... \n", - "4 [Cefazolin, Cefazolin In Dextrose] \n", - "... ... \n", - "53911 [Macrobid] \n", - "53912 [Nitrofurantoin] \n", - "53913 [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "53914 [Cipro, Ciprofloxacin, Ofloxacin] \n", - "53915 [Cephalexin] \n", - "\n", - "[53916 rows x 10 columns]" + "
" ] }, - "execution_count": 424, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "final_cohort_inp_ed_only" + "nique_given_final_cohort_inp_ed_only = final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "nique_given_final_cohort_inp_ed_only[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders with Given Abx Med per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### The above code shows that out of all inpatient ED encounter `n = 69320` with empirical abx_med, `75.05%` (`n = 52024`) is included as final cohort\n", - "201213 --> 150068 --> 97468 --> 69366 --> 69320 --> 52024" + "## ⏳ Cleaning the medication name" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 35, "metadata": {}, + "outputs": [], "source": [ - "# ----Expore the given aspect for the final inpatient ED Cohort ----" + "\n", + "def convert_to_list_and_keep_longest(value):\n", + " try:\n", + " # Convert numpy arrays to lists\n", + " if isinstance(value, np.ndarray):\n", + " value = value.tolist()\n", + "\n", + " # Already a list? Great.\n", + " if isinstance(value, list) and len(value) > 0:\n", + " str_items = [str(v) for v in value if v not in [None, \"\"]]\n", + " if str_items:\n", + " return max(str_items, key=len)\n", + "\n", + " # Fallback — just return original\n", + " return value\n", + " \n", + " except Exception as e:\n", + " print(f\"⚠️ Error: {e} — value: {value}\")\n", + " raise\n", + "\n", + "# Apply the function to your column\n", + "given_final_cohort_inp_ed_only = final_cohort_inp_ed_only.copy()\n", + "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n", + "given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only\\\n", + " .drop_duplicates(\n", + " subset=['anon_id', \n", + " 'pat_enc_csn_id_coded',\n", + " 'order_proc_id_coded', \n", + " 'order_time_jittered_utc',\n", + " \"result_time_jittered_utc\", \n", + " \"final_antibiotic\"])" ] }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ - "# condition = final_cohort_inp_ed_only[\"medication_action\"] == \"Given\"\n", - "# given_final_cohort_inp_ed_only = final_cohort_inp_ed_only[condition]\n", - "# given_final_cohort_inp_ed_only_pat_enc_cnt = find_unique_patient_encounter(given_final_cohort_inp_ed_only)\n", - "# given_final_cohort_inp_ed_only_order_cnt = find_unique_orders(given_final_cohort_inp_ed_only)\n", - "# print(\"the unique patient encounter number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_pat_enc_cnt))\n", - "# print(\"the unique order number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_order_cnt))\n", - "# # percentage = given_final_cohort_inp_ed_only_pat_enc_cnt/find_unique_patient_encounter(final_cohort_inp_ed_only) *100\n", - "# # print(\"the percentage of unique patient encounter with given medication (out of all inpatients) is {:.2f}%\".format(percentage))\n", - "\n" + "# given_final_cohort_inp_ed_only.to_csv('../csv_folder/final_cohort_for_analysis_adult_outpatient.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 426, + "execution_count": 37, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 426, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Q4YMUUhIiLKyspzLnnrqKTkcDk2YMMG57PDhw/Ly8nJePnXh71hiYqLzP5mxsbH5XoqWlJSkBg0aKDAwUDVq1ND777+fb7YcOT+XESNG5CpaOSpVquTyx6EL882fP18Oh0PffPNNru998803na/vOdx5DV6+fLl69+6tMmXKKDw8XPfee6/27dt3yf3KMW3aNPn5+Wn69OmKiYnR9OnTZYzJc+yljiF//fWXYmJi1LRpU5dLXn/55RcFBQUpISGhQJkeeughSdLHH3/sXJaenq65c+c6n28XOn36tF588UXVqFFD/v7+Klu2rLp3765Dhw65jDtz5oyGDh2qqKgolShRQrfccovWr19foFzn/7699NJLqlixogICAtSoUaM8f7YFeW3POe59+OGHGjRokMqXLy9/f39t27YtzwyhoaGaNm2avvvuO7366quSzl0NcvjwYc2cOVPe3t46duyYBg8erNjYWPn5+al8+fLq37+/Tp486bKt119/XbfeeqsiIiIUFBSkOnXqaPz48bkuV77Y7z1sxgA2Nn36dCPJJCcnm8mTJxtJ5ptvvnGub9Gihbnhhhuct7dv324kmenTp+faliQzcuRI5+2RI0caSaZ69ermhRdeMEuWLDFDhw41ksyTTz5patSoYV577TWzZMkS0717dyPJzJ071/n9y5cvN5JMTEyMufvuu82CBQvMrFmzTNWqVU1wcLD5448/nGOXLVtm/Pz8TPPmzc2nn35qkpKSTLdu3XJlzdnf8uXLm169epmvv/7afPbZZ+bs2bN5Pj4HDx405cuXN2XLljVvvfWWSUpKMk8++aSRZHr37m2MMSY9Pd2sWbPGREVFmWbNmpk1a9aYNWvWmFOnTuX7uEsyffv2zXPdnDlzjCSzfPlyl59DeHi4qVatmnnrrbfMkiVLTJ8+fYwkM3PmzIv+fJYuXWq8vb3NLbfcYj7//HMzZ84cc9NNN5mKFSua81/C3PnZbt682YSEhJg6deqYDz74wCxevNgMGjTIeHl5mcTExHz3+0r2PywszMTExJgpU6aY5cuXm5UrVzrXtWjRItd+VK5c2bRt29bMnz/fzJ8/39SpU8eEhoaao0ePOscW9HmTl169ehlJZsuWLZfcX2OM6dq1q6lUqVKu5Tm/J+erVKmS6dq1qzHm3PMr53n773//2/n82r17d577n9/95Twu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OnLkiLZs2aLvv/9ec+bMuaz7HjBggD744AO1b99ezz//vCpVqqQvv/xSb7zxhnr37p3nVNcF8dxzz2nBggVq0qSJhg0bpmrVqik1NVXvvvuukpOTC/U9cy+88ILatm2r+Ph4DRo0SFlZWRo3bpyCgoJ05MgR5zh3fraTJ0/WLbfcoubNm6t3796qXLmyjh8/rm3btmnBggWXfC9bUe7/xVzJ88bb21vz5s1T69atFRcXp969e+u2225TUFCQdu7cqc8++0wLFixQWlqapHNToD/33HN68MEHNWTIEJ06dUqvvfZavpdTnq9KlSoKDAzU7NmzVbNmTZUsWVLR0dGKjo5WQkKC3n77bT3yyCPq2bOnDh8+rPHjxxeoaBXW4zB37lzFx8crLi5OgwYNUlxcnDIzM7VgwQK98847atGihV555ZUCZSno87VZs2bq1auXunfvrg0bNujWW29VUFCQ9u/fr1WrVqlOnTrq3bv3Re/rrbfe0rJly9S+fXtVrFhRp06dcv5l/VKX/3l7e6tFixZasGCBYmNjnR8E3KxZM/n7++ubb75Rv379Lrm/Oe8Jmjx5srp27SpfX19Vr179ij8A19vbW/Pnz1ebNm3UuHFj9ezZUy1btlRoaKiOHj2qdevW6ccff8x3WvjzlS5dWp06ddKMGTN09OhRDR48WF5eru+isOo1+HyzZ8/WqVOn1K9fvzw/7iA8PFyzZ8/WtGnTnNOLSwU7howcOVL/+9//tHjxYkVFRWnQoEFauXKlevToofr161/ybP2Fxo4de8kxDz74oGbPnq0777xTTz/9tBo3bixfX1/t2bNHy5cv1913361OnTqpZs2aeuSRRzRp0iT5+vqqVatW2rRpk15++WW3fs+9vb0VHx+vgQMHKjs7W+PGjdOxY8c0atQo55grfW2/XP3799fcuXN16623asCAAapbt66ys7O1a9cuLV68WIMGDVKTJk0UHx8vPz8/PfTQQxo6dKhOnTqlN9980/k6i6uU5+bmAK7c+bMoXahLly5GkstshMacm4r68ccfN5GRkSYoKMjcddddZseOHfnORnjo0CGX7+/atasJCgrKdX8XznyYM9vRhx9+aPr162fKli1r/P39TfPmzc2GDRtyff+PP/5oOnfubCIiIoyvr6+Jiooyt99+u3nrrbcKtL/52blzp+nSpYsJDw83vr6+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AMCu3H7P1uLFi7Vo0SJVqFDBZXm1atW0c+fOQgsGAAAAAHbm9pmtkydPupzRyvHXX3/J39+/UEIBAAAAgN25XbZuvfVWffDBB87bDodD2dnZmjBhgm677bZCDQcAAAAAduX2ZYQTJkxQy5YttWHDBp0+fVpDhw7V5s2bdeTIEX333XdWZAQAAAAA23H7zFatWrX0008/qXHjxoqPj9fJkyd177336ocfflCVKlWsyAgAAAAAtuP2mS1JioqK0qhRowo7CwAAAABcNS6rbKWlpWnatGnasmWLHA6Hatasqe7duyssLKyw8wEAAACALbl9GeHKlSsVGxur1157TWlpaTpy5Ihee+01xcbGauXKlVZkBAAAAADbcfvMVt++fdW5c2e9+eab8vb2liRlZWWpT58+6tu3rzZt2lToIQEAAADAbtw+s/XHH39o0KBBzqIlSd7e3ho4cKD++OOPQg0HAAAAAHbldtlq0KCBtmzZkmv5li1bVK9evcLIBAAAAAC2V6DLCH/66Sfnv/v166enn35a27Zt08033yxJWrt2rV5//XWNHTvWmpQAAAAAYDMFKlv16tWTw+GQMca5bOjQobnGdenSRQ888EDhpQMAAAAAmypQ2dq+fbvVOQAAAADgqlKgslWpUiWrcwAAAADAVeWyPtR47969+u6773Tw4EFlZ2e7rOvXr1+hBAMAAAAAO3O7bE2fPl3//Oc/5efnp/DwcDkcDuc6h8NB2QIAAAAAXUbZeu655/Tcc89p+PDh8vJye+Z4AAAAALgmuN2W/v77bz344IOFUrTGjBmjm266SaVKlVJERITuuecebd261WWMMUaJiYmKjo5WYGCgWrZsqc2bN7uMyczM1FNPPaUyZcooKChIHTt21J49e1zGpKWlKSEhQSEhIQoJCVFCQoKOHj16xfsAAAAAAHlxuzH16NFDc+bMKZQ7X7lypfr27au1a9dqyZIlOnv2rFq3bq2TJ086x4wfP14TJ07U1KlTlZycrKioKMXHx+v48ePOMf3799e8efP0ySefaNWqVTpx4oQ6dOigrKws55guXbooJSVFSUlJSkpKUkpKihISEgplPwAAAADgQm5fRjhmzBh16NBBSUlJqlOnjnx9fV3WT5w4scDbSkpKcrk9ffp0RUREaOPGjbr11ltljNGkSZM0YsQI3XvvvZKkmTNnKjIyUh999JGeeOIJpaena9q0afrwww/VqlUrSdKsWbMUExOjpUuXqk2bNtqyZYuSkpK0du1aNWnSRJL07rvvKi4uTlu3blX16tXdfRgAAAAA4KLcLlujR4/WokWLnAXlwgkyrkR6erokKSwsTNK5z/dKTU1V69atnWP8/f3VokULrV69Wk888YQ2btyoM2fOuIyJjo5W7dq1tXr1arVp00Zr1qxRSEiIs2hJ0s0336yQkBCtXr2asgUAAACg0LldtiZOnKj3339f3bp1K9QgxhgNHDhQt9xyi2rXri1JSk1NlSRFRka6jI2MjNTOnTudY/z8/BQaGpprTM73p6amKiIiItd9RkREOMdcKDMzU5mZmc7bx44du8w9AwAAAHAtcvs9W/7+/mrWrFmhB3nyySf1008/6eOPP8617sIzZsaYS55Fu3BMXuMvtp0xY8Y4J9MICQlRTExMQXYDAAAAACRdRtl6+umnNWXKlEIN8dRTT+mLL77Q8uXLVaFCBefyqKgoScp19ungwYPOs11RUVE6ffq00tLSLjrmwIEDue730KFDuc6a5Rg+fLjS09OdX7t37778HQQAAABwzXH7MsL169dr2bJlWrhwoW644YZcE2R8/vnnBd6WMUZPPfWU5s2bpxUrVig2NtZlfWxsrKKiorRkyRLVr19fknT69GmtXLlS48aNkyQ1bNhQvr6+WrJkiTp37ixJ2r9/vzZt2qTx48dLkuLi4pSenq7169ercePGkqR169YpPT1dTZs2zTObv7+//P39C7wvAAAAAHA+t8tW6dKlnTMDXqm+ffvqo48+0n//+1+VKlXKeQYrJCREgYGBcjgc6t+/v0aPHq1q1aqpWrVqGj16tEqUKKEuXbo4x/bo0UODBg1SeHi4wsLCNHjwYNWpU8c5O2HNmjXVtm1b9ezZU2+//bYkqVevXurQoQOTYwAAAACwhNtla/r06YV252+++aYkqWXLlrnuI2cCjqFDhyojI0N9+vRRWlqamjRposWLF6tUqVLO8a+++qp8fHzUuXNnZWRk6I477tCMGTPk7e3tHDN79mz169fPOWthx44dNXXq1ELbFwAAAAA4n9tlqzAZYy45xuFwKDExUYmJifmOCQgI0JQpUy76XrKwsDDNmjXrcmICAAAAgNvcLluxsbEXnQnwzz//vKJAAAD7qjzsS8u2vWNse8u2DQCAFdwu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i44dj43GFN/jI+/ZKmJ+fn46deqUJOn06dPKzs523pakjIyMYncd7NmzZ12uOy9ZsqTOnj2rkydPqkSJEmrdurUGDx7swYT5czgcl7XOUzIzM9W7d+9835uwc+dOjRo1qohTXdrevXtVu3Zt5+0qVapoxYoVuv3225WQkKDx48d7MF3+0tLSVL58eUlSWFiYSpQooUqVKjnXV6lSRfv37/dUvDytX79eQ4cO1X333adZs2apfv36znXR0dEu+YubnN+53bt3q3Hjxi7rGjdurJ07d3oiVr7q1q2rZcuWqUqVKoqKitLOnTtdHu+dO3cqMDDQgwkvzsfHR/fdd5/uu+8+7d27V++//75mzJihl19+Wc2aNdO3337r6YhOdjw2ShwfixLHx6Jjx2OjVIyPj0Ve765xd999t+nQoYNZtWqV6dWrl2nUqJFp3769OXHihDl58qT5xz/+Ydq2bevpmC7i4+NdThdPmDDBlCtXznn7+++/N2XKlPFEtIt65JFHTN26dU1ycnKudcnJyaZevXomISHBA8ny17RpUzNp0qR81xfXyyRiY2Nd/uqVY+/eveb66683rVq1Kpa5K1asaNatW+e8/cwzz5jDhw87b6ekpBTL57Yxxnz11VemQoUKZvTo0SYrK8v4+PiYzZs3ezpWvhwOh3nppZfM5MmTTXR0tPn2229d1qekpJjQ0FAPpcvbwoULTVhYmJk+fbqZPn26qVy5snnvvffMd999Z95//30TExNjhgwZ4umYuZx/yWZeli5darp06VKEiS7NjsdGYzg+FiWOj0XHzsdGY4rf8ZGyVcR+++03U7VqVeNwOMwNN9xg9u7dazp27Gh8fHyMj4+PKVu2rNm4caOnY7rYuHGjCQsLM1FRUaZixYrGz8/PfPzxx871U6dOLZbXdqelpZm2bdsah8NhQkNDTfXq1U2NGjVMaGio8fLyMu3atTNpaWmejunipZdeMomJifmu37Vrl+nWrVsRJiqYHj16mMceeyzPdXv27DFVq1YtdgcTY4zp2LHjRQ/eU6dONbfffnsRJnJPamqqadeunbnllls8fjC5lEqVKpnKlSs7vy583F999VVz8803eyhd/j777DNToUKFXO8DCAgIMP379y+W74M6/5JNu7DjsdEYjo9FieNj0bH7sdGY4nV8dBhjjGfOqV3bDh8+rPDwcOftb775RhkZGYqLi3NZXlzs379fCxcuVGZmpm6//XbVqlXL05EK7Ndff9WaNWuUmpoqSYqKilJcXJxq1Kjh4WRXj507d+rXX39VmzZt8ly/f/9+LV68WF27di3iZFcmOTlZgYGBLpeAFEevvfaali9frilTpthiCvW8rF27Vv7+/i6XfRQXWVlZ+v777/Xnn38qOztb5cqVU8OGDVWqVClPR8vTypUr1axZM/n42O+dAnY7NkocH3FxV+Px0S7HRql4HB8pWwAAAABgAS9PB7gWGWO0ZMkSjRo1Sr1791afPn00atQoLV26VMW1+9ox86WkpaXpgw8+8HQMt9gxs0TuomTHzJI9c9sxs2TP3HbMLBX/3NnZ2fku37VrVxGnKRg7ZpbsmduOmaVimNtjFzBeo/bs2WPq1atnvL29zY033mhat25t4uPjzY033mi8vb1NgwYNit2HUNoxc0EU1zfTXowdMxtD7qJkx8zG2DO3HTMbY8/cdsxsTPHNnZ6ebu6//34TEBBgIiIizHPPPefy/sPiOB25HTMbY8/cdsxsTPHNbb8Lum2uT58+CgsL0+7du1WuXDmXdfv379cjjzyivn37av78+Z4JmAc7ZpakY8eOXXT98ePHiyhJwdkxs0TuomTHzJI9c9sxs2TP3HbMLNk397PPPqsff/xRH374oY4ePaoXX3xRGzdu1Oeffy4/Pz9JKnZXrdgxs2TP3HbMLBXf3Lxnq4iVLFlS3333nW688cY81//www9q3ry5Tpw4UcTJ8mfHzJLk5eV10c8KMcbI4XAoKyurCFNdnB0zS+QuSnbMLNkztx0zS/bMbcfMkn1zV6pUSTNnzlTLli0lnZuYpH379goJCdEXX3yho0ePKjo6uljltmNmyZ657ZhZKr65ObNVxAIDA3XkyJF816elpRW7D8m0Y2ZJKlWqlEaMGKEmTZrkuf7333/XE088UcSpLs6OmSVyFyU7ZpbsmduOmSV75rZjZsm+uf/66y+XD3gNDw/XkiVL1KZNG91555167733PJgub3bMLNkztx0zS8U3N2WriD344IPq2rWrJk6cqPj4eIWEhEiS0tPTtWTJEg0aNEhdunTxcEpXdswsSQ0aNJAktWjRIs/1pUuXLnanwe2YWSJ3UbJjZsmeue2YWbJnbjtmluybOyYmRlu2bFFsbKxzWalSpbR48WK1bt1anTp18mC6vNkxs2TP3HbMLBXf3MxGWMReeeUVtW/fXg8//LDCwsIUGBiowMBAhYWF6eGHH1b79u01YcIET8d0YcfMktSlSxcFBATkuz4qKkojR44swkSXZsfMErmLkh0zS/bMbcfMkj1z2zGzZN/crVu31vTp03MtL1mypBYtWnTRffIUO2aW7Jnbjpml4pub92x5yLFjx7RhwwYdOHBA0rkX5IYNGyo4ONjDyfJnx8wAAMBVWlqa9u3bpxtuuCHP9SdOnNDGjRvzPWPnCXbMLNkztx0zS8U3N2ULAAAAACzAe7Y84OTJk/roo4+0evVqpaamyuFwKDIyUs2aNdNDDz2koKAgT0fMxY6ZJXvmtmNmidxFyY6ZJXvmtmNmyZ657ZhZIndRsmNmyZ657ZhZKp65ObNVxH755RfFx8fr77//VosWLRQZGSljjA4ePKiVK1cqKChIixcvVq1atTwd1cmOmSV75rZjZoncRcmOmSV75rZjZsmeue2YWSJ3UbJjZsmeue2YWSrGuQv7U5JxcS1btjQPPvigyczMzLUuMzPTPPTQQ6Zly5YeSJY/O2Y2xp657ZjZGHIXJTtmNsaeue2Y2Rh75rZjZmPIXZTsmNkYe+a2Y2Zjim9uylYRCwwMNJs3b853/c8//2wCAwOLMNGl2TGzMfbMbcfMxpC7KNkxszH2zG3HzMbYM7cdMxtD7qJkx8zG2DO3HTMbU3xzM/V7EQsNDdXvv/+e7/pt27YpNDS0CBNdmh0zS/bMbcfMErmLkh0zS/bMbcfMkj1z2zGzRO6iZMfMkj1z2zGzVIxzF3m9u8aNHDnShISEmAkTJpiUlBSzf/9+k5qaalJSUsyECRNMaGioGTVqlKdjurBjZmPsmduOmY0hd1GyY2Zj7JnbjpmNsWduO2Y2htxFyY6ZjbFnbjtmNqb45qZsecDYsWNNuXLljMPhMF5eXsbLy8s4HA5Trlw5M27cOE/Hy5MdMxtjz9x2zGwMuYuSHTMbY8/cdsxsjD1z2zGzMeQuSnbMbIw9c9sxszHFMzezEXrQ9u3blZqaKuncBwTHxsZ6ONGl2TGzZM/cdswskbso2TGzZM/cdsws2TO3HTNL5C5Kdsws2TO3HTNLxSs3ZQsAAAAALMAEGR6QkZGhVatW6Zdffsm17tSpU/rggw88kOri7JhZsmduO2aWyF2U7JhZsmduO2aW7JnbjpklchclO2aW7JnbjpmlYprbIxcvXsO2bt1qKlWq5LyWtEWLFmbfvn3O9ampqcbLy8uDCXOzY2Zj7JnbjpmNIXdRsmNmY+yZ246ZjbFnbjtmNobcRcmOmY2xZ247Zjam+ObmzFYRe+aZZ1SnTh0dPHhQW7duVXBwsJo1a6Zdu3Z5Olq+7JhZsmduO2aWyF2U7JhZsmduO2aW7JnbjpklchclO2aW7JnbjpmlYpy7yOvdNS4iIsL89NNPLsv69OljKlasaP74449i+dcCO2Y2xp657ZjZGHIXJTtmNsaeue2Y2Rh75rZjZmPIXZTsmNkYe+a2Y2Zjim9uH89WvWtPRkaGfHxcH/bXX39dXl5eatGihT766CMPJcufHTNL9sxtx8wSuYuSHTNL9sxtx8ySPXPbMbNE7qJkx8ySPXPbMbNUfHNTtopYjRo1tGHDBtWsWdNl+ZQpU2SMUceOHT2ULH92zCzZM7cdM0vkLkp2zCzZM7cdM0v2zG3HzBK5i5IdM0v2zG3HzFIxzl3k59KucaNHjzbt2rXLd33v3r2Nw+EowkSXZsfMxtgztx0zG0PuomTHzMbYM7cdMxtjz9x2zGwMuYuSHTMbY8/cdsxsTPHNzedsAQAAAIAFmI0QAAAAACxA2QIAAAAAC1C2AAAAAMAClC0AAAAAsABlCwBwTTLGqFWrVmrTpk2udW+88YZCQkK0a9cuDyQDAFwtKFsAgGuSw+HQ9OnTtW7dOr399tvO5du3b9czzzyjyZMnq2LFioV6n2fOnCnU7QEAijfKFgDgmhUTE6PJkydr8ODB2r59u4wx6tGjh+644w41btxYd955p0qWLKnIyEglJCTor7/+cn5vUlKSbrnlFpUuXVrh4eHq0KGD/vjjD+f6HTt2yOFw6D//+Y9atmypgIAAzZo1yxO7CQDwED5nCwBwzbvnnnt09OhR3XfffXrhhReUnJysRo0aqWfPnnr00UeVkZGhZ555RmfPntWyZcskSXPnzpXD4VCdOnV08uRJPffcc9qxY4dSUlLk5eWlHTt2KDY2VpUrV9Yrr7yi+vXry9/fX9HR0R7eWwBAUaFsAQCueQcPHlTt2rV1+PBhffbZZ/rhhx+0bt06LVq0yDlmz549iomJ0datW3X99dfn2sahQ4cUERGhn3/+WbVr13aWrUmTJunpp58uyt0BABQTXEYIALjmRUREqFevXqpZs6Y6deqkjRs3avny5SpZsqTzq0aNGpLkvFTwjz/+UJcuXXTdddcpODhYsbGxkpRrUo1GjRoV7c4AAIoNH08HAACgOPDx8ZGPz7nDYnZ2tu666y6NGzcu17hy5cpJku666y7FxMTo3XffVXR0tLKzs1W7dm2dPn3aZXxQUJD14QEAxRJlCwCACzRo0EBz585V5cqVnQXsfIcPH9aWLVv09ttvq3nz5pKkVatWFXVMAEAxx2WEAABcoG/fvjpy5IgeeughrV+/Xn/++acWL16sxx57TFlZWQoNDVV4eLjeeecdbdu2TcuWLdPAgQM9HRsAUMxQtgAAuEB0dLS+++47ZWVlqU2bNqpdu7aefvpphYSEyMvLS15eXvrkk0+0ceNG1a5dWwMGDNCECRM8HRsAUMwwGyEAAAAAWIAzWwAAAABgAcoWAAAAAFiAsgUAAAAAFqBsAQAAAIAFKFsAAAAAYAHKFgAAAABYgLIFAAAAABagbAEAAACABShbAAAAAGAByhYAAAAAWICyBQAAAAAWoGwBAAAAgAX+H9UyEwoRxGABAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique order number for final_cohort is 40335\n", + "the unique order number from final cohort that has more than one medication is 5359\n" + ] } ], "source": [ - "nique_given_final_cohort_inp_ed_only = final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "nique_given_final_cohort_inp_ed_only[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders with Given Abx Med per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" + "group_counts = given_final_cohort_inp_ed_only.groupby(\n", + " ['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc']\n", + ")['final_antibiotic'].transform('count')\n", + "\n", + "# Filter rows where group count is greater than 1\n", + "group_counts_df= given_final_cohort_inp_ed_only[group_counts > 1]\n", + "sorted_group_counts_df = group_counts_df.sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "\n", + "print(\"the unique order number for final_cohort is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only)))\n", + "print(\"the unique order number from final cohort that has more than one medication is {}\".format(find_unique_orders(sorted_group_counts_df)))" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 38, "metadata": {}, + "outputs": [], "source": [ - "## ⏳ Cleaning the medication name" - ] - }, - { - "cell_type": "code", - "execution_count": 428, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedcleaned_antibiotic
0JC10001691311865022294942696572016-04-27 23:50:00+00:002016-04-30 17:33:00+00:00Outpatient2016-04-30 07:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS494514044[Sulfamethoxazole-Trimethoprim, Trimethoprim]
1JC10001691312162090915165435702017-01-12 04:40:00+00:002017-01-14 17:47:00+00:00Outpatient2017-01-14 08:00:00+00:00CIPROFLOXACIN HCL 500 MG PO TABS516809057[Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo...
2JC10001691312376928805344366312017-08-01 17:33:00+00:002017-08-03 22:17:00+00:00Outpatient2017-08-01 07:00:00+00:00NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS534436283[Nitrofurantoin]
3JC10001691312376928805344366312017-08-01 17:33:00+00:002017-08-03 22:17:00+00:00Outpatient2017-08-03 07:00:00+00:00CIPROFLOXACIN HCL 500 MG PO TABS534679505[Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo...
4JC10001961310128578173811495122011-03-09 02:52:00+00:002011-03-11 03:21:00+00:00Outpatient2011-03-09 08:00:00+00:00CEFAZOLIN IN DEXTROSE (ISO-OS) 1 GRAM/50 ML IV...381175237[Cefazolin, Cefazolin In Dextrose]
.................................
53911JC9996231313169401047448285132021-07-28 04:05:00+00:002021-07-29 22:05:00+00:00Outpatient2021-07-28 07:00:00+00:00MACROBID 100 MG PO CAPS744908755[Macrobid]
53912JC9996481313305539827872595442022-03-21 07:00:00+00:002022-03-27 02:10:00+00:00Outpatient2022-03-21 07:00:00+00:00NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS786472382[Nitrofurantoin]
53913JC9996621312552735625720527982018-08-16 15:40:00+00:002018-08-18 14:54:00+00:00Outpatient2018-08-16 07:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS572108421[Sulfamethoxazole-Trimethoprim, Trimethoprim]
53914JC9998141310087203653643371382010-04-06 23:09:00+00:002010-04-08 15:57:00+00:00Outpatient2010-04-07 07:00:00+00:00CIPROFLOXACIN 250 MG PO TABS364367210[Cipro, Ciprofloxacin, Ofloxacin]
53915JC9999921311895475414972011032016-06-06 03:57:00+00:002016-06-08 00:36:00+00:00Outpatient2016-06-06 07:00:00+00:00CEPHALEXIN 500 MG PO CAPS497224508[Cephalexin]
\n", - "

53916 rows × 10 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000169 131186502229 494269657 \n", - "1 JC1000169 131216209091 516543570 \n", - "2 JC1000169 131237692880 534436631 \n", - "3 JC1000169 131237692880 534436631 \n", - "4 JC1000196 131012857817 381149512 \n", - "... ... ... ... \n", - "53911 JC999623 131316940104 744828513 \n", - "53912 JC999648 131330553982 787259544 \n", - "53913 JC999662 131255273562 572052798 \n", - "53914 JC999814 131008720365 364337138 \n", - "53915 JC999992 131189547541 497201103 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2016-04-27 23:50:00+00:00 2016-04-30 17:33:00+00:00 Outpatient \n", - "1 2017-01-12 04:40:00+00:00 2017-01-14 17:47:00+00:00 Outpatient \n", - "2 2017-08-01 17:33:00+00:00 2017-08-03 22:17:00+00:00 Outpatient \n", - "3 2017-08-01 17:33:00+00:00 2017-08-03 22:17:00+00:00 Outpatient \n", - "4 2011-03-09 02:52:00+00:00 2011-03-11 03:21:00+00:00 Outpatient \n", - "... ... ... ... \n", - "53911 2021-07-28 04:05:00+00:00 2021-07-29 22:05:00+00:00 Outpatient \n", - "53912 2022-03-21 07:00:00+00:00 2022-03-27 02:10:00+00:00 Outpatient \n", - "53913 2018-08-16 15:40:00+00:00 2018-08-18 14:54:00+00:00 Outpatient \n", - "53914 2010-04-06 23:09:00+00:00 2010-04-08 15:57:00+00:00 Outpatient \n", - "53915 2016-06-06 03:57:00+00:00 2016-06-08 00:36:00+00:00 Outpatient \n", - "\n", - " medication_time \\\n", - "0 2016-04-30 07:00:00+00:00 \n", - "1 2017-01-14 08:00:00+00:00 \n", - "2 2017-08-01 07:00:00+00:00 \n", - "3 2017-08-03 07:00:00+00:00 \n", - "4 2011-03-09 08:00:00+00:00 \n", - "... ... \n", - "53911 2021-07-28 07:00:00+00:00 \n", - "53912 2022-03-21 07:00:00+00:00 \n", - "53913 2018-08-16 07:00:00+00:00 \n", - "53914 2010-04-07 07:00:00+00:00 \n", - "53915 2016-06-06 07:00:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 494514044 \n", - "1 CIPROFLOXACIN HCL 500 MG PO TABS 516809057 \n", - "2 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 534436283 \n", - "3 CIPROFLOXACIN HCL 500 MG PO TABS 534679505 \n", - "4 CEFAZOLIN IN DEXTROSE (ISO-OS) 1 GRAM/50 ML IV... 381175237 \n", - "... ... ... \n", - "53911 MACROBID 100 MG PO CAPS 744908755 \n", - "53912 NITROFURANTOIN MONOHYD/M-CRYST 100 MG PO CAPS 786472382 \n", - "53913 SULFAMETHOXAZOLE-TRIMETHOPRIM 800-160 MG PO TABS 572108421 \n", - "53914 CIPROFLOXACIN 250 MG PO TABS 364367210 \n", - "53915 CEPHALEXIN 500 MG PO CAPS 497224508 \n", - "\n", - " cleaned_antibiotic \n", - "0 [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "1 [Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo... \n", - "2 [Nitrofurantoin] \n", - "3 [Ciprofloxacin Hcl, Cipro, Ciprofloxacin, Oflo... \n", - "4 [Cefazolin, Cefazolin In Dextrose] \n", - "... ... \n", - "53911 [Macrobid] \n", - "53912 [Nitrofurantoin] \n", - "53913 [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "53914 [Cipro, Ciprofloxacin, Ofloxacin] \n", - "53915 [Cephalexin] \n", - "\n", - "[53916 rows x 10 columns]" - ] - }, - "execution_count": 428, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "final_cohort_inp_ed_only" - ] - }, - { - "cell_type": "code", - "execution_count": 429, - "metadata": {}, - "outputs": [], - "source": [ - "import ast\n", - "def convert_to_list_and_keep_longest(value):\n", - " try:\n", - " # Convert numpy arrays to lists\n", - " if isinstance(value, np.ndarray):\n", - " value = value.tolist()\n", - "\n", - " # Already a list? Great.\n", - " if isinstance(value, list) and len(value) > 0:\n", - " str_items = [str(v) for v in value if v not in [None, \"\"]]\n", - " if str_items:\n", - " return max(str_items, key=len)\n", - "\n", - " # Fallback — just return original\n", - " return value\n", - " \n", - " except Exception as e:\n", - " print(f\"⚠️ Error: {e} — value: {value}\")\n", - " raise\n", - "\n", - "# Apply the function to your column\n", - "given_final_cohort_inp_ed_only = final_cohort_inp_ed_only.copy()\n", - "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n", - "given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"result_time_jittered_utc\", \"final_antibiotic\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "metadata": {}, - "outputs": [], - "source": [ - "# final_cohort.to_csv('../csv_folder/final_cohort.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 431, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique order number for final_cohort is 40344\n", - "the unique order number from final cohort that has more than one medication is 5360\n" - ] - } - ], - "source": [ - "group_counts = given_final_cohort_inp_ed_only.groupby(\n", - " ['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc']\n", - ")['final_antibiotic'].transform('count')\n", - "\n", - "# Filter rows where group count is greater than 1\n", - "group_counts_df= given_final_cohort_inp_ed_only[group_counts > 1]\n", - "sorted_group_counts_df = group_counts_df.sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "\n", - "print(\"the unique order number for final_cohort is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only)))\n", - "print(\"the unique order number from final cohort that has more than one medication is {}\".format(find_unique_orders(sorted_group_counts_df)))" - ] - }, - { - "cell_type": "code", - "execution_count": 546, - "metadata": {}, - "outputs": [], - "source": [ - "# read impliced_susceptibility rules\n", - "implied_suspectibility = pd.read_csv('../csv_folder/implied_susceptibility_rules.csv')\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Include implied-susceptibility rules" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Step 1: Check for inherent resistance" - ] - }, - { - "cell_type": "code", - "execution_count": 547, - "metadata": {}, - "outputs": [], - "source": [ - "import re\n", - "with_implied_susceptibility_starting_cohort = starting_cohort.copy()\n", - "with_implied_susceptibility_starting_cohort[\"susceptibility_source\"] = \"original\"\n", - "# Get unique organisms from implied_susceptibility\n", - "bacteria = implied_suspectibility[\"Organism\"].dropna().unique().tolist()\n", - "\n", - "# Create regex pattern and find matches\n", - "pattern = '|'.join([re.escape(org) for org in bacteria])\n", - "matches = with_implied_susceptibility_starting_cohort[\"organism\"].str.contains(pattern, case=False, na=False)\n", - "\n", - "# Add a new column showing WHICH organism was matched\n", - "def find_matched_organism(org_name):\n", - " org_name = str(org_name).upper()\n", - " for bact in bacteria:\n", - " if re.search(re.escape(bact), org_name, re.IGNORECASE):\n", - " return bact\n", - " return None\n", - "\n", - "with_implied_susceptibility_starting_cohort['matched_organism'] \\\n", - " = with_implied_susceptibility_starting_cohort['organism'].apply(find_matched_organism)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 548, - "metadata": {}, - "outputs": [], - "source": [ - "inherent_resistance = implied_suspectibility[\n", - " implied_suspectibility['Implied_Agent'].isna()\n", - "][['Organism', 'Antibiotic']].drop_duplicates()\n", - "resistant_to_add = pd.merge(\n", - " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", - " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", - " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", - " inherent_resistance,\n", - " left_on='matched_organism',\n", - " right_on='Organism',\n", - " how='inner'\n", - ")\n", - "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", - "resistant_to_add['susceptibility'] = 'Resistant'\n", - "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", - "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", - "added_resistant_cohort = (pd.concat([\n", - " with_implied_susceptibility_starting_cohort,\n", - " resistant_to_add[cols_to_keep]\n", - "], ignore_index=True))\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", - " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" - ] - }, - { - "cell_type": "code", - "execution_count": 236, - "metadata": {}, - "outputs": [], - "source": [ - "# duplicate_check = added_resistant_cohort.duplicated(\n", - "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility'],\n", - "# keep=False # Mark all duplicates as True\n", - "# )\n", - "\n", - "# # Step 2: Create a separate dataframe with just duplicates\n", - "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", - "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility']\n", - "# )" + "# read impliced_susceptibility rules\n", + "implied_suspectibility = pd.read_csv('../csv_folder/implied_susceptibility_rules.csv')\n" ] }, { "cell_type": "markdown", - "metadata": {}, - "source": [ - "Step 2: Check for implied susceptibility" - ] - }, - { - "cell_type": "code", - "execution_count": 549, - "metadata": {}, - "outputs": [], - "source": [ - "implied_agent_rules = implied_suspectibility[\n", - " implied_suspectibility['Implied_Agent'].notna()\n", - "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", - "implied_to_process = pd.merge(\n", - " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", - " implied_agent_rules,\n", - " left_on=['matched_organism', 'antibiotic'],\n", - " right_on=['Organism', 'Implied_Agent'],\n", - " how='inner'\n", - ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", - "implied_to_process['susceptibility_source'] = 'implied'\n", - "cols_to_keep = added_resistant_cohort.columns\n", - "final_implied_cohort = (pd.concat([\n", - " added_resistant_cohort,\n", - " implied_to_process[cols_to_keep]\n", - "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')" - ] - }, - { - "cell_type": "code", - "execution_count": 288, - "metadata": {}, - "outputs": [], - "source": [ - "# final_implied_cohort.to_csv('../csv_folder/final_implied_cohort.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 550, - "metadata": {}, - "outputs": [], - "source": [ - "# final_implied_cohort['order_time_jittered_utc'] = pd.to_datetime(final_implied_cohort['order_time_jittered_utc'], utc=True)\n", - "# given_final_cohort_inp_ed_only['order_time_jittered_utc'] = pd.to_datetime(given_final_cohort_inp_ed_only['order_time_jittered_utc'], utc=True)\n", - "# final_implied_cohort['result_time_jittered_utc'] = pd.to_datetime(final_implied_cohort['result_time_jittered_utc'], utc=True)\n", - "# given_final_cohort_inp_ed_only['result_time_jittered_utc'] = pd.to_datetime(given_final_cohort_inp_ed_only['result_time_jittered_utc'], utc=True)\n", - "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" - ] - }, - { - "cell_type": "code", - "execution_count": 281, - "metadata": {}, - "outputs": [], - "source": [ - "# merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 551, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "while the unique culture order is 40344, the number of medication to evaluate is 47218\n" - ] - } - ], - "source": [ - "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" - ] - }, - { - "cell_type": "code", - "execution_count": 552, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the number of unique medications to be evaluated is 47218\n" - ] - } - ], - "source": [ - "print(\"the number of unique medications to be evaluated is {}\"\\\n", - " .format(len(given_final_cohort_inp_ed_only.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))))" - ] - }, - { - "cell_type": "code", - "execution_count": 467, - "metadata": {}, - "outputs": [], - "source": [ - "# a = merged_culture_med[(merged_culture_med[\"anon_id\"] == \"JC2767297\") & (merged_culture_med[\"order_proc_id_coded\"] == 588860289) & (merged_culture_med[\"order_med_id_coded\"] == 589209454)]" - ] - }, - { - "cell_type": "code", - "execution_count": 373, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.5442504189868628, 0.4557495810131373)" - ] - }, - "execution_count": 373, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# negative rate\n", - "10067/18497, 8430/18497" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Incorporate antibiotic ranking to both prescribe and tested antibioti" - ] - }, - { - "cell_type": "code", - "execution_count": 553, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "432458aec91748498c742ba8c7a08212", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8583ef0f21354ec7a01ae2beeb21f777", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api aim_4_antibiotic_ranking\n", - "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_copy.aim_4_antibiotic_ranking" - ] - }, - { - "cell_type": "code", - "execution_count": 554, - "metadata": {}, - "outputs": [], - "source": [ - "with_prescribed_abx_rank_df = merged_culture_med.merge(aim_4_antibiotic_ranking, \\\n", - " left_on=['final_antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", - " .rename(columns={'spectrum_ranking': 'presciribed_antibiotic_rank'})\\\n", - " .drop(columns = ['antibiotic_agent', 'spectrum'])\n", - "with_tested_and_prescribed_abx_rank_df = with_prescribed_abx_rank_df.merge(aim_4_antibiotic_ranking, \\\n", - " left_on=['antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", - " .rename(columns={'spectrum_ranking': 'tested_antibiotic_rank',\n", - " 'ordering_mode_x': 'ordering_mode'})\\\n", - " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])" - ] - }, - { - "cell_type": "code", - "execution_count": 361, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedfinal_antibioticculture_descriptionwas_positiveorganismantibioticsusceptibilitysusceptibility_sourcematched_organismpresciribed_antibiotic_ranktested_antibiotic_rank
193472JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCiprofloxacinResistantoriginalENTEROCOCCUS SPECIES13
193473JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESLevofloxacinResistantoriginalENTEROCOCCUS SPECIES13
193474JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESAmpicillinSusceptibleoriginalENTEROCOCCUS SPECIES11
193475JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESLinezolidSusceptibleoriginalENTEROCOCCUS SPECIES16
193476JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESPenicillinSusceptibleoriginalENTEROCOCCUS SPECIES11
193477JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESTetracyclineResistantoriginalENTEROCOCCUS SPECIES12
193478JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESNitrofurantoinSusceptibleoriginalENTEROCOCCUS SPECIES12
193479JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESDaptomycinSusceptibleoriginalENTEROCOCCUS SPECIES16
193480JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESVancomycinSusceptibleoriginalENTEROCOCCUS SPECIES15
193481JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCeftriaxoneResistantinherent_resistanceENTEROCOCCUS SPECIES13
193482JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESTrimethoprim/SulfamethoxazoleResistantinherent_resistanceENTEROCOCCUS SPECIES12
193483JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCefepimeResistantinherent_resistanceENTEROCOCCUS SPECIES14
193484JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESErtapenemResistantinherent_resistanceENTEROCOCCUS SPECIES15
193485JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCefpodoximeResistantinherent_resistanceENTEROCOCCUS SPECIES13
193486JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCefazolinResistantinherent_resistanceENTEROCOCCUS SPECIES11
193487JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCeftazidimeResistantinherent_resistanceENTEROCOCCUS SPECIES13
193488JC27672971312618338365888602892018-12-31 18:48:00+00:002019-01-03 19:35:00+00:00Outpatient2019-01-02 08:00:00+00:00CEPHALEXIN 500 MG PO CAPS589209454Cephalexin/CephalothinURINE1ENTEROCOCCUS SPECIESCephalexin/CephalothinResistantinherent_resistanceENTEROCOCCUS SPECIES11
\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "193472 JC2767297 131261833836 588860289 \n", - "193473 JC2767297 131261833836 588860289 \n", - "193474 JC2767297 131261833836 588860289 \n", - "193475 JC2767297 131261833836 588860289 \n", - "193476 JC2767297 131261833836 588860289 \n", - "193477 JC2767297 131261833836 588860289 \n", - "193478 JC2767297 131261833836 588860289 \n", - "193479 JC2767297 131261833836 588860289 \n", - "193480 JC2767297 131261833836 588860289 \n", - "193481 JC2767297 131261833836 588860289 \n", - "193482 JC2767297 131261833836 588860289 \n", - "193483 JC2767297 131261833836 588860289 \n", - "193484 JC2767297 131261833836 588860289 \n", - "193485 JC2767297 131261833836 588860289 \n", - "193486 JC2767297 131261833836 588860289 \n", - "193487 JC2767297 131261833836 588860289 \n", - "193488 JC2767297 131261833836 588860289 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "193472 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193473 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193474 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193475 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193476 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193477 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193478 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193479 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193480 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193481 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193482 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193483 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193484 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193485 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193486 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193487 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "193488 2018-12-31 18:48:00+00:00 2019-01-03 19:35:00+00:00 Outpatient \n", - "\n", - " medication_time medication_name \\\n", - "193472 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193473 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193474 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193475 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193476 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193477 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193478 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193479 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193480 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193481 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193482 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193483 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193484 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193485 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193486 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193487 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "193488 2019-01-02 08:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", - "\n", - " order_med_id_coded final_antibiotic culture_description \\\n", - "193472 589209454 Cephalexin/Cephalothin URINE \n", - "193473 589209454 Cephalexin/Cephalothin URINE \n", - "193474 589209454 Cephalexin/Cephalothin URINE \n", - "193475 589209454 Cephalexin/Cephalothin URINE \n", - "193476 589209454 Cephalexin/Cephalothin URINE \n", - "193477 589209454 Cephalexin/Cephalothin URINE \n", - "193478 589209454 Cephalexin/Cephalothin URINE \n", - "193479 589209454 Cephalexin/Cephalothin URINE \n", - "193480 589209454 Cephalexin/Cephalothin URINE \n", - "193481 589209454 Cephalexin/Cephalothin URINE \n", - "193482 589209454 Cephalexin/Cephalothin URINE \n", - "193483 589209454 Cephalexin/Cephalothin URINE \n", - "193484 589209454 Cephalexin/Cephalothin URINE \n", - "193485 589209454 Cephalexin/Cephalothin URINE \n", - "193486 589209454 Cephalexin/Cephalothin URINE \n", - "193487 589209454 Cephalexin/Cephalothin URINE \n", - "193488 589209454 Cephalexin/Cephalothin URINE \n", - "\n", - " was_positive organism antibiotic \\\n", - "193472 1 ENTEROCOCCUS SPECIES Ciprofloxacin \n", - "193473 1 ENTEROCOCCUS SPECIES Levofloxacin \n", - "193474 1 ENTEROCOCCUS SPECIES Ampicillin \n", - "193475 1 ENTEROCOCCUS SPECIES Linezolid \n", - "193476 1 ENTEROCOCCUS SPECIES Penicillin \n", - "193477 1 ENTEROCOCCUS SPECIES Tetracycline \n", - "193478 1 ENTEROCOCCUS SPECIES Nitrofurantoin \n", - "193479 1 ENTEROCOCCUS SPECIES Daptomycin \n", - "193480 1 ENTEROCOCCUS SPECIES Vancomycin \n", - "193481 1 ENTEROCOCCUS SPECIES Ceftriaxone \n", - "193482 1 ENTEROCOCCUS SPECIES Trimethoprim/Sulfamethoxazole \n", - "193483 1 ENTEROCOCCUS SPECIES Cefepime \n", - "193484 1 ENTEROCOCCUS SPECIES Ertapenem \n", - "193485 1 ENTEROCOCCUS SPECIES Cefpodoxime \n", - "193486 1 ENTEROCOCCUS SPECIES Cefazolin \n", - "193487 1 ENTEROCOCCUS SPECIES Ceftazidime \n", - "193488 1 ENTEROCOCCUS SPECIES Cephalexin/Cephalothin \n", - "\n", - " susceptibility susceptibility_source matched_organism \\\n", - "193472 Resistant original ENTEROCOCCUS SPECIES \n", - "193473 Resistant original ENTEROCOCCUS SPECIES \n", - "193474 Susceptible original ENTEROCOCCUS SPECIES \n", - "193475 Susceptible original ENTEROCOCCUS SPECIES \n", - "193476 Susceptible original ENTEROCOCCUS SPECIES \n", - "193477 Resistant original ENTEROCOCCUS SPECIES \n", - "193478 Susceptible original ENTEROCOCCUS SPECIES \n", - "193479 Susceptible original ENTEROCOCCUS SPECIES \n", - "193480 Susceptible original ENTEROCOCCUS SPECIES \n", - "193481 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193482 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193483 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193484 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193485 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193486 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193487 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "193488 Resistant inherent_resistance ENTEROCOCCUS SPECIES \n", - "\n", - " presciribed_antibiotic_rank tested_antibiotic_rank \n", - "193472 1 3 \n", - "193473 1 3 \n", - "193474 1 1 \n", - "193475 1 6 \n", - "193476 1 1 \n", - "193477 1 2 \n", - "193478 1 2 \n", - "193479 1 6 \n", - "193480 1 5 \n", - "193481 1 3 \n", - "193482 1 2 \n", - "193483 1 4 \n", - "193484 1 5 \n", - "193485 1 3 \n", - "193486 1 1 \n", - "193487 1 3 \n", - "193488 1 1 " - ] - }, - "execution_count": 361, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "source": [ + "# Include implied-susceptibility rules" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step 1: Check for inherent resistance" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "with_implied_susceptibility_starting_cohort = starting_cohort.copy()\n", + "with_implied_susceptibility_starting_cohort[\"susceptibility_source\"] = \"original\"\n", + "# Get unique organisms from implied_susceptibility\n", + "bacteria = implied_suspectibility[\"Organism\"].dropna().unique().tolist()\n", + "\n", + "# Create regex pattern and find matches\n", + "pattern = '|'.join([re.escape(org) for org in bacteria])\n", + "matches = with_implied_susceptibility_starting_cohort[\"organism\"].str.contains(pattern, case=False, na=False)\n", + "\n", + "# Add a new column showing WHICH organism was matched\n", + "def find_matched_organism(org_name):\n", + " org_name = str(org_name).upper()\n", + " for bact in bacteria:\n", + " if re.search(re.escape(bact), org_name, re.IGNORECASE):\n", + " return bact\n", + " return None\n", + "\n", + "with_implied_susceptibility_starting_cohort['matched_organism'] \\\n", + " = with_implied_susceptibility_starting_cohort['organism'].apply(find_matched_organism)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "inherent_resistance = implied_suspectibility[\n", + " implied_suspectibility['Implied_Agent'].isna()\n", + "][['Organism', 'Antibiotic']].drop_duplicates()\n", + "resistant_to_add = pd.merge(\n", + " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", + " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", + " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", + " inherent_resistance,\n", + " left_on='matched_organism',\n", + " right_on='Organism',\n", + " how='inner'\n", + ")\n", + "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", + "resistant_to_add['susceptibility'] = 'Resistant'\n", + "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", + "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", + "added_resistant_cohort = (pd.concat([\n", + " with_implied_susceptibility_starting_cohort,\n", + " resistant_to_add[cols_to_keep]\n", + "], ignore_index=True))\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", + " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "metadata": {}, + "outputs": [], + "source": [ + "# duplicate_check = added_resistant_cohort.duplicated(\n", + "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility'],\n", + "# keep=False # Mark all duplicates as True\n", + "# )\n", + "\n", + "# # Step 2: Create a separate dataframe with just duplicates\n", + "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", + "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility']\n", + "# )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step 2: Check for implied susceptibility" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "implied_agent_rules = implied_suspectibility[\n", + " implied_suspectibility['Implied_Agent'].notna()\n", + "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", + "implied_to_process = pd.merge(\n", + " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", + " implied_agent_rules,\n", + " left_on=['matched_organism', 'antibiotic'],\n", + " right_on=['Organism', 'Implied_Agent'],\n", + " how='inner'\n", + ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", + "implied_to_process['susceptibility_source'] = 'implied'\n", + "cols_to_keep = added_resistant_cohort.columns\n", + "final_implied_cohort = (pd.concat([\n", + " added_resistant_cohort,\n", + " implied_to_process[cols_to_keep]\n", + "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# final_implied_cohort.to_csv('../csv_folder/final_implied_cohort_outpatient.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "# final_implied_cohort['order_time_jittered_utc'] = pd.to_datetime(final_implied_cohort['order_time_jittered_utc'], utc=True)\n", + "# given_final_cohort_inp_ed_only['order_time_jittered_utc'] = pd.to_datetime(given_final_cohort_inp_ed_only['order_time_jittered_utc'], utc=True)\n", + "# final_implied_cohort['result_time_jittered_utc'] = pd.to_datetime(final_implied_cohort['result_time_jittered_utc'], utc=True)\n", + "# given_final_cohort_inp_ed_only['result_time_jittered_utc'] = pd.to_datetime(given_final_cohort_inp_ed_only['result_time_jittered_utc'], utc=True)\n", + "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], "source": [ - "with_tested_and_prescribed_abx_rank_df[(with_tested_and_prescribed_abx_rank_df[\"anon_id\"] == \"JC2767297\") & (with_tested_and_prescribed_abx_rank_df[\"order_proc_id_coded\"] == 588860289) & (with_tested_and_prescribed_abx_rank_df[\"order_med_id_coded\"] == 589209454)]" + "# merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis_outpatient.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 555, + "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for negative cohort is 27588\n", - "the unique order number for positive cohort is 12756\n" + "while the unique culture order is 40335, the number of medication to evaluate is 47208\n" ] } ], "source": [ - "negative_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 0]\n", - "positive_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 1]\n", - "print(\"the unique order number for negative cohort is {}\".format(find_unique_orders(negative_cohort)))\n", - "print(\"the unique order number for positive cohort is {}\".format(find_unique_orders(positive_cohort)))" + "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" ] }, { "cell_type": "code", - "execution_count": 556, + "execution_count": 46, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "47218" - ] - }, - "execution_count": 556, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of unique medications to be evaluated is 47208\n" + ] } ], "source": [ - "len(given_final_cohort_inp_ed_only.groupby(\n", - " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" + "print(\"the number of unique medications to be evaluated is {}\"\\\n", + " .format(len(given_final_cohort_inp_ed_only.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Incorporate antibiotic ranking to both prescribe and tested antibiotic" ] }, { "cell_type": "code", - "execution_count": 557, + "execution_count": 47, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "782b22d31a9c450198435bd39847f4c6", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "32079" + "Query is running: 0%| |" ] }, - "execution_count": 557, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1903aa19b38b4d6f94509b02929586cc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "len(negative_cohort.groupby(\n", - " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" + "%%bigquery --use_rest_api aim_4_antibiotic_ranking\n", + "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_copy.aim_4_antibiotic_ranking" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "with_prescribed_abx_rank_df = merged_culture_med.merge(aim_4_antibiotic_ranking, \\\n", + " left_on=['final_antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", + " .rename(columns={'spectrum_ranking': 'presciribed_antibiotic_rank'})\\\n", + " .drop(columns = ['antibiotic_agent', 'spectrum'])\n", + "with_tested_and_prescribed_abx_rank_df = with_prescribed_abx_rank_df.merge(aim_4_antibiotic_ranking, \\\n", + " left_on=['antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", + " .rename(columns={'spectrum_ranking': 'tested_antibiotic_rank',\n", + " 'ordering_mode_x': 'ordering_mode'})\\\n", + " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])\n", + "with_tested_and_prescribed_abx_rank_df = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"presciribed_antibiotic_rank\"] != 99]" ] }, { "cell_type": "code", - "execution_count": 558, + "execution_count": 69, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "15139" - ] - }, - "execution_count": 558, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique order number for negative cohort is 27547\n", + "the unique order number for positive cohort is 12744\n" + ] } ], "source": [ - "len(positive_cohort.groupby(\n", - " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" + "negative_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 0]\n", + "positive_cohort = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"was_positive\"] == 1]\n", + "print(\"the unique order number for negative cohort is {}\".format(find_unique_orders(negative_cohort)))\n", + "print(\"the unique order number for positive cohort is {}\".format(find_unique_orders(positive_cohort)))" ] }, { "cell_type": "code", - "execution_count": 570, + "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "47109" + "47100" ] }, - "execution_count": 570, + "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "32079+15139 - 109" + "len(with_tested_and_prescribed_abx_rank_df.groupby(\n", + " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" ] }, { "cell_type": "code", - "execution_count": 571, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "15030" + "31989" ] }, - "execution_count": 571, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "15139 - 109" + "len(negative_cohort.groupby(\n", + " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" ] }, { "cell_type": "code", - "execution_count": 560, + "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "presciribed_antibiotic_rank\n", - "1 6171\n", - "2 16690\n", - "3 8333\n", - "4 221\n", - "5 446\n", - "6 128\n", - "99 90\n", - "Name: count, dtype: Int64" + "15111" ] }, - "execution_count": 560, + "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "negative_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", - "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" + "len(positive_cohort.groupby(\n", + " [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]))" ] }, { "cell_type": "code", - "execution_count": 561, + "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "presciribed_antibiotic_rank\n", - "1 9448\n", - "2 23836\n", - "3 12424\n", - "4 354\n", - "5 731\n", - "6 316\n", - "99 109\n", - "Name: count, dtype: Int64" + "47100" ] }, - "execution_count": 561, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } - ], - "source": [ - "with_tested_and_prescribed_abx_rank_df.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", - "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" + ], + "source": [ + "31989+15111" ] }, { "cell_type": "code", - "execution_count": 564, + "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "47109" + "presciribed_antibiotic_rank\n", + "1 6171\n", + "2 16690\n", + "3 8333\n", + "4 221\n", + "5 446\n", + "6 128\n", + "Name: count, dtype: Int64" ] }, - "execution_count": 564, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "9448 + 23836 + 12424 +354 + 731 +316" + "negative_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", + "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" ] }, { "cell_type": "code", - "execution_count": 562, + "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "47218" + "presciribed_antibiotic_rank\n", + "1 9442\n", + "2 23835\n", + "3 12423\n", + "4 354\n", + "5 730\n", + "6 316\n", + "Name: count, dtype: Int64" ] }, - "execution_count": 562, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "9294+23836 +12413+354+731+316+274 " + "with_tested_and_prescribed_abx_rank_df.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", + " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", + "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" ] }, { "cell_type": "code", - "execution_count": 575, + "execution_count": 77, "metadata": {}, "outputs": [], "source": [ @@ -4554,17 +2065,18 @@ " results,\n", " on=[\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]\n", - ")" + ")\n", + "final_cohort_with_evaluation.drop(columns = ['ordering_mode', 'culture_description',\"order_med_id_coded\", \"was_positive\"], inplace=True)" ] }, { "cell_type": "code", - "execution_count": 584, + "execution_count": 78, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6kAAAIqCAYAAADGjAxxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACcLElEQVR4nOzdfXyP9f////trp9iYOW9OttgIEWGxYVTOO/MOJX2SrCKlqJQmbJGzRCfft95OIkn1fqukclYYEVbvnJSTjBKRyMnWJrPZ8/eH3+t472Wv12wzXkftdr1cXpfL9jyex3E8j+P1PE4er+fzeB4OY4wRAAAAAAA24OPtAgAAAAAA4ESQCgAAAACwDYJUAAAAAIBtEKQCAAAAAGyDIBUAAAAAYBsEqQAAAAAA2yBIBQAAAADYBkEqAAAAAMA2CFIBAAAAALZBkPoX5HA45HA4tH//fpf0+++/Xw6HQ2PHjvVKuTzxVN6/sv3791vbdaEOHTrI4XBo3rx5RV7upcx7KSIiIuRwOJScnHxF1/tXMHbsWDkcDt1///3eLko+djzmL9excbnZuWzuHDp0SP3791fNmjXl5+dn2zpqN5d6zPwdr2dFVdAxfin+asdgaZKcnCyHw6GIiAhvF+VvgXuuwrFlkOo8UeX9+Pr6qlKlSoqJidHkyZOVmZnp7WLiCsrNzVWdOnXkcDjk5+enQ4cOXbZ1bd26VWPHjv1bXChPnTqlsWPH2iaIcV7oLvyULVtW4eHh6t27t1asWOHtYl52zsA378ff31+VK1dW/fr1deedd+qll17Sr7/+ekXLNHbsWJ06deqKrfNK+btt29mzZ9WxY0fNnz9fGRkZuv766xUbG6v69et7u2gFHuN169bVvffeq40bN3q7mPns379fY8eO1fTp071dlMsiNjbW+i42bdrk7eIUSUlfk7/++ms98sgjatiwoUJCQqzrT58+fbRo0SIZY0pkPReaN2+exo4dq61bt16W5RdXcnKyxo4dq8WLF3u7KIW2ePFijR07tsSCvOTkZD388MNq1KiRQkNDFRAQoGrVqqljx44aP368Dhw4UCLrKUw5/mrfxeVkyyDVqXbt2oqNjVVsbKxatmwpX19fbdy4Uc8884yaN2+uw4cPe7uIXtGgQQM1aNBA/v7+3i7KFfP555/r4MGDkqRz587prbfeumzr2rp1qxITEwu8IPr7+1vfQ0mqU6eOGjRooJCQkBJZ3qlTp5SYmKjExMQC89WrV08NGjRQuXLlSmS9heE8tmNjYxUREaHffvtNixYtUteuXfXkk09esXJ4U4UKFax9EB0drbCwMP3+++/68MMP9fTTT6tOnTp67LHHdPr0abfzX3XVVWrQoIGqVKlyyWVx1pNLDeQu17FxKQqzbSV97F1OK1euVGpqqsLCwvTzzz8rJSVF69ev13PPPeftornIe4yHh4frl19+0TvvvKPY2FhNnjzZK2XydMzs379fiYmJFw1S/4rX3x9++EFfffWV9f+bb77pxdIUXWGuyYVx9uxZDRw4UNHR0ZoxY4Z++ukn1a5dW40aNdIff/yh//znP+rdu7dat259WX4InzdvnhITE20ZpCYmJhYYGJUrV04NGjRQvXr1rlzBCrB48WIlJiZecpD6+++/q2vXrurYsaNmzpypffv26aqrrlKzZs0UHBystWvXatSoUYqMjNSUKVNKpvAFKMx3UZr4ebsABXnggQfytQB98MEH6t+/v1JTUzV48GB9/PHH3imcF+3evdvbRbji5s6dK0mqWLGiTp06pXnz5nn1hqxmzZqX5XuYP39+iS+zMFatWnXF17l+/XqX/0+cOKHHHntMCxcu1Msvv6zbbrtNcXFxV7xcV1Lz5s3zXWSNMdq1a5dmzZql119/Xa+//rq++eYbrVmzRmXKlHHJO2HCBE2YMOEKlvjiLtexcbl569grjp07d0o6HwRWrFjRu4UpwIXH+G+//aaHHnpIS5Ys0bPPPqubbrpJLVq0uKJlutRj5q9Yty+8fr7//vuaPn36Ff1R0ttyc3N12223acWKFSpXrpzGjRunBx98UMHBwZLO//i9bNkyDR06VCkpKWrTpo2+/vprVa9e3cslt4fo6Oi/ZN0vyPHjx9W6dWvt27dPYWFhevHFF9W7d2+X4+LIkSN65513NHnyZG3YsEFPP/20F0tc+ti6JdWdO++8U88//7wk6dNPP9WJEye8XCJcbidPnrR+VZo5c6b8/f2VmpqqL7/80rsFQ4mqVKmS3nzzTdWsWVOS9P7773u5RN7hcDjUqFEjTZs2TZ9//rkCAgK0adMmjRgxwttFg038+eefkvSXCzKqV6+uBQsWqGrVqjLGaMGCBd4u0t/euXPnrB9gJk+erCpVqig9PV0ffPCBl0t2ZU2ePFkrVqyQv7+/li1bpmHDhlkBqiT5+vrqlltu0YYNGxQREaGDBw/yjPffXP/+/bVv3z5dffXVSklJUf/+/fOdU2vUqKEnn3xSu3btUpcuXbxU0lLM2FBcXJyRZMaMGeN2+tdff20kGUkmJSXFGGPMmjVrjCQTHh5ujDFm/vz5JjY21lSsWNFIMlu2bLHmP3PmjHnttddM27ZtTWhoqAkICDDh4eFm4MCBJjU11e06s7KyzPTp003r1q1NSEiI8ff3N9WrVzfNmzc3jz76qPnvf//rdr4ffvjBDB482DRo0MCUK1fOlC9f3jRs2NA8/PDDZtOmTW63e+7cuebgwYPmoYceMuHh4cbf39/cfvvtVj7ntv/0008u8/fv39/abydOnDBDhw41ERERJiAgwISFhZkHH3zQHDp0yPOON8Z8+eWX5q677jI1a9Y0AQEBJjQ01Nx8881m0aJFBc73wQcfmNjYWBMUFGRCQkJMu3btzOLFiwssb2G99tpr1nebm5trbrvtNiPJ3H///R7nubA+fPzxxyYuLs6EhISYcuXKmejoaPPuu+/mmy88PNwqr7uPcxt++uknK+1Ceb/HAwcOmAEDBlj7MyIiwjz55JPm5MmTbsudd153Nm7caPr06WPCwsJMQECAqVy5suncubP54IMP8uV11gdPn7zrcG73mjVr3K63KPW4IM7vpaBTz+23324kma5du+abduzYMTNz5kxz++23m6ioKFOuXDlTrlw507hxYzNixAhz9OhRt8ucO3eukWTi4uKs/6Ojo01QUJApX7686dChg1m5cqXbeceMGWMkmf79++eblpWVZe666y4jydStW9fj+cPTMp3lKUhSUpKRZAIDA82vv/7qMi3vMX+hrVu3mnvvvdeEh4ebgIAAExwcbOrWrWu6d+9upk6danJzc13K4umTd9l568mOHTtMv379TFhYmPH19TWPP/64MebyHRsXO49c+B0XddtK8thztx++/PJL0717d1OpUiVTpkwZ06RJE/Paa69Z30NhXGx78u6b3Nxcs3DhQnPzzTebSpUqGX9/f1OzZk1zzz33mG+//fai+zAnJ8e88sorpkWLFqZ8+fJGksfvJq/CHOM9evQwkkz37t1d0nfu3GkGDBhg1dmKFSua9u3bm9mzZ5ucnBy3y/rtt9/MU089ZRo1amTKli1rypQpY2rXrm3atm1rnn/+eXPkyBGX/O6OGed37+mT97zobl/Xq1fPSDLvvPOOx20+ceKECQgIMJLMd999l2/6J598Ym699VZTvXp14+/vb6pWrWpuvfVWs3r1ao/LLIxPPvnESDLlypUzf/zxhxk6dKiRZDp06FDgfLm5uWbmzJnm+uuvN2XLljWVKlUyXbt2NWvXri3wGL/YteTCa3Ne7o7Bwl6TC/LHH3+Y0NBQI8mMHDnyovmXL19uLf+rr766aBnzcrdv8h4T7j55z1mXch938OBBM336dNOlSxdTt25dU6ZMGVO+fHlz/fXXm3Hjxpk//vgj3zwFlcvdNrj73pyKWofzXltzcnLMyy+/bJo0aWLKlCljKlasaHr06GG++eYbj/vX3aeg8uW1ceNGa57iHmPFuSY5uTtOCvtdFHRPUtDyL5z3zz//NImJiaZx48amXLlyJiQkxCXvb7/9Zp599lnTpEkTExwcbMqWLWsaN25snn/+eXPq1Cm36y3q+fhi/pJBakpKivWluQtSH3vsMSPJ1KhRw7Rq1cpUr17dClIPHz5smjdvbiQZh8NhatWqZa677jpTrlw5I8kEBwebL774wmV9OTk55sYbb7TWGRERYVq1amWdBCSZhISEfOWcPXu28ff3N5JMQECAadq0qWnatKl1wc8beObd7ueee85UrlzZ+Pn5WfPceeedVj5PB4bz5DZ06FBTr14943A4TKNGjcx1111nfH19jSRTrVo1s2vXLrf79ZlnnrGWHRISYpo1a2Zq1KhhpQ0aNMjtfM8//7yVp1q1aqZly5amUqVKRpKZPn16kS4m7lx//fVGkhk1apQxxpgPP/zQSDJBQUFuT7rGuNaHxMREI8lUr17dtGjRwoSEhFhleu2111zm69Wrl4mKijKSTIUKFUxsbKzLxxkkFOZG/PnnnzeVK1c2vr6+5rrrrjONGjUyDofDSDL169fPF3DkndfdBfDll1+25g8NDTUtW7Y0YWFhVjkGDBjgcsM7fvx407JlS2v6hduydOlSK29BNxZFrccFKcwNbKdOnYwk06tXr3zTnD9YBAQEmDp16piWLVuaqKgoq3y1atVyW8/yXiweeOABI8nUrl3bNG/e3AQFBRlJxsfHx/phJS9PF4S0tDTrvHD99dcX6eRblCD1xIkT1vE7b948l2megtQVK1ZYN8TBwcGmSZMmplmzZqZKlSrW/s/OzjbGGDNnzhwTGxtrpbds2dKlnsyZM8darrOejBs3zroAXX/99aZRo0bmiSeeMMZcvmOjODcERdm2kjz2LtwPc+fONT4+PqZSpUqmZcuWLt/Dk08+6XZ73HFuT+3ata3zrbvzU3Z2tunVq5e1jlq1apmWLVta5z5fX18ze/Zsj/uwffv21o9F4eHhplWrViY0NLTEgtTu3bsbyTVIff/99606GxQUZFq0aGEiIiKsZXXt2tX8+eefLsv55ZdfTM2aNY0k4+fnZ6655hrTsmVLU7NmTeuY+fzzz13mcXfMPProo+baa6810vkfgy48V+YN6t3Vw7FjxxpJpkuXLh63+Z///KeRZJo3b+6Snp2dbe69915ruZUrVzbNmzc3lStXttImTJjgcbkX849//MNIMvfee68xxphvv/3Wuv/58ccfPc5333335as/5cuXN76+vmbq1Kkev+OSDlILe00uyL///W/rHH/48OGL5jfGmGuuucZIMo888shFy5iXu/Pft99+a2JjY02FChWMJBMVFeWyDY8++qiV91Lu45588kkjyZQtW9ZcffXV1n2qc75rr7023zFc0PkkNjbWylfQ91bcOuy8Dvbr18907tzZSDKRkZHmuuuuM4GBgda2OO/zjTHm119/NbGxsaZatWrWdTxved3dN7jzyCOPWPukuIpzTXJyd5wU9rsoiSD1rrvuMtHR0dY+b9GihalVq5aVb/369db35+/vb+rXr2+uueYa4+fnZ9XhgwcPuiy7OOfji/lLBqkTJ060TjgnTpwwxvzvAPL19TVlypRxaSU7d+6cycrKMufOnTNt2rQxksxNN91kfvjhBytPVlaWefbZZ60D7Pfff7emLV682DpRb9u2zaUs2dnZZunSpWbZsmUu6Z9//rnx8fExkszjjz+e71eHL7/80syaNcvtdvv6+pouXbq43PSePn3a+tvTgeE8ufn7+5vIyEjz/fffW9MOHDhgVcjrrrsu36/SzgtolSpVzPvvv+8ybeXKldYJ4cIT8+eff26V56WXXjLnzp2z9svo0aOt4KGgA7kg27Zts+bfs2ePMcaYs2fPWjd5eW8y83LWB39/f1O2bFmXX7izs7PNoEGDrBv49PR0l3kLOrE4FeZG3N/f30RHR5sDBw5Y077//nvrV/cePXp4nPfC/bx69WrrJnn06NHm7Nmz1rQFCxZYN3fTpk0rdDnz8nRCK049LsjFbmAPHz5sXchffPHFfNM3b95sli5das6cOeOSfuzYMfPggw/mu/F1cn6n/v7+pnLlyi6tphkZGdYNeURERL5gw90F4fDhw6ZZs2ZGkunUqVO+OnQxRQlSjTHWui78ochTkOrMP2LEiHw39j///LOZNGmSdaw6FeY4ddYTX19f83//938mLS3NmuY8R12uY+NSbggKs22X89gLDAw006ZNcznvjhs3zgoW9u7d67Fc7lzsJsUZNJUrV858+OGHVvqZM2fMsGHDrJuIr7/+2mU+5z709fU1lSpVcvnB1nkNvZiLHePp6emmatWqRpIZNmyYMcaYXbt2WT/4xsfHm4yMDCv/ypUrreDa2Vrv9MQTT1jX8wt7UaSlpZm5c+fmu5n3dMwUpqXIGPd16ccffzQOh8P4+vp6DJqc9x4X1pMRI0YY6XxPjAtv4N555x0TFBRkHA5HsVp7jh07Zl2D857zmjZtaqTzPxa5M3v2bOs4zXvtPH36tImPj3e5rl+opINUYwp3TS6Is/W4KAGJM4i57rrrClVGp8L2JPHkUu7jvvjiC5OcnJwv/cCBA1YPtAuDbmMKF/QU9L0Vtw471+vv728iIiJcWk2PHj1qWrdubaTzP5p52k+e4oSLcR4DQ4cOLdb8xpR8kGpM4b6LkghSfX19TUREhMsPcM5r+MGDB62GpqFDh7r8sPHrr7+abt26ud2u4pyPL+YvF6QuWrTIavm47bbbrPS8F8aJEye6Xe77779v/WrgqQXu1ltvNZLrrz4TJkwwkqyWgsJwtv498MADhZ7Hud3VqlUr8Kb3YkGqJLNhw4Z88+3fv9/6FSRvi1FmZqYV9C1fvtztOj/44AMjyTRo0MAl3dmS5OnXK2erWHGDVOfFpU2bNi7pztbyvL8u5ZW3Przwwgv5pp8+fdq6Ufr4449dppVUkOrn52f279+fb/qGDRusebdu3ep23gsvYs797O7m3RhjRo0aZdWdrKysQpUzL08ntOLU44J4uoE9fvy4WbFihbnuuuuMdL4XxPHjx4u8/Jo1axqHw5GvVdP5nUoyb7/9dr75Dh8+bN14XfhD1IUXhB9++MFq4bnnnntcgpbCKmqQ6gyie/bs6ZLu6ULt/BXaU5ccd4oSpDZu3Nhj98vLdWx4K0gtiWNv4MCB+ebLzc21Wu9eeeUVj+Vyp6CblIyMDOuHnilTpridv127dkaSueOOO1zS8x4n7733XpHK5FRQkHrkyBHrZtnhcFg3pc7eDddee63b7s/OoCkgIMD89ttvVnqXLl3yXc8u5nIEqcYY07ZtWyOd/7H2QqmpqVa9z1v+X375xfj7+xt/f3+zfft2t+tztloW1Errycsvv2wkmZo1a7r8wOBcZp06dfL98JCbm2v9WPTUU0/lW+a5c+dMgwYN/lJBas+ePd3W94JMmzbNSOcbLQpTRqeSClKLeh93MZmZmcbf398EBwfnO3dfSpB6KXU47+ML69atyzef89E+h8OR71p2qUFq3t5+xfVXDlIleXxUa/DgwUaSufvuu91OT09Pt1pMN27caKUX53x8MbYeOOnNN99U27Zt1bZtW91www2qWrWqevXqpczMTEVFRWnGjBlu5xswYIDb9P/85z+SpH79+rk8MJ/XnXfeKUlavXq1lVanTh1J54f9P3LkyEXL/dNPP+nbb7+VpGKNQNurVy+VL1++yPM5tWrVSjExMfnSw8PD1bNnT0nS0qVLrfQ1a9bo999/V3h4uMcHw2+99Vb5+/vrhx9+sF79k5mZqbVr10qSHn/8cbfzPfHEE8XejrNnz+qdd96RJN13330u0/r37y9J2rBhg/bs2VPgch555JF8aWXLllXz5s0lSXv37i12GQvSs2dPhYeH50uPiYlRq1atJLl+D57k3c9PPfWU2zzDhg2Tr6+vjh49qm+++eYSSv0/l1qPLybvOxQrV66sLl26aNu2bbr55pu1du1aVapUye18Z86c0cKFC/Xwww+ra9euateunXWe+OOPP2SM0ZYtW9zOGxISon79+uVLv+qqq3T11VdLKrg+bN68WbGxsdq/f7+GDx+uBQsWXJFXUTjPV3/88Ueh8jvPWW+//fZlKU///v3l6+tb7PlL6ti43Erq2BsyZEi+NIfDYZ2nS/Ic9OWXXyo9PV3lypXT4MGD3eZxbsvKlSuVk5OTb3qFChWsa+GlcB6Xbdu2VcOGDVW7dm0tWbJEDodDEyZMsEb2dX7XTz75pBwOR77l3HfffapWrZrOnj2rL774wkp31vN///vfysrKuuTyXgrnNcrdMedM69Kli6pVq2alL168WNnZ2YqJiVGTJk3cLtf5Paxbt07nzp0rUpmco/ree++98vH53+1ev3795OfnpwMHDuQb2X3Pnj3at2+fJPfXdR8fHw0dOrRI5fA253nT032fO868aWlpl6VMF1PU+zin9PR0zZo1SwMGDFCXLl2s62Pnzp3l4+OjjIwMpaamllg5S6ION23aVO3atcuX3qJFCwUGBsoYY9XJkpKeni6paHXi76RRo0a64YYb3E5btGiRJOnhhx92O718+fLq1KmTJPexUkmej239CpqDBw9a78b08fFRhQoV1KZNG91xxx0aMmSIgoKC8s1TpUoVl4tAXtu2bZMkvffeey4Xuryc79H75ZdfrLQ77rhDUVFR2rlzp8LDw9WhQwe1a9dObdq0UWxsbL7XQnz//feSzo9kWJx3SjVq1KjI8+R17bXXepzWuHFj/ec//9GuXbusNOd+SUtLU9u2bT3O67x5+OWXXxQWFqa9e/daJxxPZW7cuHGRy++0ZMkSHT9+XIGBgbrrrrtcprVo0ULXXnutvv/+e82dO9fjKwWqVKniMdhxDi2fkZFR7DIW5GLfw9dff+3yPXiSdz97ughUqlRJNWvW1IEDB7R79263F7eiutR6fDGxsbGSzo8+eejQIR08eFC+vr5q1KiRx/Xt2rVLPXr00E8//VTgso8fP+42PSoqyu1NsHR+O/fs2eOxPnz99df6z3/+oz///FNTp07V8OHDCyxDSXLeZFWoUKFQ+UeMGKEHH3xQjz32mF5++WV17txZN9xwg+Li4lS3bt1LLs/lPkcV9ti43Erq2Ktfv77beS/HOeiHH36QJNWtW9ftNVL637acPn1aBw4cyFcn6tevLz+/S7892LBhg/V3YGCgatasqdjYWD3yyCPWfkpLS7N+/PW0j/39/XXNNdfo6NGjLq/BGDp0qObPn6+FCxdq2bJl6tKli1q3bq3Y2Fi1aNHC47F+OfTp00dDhw7Vtm3btH37djVt2tSa5hzF+MIfW53X3h9++MHjtdcYI+n8iM7Hjx/3eH9zoW+++Ubfffed2/VWr15dXbt21aeffqo333zTuuGU/veKnfLly6tWrVpul30p13VvcP7oX5TjzJnXW+9NLup9nHQ+COzdu7eOHj1a4LI9XR+LoyTqsKfzo8PhULVq1XTw4MESv08rX768Tp48ednu/+zO0zX88OHDOnbsmCTpmWee8fgj/M8//yzJNVa6HOdjWwepY8aMyfee1IvxdFGWzr/KRDp/MDkv5J6cPn3a+rtcuXL68ssv9cILL+j999/XypUrtXLlSknnK/pDDz2kpKQka+hq5y80xX1/XUHbUBgFvdfLOS1vi4xzv5w6dcrlpsIT575xLsPPz++igWBxOF84fuuttyo0NDTf9P79++vpp5/W/PnzNW7cOLctOwXtS+cvy7m5ucUuY0GK+j14knc/V65c2WO+q666SgcOHCh0a9vFXGo9vpgL36G4Zs0a9enTR6+++qp8fHw0bdo0l+m5ubm688479dNPP+n666/X2LFj1aJFC1WpUkUBAQGSpPbt2+vLL79Udna223VeSn04dOiQTp8+rTJlyui6664r9HaWhP3790sq/PEUHx+vihUr6uWXX9bmzZv1r3/9S//6178knX/f3eTJky/pHbRX+hzlLSV17HnaX5fjHOQsQ40aNTzmueqqq/Llz+tSv18n581pQfKuvzBlzpv/2muv1caNG5WUlKTly5frvffe03vvvSfp/K/6CQkJeuihh4pb/CIJCQnR7bffrvfff19vv/22pkyZIun8ee7HH39UxYoVddttt7nM47z2HjlypFC9tPLel1yM8/rZsmVLtzek/fv316effqrFixfr5MmT1jXWuX8Lc4z+VTiD7aL0WHC2NnoK1C+3op4j09PT1atXLx07dkw33XSTnn32WTVt2lShoaFWoFGnTh0dPHjQ4/WxOEqiDnvjPq1WrVo6efKkfvzxxxJd7l+Fp33u/D4lKSUl5aLLyft9Xo7zsa27+5Y0Z7P+4sWLZc4/j+vx47wpdKpevbpef/11HT16VN9//71mzJih2267TadPn9bUqVMVHx9v5XW2djhbZa+033777aLT8nYndu6XO+6446L7xRijDh06uCwjJyfH4/tqCypLQQ4fPmz9ELBo0SKXrqHOj/OlyocPH9aKFSuKtZ7Lqajfgyd593NBv4D++uuvhV5mYVzpetyxY0erW9z06dO1efNml+kpKSnatWuXypYtqxUrVujWW29VWFiYFaBKJfsL8YXuuOMOjRo1SmfOnNEtt9xi1c/L7fjx49qxY4ckqU2bNoWer1evXvrqq6904sQJLV26VCNGjFBERIRSUlLUpUsXbd++/XIV+aIu5djwFPhkZmZeesEu4K1j71I4y1DQDaOzvHnze0ve9RemzBeWt3nz5vroo4+UlpamDRs2aMKECbrhhht04MABPfzww5o5c+blKbgbzhbLd955x2qBd76jtE+fPvl6XTmvvU888UShrr0RERGFKseZM2f07rvvSjrfouru+tm7d+98eaX/7d/CHKPuOFtLruRxejHOFr6dO3e61P2CrFmzRtL/evw4XantK+o5cunSpTp27Jhq166tTz/9VDfffLOqVatmBajGGI/3aZfictXhy83Zvdj5PV+KK13XL1YHL2Xdebs/nzx58qLf57x581zmL+nzcakKUp1diQrTWuiJw+FQ48aNNWjQIH388cf68MMPJUnvvvuudTPv7Obz22+/eeVXGucNbUHTGjZsaKU598umTZuK9GtVZGSk1Xq5c+fOIpelIG+99ZbOnTsnf39/Va9e3ePH+WuQ81fjklBSXcSK+j14EhkZaXW9c3bBvdDJkyd16NChfMu8lG3xRj3u2rWrevToIel8l9W8nF18GzZsqCpVquSb9/jx4xftIXGpXnjhBSUmJurMmTO67bbbrshzk//85z917tw5lSlTRp07dy7y/CEhIerWrZsmTZqkPXv26IYbblBWVlaJHjNFVZxjw3mse7p5u9iz6cVxKceet1xzzTWSpB9//NFjy5tzW8qVK2c9R+QtISEhVguqp32ck5NjHdue9nFAQIBiYmL07LPPatOmTRo2bJik88dPYZTEeb9Lly6qXr26fv31V61atUpZWVnWWBgXdrmVSuaexJ2PPvpIp06dko+PT4HXT+cPkXnPBc7688cff7h05curoOP3chynl/rddO/eXRUrVlRubq5ef/31i+ZfuXKl1ZX2nnvucZl2KdtXlO0o6jnSeX1s1apVvh9DJGn79u0eA5dL2b+Xqw5fzKXWiXvvvVeS9N133xU7UPVWXb/Yek+ePKnff/+9yOuWzrcwO3vPffXVV8VahnTp52OnUhWk9unTR5I0e/bsQv+adjHt27e3/nYOKBQeHm4NCOHpWcnLKSUlRRs3bsyXfuDAAS1evFiS1K1bNyu9U6dOqlixoo4cOaJZs2YVej1BQUHW9r/22mtu87zyyitFKPn/OH+defTRR61uJO4+b731liTpk08+KfZBeSFnt+0///zzkpbz0Ucf6cCBA/nSN27cqK+//lqS6/fgSVBQkNU18+WXX3abZ/r06Tp37pyqVaumli1bWunObZGKvj3eqseJiYmSzj9fk/ehfOe2HDlyxO0viNOmTSvywCLFMXr0aE2YMEFZWVnq2bOnlixZctnWlZycrHHjxkk6P4jBpXaz8/f3V+vWrSX973zlVFL1vjCKc2xERUVZeS6Ulpbm0hp0oeJu26Uce97Stm1bVahQQadPn7a6eF9o6tSpks4HVSXx7Omlcv4wNW3aNLfH9ttvv63ffvtNgYGBuummmwq1TOe16cJ67klJ1H9fX18rqJk/f76WLFmiU6dOqV69evla5CTpH//4h/z8/PT111+XaG8gZ9B5++23F3j9dJ5f//vf/1o9K+rXr289o+zuum6M8Xi9lwo+TnNycop0j+F0qd9NcHCw1fNqypQpWrdunce8R44csQaM6dSpU77vraDtk+RxQE+paNtR1Ps457I91Xdn9/NLLdeFLlcdvphLrRNt2rSx9t/AgQMvep44ceKE3njjDZe0S7kmeVKY7XKud8uWLW4HKCpqIJiXr6+vNdDVhAkTSuyeqqjnY6dSFaT27dtXrVu31smTJ3XjjTfmeyZOOj8wy+jRo/XJJ59YaS+//LImT55sPSjsdPr0aeuZ2dDQUJfBXiZNmiQfHx/Nnj1bTz75pPV8n9OGDRs0Z86cEty6//H399f999/v8lD9L7/8orvuukvZ2dlq0qSJbr31Vmta+fLlNX78eEnnH3yeNm1avgPk5MmTevvtt60TvdOzzz4r6fzIydOnT7daYnNycpSUlFSsX6jWr19v/QLlaaRmp1tvvVWVK1d2GQn4UkVGRko6/2tlcbsrO919990uv0bv2rXLGpm4W7duatasWaGWM2rUKDkcDi1ZskQvvPCCy4ic7733niZNmiTp/Ci8eR90r1KlijXwQ96Ar7C8UY9btGihW265RZJcnklv06aN/P39dfjwYSUkJFgnz9zcXL322muaMGGC21+QL4dnn31WL730ks6ePatevXrpo48+KtHl79q1S8OGDVOnTp109uxZtW7dWhMnTizUvOnp6erdu7dWrFihs2fPukz773//q/fff1+SrFF0nZz1vjj1pDiKemw4n+ebMmWKS1flI0eOqG/fvgV2S7+UbSvusectQUFB1qBeo0ePdvkRJSsrSyNGjNDatWvl5+d3WUbtLo6nnnpKZcqU0bZt2/TII4+4tACvWrVKTz75pCRp8ODBLoOuPPTQQ3r77bfzffdHjhyxnmm/sJ57Uq9ePTkcDh09erTY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TYzu6wWM4AW7279/v66++uoC89x+++1avHix9f/Zs2dVs2ZNhYeH65tvvrnkMoSHh6tRo0ZatmyZ2+nJycnq0aOHvvvuO9WtW1dPPfWUfvrpJ33wwQeSpCVLlmjgwIE6duzYJZcFAADgciE2yI9nUgHkU6NGDa1ZsyZf+sSJE7V27VotW7bMas10WrJkiX7//XclJSVd8vr37t2rX375Rbfddpvb6VlZWXr44Yc1ZswY1a1bV5JkjHFp3c3IyBC/wQEAAPz1EKQCyKdMmTLq0KFDvvR58+bJ19fX7bQ5c+aobNmyuueeezwu18/PT3FxcVq1apUkafv27Ro2bJh69eqlunXrysfHR999952mTZumypUr66mnnnK7nPHjx6tMmTIaPny4ldalSxe98sorevXVVxUZGamkpCR17dq1aBsOAAAAryNIBXDJDh48qJUrV+ree+9VSEiIx3znzp3TuXPnrP+rV6+usLAwTZ06Vb/++qtycnJUq1Yt3XLLLXruuedUu3btfMvYtWuXpkyZouTkZJf3qHbu3FlTpkzR1KlTderUKXXu3FnTp08v0e0EAADA5cczqV5Av3MAAAAAErGBO4zuCwAAAACwDbr7AqVUxLOfebsIXrd/Yg9vFwEAAAAXoCUVAAAAAGAbBKkAAAAAANsgSAUAAAAA2IbtgtR58+bJ4XAU+Lnppptc5klPT9fw4cMVHh6uwMBAhYeHa/jw4UpPT/e4noULFyo6OlpBQUEKDQ1V9+7d9c0333jMn5qaqj59+qhq1aoqW7asmjZtqtdff125ubkltu0AAAAAUNrZbuCkZs2aacyYMW6nLVq0SDt27FCXLl2stMzMTMXFxWnr1q3q1KmT+vbtq23btmnatGlas2aN1q9fr6CgIJflvPjii0pISFCdOnU0aNAgZWRk6L333lNsbKxWrFihDh06uOTfuXOnYmJidPr0afXp00c1a9bUsmXL9Nhjj2n79u2aOXNmie8HAAAAACiN/jLvST179qzCwsKUlpamX375RdWrV5ckjRkzRklJSRoxYoQmTZpk5Xemjx49WomJiVZ6amqqGjVqpLp16yolJUUhISGSpB07dig6OlpXXXWVdu/eLT+//8XvcXFxWrdunT777DN1795dkpSdna1u3bpp1apVWr16tTp27FjobeFdSLADRvdldF8AAOB9xAb52a67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LoKtHT16VNWqVXNJy8jIUGRkpK699lp98cUXHucdMGCA3nrrLe3Zs0eRkZEFric3N1c+Puc79jz66KP6f//v/8ndpal69eqaPn26+vbtK0nq3Lmzrr/+ek2cOFGSNHHiRM2bN0/btm1TYGBgkbYVAABvITbIj5ZUAIBbFwaokhQcHKxGjRrp4MGDHuf7448/9J///EdxcXEXDVAlWQHqxZw5c0ZBQUEuZTlz5owk6ccff9QLL7ygpUuXEqACAPAXxzOpAIBCS0tL07fffqvGjRt7zPPee+8pMzNT8fHxJbrumJgYvf766zp69Kg2bNigFStWKCYmRpI0ePBg3X333YqLiyvRdQIAgCuPllQAQKENGTJEmZmZSkhI8Jhnzpw5qlixou68884SXff06dN16623qnr16pKkBx54QL1799aCBQu0detWvfvuuyW6PgAA4B20pAIACuX555/XO++8o2nTpqlFixZu8+zYsUObN29Wv379VKZMmRJdf4MGDbR7926lpqbq2LFjmjNnjk6ePKnhw4dr2rRpqlSpkv75z3+qXr16qlKlivr166eTJ0+WaBkAAMDlR5AKALioxMREjRs3TuPHj9ejjz7qMd+cOXMkqcS7+jr5+PgoMjJSVapUkSQ99dRTat68ue655x6tWrVKzzzzjN5//33t3btXx44d0xNPPHFZygEAAC4fuvsCAAqUmJiosWPHauzYsXruuec85jt79qzefvtttWjRQs2aNbvs5UpOTtb777+v7777TpK0bNkyde7cWS1btpR0fqTggQMHXvZyAACAkkVLKgDAoxdeeEFjx47VqFGjNGbMmALzLlmyRL///vsVCQyzsrL08MMPa8yYMapbt64kyRijzMxMK09GRobbV9kAAAB7K3ZL6rp16xQREaE6dep4zPPLL7/oxx9/VPv27Yu7GgCAl0ydOlWjR49W165d1aNHD23atMlleuvWrV3+nzNnjsqWLat77rnH4zL9/PwUFxenVatWWWk///yzvv76a0nSvn37JEmLFi2SJEVERFgto3mNHz9eZcqU0fDhw620Ll266JVXXtGrr76qyMhIJSUlqWvXrkXcagAA4G3FDlI7duyoMWPGaPTo0R7zvPPOO3ruued07ty54q4GAOAln3zyiSRp+fLlWr58eb7peVspDx48qJUrV+ree+9VSEiIx2WeO3cu3zVhzZo1GjBggEta7969JUn9+/fXvHnzXKbt2rVLU6ZMUXJysvz8/ncZ69y5s6ZMmaKpU6fq1KlT6ty5s6ZPn16obQUAAPZR7CC1MF2ocnNz5XA4irsKAIAXJScnFzpv7dq1C/WDpLtrx/3336/777+/0Otq2LCh/vzzT7fThg0bpmHDhhV6WQAAwH4u6zOpqampBf6iDgAAAABAXkVqSX3ggQdc/l+8eLH279+fL9+5c+f0yy+/aN26dTwPBAA2FfHsZ94ugtftn9jD20UAAAAXKFKQmve5IIfDoa1bt2rr1q1u8zocDrVq1UrTpk27lPJJkiZPnqxnnnlGkrRx48Z8g3VIUnp6usaOHasPPvhAR44cUY0aNXTnnXdq7NixqlChgtvlLly4UNOnT9eOHTsUEBCgNm3aKCkpye0gHdL5luGEhAStWbNGGRkZioqK0kMPPaRHHnlEPj4MlAwAAAAAl6pIQepPP/0k6fwzRXXr1tUTTzyhxx9/PF8+X19fhYaGKigo6JILuGvXLo0ePVpBQUEurxbIKzMzU3Fxcdq6das6deqkvn37atu2bZo2bZrWrFmj9evX5yvLiy++qISEBNWpU0eDBg1SRkaG3nvvPcXGxmrFihXq0KGDS/6dO3cqJiZGp0+fVp8+fVSzZk0tW7ZMjz32mLZv366ZM2de8rYCAAAAQGlXpCA1PDzc+nvu3Llq3ry5S1pJO3funPr376/rrrtO9evX14IFC9zmmzx5srZu3aoRI0Zo0qRJVvqYMWOUlJSkyZMnKzEx0UpPTU3VmDFjVL9+faWkpFjPzQ4dOlTR0dGKj4/X7t27XUaNHDx4sNLS0vTZZ5+pe/fukqRx48apW7dumjVrlvr27auOHTtejt0AAAAAAKVGsfuo9u/fX02bNi3JsuQzadIkbdu2TW+++aZ8fX3d5jHGaPbs2QoODs73OpyRI0cqNDRUc+bMcRlRcu7cucrJyVFCQoLLwE6NGzfWfffdp3379mn16tVW+p49e7Ru3Tp17NjRClAlyd/fX+PHj5ckzZo1q0S2GQAAAABKs2K/gsYpJSVFX3/9tU6dOuX29QMOh0PPP/98kZf7/fffKzExUaNGjVLjxo095ktNTdXhw4fVpUuXfF16y5Qpo/bt2+vjjz/W3r17FRUVJel/r1Xo3LlzvuV16dJFb7zxhtauXWtNLyh/dHS0KlasqLVr13osY1ZWlrKysqz/09PTPeYFAAAAgNKs2EHqiRMndMcdd2jDhg0FvjO1OEFqTk6O7r//fjVs2FDPPvtsgXlTU1MlyQpAL+RMT01Ndfk7ODhYNWrUKDB/YdbhcDgUGRmpb775RqdPn1a5cuXy5ZkwYYJLd2MAAAAAgHvFDlKHDx+u9evXq0OHDurfv79q1arl8gznpXjxxRe1bds2bd68Wf7+/gXmTUtLkySP72N1juzrzOf8u1q1akXKX9h1uAtSR44cqeHDh1v/p6enq3bt2u43CAAAAABKsWJHlZ9++qmio6O1atUqORyOEivQtm3bNG7cOD311FO6/vrrS2y53hQYGKjAwEBvFwMAAAAAbK/YAyedOXNG7du3L9EAVTo/IFO9evU0duzYQuV3tm7mbfnMy/n8Z95W0JCQkCLnL8w6PL2PFQAAAABQOMUOUps3b679+/eXYFHO27Ztm3bv3q0yZcrI4XBYn7feekuS1KZNGzkcDi1evFiS+2dI83L3PGlUVJQyMjJ05MiRQuf3tA5jjPbu3auwsLASeS8sAAAAAJRmxe7uO3bsWPXo0UObNm1S69atS6xAAwcOdJu+bt06paam6rbbblPVqlUVEREh6XwAGRYWpg0bNigzM9MlUDxz5ozWrVunsLAwRUZGWulxcXHauHGjVq5cqfvuu89lPStWrLDyOHXo0EGStHLlynwDOaWkpOjUqVPq1q1bsbcZAAAAAHBesYPUQ4cO6ZZbblFcXJz69eun5s2bexxY6MJAsCCzZ892m37//fcrNTVVI0eOdAmKHQ6H4uPjlZSUpKSkJE2aNMmaNmHCBJ08eVKPPfaYS7fkAQMG6KWXXtL48eN1++23W+XesWOH5s+fr3r16unGG2+08tevX1/t27fXmjVrtHTpUutdqdnZ2Ro1apQk6cEHHyz0NgIAAAAA3Ct2kHr//ffL4XDIGKN58+Zp3rx5+Z5PNcbI4XAUKUgtjhEjRmjJkiWaPHmytmzZohYtWmjbtm1atmyZmjVrphEjRrjkr1+/vsaOHatRo0apadOm6tWrlzIzM/Xuu+8qOztbs2bNyjdS8YwZMxQTE6OePXuqT58+CgsL0/Lly7V9+3bFx8erY8eOl3UbAQAAAKA0KHaQOnfu3JIsxyUJCgpScnKyEhMTtWjRIiUnJ6tGjRoaNmyYxowZ4/ZZ0YSEBEVERGj69OmaMWOGAgICFBMTo6SkJLVq1Spf/kaNGiklJUUJCQlatmyZMjIyFBkZqVdffVVDhgy5EpsJAAAAAH97DmOM8XYhSpv09HRrhGFGBIa3RDz7mbeL4HX7J/bwdhG8ijpAHQAAeB+xQX7FHt0XAAAAAICSVuzuvgcOHCh03jp16hR3NQAAAACAUqTYQWpERES+gZLccTgcysnJKe5qAAAAAAClSLGD1Pvuu89tkJqWlqZt27bpp59+UlxcnPU+UwAAAAAALqbYQeq8efM8TjPGaOrUqZo8ebLmzJlT3FUAAAAAAEqZyzJwksPh0FNPPaXGjRvr6aefvhyrAAAAAAD8DV3W0X1btmyp1atXX85VAAAAAAD+Ri5rkLpv3z4GTQIAAAAAFFqxn0n1JDc3V4cOHdK8efP08ccf66abbirpVQAAAAAA/qaKHaT6+PgU+AoaY4wqVqyoKVOmFHcVAAAAAIBSpthBavv27d0GqT4+PgoNDVXLli01YMAAVa9e/ZIKCAAAAAAoPYodpCYnJ5dgMQAAAAAAuMwDJwEAAAAAUBQlMnDSV199pa1btyotLU0VKlRQs2bNFBsbWxKLBgAAAACUIpcUpG7evFn9+/dXamqqpPODJTmfU42KitLcuXPVpk2bSy8lAAAAAKBUKHaQumvXLt18883KzMxUly5d1KFDB9WoUUO//fabkpOTtXz5cnXp0kWbNm1So0aNSrLMAAAAAIC/qWIHqYmJiTp79qxWrFihTp06uUwbMWKEvvjiC/Xo0UNJSUl67733LrmgAAAAAIC/v2IPnLRmzRr16tUrX4DqdPPNN+vOO+/UmjVril04AAAAAEDpUuwgNS0tTREREQXmufrqq5WWllbcVQAAAAAASpliB6lhYWHatGlTgXk2b96ssLCw4q4CAAAAAFDKFDtIvf3225WcnKznn39eZ86ccZl25swZjRkzRmvWrNHtt99+yYUEAAAAAJQOxQ5Sn3/+edWtW1cvvvii6tSpo1tuuUUDBw7ULbfcovDwcL3wwgu6+uqr9fzzz5dkeXEFrF69Wg888ICuueYaBQUFqWbNmrr99tv13//+1yXf+vXrFR8frxYtWigwMFAOh0P79+8v1Dr2798vh8Ph8dO1a1cr78mTJ9W3b1+Fhoaqbt26mjlzZr7lbd68WWXLltWuXbsuadsBAAAAeFexR/etVKmSNm/erKefflrvvfeeli5dak0rU6aMBgwYoEmTJqlSpUolUlBcOTNmzNDx48f1+OOPq1GjRjp27JimTp2q1q1ba8WKFbrxxhslSatWrdIXX3yh5s2bq0KFCkpOTi70Oq666ipt3LgxX/rixYs1adIk9ezZ00p78skntWXLFi1YsEB79uzR4MGD1bBhQ7Vr106SlJOTo4ceekgjRoxQw4YNL23jAQAAAHiVwxhjLnUh2dnZ2r17t9LT01WhQgVdc8018vf3L4ny/S2lp6crJCREaWlpqlChgreLk8/Ro0dVrVo1l7SMjAxFRkbq2muv1RdffCFJys3NlY/P+cb4l156SU8//bR++umniw6oVZCOHTsqJSVFv/76q7VvqlevrunTp6tv376SpM6dO+v666/XxIkTJUkTJ07UvHnztG3bNgUGBhZ73aVNxLOfebsIXrd/Yg9vF8GrqAPUAQCA99k9NvCGIrekjh8/XpmZmUpMTLQCUX9/fzVp0sTKc/bsWSUkJKh8+fJ69tlnS660uCIuDFAlKTg4WI0aNdLBgwetNGeAWlL27duntWvXqn///i4H6JkzZxQUFORSFudz0D/++KNeeOEFLV26lAAVAAAA+BsoUpTxxRdfaPTo0apcuXKBLaUBAQGqXLmyEhIStHr16ksuJLwvLS1N3377rRo3bnzZ1vHmm2/KGKP4+HiX9JiYGL3++us6evSoNmzYoBUrVigmJkaSNHjwYN19992Ki4u7bOUCAAAAcOUUKUidP3++QkND9eijj14075AhQ1SpUiXNnTu32IWDfQwZMkSZmZlKSEi4LMs/d+6c3nrrLV1zzTWKjY11mTZ9+nTt379f1atXV9u2bXX33Xerd+/eWrBggbZu3aopU6ZcljIBAAAAuPKKFKR+9dVXuvnmmwvVrTIwMFA333yzvvrqq2IXDvbw/PPP65133tG0adPUokWLy7KO5cuX69ChQxo4cGC+aQ0aNNDu3buVmpqqY8eOac6cOTp58qSGDx+uadOmqVKlSvrnP/+pevXqqUqVKurXr59Onjx5WcoJAAAA4PIqUpB6+PBh1a1bt9D5r776av36669FLhTsIzExUePGjdP48eML1YJeXHPmzJG/v7/uu+8+t9N9fHwUGRmpKlWqSJKeeuopNW/eXPfcc49WrVqlZ555Ru+//772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TZs2Lp+ePXvmW8/FRng+cuSI7rjjDm3evJkRnv8meCYVAAAUWs+ePTVr1ix98MEHuuuuu6z0t956S2FhYbrhhhsuuozg4GA1adJEkvTtt99q1apVmjp1qsf8BXXxK1++PF38AC8p7gjPhZkvL0Z4Ln0IUgEAQKF169ZNnTp10uDBg5Wenq7IyEi9++67Wr58uRYsWGC953LgwIF66623tG/fPoWHh0uSkpOT9fXXX6tp06YyxiglJUWTJk1S165d9eijj7pdn7OL35o1a9x28RsyZIjef/99uvgBwN8IQSoAACiSDz/8UAkJCRo9erROnDiha665Ru+++67uvvtuK4+7Ln4BAQH64IMPNG7cOGVlZSkqKkpJSUkaOnSoFdzmdbEufkOGDNEdd9yhunXr0sUPuASM8MxIwHZDkAoAAIokODhYr7zyil555RWPedx18YuJidGmTZsKvR66+AFA6cTASQAAAAAA26AlFQCAUoxufnTzAwC7oSUVAAAAAGAbBKkAAAAAANsgSC2Cr7/+Wt27d1doaKiCgoIUHR2thQsXertYAAAAAPC3wTOphZScnKwuXbooICBAd999t0JCQvThhx+qX79+2r9/v5577jlvFxEAAAAA/vJoSS2EnJwcxcfHW0Phz5o1Sy+99JK2bdumxo0ba8yYMUpNTfV2MQEAAADgL48gtRBWr16tffv26Z577lHz5s2t9PLly+v5559XTk6O5s6d68USAgAAAMDfA919CyE5OVmS1Llz53zTnGlr1671OH9WVpaysrKs/9PS0iRJ6enpJVjKosnNOu21dduFN/e/HVAHqAPUAeqARD2gDlAHqAPUAW/XAef6jTFeLYedOAx746J69+6tRYsW6ZtvvlGLFi3yTa9ataocDoeOHj3qdv6xY8cqMTHxchcTAAAAwF/UwYMHVatWLW8XwxYIUguhc+fO+vzzz5WamqrIyMh80+vVq6dffvnFpbU0rwtbUnNzc3XixAlVrlxZDofjspXbrtLT01W7dm0dPHhQFSpU8HZx4CXUA1AHQB0AdQDUgfMtqH/88YfCwsLk48PTmBLdfa+IwMBABQYGuqRVrFjRO4WxkQoVKpTakxH+h3oA6gCoA6AOoLTXgZCQEG8XwVYI1QvBWWmcz5JeKD09nYoFAAAAACWAILUQoqKiJMnta2ZOnjyp33//3coDAAAA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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAIcCAYAAAAAFrRlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3/0lEQVR4nO3deXwN1+P/8feNrCIuCUmkYk8ttRUtiWrsS22lqC1Ve61NUa2PtlTV+rG01SqqokX105aWqtj5FUEsqaVKW3srKJGgJCTz+8Mj83UlIQkjltfz8biPR+7MmZkzc+cu75wzZ2yGYRgCAAAAANxVTjldAQAAAAB4GBG2AAAAAMAChC0AAAAAsABhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELZwRyIiImSz2cyHs7OzChcurK5du+qvv/7K6eplmc1m08iRI83nqfu3fft2y7c9cuRI2Wy2LC3TunVr2Ww29e/f/463/8knnygiIiLN9CNHjshmsznMS63rP//8c9v11q5dW7Vr185WncaMGaPvv/8+zfT169fLZrNp/fr12VrvjVL3L/Xh5OSk/Pnzq169elq5cuUdr/92Uvfl22+/zfKyN9fdxcVFPj4+euqpp/Taa69p3759GW4vq8cuo/PjVtLb1ssvv6w8efJkaT23s3nzZo0cOVLnz59PM+9Ozr87tWvXLoWGhsput8tms2nq1KmWbu/Gc8Fms8lut6t27dpatmyZJdt7+eWXVaxYMYdp9+I9m1179uwx3ycnT57M9HLpfQZmxc3fK7/++qtGjhypI0eOZGk9W7ZsUdu2bVWoUCG5urrK399fbdq0UVRUVLbqlSqj18wKOf1eze6x3717t7p27arixYvL3d1defLkUZUqVTRhwgSdO3cuy/VI7/3w008/OZwneIgYwB2YM2eOIcmYM2eOERUVZaxdu9YYOXKk4ebmZhQvXty4ePFiTlcxS6Kioozjx4+bz1P3Lzo62vJtjxgxwsjKW/LUqVOGi4uLIcnIly+fcfny5Tva/hNPPGGEhoammX7lyhUjKirKOH36dJq6njlz5rbr3bdvn7Fv375s1cnT09Po0qVLmunx8fFGVFSUER8fn6313ujw4cOGJGPAgAFGVFSUsXHjRuOzzz4zAgMDjVy5chkbNmy4423cyrp16wxJxjfffJPlZW+u+6ZNm4xly5YZo0ePNkqUKGHkypXLmDBhgsMy2T12GZ0ft5Letrp06WJ4enpmaT23M3HiREOScfjw4TTz7uT8u1OVK1c2goKCjJ9++smIiooyTp48aen2JBlt2rQxz4Uvv/zSKF26tGGz2Ywff/zxrm/vjz/+MHbu3Okw7V68Z7Nr4MCBhiRDkjFu3LhML5f6PpszZ062tivJGDFihPn8m2++MSQZ69aty/Q6PvzwQ8PJycmoUaOG8cUXXxgbNmwwvvzyS6NGjRqGk5OT8dFHH2WrboaR8WtmhZx+r2bn2M+cOdNwdnY2nnjiCePjjz821q1bZ6xcudIYM2aMUbx4ceP555/Pcj1SP/dvrEe/fv2y9BsADw7ne5zt8JAqX768qlWrJkmqU6eOkpOT9d577+n7779Xp06d0l3m33//Ve7cue9lNdNlGIauXLkiDw8P1ahRI6erk2lffPGFrl69qqZNm2rZsmVatGiROnbseNe34+bmdkfHpVy5cnexNtflzZv3rr9WRYoUMddZs2ZNBQUFKTQ0VLNnz9azzz57V7d1t91Yd0l67rnnNGjQILVu3VpDhw5V+fLl1aRJE0nWHLubXb16VTab7Z5s63asOP8ya+/everZs6d57O9U6nF1ds74q9vPz8885iEhIQoODlapUqU0depUNW3a9K7UI1XJkiUzXTanz4XExETNnz9flSpV0j///KPPP/9cb7zxRo7VJys2bdqk8PBwPffcc1q8eLHD69++fXu1atVKr776qp588knVrFkzB2t6Z3LyvZqRqKgo9enTRw0aNND3338vNzc3c16DBg00ePBgRUZG5mANb+9++a31KKMbISyR+qV69OhRSf/XdWjPnj1q2LChvLy8VK9ePUlSUlKSRo8erTJlysjNzU0FCxZU165ddebMGYd1rl27VrVr15aPj488PDxUpEgRvfDCC/r333/NMomJiRo1apTKli0rd3d3+fj4qE6dOtq8ebNZJrXb3aeffqqyZcvKzc1Nc+fONeel14wfFxenrl27ytvbW56enmrevLkOHTqUptzq1atVr1495c2bV7lz51bNmjW1Zs2aNOWWLVumypUry83NTcWLF9d///vfLB5h6fPPP5efn5/mzp0rDw8Pff7552nKpHaDXLdunfr06aMCBQrIx8dHrVu31t9//22WK1asmPbt26cNGzaYXZBSuwfdqgvN8ePH1bp1a+XNm1d2u12dO3dO87ql1zXk3Llz6tu3rx577DG5urqqRIkSGj58uBITE80yNptNly5d0ty5c806pa4noy5JW7duVfPmzeXj4yN3d3eVLFlS4eHhmT6mN0r958GpU6ccpn/88cd69tln5evrK09PT1WoUEETJkzQ1atX0+x3+fLlFR0drVq1ail37twqUaKExo0bp5SUlFtuOyEhQY0aNZKfn5+2bduWrfp7eHho9uzZcnFx0cSJE83p6R27Q4cOqX379goICJCbm5v8/PxUr149xcTESLr1+ZG6vi+//FKDBw/WY489Jjc3N/3xxx+37Dq2b98+1atXT56enipYsKD69+/v8F6+1Xl34/t05MiRev311yVJxYsXN+uXus3snn+p2+nfv7++/PJLlS1bVrlz51alSpX0448/3vLYp77vrl27punTp5t1SrV37161bNlS+fPnl7u7uypXrmx+BqW61XHNipIlS6pgwYLmZ7EkLVmyRMHBwcqdO7e8vLzUoEGDNF3Rzpw5o169eikwMND8XK5Zs6ZWr15tlrm5G2FW3rNTp06VzWZLd3/eeOMNubq6OnRTzuxna0a+//57nT17Vj169FCXLl108OBBbdy4MU25v//+W+3atZOXl5fsdrtefPFFxcbGpimXUZe39LpW3igiIkJt27aVdP0fk6nH6VZdFMeOHSubzabp06enCdrOzs765JNPZLPZNG7cuNvW4+bu6rd6zVLP41WrVt32+2/VqlVq2bKlChcuLHd3d5UqVUq9e/d2eA2z817N7O+DYsWKqVmzZoqMjFSVKlXk4eGhMmXKOHwvZufYjxkzRjabTTNnznQIWqlcXV3VokULh+OZ3m+IYsWK6eWXX85wOy+//LI+/vhjcx2pjyNHjmT6s1D6v9d3586datOmjfLnz2/+U8QwDH3yySeqXLmyPDw8lD9/frVp0ybNa7lr1y41a9ZMvr6+cnNzU0BAgJo2baoTJ05kWH/cGi1bsETqF2jBggXNaUlJSWrRooV69+6tN998U9euXVNKSopatmypn3/+WUOHDlVISIiOHj2qESNGqHbt2tq+fbs8PDx05MgRNW3aVLVq1dLnn3+ufPny6a+//lJkZKSSkpKUO3duXbt2TU2aNNHPP/+s8PBw1a1bV9euXdOWLVt07NgxhYSEmHX5/vvv9fPPP+udd96Rv7+/fH19b7k/3bt3V4MGDbRgwQIdP35cb731lmrXrq3du3crX758kqR58+bppZdeUsuWLTV37ly5uLhoxowZatSokVasWGGGyzVr1qhly5YKDg7WwoULlZycrAkTJqT5UX8rmzdv1v79+/X666/Lx8dHL7zwgubPn6/Dhw+rePHiacr36NFDTZs2Nev/+uuvq3Pnzlq7dq0kafHixWrTpo3sdrs++eQTSUr3i+VmrVq1Urt27fTKK69o3759evvtt/Xrr79q69atcnFxSXeZK1euqE6dOvrzzz/17rvvqmLFivr55581duxYxcTEmNeXREVFqW7duqpTp47efvttSdf/O56RFStWqHnz5ipbtqwmT56sIkWK6MiRI9m+7urw4cOSpMcff9xh+p9//qmOHTuqePHicnV11S+//KL3339fv/32W5rAGxsbq06dOmnw4MEaMWKEFi9erGHDhikgIEAvvfRSuts9ceKEnnvuOSUlJSkqKkolSpTIVv0lKSAgQFWrVtXmzZt17dq1DFtEnnvuOfM8LFKkiP755x9t3rzZvK4iM+fHsGHDFBwcrE8//VROTk7y9fVN90eqdL2F5rnnnjM/CzZv3qzRo0fr6NGjWrp0aZb2sUePHjp37pw++ugjLVq0SIUKFZKU8X/JM3v+pVq2bJmio6M1atQo5cmTRxMmTFCrVq104MCBDF+bpk2bKioqSsHBwWrTpo0GDx5szjtw4IBCQkLk6+urDz/8UD4+Ppo3b55efvllnTp1SkOHDnVYV3rHNSvi4uJ09uxZBQUFSZIWLFigTp06qWHDhvrqq6+UmJioCRMmqHbt2lqzZo2eeeYZSVJYWJh27typ999/X48//rjOnz+vnTt36uzZsxluKyvv2c6dO+uNN95QRESERo8ebU5PTk7WvHnz1Lx5cxUoUEBS5j9bb2X27Nlyc3NTp06ddO7cOY0dO1azZ88291eSLl++rPr16+vvv//W2LFj9fjjj2vZsmV68cUXb7v+zGratKnGjBmj//znP/r4449VpUoVSRm3EiYnJ2vdunWqVq2aChcunG6ZwMBAVa1aVWvXrlVycrJy5cqV6fpk5jXLzPffn3/+qeDgYPXo0UN2u11HjhzR5MmT9cwzz2jPnj1ycXHJ8ns1s78PUv3yyy8aPHiw3nzzTfn5+emzzz5T9+7dVapUKT377LPZOvZr165V1apVFRgYmOljmh1vv/22Ll26pG+//dbhHx+FChXK0vWFqVq3bq327dvrlVde0aVLlyRJvXv3VkREhAYOHKjx48fr3LlzGjVqlEJCQvTLL7/Iz89Ply5dUoMGDVS8eHF9/PHH8vPzU2xsrNatW6cLFy7ctf195OR0P0Y82FKvadqyZYtx9epV48KFC8aPP/5oFCxY0PDy8jJiY2MNw7h+nYYk4/PPP3dY/quvvjIkGd99953D9OjoaEOS8cknnxiGYRjffvutIcmIiYnJsC5ffPGFIcmYNWvWLessybDb7ca5c+fSnXdj3/rU/WvVqpVDuU2bNhmSjNGjRxuGYRiXLl0yvL29jebNmzuUS05ONipVqmQ8/fTT5rTq1asbAQEBDtdYJSQkGN7e3pnur92tWzdDkrF//37DMP6v//fbb7/tUC61/n379nWYPmHCBEOSwzUkGV2Tk971CqnXbL322msOZefPn29IMubNm2dOCw0NdVjvp59+akgy/ve//zksO378eEOSsXLlSnNaRtcSpNffvWTJkkbJkiWzfO1a6v6NHz/euHr1qnHlyhUjJibGCA4ONgoVKpTutQWpkpOTjatXrxpffPGFkStXLodzKjQ01JBkbN261WGZcuXKGY0aNUqzL998842xa9cuIyAgwKhVq5Zx9uzZTNd94sSJGZZ58cUXDUnGqVOnHLaXeuz++ecfQ5IxderUW24ro/MjdX3PPvtshvNufJ1SPws++OADh7Lvv/++IcnYuHGjw76ld53Mze/TW10HcifnnyTDz8/PSEhIMKfFxsYaTk5OxtixY9NsK7169uvXz2Fa+/btDTc3N+PYsWMO05s0aWLkzp3bOH/+vGEYtz6ut9pe3759jatXrxpJSUnG/v37jSZNmhiSjI8//thITk42AgICjAoVKhjJycnmchcuXDB8fX2NkJAQc1qePHmM8PDwW26vS5cuRtGiRR2mZeU927p1a6Nw4cIOdfnpp58MScbSpUsNw8jaZ2tGjhw5Yjg5ORnt27c3p4WGhhqenp4Or+306dMNScYPP/zgsHzPnj3TnIs3n1ep0jsmN5+vWbluKDY21pDkUPf03Pw+T68ehpH+tcEZvWaZ/f67WUpKinH16lXj6NGjaY5nVt6rmf19YBiGUbRoUcPd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oMTERHXt2tUsk9nP1oysXr3abNlI73Npy5Yt+vXXX1WuXDn5+PikOyBNep/N7u7uio+PTzM9M/cezIpcuXKpTp06ioyM1IkTJ9L9h9KJEye0Y8cONWnSxAyp7u7uad472a3f7b7/9u7dq19++UURERHq0qWLWSarg7ncLCu/D6yQK1cu1atXT8uXL8/w2N/Mzc0t3eN+J59b2fksvPlzo0CBArLZbPr555/T/WfejdMqVKighQsXyjAM7d69WxERERo1apQ8PDz05ptvZns/HmW0bCFHNWvWTGfPnlVycrKqVauW5lG6dOk0y+TKlUvVq1c3WxN27twp6fp/Sa9cuZLtG0/eyvz58x2eb968WUePHjVHTqpZs6by5cunX3/9Nd39qFatmlxdXeXp6amnn35aixYt0pUrV8z1XbhwIVMDA+zfv19RUVF64YUXtG7dujSPevXq6YcffsjWB3t2/gN483H53//+p2vXrt3yxpT16tXTxYsX09xE84svvjDnZ7VOjz/+uEqWLKnPP/883S+67OjUqZNq166tWbNmmT/WUr/AbvxiMgxDs2bNuuPtubu7a9GiRWrWrJlatGihH3744Y7Wd/nyZfXo0UPXrl1LM+jCrTz++ON66623VKFCBfO9Jd3Zf4jTc/O5s2DBAkkyzx0/Pz+5u7tr9+7dDuXSOy5ZaanNyvlnhXr16mnt2rUOo4Gmbj937tyWDo9eunRpPfbYY1qwYIFD99JLly7pu+++M0covFmRIkXUv39/NWjQwOGcSE9Wz5OuXbvqypUr+uqrrxQREaHg4GCze7SU+c/WjMyePVtOTk76/vvv03xefvnll5JkDmxTp04dXbhwQUuWLHFYR+q5eaNixYrp4MGDDp83Z8+edRj5NiNZ7VkwbNgwGYahvn37Kjk52WFecnKy+vTpI8MwNGzYMIf6nT592mHgpaSkJK1YsSLd+tyqLrf7/kvvc1GSZsyYke62pMzte3Z+H9xOdo99z549lZSUlGb+1atXHb67ixUrluYza+3atbp48WK265aVz8KMNGvWTIZh6K+//kr3WFaoUCHNMjabTZUqVdKUKVOUL1++2773kTFatpCj2rdvr/nz5+u5557Tq6++qqefflouLi46ceKE1q1bp5YtW6pVq1b69NNPtXbtWjVt2lRFihTRlStXzC/I+vXrS5I6dOigOXPm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smXLqnHjxurZs6dmzJghSerVq5eaNWvGSIQAAAAALJOjYevEiRPq0KGD/vnnHxUsWFA1atTQli1bVLRoUUnS0KFDdfnyZfXt21dxcXGqXr26Vq5cKS8vL3MdU6ZMkbOzs9q1a6fLly+rXr16ioiIUK5cucwy8+fP18CBA81RC1u0aKFp06bd250FAAAA8EixGYZh5HQlHgQJCQmy2+2Kj4/n+i3kmGJvLsvpKuS4I+Oa5nQVAADAIy6z2eC+umYLAAAAAB4WhC0AAAAAsABhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELYAAAAAwAKELQAAAACwAGELAAAAACxA2AIAAAAACxC2AAAAAMAChC0AAAAAsABhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELYAAAAAwAKELQAAAACwAGELAAAAACxA2AIAAAAACxC2AAAAAMAChC0AAAAAsABhCwAAAAAsQNgCAAAAAAsQtgAAAADAAoQtAAAAALAAYQsAAAAALEDYAgAAAAALELYAAAAAwAKELQAAAACwAGELAB4ia9euVbdu3VSmTBl5enrqscceU8uWLbVjxw6HcjabLcNHmTJlbrudH3/8US+99JIqVKggFxcX2Wy2dMvFxcWpQ4cOyp8/v0qUKKGZM2emKbN161Z5eHho//792dtpAADuU845XQEAwN0zffp0nT17Vq+++qrKlSunM2fOaNKkSapRo4ZWrFihunXrSpKioqLSLLt161aFh4erVatWt93O4sWLtWXLFj355JNyc3NLE+ZSDR48WLt27dK8efN08OBB9enTR2XLllWtWrUkSdeuXVOvXr00dOhQlS1b9g72HACA+4/NMAwjpyvxIEhISJDdbld8fLzy5s2b09XBI6rYm8tyugo57si4pjldhfva6dOn5evr6zDt4sWLKlWqlMqXL6/Vq1dnuGzXrl01d+5cHTx4UKVKlbrldlJSUuTkdL1zRP/+/fXxxx8rva8TPz8/TZ06VR06dJAkNWzYUFWqVNG4ceMkSePGjVNERIR++eUXubm5ZWlfAQDIKZnNBrRsAcBD5OagJUl58uRRuXLldPz48QyXu3Dhgr755huFhobeNmhJMoPW7Vy5ckWenp4Odbly5Yok6dCh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whYAPETc3Nzk7++vwMBAdezYUZ06dTK7pI0cOVKVK1fW559/rhIlSsjNzU2GYSg+Pl69evWSr6+v8ubNq7p16+qXX34x1/nLL7+oTp068vLyUt68eVW1alVt377dnL9p0yaFhoYqd+7cyp8/vxo1aqS4uDhJ17vR9e/fX4MGDVKBAgXUoEEDSel3lfvtt98UEhIid3d3PfHEE1q/fr3D/F9//VXPPfec8uTJIz8/P4WFhemff/4x51+6dEkvvfSS8uTJo0KFCmnSpEmZPm6zZ89W586d1blzZ82ePTvNfJvNps8++0ytWrVS7ty5FRQUpCVLlki63gpUp04dSVL+/Plls9n08ssvm/t/czfGCxcuqGPHjsqTJ48CAgL00UcfpdnWjcdmz549qlu3rjw8POTj46NevXrp4sWLkq6/pnPnztUPP/xgtkKtX78+3W6E+/btU9OmTZU3b155eXmpVq1a+vPPP295XHx8fOTv768yZcro/fff19WrVx3usRgZGalnnnlG+fLlk4+Pj5o1a+awztR6LFq0SHXq1FHu3LlVqVIlRUVFZbjNs2fP6umnn1aLFi105cqVW9YPAO53hC0AeIh5eHg4tGD98ccf+t///qfvvvvO/CHetGlTxcbG6qefftKOHTtUpUoV1atXT+fOnZMkderUSYULF1Z0dLR27NihN998Uy4uLpKkmJgY1atXT0888YSioqK0ceNGNW/e3OFmyHPnzpWzs7M2bdqkGTNmZFjX119/XYMHD9auXbsUEhKiFi1a6OzZs5Kud60LDQ1V5cqVtX37dkVGRurUqVNq166dw/Lr1q3T4sWLtXLlSq1fv147duy47TH6888/FRUVpXbt2qldu3bavHmzDh06lKbcu+++q3bt2mn37t167rnn1KlTJ507d06BgYH67rvvJEkHDhzQyZMn9cEHH2S4vYkTJ6pixYrauXOnhg0bptdee02rVq1Kt+y///6rxo0bK3/+/IqOjtY333yj1atXq3///pKkIUOGqF27dmaL5smTJxUSEpJmPX/99ZeeffZZubu7a+3atdqxY4e6deuma9eu3fb4SNdbQWfNmiVJ5msvXQ+4gwYNUnR0tNasWSMnJye1atVKKSkpDssPHz5cQ4YMUUxMjB5//HF16NAh3W2fOHFCtWrVUpkyZbRo0SK5u7tnqn4AcN8yAAAPhS5duhgtW7Y0n2/dutXw8fEx2rVrZxiGYYwYMcJwcXExTp8+bZZZs2aNkTdvXuPKlSsO6ypZsqQxY8YMwzAMw8vLy4iIiEh3mx06dDBq1qyZYZ1CQ0ONypUrp5kuyVi8eLFhGIZx+PBhQ5Ixbtw4c/7Vq1eNwoULG+PHjzcMwzDefvtto2HDhg7rOH78uCHJOHDggHHhwgXD1dXVWLhwoTn/7NmzhoeHh/Hqq69mWD/DMIz//Oc/xvPPP28+b9mypTF8+PA09X3rrbfM5xcvXjRsNpuxfPlywzAMY926dYYkIy4uLs3+37j9okWLGo0bN3Yo8+KLLxpNmjRJ99jMnDnTyJ8/v3Hx4kVz/rJlywwnJycjNjbWMIy0r7th/N8x3bVrl2EYhjFs2DCjePHiRlJS0i2Pxc3Le3h4GJ6enoaTk5MhyShWrJhx9uzZDJc7ffq0IcnYs2ePw3o+++wzs8y+ffsMScb+/fsNwzCMOXPmGHa73Thw4IBRpEgRY8CAAUZKSkqm6gkA9ztatgDgIfLjjz8qT548cnd3V3BwsJ599lmHbmpFixZVwYIFzec7duzQxYsX5ePjozx58piPw4cPm93BBg0apB49eqh+/foaN26cQzex1JatW6lWrVqm6h4cHGz+7ezsrGrVqmn//v1mPdetW+dQxzJlyki63jL1559/KikpyWEd3t7eKl269C23mZycrLlz56pz587mtM6dO2vu3LkOrXOSVLFiRfNvT09PeXl56fTp05nat4z2M/V56n7ebP/+/apUqZI8PT3NaTVr1lRKSooOHDiQ6W3GxMSoVq1aDq1SmfH1119r165dWrJkiUqVKqXPPvtM3t7e5vw///xTHTt2VIkSJZQ3b14VL15cknTs2DGH9dx47AoVKiRJDsfu8uXLeuaZZ/T888/rww8/lM1my1I9AeB+dWdXzgIA7it16tTR9OnT5eLiooCAgDQ/rm/80S5JKSkpKlSoUJrroySZw3GPHDlSHTt21LJly7R8+XKNGDFCCxcuVKtWreTh4XHbOt28zaxI/dGdkpKi5s2ba/z48WnKFCpUSL///nu21r9ixQr99ddfevHFFx2mJycna+XKlQ6jAt58LG02W5ructmVUbgwDCPDeVkJJJl5ndITGBiooKAgBQUFKU+ePHrhhRf066+/ytfXV5LUvHlzBQYGatasWQoICFBKSorKly9vDoSS6sZjd+NrmsrNzU3169fXsmXL9Prrr6tw4cLZqi8A3G9o2QKAh4inp6dKlSqlokWLZqoVo0qVKoqNjZWzs7NKlSrl8ChQoIBZ7vHHH9drr72mlStXqnXr1pozZ46k6y0Wa9asuSt137Jli/n3tWvXtGPHDrP1qkqVKtq3b5+KFSuWpp6p++zi4uKwjri4OB08ePCW25w9e7bat2+vmJgYh0enTp3SHSgjI66urpKUpjXsdvuZ+jx1P29Wrlw5xcTEOAzfv2nTJjk5Oenxxx83t3277VasWFE///zzHY1AGRoaqvLly+v999+XdH0gi/379+utt95SvXr1VLZsWXNglKxycnLSl19+qapVq6pu3br6+++/s11PALifELYA4BFWv359BQcH6/nnn9eKFSt05MgRbd68WW+99Za2b9+uy5cvq3///lq/fr2OHj2qTZs2KTo6WmXLlpUkDRs2TNHR0erbt692796t3377TdOnT3cYJTCzPv74Yy1evFi//fab+vXrp7i4OHXr1k2S1K9fP507d04dOnTQtm3bdOjQIa1cuVLdunVTcnKy8uTJo+7du+v111/XmjVrtHfvXr388stycsr4a+7MmTNaunSpunTpovLlyzs8unTpoiVLlujMmTOZqnvRokVls9n0448/6syZM+ZogenZtGmTJkyYoIMHD+rjjz/WN998o1dffTXdsp06dZK7u7u6dOmivXv3at26dRowYIDCwsLk5+cn6fqNknfv3q0DBw7on3/+STdQ9e/fXwkJCWrfvr22b9+u33//XV9++WWWuiJK0uDBgzVjxgz99ddfyp8/v3x8fDRz5kz98ccfWrt2rQYNGpSl9d0oV65cmj9/vipVqqS6desqNjY22+sCgPsFYQsAHmE2m00//fSTnn32WXXr1k2PP/642rdvryNHjsjPz0+5cuXS2bNn9dJLL+nxxx9Xu3bt1KRJE7377ruSrrd4rVy5Ur/88ouefvppBQcH64cffsjW/Z3GjRun8ePHq1KlSvr555/1ww8/mK1rAQEB2rRpk5KTk9WoUSOVL19er776qux2uxmoJk6cqGeffVYtWrRQ/fr19cwzz6hq1aoZbu+LL76Qp6dnutecpQ51/+WXX2aq7o899pjeffddvfnmm/Lz8zNHC0zP4MGDtWPHDj355JN67733NGnSJDVq1Cjdsrlz59aKFSt07tw5PfXUU2rTpo3q1aunadOmmWV69uyp0qVLq1q1aipYsKA2bdqUZj0+Pj5au3atLl68qNDQUFWtWlWzZs3K8jVczZo1U7FixfT+++/LyclJCxcu1I4dO1S+fHm99tprmjhxYpbWdzNnZ2d99dVXeuKJJ1S3bt1sXRMHAPcTm2EYRk5XAgAAAAAeNrRsAQAAAIAFCFsAAAAAYAHCFgAAAABYgLAFAAAAABYgbAEAAACABQhbAAAAAGABwhYAAAAAWICwBQAAAAAWIGwBAAAAgAUIWwAAAABgAcIWAAAAAFiAsAUAAAAAFvj//d39iV9F13YAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -4639,7 +2151,7 @@ }, { "cell_type": "code", - "execution_count": 567, + "execution_count": 115, "metadata": {}, "outputs": [ { @@ -4647,13 +2159,13 @@ "text/plain": [ "scenario\n", "too_broad 8461\n", - "not_performed 3691\n", + "not_performed 3663\n", "appropriate 1511\n", "resistant 1476\n", "Name: count, dtype: int64" ] }, - "execution_count": 567, + "execution_count": 115, "metadata": {}, "output_type": "execute_result" } @@ -4663,62 +2175,14 @@ ] }, { - "cell_type": "code", - "execution_count": 572, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3582" - ] - }, - "execution_count": 572, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "3691 - 109" - ] - }, - { - "cell_type": "code", - "execution_count": 569, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "15030" - ] - }, - "execution_count": 569, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "8461 + 3691 - 109 +1511+1476" - ] - }, - { - "cell_type": "code", - "execution_count": 305, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [ - "final_cohort_with_evaluation.drop(columns = ['ordering_mode', 'culture_description'], inplace=True)" - ] + "source": [] }, { - "cell_type": "code", - "execution_count": 162, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [ - "# final_cohort_with_evaluation.drop(columns = ['prescribed_rank'], inplace=True)" - ] + "source": [] }, { "cell_type": "code", @@ -4738,15 +2202,89 @@ "\n", "# Display the result\n", "\n", - "# Display the result\n", - "not_performed_df.to_csv('../csv_folder/not_performed_df_outpatient.csv', index=False)\n", - "unique_pairs.to_csv('../csv_folder/unique_pairs_outpatient.csv', index=False)\n", - "pair_counts.to_csv('../csv_folder/unique_pair_counts_outpatient.csv', index=False)" + "# # Display the result\n", + "# not_performed_df.to_csv('../csv_folder/not_performed_df_outpatient.csv', index=False)\n", + "# unique_pairs.to_csv('../csv_folder/unique_pairs_outpatient.csv', index=False)\n", + "# pair_counts.to_csv('../csv_folder/unique_pair_counts_outpatient.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [], + "source": [ + "not_performed_df_outpatient = final_cohort_with_evaluation[final_cohort_with_evaluation[\"scenario\"] == \"not_performed\"][[\"final_antibiotic\", \"organism\",\"antibiotic\", \"susceptibility\",\"susceptibility_source\", \"min_tested_susceptible_abx\"]]\n", + "not_performed_df_outpatient.to_csv('../csv_folder/not_performed_df_outpatient.csv', index=False)\n", + "# .loc[319667 :319675]" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "final_antibiotic\n", + "Cephalexin/Cephalothin 43628\n", + "Amoxicillin 4103\n", + "Metronidazole 3089\n", + "Fosfomycin 2702\n", + "Amoxicillin/Clavulanic Acid 2352\n", + "Cefdinir 1648\n", + "Clindamycin 1330\n", + "Azithromycin 1151\n", + "Trimethoprim 1142\n", + "Methenamine 1048\n", + "Vancomycin 992\n", + "Nitrofurantoin 819\n", + "Gentamicin 694\n", + "Doxycycline 603\n", + "Cefpodoxime 570\n", + "Ceftriaxone 510\n", + "Levofloxacin 437\n", + "Piperacillin/Tazobactam 434\n", + "Cefazolin 385\n", + "Ciprofloxacin 361\n", + "Cefadroxil 326\n", + "Erythromycin 255\n", + "Trimethoprim/Sulfamethoxazole 215\n", + "Moxifloxacin 165\n", + "Penicillin 147\n", + "Meropenem 144\n", + "Cefepime 137\n", + "Methenamine Mandelate 125\n", + "Cefoxitin 117\n", + "Linezolid 113\n", + "Ofloxacin 112\n", + "Aztreonam 104\n", + "Ampicillin 81\n", + "Gatifloxacin 75\n", + "Ertapenem 59\n", + "Clarithromycin 56\n", + "Cefuroxime 49\n", + "Minocycline 25\n", + "Dicloxacillin 24\n", + "Erythromycin Ethylsuccinate 18\n", + "Amikacin 11\n", + "Tobramycin 6\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_performed_df_outpatient[\"final_antibiotic\"].value_counts()" ] }, { "cell_type": "code", - "execution_count": 251, + "execution_count": 110, "metadata": {}, "outputs": [ { @@ -4770,107 +2308,721 @@ " \n", " \n", " \n", + " anon_id\n", + " pat_enc_csn_id_coded\n", + " order_proc_id_coded\n", + " order_time_jittered_utc\n", + " result_time_jittered_utc\n", + " medication_time\n", + " medication_name\n", " final_antibiotic\n", " organism\n", + " antibiotic\n", + " susceptibility\n", + " susceptibility_source\n", + " matched_organism\n", + " presciribed_antibiotic_rank\n", + " tested_antibiotic_rank\n", + " scenario\n", + " ranking_diff\n", + " min_susceptible_test_rank\n", + " min_tested_susceptible_abx\n", + " prescribed_rank\n", " \n", " \n", " \n", " \n", - " 105\n", - " Macrobid\n", - " ESCHERICHIA COLI\n", + " 319651\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Tobramycin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 127\n", - " Cephalexin/Cephalothin\n", - " ESCHERICHIA COLI\n", + " 319652\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Ciprofloxacin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 177\n", - " Cipro\n", - " ESCHERICHIA COLI\n", + " 319653\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Piperacillin/Tazobactam\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 4\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 209\n", - " Macrobid\n", - " ENTEROCOCCUS SPECIES\n", + " 319654\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefoxitin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319655\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Ertapenem\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319656\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Nitrofurantoin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319657\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Gentamicin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319658\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Tetracycline\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319659\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Ceftriaxone\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319660\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Amikacin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319661\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Trimethoprim/Sulfamethoxazole\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319662\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Levofloxacin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319663\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Meropenem\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", + " \n", + " \n", + " 319664\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefazolin\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 1\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 240\n", - " Cephalexin/Cephalothin\n", - " KLEBSIELLA PNEUMONIAE\n", + " 319665\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Ceftazidime\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " ...\n", - " ...\n", - " ...\n", + " 319666\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Amoxicillin/Clavulanic Acid\n", + " Susceptible\n", + " original\n", + " CITROBACTER\n", + " 2\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 265456\n", - " Trimethoprim\n", - " ZZZENTEROBACTER AEROGENES\n", + " 319667\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Ampicillin\n", + " Resistant\n", + " inherent_resistance\n", + " CITROBACTER\n", + " 2\n", + " 1\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 265529\n", - " Moxifloxacin\n", - " ENTEROCOCCUS FAECALIS\n", + " 319668\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefazolin\n", + " Resistant\n", + " inherent_resistance\n", + " CITROBACTER\n", + " 2\n", + " 1\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 265535\n", - " Vancomycin\n", - " ENTEROCOCCUS FAECALIS\n", + " 319669\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefotetan\n", + " Resistant\n", + " inherent_resistance\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", - " 266469\n", + " 319670\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefoxitin\n", + " Resistant\n", + " inherent_resistance\n", + " CITROBACTER\n", + " 2\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 1.0\n", " Cefazolin\n", - " SALMONELLA SPECIES\n", + " 2\n", " \n", " \n", - " 267620\n", - " Trimethoprim\n", - " CITROBACTER FREUNDII COMPLEX\n", + " 319671\n", + " JC996371\n", + " 131280236579\n", + " 642444453\n", + " 2019-11-25 19:38:00+00:00\n", + " 2019-11-29 16:30:00+00:00\n", + " 2019-11-26 08:00:00+00:00\n", + " METRONIDAZOLE 0.75 % VAG GEL\n", + " Metronidazole\n", + " CITROBACTER KOSERI\n", + " Cefepime\n", + " Susceptible\n", + " implied\n", + " CITROBACTER\n", + " 2\n", + " 4\n", + " not_performed\n", + " N/A\n", + " 1.0\n", + " Cefazolin\n", + " 2\n", " \n", " \n", "\n", - "

507 rows × 2 columns

\n", "" ], "text/plain": [ - " final_antibiotic organism\n", - "105 Macrobid ESCHERICHIA COLI\n", - "127 Cephalexin/Cephalothin ESCHERICHIA COLI\n", - "177 Cipro ESCHERICHIA COLI\n", - "209 Macrobid ENTEROCOCCUS SPECIES\n", - "240 Cephalexin/Cephalothin KLEBSIELLA PNEUMONIAE\n", - "... ... ...\n", - "265456 Trimethoprim ZZZENTEROBACTER AEROGENES\n", - "265529 Moxifloxacin ENTEROCOCCUS FAECALIS\n", - "265535 Vancomycin ENTEROCOCCUS FAECALIS\n", - "266469 Cefazolin SALMONELLA SPECIES\n", - "267620 Trimethoprim CITROBACTER FREUNDII COMPLEX\n", + " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", + "319651 JC996371 131280236579 642444453 \n", + "319652 JC996371 131280236579 642444453 \n", + "319653 JC996371 131280236579 642444453 \n", + "319654 JC996371 131280236579 642444453 \n", + "319655 JC996371 131280236579 642444453 \n", + "319656 JC996371 131280236579 642444453 \n", + "319657 JC996371 131280236579 642444453 \n", + "319658 JC996371 131280236579 642444453 \n", + "319659 JC996371 131280236579 642444453 \n", + "319660 JC996371 131280236579 642444453 \n", + "319661 JC996371 131280236579 642444453 \n", + "319662 JC996371 131280236579 642444453 \n", + "319663 JC996371 131280236579 642444453 \n", + "319664 JC996371 131280236579 642444453 \n", + "319665 JC996371 131280236579 642444453 \n", + "319666 JC996371 131280236579 642444453 \n", + "319667 JC996371 131280236579 642444453 \n", + "319668 JC996371 131280236579 642444453 \n", + "319669 JC996371 131280236579 642444453 \n", + "319670 JC996371 131280236579 642444453 \n", + "319671 JC996371 131280236579 642444453 \n", + "\n", + " order_time_jittered_utc result_time_jittered_utc \\\n", + "319651 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319652 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319653 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319654 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319655 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319656 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319657 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319658 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319659 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319660 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319661 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319662 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319663 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319664 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319665 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319666 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319667 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319668 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319669 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319670 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "319671 2019-11-25 19:38:00+00:00 2019-11-29 16:30:00+00:00 \n", + "\n", + " medication_time medication_name \\\n", + "319651 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319652 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319653 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319654 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319655 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319656 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319657 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319658 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319659 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319660 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319661 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319662 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319663 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319664 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319665 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319666 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319667 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319668 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319669 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319670 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "319671 2019-11-26 08:00:00+00:00 METRONIDAZOLE 0.75 % VAG GEL \n", + "\n", + " final_antibiotic organism antibiotic \\\n", + "319651 Metronidazole CITROBACTER KOSERI Tobramycin \n", + "319652 Metronidazole CITROBACTER KOSERI Ciprofloxacin \n", + "319653 Metronidazole CITROBACTER KOSERI Piperacillin/Tazobactam \n", + "319654 Metronidazole CITROBACTER KOSERI Cefoxitin \n", + "319655 Metronidazole CITROBACTER KOSERI Ertapenem \n", + "319656 Metronidazole CITROBACTER KOSERI Nitrofurantoin \n", + "319657 Metronidazole CITROBACTER KOSERI Gentamicin \n", + "319658 Metronidazole CITROBACTER KOSERI Tetracycline \n", + "319659 Metronidazole CITROBACTER KOSERI Ceftriaxone \n", + "319660 Metronidazole CITROBACTER KOSERI Amikacin \n", + "319661 Metronidazole CITROBACTER KOSERI Trimethoprim/Sulfamethoxazole \n", + "319662 Metronidazole CITROBACTER KOSERI Levofloxacin \n", + "319663 Metronidazole CITROBACTER KOSERI Meropenem \n", + "319664 Metronidazole CITROBACTER KOSERI Cefazolin \n", + "319665 Metronidazole CITROBACTER KOSERI Ceftazidime \n", + "319666 Metronidazole CITROBACTER KOSERI Amoxicillin/Clavulanic Acid \n", + "319667 Metronidazole CITROBACTER KOSERI Ampicillin \n", + "319668 Metronidazole CITROBACTER KOSERI Cefazolin \n", + "319669 Metronidazole CITROBACTER KOSERI Cefotetan \n", + "319670 Metronidazole CITROBACTER KOSERI Cefoxitin \n", + "319671 Metronidazole CITROBACTER KOSERI Cefepime \n", + "\n", + " susceptibility susceptibility_source matched_organism \\\n", + "319651 Susceptible original CITROBACTER \n", + "319652 Susceptible original CITROBACTER \n", + "319653 Susceptible original CITROBACTER \n", + "319654 Susceptible original CITROBACTER \n", + "319655 Susceptible original CITROBACTER \n", + "319656 Susceptible original CITROBACTER \n", + "319657 Susceptible original CITROBACTER \n", + "319658 Susceptible original CITROBACTER \n", + "319659 Susceptible original CITROBACTER \n", + "319660 Susceptible original CITROBACTER \n", + "319661 Susceptible original CITROBACTER \n", + "319662 Susceptible original CITROBACTER \n", + "319663 Susceptible original CITROBACTER \n", + "319664 Susceptible original CITROBACTER \n", + "319665 Susceptible original CITROBACTER \n", + "319666 Susceptible original CITROBACTER \n", + "319667 Resistant inherent_resistance CITROBACTER \n", + "319668 Resistant inherent_resistance CITROBACTER \n", + "319669 Resistant inherent_resistance CITROBACTER \n", + "319670 Resistant inherent_resistance CITROBACTER \n", + "319671 Susceptible implied CITROBACTER \n", "\n", - "[507 rows x 2 columns]" + " presciribed_antibiotic_rank tested_antibiotic_rank scenario \\\n", + "319651 2 5 not_performed \n", + "319652 2 3 not_performed \n", + "319653 2 4 not_performed \n", + "319654 2 3 not_performed \n", + "319655 2 5 not_performed \n", + "319656 2 2 not_performed \n", + "319657 2 2 not_performed \n", + "319658 2 2 not_performed \n", + "319659 2 3 not_performed \n", + "319660 2 2 not_performed \n", + "319661 2 2 not_performed \n", + "319662 2 3 not_performed \n", + "319663 2 5 not_performed \n", + "319664 2 1 not_performed \n", + "319665 2 3 not_performed \n", + "319666 2 2 not_performed \n", + "319667 2 1 not_performed \n", + "319668 2 1 not_performed \n", + "319669 2 3 not_performed \n", + "319670 2 3 not_performed \n", + "319671 2 4 not_performed \n", + "\n", + " ranking_diff min_susceptible_test_rank min_tested_susceptible_abx \\\n", + "319651 N/A 1.0 Cefazolin \n", + "319652 N/A 1.0 Cefazolin \n", + "319653 N/A 1.0 Cefazolin \n", + "319654 N/A 1.0 Cefazolin \n", + "319655 N/A 1.0 Cefazolin \n", + "319656 N/A 1.0 Cefazolin \n", + "319657 N/A 1.0 Cefazolin \n", + "319658 N/A 1.0 Cefazolin \n", + "319659 N/A 1.0 Cefazolin \n", + "319660 N/A 1.0 Cefazolin \n", + "319661 N/A 1.0 Cefazolin \n", + "319662 N/A 1.0 Cefazolin \n", + "319663 N/A 1.0 Cefazolin \n", + "319664 N/A 1.0 Cefazolin \n", + "319665 N/A 1.0 Cefazolin \n", + "319666 N/A 1.0 Cefazolin \n", + "319667 N/A 1.0 Cefazolin \n", + "319668 N/A 1.0 Cefazolin \n", + "319669 N/A 1.0 Cefazolin \n", + "319670 N/A 1.0 Cefazolin \n", + "319671 N/A 1.0 Cefazolin \n", + "\n", + " prescribed_rank \n", + "319651 2 \n", + "319652 2 \n", + "319653 2 \n", + "319654 2 \n", + "319655 2 \n", + "319656 2 \n", + "319657 2 \n", + "319658 2 \n", + "319659 2 \n", + "319660 2 \n", + "319661 2 \n", + "319662 2 \n", + "319663 2 \n", + "319664 2 \n", + "319665 2 \n", + "319666 2 \n", + "319667 2 \n", + "319668 2 \n", + "319669 2 \n", + "319670 2 \n", + "319671 2 " ] }, - "execution_count": 251, + "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "unique_pairs" + "# final_cohort_with_evaluation.loc[319651 :319671]" ] }, { "cell_type": "code", - "execution_count": 368, + "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Randomly picked group: ('JC696468', 17659201, 336871868, Timestamp('2008-12-10 17:53:00+0000', tz='UTC'), Timestamp('2008-12-12 19:15:00+0000', tz='UTC'), 'Trimethoprim')\n" + "Randomly picked group: ('JC2083138', 131290382366, 682524729, Timestamp('2020-09-27 14:42:00+0000', tz='UTC'), Timestamp('2020-09-29 17:53:00+0000', tz='UTC'), 'Cephalexin/Cephalothin')\n" ] }, { @@ -4899,12 +3051,9 @@ " order_proc_id_coded\n", " order_time_jittered_utc\n", " result_time_jittered_utc\n", - " ordering_mode\n", " medication_time\n", " medication_name\n", - " order_med_id_coded\n", " final_antibiotic\n", - " ...\n", " organism\n", " antibiotic\n", " susceptibility\n", @@ -4915,291 +3064,871 @@ " scenario\n", " ranking_diff\n", " min_susceptible_test_rank\n", + " min_tested_susceptible_abx\n", + " prescribed_rank\n", + " \n", + " \n", + " \n", + " \n", + " 144106\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Levofloxacin\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144107\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ceftriaxone\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144108\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Gentamicin\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144109\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ertapenem\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144110\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ceftazidime\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144111\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Tetracycline\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144112\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Amikacin\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144113\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ciprofloxacin\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144114\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Trimethoprim/Sulfamethoxazole\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 2\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144115\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefazolin\n", + " Resistant\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 1\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144116\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Piperacillin/Tazobactam\n", + " Susceptible\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 4\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", - " \n", - " \n", " \n", - " 268602\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", + " 144117\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", " Nitrofurantoin\n", " Susceptible\n", " original\n", - " KLEBSIELLA\n", - " 2\n", + " ESCHERICHIA COLI\n", + " 1\n", " 2\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268603\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Gentamicin\n", - " Susceptible\n", + " 144118\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Amoxicillin/Clavulanic Acid\n", + " Resistant\n", " original\n", - " KLEBSIELLA\n", - " 2\n", + " ESCHERICHIA COLI\n", + " 1\n", " 2\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268604\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Piperacillin/Tazobactam\n", + " 144119\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Meropenem\n", " Susceptible\n", " original\n", - " KLEBSIELLA\n", - " 2\n", - " 4\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 5\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268605\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Levofloxacin\n", - " Susceptible\n", + " 144120\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ampicillin\n", + " Resistant\n", " original\n", - " KLEBSIELLA\n", - " 2\n", - " 3\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 1\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268606\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Ciprofloxacin\n", + " 144121\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Tobramycin\n", " Susceptible\n", " original\n", - " KLEBSIELLA\n", - " 2\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144122\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefoxitin\n", + " Intermediate\n", + " original\n", + " ESCHERICHIA COLI\n", + " 1\n", " 3\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268607\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Trimethoprim/Sulfamethoxazole\n", + " 144123\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Vancomycin\n", + " Resistant\n", + " inherent_resistance\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 5\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144124\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefepime\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 4\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144125\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Ceftazidime\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144126\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefotetan\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144127\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefoxitin\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144128\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefpodoxime\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144129\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefuroxime\n", + " Resistant\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 3\n", + " not_performed\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", + " \n", + " \n", + " 144130\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefepime\n", " Susceptible\n", - " original\n", - " KLEBSIELLA\n", - " 2\n", - " 2\n", + " implied\n", + " ESCHERICHIA COLI\n", + " 1\n", + " 4\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268608\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Cefazolin\n", + " 144131\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Cefpodoxime\n", " Susceptible\n", - " original\n", - " KLEBSIELLA\n", - " 2\n", + " implied\n", + " ESCHERICHIA COLI\n", " 1\n", + " 3\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", - " 268609\n", - " JC696468\n", - " 17659201\n", - " 336871868\n", - " 2008-12-10 17:53:00+00:00\n", - " 2008-12-12 19:15:00+00:00\n", - " Outpatient\n", - " 2008-12-10 08:00:00+00:00\n", - " TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS\n", - " 336872539\n", - " Trimethoprim\n", - " ...\n", - " KLEBSIELLA PNEUMONIAE\n", - " Ampicillin\n", - " Resistant\n", - " original\n", - " KLEBSIELLA\n", - " 2\n", + " 144132\n", + " JC2083138\n", + " 131290382366\n", + " 682524729\n", + " 2020-09-27 14:42:00+00:00\n", + " 2020-09-29 17:53:00+00:00\n", + " 2020-09-27 07:00:00+00:00\n", + " CEPHALEXIN 500 MG PO CAPS\n", + " Cephalexin/Cephalothin\n", + " ESCHERICHIA COLI\n", + " Doxycycline\n", + " Susceptible\n", + " implied\n", + " ESCHERICHIA COLI\n", " 1\n", + " 2\n", " not_performed\n", - " NaN\n", - " 1.0\n", + " N/A\n", + " 2.0\n", + " Gentamicin\n", + " 1\n", " \n", " \n", "\n", - "

8 rows × 22 columns

\n", "" ], "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "268602 JC696468 17659201 336871868 \n", - "268603 JC696468 17659201 336871868 \n", - "268604 JC696468 17659201 336871868 \n", - "268605 JC696468 17659201 336871868 \n", - "268606 JC696468 17659201 336871868 \n", - "268607 JC696468 17659201 336871868 \n", - "268608 JC696468 17659201 336871868 \n", - "268609 JC696468 17659201 336871868 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "268602 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268603 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268604 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268605 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268606 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268607 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268608 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", - "268609 2008-12-10 17:53:00+00:00 2008-12-12 19:15:00+00:00 Outpatient \n", + " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", + "144106 JC2083138 131290382366 682524729 \n", + "144107 JC2083138 131290382366 682524729 \n", + "144108 JC2083138 131290382366 682524729 \n", + "144109 JC2083138 131290382366 682524729 \n", + "144110 JC2083138 131290382366 682524729 \n", + "144111 JC2083138 131290382366 682524729 \n", + "144112 JC2083138 131290382366 682524729 \n", + "144113 JC2083138 131290382366 682524729 \n", + "144114 JC2083138 131290382366 682524729 \n", + "144115 JC2083138 131290382366 682524729 \n", + "144116 JC2083138 131290382366 682524729 \n", + "144117 JC2083138 131290382366 682524729 \n", + "144118 JC2083138 131290382366 682524729 \n", + "144119 JC2083138 131290382366 682524729 \n", + "144120 JC2083138 131290382366 682524729 \n", + "144121 JC2083138 131290382366 682524729 \n", + "144122 JC2083138 131290382366 682524729 \n", + "144123 JC2083138 131290382366 682524729 \n", + "144124 JC2083138 131290382366 682524729 \n", + "144125 JC2083138 131290382366 682524729 \n", + "144126 JC2083138 131290382366 682524729 \n", + "144127 JC2083138 131290382366 682524729 \n", + "144128 JC2083138 131290382366 682524729 \n", + "144129 JC2083138 131290382366 682524729 \n", + "144130 JC2083138 131290382366 682524729 \n", + "144131 JC2083138 131290382366 682524729 \n", + "144132 JC2083138 131290382366 682524729 \n", "\n", - " medication_time \\\n", - "268602 2008-12-10 08:00:00+00:00 \n", - "268603 2008-12-10 08:00:00+00:00 \n", - "268604 2008-12-10 08:00:00+00:00 \n", - "268605 2008-12-10 08:00:00+00:00 \n", - "268606 2008-12-10 08:00:00+00:00 \n", - "268607 2008-12-10 08:00:00+00:00 \n", - "268608 2008-12-10 08:00:00+00:00 \n", - "268609 2008-12-10 08:00:00+00:00 \n", + " order_time_jittered_utc result_time_jittered_utc \\\n", + "144106 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144107 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144108 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144109 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144110 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144111 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144112 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144113 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144114 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144115 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144116 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144117 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144118 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144119 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144120 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144121 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144122 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144123 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144124 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144125 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144126 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144127 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144128 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144129 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144130 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144131 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", + "144132 2020-09-27 14:42:00+00:00 2020-09-29 17:53:00+00:00 \n", "\n", - " medication_name order_med_id_coded \\\n", - "268602 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268603 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268604 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268605 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268606 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268607 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268608 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", - "268609 TRIMETHOPRIM-SULFAMETHOXAZOLE 160-800 MG PO TABS 336872539 \n", + " medication_time medication_name \\\n", + "144106 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144107 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144108 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144109 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144110 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144111 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144112 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144113 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144114 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144115 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144116 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144117 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144118 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144119 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144120 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144121 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144122 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144123 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144124 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144125 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144126 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144127 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144128 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144129 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144130 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144131 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", + "144132 2020-09-27 07:00:00+00:00 CEPHALEXIN 500 MG PO CAPS \n", "\n", - " final_antibiotic ... organism \\\n", - "268602 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268603 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268604 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268605 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268606 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268607 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268608 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", - "268609 Trimethoprim ... KLEBSIELLA PNEUMONIAE \n", + " final_antibiotic organism \\\n", + "144106 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144107 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144108 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144109 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144110 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144111 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144112 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144113 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144114 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144115 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144116 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144117 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144118 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144119 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144120 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144121 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144122 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144123 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144124 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144125 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144126 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144127 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144128 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144129 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144130 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144131 Cephalexin/Cephalothin ESCHERICHIA COLI \n", + "144132 Cephalexin/Cephalothin ESCHERICHIA COLI \n", "\n", " antibiotic susceptibility susceptibility_source \\\n", - "268602 Nitrofurantoin Susceptible original \n", - "268603 Gentamicin Susceptible original \n", - "268604 Piperacillin/Tazobactam Susceptible original \n", - "268605 Levofloxacin Susceptible original \n", - "268606 Ciprofloxacin Susceptible original \n", - "268607 Trimethoprim/Sulfamethoxazole Susceptible original \n", - "268608 Cefazolin Susceptible original \n", - "268609 Ampicillin Resistant original \n", + "144106 Levofloxacin Susceptible original \n", + "144107 Ceftriaxone Susceptible original \n", + "144108 Gentamicin Susceptible original \n", + "144109 Ertapenem Susceptible original \n", + "144110 Ceftazidime Susceptible original \n", + "144111 Tetracycline Susceptible original \n", + "144112 Amikacin Susceptible original \n", + "144113 Ciprofloxacin Susceptible original \n", + "144114 Trimethoprim/Sulfamethoxazole Susceptible original \n", + "144115 Cefazolin Resistant original \n", + "144116 Piperacillin/Tazobactam Susceptible original \n", + "144117 Nitrofurantoin Susceptible original \n", + "144118 Amoxicillin/Clavulanic Acid Resistant original \n", + "144119 Meropenem Susceptible original \n", + "144120 Ampicillin Resistant original \n", + "144121 Tobramycin Susceptible original \n", + "144122 Cefoxitin Intermediate original \n", + "144123 Vancomycin Resistant inherent_resistance \n", + "144124 Cefepime Resistant implied \n", + "144125 Ceftazidime Resistant implied \n", + "144126 Cefotetan Resistant implied \n", + "144127 Cefoxitin Resistant implied \n", + "144128 Cefpodoxime Resistant implied \n", + "144129 Cefuroxime Resistant implied \n", + "144130 Cefepime Susceptible implied \n", + "144131 Cefpodoxime Susceptible implied \n", + "144132 Doxycycline Susceptible implied \n", "\n", - " matched_organism presciribed_antibiotic_rank tested_antibiotic_rank \\\n", - "268602 KLEBSIELLA 2 2 \n", - "268603 KLEBSIELLA 2 2 \n", - "268604 KLEBSIELLA 2 4 \n", - "268605 KLEBSIELLA 2 3 \n", - "268606 KLEBSIELLA 2 3 \n", - "268607 KLEBSIELLA 2 2 \n", - "268608 KLEBSIELLA 2 1 \n", - "268609 KLEBSIELLA 2 1 \n", + " matched_organism presciribed_antibiotic_rank tested_antibiotic_rank \\\n", + "144106 ESCHERICHIA COLI 1 3 \n", + "144107 ESCHERICHIA COLI 1 3 \n", + "144108 ESCHERICHIA COLI 1 2 \n", + "144109 ESCHERICHIA COLI 1 5 \n", + "144110 ESCHERICHIA COLI 1 3 \n", + "144111 ESCHERICHIA COLI 1 2 \n", + "144112 ESCHERICHIA COLI 1 2 \n", + "144113 ESCHERICHIA COLI 1 3 \n", + "144114 ESCHERICHIA COLI 1 2 \n", + "144115 ESCHERICHIA COLI 1 1 \n", + "144116 ESCHERICHIA COLI 1 4 \n", + "144117 ESCHERICHIA COLI 1 2 \n", + "144118 ESCHERICHIA COLI 1 2 \n", + "144119 ESCHERICHIA COLI 1 5 \n", + "144120 ESCHERICHIA COLI 1 1 \n", + "144121 ESCHERICHIA COLI 1 5 \n", + "144122 ESCHERICHIA COLI 1 3 \n", + "144123 ESCHERICHIA COLI 1 5 \n", + "144124 ESCHERICHIA COLI 1 4 \n", + "144125 ESCHERICHIA COLI 1 3 \n", + "144126 ESCHERICHIA COLI 1 3 \n", + "144127 ESCHERICHIA COLI 1 3 \n", + "144128 ESCHERICHIA COLI 1 3 \n", + "144129 ESCHERICHIA COLI 1 3 \n", + "144130 ESCHERICHIA COLI 1 4 \n", + "144131 ESCHERICHIA COLI 1 3 \n", + "144132 ESCHERICHIA COLI 1 2 \n", "\n", - " scenario ranking_diff min_susceptible_test_rank \n", - "268602 not_performed NaN 1.0 \n", - "268603 not_performed NaN 1.0 \n", - "268604 not_performed NaN 1.0 \n", - "268605 not_performed NaN 1.0 \n", - "268606 not_performed NaN 1.0 \n", - "268607 not_performed NaN 1.0 \n", - "268608 not_performed NaN 1.0 \n", - "268609 not_performed NaN 1.0 \n", + " scenario ranking_diff min_susceptible_test_rank \\\n", + "144106 not_performed N/A 2.0 \n", + "144107 not_performed N/A 2.0 \n", + "144108 not_performed N/A 2.0 \n", + "144109 not_performed N/A 2.0 \n", + "144110 not_performed N/A 2.0 \n", + "144111 not_performed N/A 2.0 \n", + "144112 not_performed N/A 2.0 \n", + "144113 not_performed N/A 2.0 \n", + "144114 not_performed N/A 2.0 \n", + "144115 not_performed N/A 2.0 \n", + "144116 not_performed N/A 2.0 \n", + "144117 not_performed N/A 2.0 \n", + "144118 not_performed N/A 2.0 \n", + "144119 not_performed N/A 2.0 \n", + "144120 not_performed N/A 2.0 \n", + "144121 not_performed N/A 2.0 \n", + "144122 not_performed N/A 2.0 \n", + "144123 not_performed N/A 2.0 \n", + "144124 not_performed N/A 2.0 \n", + "144125 not_performed N/A 2.0 \n", + "144126 not_performed N/A 2.0 \n", + "144127 not_performed N/A 2.0 \n", + "144128 not_performed N/A 2.0 \n", + "144129 not_performed N/A 2.0 \n", + "144130 not_performed N/A 2.0 \n", + "144131 not_performed N/A 2.0 \n", + "144132 not_performed N/A 2.0 \n", "\n", - "[8 rows x 22 columns]" + " min_tested_susceptible_abx prescribed_rank \n", + "144106 Gentamicin 1 \n", + "144107 Gentamicin 1 \n", + "144108 Gentamicin 1 \n", + "144109 Gentamicin 1 \n", + "144110 Gentamicin 1 \n", + "144111 Gentamicin 1 \n", + "144112 Gentamicin 1 \n", + "144113 Gentamicin 1 \n", + "144114 Gentamicin 1 \n", + "144115 Gentamicin 1 \n", + "144116 Gentamicin 1 \n", + "144117 Gentamicin 1 \n", + "144118 Gentamicin 1 \n", + "144119 Gentamicin 1 \n", + "144120 Gentamicin 1 \n", + "144121 Gentamicin 1 \n", + "144122 Gentamicin 1 \n", + "144123 Gentamicin 1 \n", + "144124 Gentamicin 1 \n", + "144125 Gentamicin 1 \n", + "144126 Gentamicin 1 \n", + "144127 Gentamicin 1 \n", + "144128 Gentamicin 1 \n", + "144129 Gentamicin 1 \n", + "144130 Gentamicin 1 \n", + "144131 Gentamicin 1 \n", + "144132 Gentamicin 1 " ] }, - "execution_count": 368, + "execution_count": 100, "metadata": {}, "output_type": "execute_result" } @@ -7358,12 +6087,12 @@ }, { "cell_type": "code", - "execution_count": 461, + "execution_count": 117, "metadata": {}, "outputs": [ { "data": { - "image/png": "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Nq1evTrf6xIfeOABvfnmm5o0aZIkadOmTapXr56ef/55NWnSRK6urjp48KBmz55t849czzzzjM3s5M1u18/jdunbt6927dolSfryyy+1evVq1a9f3+Z01T59+hj/IHbhwgWNHz9eb775ph577DE9/PDDql+/vvz9/WWxWBQVFaVff/1V//vf/4zZ06CgIP3zn/+8828OKK6sAHAP6t+/v1VSoR79+vWzpqam5tl/UlKStVOnTnb3WaVKlVz7ysjIsI4dO7bA42zWrJlpf5MmTTLaDBgwwK7P65FHHjFqvv76a9M2586dswYFBeU7Ll9fX2toaKh1wIABxrZJkyaZ9rlp0ya7PqPCjjnLJ598YrVYLHZ9ri1btrTGxsYWaCyF8eijj+Y49m+//WZX7TvvvGPXe+nVq5f19OnTNttyY8/PK8vs2bPzPba7u7t1+fLlBfo+Xr161frEE08U+L+F1157za7PzV7x8fHW/v37W52cnAo8lrZt21oPHz6ca99jxoyxu6/u3bvn+7vIanX8z+PMmTN2fWey+/rrr432jzzySK7trl+/bn3sscfyHGv271/2/87teQQEBFj3799v15gB3MApqQDuSXPnztXq1av13HPP2VwvlhtXV1d17NhR69ev17fffpvvqYheXl768ccftXjxYtWtWzfXdhaLRY0aNcrzWignJyfNmDFDO3bs0FNPPWWctpZbfw888ICmTJmipUuX5vu+HKl8+fLauXOnOnXqZLrfyclJ//jHP7R//361bNnyjo4tPyNGjNC2bdvyXMQmMDBQM2fO1KZNm2zum3e73HytYtWqVe1eZGfChAn68ssvbW5JkV25cuX08ccf6/vvv7drkaKCGjZsmL777rsc98DL0rBhQ4WGhuY6S5+b0qVL65dfftF3332nBx54IM+27u7uatOmjebOnasJEyYU6Dj58fHx0YIFC3TgwAGba41zU7JkSQ0YMEBbtmzRunXr8vyd8MEHH+j//u//8nx/VatW1fz587V06VK7Tou+XT+P28HV1VXr16/X/Pnz1bFjRwUFBcnT0zPX9q+99pqeeeaZfG9x4+Pjo+eff16HDh3K97sDwJbFar1LV1AAgDvo0qVLOnLkiE6dOqWYmBhdu3ZNXl5eKlWqlEJCQtSgQYMcK/gVxKlTp7Rz505dvHhRycnJ8vHxUbVq1dS4cWOb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ubu7q3Llyho+fLiioqLyrIuNjdXYsWNVvXp149rPfv36KSwsLM86AAAAAHAEh8wwmomPj1dCQoIyMjLybVu5cuUC9//JJ5/ok08+KczQFBQUlOsxvby8TLdv2rRJHTp0UEpKisqWLat69erp6NGj+vDDD7Vy5Upt27ZNgYGBOeqOHDmiVq1a6erVq/L19VX9+vV16tQpzZkzR8uXL1doaKhCQkJy1F24cEHNmzdXeHi4vLy8VK9ePUVGRmrRokVauXKl1q5dq9atWxfq/QMAAACAPRwaGNevX69Zs2bp999/V0xMjF01FotF6enpBT5WmTJl1LFjRzVt2lRNmjTRvHnztHz5crtqBw8erMmTJ9t9rISEBPXu3VspKSkaMWKEPvjgA7m6uio6OlqdO3fW1q1bNWTIEP388882dRkZGerZs6euXr2q7t2765tvvpGXl5eSkpLUv39/rVixQr1799b+/fuNhYOyDBw4UOHh4Xr44Yf1ww8/yN/fX2lpaRozZoz+85//qFevXjp16hTXjQIAAAC4bRx2SuqIESPUrl07/fTTT7p69aqsVqvdj8KYOHGiVq1apTfffFPt2rVTiRIlHPVWcvjiiy90+fJl1alTRzNnzjRuHeLv769FixbJxcVFq1ev1r59+2zqVqxYoSNHjsjf319ff/21MXvp7e2t+fPny9/fX3/++WeO+1fu2bNHv/zyi1xcXLRw4UL5+/tLklxdXfXRRx+pTp06unjxoubMmXPb3jMAAAAAOGSGcdGiRfrss88kSR4eHurSpYsaNWokPz+/HDNnxdGKFSsk3Zj1c3Z2ttlXuXJlPfHEE1q7dq2WLVumhg0b5qjr1auXfHx8bOp8fHzUs2dPffHFF1q6dKm6du1q7MuaKW3btm2OU2ednZ01YMAAvf7661q6dKlGjRrluDcKAAAAANk4JDDOnj1b0o1rA3/99VdVr17dEd3eNps2bdLhw4cVHR0tPz8/NW3aVP3791e5cuVytE1PT9fevXslSS1btjTtr2XLllq7dq127txps33Hjh351n3xxReFqpOkvXv3KiMjI0eIBQAAAABHcEhg/PPPP2WxWDRp0qS7PixK0pYtW2xeL1++XJMnT9asWbM0cOBAm33h4eFKS0uTJFWrVs20v6ztJ06cMLZdv35dERERdtVlHSPrVNesfvKru379us6ePZtrOwAAAAC4FQ45XzQrUD344IOO6O62KV++vN544w3t3r1b0dHRSk5O1tatW9W+fXulpKRo8ODBWrVqlU1N9sV7Spcubdpv1vbsbePi4pSZmWlXXWZmpuLj43McM7+6m495s9TUVMXHx9s8AAAAAMBeDgmMwcHBkqTExERHdHfbDB8+XO+++64aN24sPz8/eXp6qkWLFlq9erW6du0qq9WqUaNG2SzEc+3aNeO5m5ubab/u7u6SpJSUlELV5VZb0LqbTZ06Vb6+vsYjKCgo17YAAAAAcDOHBMZu3bpJkjZu3OiI7u44i8WiadOmSZJOnTqlP//809jn4eFhPL9+/bppfWpqqiTJ09OzUHW51Ra07mbjx49XXFyc8YiMjMy1LQAAAADczCGBccyYMapcubI+/vhjHT161BFd3nG1atWSn5+fJOnkyZPGdntO/zQ7hdTX19dYITa/OicnJ5UsWTLHMfOru/mYN3N3d1fJkiVtHgAAAABgL4cERl9fX61du1aBgYFq2bKlZs2alee1dXerrEVn0tPTjW3BwcHG9tOnT5vWZW2vWbOmsc3Nzc24JUZ+ddmPkb2f/Orc3NxUpUqVfN4VAAAAABSOQwJjtWrV1L59e8XFxSkmJkavvPKKypYtq3LlyqlatWp5Pu6WVVWvXLmiS5cuSZIqVapkbHdxcTHurbh161bT2qztzZo1s9me9fp21TVq1IhbagAAAAC4bRwSGMPDwxUeHm4ELqvVqszMTF26dMnYl9fjbjBz5kxZrVb5+vqqSZMmNvuyrtGcP3++MjIybPZFRERow4YNkqTu3bub1i1ZskQJCQk2+xISErR06VJJUo8ePUzr1q9fb9yaI0tGRoYWLFhgWgcAAAAAjuSQ+zAOGDDAEd3cVocPH9bnn3+ul156SfXq1TO2X7t2TTNnztT7778vSXrttddyrE76/PPPa8aMGQoLC9Po0aP1wQcfyNXVVdHR0erbt6/S09PVvn17NWrUyKaue/fuCgkJ0dGjRzVo0CB988038vLyUlJSkgYNGqTo6GjVr19fXbp0salr2rSp2rZtq/Xr16tfv3764Ycf5O/vr7S0NI0ZM0ZhYWEKCAjQsGHDbs+HBQAAAACSLNbs95AoRrZu3arOnTsbrxMTE5WamiovLy+blUP379+voKAg/fHHH8Z9IsuWLWtcXxgWFqbk5GRJ0pAhQzR37lxZLJYcx9u4caM6duyoa9euGfVZtcHBwdq+fbvKlSuXo+7QoUNq3bq1YmJi5Ovrqxo1aujkyZOKi4uTn5+ffv/9d9WtWzdH3blz59SiRQudPXtWXl5eqlOnjiIiInT58mV5eHhozZo1evTRRwv0mcXHx8vX11dxcXEsgAMAAIACC359dVEPodgJn9ahqIdgyt5s4JBTUotCWlqaoqOjjUfWrSaSk5NttmedQhocHKwpU6aoffv2KlGihI4dO6aDBw/Kz89PPXr00Nq1azVv3jzTsChJbdq00Z49e9SnTx9ZLBYdPHhQgYGBGj16tPbt22caFiWpfv36OnDggIYOHaoSJUro4MGDKlGihJ577jkdOHDANCxKUoUKFbR//36NGjVKgYGBOnjwoCwWi/r06aO9e/cWOCwCAAAAQEEV2xlGFBwzjAAAALgVzDAWHDOMAAAAAIC/JYcsevPNN9/cUn3//v0dMQwAAAAAgAM5JDAOHDgw12v/8mOxWAiMAAAAAHAXckhglG7cexEAAAAA8PfhkMB45syZfNskJSXp2LFjWrhwoVasWKEWLVpozpw58vb2dsQQAAAAAAAO5pDAWKVKFbva1a1bV127dtXixYv1z3/+U6+88oo2bNjgiCEAAAAAABysSFZJfeaZZ9S/f39t3rxZs2fPLoohAAAAAADyUWS31ejVq5esVqvmz59fVEMAAAAAAOShyAJjuXLlJEnHjh0rqiEAAAAAAPJQZIExIiJCkpSWllZUQwAAAAAA5KFIAmNaWpqmT58uSapRo0ZRDAEAAAAAkA+HrJKaNVuYl8zMTMXExGjPnj367LPPdOjQIVksFvXp08cRQwAAAAAAOJhDAmPVqlULXGO1WtW8eXONGjXKEUMAAAAAADiYQ05JtVqtBXqULl1ar7/+ujZs2CB3d3dHDAEAAAAA4GAOmWH8+uuv823j5OQkHx8fVa1aVfXr15ezs7MjDg0AAAAAuE0cEhgHDBjgiG4AAAAAAHeRIrutBgAAAADg7kZgBAAAAACYcsgpqTfbu3evNmzYoEOHDunq1auSJD8/P9WvX19PPPGEGjVqdDsOCwAAAABwIIcGxoMHD2rYsGHatWtXrm3eeOMNNWvWTLNnz9Z9993nyMMDAAAAABzIYaekbtiwQU2bNtWuXbuM22e4uLgoMDBQAQEBcnFxMbbv2LFDTZs21caNGx11eAAAAACAgzkkMF65ckU9e/ZUamqqLBaLhg4dqp07dyopKUnnzp3T+fPnlZycrF27dum5556Ts7OzUlNT1bNnT0VHRztiCAAAAAAAB3NIYPzkk08UFxcnNzc3rV69WnPmzFGTJk3k4vL/znh1dnZW48aNNXv2bK1evVqurq6Ki4vTJ5984oghAAAAAAAczCGBcfXq1bJYLHr55Zf1j3/8I9/2Tz75pF555RVZrVatXr3aEUMAAAAAADiYQwLjmTNnJElPP/203TVZbU+fPu2IIQAAAAAAHMwhgfHatWuSJG9vb7trvLy8JEmpqamOGAIAAAAAwMEcEhjLlSsnSdq/f7/dNVltAwMDHTEEAAAAAICDOSQwtmrVSlarVdOmTVN8fHy+7ePj4/X+++/LYrGoVatWjhgCAAAAAMDBHBIYhw8fLunGtYytW7fW7t27c227a9cutW7d2rh2MasWAAAAAHB3ccm/Sf5atmypF198UbNmzdLBgwf10EMPqW7dumrWrJkCAwNlsVh04cIF7dy5U0eOHDHqXnzxRbVs2dIRQwAAAAAAOJhDAqMk/ec//5GXl5dmzpypzMxMHT582CYcSpLVapUkOTk5aezYsZo2bZqjDg8AAAAAcDCHnJIqSRaLRdOnT9cff/yhF154QTVr1pTVarV51KxZUy+88IL++OMP4xpGAAAAAMDdyWEzjFnq16+vzz//XJJ0/fp1xcTESJJKly4tNzc3Rx8OAAAAAHCbODwwZufm5sZtMwAAAACgmCrUKalr1qxRw4YN1bBhQy1atKhAtQsXLjRqN2zYUJjDAwAAAADugAIHRqvVqlGjRunAgQPy9/dX3759C1Tft29f+fv7648//tCYMWMKengAAAAAwB1S4MD466+/6vjx43JyctLHH39c4ANaLBZ98skncnZ21qFDh7R58+YC9wEAAAAAuP0KHBiXL18uSWrbtq3q1atXqIPWrVtX//jHP2z6AwAAAADcXQocGHft2iWLxaJOnTrd0oE7duwoq9WqHTt23FI/AAAAAIDbo8CB8ezZs5Kk2rVr39KBa9WqJUkKDw+/pX4AAAAAALdHgQNjXFycJMnPz++WDpxVHx8ff0v9AAAAAABujwIHxpIlS0qSYmNjb+nAWfU+Pj631A8AAAAA4PYocGAMCAiQJB05cuSWDhwWFmbTHwAAAADg7lLgwNi0aVNZrVb99NNPt3TgH3/8URaLRU2aNLmlfgAAAAAAt0eBA2P79u0lSevXr9eWLVsKddAtW7Zo3bp1Nv0BAAAAAO4uBQ6M3bt3V7Vq1WS1WtWrVy8dO3asQPXHjx9Xr169ZLFYFBwcrB49ehR0CAAAAACAO6DAgdHFxUUffvihLBaLLl++rMaNG+ujjz5SYmJinnWJiYn6+OOP1bhxY126dEmS9OGHH8rFxaVwIwcAAAAA3FYWq9VqLUzh1KlTNWHCBFksFkmSt7e3WrVqpYYNGyowMFDe3t5KSkrSxYsXtW/fPv3+++9KSkpS1uHefvttTZw40XHvBPmKj4+Xr6+v4uLijNVuAQAAAHsFv766qIdQ7IRP61DUQzBlbzYo9PTe+PHjValSJb344otKSkpSYmKi1q5dq7Vr15q2zwqKXl5e+uyzzzRw4MDCHhoAAAAAcAcU+JTU7P75z3/q+PHjGjNmjMqWLSur1Zrro0yZMho7dqyOHz9OWAQAAACAYuCWLyAsX768ZsyYoRkzZujIkSM6cOCArly5ooSEBPn4+KhMmTJq0KCB6tat64jxAgAAAADuEIeuOFO3bl2CIQAAAAD8TdzSKakAAAAAgL8vAiMAAAAAwBSBEQAAAABgisAIAAAAADBFYAQAAAAAmCIwAgAAAABMERgBAAAAAKYIjAAAAAAAUwRGAAAAAIApAiMAAAAAwBSBEQAAAABgisAIAAAAADBFYAQAAAAAmCIwAgAAAABMERgBAAAAAKYIjAAAAAAAUwRGAAAAAIApAiMAAAAAwBSBEQAAAABgisAIAAAAADBFYAQAAAAAmCIwAgAAAABMERgBAAAAAKYIjAAAAAAAUwRGAAAAAIApAiMAAAAAwBSBEQAAAABgisAIAAAAADBFYAQAAAAAmCIwAgAAAABMERgBAAAAAKYIjAAAAAAAUwRGAAAAAIApAiMAAAAAwBSBEQAAAABgisAIAAAAADBFYAQAAAAAmCq2gfHMmTOaO3eunnvuOTVo0EAuLi6yWCx655138q3dvn27OnfurLJly8rT01N169bVlClTdO3atTzrwsLC1K9fP5UvX14eHh6qXr26xo4dq9jY2DzroqKiNGzYMAUFBcnd3V2VK1fW8OHDFRUVlWddbGysxo4dq+rVq8vDw0Ply5dXv379FBYWlu97BAAAAIBbZbFardaiHkRhjBw5Up988kmO7VOmTNHEiRNzrVu4cKEGDBigjIwMVaxYUQEBATp06JDS0tLUpEkTbd68WV5eXjnqNm3apA4dOiglJUVly5ZVUFCQjh49quTkZFWrVk3btm1TYGBgjrojR46oVatWunr1qnx9fVW9enWdOnVKcXFx8vf3V2hoqEJCQnLUXbhwQc2bN1d4eLi8vLwUEhKiyMhIXb58WZ6enlq7dq1at25doM8sPj5evr6+iouLU8mSJQtUCwAAAAS/vrqoh1DshE/rUNRDMGVvNii2M4xlypRRx44d9fbbb2vNmjXq3r17vjXh4eEaMmSIMjIyNH36dEVGRmrfvn06ceKEateurd27d+vVV1/NUZeQkKDevXsrJSVFI0aMUFRUlPbu3auIiAi1bNlSp0+f1pAhQ3LUZWRkqGfPnrp69aq6d++uc+fOae/evYqKilK3bt0UHR2t3r17KzMzM0ftwIEDFR4erocfflgRERFG3SuvvKKUlBT16tVLSUlJhfvwAAAAAMAOxTYwTpw4UatWrdKbb76pdu3aqUSJEvnWzJgxQ6mpqXryySc1btw4WSwWSVKVKlX01VdfSZLmzJmjixcv2tR98cUXunz5surUqaOZM2fK1dVVkuTv769FixbJxcVFq1ev1r59+2zqVqxYoSNHjsjf319ff/21MXPp7e2t+fPny9/fX3/++ad+/PFHm7o9e/bol19+kYuLixYuXCh/f39Jkqurqz766CPVqVNHFy9e1Jw5cwrxyQEAAACAfYptYCwoq9WqlStXSpLpbGCLFi0UEhKitLS0HAFuxYoVkm7M+jk7O9vsq1y5sp544glJ0rJly0zrevXqJR8fH5t9Pj4+6tmzpyRp6dKlNvuWL18uSWrbtq0qV65ss8/Z2VkDBgwwrQMAAAAAR7pnAmNERITOnz8vSWrZsqVpm6ztO3fuNLalp6dr7969Ba6TpB07dtzWur179yojI8O0DQAAAADcqnsmMJ44cUKS5O7urgoVKpi2qVatmk1b6cZ1j2lpaTb77am7fv26IiIi7KrLfozs/eRXd/36dZ09e9a0jSSlpqYqPj7e5gEAAAAA9rpnAmNMTIwkqVSpUsa1izcrXbq0Tdubn2ftt6cuLi7OWMwmv7rMzEybMJfVT351Nx/zZlOnTpWvr6/xCAoKyrUtAAAAANzsngmMWfdYdHNzy7WNu7u7JCklJSVHXV61t1qXW21B6242fvx4xcXFGY/IyMhc2wIAAADAzVyKegB3ioeHh6Qbp3HmJjU1VZLk6emZoy6rNvvrgtTldTyz2uTk5ALX3czd3d0mXAIAAABAQdwzM4xZp3HGxsbKarWatjE7FdSe0z/N6nx9feXk5GRXnZOTk83NMs1OcTWru/mYAAAAAOBI90xgrFmzpqQbs3Pnzp0zbXP69GmbtpIUHBxs3Hcxa789dW5ubsYtMfKry36M7P3kV+fm5qYqVaqYtgEAAACAW3XPBMbKlSurXLlykqStW7eatsna3qxZM2Obi4uLGjZsWOC67K9vV12jRo1y3BcSAAAAABzlngmMFotFXbt2lSR9+eWXOfZv27ZNR48elaurq55++mmbfd26dZMkzZ8/P8d9DyMiIrRhwwZJUvfu3U3rlixZooSEBJt9CQkJWrp0qSSpR48epnXr1683bs2RJSMjQwsWLDCtAwAAAABHumcCoySNGzdObm5uWrdunWbMmGFcy3j27FkNHjxYkjR06FBjJjLL888/rzJlyigsLEyjR4827pkYHR2tvn37Kj09Xe3bt1ejRo1s6rp3766QkBBFR0dr0KBBSk5OliQlJSVp0KBBio6OVv369dWlSxebuqZNm6pt27ZKT09Xv379FB0dLUlKS0vTqFGjFBYWpoCAAA0bNszhnxEAAAAAZLFYc1sB5i63detWde7c2XidmJio1NRUeXl52awcun//fpv7D37zzTcaNGiQMjMzVbFiRQUEBOjQoUNKS0tTo0aN9Ntvv8nb2zvH8TZu3KiOHTvq2rVrKlu2rCpXrqywsDAlJycrODhY27dvzxE0JenQoUNq3bq1YmJi5Ovrqxo1aujkyZOKi4uTn5+ffv/9d9WtWzdH3blz59SiRQudPXtWXl5eqlOnjiIiInT58mV5eHhozZo1evTRRwv0mcXHx8vX11dxcXE2i+wUR+vXr9fcuXO1c+dOXbx4URaLReXLl1fz5s01bNgwPfLII3b39fzzz2v27NmSpCpVqig8PDzfmpMnT+q///2vfvnlF0VGRio9PV2BgYG6//779eSTT+rFF1/MURMeHq7Q0FDt3btX+/bt0/79+42Z5zNnzig4ONjuMQMAABSF4NdXF/UQip3waR2Kegim7M0GxTYwbt68WY899li+7cz+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P3fY8evXry9JunTpki5fvmzaJiMjQ0ePHpUk1atXz2HHBkBgBACgyMXExOjKlSvGIzMzU9KNU+yyb88+s7NlyxY98cQT+vbbb/XXX38Z29PS0rRx40a1atVKO3fulCS99dZbKlWqVI7jZmZm2vQfExNj7IuLi7PZl5qamqM+LS3Npk32lVhvfk9paWm3/Dnh3tS2bVvj+dq1a03bbN261Vjs5sknn7wj4wLuFZySCgBAEXvwwQd19uzZHNtnzJihGTNmGK8HDBig+fPnS7oxw7hx40Zj9VNPT095e3srLi7OCGdOTk56/fXX9eqrr5oeNyIiItdTVbt06WLz+uuvv9bAgQNttm3dulWPPfaYaX3Dhg1tXm/atOmO3bcPjhUeHp7n/oEDB2rBggWqUqVKvm0Lo1q1anr44YcVGhqqDz/8UH369Mlxuuu0adMkSVWqVFHr1q0dPgbgXkZgBACgGLrvvvv0wQcfaPv27Tp48KCuXPn/2rvz6CiqtA3gT6eT7s5KNhLIzhLCEshOQMiCioggAoIElFUcEUE+xQF1UALisIiCgsuIMKAig2AEBRlhEBSQXYzsEGSTfQkhECBLv98fmarpTldnIyQRn985HkPVvVW3bt26VW9VV92LuHLlClxcXNC8eXMkJSXhL3/5C1q2bFnTRaVaJDs7G0VFReq/Sz7NVphMJri5uVXZes1mMy5fvmxVDoXyNFvh7u4Oo9FolX/atGlISkpCZmYm0tLS8O677yIwMBCXL1/GuHHjsGrVKjWdXq+vsnITEQNGIiKiGleZpzI+Pj4YPXr0ba03LCyszHchS5Oamnpb+an6VeZpdlW43afZbdu2xYcffohnnnkGGRkZyMjIgKenJ3JyctQ2OH78eA75QXQH8B1GIiIiIqr1hg4diq1bt6Jfv34IDAxEXl4e/Pz80L17d6xduxbp6ek1XUSiuxKfMBIRERH9SdyJdwznz59f5tPI232arYiNjVW/ykpE1YNPGImIiIiIiEgTA0YiIiIiIiLSxICRiIiIiIiINDFgJCIiIiIiIk386A0REdEdEvbSypouwh/OsSldaroIRERkgU8YiYiIiIiISBOfMBIRERH9wfFpdsXxaTZR+fAJIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWliwPgH8O233+L++++Ht7c3XF1dERsbi1mzZsFsNtd00YiIiIiI6C7GgLGWmzJlCrp06YK1a9fCy8sLjRs3RmZmJp577jn06NGDQSMREREREd0xDBhrsc2bN+OVV16Bg4MDPv/8cxw5cgSZmZn4+eef4e/vj6+//hpvv/12TReTiIiIiIjuUgwYa7FJkyZBRDB06FD07dtXnR4VFaUGilOmTEFBQUFNFZGIiIiIiO5iDBhrqatXr+I///kPAODJJ5+0md+7d294eHjg0qVLWLduXXUXj4iIiIiI/gQYMNZSu3btQn5+PkwmE2JjY23mOzk5ISEhAQCwdevW6i4eERERERH9CTBgrKUOHz4MAAgJCYGjo6NmmoYNG1qlJSIiIiIiqkrakQjVuOzsbACAl5eX3TTKPCVtSbdu3cKtW7fUf+fk5AAo/rlrbWS+lVfTRfjDqa37srZjW6s4trXKYVurOLa1ymFbqzi2tcphW6u42trWlHKJSKnpGDDWUjdv3gQAGAwGu2mMRiMA4MaNG5rzJ0+ejAkTJthMDw4OroISUm1QZ2ZNl4D+LNjWqLqwrVF1YVuj6lLb21pubi7q1Kljdz4DxlrKZDIBAPLz8+2mUZ4eOjs7a85/+eWX8cILL6j/NpvNuHz5Mnx8fKDT6aqwtHevq1evIjg4GCdPnoSHh0dNF4fuYmxrVF3Y1qi6sK1RdWFbqxwRQW5uLgICAkpNx4Cxlirr56aW8+z9bNVoNKpPIRWenp5VU8A/GQ8PD3ZAVC3Y1qi6sK1RdWFbo+rCtlZxpT1ZVPCjN7VUeHg4AODEiRMoLCzUTPPbb79ZpSUiIiIiIqpKDBhrqZiYGDg5OeHmzZv4+eefbeYXFBRg+/btAIDExMTqLh4REREREf0JMGCspTw8PHD//fcDAObOnWszf8mSJbh69Sp8fHyQmppazaX78zAajRg/frzNT3uJqhrbGlUXtjWqLmxrVF3Y1u4snZT1HVWqMZs2bUJSUhJ0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kgHQn41lwFhQUKDevC1580wrYKzs+VC5iRYfH2/Vfn788Ufx9PS0e+2yYcMG+f777232ZWZmpjRr1kwAyPr16222say2Z6//evrppwWAvPzyy5r5Bg0aJABk0qRJVtPT0tIEgNx3331Wfd/ly5elZ8+emn1/bcOAkapUaQHj3/72NwGKn3poeeihhwSA9O/fX51mNpvVC7AZM2bY5Pn999/VOzRr166tdLmVzqNbt242827duqXeHZs3b57VPGV7H374Yc3lKnfn/P39NS9SlIu5pKSkcpc1Ly9PDAaDhIeHW00/fPiwehd5z549NvnefvttdTvvdMCo9STu119/VS9cLa1Zs0YNMJS7e5amTZumBuyWd8bvVMBorxwvvPCCAMVPiCwpnf0777yjuVzlhseQIUOsppfVdkRK38acnBxxcXERAPLVV1/ZzN+2bZt6RzcrK0udrgQggPbTI8v12lt237591WUrvx6wpDxpyMjIsJquBH6WQY8lJQCeOHGiOu0///mPegf5woULNnmee+45tayVCRhLM27cOJsLJSVw0do+keKLIqD41wSWgaZlnb799ts2+TIzM9U6tbygKM/+Um5qPfLIIzbzzGazGiiU/DWDcmHt5+en2T8pbXvAgAFW05VjpV69emqQWVJlj88nnnhCANg8CSwrYFT6ab1er9kmRf73JO2TTz6pUJlqi9L6VxFRg/wePXpozs/MzBSdTicNGzZUpy1atEgAyPPPP1/ucmid5ydPnlxqP6ilrIv2sgQHB4uLi4t6s02htOuoqCibGw/5+fnq+bxkO2HAWMwyYBT537EXERFhFZhpBYyVOR8eOHBADfB/++03mzyWfW5Frl2Uc8dTTz1lM6+yAeMPP/yg3pQq6ebNm+ovJSzPuUrfHhoaanVOUFy/fl2Cg4NFp9PJsWPHyr191Y3vMFK1Wb16NQBgxIgRmvNHjRpllQ4A9u/fj5MnT8JkMuGpp56yyRMYGIhHH33UJl9lPfvsszbTDAYDhg4dCqD43RgtAwYM0JyulOmpp56CyWSyma9s808//WTzXqLZbMby5cvx7LPPonPnzkhKSkL79u3RsWNH6HQ6HD582OpdqdWrV0NEkJycjBYtWtisa+jQoTAYDJrlrGpKfVlq2bIlTCYTcnJycOnSJXW6Uke9e/dGvXr1bPINGzYMRqMRx48fx8GD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OW/ePJs0+fn5GDJkiDq8x4gRI6qlbEREdzPediMiIrKwbds2PPzwwwgMDET37t3Rtm1bhIaGwt3dHVeuXMGuXbswb9487N69GwBQp04dvP7661bL+PTTT9G6dWtcu3YNffv2xZIlS5CWloaGDRuiqKgIWVlZWLNmDZYuXYrdu3cjLCxMzTtmzBisXbsWa9euxapVq9C8eXMMGzYMbdu2haenJ3Jzc3Hw4EGsX78ey5Ytg8lkuiOBUf/+/TFr1iyYzWY89NBDGDNmDO655x6YTCbs3LkTM2bMwOHDh9GuXTts2rSpytevZcaMGVi7di2ys7MxdOhQbNq0CWlpafD29saBAwcwffp0/PLLLwCKx7Hs3LlztZSLiOhuxoCRiIjovxwdHVGvXj2cPXsWp06dwnvvvYf33nvPbvrw8HAsWrTIKuADgGbNmmH9+vXo0aMHTp48iYyMDGRkZJSrDHq9Ht988w2GDRuGTz75BCdOnMArr7xiN/2d+EIqACQkJGDChAkYP348srOz8fLLL9ukGT16NCIjI6stYAwKCsLatWvRtWtXnD59GvPmzdN80tizZ08sWLCgWspERHS3409SiYiI/stkMuHUqVPYtGkTJkyYgM6dO6Nhw4ZwdXWFXq+Hh4cHmjZtij59+uDzzz/Hnj171J+flhQXF4eDBw/i3Xffxb333gs/Pz84OTmhXr16iIuLw6hRo7B582abYBMAnJ2dsWDBAuzYsQPPPPMMWrRogTp16sDR0RGenp6Ijo7Gk08+iaVLl2L//v13rD5ee+01rFy5Eg888AC8vLxgMBgQFBSEnj17YvXq1Zg+ffodW7c9MTExOHjwICZPnozExER4enrCYDAgICAAPXv2xNdff40vv/wSJpOp2stGRHQ30gkHKyIiIiIiIiINfMJIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkab/B3755AVGHeJmAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4wAAALhCAYAAAAU1yqSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADB8ElEQVR4nOzdd3xUVf7/8fekVwIECC0BEtBQFCUUqaKIioD0Irj0YgFWEFDEwooKiovoKqvgCroCSlNEFqQISugExAChE4KhCCE9IXV+f/DL/WbITTKBwRh5PR+PeThz7/2ce2Yy5sE7595zLFar1SoAAAAAAK7jVNodAAAAAAD8OREYAQAAAACmCIwAAAAAAFMERgAAAACAKQIjAAAAAMAUgREAAAAAYIrACAAAAAAwRWAEAAAAAJgiMAIAAAAATBEYAQAAAACmCIwAgL+k9u3by2KxyGKxaOHChaXdnTJvyJAhxuc5bdq00u4OAOAPQmAEAEknT57UtGnT1LFjR9WsWVPe3t5ydXVV+fLlVb9+fXXp0kVTp07VqlWrlJiYWNrdRRnXq1cvI3wFBgYqNzf3htv65JNPjLYsFouOHDniwJ6iOCdOnNC//vUvPf7442rYsKGqVKkiV1dXVaxYUXXr1lX37t01Y8YMHT16tLS7CgA3xKW0OwAApSkhIUETJkzQwoULZbVaC+xPTExUYmKijhw5ojVr1kiSXFxcNH36dL344ot/dHfxFzFkyBCtXLlSkvTbb7/pxx9/1EMPPXRDbX3xxRfG8xYtWig0NNQhfUTRjh07pldeeUXLli0z/d0RHx+v+Ph4nTx5UqtWrdJLL72kli1bavr06erQoUMp9PjPLzo6WnXq1DFem32uAP54BEYAt624uDi1b99eBw8etNnu7++vevXqydvbW8nJyTp79qzOnz9v7M/OztZvv/32R3cXfyGdOnVSlSpV9Pvvv0u6FvpuJDCePHlS27dvN14PHjzYYX1E4f773/9qxIgRyszMtNlevnx5BQYGqlKlSkpKStKFCxcUGxtr7N+xY4ceeughzZw5Uy+88MIf3W0AuCFckgrgtjV06FCbsNilSxft3r1bly9f1o4dO7Rx40bt2rVL586dU2xsrD777DM99thjcnLiV2dZsGXLFlmtVlmtVg0ZMqS0u2PDxcVFAwYMMF6vXLlSqampJW4n/+iiu7u7+vXr55D+oXBvv/22Bg0aZIRFZ2dnjRw5Ujt27FBcXJx+/fVX/fjjj9q7d69+++03RUdH64MPPlDdunWNNvL/AQoA/uz4Vw+A29KuXbu0evVq4/Xo0aO1evVqNWvWzPT46tWra+jQoVqzZo2OHz+ubt26/VFdxV9U/tHA1NRUrVixokT1VqtVX375pfG6a9euqlixosP6h4LWrVunKVOmGK9r1KihvXv3at68ebrvvvtM/5hUq1YtjR07VlFRUfroo4/k5eX1R3YZAG4agRHAbenbb781nnt6emrWrFl21wYHB6tjx463oFe4ndxzzz1q3Lix8Tr/aKE9wsPDderUKeM1l6PeWvHx8frb3/5m3FdXqVIlbdu2Tffcc49d9S4uLnrmmWe0Y8cOhYSE3MKeAoBjERgB3JaOHTtmPG/YsKF8fX1vyXmsVqu+++47jRw5Ug0bNlSlSpXk6uqqChUqqEmTJho5cqS++eYbZWVl2dXW6tWrNXz4cIWGhqpChQry8PBQUFCQunbtqk8//bTAPVVmpk2bZsyomf9Sze3bt2vw4MG644475OXlpQoVKqhZs2aaPn26kpKS7H7Pe/fu1YwZM9S1a1eFhITIx8dHbm5uCggIUPPmzTVx4kQdOnTIrra2bNli9LV27drG9kOHDmnSpElq3LixKleuLCcnJ5v90o0tq7F582aNHj1aDRo0UIUKFeTp6alatWrpscce09y5c2/ostGi5A95mzdvLtG9sfkDZpUqVfToo4/a7E9ISNBXX32l0aNH67777lPlypXl5uYmX19f1alTR71799Znn31m13fGXoX9vIpS2PexKGlpafr000/VvXt3BQcHy9vbW76+vqpbt64GDx6stWvX3vibKMS///1vXb582Xg9d+5c1apVq8Tt3H333Ro7dmyRx1itVq1atUqDBg1SvXr1VK5cOXl7eys4OFi9evXSF198YdfvjFv184iOjraZmTfPxYsX9eabbyosLEz+/v7y8vJScHCwhg4dqv379xd6zoULF8pisdhMeCPJ5hz5H4Ut67J7926NGTNGTZo0UcWKFeXi4iJPT09VrVpV9913n0aNGqVFixYpJSXFrs8CwP9nBYDbUMeOHa2SrJKsoaGht+QcO3bssDZu3Ng4T1GPxo0bF9nWgQMHrM2aNSu2nZCQEOuuXbuKbOu1114zjh88eLA1IyPDOnbs2CLbrVatmvXXX38tst24uDhrvXr17Hq/FovF+vTTT1szMzOLbHPz5s1GTa1atay5ubnWN954w+rs7FygzVq1atnU3n///ca+BQsWFHme33//3frYY48V2+8aNWpYv//++yLbKomLFy9aXVxcjPZnzJhhV116errVz8/PqBs/frzN/lmzZlnd3d3t+lkEBgZad+zYUew5Bw8ebNS89tprpsdc//Oyx/Xfx+IsX77cWqNGjWLfV4cOHay///67XX0oTmZmprVq1apG23fffbdD2jVz4sQJa8uWLYt9f3feeWexP7db9fM4ffq0TV+sVqv1+++/t1asWLHQ/jo5OVnffvtt0/YWLFhg13e1sO/f1atXrYMGDbK7vlOnTnZ9FgCuYZZUALclf39/4/mJEyf022+/qWbNmg5rf+XKlRo4cKCuXr1qbHNzc1P9+vXl7++vlJQUHTt2TAkJCZJk/NfMTz/9pMcff9xmlK98+fIKDQ2Vh4eHzpw5o9OnT0u6Nmvmgw8+qB9++EGtW7e2q6+jR482RuD8/f115513ytnZWQcPHlR8fLyka5N0PProo4qKilK5cuVM20lLS9Px48eN156enqpXr54qVKggi8Wic+fO6fjx48ZENP/+97916dIlLVu2zK5+StI777yjl19+WdK1SV4aNWokX19fnT17Vjk5OXa3k9+FCxf0wAMP2KxfmNe2t7e3jh8/bkxSEhsbq27duunzzz/XwIEDb+h8+eWNDH7//feSrs2+ac9yLdevB3r95ahHjhxRRkaG8TowMFA1atSQt7e3UlJSdOTIEaP+7NmzeuCBBxQeHq6wsLCbfk+30uzZszVx4kSb5RYCAwNVu3ZtWa1WHTlyxBgF3LRpk1q3bq1t27apcuXKN3XePXv26MKFC8brESNG3FR7hYmKitKDDz5ocy4fHx81aNBAbm5uioqKUlxcnCTp6NGjeuihh/Tdd9/pwQcfvCX9sdemTZvUrVs35eTkyMXFRXfddZfKly+v3377zfidkJubqxdeeEEhISHq1auXTX2NGjX0yCOPKD09XT///LOx/ZFHHjE9X/4JhCRp2LBhWrx4sfHaxcVFd955p6pUqSKr1aorV67o2LFjxu/jm1n3FLgtlWpcBYBS8t5779n8xbldu3bWy5cvO6TtAwcOWD08PIy2K1SoYP3www+tSUlJNsfl5uZa9+3bZx0/fry1YcOGpm2dPXvW5q/2DRo0sK5du9aak5Njc1xERITNCGRgYKA1Pj7etM38Iwj+/v5WSdaaNWtav/nmG5t2s7KyrDNnzrRaLBbj+JdffrnQ93327Flr1apVrVOnTrXu3bvXmp2dXeCY2NhY64QJE2zaXLx4caFt5h8h8fT0tLq4uFhdXFysb775pjU5Odnm2BMnTti8tneE8dFHH7UZ+Zw4caLNZ5ebm2tdvXq1tXr16sZxHh4e1qioqELbLInly5fbfBf37NlTbE3+0VCz0emRI0daO3XqZP3yyy9Nv9c5OTnWNWvWWO+8806jndDQ0ALfq/xKe4Tx+++/t/mcunTpUmDUOycnx7py5UprlSpVjOO6du1qVz+KMmPGDJtzHzp06KbbvF5GRob17rvvNs7h5uZmffvtt62pqanGMVlZWdbPP//cZnS5cuXKhY6k/lEjjP7+/laLxWJ98cUXC/ze2blzp7VmzZrGsUFBQYV+z8xGLouzd+9em5qXX37Z9Hdfdna2ddu2bdZx48ZZ+/TpY1fbAK4hMAK4LV28eNHq5eVl8w8NHx8f67Bhw6zLly+3nj9//obbvvfee402q1SpYj18+HCxNdeHnzxdunQx2mrRooU1JSWl0DZSU1Ntzj1t2jTT4/L/gzCvj2fOnCm03fyXqwYGBhZ6XGZmpjUjI6PQ/fnNmTPHaDMsLKzQ4/L/gzfvsWTJErvOYU9g/Oabb2zaLuqS0KNHj9qE94cfftiufhQnIyPDpt2xY8cWefz1l7HOnj27wDFFfU/yi4uLswYHBxttrV69utBjSzMwpqam2oTAMWPGFNnm0aNHreXKlTOO37Jli119KUzv3r2Ntry9vYsM1jfq+j9iFfWHlG3btlnd3NyMY0eNGmV63B8VGCVZP/7440Lb3LNnj80fiTZt2mRXu/Z4/fXXjeOffPJJu2rM/pgFoHBMegPgtlSlShX961//stmWkpKizz77TL1791a1atVUs2ZN9ejRQ7Nnz7ZZr7EoGzZssJncYd68eapfv36xdT4+PgW2HT58WGvWrJF07XLWxYsXy9vbu9A2vLy89PHHHxuvP/74Y5tL9wrz7rvvKigoqND9zz33nPH87NmzOnv2rOlxrq6ucnNzK/Z8kjRu3DjjnBERETp37pxddV27dlX//v3tOtYeH330kfG8SZMmmjx5cqHH3nHHHXrjjTeM1xs2bLCZPOlGubm52bynr776qsgJTRYtWqTs7GxJBddzzFPU9yS/ihUraurUqcbr7777zt5u/6E+//xz/f7775Kk0NBQvffee0Uef8cdd9i8r3//+983df68c0vXLp909FqsVqtVc+fONV53795dTzzxRKHHt2rVyub/yy+//LLIy9pvtQcffFCjR48udH/Tpk3Vpk0b4/W2bdscdu78E0XZexm+s7Ozw84P3A4IjABuW8OGDdPSpUsLvb8pNjZW3377rZ5//nnddddduvfee4u93+6rr74ynt911103tV7jokWLjMDXtWtXBQcHF1vTvHlz4/6eCxcu2NyXZ6ZcuXLFBrDg4GBVq1bNeF1cm/awWCxq3ry58XrPnj121Y0cOfKmz50nJSVFP/74o/F67NixxQaBoUOHys/PT5KMGXAdIf89iJcuXdK6desKPfa///2v8fzRRx9VQEDATZ27RYsWxnN7fw5/tPzrTT777LNycSl+Cob895hu3rz5ps5/5coV43nez9+RoqKibO7//fvf/15szbhx44zva1pamjZu3Ojwftlr1KhRxR6TPzA64ndIHg8PD+P5gQMHHNYugP/DpDcAbmt9+vRRp06d9Omnn+q///2v9u/fX+io3C+//KK+ffuqa9euWrRokelSHFu3bjWeXz+xQ0nlb+uBBx6wu65Ro0Y6ceKEJGnfvn1FjnCGhYXJ1dW12DZr1qxpTPxiz0hGWlqa1q9fr3379ik6OlpJSUnKyMiw+WwjIyON57GxscW2Kdn+o/Nm7dmzx2byi06dOhVb4+HhoQ4dOmjlypWSpF27djmkL82bN1f9+vUVFRUl6dqSGV27di1w3KFDh2xGsO1ZhuLQoUP66aefdPDgQcXFxSklJcVmgqD09HTjub0/hz/S1atXtXfvXuO1vf8v1KhRQ+XLl1dCQoJ+//13xcbGqkaNGjfUh/wTCNk7il4S+b9H3t7eateuXbE1NWrU0D333KN9+/YZbfTu3dvhfbNHy5Ytiz0m/6RijhwNbdq0qfF83rx5qlevnp5++ml5eno67BzA7Y7ACOC25+Pjo+eee07PPfecLl26pPDwcO3Zs0f79u3Ttm3bCqzZtXr1avXt21dr1qyxGZHKzc01gpqkm55xMv9ahf/5z3+0evVqu+ryB7H868aZqVq1ql1tenl5Gc/T0tIKPS49PV3Tp0/Xhx9+qOTkZLvalmQz42dhypcvrwoVKtjdZnFOnjxpPK9cubLdI3V33323ERjzt3GzBg8ebMyQunr1aiUkJKh8+fI2x3z++efG8woVKqhLly6Ftrdz5079/e9/1+7du+3ugz0/hz/a8ePHbdaK/Pvf/27XCKMkm1mKL1++fMOBMf/PoSRrktor//eoQYMGdl/yevfddxuB0ZHfxZKy5/eIvb9DSqp3796aOnWqzp49q9zcXD3//PP6xz/+oUcffVQPPvigWrVqpUaNGtmsFwmgZAiMAJBP5cqV1aNHD/Xo0UOSlJ2drR9++EFvv/22zYjfunXrtGTJEpvL3uLj421G0G5mKv/c3Fybv8IXteh1UYoLADcyWlLYCGxycrIefvhh7dy5s8Rt5h/BKYzZiO7NyP/5VqpUye66/MfmLTviCE8++aReeukl5ebmKiMjQ19//bXNfWG5ubk2Swc88cQTcnd3N23r66+/1sCBA0u81Ej+YPZnkbeMRJ5NmzbdUDs3E4YrVqxoPHfkzzzPn+27WFIl/T1iz73V9vL09NTq1avVuXNnY4Q8KSlJS5cu1dKlSyVd+5w6d+6s4cOHq23btg47N3C74B5GACiCi4uLOnfurJ9++kkTJ0602ffJJ5/YvL4+9BT2j3l7pKenO2StsD9yvbFJkybZhMVHH31UCxYs0IEDB3T58mVdvXrVWIPRarUWWDuwOI6eaORGLzPM/3O1J+jaq0aNGnrooYeM11988YXN/o0bN9pcMlrY5xcdHa0hQ4YYYbFy5cp66aWXtHHjRp0+fdq4JDXv55C3huefVWpqqkPauZn/F/LfPxwbG+vwCWb+bN/FsqZx48aKiorSG2+8YXqv9+XLl/X555+rXbt26tKlS7FXXgCwRWAEADtYLBbNnDlT9erVM7bt2rXLmK1SUoHLB29mRMPb29vm3sItW7bYhC17H9OmTbvhPpREXFycPv30U+P1rFmztHbtWg0ZMkR33323/P39CwToklyyeivkn7ykJH3Jf0ni9T/zm5U/BG7fvt3mEuf8ATI0NNRm0qD85syZY1yKGRwcrMjISL355pvq0KGDateuLW9vb5vwXdo/h+KCXP7P2MXFRVlZWTf0/0L79u1vuI/5R6WsVqvDJwf6M30Xy+qi9r6+vpo6dapOnjypY8eOaf78+XryySdtJuySpDVr1ujRRx+1+d0NoGgERgCwk7Ozsx5++GHjdWZmps3lcl5eXjaXTeaf9fBG5L+k9WbbutV+/PFHY0Srdu3aev7554utsXcpjVsl/+f722+/FbmURX7X3/voSD169FC5cuWM13kzoqakpOibb74xthc1Orthwwbj+SuvvFLsvZmO/DnkHx2z9/Ms7lLKKlWqGM+zs7MVHR19Q327Ge3atbO5B+7rr792aPv5v0clGfEt7rt4K34eZUG9evU0YsQI/fe//1VsbKx++ukn3X///cb+iIgILVmypBR7CJQtBEYAKIHr76O7fobR++67z3j+888/39S58rd1o/dt/VFiYmKM502bNi12gon09HT98ssvt7hXRWvSpInxPDMz0+7+5L/sNn8bjuDp6am+ffsar//73//KarVq+fLlxkQhTk5OevLJJwttI//PolmzZsWec/v27TfRY1v5//9ISEiw61614tY4rVu3rs29eqXx/0KNGjVsZtH96quvCtxbeTPyf4+io6Nt1n0sTE5Ojs3ssWbfxVvx87iVrr/s3BH3OlosFrVr107r1q3TnXfeaWxfv379TbcN3C4IjABQAvkXand3dy8wa2f+e9BWrFhhs35bSeUfzfz222914cKFG27rVss/emHPbIRff/21zQyWpaFevXo2szvaM+IQFRVlzEop6ZZMoJF/9PD06dMKDw+3uRy1Q4cONksUXK8kP4vc3FybNQ5vVlBQkPE8LS1Np06dKvL4S5cuaceOHUUeY7FYbP6/uv7e4T/KpEmTjOepqal69tlnb7it668YaN68uTEaaLVabdZzLcyGDRtsgqXZd/FW/DxuJW9vb5vX+Zd8uVkeHh569NFHjdcXL150WNvAXx2BEcBtae3atSWe+ODUqVP63//+Z7xu3759gX+QDx8+3Jg+Pi0tza4FuAvz5JNPGiMrV69e1TPPPOPQ2QUdKf99Qjt37ixyds6EhAS9/PLLf0S3ijV06FDj+ccff1zs5Y4vvPCC8bxKlSpFLmtxo9q0aaO6desar9966y399NNPxuviJgvK/7PYtm1bkcfOnj272BBREn5+fjaTjixfvrzI419//XW7Jmt57rnnjOf79+/X+++/f8N9vFHt27dX//79jddff/11ie8RTk9P16BBg/TRRx/ZbPfz87NZt3XGjBlF3gOdnZ2tl156yXh9zz33mI4w3qqfx61Svnx5eXh4GK/tWSqkJL8T8y+RlH/mWwBFIzACuC0tWrRIderU0aRJk4zF0oty8OBBPfroozajYqNGjSpwnL+/v81sql9++aXGjBlT5Gja5cuXNWfOnALbvb299frrrxuvv/nmGw0cOLDYSTESExP14Ycf2vzj9lbLv9D42bNn9eabb5oed+nSJT322GN/mgXix4wZY0w4kp6erq5du+r8+fMFjrNarZoyZYrNWpiTJ0++JYu4S9KgQYOM5+vWrTMmIvH19TWWfClM/nu1Xn/99UI/688//9xY99GR8vfv7bffLvT+2w8++KBAcCpMixYtbC7Vff755/Xuu+8Wu2zImTNnNHnyZL311lt2nac48+bN0x133GG8/sc//qF+/frpzJkzRdbl5ubq888/V/369Y37Uq83efJkY33JCxcuqEePHqahMTMzU0OHDrVZaqeoP8Dcip/HreLs7Ky7777beP3+++8XOwnPE088oZkzZ+rSpUtFHrd//36bkdv8v7MAFI11GAHctlJSUvTuu+/q3Xff1T333KO2bdsqLCxMAQEB8vX1VUpKio4fP64NGzbof//7n82sej169FDPnj1N23311Vf1008/GaNCH330kVavXq0nn3xSLVq0UMWKFZWcnKyjR49qy5YtWrt2rapVq2YzipLn6aef1s6dO41LEpcsWaJ169ZpwIABatOmjXFJ5ZUrV3T48GHt2LFDGzduVGZmplq0aOHgT6xwderU0eOPP67vvvtOkvTaa69p165dGjhwoAIDA5WYmKjw8HDNnz9fV65cUfXq1dW4cWOtXbv2D+ujmerVq+uDDz4wRu0OHjyohg0bavTo0Wrbtq28vLx07NgxffbZZ9q1a5dR16ZNG40fP/6W9WvQoEF67bXXCoye9OnTx2YBdDNjx47VF198IavVqt9++0333nuvxowZo5YtW8rV1VUnT57UkiVLjHsBR4wYYTPD7c169tlnNXfuXKWnpys+Pl4tWrTQc889p1atWsnZ2VnHjh3Tl19+qfDwcHl5eemRRx6xmdCnMJ9++qkOHTqkQ4cOKScnR5MmTdInn3yiJ554QmFhYfL399fVq1f1+++/68CBA/rpp5+Mn1n+keGb4evrq02bNqlz58769ddfJUlLly7Vt99+qw4dOqhjx46qU6eO/P39lZSUpPPnz2v79u1as2ZNsfcl3nPPPXrllVf02muvSZI2b96shg0b6qmnnlKzZs3k6uqqyMhIffLJJzZ/5HriiSdsRievd6t+HrfKgAEDtHv3bknSf/7zH61Zs0aNGjWyuVy1f//+xh/ELly4oClTpuiVV17RAw88oDZt2qhRo0by9/eXxWJRbGysfvzxR/33v/81Rk8DAwP1t7/97Y9/c0BZZQWA29CgQYOskm7oMXDgQGtGRkaR7aemplq7du1qd5u1atUqtK2cnBzrxIkTS9zPFi1amLb32muvGccMHjzYrs/r/vvvN2oWLFhgesy5c+esgYGBxfbLz8/PGh4ebh08eLCx7bXXXjNtc/PmzXZ9Rjfa5zzvv/++1WKx2PW5tm7d2pqQkFCivtyI9u3bFzj3Tz/9ZFftG2+8Ydd76du3r/XUqVM22wpjz88rzyeffFLsud3d3a0rVqwo0ffxypUr1oceeqjE/y+88MILdn1u9kpKSrIOGjTI6uTkVOK+dOzY0Xro0KFC237++eftbqtXr17F/i6yWh3/8zh9+rRd35n8FixYYBx///33F3pcZmam9YEHHiiyr/m/f/n/P7fnUaVKFev+/fvt6jOAa7gkFcBtaf78+VqzZo1Gjhxpc79YYVxdXdWlSxdt2LBBX375ZbGXInp5eWnVqlVasmSJGjRoUOhxFotFYWFhRd4L5eTkpFmzZmnnzp167LHHjMvWCmvvnnvu0fTp07Vs2bJi35cjVatWTbt27VLXrl1N9zs5OemRRx7R/v371bp16z+0b8UZN26ctm/fXuQkNgEBAZo9e7Y2b95ss27erXL9vYp16tSxe5KdqVOn6j//+Y/NkhT5Va1aVXPmzNHXX39t1yRFJTVq1Ch99dVXBdbAy9OkSROFh4cXOkpfmAoVKuiHH37QV199pXvuuafIY93d3dWhQwfNnz9fU6dOLdF5iuPr66vPP/9cBw4csLnXuDDlypXT4MGD9fPPP2v9+vVF/k5499139b///a/I91enTh0tXLhQy5Yts+uy6Fv187gVXF1dtWHDBi1cuFBdunRRYGCgPD09Cz3+hRde0BNPPFHsEje+vr566qmndPDgwWK/OwBsWazWP+kMCgDwB/r99991+PBhnTx5UvHx8bp69aq8vLxUvnx5hYaGqnHjxgVm8CuJkydPateuXbp48aLS0tLk6+ur4OBgNW3a1GamTnskJycrPDxcMTExunLlipydnVW+fHnVrVtXd999d7H/eP0jnDp1Sj///LPOnz8vT09P1ahRQ61atVKNGjVKu2vFio2N1datW3X+/HllZGSocuXKatSokZo1a1Zg2v8/u6tXr2rr1q06dOiQ0tPTVaVKFdWtW1dt2rSRs7PzLT9/VlaWwsPDdfDgQaWkpKhatWq699571bhxY4e0f+7cOW3fvl0XLlxQYmKiPDw8VKlSJd15551q3LhxkUHDkXJzc7V//36dOHFCly5dUmJionx8fFSpUiXdfffdatiw4Q19d06ePKkdO3bo4sWLysnJUeXKldWkSZMb/vxu9c+jtB0/flyHDx9WTEyMkpOT5eTkpAoVKqhBgwZq2rTpH/Z9AP5qCIwAAAAAAFNl60+lAAAAAIA/DIERAAAAAGCKwAgAAAAAMEVgBAAAAACYKnxudvzl5Obm6ty5c/L19b0l06gDAAAAKBusVquSk5NVvXr1ImdyJjDeRs6dO6fAwMDS7gYAAACAP4mzZ8+qZs2ahe4nMN5GfH19JV37UpQrV66UewMAAACgtCQlJSkwMNDICIUhMN5G8i5DLVeuHIERAAAAQLG3qjHpDQAAAADAFIERAAAAAGCKwAgAAACgRPbt26d//OMfevzxxxUaGip/f3+5urrK399frVu31ptvvqkrV66Y1iYkJGjVqlV69dVX1aVLF1WrVk0Wi0UWi0ULFy606/y5ublatGiRHn74YVWuXFnu7u6qUaOG+vbtq59//rnY+vT0dL333ntq27at0Xc/Pz+FhYVp6tSpunDhQpH1ycnJmjFjhpo3by4/Pz95enqqbt26evbZZ3X69Gm73kNZYbFardbS7gT+GElJSfLz81NiYiL3MAIAAOCGjRkzRh999JHx2sPDQ66urkpOTja2VapUSd99951atmxpU7tw4UINHTrUtN0FCxZoyJAhRZ47NTVVPXv21Pr16yVJzs7OKleunBITE5WbmyuLxaJXX31V06ZNM60/c+aMOnbsqOPHjxvb/Pz8lJycrNzcXOP1d999p3bt2hWoP3bsmDp16qRTp05Jktzd3eXp6amEhARJkre3t5YuXarHHnusyPdR2uzNBowwAgAAACiR5s2ba9asWdqxY4fi4+OVnp6upKQkJScna+HChapcubIuX76s7t27KzExsUB91apV1alTJ02dOlUrVqwo0blHjx6t9evXy8nJSW+99Zbi4+N15coVxcXFaerUqbJarfrHP/6hxYsXm9YPGjRIx48fl5ubmz788EMlJycrISFB6enpWrVqlWrUqKHExET17dtX6enpNrXp6enq3LmzTp06pYoVK2rFihVKSUlRfHy8Tp48qa5duyo1NVV9+vSxCaRlmhW3jcTERKska2JiYml3BQAAAH9hP/zwg1WSVZL1yy+/tNmXlZVV4Pi8YxcsWFBku5GRkcaxzz33nOkxgwcPtkqyVq9e3ZqRkWGzLzo62qh/7bXXTOs3btxoHLNu3TqbfR9++KGx79tvvy1Qm5mZaa1Xr55VkrV3795FvpfSZm82YIQRAAAAgEPdd999xvPffvvNZp+Ly42v7LdmzRrj+aRJk0yPmTx5siTp3LlzxmWrec6fP288b9q0qWl98+bNjecpKSk2+77//ntJUr169dStW7cCta6urnruueckSatWrSr0Ps6yhMAIAAAAwKG2bt1qPA8JCXFYu2fOnJF07R7D6tWrmx5Tr149I5SuW7fOZl9wcLDxfO/evab1u3fvliQ5OTnp3nvvNT1/gwYNCu1j/fr1JUlZWVn68ccfCz2urCAwAgAAALhpGRkZio6O1ocffqi//e1vkqS6deuqa9euDj9XTk5Ooftyc3ONyWsiIyNt9lWpUkU9e/aUJM2YMUMfffSRMYqYlZWl7777ToMHD5YkPf/88zYB097z5993/fnLohsfDwYAAABw2/Pw8FBGRkaB7a1bt9bixYvl7u7usHPVrl1b0rVLRc+cOaNatWoVOCYqKsoIjOfOnSuw/9NPP1Vqaqp++OEHjRkzRmPGjLGZJfWuu+7StGnTNGLECNPzR0VF6dChQ7JarbJYLAWOOXjwoPHc7PxlDSOMAAAAAG5Y1apVFRAQIG9vb2PbAw88oDlz5igoKMih58q/VMUbb7xhesybb75pPE9KSiqwv0KFClq5cqWef/55I/DlLckhXQujly9fNh1F7Ny5syTp9OnTprOw5q3vWNT5yxoCIwAAAIAbFh0drQsXLiglJUUXL17Uu+++q19++UXNmzfXq6++6tBzNWrUSP3795d0baRw/Pjxio6OVlZWlk6cOKHRo0dr+fLlcnV1lXTtPsTr7d+/X6GhoXrvvff0zDPPKDIyUqmpqTp58qTmzJmjK1euaMqUKeratasRIvMMHTrUuEx19OjR+vjjj3X58mVlZmZq586deuSRRxQTE1Pk+csai9VqtZZ2J/DHsHdxTgAAAOBm7N69Wy1btlRubq5Wr16tLl26FHl83kjfggULNGTIkCKPTUlJUc+ePbVhwwbT/S1btlS9evX0xRdfqH79+jp8+LCxLzk5WfXq1dPFixf16quv6h//+EeB+k2bNqljx46yWq369NNPNXz4cJv9R44c0WOPPabTp0+bnn/MmDH68ccfdfjwYT399NOaO3duke+ntNibDcp+5AUAAADwp9K8eXO1adNGkjRv3jyHtu3j46N169Zp6dKl6tGjh+644w7VqlVL999/vz788EP9/PPPunDhgiTpjjvusKn98ssvdfHiRUnXJrUx06FDB2N21BUrVhTYHxoaql9//VWzZ89Whw4dVKdOHdWtW1fdunXT999/rzlz5ig6Otr0/GURk94AAAAAcLgaNWpIkk6cOOHwtp2cnNSnTx/16dOnwL68y0OlaxPv5Jc32li5cuUiR9Xq1aunffv2FTqK6OPjo/Hjx2v8+PEF9u3atUtpaWmm5y+LGGEEAAAA4HCnTp2SJPn6+v6h5122bJmSkpLk4uKiAQMG2OzLu6fw8uXLSk1NLbSNvFHIG+n7p59+KunaeozNmjUrcf2fDYERAAAAgN1ycnJU3DQomzZt0u7duyVJ7du3/wN6dc358+f1wgsvSJKGDx9ujHLmadKkiSTJarXqk08+MW3j4MGDCg8Pl3TtfsiS2Lx5sz777DNJcviEP6WFwAgAAADAbmfPntW9996rTz75RKdOnbIJj2fPntXMmTPVrVs3Wa1WVaxY0fSyzcuXL9s88uQtaZH3yLu0M781a9bo/fff18mTJ42lL1JTU7VkyRLdd999io2NVWhoqGbNmlWgtnfv3qpWrZok6aWXXtKbb76puLg4o42vvvpKDz/8sLKzs+Xm5qYxY8YUaOP999/X4sWLjVFISbpw4YLefvttdenSRbm5uRowYIAxm2tZxyyptxFmSQUAAMDNio6OVp06dYzXbm5uKleunNLT020u86xTp45WrFhhTCCTn9mC92Zee+01TZs2zWbbnDlzjBDq4uIiX19fJSQkGMG1RYsWWrVqlQICAkzb3L17t7p06aJLly4Z23x9fZWSkmK04eXlpc8//1y9e/cu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BoxERBqys7OR3yveGzduxM6dOwEAjRs3NprXp08fAMCWLVs0PyyTlpaGr776CgAQHR2NsmXLGs3v3bs3AGDp0qU4c+aMSf4LFy6oQwG1atXK6KvJWVlZeZYbgNFwHrGxsfmmJyIioqcTA0YiIg3nz59HeHg4vvnmG5w6dcooeDx//jwmTJiAF154ASICDw8P9Z1ARffu3VG3bl0AQJcuXbBu3Tr166dHjx5FXFwcLl68CAsLC4wbN85k/W+99RYCAwORnp6OuLg4bN++XZ23e/dutGnTBmlpabC3tzf5SuuECRPQo0cPrF27Frdu3VKnZ2VlYceOHejQoYM6fmO3bt341WUiIiIyy6qkC0BEVFrt378fAwYMAADY2NjAxcUF9+7dw927d9U0FSpUwLJly0yGyLGwsMDKlSvRrFkzHD58GM8//zzs7e1hY2ODlJQUAIC1tTW++OILNG3a1GTdjo6O+PXXX/Hss8/iwIEDqF+/PpycnAAAqampAAAnJycsWrTI5MM4WVlZWLhwIRYuXKims7OzQ0pKCjIzM9V0Xbp0wZw5cx60moiIiOgJxoCRiEiDj48PlixZgsTEROzYsQOXLl3C9evXYWlpiYCAAISFheGFF15At27dzA5JUa5cOezduxczZszA4sWLcfz4cdy7dw9BQUFo2rQphgwZgtDQULNlqFq1Kg4dOoTJkydjxYoVOHXqFLKzsxESEoIWLVqodyFz69u3Lzw9PZGYmIjDhw/j6tWrSE5OhpOTEwICAlC/fn307NlT/cIrERERkTkch/EpwnEYnzyldVwfIiIiejLxfK3wSuv5GsdhJCIiIiIiogfCgJGIiIiIiIg0MWAkIiIiIiIiTQwYiYiIiIiISBMDRiIiIiIiItLEgJGIiIiIiIg0cRxGInrq8JPghVdaPwlOREREDxfvMBIREREREZEmBoxERERERESkiQEjERERERERaWLASERERERERJoYMBIREREREZEmBoxERERERESkiQEjERERERERaWLASERERERERJoYMBIREREREZEmBoxERERERESkiQEjERERERERaWLASERERERERJoYMBIREREREZEmBoxERERERESkiQEjERFRCUpLS8PatWsxduxYdOjQAYGBgdDpdNDpdEhISMgzb0JCgpo2r39JSUma+S9fvowlS5Zg+PDhaN68OTw9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enSK0taKU1JSEv78808ABbu7qPD19cWqVasQFxeHP/74A6GhoXB1dUVmZibS0tIAQB1yo2zZssVebqKnGQNGIiKix1DNmjUxadIkbNu2DQcOHMD169dx69YtODg4oHr16oiJicF//vMf1KxZs6SLSqSaO3cuRAQ2Njbo2bNnofLGxMTg8OHDmDRpEtasWYPz588DyPkttG3bFm+++SaDRaKHQCf5vQRBT4zbt2/D1dUVKSkpmmMYlbSg4WtKugiPnTMTWpd0ER5LbGuFx7ZGREQAj6FFUVqPoQWNDfgOIxEREREREWliwEhERERERESaGDASERERERGRJgaMREREREREpIkBIxEREREREWnisBpEREQPCb8mWHil9WuCRERPKwaMRERERI85XpwoPF6cICoYPpJKREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjERERERERKSJASMRERERERFpYsBIREREREREmhgwEhERERERkSYGjI+BX375Bc8++yw8PDzg6OiIiIgITJ8+HXq9vqSLRkRERERETzAGjKXchAkT0Lp1a2zcuBHu7u6oXLky9u/fjzfeeAPt27dn0EhERERERA8NA8ZSbNu2bXj//fdhYWGBH374ASdPnsT+/fuxd+9eeHt74+eff8bkyZNLuphERERERPSEYsBYio0dOxYign79+qFr167q9LCwMDVQnDBhAjIzM0uqiERERERE9ARjwFhK3b59G7/99hsA4OWXXzaZ37lzZ7i4uODGjRvYtGnToy4eERERERE9BRgwllL79u1DRkYG7OzsEBERYTLf2toaUVFRAIAdO3Y86uIREREREdFTgAFjKXXixAkAQEBAAKysrDTTVKxY0SgtERERERFRcdKORKjEJScnAwDc3d3NplHmKWlzS09PR3p6uvr/KSkpAHIedy2N9OlpJV2Ex05p3ZelHdta4bGtFQ3bWuGxrRUN21rhsa0VDdta4ZXWtqaUS0TyTMeAsZS6f/8+AMDGxsZsGltbWwDAvXv3NOePHz8eo0ePNpnu7+9fDCWk0sB1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", "text/plain": [ "
" ] @@ -7378,8 +6107,7 @@ "scenario_counts = results[\"scenario\"].value_counts()\n", "\n", "# 2) Append your extra row\n", - "scenario_counts.loc[\"Negative\"] = find_unique_orders(negative_cohort)\n", - "\n", + "scenario_counts.loc[\"Negative\"] = len(negative_cohort)\n", "# 3) Plot in one step\n", "ax = scenario_counts.plot(\n", " kind='bar',\n", @@ -7448,22 +6176,22 @@ }, { "cell_type": "code", - "execution_count": 477, + "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ranking_diff\n", - "1.0 5481\n", - "2.0 2718\n", - "3.0 153\n", - "4.0 90\n", - "5.0 19\n", + "1 5481\n", + "2 2718\n", + "3 153\n", + "4 90\n", + "5 19\n", "Name: count, dtype: int64" ] }, - "execution_count": 477, + "execution_count": 118, "metadata": {}, "output_type": "execute_result" } @@ -7832,12 +6560,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 119, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABGMAAAQfCAYAAAC3TSS+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD40ElEQVR4nOzdeZxOdeP/8ffFmBlmM7YYMRMzk4iUpaKMpQgtirSQJaPIncKdEr8sWcpdobTcIUtuVCopRGXGzthCVEZSIq0YM5ZmzOf3h8d1vtc1c13X7GfMeD0fj+thnPM553zOuc51lvc553McxhgjAAAAAAAA2KJMcVcAAAAAAADgUkIYAwAAAAAAYCPCGAAAAAAAABsRxgAAAAAAANiIMAYAAAAAAMBGhDEAAAAAAAA2IowBAAAAAACwEWEMAAAAAACAjQhjAAAAAAAAbFSiwpioqCg5HA716dOnyKbRp08fORwORUVFFdk0cHGYM2eOHA6HHA6HDh06VNzVAVAKHTp0yNrOzJkzp7irY7uc5n/MmDFW/4Jo3bq1HA6HWrduXaDxFIbExERrnhITE4u7Opccu/btfM+5w3F18Sroenqp78NyKzfnqGfOnNHYsWN1zTXXKCgoyFquTz75pFu5n3/+WY8++qjq1q2rwMBAq9ySJUuKdB5QPAo1jFm/fr21wjgcDq1du7YwR1/qnT9/Xh988IF69uyp2NhYhYWFqXz58oqKilLHjh01ffp0nThxoririVLM9cQov5+iDEsLk3PHmdMnPweQl8py9LUMAwICVKNGDbVv315vvvmmzpw5U9zVLVXGjx9vLeuQkBCdPn26uKuEi4TryZenT3BwsGJjY9W7d29CBMCFa5CX9RMUFKSoqCjdddddmjdvnv7555/iri7ywTVccv2ULVtWFStWVGRkpG644QYNGjRI7777rlJTUwtluunp6brllls0ZswY7d692+s+++eff1aTJk309ttv6+DBgzp37lyhTB8Xr0INY+bNm+fz/6VBUd2ds379ejVq1Ejdu3fX//73PyUnJyslJUVnz57VTz/9pM8//1yPP/64oqOjNWPGjEKdtjcX05XG3CqtV6rsuCsMKEz//POPjh07pi+++EKPPfaYGjVqpOTk5OKuVqnx7rvvWn+npqbqo48+snX6zu3smDFjbJ1ucSlNV4fT0tKUnJysefPmqU2bNurXr5/Onz9f3NUCLmqnT5/WTz/9pKVLl6p3795q1qyZfv755+KuFgpJZmamTp48qZ9//llbtmzRG2+8oV69eikiIkJDhw5VWlpagcb/wQcfaOPGjZIu3C2WkJCgPXv2aM+ePXrmmWescuPHj9eff/4pPz8/vfjii9q0aZNVrl27dgWqAy5OfoU1onPnzumDDz6QJAUHBys1NVUffPCBXnvtNZUvX76wJlMqLV68WD179rTSzzZt2ujBBx9UvXr1FBAQoJ9++kmffvqpFixYoL/++kuPPPKIvv/+e7300kvFXPOSrU+fPoQbWTz22GPq1q2bx35bt27Vww8/LEkaOHCgHnvsMY/lwsPDi6x+ReGuu+7S+PHjvfb39/fP8zgvteUYERGhlStXunU7c+aMvv/+e82YMUNr167VgQMH1LlzZ+3Zs0cBAQHFVNPSYfPmzdq/f7+k/9vfzps3Tz179izmmmUXFRUlY0yRT+diCt9bt25tyzznRtZtjDFGf//9tzZt2qQpU6bo999/1zvvvKPLL79cY8eOLcaaAheX8ePH66677rL+f+zYMX3zzTeaPHmyfv31V+3evVt33nmntm/frrJlyxZjTYuWXdvw4pD1+O/06dM6ceKE9u3bpzVr1uizzz7TqVOnNGXKFC1btkyfffaZYmJiPI4rp0civ/zyS0lS9erVNXPmTK/rjLNcly5dNHz48HzMFUqaQgtjPvnkE+sRmmnTpqlfv35KSUnRJ598ovvvv7+wJlPq7Ny5Uz169NA///wjf39/zZ07N9vyatasmbp166Zhw4bp9ttv1+HDh/Xyyy+rbt26GjhwYDHVHKVRtWrVVK1aNY/9/vzzT7dyV199tV3VKlIVK1Ys9Hm51JZjuXLlPM5Hs2bN9OCDD6pdu3ZKTExUcnKylixZovvuu68Yall6OO86rVKlip566ik9/fTT+uqrr3TkyBHVrFmzmGuHi4m3bUxcXJzuvPNONW3aVGfOnNHUqVM1atQolStXrhhqCVx8atas6fbbufrqq3XLLbfo4Ycf1o033qh9+/Zp165dWrJkibp27VqMNUV+eTv+a9++vZ588kn9/PPPio+P1xdffKH9+/fr9ttv15YtW1SxYsU8T+vIkSOSpDp16vgM75zlYmNj8zwNlEyF9pjS3LlzJUn169fXww8/rPr160sqnY8qFZbMzEw99NBD1nOnnoIYV40aNdLq1asVHBwsSRo2bBi3SAK4qJUpU0b//ve/rf9v2bKlGGtT8v3zzz967733JEndu3dXr169VLZsWWVmZup///tfMdcOJUn9+vXVuXNnSVJKSoq+/fbbYq4RcPELDQ11e6zkiy++KMbaoCjVrl1bK1assLaT+/fvz/ejuc6nH3IKvJ3nhATjl45CCWN+//13rVq1SpKs26R79OghSVq1apV+++23XI1n+fLl6tixo6pWraoKFSooNjZWQ4cO1dGjR3McNrdvZMhvmyLO9lN++uknSReCk6yNP+W1bZVPP/1Ue/fulSR17tw5V3cQRUdHa/To0ZIuPAYwbdq0bGVy23K9tzcOOIdfs2aNJGnNmjU5Nmqatf2AL7/8Unfeeadq1KihwMBA1alTR//617/0yy+/+KzTwYMH9fLLL+uOO+5QVFSUypcvr/LlyysyMlL33XefPv/8c4/DOZ/nb9OmjdWtTZs22ert+qx/bt+4YIzR4sWL1bVrV9WqVUuBgYEKDw9X8+bN9fzzz/tsVDnrd3HixAk999xzatCggYKCglSxYkW1atXK60lUUax3Re2PP/7QqFGjdO2116pixYoKDAxUVFSUHnroIa1fv97nsFnbxtm6daseeOABa7nXqlVLffr0uSROGgqyHJ0OHTqkIUOGqEGDBgoJCVGFChUUExOjRx99VHv27CniOfg/rtuLs2fPeiyTdRuyevVq3XvvvapVq5bKlSvncXu2fv16PfTQQ4qKilJgYKAqVqyoa6+9VqNGjdIff/zhs06//vqr3njjDXXr1k0xMTEKCgpSQECAatasqbvuukvvvfeeMjMzc5y38+fP6/XXX9f111+v0NBQhYWF6brrrtNLL71UJA3vffrpp/r7778lXdjfVq9eXW3btpWUu4sfWdsCO3LkiIYOHaro6GiVL19elStXVocOHbRixQqPwzt/o05jx4712fh0XttaOXHihEaPHq0GDRooODhYlSpVUuvWrXMMmnLbxll+1hmHw6ErrrjC+n/fvn2zzbPrAXpejjOWL1+unj17qk6dOgoKClJYWJgaNGig+++/Xx9++GGRN3yd028z637y3Llzmjp1qm644QZVqVLFa7tBSUlJ6t+/v2JjYxUcHKygoCDVq1dPgwYNyrHtqPweB+TF4cOHVa9ePatBY08n1GfOnNGECROsN59UrlxZLVu21IwZM3K1bXDKz7b8jz/+sJb7f//7X49l4uPjrTKPP/64xzJTp06Vw+GQn5+fUlJSrO6efpdffPGF7rjjDlWvXl0BAQG64oorNHDgwByP2/LKuc2JjY1VhQoVVLVqVXXq1MnrNufVV1+16pqbML9r165yOByqWLFikf1+rrvuOuvvw4cPeyzzzz//6NNPP9W//vUvNWvWTOHh4SpXrpwqV66s66+/XmPGjHG7U9aTrMdE3333nfr376+oqCgFBATosssu0913363NmzcXaH5OnDihli1byuFwqFy5cm5tkuX1jXhnz57Vf/7zH1133XUKCQlRSEiImjdvrunTpysjIyPHuqxbt0733HOPLrvsMuv8YcCAATpw4IAk+9uzLFu2rObMmaMKFSpIkmbMmOHxe/PUtqPrsvN2ThUVFeW2nXXKum/11KxCYZ6f/Prrr3r66aet40VP+6/iPB/K6tSpU3r55ZfVtm1ba5sVERGh66+/Xk8//bR27NjhddiCzId0IZR7/PHHdfXVVys4OFj+/v6KiIhQ48aN9fDDD+u9997L2/GfKQSvvPKKkWQcDof56aefjDHGHDp0yDgcDiPJvPzyyzmO44knnjCSPH6qVatmtm3bZiIjI40k07t372zDjx492irvS0JCglUuISEhW//evXsbSSYyMtKte1xcnNf6OT9xcXE5zqeru+++2xp21apVuR7uxIkTpnz58kaSqVy5ssnMzMzVPGQ1e/Zsa/o//vhjtuF9fbKO29l99OjRZsyYMV6HCw0NNWvWrPFYn4MHD+Y4XUmmZ8+eJj093W3YH3/8MVfDzp49O8f5d/X777+bli1b+hznZZddZjZv3uxxeNfv4ttvvzVRUVFexzNo0KBsw+dnvXOdr9GjR3usV364/na8jXflypUmNDTUZ30HDRpkzp8/73F419/4rFmzjJ+fn8dxBAQEmEWLFhVofnxtT4qSHcvRGGPmzp1rAgICvA5ftmxZM3HixALNi3MZ5rSt+eyzz6zpTpo0yWMZ12Xy7LPP+tzmnD9/3gwaNMjn8gkLC/O6Xc3IyDBlypTJ8bd16623mlOnTnmdr5SUFJ/bhyZNmpgdO3Z43P7k15133mkkmbp161rd5s6da01j+/btPod3blPi4uLMunXrTOXKlb3W/z//+U+24Z3fua+P62/Kddvsaf5d990HDx40devW9Trebt26Zdv2e5ovTwqyzuQ0v1l/yzkdZxhjzJ9//mnatWuX43jzs87kZhvj1K1bN6vsr7/+mq2/6/5k69atpnHjxj7nPT093QwcONDnPJUrV868/fbbHutTkOMAT3X2tG//7rvvTK1atYwkEx4ebjZt2pStzJEjR0y9evW8Tv+2224zK1euzPF7Lsi2vH79+kaSue+++zyO2/W30qBBA49l7rrrLmtb5Crr7/Lpp5/2Wr+qVauaffv2eRx/brgeB23dutVUq1bN67SeeOKJbMP//fffJjAw0Egyjz76qM9p/fHHH8bf3z9XZT1xXXd8/fa+/fZbq9ydd97psUxujqUrV65s1q9f73U6rscpH374oalQoYLH8ZQtW9brMVFO26Nff/3VNGrUyEgygYGB5pNPPnHrn5dt+LFjx8w111zjdX7vuOMOn8ct48ePt84ds35CQkLMypUrc9zW58R1fvJy/PfII49Yw/3vf//L1t/TMWVuzk0iIyPd1jtvn6x1Lczzk02bNpkqVapkG951fSnu8yFXX3zxhcf6Zv14UtD5eP/9961tjK/Pnj17fM6Dq0IJY5w/vFatWrl1v/nmm40kc8011/gc/qWXXrIqHxERYV577TWzZcsWs2bNGjN8+HDj7+9voqKiTNWqVb3+eIo6jDl48KDZs2ePiYiIMJLMXXfdZfbs2eP2OXjwoM9pZ+VckSpUqGAyMjLyNGyHDh2s+fjmm29yNQ9ZeTtg+eWXX8yePXtM06ZNjSTTtGnTbPP6/fffu43LOR7nMFdeeaWZNWuW2bp1q/nyyy/No48+ap38hISEmEOHDmWrT3JysvH39zd33HGHefXVV82XX35pduzYYb788kvzxhtvmAYNGljTee6559yG/eeff8yePXvMO++8Y5V55513stX7+PHjOc6/U2pqqrnqqquMJOPv728effRR88knn5gdO3aYdevWmQkTJlgnMuHh4R7nyfldVK1a1cTExJiQkBAzatQok5iYaLZt22ZmzJhhLr/8cqsen3/+udvw+VnviiuM2blzp7WBKleunHnyySdNQkKCSUpKMv/973/NFVdcYQ0/fPhwj9Nw7syuueYaU65cuWzbg6efftoKGPz8/MyWLVvyPT/OaV1xxRWmYcOGpkKFCqZ8+fImKirKdO/e3Xz88cfZgs7CYMdy/Oyzz6wDmuDgYDN69Gizbt06s2nTJvPyyy+77cTeeOONfM9LbsKYzMxM07ZtWyNdCOy97aCc9XEeFDZs2NC88847JikpyaxZs8ZMmzbNKvvUU09Z5a+44grz1ltvmaSkJJOQkGCGDBliypUrZ/1uv/7662zTSk9PN2XKlDFt27Y1//nPf8znn39utm/fbhITE80777xjbrzxRmv8vXr18jpvd9xxh1WuefPmZuHChWbbtm1m2bJl5t577zWSTLNmzawyBQ1j/vjjD2veXLeBp06dsg7SPZ3MuHIeyMbGxpoqVaqYatWqmRdeeMGsX7/eJCUlmVdeecVUrFjR+o1l3b98//33Zs+ePdY8DRw4MNs26ZdffrHK5+VAvlmzZqZMmTJmwIAB5ssvvzRbt241s2bNMrGxsVaZxx9/3Od8eTtAL8g6s2fPHrcT7/Hjx2eb599++80qn9NxRlpammnYsKFVpkmTJua///2v2bBhg9m2bZv5+OOPzZAhQ0xERESRhjHffvutdWGnWbNmHsu47k8aNWpkHA6H6dWrl1m2bJnZvn27+fjjj83y5cut8r169bLKd+zY0cyfP98kJSWZrVu3mhkzZrjtx5cuXZptegU5DvBU56z79m3btlnbvxo1anjcHqWnp5trr73WGkf79u3Nxx9/bLZt22Y++ugjc8stt2T7bXv6ngu6LXeGWtWrV8/W75dffnE78Hc4HOb33393K5OZmWkqVapkJJlhw4a59XP9XbZo0cL67SxYsMBs27bNfPnll27f5Q033OBxWeeG63FQVFSUCQgIMM8884xZu3at2bJli3n11VdNjRo1rGl5uoD7wAMPGOlCYHr69Gmv05o6dao1nvwcH+Q2jPnwww+tcoMHD/ZYpkePHqZOnTpm2LBh5r333jObNm0yW7duNYsXLzYDBgyw1o2qVau6bT9cOfex1157rQkMDDRXXHGFmT59utm8ebPZtGmTGTNmjBVUhYaGZlsHjPG9PXINwENCQjyux3nZhrdo0cL4+/ubwYMHmy+++MJs377dLFiwwDqWlmTeeustj/O6YMECq0x4eLh54YUXzMaNG83GjRvNiy++aMLDw014eLi1P7A7jHn//fet4QYMGJCtv6cwxnlu4uuc6vvvvzfHjx+3/u9t3+q6Xy3M85PKlSubiIgIExwcbEaOHGkSExNNUlKS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b31nb7/9dq5OVgqqMJajcxxRUVHWybknrtPI7zJ0ioyMtAJA58d5EjVv3jzVrl1bq1at0k033aSNGzf6HJe3A07pwqshnW9icc6/N9dee631akhP82eM0fz589WmTRsFBwerZs2aqlevntu25uuvv5aUfVvzww8/WCfUednmFcTcuXMlSX5+fh7fvOfn56f77rtPkrR06VKdPHnS5/hiYmJUpoz3QwDnNsnO7VFul6WvbUdWhbnOFIadO3dafzsP+IrS6NGjs/02T58+rd27d+upp56y3kjRvn37HN884+u36brPfOCBB3zuMx0Oh/Wb8rTPLMzjgGnTpqlv3746f/68OnTooC+//FLh4eFey7u+Za4gv+3C2ifGxcVJkhX+ShcCowMHDsjhcCguLs56i+S+ffusN4IZY7Ru3TpJyvGtMzmdiDuXV0G3Bf7+/j7XoXLlyvncJ/Xt21d+fn4yxljbQ6dz585ZF4fvuOMOVa1atUB1zUmTJk00bNiwHF8/vGfPHj388MOqUaOGKlWqpOjoaF199dXWeuy8YJaZmanjx497HU9O31Fut9eLFy/WHXfcobS0NF133XVat26dateu7XOYvPBVT1/Huc7v+4orrvD5+6xUqZLq1KlTwFrmj2udi/O8q7DPT4KDg30u04vpfMi5/2zatKnXoLwo5+POO++0zh3uvvtutW3bVlOmTNH27ds93nCSWwUKY5yv0fR1hc31jhlPr910bnx8nTRIFw40Xb+gks51RfS2wvri+rpwXyu13XL6Hi+77DLrb+frWV3/f+ONN+pf//qXtmzZkuPBdlG+8tN5oJdXzhO0rHLaaLieFBXkB11cnN9lpUqVfIYokqwrksYYrwcfedkeZF2PCktYWJh10puWlua2IS8qhbEcneNw/a3lNI6iWIZ+fn6qWbOmHnroIW3cuFGVKlXSiRMn1LNnT5+vt/R1IOY6nznNn/MVolL2+Tt79qw6d+6shx56SImJiTluS7L2d61HXrZ5+ZWZmWm97rF9+/ZeTzScFz/Onj2r999/3+c4c7tNyssrfAsqt8vS17Yjq8JaZwqLa3jgvMpmt/Lly6thw4aaPHmy3njjDUkXTvYnTZrkczhfv83C2mcW9nHA1KlTZYxR1apV9eGHH+a43hfWb7uw9onOIOXYsWP67rvvJF24u0q6cKdX1apVdfnll6tOnToyxlihze7du/XXX39J+r9Ax5vcbgsKemySm2XhXKaefn/Vq1e3zjXmzJkjY4zV75NPPrGG8XUnUl6MHz9ee/bs0Z49e7Rjxw4tWbLECho3bNiguLg4K/zyZNasWbruuus0e/bsXB3n+1qXC+s7ev311/XPP/8oICBAS5YsKfTQylc9fR3n5vZcUFKRB23euG67i/N8tLDPT3xdmCyK6RXkfMj5HeRn31kY81G5cmUtXbpUNWvWlDFGCQkJGjp0qJo2bapKlSqpa9eu+uyzz/I8Dd9bRR9SUlKsW3ROnDjh9RZHV0uWLNGpU6fc7gpxys1tZ64b3pKuZs2aqlKliv7880/t3r1b58+fz9Ptyq7vT7/mmmuKoor5UpDbB5944gnrdrAuXbro4YcfVqNGjVStWjUFBgZa465du7YOHz5cpOuDcwPg7+/v89a+rJyPNVyqCut3fLFsD+rXr2/9feTIkSKfnlNhzP/FsgylCzvOhx56SNOmTdOPP/6ohIQE3XrrrR7L5nY7WJD5mzBhglasWCHpwonKoEGDdN1116l69eoqX768dTDQqlUrrVu3Ltt4XP+fUz0KYxl/9dVX1vq3fPnyXM37vHnz3B67KQmKelleTL+Ji0W/fv30zDPP6O+//9asWbM0btw4r2V9/TZdD5r/97//+bwDwlXWgKewjwO6du2qDz/8UH/88Yd69uypDz74wGcgUNi/7YKuc65BSmJiourVq2cFLq53vLRu3VoHDx5UYmKiunXrZpVxOBy23IGVG4Xx+4uPj9cnn3yigwcPau3atdbycT6iFBERoQ4dOhS8srpwnO56hfzaa6/VXXfdpZtvvlmPPfaYDh06ZNUnq++++04DBgxQRkaGqlWrpqeeekpt27ZVVFSUQkJCrDtq3nnnHSs8smPbc8899+ijjz7SuXPndN9992nlypUez8mQnetdjVdeeWWx1aOwz09yOua6GM+H8nOuWVjzcfPNN+vAgQP68MMPtXz5cq1du1a//PKLUlJS9NFHH+mjjz5Shw4d9NFHH+X67p18hzHvv/9+nu9MOH36tBYvXuz2zGh4eLiOHTvmdqeHJxkZGT6vhLkmaZmZmV5vv05LS8tTnYuKw+HQTTfdpCVLluj06dP66quvrDYqcnLy5Enr9tNKlSq5nTBKub+iWRTLIqfv0bW/a7KckpKi9957T5L04IMPWleBPcntFdGCcF4d/eeff1S5cuViu4JZUji/y7/++ksZGRk+D3ad64DD4fB6pTUv24OivEJh94lZYSxH5zhycyXOOQ47rvK43r68Z88er2GML67zmdP8ZWRkuF2ddjLGaObMmZKkm266SatXr/a6v/C2rXEdX07ran6vxrjKekt+bmzYsEEHDx4stlu68+O3335TrVq1vPZ3Lktf246sCmOdKUzOtlKkC49vX3HFFUUyndwqU6aMYmJitGXLFh09elR///13vubd9Q7drLd551ZRHAe89NJLqlGjhqZPn27d2bBw4UKv29bC+m0X1j6xRo0aio2N1f79+5WYmKgBAwa4tRfj1Lp1a73zzjtWP+e/jRo1yvVvpaj99ddfOV54dC5Tb+tgx44dVbNmTR05ckSzZ89WXFycjhw5oi+++EKS1Lt37yJvh2ngwIH67LPPtHz5ci1dulRfffWV2rVr51Zmzpw5ysjIUNmyZZWYmGi1C5SVHcezrh5//HHdeOONeuqpp7Rp0yZ16tRJK1ascGsPpTg419Hc7C993Y1UlJzrmHTh2KG42H1+cjGdD1WpUkW//PKLjh49mudhC3M+AgMD1aNHD6utnYMHD2rZsmWaPn269u/fr5UrV2rkyJGaMmVKrsaX78eUnI8c1ahRQwsXLszx43wmMeujSg0bNpQkff311z5vXd+1a5fP21Vdk11fG7fvv/8+55nzoTAbjnJt2PHVV1/N9XBvv/22FYT17t07W52cyyKnhmBzWhb5mdetW7fmur/rwVpycrLVeJmn9hCcvv/+e59t7BTW9+P6jPeqVasKZZwFUVwNluWW87v8559/3K4eeJKUlCTpQpsV3tqBysv2ID8H/bm1b98+629vjbQWpsJYjs5xHDp0yOeBTXp6ujWNolyGTq7fp6+GCn0JCAhQTEyMJGnLli0+y+7cudOajuv8/f3339ZJeffu3b0GMampqV63kXXr1rWueORlm5cfqamp+vjjjyVJ7dq1y3Ff6wyajDG5asj3YpLbZelr25FVYawzUuFtg6+77jrr77Vr1xbKOAuqMH6bhbHPLKzjgKxee+01DRw4UNKFNjN69uzp9XEO5zGpVLDfdmHuE13bjTl69KiSk5Ot9mKcXNuN+f333611K6f2Yuz0zz//+GxwOSMjw2qny9s+qWzZsurTp4+kC99lamqq5s6da32fvhoILkwvvviitU0YOXJktv7OxuqvueYar0GMJFsef87q3//+t1544QVJ0vr169W5c2evj5TYxdk4+48//ujzEdG///7b1kblnf744w+rTaKgoKBcXzwvCnafn1xM50PO/ee2bdvyvM4W5XzUqVNHjz/+uLZu3WrdSZPTo+Ku8hXG/Pjjj1q/fr2kC7eA3n///Tl+7r33XkkXdiauraDfcsstki78wD799FOv03znnXd81sn16pKvjVteWj73JDAwUNKFxsIK6s4777SuFi9btkyLFi3KcZgDBw5YtxEHBgbqiSeeyFbGuSxOnTrl9WTin3/+0YcffuhzWvmZ1z179vg88HB+j2XLlnU7SHA9GPT1A3vrrbd8Tt9ZZ6lg31HHjh2t20inTJniMxiwQ2Gud0XB+TuWLjwn7c2mTZusgMN1mKzysj3wNZ6COHnypHWVtkKFCmratGmRTMdVYSxH5/+NMT63m4sXL7YaeS2qZejK9cTF190POXHWdd++fdq8ebPXcs5QwnUYKffbmlmzZnk9MfXz87NOhFwbss8qMzMzX3e1uFq8eLFVz4EDB+a4r+3Xr5/1NoKiDGOKYpvka1lt27bNauQxr+trQdcZqfD2LW3atLHehvjaa68Vexthp0+ftrYlgYGBbnfu5EV0dLR1l+6iRYs8vu0mJ4V1HODJ66+/br1947333lOvXr083j0cERFhnTx/8MEHXu8AT0tL83mwXZj7RNd2Y5zz7mwvxsm13Zjp06fnur0Yu/n6jX/88cfWxVRfv/F+/frJ4XAoLS1N7733nubMmSPpwmOlzuC1qF199dW6++67JV0IeV3vmpD+b132tR4fO3asUN/IkhdPP/20JkyYIOlCKHz77bcXaTuMOXHeWZSZman58+d7LTd//nzb71jOzMxUnz59rO/ykUceKdY2Y+w+P7mYzofuuOMOSRd+V2+//XaehrVjPkJDQ62G3/Pykpl8hTHvvvuu9WPo1q1broZxlst6ta53794qX768JGno0KEebwtds2ZNjgu9ZcuW1m2gU6ZM8fhjfeGFFwqcQjtva/rhhx8KNB7pwu3B7777rrVy9O7d2zr582T37t1q166ddUXoP//5jyIjI7OVc935vvzyy9n6G2P0xBNP5Hibl3NeDx48mKeN3yOPPOLxEagFCxZo+fLlki48C+56i1h0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vvMTu6eXm33O559/bsLDw3OsR2HPh+vFhoJu013l+TEl11tHu3btmqdhXctnvQV12rRpWrZsmTp06KBKlSopMDBQ0dHRGjx4sHbu3Jmr9houu+wybdmyRU8//bRiYmIUEBCgSpUqqVWrVnr33Xf13nvvFbiV9Zo1ayopKUn9+vVTdHS023PkBdGqVSvt2bNHixYt0gMPPKDo6GiFhIQoMDBQtWrVUocOHTRt2jT98MMPOT7eIV24lW7Hjh0aOHCgIiMj5e/vr6pVq+q2227TsmXLPD6+lFVwcLA2btyoJ554QldddVWuX9E1ZswYff755+rcubMuu+wy+fv7KyoqSo899pj27t3r9RnmWrVqaceOHXrqqacUGxurgIAAhYWF6ZprrtHo0aP19ddfZ3tzlCcDBw7Uhx9+qPbt26tatWo+32KQk0qVKmnFihX66quv1LdvX8XExCg4OFh+fn6qVKmSmjVrpkGDBmn58uUeb0MuLEW13hW29u3b68CBA3r22WfVuHFjhYaGKiAgQLVr11aPHj20bt06TZ8+3Wujqa7i4+O1bt06de/eXREREfL391fNmjXVq1cv7dy502cDjzl56aWX9MILL+iuu+5SvXr1VKVKFfn5+Sk0NFT16tVT79699fnnnysxMdG6JdJOhbEce/fure+++876/QYFBal8+fKqW7eu+vfvr507d2rEiBFFNg9lypRRWFiYrr32Wv3rX//Sjh07NHXq1EJpCLVMmTJ6/fXXtXbtWvXo0UO1a9dWQECAQkND1bhxYz377LNKTk722sheWFiYNmzYoOeff14NGzZUYGCggoODddVVV+nf//63du3alavb+0NCQpSYmKjXXntNzZo1U3BwsEJCQtS4cWNNmjRJGzZsKNCbTJyP9AYEBKhz5855Gta5vz1x4oSWLl2a7zp407hxY23atEkPPPCAtfwL6oorrtD27dv17LPPWvucsLAwtWrVSvPnz9fixYvzvT0v6DojSZ07d9ZXX32lu+66SxEREdYjxvlRpUoVrVmzRh999JG6deumyy+/XAEBAQoPD9fVV1+tHj166JNPPtGDDz6Y72l44+/vr+rVq6tdu3Z6+eWX9f333xdag5Rly5bViy++qH379mnYsGG69tprFR4errJlyyokJEQNGjRQjx49NHfuXP3666/WY+pOhXUc4EuZMmU0e/Zs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w4YNU4MGDdS5c2fVq1dPDz30UFFOEgAAAAAA4KJmy9uUbrvtNkVGRmratGl2TA4AAAAAAOCiZdurrStWrKjvvvvOrskBAAAAAABclGwJY37//Xd9++23CgwMtGNyAAAAAAAAF60iDWP+/PNPrVixQh07dtQ///yjW265pSgnBwAAAAAAcNErUAO+ZcuWzVU5Y4yqV6+uF154oSCTAwAAAAAAKPEKFMYYY3z2DwoKUp06ddSxY0f9+9//VpUqVQoyOQAAAAAAgBKvQGFMZmZmYdUDAAAAAADgkmDb25QAAAAAAABAGAMAAAAAAGCrAj2m5HTu3DktXLhQq1at0v79+3Xq1CmFhIQoNjZWHTp00P3336+AgIDCmBQAAAAAAECJVuAwZseOHbr33nt16NChbA367tixQ++9956ef/55vf/++7ruuusKOjkAAAAAAIASrUBhzC+//KJbb71Vx48fV5UqVdS/f381aNBAl112mX777Tft3btXM2fO1MGDB9WhQwd9/fXXqlmzZmHVHQAAAAAAoMQpUBgzadIkHT9+XPfcc4/effddlS9fPluZ//f//p8eeughffjhh5o0aZKmT59ekEkCAAAAAACUaAVqwHfFihUKCgrSnDlzPAYxkhQYGKjZs2crKChIy5cvL8jkAAAAAAAASrwChTFHjx7VVVddpeDgYJ/lgoODddVVV+nXX38tyOQAAAAAAABKvAKFMSEhIfrtt99yVfa3335TUFBQQSYHAAAAAABQ4hUojGnSpIl++eUXLVq0yGe5hQsX6vDhw2ratGlBJgcAAAAAAFDiFSiMefzxx2WMUe/evTVs2DD9+OOPbv1//PFHDR06VH379pXD4dDgwYMLVFkAAAAAAICSrkBhTOfOnfX0008rPT1dU6dOVXR0tCpUqKDIyEhVqFBB0dHRmjZtmv755x8988wz6tSpU76mM3/+fD366KNq2rSpAgIC5HA4NGfOHI9lx4wZI4fD4fETGBjodRoLFixQ8+bNFRQUpPDwcHXq1Enbtm3zWj45OVndu3dX1apVVb58eTVq1EjTp09XZmZmvuYRAAAAAABcGgr0amvpwuutW7ZsqRdeeEGbN2/W2bNndfjwYUlSmTJl1KJFCz399NPq3LlzvqcxatQo/fTTT6pSpYpq1Kihn376KcdhevfuraioKLdufn6eZ3fixIkaOXKkateurQEDBig1NVWLFi1Sy5YttXLlSrVu3dqt/L59+9SiRQudPn1a3bt3V82aNbVixQo9/vjj2r17t95+++38zioAAAAAACjlChzGSNLtt9+u22+/XWlpaTpw4IBSU1MVHBys6OjoQmm0d+bMmYqJiVFkZKReeOEFjRgxIsdh+vTpky1E8SQ5OVmjR49WbGyskpKSFBYWJkkaPHiwmjdvrvj4eH333XduQc7AgQN18uRJLVu2zLrbZ/z48erYsaNmzJihBx54QG3atMnfzAIAAAAAgFItz48p7d27V0uXLtXmzZuz9QsKCtI111yjli1b6pprrlFQUJA2b96spUuXat++ffmu5C233KLIyMh8D+/L7NmzlZGRoZEjR1pBjCQ1aNBAvXr10g8//KDVq1db3ffv36+1a9eqTZs2bo9dlStXThMmTJAkzZgxo0jqCgAAAAAASr48hTGnT59W+/btde+99+a6bZTMzEx169ZNnTp10rlz5/JVyfxYt26dJk+erJdfflnLli3zOu3ExERJUvv27bP169ChgyRpzZo1uSrfvHlzVaxY0a08AAAAAACAqzw9prRw4UL9+uuvGjBggFq0aJGrYVq0aKH+/fvrrbfe0qJFi9S7d+98VTSvnnvuObf/16hRQ3PnztWtt97q1j05OVnBwcGqXr16tnHExMRYZVzLu/Zz5XA4FB0drW3btun06dOqUKGCx7qdO3fOLRxKSUnJ5VwBAAAAAICSLk93xixZsiRfr6h+8sknZYzRhx9+mKfh8qNx48aaO3euDh06pDNnzig5OVnPP/+8Tpw4oTvvvFO7du1yK3/y5Em3x5NchYaGWmVcy0vK0zBZTZo0SWFhYdanVq1auZ9BAAAAAABQouUpjNm5c6dq1KihevXq5WkiMTExqlmzpnbu3Jmn4fKjS5cu6tWrlyIjIxUYGKjo6GiNGjVK06ZN09mzZzV+/Pgir0NORowYoZMnT1of59unAAAAAABA6ZenMObPP/9UzZo18zWhiIgI/fnnn/katjD07t1bfn5+2rBhg1v3sLAwr3exOB8fcr0Lxvl3TsM475DxJCAgQKGhoW4fAAAAAABwachTGBMYGKgzZ87ka0JnzpyRv79/voYtDP7+/goJCdHp06fdusfExCg1NVXHjh3LNoyn9mE8tSPjZIzRgQMHFBERUSiv9AYAAAAAAKVP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eXlp8eLFOnnypN566y298cYbVkcEAAAAAABZEMWYB7B9+3ZNmDBBW7Zs0d27d1WjRg2NHj1a/fr1szoaAAAAAADIoijGAAAAAAAAOBFzxgAAAAAAADgRxRgAAAAAAAAnohgDAAAAAADgRO5WBwCcJTY2VhcuXNClS5eUN29eFStWTAULFrQ6FgAgA6Kjo5U3b17lypXL6igAgAw6deqUIiIikrw/r1q1qjw9Pa2OBjgcxRi4tOPHj2v27Nlau3atdu3apdjY2CTHS5UqpRYtWqhr167q0qWL3N35k0D2s2bNGq1du1abN29O9oamZs2aCgwMVMeOHVWiRAmrowIZcv36dX333Xf26zwyMlLx8fGSpAIFCqhmzZpq0aKFunTpovr161ucFsg4+nPkBGvXrlVwcLBCQ0N19uzZZMdz5cql+vXrq1u3bgoKClKRIkUsSAk4HqspwSVt3bpV48eP19q1a5WQkKDcuXOrRo0a8vHxUeHChRUTE6OoqCgdPnxY586dk2EYKl68uEaOHKmXXnpJefLksfopAGm6ceOGPvnkE82YMUPh4eFK7Mo9PT3t13h0dLQSEhIkSe7u7urcubNefPFFNW3a1MroQLqFh4frrbfeUkhIiG7evClJKly4sIoXL56kL4+IiFB8fLwMw1BAQIBeeukl9evXz+L0QPrQnyOn+PbbbzV+/HgdO3ZMpmmqXLlyqlevXorvz3fv3q07d+7Iw8ND/fv31+TJk1WyZEmrnwKQqSjGwOX06dNH33//vYoXL64+ffqoV69eqlevnnLnzp1i+9OnT+vXX3/V/PnztXHjRpUoUULz5s1Ty5YtnZwcSJ8vv/xSEydO1IULF1S7dm316tVLjRs3Vv369ZU/f357O9M0dfToUW3btk2//vqrli5dqps3b6pLly6aNm2aypcvb+GzANL2+uuv65NPPlFCQoIee+wx+3Xu5+eXrG1MTIx27typX3/9VSEhITpx4oTq1q2rGTNmqE6dOs4PD6QT/TlyikaNGmn79u2qV6+e+vfvr169eqVZXImLi9P69es1f/58LV68WAkJCZo7d666devmxNSAY1GMgcupVKmS3njjDQ0YMEBubm73de6xY8f01ltvqXLlyho7dqyDEgIPJleuXOrXr59effVV1ahRI93nxcTEKCQkRFOmTNGAAQM0fvx4B6YEHkyhQoU0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+HCy4wcOHFCePHnk5uamjRs33vfz6N+/v6SUR/WsW7dOp0+fVrdu3ZQvX740HycqKkpvvPGGHnroIeXLl08FChRQo0aNNGPGjFRH3cTFxem9995T1apV5enpqdKlS2vYsGE6f/78fT+Pf7p+/bpeeukl+fn5ydPTU/7+/nrjjTd069atJO2+/PJLGYahTp06pfpY58+fV65cueTh4aGoqKgHzubl5aXKlStL+mtuk39atWqVRo4cqdq1a6tw4cLy9PRUhQoV9Oyzz6Za7Pv7pLpnzpzRkCFDVLJkSXl6eqpGjRr67LPP7jvnunXrVKBAAbm7uycpVKQ2ge/fJ12Ojo7W6NGjVa5cOXl4eKhixYp68803FRcXl+LvMk1TX375pWrXrq08efLIx8dHffv21YkTJxw6MXP79u01cuRISX+N+Pmnf07gm5glcWLpSZMm2dv4+fnZX4PE12bw4MH24y1atEjy2Ldu3dLUqVNVv359eXl5KW/evAoICND777+vO3fuJMvy99f34sWLGjlypPz8/JQrV65kr80vv/yizp07y8fHRx4eHipTpowGDx6s48ePJ3vcxPl1/Pz8JP1122L9+vWVN29eFS5cWD179tSJEydSfQ1v3bqlDz74QI0aNVLBggWVN29eVapUSQMGDND69euTtTdNUwsXLlTbtm1VpEgReXh4yN/fXy+88ILOnTuX6u8BAOQwJgAAKejbt68pyRw1apRpmqY5e/ZsU5JZrVq1VM8JDAw0JZmTJ082c+fObebPn9+sX7++WbJkSVOSKcmcNm1asvNeffVVU5JZv359MzY21r7/7t27Zt26dU1J5muvvZbu7KGhoaYks0KFCmZ8fLxZunRps0CBAubNmzeTtBsyZIgpyfzll1/MN99805RkDho0KNnj7du3zyxdurQpycydO7dZvXp1s0KFCqZhGKYks0ePHmZCQkKSc+Li4sxOnTrZn3flypXN2rVrm25ubma5cuXMkSNHmpLMCRMmpPt5BQcHm5LMPn36mHXq1DENwzBr1KhhPvTQQ/YsjRo1SvI8r169aubJk8d0d3c3z58/n+LjfvDBB/bnkV6+vr6mJDM4ODjF41WqVDElmZ988kmyY25ubqZhGGbx4sXNgIAA86GHHjLz5ctnSjKLFCli7t+/P9k5gwYNMiWZEydONEuUKGF6enqadevWNUuVKmV/jd96661Uz/tnzmXLlpmenp5m7ty5zUWLFqXrnAkTJpiSzNGjR5vVqlUz3d3dzYCAANPPz8+eYejQoSm+HonXmiSzfPnyZr169UxPT0+zUKFC5r///e9Ur73UnDx50v54J0+eTLPtwYMH7W2PHTuW5Fji/kQ///yz2bRpU7Ns2bKmJLNs2bJm06ZNzaZNm5o9evQwZ86caTZt2tQsXry4KcmsVKmS/fjIkSPtjxMREWFWr17dlGS6u7ubFStWtL9mksxmzZqZt27dSvH1fe6558xy5cqZbm5uZq1atcxatWqZQ4YMsbcbNWqUPXfx4sXNOnXqmF5eXqYk08vLy9y0aVOKr5Wvr6/5+uuv2/9du3Zt08PDw5RklixZ0rx48WKy1+7UqVNmtWrV7L+vUqVKZt26dc3ChQubkszAwMAk7e/evWv27NnT3r5UqVJm7dq1zbx589p/z+HDh9P87wUAyBkoxgAAkrl+/br9w8P27dtN0zTNa9eumXny5DElmTt37kzxvMRijLu7u9mnTx/zxo0bpmmaZkJCgvnJJ5/Yj+3ZsyfJeXfu3DFr1aplSjL//e9/2/f/61//MiWZtWvXNu/cuZPu/H8vxpjm/xd7FixYYG8TExNjenl5mSVLljTj4uJSLcbcuHHDrFChginJfOGFF8zo6Gj7sf3795s1atQwJZmffvppkvM+/vhjU5JZqFAhc+PGjfb9J0+eNB966CEzV65cGS7GuLu7m6VLl07yOv7555/2D9CvvPJKkvP69etnSjKnT5+e4uPWrFnTlGT+9NNP6c6SVjHmyJEj9g/dGzZsSHb8v//9rxkZGZlk361bt8y3337blGS2aNEi2TmJBZJcuXKZPXr0MK9cuWI/9vnnn5uSTE9PzyT7/37e33OGhISYuXLlMvPmzWv+8ssvqf6u1IoxuXLlMps3b57kOfz444+mm5ubKck8ePBgkvO+//57U5Lp4eFhLlmyxL7/8uXL5qOPPmq/FhxVjDFN0yxSpIgpyQwJCUmy/5/FmH8+19Suz9ReI9M0zfj4eLNJkyb2wuG5c+fsx06fPm0+8sgjKV6nib/Tzc3NbNy4sXn69Gn7sZiYGNM0TfPLL7+0F7RCQ0Ptx+Pi4sy33nrLlGSWKVPG3t40//+1cnd3N728vMyff/7Zfuzs2bP2vuefBd+4uDizXr169kLxgQMHkhzfvXu3+fnnnyfZl1jsqVOnjrl79277/lu3bpnPPfec/bEAAKAYAwBIJnEUTMWKFZPsT/zGN3G0zD8lFmOKFy+e5MNQoieeeMKUZA4cODDZsT/++MP08PAw3dzczM2bN5ubNm0y3dzcTE9PT3Pfvn33lf+fxZg//vjDlGQ+9thj9jYLFy40JZkvvfSSaZpmqsWYxCJSt27dUvxde/fuNQ3DMP39/e37EhISzHLlypmSzM8++yzZObt27bJ/CM5IMUaSuXjx4mTHf/zxR1OSmS9fPvPatWv2/WvWrLEXtf7p999/NyWZJUqUMOPi4tKdJaViTHR0tLlq1Sr7iIimTZum+/ESNWvWzJRkRkREJNmf+OG/RIkS9iLf3yWOoPrn6/LPosFXX31l2mw209vbO0mRLK1zEiUWC/LkyZOkUJAo8fr+Z9GrUaNGqY7ciYqKMgsWLOjwYkxAQIApyfz444+T7HdEMSbxOmzQoEGSkW6Jzpw5Y+bPn9/Mnz9/ktExib/Tw8MjWbHONP8q2pYoUcJ0c3Mzf//99xRzde/e3ZRkzp07177v769VSiPzEvPWqlUryf7vvvvO3p9dunQpxd/3dxcuXDA9PDxMLy+vFK+P+Ph4s0GDBqkWKQEAOQtzxgAAkkmcX6Vv375J9vfr10+SFBISkurcGJL01FNPydPTM9n+5557TtJf8z38U82aNfXWW28pPj5eAwYM0IABAxQfH6933nlHNWrUyPBzSXzsWrVqadWqVbpw4YKkv+aNkHTPpZcXL14sSRo6dGiKx2vVqiU/Pz+dOHFCERERkqSDBw8qPDxcnp6eKc4DUrduXTVq1CijT0elS5dWly5dku3v2LGjypUrp5s3b2rTpk32/S1btlT58uW1d+9e7d27N8k5iXOl9O/fP8Wlj+/l73OGeHt7q23btjp06JB69+6tZcuWpXrezp079frrr6tz584KDAxUs2bN1KxZMx05ckSS9Mcff6R43pNPPpni/D4NGjSQpDTn/pg2bZqefvppFS5cWKGhoWrWrNn9PFW79u3bq0yZMunKcP36dW3btk3SX6/VPxUqVEhdu3bNUI77kfiaXb9+3eG/K/FvJigoSO7u7smOlyxZUg0aNNCNGze0a9euZMfbtGmjUqVKJdu/ZcsWnTt3TnXr1lWdOnVS/N2dO3eWpBTncpH+6pv+KbVrZ+nSpZKkIUOGqEiRIik+3t/9/PPPunPnjtq1a5fi9WGz2dSxY8c08wEAco7k/4cEAORof1956J/FmMcee0yFChXShQsX9Ouvv+rxxx9P8TGqVauW5v7z58/r2rVr8vLySnL8pZde0vLly7Vu3TpJfy2rO3r06Ad4Nv+vf//+GjNmjEJCQtSvXz+tXLlSNWrUUEBAQJrn/fnnn5Kk8ePH65133kmxzaVLlyT99dqVKVPGXlDw9fVV3rx5UzynWrVq2rp1a4aeS5UqVVJcTtgwDFWpUkXh4eE6cuSI2rdvb98fFBSkCRMmaM6cOZo+fbqkvyYYXrBggSRlePLYSpUqqXjx4jJNU+fOndOJEyeUK1cuNWjQQIUKFUrW3jRNjRw5Up9//nmaj5vaRMIVKlRIcX/x4sUlSTdu3Ejx+H/+8x/9/vvvKl26tFatWpXqNZoe95Ph2LFjMk1TRYoUSbHAIP1V0HO0xEz//JtzhMS/mS+++MJ+ff1T4t9IZGRksmOp/bdJfNywsLBUC2lXr15N9XGLFi0qb2/vZPtTu3YOHjwoSekunCbm27p1a6r5EifvTikfACBnoRgDAEjim2++UUJCgurWrasqVaokOZY7d2717NlTX331lebNm5dqMSbxw01a+69fv57sg6HNZlNgYKC9GJO4qk1m6Nevn15//XXNnz9fbm5uiouLu+eoGEmKjo6WpBS/wf+nxOV+Ez/UFStWLNW2Pj4+6YmdotRe378/7j9HQAwePFiTJk3SN998o/fee0/u7u76+eefdfHiRdWvXz/Do4/Gjh2bpJCzadMmde3aVa+88op8fHzsq1klmjdvnj7//HPly5dP77//vtq2bavSpUvbl0ju37+/vvnmG8XGxqb4+1Jb9SqxOGWaZorHjx07JumvURmlS5e+r+f4IBlu3rwpSSpQoECqj5fWscxy+vRpSWlfO5kl8W9m375992yb+Dfzd6m9vomPe/HiRV28eDHTHjelwqYkXbt2TZJUsGDBNH/XP/OdPn3a/nrfTz4AQM7CbUoAgCQSb1H6/fff7bef/P3nq6++kvTXEP7EDyv/lNoHpb/vT+kD6J49ezRlyhT7h6MxY8bYR508qFKlSqlVq1bauXOn3n//fdlsNvttV2nJnz+/JOno0aMy/5prLdWfxKV9E89J6wNj4u1SGZGex/3n61u2bFm1bt1aFy5c0MqVKyX9/y1KmbmkctOmTTVjxgxJ0qhRo5JdI4lLo0+bNk3PPvusKlasaC/ESLrnh9iMeuedd9SsWTPt3LlTjz/+uL1I4miJBYDURuxIjr916MCBA/aRRg0bNnTo75L+//pftWrVPf9m7ufaS3zcfv363fNxEwu6DyLxbyhxtE16873xxhv3zPfPZdMBADkPxRgAgN3u3bu1b98+GYYhHx+fVH9y586tmJgYLVq0KMXHSRzen9p+Hx+fZKNibt++rf79++vu3buaPHmyevTooXPnzmn48OGZ9vwSR2mEh4crMDAwxXkd/ql69eqS0vctf6LKlSvbf8+tW7dSbJPaa5Qehw8fVkJCQrL9pmnq8OHDSTL83ZAhQyRJs2fP1uXLl/XTTz8pd+7cevLJJzOcJSVdu3ZVo0aNFBUVZb8lKlFYWJgkqUmTJsnOi42NfaDXJS358uXTzz//rEaNGmnTpk3q2LGjU0YnVKxYUTabTZcuXdLZs2dTbJN4e4ujfPnll5L+uv2nfPnyDv1dUsb+Zqx83NQkjhZL7+2Ezs4HAMjeKMYAAOwSR8U0b95c586dS/Xn5ZdfTtL+n2bOnKk7d+4k2584T8ijjz6a7NjYsWO1f/9+NWrUSK+//rq+/PJLlShRQosWLdLcuXMz5fl1795djz76qFq3bq0XXnghXec88cQTkqRPPvkk1Vtg/qlq1aoqW7asYmJiUsy+Z88ebdmyJf3B/yEiIiLFyXGXL1+uU6dOKV++fGratGmy4926dVOhQoW0bNkyffbZZ7p79646d+6swoULZzhLal5//XVJf71ufx8VkjgKJnHujL8LDg6+5+0nD6JAgQJauXKl6tWrp3Xr1qlLly4pXqeZ/TsffvhhSUpxNER0dLSWLFnisN+/cuVK+9/d2LFjHfZ7/i7xb+a///2vbt++nWmP+8gjj6ho0aLau3dvpox8uZfEiZVnzZqV6hxGf9ehQwflzp1bP//8s44ePergdACA7I5iDABAkhQfH6+QkBBJ915hKHGEybp161K8reTy5ct66qmn7LeCmKapzz//XIsXL5abm5teeumlJO1DQ0P10UcfKW/evJo7d67c3NxUpEgRzZo1S5L0/PPPKzw8/IGfY/78+fXLL79o9erV6V7B5plnnpG/v79CQ0PVr1+/ZKMbbty4oe+++y7Jc7LZbPbtN954Q5s3b7YfO3XqlAYNGqRcuXJl+Hm4u7vr+eefTzKi4sCBAxo5cqQkafjw4SneBubh4aG+ffvq7t27evPNNyVl7i1Kf9e5c2dVq1ZNV65c0RdffGHfnzix6b///e8khZeVK1fq1VdfTXEVrszk7e2tX3/9VbVr19aqVavUvXt33b1716G/M/FaePPNN5MU0a5cuaI+ffqkeQtTRh07dkwvv/yyOnbsqPj4ePXv3z/Z/D2O0q1bNzVq1EiHDh1Sp06d7PP1JLpz546WL19uH6mVXp6enpo8ebIkqWfPnvrhhx+SFUj37dun1157LclqYhnVtWtX1a9fXxcuXNDjjz9uH3WWaO/evUmu7VKlSmn06NGKjY1Vu3btkhWMTNPU9u3b9eyzz6a56hcAIGegGAMAkPTX/A7nzp2Tp6enevTokWbb6tWrq06dOjJN0z4HyN+NHz9e33//vX0J2zJlymjEiBEyTVNTpkxJsoJRdHS0goKCZJqmpk2bpkqVKtmPPfbYYxo+fLiuXbumQYMGpXtkSmbKnz+/li9frvLlyyskJERlypRR9erV1ahRI1WpUkUFCxZU7969kxRcpL8KSI8//riioqLUtGlTVatWTXXq1FHFihV19epVPfPMMxnO1KNHDxUtWlS1a9e2L9v90EMP6dSpU2rQoIEmTZqU6rmJH4Dj4uJUokQJ+4pLmc0wDL3yyiuSpOnTp9tHSIwZM0aFCxfWtm3b5Ovrqzp16qh8+fJ67LHHVK9ePXXv3t0hef6ucOHCWrVqlWrUqKHly5erT58+aS7V/qB69OihIUOGKCYmRp07d1aFChXUoEEDlS5dWtu2bdOYMWMkKUNLi0t/FSYSlwavU6eOfHx8VKlSJU2fPl1ubm6aOHGiU+cosdlsWrx4serUqaPVq1erUqVKqlSpkho1aqQaNWrIy8tLHTt21M8//3zfj/3ss8/q9ddf16VLl/TEE0+oaNGiatiwoerVq6ciRYqoZs2aeu+99zJlHh43NzctWrRIVapU0bZt21S1alVVqVJF9evXV9GiRRUQEKBvv/02yTlvv/22+vfvr5MnT6ply5YqWbKkHn74YQUEBMjb21sPP/ywvvzyS4cXAAEAWR/FGACApP+/5ahTp04pLv/6T4nfsqd0q9IjjzyijRs3qlmzZjp27JiuXLmiRo0aafHixXr11VeTtB05cqTCw8PVvn37FOeHSSzQrFu3Ltn8I85StWpV7d27V++++64aNGigyMhI7dmzR3fv3lVgYKA++OADLVy4MMk5bm5uWrJkiaZMmaLKlSvrxIkTOn/+vAYNGqTt27erSJEiGc7j4eGh9evX2yfIPXz4sMqVK6fXX39doaGhqa4aI0l169a1L6Xcv3//DBcA0qN///4qVaqUzp07Zx/lVK5cOW3ZskVPPPGEcufOrUOHDsnT01OTJk3SypUr5e7unIUeixUrptWrV6tKlSr64Ycf1L9/f8XHxzvs982YMUOff/65atasqcjISJ06dUqdOnXS9u3bVbJkSUkZX1Vp586d2rRpk7Zs2aKwsDAVKFBA3bp10/Tp0xUREaEJEyY49L9zSkqWLKktW7bo888/V/PmzXX58mXt3r1b169fV8OGDTVp0iSFhoZm6LGnTJmiTZs2qW/fvsqXL5/27t2rsLAwlSlTRkOGDNHy5cvVunXrTHke5cqV065duzRlyhTVrVtXZ86c0cGDB1W4cGENGjTIPsIskbu7u+bNm6fly5fbR9/t3r1bZ8+eVeXKlTVy5EitW7cuxTmdAAA5i2Fa8TUjAACwREJCgsqWLaszZ85o3759GV7SGpnn+eef16effqoPP/xQo0ePtjoOAABwAkbGAACQg6xYsUJnzpxRgwYNKMRkATdu3ND//vc/SUpx0mUAAOCaKMYAAJBDxMTE2OeTee655yxOk7N89NFH2rNnT5J9kZGR6t69u86dO6e6deuqQYMG1oQDAABOx21KAAC4uNmzZys4OFiHDh3ShQsXVKNGDe3evfuBVnTC/WnRooXWr18vb29v+fv7686dOzp06JASEhJUtGhRhYaG6qGHHrI6JgAAcBLnzJIHAAAsExYWpg0bNsjLy0udO3fWJ598QiHGyUaNGqVChQrp999/16FDh2SapipUqKDHHntMY8aMUenSpa2OCAAAnIiRMQAAAAAAAE7EnDEAAAAAAABORDEGAAAAAADAiSjGAAAAAAAAOBHFGAAAAAAAACeiGAMAAAAAAOBEFGMAAAAAAACciGIMAAAAAACAE1GMAQAAAAAAcCKKMQAAAAAAAE70f6MxfAW39mhpAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABGMAAAQfCAYAAAC3TSS+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeZyN9f//8ecxY2aYDRnL2CaG7KkYRYwlhDZLqo+yhCKl0Ca+WSKtnyifNmRJqCQtiMrYaayRJYMkhLLMmBnLjHn//nA71++cmXPO7GfMeNxvt3ObM9f1vq73+32da31d7+t92YwxRgAAAAAAAPCKYgVdAAAAAAAAgGsJwRgAAAAAAAAvIhgDAAAAAADgRQRjAAAAAAAAvIhgDAAAAAAAgBcRjAEAAAAAAPAigjEAAAAAAABeRDAGAAAAAADAiwjGAAAAAAAAeFGhCsZERETIZrOpT58++ZZHnz59ZLPZFBERkW954Oowc+ZM2Ww22Ww2HTp0qKCLA6AIOnTokLWfmTlzZkEXx+syq/+YMWOs8bnRqlUr2Ww2tWrVKlfzyQsrV6606rRy5cqCLs41x1vHdn7nrOG8umDldj291o9hWZWVa9Tz589r7NixuvHGGxUYGGgt12eeecYp3eHDh/X444+rRo0aCggIsNItWrQoX+uAgpGnwZi1a9daK4zNZtPq1avzcvZF3uXLl/Xll1/q4YcfVq1atRQaGqoSJUooIiJCHTt21JQpU3T27NmCLiaKMMcLo5x+8jNYmpfsB87MPjk5gbxWlqOnZejv76+KFSuqffv2+uCDD3T+/PmCLm6RMn78eGtZBwcHKzk5uaCLhKuE48WXq09QUJBq1aql3r17E0QAHDgG8tJ/AgMDFRERoXvvvVezZ8/WpUuXCrq4yAHH4JLjx8fHR6VKlVK1atV06623avDgwfr000+VmJiYJ/mmpKTojjvu0JgxY7Rjxw63x+zDhw/rlltu0ccff6yDBw/q4sWLeZI/rl55GoyZPXu2x/+LgvxqnbN27Vo1bNhQPXr00Geffaa4uDglJCTowoUL+vPPP/XDDz/oqaeeUmRkpKZOnZqnebtzNd1pzKqieqfKG63CgLx06dIlHT9+XD/++KOeeOIJNWzYUHFxcQVdrCLj008/tb4nJiZq4cKFXs3fvp8dM2aMV/MtKEXp7nBSUpLi4uI0e/ZstW7dWv369dPly5cLuljAVS05OVl//vmnvv32W/Xu3VtNmjTR4cOHC7pYyCNpaWmKj4/X4cOH9csvv+j9999Xr169FB4ermHDhikpKSlX8//yyy+1fv16SVdai8XExGjnzp3auXOnXnzxRSvd+PHj9e+//8rX11evv/66NmzYYKVr27ZtrsqAq5NvXs3o4sWL+vLLLyVJQUFBSkxM1Jdffqn33ntPJUqUyKtsiqQFCxbo4YcftqKfrVu31n/+8x/Vrl1b/v7++vPPP/Xdd99p7ty5OnXqlB577DH9/vvveuuttwq45IVbnz59CG6k88QTT6h79+4ux23atEmPPvqoJGnQoEF64oknXKYrXbp0vpUvP9x7770aP3682/F+fn7Znue1thzDw8O1bNkyp2Hnz5/X77//rqlTp2r16tXav3+/OnfurJ07d8rf37+ASlo0bNy4Ufv27ZP0/4+3s2fP1sMPP1zAJcsoIiJCxph8z+dqCr63atXKK3XOivT7GGOMTp8+rQ0bNuidd97RyZMn9cknn6hy5coaO3ZsAZYUuLqMHz9e9957r/X/8ePH9dtvv+mNN97Q33//rR07duiee+7Rli1b5OPjU4AlzV/e2ocXhPTnf8nJyTp79qx2796tVatW6fvvv9e5c+f0zjvvaPHixfr+++9Vs2ZNl/PK7JHIn376SZJUoUIFTZs2ze06Y09333336fnnn89BrVDY5Fkw5ptvvrEeoZk8ebL69eunhIQEffPNN3rwwQfzKpsiZ9u2berZs6cuXbokPz8/zZo1K8PyatKkibp3767hw4frrrvu0l9//aW3335bNWrU0KBBgwqo5CiKypUrp3Llyrkc9++//zqlq1+/vreKla9KlSqV53W51pZj8eLFXdajSZMm+s9//qO2bdtq5cqViouL06JFi/TAAw8UQCmLDnur07Jly+q5557TCy+8oJ9//llHjx5VpUqVCrh0uJq428dER0frnnvuUePGjXX+/HlNmjRJo0aNUvHixQuglMDVp1KlSk7bTv369XXHHXfo0Ucf1W233abdu3fr119/1aJFi9StW7cCLClyyt35X/v27fXMM8/o8OHD6t+/v3788Uft27dPd911l3755ReVKlUq23kdPXpUklS9enWPwTt7ulq1amU7DxROefaY0qxZsyRJdevW1aOPPqq6detKKpqPKuWVtLQ0PfLII9Zzp64CMY4aNmyoFStWKCgoSJI0fPhwmkgCuKoVK1ZMzz77rPX/L7/8UoClKfwuXbqkzz//XJLUo0cP9erVSz4+PkpLS9Nnn31WwKVDYVK3bl117txZkpSQkKA9e/YUcImAq19ISIjTYyU//vhjAZYG+alq1apaunSptZ/ct29fjh/NtT/9kFnA235NSGD82pEnwZiTJ09q+fLlkmQ1k+7Zs6ckafny5Tpx4kSW5rNkyRJ17NhRYWFhKlmypGrVqqVhw4bp2LFjmU6b1Tcy5LRPEXv/KX/++aekK4GT9J0/Zbdvle+++067du2SJHXu3DlLLYgiIyM1evRoSVceA5g8eXKGNFntud7dGwfs069atUqStGrVqkw7NU3ff8BPP/2ke+65RxUrVlRAQICqV6+uJ598UkeOHPFYpoMHD+rtt9/W3XffrYiICJUoUUIlSpRQtWrV9MADD+iHH35wOZ39ef7WrVtbw1q3bp2h3I7P+mf1jQvGGC1YsEDdunVTlSpVFBAQoNKlSysqKkqvvPKKx06V0/8WZ8+e1csvv6x69eopMDBQpUqVUsuWLd1eROXHepff/vnnH40aNUo33XSTSpUqpYCAAEVEROiRRx7R2rVrPU6bvm+cTZs26aGHHrKWe5UqVdSnT59r4qIhN8vR7tChQxo6dKjq1aun4OBglSxZUjVr1tTjjz+unTt35nMN/j/H/cWFCxdcpkm/D1mxYoXuv/9+ValSRcWLF3e5P1u7dq0eeeQRRUREKCAgQKVKldJNN92kUaNG6Z9//vFYpr///lvvv/++unfvrpo1ayowMFD+/v6qVKmS7r33Xn3++edKS0vLtG6XL1/W//73PzVt2lQhISEKDQ3VzTffrLfeeitfOt777rvvdPr0aUlXjrcVKlRQmzZtJGXt5kf6vsCOHj2qYcOGKTIyUiVKlNB1112nDh06aOnSpS6nt2+jdmPHjvXY+XR2+1o5e/asRo8erXr16ikoKEhlypRRq1atMg00ZbWPs5ysMzabTddff731f9++fTPU2fEEPTvnGUuWLNHDDz+s6tWrKzAwUKGhoapXr54efPBBffXVV/ne8XVm22b64+TFixc1adIk3XrrrSpbtqzbfoNiY2M1YMAA1apVS0FBQQoMDFTt2rU1ePDgTPuOyul5QHb89ddfql27ttWhsasL6vPnz2vChAnWm0+uu+46NW/eXFOnTs3SvsEuJ/vyf/75x1ruH330kcs0/fv3t9I89dRTLtNMmjRJNptNvr6+SkhIsIa72i5//PFH3X333apQoYL8/f11/fXXa9CgQZmet2WXfZ9Tq1YtlSxZUmFhYerUqZPbfc67775rlTUrwfxu3brJZrOpVKlS+bb93Hzzzdb3v/76y2WaS5cu6bvvvtOTTz6pJk2aqHTp0ipevLiuu+46NW3aVGPGjHFqKetK+nOivXv3asCAAYqIiJC/v7/Kly+vLl26aOPGjbmqz9mzZ9W8eXPZbDYVL17cqU+y7L4R78KFC3rzzTd18803Kzg4WMHBwYqKitKUKVOUmpqaaVnWrFmjrl27qnz58tb1w8CBA7V//35J3u/P0sfHRzNnzlTJkiUlSVOnTnX5u7nq29Fx2bm7poqIiHDaz9qlP7a66lYhL69P/v77b73wwgvW+aKr41dBXg+ld+7cOb399ttq06aNtc8KDw9X06ZN9cILL2jr1q1up81NPaQrQbmnnnpK9evXV1BQkPz8/BQeHq5GjRrp0Ucf1eeff5698z+TB/773/8aScZms5k///zTGGPMoUOHjM1mM5LM22+/nek8nn76aSPJ5adcuXJm8+bNplq1akaS6d27d4bpR48ebaX3JCYmxkoXExOTYXzv3r2NJFOtWjWn4dHR0W7LZ/9ER0dnWk9HXbp0saZdvnx5lqc7e/asKVGihJFkrrvuOpOWlpalOqQ3Y8YMK/8//vgjw/SePunnbR8+evRoM2bMGLfThYSEmFWrVrksz8GDBzPNV5J5+OGHTUpKitO0f/zxR5amnTFjRqb1d3Ty5EnTvHlzj/MsX7682bhxo8vpHX+LPXv2mIiICLfzGTx4cIbpc7LeOdZr9OjRLsuVE47bjrv5Llu2zISEhHgs7+DBg83ly5ddTu+4jU+fPt34+vq6nIe/v7+ZP39+rurjaX+Sn7yxHI0xZtasWcbf39/t9D4+PubVV1/NVV3syzCzfc33339v5Ttx4kSXaRyXyUsvveRxn3P58mUzePBgj8snNDTU7X41NTXVFCtWLNNtq127dubcuXNu65WQkOBx/3DLLbeYrVu3utz/5NQ999xjJJkaNWpYw2bNmmXlsWXLFo/T2/cp0dHRZs2aNea6665zW/4333wzw/T239zTx3Gbctw3u6q/47H74MGDpkaNGm7n27179wz7flf1ciU360xm9U2/LWd2nmGMMf/++69p27ZtpvPNyTqTlX2MXffu3a20f//9d4bxjseTTZs2mUaNGnmse0pKihk0aJDHOhUvXtx8/PHHLsuTm/MAV2V2dWzfu3evqVKlipFkSpcubTZs2JAhzdGjR03t2rXd5n/nnXeaZcuWZfo752ZfXrduXSPJPPDAAy7n7bit1KtXz2Wae++919oXOUq/Xb7wwgtuyxcWFmZ2797tcv5Z4XgetGnTJlOuXDm3eT399NMZpj99+rQJCAgwkszjjz/uMa9//vnH+Pn5ZSmtK47rjqdtb8+ePVa6e+65x2WarJxLX3fddWbt2rVu83E8T/nqq69MyZIlXc7Hx8fH7TlRZvujv//+2zRs2NBIMgEBAeabb75xGp+dffjx48fNjTfe6La+d999t8fzlvHjx1vXjuk/wcHBZtmyZZnu6zPjWJ/snP899thj1nSfffZZhvGuzimzcm1SrVo1p/XO3Sd9WfPy+mTDhg2mbNmyGaZ3XF8K+nrI0Y8//uiyvOk/ruS2Hl988YW1j/H02blzp8c6OMqTYIx9w2vZsqXT8BYtWhhJ5sYbb/Q4/VtvvWUVPjw83Lz33nvml19+MatWrTLPP/+88fPzMxERESYsLMztxpPfwZiDBw+anTt3mvDwcCPJ3HvvvWbnzp1On4MHD3rMOz37ilSyZEmTmpqarWk7dOhg1eO3337LUh3Sc3fCcuTIEbNz507TuHFjI8k0btw4Q11///13p3nZ52Of5oYbbjDTp083mzZtMj/99JN5/PHHrYuf4OBgc+jQoQzliYuLM35+fubuu+827777rvnpp5/M1q1bzU8//WTef/99U69ePSufl19+2WnaS5cumZ07d5pPPvnESvPJJ59kKPeZM2cyrb9dYmKiqVOnjpFk/Pz8zOOPP26++eYbs3XrVrNmzRozYcIE60KmdOnSLutk/y3CwsJMzZo1TXBwsBk1apRZuXKl2bx5s5k6daqpXLmyVY4ffvjBafqcrHcFFYzZtm2btYMqXry4eeaZZ0xMTIyJjY01H330kbn++uut6Z9//nmXedgPZjfeeKMpXrx4hv3BCy+8YAUYfH19zS+//JLj+tjzuv76602DBg1MyZIlTYkSJUxERITp0aOH+frrrzMEOvOCN5bj999/b53QBAUFmdGjR5s1a9aYDRs2mLffftvpIPb+++/nuC5ZCcakpaWZNm3aGOlKwN7dAcpeHvtJYYMGDcwnn3xiYmNjzapVq8zkyZOttM8995yV/vrrrzcffvihiY2NNTExMWbo0KGmePHi1na7ffv2DHmlpKSYYsWKmTZt2pg333zT/PDDD2bLli1m5cqV5pNPPjG33XabNf9evXq5rdvdd99tpYuKijLz5s0zmzdvNosXLzb333+/kWSaNGlipcltMOaff/6x6ua4Dzx37px1ku7qYsaR/US2Vq1apmzZsqZcuXLmtddeM2vXrjWxsbHmv//9rylVqpS1jaU/vvz+++9m586dVp0GDRqUYZ905MgRK312TuSbNGliihUrZgYOHGh++ukns2nTJjN9+nRTq1YtK81TTz3lsV7uTtBzs87s3LnT6cJ7/PjxGep84sQJK31m5xlJSUmmQYMGVppbbrnFfPTRR2bdunVm8+bN5uuvvzZDhw414eHh+RqM2bNnj3Vjp0mTJi7TOB5PGjZsaGw2m+nVq5dZvHix2bJli/n666/NkiVLrPS9evWy0nfs2NHMmTPHxMbGmk2bNpmpU6c6Hce//fbbDPnl5jzAVZnTH9s3b95s7f8qVqzocn+UkpJibrrpJmse7du3N19//bXZvHmzWbhwobnjjjsybNuufufc7svtQa0KFSpkGHfkyBGnE3+bzWZOnjzplCYtLc2UKVPGSDLDhw93Gue4XTZr1szadubOnWs2b95sfvrpJ6ff8tZbb3W5rLPC8TwoIiLC+Pv7mxdffNGsXr3a/PLLL+bdd981FStWtPJydQP3oYceMtKVgGlycrLbvCZNmmTNJyfnB1kNxnz11VdWuiFDhrhM07NnT1O9enUzfPhw8/nnn5sNGzaYTZs2mQULFpiBAwda60ZYWJjT/sOR/Rh70003mYCAAHP99debKVOmmI0bN5oNGzaYMWPGWIGqkJCQDOuAMZ73R44B8ODgYJfrcXb24c2aNTN+fn5myJAh5scffzRbtmwxc+fOtc6lJZkPP/zQZV3nzp1rpSldurR57bXXzPr168369evN66+/bkqXLm1Kly5tHQ+8HYz54osvrOkGDhyYYbyrYIz92sTTNdXvv/9uzpw5Y/3v7tjqeFzNy+uT6667zoSHh5ugoCAzcuRIs3LlShMbG2umT59u9u7dm+f55fR6yG7FihXWjVofHx/Tp08f8/XXX5stW7aYdevWmalTp5quXbua4sWLZ5g2t/U4fvy4CQwMNNKVhiLjxo0zy5cvN1u3bjXr1683c+bMMY899pgpW7asd4MxO3bssBZc+jsdH330kTVux44dLqc/fvy4dRJZrVo1l3dmfv75Z6c75AURjLHLq7vpjgfS2267LdvTjxgxwpo+fYQ2t8EYu+xEnx1PCm6++WaXd5Nnz55tpenevXuG8YmJiebYsWNu80hLSzN9+vQxkkxgYKA5e/ZshjRZuSNpl1n9n3zySevgv2nTJpfzOHTokHUS8fDDD2cY73hnpFSpUhkubIy5cvJpP5i6u8OSnfWuoIIx9hNTHx8fs2zZsgzjT58+bd3pK1asmMtl4XjX3d3+wHFH3Lhx4xzXJyt3+Js3b+50AMwL+b0cL126ZCpVqmSkK4GYbdu2ZZiH43pbsmRJ888//+SoLvZlGB4enuHidNOmTeazzz4zrVu3tuqb/oLAkeNyb9u2rblw4YLLdDt27LACu/Xr13cKsNotXbrUShMVFZVhfFpamomLi/NYt5dfftm6yNm3b1+G8d9++61V3k6dOrm8Sz927FineuU2GDN58mRrXunLZL9YKVeunNsWA8Y4t7arVq2ay/V7zZo1VjDP3YVGVvcx2TmRl2Tmzp2bIU1CQoJ106dYsWIuzyc8Ha/yYp3JrB6OMjsOPfPMM9b4wYMHuw36Xrx40Rw/ftxjXpnln/6EfseOHWb16tXm9ddfNxUqVDDSlYu4devWuZxX+ju206dPd5vvggULrHRTp051meb8+fNWcDYiIiLDupoX5wHuju0xMTEmODjYSFdalrm7gfbuu+9a0z/22GMu0zz66KNOy8XV75zbffnnn39uzX/Pnj1O4z799FMjXWkRU716dSPJfPnll05ptm3bZk2fPvCV/o79gAEDXK6H/fv3t9Js3brV5bLIjON5UPHixV22jj569Kh1IVayZMkMwYkVK1a4Ped1ZN9P1K9fP0dlzUowJjU11dx+++1WutWrV7tMt3//fo83dHbs2GGCgoKMJDNq1CiXaRzPU2655RaX6/ucOXOsNP/9738zjHe3P9q5c6d1HlC2bFmzefNml2XIzj68ePHiLreFU6dOmfLlyxvpSlA3vQsXLlgtpsqUKZPhhq8xV24E2IOL7vb1WZHTYMz+/fut6dq0aZNhfGbn6Vm9psrKsTWvr0+CgoJc3rjKr/xyej2UnJzsdO7q6Trv8OHDeV6P6dOnW3XwFGw5f/68x6BxerkOxgwfPtxIVx4bSH+Cc+bMGesutruT8Ndff92q2IIFC9zm49jstSgEY7Zv326Vo0uXLtme3jH6/+677zqNK+hgjLsdujHGdOzY0UhX7rh6OuFy59SpU8bHx8ft+pJXwZh//vnH2iE43pF35f3337cOQklJSU7jHHc+6X8nRw8++KCRrkRiXbnagzG//PKLNc5T0+C1a9da6Z544okM4x1PPLK6P4iNjc1RfWrWrGnuueceM2XKFLNy5Uqzbds2ExMTY1599VWrCbskU6dOHZcnQDmV38vR8QTe3SNBxjifwL3xxhs5qktWAlrSlTvI6S8U0rOnLVasmNvHBo1x/u1dPV5g53gRkZN1JDU11bqD/tZbb2UYb9+X+fv7m6NHj7qcx+XLl039+vUzPbnPqltuucVIroMFixcvtvL57rvv3M7DMRjjqmWC3a233mqkK3dkXcnqPiY7J/J33XWX2/k4bhuu9h2ejld5sc7kVTDm9OnT1g2om2++OdutYrPCMX9Pn2LFipnHH388w4W+I8fjiasLEEf29TOzc5rdu3db8/zxxx+zXb/MzgNcHdsXLVpkHdMbNGjgMtBvZ79zWr58+QzHdLtz585ZrbVd/c55sS8/fvy4Ne6DDz5wGmdfVwcPHmwFhtI37befJxYrVizD+bnj+lyxYkW3we+9e/da6TI7F3LH8TzoySefdJvO8diV/piUlpZmIiMjjSRzxx13uJx+y5Yt1vSughJZ4SkYc/z4cbN8+XJr3yjJdOvWLUf52NkDs+6CR47H2F9//dVlmrS0NKv1tKttz9X+aP369aZ06dJGkqlSpYrHfUB29uHDhg1zO58XX3zRSpf+nGrevHlZWs8cb0h4Oxhz5swZazpXx0VvBWPy4/pk3LhxbudxNV0Pffjhh9Y83nnnHY9lyY96TJgwwW3ZciNXHfhevnxZc+fOlXSlA9r0r/oqVaqUOnXqJEmaO3euLl++nGEe9veply5dWvfee6/bvB599NHcFPWqc+7cOet7YGBgtqd3nMaxU7aC1qBBA91yyy1ux9t/x9TU1Ew7NkxJSdGRI0e0Z88e/fbbb/rtt9907NgxXXfddZKkX3/9Nc/Knd6yZcuszgx79OjhMW3Lli2t8m7ZssVlGpvNpv/85z9u52FfZmfOnMm046jM9OnTR+ZKoDXHvb5nl307lqR+/fq5Tde8eXPVqVMnwzTpZWd/4Gk+nsTGxuqbb77R4MGDFR0drUaNGqlVq1YaMWKEdu3apfbt20uS9uzZo7Fjx+Yoj+zKi+Vo/99ms3ncb95///0KDQ11OY+8tmXLFk2dOtXqsNyT5s2be+x83F7WunXr6tZbb3WbbsCAARmmcSctLU3Hjh3T77//bu1r9uzZo8qVK0vKuK9JTU21OuNr3769wsPDXc63WLFi6t27t8e8s2r37t3W/sXeUb6j9u3bW69Td+x80Z1SpUpZb4hwxb5POnjwYE6KmyN9+/Z1Oy4qKkr16tWTlP31NT/WmZyKiYlRcnKyJGnIkCEeX3Ga39LS0vTFF19o2rRp1hs8PLG/mMGVo0ePWutnZsfMOnXqqGzZspKkDRs2eEybF+cBs2bNUrdu3XThwgXddtttWrVqlSpUqOAy7bFjx6wO4nv06GF12pleUFCQx3rmxb68fPnyql27tiRlOF+y/9+qVSurI1N3aW688UaPr+Lt3r27/P39XY674YYbrDd45sW+wNM23qVLF6uc6ZeF4/Hs559/dvkm0RkzZki68hYaV/vInJTVsQPVChUqqH379tq4caMCAgI0ZMgQzZs3L8vzO3PmjA4cOKBdu3ZZ67K9vrt371ZKSorbaRs0aKCGDRu6HGez2XTTTTdJytpvtHz5crVr105nzpzRDTfcoLVr11rrWW552kc4Xhv88ccfTuN+/vlnSVeOmY888ojbeTz88MOZvqglv9i3A8n5Gs7b8vr6RPL8u11N10OLFy+WJJUsWVKPPfaYx7Kklxf1qFixolW2b775Jlv5e5KrYMzy5cv1999/S3J9cug4/O+//3Z5cmN/o8dNN90kX19ft3k1atRIfn5+uSnuVSU4ONj6npiYmO3pHacJCQnJkzLlhSZNmngcHxUVZX3/7bffMoxPSUnR//73P916660KCgpSlSpVVLduXTVo0MD6nDx5UpIy7YU+NzZv3mx9r1ixYoY3Zzh+6tevb6U9fvy4y/mVLVvWOnl0pUyZMtb3gtzJ55T9t/Tz87NOCtxp2rSpJCkuLs7tBUB29geu1qOs8HRyGhwcrC+++ML6zT7++OMsXazkVl4sR/s8IiIirItzVxzzyOkytKtWrZoVALR/7BdRs2fPVtWqVbV8+XLdfvvtWr9+vcd5uTvhlK68GtL+JhZ7/d256aabrFdDuqqfMUZz5sxR69atFRQUpEqVKql27dpO+5rt27dLyrivOXDggHVBnZ19Xm7MmjVLkuTr6+vyzXu+vr564IEHJEnffvut4uPjPc6vZs2aKlbM/SmAfZ/kzf1RVpelp31Henm5zuSFbdu2Wd/tJ3z5afTo0Rm2zeTkZO3YsUPPPfec9UaK9u3bZ/rmGU/bpuMx86GHHvJ4zLTZbNY25eqYmZfnAZMnT1bfvn11+fJldejQQT/99JNKly7tNr3jW+Zys23n1TExOjpakqzgr3QlYLR//37ZbDZFR0dbb5HcvXu39UYwY4zWrFkjSZm+dSazC3H78srtvsDPz8/jOlS8eHGPx6S+ffvK19dXxhhrf2h38eJF6+bw3XffrbCwsFyVNTO33HKLhg8fnunrh3fu3KlHH31UFStWVJkyZRQZGan69etb67H9hllaWprOnDnjdj6Z/UZZ3V8vWLBAd999t5KSknTzzTdrzZo1qlq1qsdpssNTOT2d59p/7+uvv97j9lmmTBlVr149l6XMGccyF+R1V15fnwQFBXlcplfT9ZD9+Nm4cWO3gfL8rMc999xjXTt06dJFbdq00TvvvKMtW7a4bHCSVbkKxthfo+npDptjixlXr92073w8XTRIV040HX+gws5xRXS3wnri+LpwTyu1t2X2O5YvX976bn89q+P/t912m5588kn98ssvmZ5s5+crP+0netllv0BLL7OdhuNFUW426IJi/y3LlCnjMYgiybojaYxxe/KRnf1B+vUor4SGhloXvUlJSU478vySF8vRPg/HbS2zeeTHMvT19VWlSpX0yCOPaP369SpTpozOnj2rhx9+2OPrLT2diDnWM7P62V8hKmWs34ULF9S5c2c98sgjWrlyZab7kvTjHcuRnX1eTqWlpVmve2zfvr3bCw37zY8LFy7oiy++8DjPrO6TsvMK39zK6rL0tO9IL6/WmbziGDyw32XzthIlSqhBgwZ644039P7770u6crE/ceJEj9N52jbz6piZ1+cBkyZNkjFGYWFh+uqrrzJd7/Nq286rY6I9kHL8+HHt3btX0pXWVdKVll5hYWGqXLmyqlevLmOMFbTZsWOHTp06Jen/B3Tcyeq+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6DYQI8krjz+n9+yzz+q1116TJK1du1adO3d2+0iJt9g7Z//jjz88PiJ6+vRpr3Yqb/fPP/9YfRIFBgZm+eZ5fvD29cnVdD1kP35u3rw52+tsftajevXqeuqpp7Rp0yarJU1mj4o7ylEw5o8//tDatWslXWkC+uCDD2b6uf/++yVdOZg49oJ+xx13SLqygX333Xdu8/zkk088lsnx7pKnnVt2ej53JSAgQNKVzsJy65577rHuFi9evFjz58/PdJr9+/dbzYgDAgL09NNPZ0hjXxbnzp1zezFx6dIlffXVVx7zykldd+7c6fHEw/47+vj4OJ0kOJ4MetrAPvzwQ4/528ss5e436tixo9WM9J133vEYGPCGvFzv8oN9O5auPCftzoYNG6wAh+M06WVnf+BpPrkRHx9v3aUtWbKkGjdunC/5OMqL5Wj/3xjjcb+5YMECq5PX/FqGjhwvXDy1fsiMvay7d+/Wxo0b3aazByUcp5Gyvq+ZPn262wtTX19f60LIsSP79NLS0nLUqsXRggULrHIOGjQo02Ntv379rLcR5GcwJj/2SZ6W1ebNm61OHrO7vuZ2nZHy7tjSunVr622I7733XoH3EZacnGztSwICApxa7mRHZGSk1Up3/vz5Lt92k5m8Og9w5X//+5/19o3PP/9cvXr1ctl6ODw83Lp4/vLLL922AE9KSvJ4sp2Xx0THfmPsdbf3F2Pn2G/MlClTstxfjLd52sa//vpr62aqp228X79+stlsSkpK0ueff66ZM2dKuvJYqT3wmt/q16+vLl26SLoS5HVsNSH9/3XZ03p8/PjxPH0jS3a88MILmjBhgqQrQeG77rorX/thzIy9ZVFaWprmzJnjNt2cOXO83mI5LS1Nffr0sX7Lxx57rED7jPH29cnVdD109913S7qyXX388cfZmtYb9QgJCbE6fs/OS2ZyFIz59NNPrY2he/fuWZrGni793brevXurRIkSkqRhw4a5bBa6atWqTBd68+bNrWag77zzjsuN9bXXXst1FNrerOnAgQO5mo90pXnwp59+aq0cvXv3ti7+XNmxY4fatm1r3RF68803Va1atQzpHA++b7/9dobxxhg9/fTTmTbzstf14MGD2dr5PfbYYy4fgZo7d66WLFki6cqz4I5NxCIjI627DK46epak77//Xu+9916Wyizl7jeqVKmSdYfl119/1eOPP+5xwz158qTTiXxey856N3PmTKtHcG+92joqKsraAU2bNi3DiYl0Jbjx+OOPS7qy7tvvVLqTlf3BLbfckukbL1z54YcfPJ54nDt3Tj169LBOaPv165elfrFyKy+WY5cuXaxWPK+++qrLO5F//fWXnn32WUlXAk35fTdx69at1r7Nz88vV8GfQYMGWa1ZHnvsMZdvDVq+fLl1AeS4TKUrnf/ZO6ybP3++yxaXmzZt0qhRozIth3Tlwvzxxx93eVE9ceJEp7ez5IR9f1iyZEl17NgxS9PYj7cHDhzQunXrcpW/O3l5LLT79ttvXV7gJiYmWhfSxYoVs9b/rMrtOiNdaeJsb7WQmzqXKlXKKv+WLVv0zDPPuD2+pqSk5Mljbp6MHj3a2hd26NAhV4942LeZCxcuqGvXrh4fJ7h48aLef/9961WjUt6dB7his9n04YcfWv1zzJ07V3369HEZkLFv28ePH9fw4cNdzm/o0KEef5u8PCY63riyt6J21eLFPsye5mrqL8bugw8+sG7mOjp+/LjTMcmx5Xh6119/vXXxPmrUKOttafZXX3uL4zFi/PjxTuPsQaF9+/a5DAAnJyfrP//5T4EGQF566SXr5m5MTIzuvvtup+3Rm7p06WJ13jt27FjrN3UUFxensWPHerVchw8f1p133mldu9SuXVujR4/2ahnS8/b1ydV0PfTwww+rUqVKkq60SHN8y1x6R44ccfo/L+qxbNkytzffpCv7dHtLx2w9gmxyIDIy0kgy5cqVM5cvX87SNGlpaaZy5cpGkrnhhhucxr311ltGkpFkKlWqZKZMmWJiY2PN6tWrzYsvvmj8/f1NtWrVTFhYmJFkevfu7TKPBx980JrPXXfdZZYuXWq2bt1qFi1aZLp06WIkmdtuu81KExMTk2EevXv3NpJMtWrVXOYxcuRIa/qJEyea7du3m7i4OBMXF2eOHDmSpWWR3vz5842fn5813zZt2php06aZtWvXmtjYWLNgwQLTq1cv4+vra6V5+umnPc7z1ltvtdL27t3brFixwmzZssXMnz/ftGrVKsOy+OOPPzLMY+rUqdb4Z555xmzevNmq66FDh5zS2tM1btzYSDK1a9c2M2bMMJs3bzY///yzGTRokClWrJiRZIKDg13m17lzZ2s+HTp0MAsXLjSbN282S5YsMf369TM+Pj6mZs2ama4H9vXs+uuvN4sWLTJ79uyxyp2QkGClmzFjhsf6nzt3ztSvX99KU7duXTNp0iSzZs0as23bNhMTE2OmTJli7rvvPuPn52duueWWDPPIbH3Kalmys945zmv06NEe882OmJgYj/Pdtm2btR4XL17cDBs2zMTExJhNmzaZjz/+2FSvXt2a/vnnn3eZR7Vq1Ywkc+ONN5rixYs77Q/WrFljRowYYQICAowk4+vrazZu3JijukRHR5syZcqY/v37m5kzZzr9pq+++qqpUqWKVdYbbrjBnDp1Kkf5uOKN5fj9998bm81mJJmgoCAzduxYs3btWrNx40bz3//+15QrV86ax/vvv5/juth/r/DwcLNz506nz/bt282yZcvMc889Z0qWLGnlN3LkSJfzys46+9xzz1npq1evbj766CMTGxtrVq5caYYPH26KFy9uJBk/Pz+zbdu2DNMPHjzYmj4qKsrMmzfPbNq0yfz0009m2LBhJiAgwJQtW9bUqlXLSDLR0dEuy3H33Xdb82natKmZP3++2bJli1m6dKl54IEHjCTTpEkTK82MGTOyvnCNMX/++af1O3br1i3L0+3bt8/K87HHHnMaFx0d7bFOdqNHj7bm4UrPnj2NJOPv728+/PBDs3PnTmufdOLECSvdH3/84bH+jvk0btzY+Pj4mCeeeMKsWLHCbN682XzyySfmhhtusNI89dRTLsuTWb1yu84YY0zz5s2NJHPdddeZuXPnmt27d1t1dtxHOG7jrs4zkpKSTIMGDaw0t9xyi/n444/Nhg0bzJYtW8w333xjnnvuOVOpUqVsrzPp8x80aFCGbXPTpk1m7ty55s4777TSBQQEmB07dmSYV2bHpvTsxzxJpmzZsmbkyJFm+fLlZtu2bWbt2rVm1qxZpn///qZMmTJGkjl37pzT9HlxHuCpzGlpaaZv377W+L59+5q0tDSnNCkpKeamm26y0tx5551m0aJFZsuWLWbRokWmffv2GbZtV79zXuzL7ezn3fbPl19+mSHN7NmzndI0aNDA7fwy2y4d2ffz7s65MmNfJ8LCwky1atVMQECAGTFihFmzZo2JjY01U6ZMMeHh4VZ53n777UznOX/+fKe6BgcHm6SkpByVz5HjupOVbc9xfV29erU1PDY21hpeunRpM3HiRLNq1Srzyy+/mPfff9/UrFnTSLL2Ke62r6wue0/nmpntjxz3we3btzcXLlxwGp+dfbgnmZVj7ty5Tsvs9ddfNxs2bDAbNmwwr7/+uilTpowpVaqUtexatWrlMT93HOtz7733Ou0bY2NjzfLly82kSZPMfffd53TddcMNN5j9+/e7nW9mv1VWj71ZORfy5vWJt/PL7JizYsUK63fx8fExffr0Md98843ZsmWLWb9+vZkxY4a5//77jZ+fX57Xo3fv3qZ48eKmU6dOZtKkSeann34yW7duNatWrTL/+9//TJ06dax5T5o0KdPlapftYMzatWutjB5//PFsTTtkyBBr2vQXUY7j0n/Kli1rNm3alOmKfvz4cWsjdfXp0aOH+emnnzzuDDJbWY4cOWKdRKT/ZLaBebJq1SqnH9Hdp3Tp0lm6eNqzZ4/TBVf6z7Bhw7IUjHA8WXD8pF8+jjsPxx1z+k9ISIhZuXKlyzIfPnzYVK1a1e20VatWNbt27cp0PXj//ffdzsPxQJKVk8xTp045nbB6+rRu3TrD9Hm188nOeldQwRhjjFm2bJkJCQnxuJwGDx7sNojr+NtOnTrV6UDo+PHz8zPz5s3LcV3sB8XMPi1btsxxkNUdbyxHY4yZOXOm8ff3dzu9j4+PefXVV3NVF/vvlZWPzWYzTz/9dIYLH7vsrLOXL182TzzxhMf8QkNDzbJly1xOf/bsWdOoUSO305YpU8asWrUq05OnhIQEp5Pp9J+bb77ZbN261eX+JyvGjx9vTZvd9b1hw4ZGkilVqpTTyXVeBWO2bdvmdv1y3Ddn50T+4MGD5vrrr3e7PLt162ZSUlJcliezeuV2nTHGOciZ/uO43mZ20WGMMf/8849p2bJlpttNboMxWfmEhYW5rXd2gzGpqanm+eefNz4+PpnmGxgYaJKTk52mz4vzgMzKfPnyZdOrVy8rTf/+/TPsl44ePeoUBEz/ad++vVm2bFmmv3Ne7MuNMaZfv35O+9KTJ09mSPPXX385zddd4NKYggnGVKtWzWzatMmULVvW7bIYMmRIluZ58eJFp/kMGDAgR2VLL7vBmI0bNzqtE47Gjh3r8XcfPnx4puuqN4IxxhgzatQoK03Hjh3NxYsXrXHeCsYYc+WY524fW7JkSbN48WLTokULI10JkuaEY32y8gkJCTHDhg3LNNjnzWCMMd67PvF2flk55vzwww+mdOnSmZYjr+vheLMht/t0R9l+TMmx6Wi3bt2yNa1j+vRNUCdPnqzFixerQ4cOKlOmjAICAhQZGakhQ4Zo27ZtWeqvoXz58vrll1/0wgsvqGbNmvL391eZMmXUsmVLffrpp/r8889z3ct6pUqVFBsbq379+ikyMtLpOfLcaNmypXbu3Kn58+froYceUmRkpIKDgxUQEKAqVaqoQ4cOmjx5sg4cOJDp4x3SlaZ0W7du1aBBg1StWjX5+fkpLCxMd955pxYvXuzy8aX0goKCtH79ej399NOqU6dOll/RNWbMGP3www/q3LmzypcvLz8/P0VEROiJJ57Qrl273D7DXKVKFW3dulXPPfecatWqJX9/f4WGhurGG2/U6NGjtX379gxvjnJl0KBB+uqrr9S+fXuVK1fO41sMMlOmTBktXbpUP//8s/r27auaNWsqKChIvr6+KlOmjJo0aaLBgwdryZIlLpsh55X8Wu/yWvv27bV//3699NJLatSokUJCQuTv76+qVauqZ8+eWrNmjaZMmeK201RH/fv315o1a9SjRw+Fh4fLz89PlSpVUq9evbRt2zaPHTxm5q233tJrr72me++9V7Vr11bZsmXl6+urkJAQ1a5dW71799YPP/yglStXWk0ivSkvlmPv3r21d+9ea/sNDAxUiRIlVKNGDQ0YMEDbtm3TiBEj8q0OxYoVU2hoqG666SY9+eST2rp1qyZNmpQnHaEWK1ZM//vf/7R69Wr17NlTVatWlb+/v0JCQtSoUSO99NJLiouLc9vJXmhoqNatW6dXXnlFDRo0UEBAgIKCglSnTh09++yz+vXXX7PUvD84OFgrV67Ue++9pyZNmigoKEjBwcFq1KiRJk6cqHXr1uXqTSb2R3r9/f3VuXPnbE1rP96ePXtW3377bY7L4E6jRo20YcMGPfTQQ9byz63rr79eW7Zs0UsvvWQdc0JDQ9WyZUvNmTNHCxYsyPH+PLfrjCR17txZP//8s+69916Fh4dbjxjnRNmyZbVq1SotXLhQ3bt3V+XKleXv76/SpUurfv366tmzp7755hv95z//yXEe7vj5+alChQpq27at3n77bf3+++951iGlj4+PXn/9de3evVvDhw/XTTfdpNKlS8vHx0fBwcGqV6+eevbsqVmzZunvv/+2HlO3y6vzAE+KFSumGTNmWG/CmDZtmgYNGuT0uFh4eLi2bdum8ePHq379+ipRooRKlSqlW2+9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PquePXvmS967d++2vm/cuFHNmzfX8uXLnVrDnD59WtOnT1ejRo1c9l1z5MgR681OlStX9phflSpVrO9//fVXbosPAAAAACiECMbgqtWoUSNt3LhRb775pmw2W77kcfr0aev70KFDdfnyZT3//PM6cOCALl68qP379+vZZ5+VzWbT2bNn1bVrV+uxJrtz585Z34OCgjzmZ+8DR7rSogYAAAAAcO0hGIMCd99992nnzp3auXOnYmNjNW/ePHXp0kXbt29Xz5499f333+db3klJSdb3ixcv6o033tDrr7+u6tWry8/PTzVq1NCbb76pCRMmSJJOnTqliRMnOs3DsXNhd29bsvP397e+nz9/Pi+qAAAAAAAoZAjGoMCVKlVK9evXV/369dWkSRM9+OCDWrhwoWbPnq2DBw/q3nvv1cyZM/Mlb8dXYleuXFlDhw51me65555TxYoVJUnz58+3HktKP49Lly55zO/ixYvW9xIlSuSozAAAAACAwo1gDK5ajzzyiO6//36lpaXpySef1JkzZ/I8j+DgYOt7u3bt5OPj4zKdr6+v2rRpI+lK65g//vjD5Twye/TIsSVOZo80AQAAAACKJoIxuKrde++9kq4EMZYuXZrn83fsUDc7ne+ePHnS5XT2tyq549hpr+P8AAAAAADXDoIxuKqFhYVZ3929Wjo36tWrZ323v0bbHcfxvr6+1vegoCArsLJ3716P83AcX6dOnWyVFQAAAABQNBCMwVXN8c1F+fFYT8uWLa3vBw4c8JjWcXylSpWcxt1+++2SpN9//13Hjx93O49Vq1ZZ35s3b56tsgIAAAAAigaCMbiqffnll9b3Bg0a5Pn8r7/+et10002SpGXLlik5OdllunPnzunHH3+UJNWoUcPqzNfuvvvus76762w4OTlZX3zxhSSpbt26qlWrVi5LDwAAAAAojAjGoEDMnDnT6ZXQrrzzzjtasmSJJCkiIsJqfZLXXnzxRUnS2bNnNXz4cJdphg4dqnPnzkmSBg4cmGF8ly5dVKNGDUnSxIkTXbayee6556xOiJ977rk8KTsAAAAAoPCxGcd39KJAJCQkKDQ0VPHx8QoJCSno4nhFRESEzp07p27duun2229XjRo1FBQUpHPnzmnnzp367LPPtG7dOkmSn5+fFi9erDvuuCPDfNK3Qlm0aJG++eYbSdILL7yg2rVrW+Mi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eR06dEjXX399tuZRt25dTZ48WVFRUWrUqJECAgI0ZsyYHAdjAgMDVb9+/RxNK0krVqywAjHdu3fXnDlz5O/vb42/5ZZbJEnPPvusLl26lON8AADAtYlgDAAAyJWxY8fmeh5RUVGKiorKg9LkXlpamgYOHChJuuGGGzIEYtLz8/PzVtEAAEARQbtaAAAAB8uXL1dcXJwkacSIER4DMQAAADlBMAYAAMDBl19+KUny8fFR165dreH//vuv9u/fr/j4+IIqGgAAKCIIxgAAgCJn7969atKkiYKDgxUQEKDKlSvr3nvv1ezZs5WSkuJx2o0bN0qS6tWrp8DAQL377ruKjIxUWFiYatasqVKlSqlevXp69913M50XAACAKwRjAABAkXPixAlt3rxZiYmJunjxoo4ePapvv/1WvXv3VqNGjbRnzx6X06WlpWnv3r2SpKpVq6pr1656+umndeDAAad0u3fv1tNPP6127drp3Llz+V4fAABQtBCMAQAARUaxYsXUtm1bvf322/rpp5+0bds2rV69WpMmTVKdOnUkXQmktG7dWocPH84wfXx8vNLS0iRJP/74o7755htVrlxZ8+bN05kzZ5ScnKyVK1eqadOmkqRVq1ZpwIAB3qsgAAAoEnibEgAAKDIWLlyoUqVKZRjeokULPfHEExowYIBmzZqlEydO6JlnntHChQud0iUlJVnfL168qODgYK1atUrVq1e3hkdHRysmJka33Xabfv31V33++ecaPny4mjRpkm/1AgAARQstYwAAQJHhKhBjV7x4cU2bNk21a9eWJH399dc6evSoU5qAgACn/wcPHuwUiLErUaKEJkyYYP0/f/78XJQaAABcawjGAACAa4avr6/69etn/b9q1Sqn8cHBwU7/d+zY0e282rZtK1/fK42MN23alIelBAAARR3BGAAAcE2pW7eu9T19yxh/f3+FhYVZ/1euXNntfAICAlS2bFlJ0smTJ/O4lAAAoCgjGAMAAK4pxhiP4+vVq2d9v3z5sse09vH2FjIAAABZQTAGAABcU3bv3m19Dw8PzzC+ZcuW1vf0r7R2lJCQoH///VeSVKlSpTwsIQAAKOoIxgAAgGtGamqqPvnkE+t/x8CLXbdu3azv6d+25Ojrr7+2Wtm0aNEiD0sJAACKOoIxAACgSIiJidHZs2fdjk9JSVH//v21d+9eSdLdd9+tKlWqZEjXsGFDq+PeGTNmaO3atRnS/P333xo1apQkyc/PT3379s2DGgAAgGsFDzgDAIBcWbt2rfbv32/9b390R5L279+vmTNnOqXv06ePy/mkT7d9+3br+w8//KBDhw5Z/0dGRur22293Sj9r1izdc889uueee9SqVSvdcMMNCgkJUWJiorZs2aKPPvpIe/bskSSVK1dOkydPdlunSZMmacOGDTp79qw6dOigoUOH6s4775S/v79iY2M1ceJEq/PfV155hceUAABAtthMZr3YId8lJCQoNDRU8fHxCgkJKejiZEvEi4sLugjXnEOvdS7oIlxzWM+9j/W8cOnTp49mzZqV5fTuTj1sNluW59G7d2+XQZ6slKNBgwaaP3++01uVXFm7dq26d++uEydOuC3vyJEj9corr2S53AAAXC0K83VoUUDLGAAAUCS88MILatSokTZs2KDdu3frn3/+0enTp+Xv76/y5curcePG6t69u7p06SIfH59M53f77bdr165deu+997Ro0SL98ccfunTpkipWrKhWrVrpqaee0k033eSFmgEAgKKGljFXgcIckaTFgPfRYsD7WM+9j/UcAAAgfxXm69CigA58AQAAAAAAvIhgDAAAAAAAgBcRjAEAAAAAAPAigjEAAAAAAABexNuUAAAAHVUXADqqBgDg2kXLGAAAAAAAAC8iGAMAAAAAAOBFBGMAAAAAAAC8iGAMAAAAAACAFxGMAQAAAAAA8CKCMQAAAAAAAF5EMAYAAAAAAMCLCMYAAAAAAAB4EcEYAAAAAAAALyIYAwAAAAAA4EUEYwAAAAAAALyIYAwAAAAAAIAXEYwBAAAAAADwIoIxAAAAAAAAXkQwBgAAAAAAwIsIxgAAAAAAAHgRwRgAAAAAAAAvIhgDAAAAAADgRQRjAAAAAAAAvIhgDAAAAAAAgBcRjAEAAAAAAPAigjEAAAAAAABeVCiCMXPmzNHjjz+uxo0by9/fXzabTTNnznSbPiEhQcOGDVO1atXk7++vatWqadiwYUpISHA7zdy5cxUVFaXAwECVLl1anTp10ubNm92mj4uLU48ePRQWFqYSJUqoYcOGmjJlitLS0nJTVQAAAAAAUMQVimDMqFGj9PHHH+vPP/9UxYoVPaZNSkpSdHS03nnnHd1www0aOnSo6tatq3feeUfR0dFKSkrKMM2rr76qnj176sSJ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aZ7bu3evJKlFixbpxpcsWdKMWACAuzRp0iQZhqGRI0eqbNmymjRpUpZeZxiGxo8f7+B0gDUoYwAAQJ5Ut25drVu3Ls1zv/zyiwzDUOvWrdONP3nypCpXrmxWPABAFgUFBckwDPXt21dly5ZVUFBQll5HGQNnRhkDAADypF69eum///2vnnnmGY0cOVJHjx7VnDlzVLJkSXXp0iXd+C1btqh27doWJAUAZGbDhg2SpBo1aqR5DBRkLOALAADypISEBD3wwAP6888/U7dAtdvteuedd/TKK6+kGbt79275+PhkeAwAACCv4coYAACQJxUrVkxbtmzRrFmztH37dpUtW1aPP/64unfvnm7s77//Ln9//wyPAQAA5DVcGQMAAAAAAGAim9UBAAAAMuLp6amXXnpJ69evV3JystVxAADZZLPZVKhQobv+cnHhRg44L66MAQAAeVKXLl20ceNGJSYmys3NTV27dpW/v7+6dOmiUqVKWR0PAJBFfn5+qWt/3S0W+4WzoowBAAB51uXLl/Xjjz9q5cqVWrNmjWJjY1WkSBH5+fmpR48eevTRR1W1alWrYwIAANwVyhgAAJAvJCcna+PGjVq5cqVWr16t48ePyzAM3XffferRo4e6d++ue++91+qYAAAAd0QZAwAA8qX9+/fru+++06pVq7R3714ZhiFPT8/UYsbPz8/qiAAAABmijAEAAPleVFRUajGzadMmJSUlsegvAOQRkyZNytbrDMPQ+PHjczkNkDdQxgAAAKcSHx+vH3/8Uf369bM6CgBA/+6mlB2GYVCsw2lRxgAAAAAAHGbTpk3Zfq2vr28uJgHyDsoYAACQLxw/flzvvfee9u/fr+joaCUmJqYbYxiGwsLCLEgHAACQdS5WBwAAALiTX375Rf7+/rp+/boKFy6sihUrysUl/ccY/sYEAADyA66MAQAAeV6TJk109OhRLVy4UL169cr2+gMAAAB5AZ9kAABAnvfPP/+of//+evzxxyliACCfsdlscnFx0T///JP6uFChQnf8yugKSMBZcHYDAIA8r3LlyipatKjVMQAA2dC2bVsZhqHixYuneQwUZNymBAAA8rzAwEAtW7ZMf/31F6UMAADI9yhjAABAnpeUlKTHHntMcXFxmjJlipo0aaKSJUtaHQsAACBbKGMAAEC+8Msvv6hfv36Ki4u77RjDMJSUlGRiKgDA3YqLi9Px48dVu3bt1FuXbnXlyhWFhYXJy8tLbm5uFiQEHI81YwAAQJ73xRdfaMCAAUpJSZG3t7cqV67Mwo4AkE9NmjRJn376qU6dOpXh8eTkZLVp00bPPfecpk2bZnI6wBxcGQMAAPK8Ro0a6fTp01qzZo18fHysjgMAyIFGjRqpXr16+uabb247pnfv3vr777/1559/mpgMMA97QwIAgDzv2LFj6tevH0UMADiByMhI1alTJ9MxtWrVUmRkpEmJAPNRxgAAgDyvevXqSk5OtjoGACAXGIah69evZzrm+vXrzPtwapQxAAAgzxs+fLhWr16tmJgYq6MAAHKoQYMG+umnn3S7FTNSUlK0Zs0a1atXz+RkgHkoYwAAQJ7Xu3dv+fj4qHXr1lq6dKn++usvRUZGZvgFAMjb+vfvr3/++UdDhw5Nt0NeXFychg4dqqNHj+rJJ5+0KCHgeCzgCwAA8jybzSbDMGS322UYxm3HsbU1AOR9iYmJ6tixozZv3qzSpUurZcuWqlq1qqKjo7Vr1y7Fxsaqbdu2+vXXX1W4cGGr4wIOQRkDAADyvICAgExLmFsFBwc7OA0AIKeuX7+u8ePHa+7cuYqPj0993s3NTc8884wmTZokV1dXCxMCjkUZAwAAAACwREpKig4fPqzY2FiVLl1a9erVU6FChayOBTgcZQwAAAAAAICJWMAXAAAAAADARC5WBwAAAPhf7du3l2EYWrRokapVq6b27dtn6XWGYWjdunUOTgcAuBvM6UB63KYEAADynJu7Jx06dEh169aVzZa1i3kNw1BycrKD0wEA7gZzOpAeZQwAAAAAAICJWDMGAAAAAADARJQxAAAgzytUqJAGDBhgdQwAQC64dOlSlsYdPHjQwUkA61DGAACAPM/NzU3Vq1e3OgYAIBc0adJE27dvz3TMRx99pJYtW5qUCDAfZQwAAMjzfHx8tH//fqtjAABywenTp9W2bVu9+eab+t8lTC9cuCB/f3+98MILqly5skUJAcejjAEAAHnexIkTtX79ei1atMjqKACAHNqzZ48aNmyooKAg+fr66sSJE5KktWvXqnHjxlq9erUGDhyoffv2WRsUcCB2UwIAAHnepEmTtGXLFq1du1bNmjWTj4+PPDw8ZBhGmnGGYWj8+PEWpQQAZNWNGzf0+uuva/bs2XJ3d1fXrl0VEhKiUqVKac6cOerXr5/VEQGHoowBAAB5ns2WtYt5DcNQcnKyg9MAAHLLBx98oJdeekmGYahcuXLauXOnvLy8rI4FOJyL1QEAAADuZMOGDVZHAADksvnz52vs2LEqVKiQqlWrpuPHj2v48OFasmSJKlWqZHU8wKG4MgYAAAAAYJq4uDgNHz5cK1asULVq1fT555+rRYsWGj16tD755BOVL19e8+bNk7+/v9VRAYehjAEAAAAAmMbLy0uRkZHq3bu35s2bJ3d399Rjq1at0lNPPaWYmBgNHz5cn3zyiYVJAcehjAEAAPnGli1btGjRIu3bt09xcXFyd3dXs2bNNHDgQD344INWxwMAZEGpUqX0/vvva+jQoRkeP336tAYNGqR169axDhicFmUMAADI8+x2u5577jnNnTtXNz+62Gw2paSkSPp34d6nn35aH3/8cbodlgAAecs///yjunXr3nHcjBkz9Morr5iQCDBf1rYmAAAAsNCMGTP06aef6p577tFXX32l06dPKykpSadPn9aXX36pRo0aae7cuZo5c6bVUQEAd/C/RcyVK1d06tQpXblyJc3zFDFwZlwZAwAA8ry6desqOTlZf/75p4oXL57u+OXLl9W4cWO5uLjon3/+sSAhAOBuJCYm6p133tHChQsVFhaW+ry3t7eGDBmiV199VUWKFLEwIeBYXBkDAADyvBMnTuixxx7LsIiRpJIlS+qxxx7TiRMnTE4GALhbCQkJateuncaPH6+IiAjVrVtXbdu2Vb169RQZGanx48fLz89PCQkJVkcFHIYyBgAA5HnVqlXTtWvXMh1z/fp1VatWzaREAIDsmj59urZu3aonnnhC4eHhOnTokDZs2KCDBw/q2LFjGjBggLZv367p06dbHRVwGG5TAgAAed7UqVP13nvv6Y8//pCHh0e646dOnVKTJk30yiuv6PXXX7cgIQAgqxo0aKBSpUpp586dtx3j4+OjS5cu6dChQyYmA8zDlTEAACDP69evn+6//341a9ZM06ZN05YtW3TkyBFt2bJFb7/9tpo3b65WrVqpT58+ioyMTPMFAMhbIiIi1LFjx0zHdOjQQREREeYEAizgYnUAAACAO6lVq5YMw5DdbtfYsWPTHbfb7fr+++/1/fffp3neMAwlJSWZFRMAkAXFixfXuXPnMh1z7ty5264TBjgDyhgAAJDnDRo0SIZhWB0DAJALHnjgAS1fvlyjRo1So0aN0h0/ePCgvvjiC/n6+lqQDjAHa8YAAAAAAEyzdetW+fn5ycXFRU899ZR8fX3l4eGhM2fOaOPGjQoODlZiYqI2bNigNm3aWB0XcAjKGAAAAACAqVasWKFhw4YpLi4uzZWPdrtd7u7umjdvnnr37m1hQsCxKGMAAEC+snXrVu3bt09xcXFyc3NT06ZN+cspAORDly9f1nfffae9e/cqPj5ebm5uatasmfz9/VWqVCmr4wEORRkDAADyhR07dmjw4ME6cuSIpH//enrzr6l16tRRcHCwWrVqZWVEAACALKGMAQAAed6hQ4fk4+OjK1euqHPnzvLz81OlSpVS1xf46aefVLJkSW3fvl0NGza0Oi4AAECmKGMAAECe169fP3377bf6/vvv1alTp3TH165dq65du6pnz55avny5BQkBAHfDbrdr1apV2r9/v6Kjo5WYmJhujGEYmj9/vgXpAMejjAEAAHmeh4eHOnbsqM8///y2Y/r3769169bpzJkzJiYDANytsLAwPfroo/r777+V2a+jhmEoOTnZxGSAeVysDgAAAHAncXFx8vLyynRMzZo1FRcXZ04gAEC2jRw5UocPH9azzz6rJ554QpUrV5aLC7+aomDhjAcAAHlelSpVtH379kzH7NixQ1WqVDEpEQAguzZv3qzu3bvro48+sjoKYBmb1QEAAADuxN/fXxs3btT48eN17dq1NMeuXbumCRMmaMOGDfL397coIQAgq0qWLKnatWtbHQOwFGvGAACAPC8mJkb333+/wsPDVa5cOfn4+MjDw0NnzpzRrl27dO7cOXl7e2vnzp0qW7as1XEBAJkYPHiwjhw5oq1bt1odBbAMZQwAAMgXYmJi9Nprr2n58uVKSEhIfb5o0aJ64oknNG3aNJUvX97ChACArDhz5oweeOAB9e7dW5MmTVKxYsWsjgSYjjIGAADkK4mJiTp8+LDi4+Pl5uam+vXrq3DhwlbHAgDchb///lutWrVScnKy6tSpIzc3t3RjDMPQunXrLEgHOB5lDAAAAADANHv37lWnTp0UExOT6Ti2toYzYwFfAAAAAIBpRo0apdjYWL399tuKjIxUYmKiUlJS0n1RxMCZcWUMAADIF9auXauZM2dq165dio2NVUpKSroxhmEoKSnJgnQAgKwqWbKk/P399fnnn1sdBbCM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", "text/plain": [ "
" ] @@ -7865,7 +6593,10 @@ " figsize=(12, 8),\n", " fontsize=14 # Adjust font size for tick labels\n", ")\n", - "\n", + "# Add value labels on top of each bar\n", + "for i, v in enumerate(top_5):\n", + " ax.text(i, v, str(v), ha='center', va='bottom', fontsize=20)\n", + " \n", "# Customize title and axis labels with larger font sizes\n", "ax.set_title('Adult Outpatient: Top 5 Too Broad Antibiotic Breakdown by Ranking Differences', fontsize=20)\n", "ax.set_xlabel('Abx Med by Ranking Difference', fontsize=16)\n", diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/PEDs_ED_Cohort_no_allergy_debug.ipynb b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/PEDs_ED_Cohort_no_allergy_debug.ipynb index 4ed2faf6..8b612d1a 100644 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/PEDs_ED_Cohort_no_allergy_debug.ipynb +++ b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Notebook/PEDs_ED_Cohort_no_allergy_debug.ipynb @@ -2,15 +2,21 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 86, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The google.cloud.bigquery extension is already loaded. To reload it, use:\n", + " %reload_ext google.cloud.bigquery\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/wenyuanchen/anaconda3/lib/python3.11/site-packages/google/cloud/bigquery/__init__.py:237: FutureWarning: %load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.\n", - " warnings.warn(\n", "/Users/wenyuanchen/anaconda3/lib/python3.11/site-packages/google/auth/_default.py:76: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK without a quota project. You might receive a \"quota exceeded\" or \"API not enabled\" error. See the following page for troubleshooting: https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds. \n", " warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)\n" ] @@ -27,7 +33,8 @@ "from pdf2image import convert_from_path\n", "from IPython.display import Image, display\n", "# client=bigquery.Client()\n", - "client = bigquery.Client(\"som-nero-phi-jonc101\")\n" + "client = bigquery.Client(\"som-nero-phi-jonc101\")\n", + "pd.set_option('display.max_columns', None)" ] }, { @@ -39,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -71,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -103,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -117,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 219, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -423,13 +430,13 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "fad45c29a1064acaa7651270cb7000b0", + "model_id": "8f9e59372a324fd88f8822324880df91", "version_major": 2, "version_minor": 0 }, @@ -443,7 +450,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c3c612f2cd27441093afd335cd00189a", + "model_id": "7100bc2919d84b038403c7aeb383e4bf", "version_major": 2, "version_minor": 0 }, @@ -774,41 +781,70 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for adult urine only culture is 64772\n" + "the unique order number for adult urine only culture is 64750\n", + "the unique patient encounter number for adult urine only culture is 59647\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_50557/1511061011.py:4: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n", + " print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))\n" ] } ], "source": [ - "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort)))" + "condition = (starting_cohort['was_positive'] == 1) & (starting_cohort[\"organism\"].isnull())\n", + "print(\"the unique order number for adult urine only culture is {}\".format(find_unique_orders(starting_cohort[~condition])))\n", + "starting_cohort = starting_cohort[~condition]\n", + "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort[~condition])))" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique patient encounter number for adult urine only culture is 59653\n" + "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort replaced with new data from CSV.\n" ] } ], "source": [ - "print(\"the unique patient encounter number for adult urine only culture is {}\".format(find_unique_patient_encounter(starting_cohort)))" + "# # Define table ID\n", + "# table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort\"\n", + "\n", + "# # Define job config with WRITE_TRUNCATE to replace the table\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + "# autodetect=True, # Automatically detect schema\n", + "# source_format=bigquery.SourceFormat.PARQUET\n", + "# )\n", + "\n", + "# # Upload DataFrame to BigQuery\n", + "# job = client.load_table_from_dataframe(\n", + "# starting_cohort, table_id, job_config=job_config\n", + "# )\n", + "\n", + "# job.result() # Wait for the job to complete\n", + "\n", + "# print(f\"Table {table_id} replaced with new data from CSV.\")" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -817,13 +853,13 @@ "" ] }, - "execution_count": 17, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAI3CAYAAABtfUGQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWsklEQVR4nO3deViU9eL//9cAsogyAgpIopCSG5pLJ4QyLcUlzUo7LRRZmVqa5nZMP50UW1zLLK1zWiwtM8/R1JNWuORyjrmGUWlmuW+gpogbgsL790df5ucIKKNzi8jzcV1zXc19v2de73uc7np5L2MzxhgBAAAAANzKo7QnAAAAAADXI8oWAAAAAFiAsgUAAAAAFqBsAQAAAIAFKFsAAAAAYAHKFgAAAABYgLIFAAAAABagbAEAAACABShbAAAAAGAByhaAQqZNmyabzSZfX1/t3r270PrWrVsrJiamFGYmrVixQjabTXPmzCmVfFft2rVLnTp1UlBQkGw2mwYMGFDsWJvNpueee67IdXPmzJHNZtOKFSsuaw42m03Tpk1z+bVXkzu3v3Xr1mrdurX7Juei48eP67XXXtMtt9yigIAA+fj4KDIyUk899ZQ2btx4We8ZGRmpJ554wvH8wIEDSk5OVlpamnsmbYEjR45o+PDhatCggSpWrKiAgAC1aNFC77zzjs6ePXvF75+cnCybzeaGmZZ9O3fuVOXKldWtW7ci18+cOVM2m03vvffeVZ4ZUL55lfYEAFy7cnJy9Pe//12ffvppaU+lzBo4cKDWrVunjz76SGFhYapevfpVn0P16tW1Zs0a1a5d+6pnl5Z333231LK3b9+udu3a6dChQ3rmmWc0atQoVapUSbt27dK///1vNW/eXMeOHZPdbr+inAMHDmjUqFGKjIxUkyZN3DN5N/r111/Vrl07nTx5UoMHD1Z8fLyys7O1cOFCPf/885o9e7a+/vprVaxYsbSnel2IiorSxIkT1atXL82cOVOJiYmOdRkZGerXr5/at2+v3r17l+IsgfKHsgWgWB06dNDMmTM1ZMgQ3XzzzaU9nasqOztbvr6+V/y35ps2bdKtt96q++67zz0Tuww+Pj5q0aJFqeVfTadPn1bFihXVoEGDUsnPy8vT/fffrz/++ENr1qxxOgLcqlUrde/eXd98840qVKhQKvMriby8PJ07d04+Pj5X9B7dunXT8ePHtX79et10002OdXfffbdatWqlhx9+WIMGDdI///lPS+fiioLvz7XMGKMzZ87Iz8+v0LqePXtq3rx56tevn+68807HX+707t1bxhhNnTr1qsyxLHyOwNXCaYQAijV06FAFBwfrhRdeuOi4i52mZrPZlJyc7HhecNrPTz/9pL/+9a+y2+0KCgrSoEGDdO7cOW3dulUdOnRQ5cqVFRkZqfHjxxeZeebMGQ0aNEhhYWHy8/NTq1at9MMPPxQa9/3336tLly4KCgqSr6+vmjZtqn//+99OYwpOm1y8eLGeeuopVatWTRUrVlROTk6x27xnzx499thjCgkJkY+Pj+rXr6833nhD+fn5kv7/0x23bdumb775RjabTTabTbt27broZ+mKgtM5N2zYoJYtW6pixYq68cYbNXbsWMc8pOL/fL766is1adJEPj4+ioqK0uuvv17otCxX/mwl6ffff1diYqLT5/LOO++4bZvPV7D9//3vfxUfH6+KFSvqqaeecqw7/zTCgu14/fXXNXHiREVFRalSpUqKi4vT2rVrC713Sb43RZk/f75+/vlnDR8+vNhTbTt27Oj4H9EnnnhCkZGRhcZc6vS4FStW6C9/+Ysk6cknn3R8vwr+PIo7jfLCvILPZfz48Xr11VcVFRUlHx8fLV++/Io+h3nz5umXX37RsGHDnIpWgYceekjt2rXT1KlTlZGRUaK5FPV9LYoxRu+++66aNGkiPz8/BQYG6oEHHtCOHTucxl3s+7Ns2TK1bt1awcHB8vPzU82aNdWtWzedPn36otsdGRmpzp07a968eWrcuLF8fX1144036u233y409vjx4xoyZIiioqLk7e2tG264QQMGDNCpU6ecxhWcXvvPf/5T9evXl4+Pj6ZPn17sHAoKVa9evSRJn376qb788ktNmTJFN9xwQ4k/nyVLlujee+9VjRo15Ovrqzp16qh37976448/nMYVfFc3btyoBx54QIGBgeXqKDpwKRzZAlCsypUr6+9//7uef/55LVu2THfddZfb3vvBBx/UY489pt69e2vJkiUaP368zp49q6VLl6pPnz4aMmSIZs6cqRdeeEF16tRR165dnV7/f//3f2rWrJk+/PBDZWVlKTk5Wa1bt9YPP/ygG2+8UZK0fPlydejQQbGxsfrnP/8pu92uWbNm6aGHHtLp06edrn+RpKee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mi0Al2Sz2TRu3DglJCTo/fffL7S+oCBdeEOJyy0dJVFwUf2Fywr+Z7rgb3KHDx9e6HqvAnXr1nV6XtI7DwYHBys9Pb3Q8gMHDjhluyo0NFT79+8vcl3B8vOvN7lcgYGBstlsxX6G5yvpn21gYKA8PT2VlJSkvn37FpkbFRV10Xldzva7+zeWLud7c7727dvr/fff1/z58zVs2LBL5vn6+hZ5I5ZLFdOSvG9WVlaJ3/fCz/FKP4eCfcXFPof58+fLy8ur0I08LpyLK9/XqlWrymaz6X//+1+RdzC8cFlx35+WLVuqZcuWysvL0/fff6/JkydrwIABCg0Ndbq+rCgXm+f5+yc/Pz999NFHRb7HhfsQd33PS/r5bNq0ST/++KOmTZum7t27O9Zv27at2Pfm986AolG2AJRI27ZtlZCQoJdffrnQ30SHhobK19dXP/30k9Py//znP5bN5/PPP9egQYMc/4HfvXu3Vq9e7bgpRN26dRUdHa0ff/xRo0ePdmt2mzZtNGbMGG3cuFHNmjVzLP/kk09ks9l05513Xtb7tm3bVnPnztXhw4dVrVo1x3JjjGbPnq3IyEjVqVPniufv7++vW2+9VXPnztWECRMcherEiRNasGCB09iS/tlWrFhRd955p3744Qc1btzY6W/TS+pqbf/FXOn35t5771WjRo00ZswYde7cucg7Ei5atMhx98jIyEgdOnRIBw8edBTJ3NxcLVq06JJZFx6VO19kZKRmz56tnJwcx7gjR45o9erVCggIuOR7X+nncP/996tBgwYaO3asunbtWuiOhP/617+0ePFiPfPMM5c8murK97Vz584aO3as9u/frwcffNDleV/I09NTsbGxqlevnj777DNt3LjxkmVr8+bN+vHHH51OJZw5c6YqV67s2F907txZo0ePVnBw8CX/EsKdSvr5FOxXLyxk/CAy4DrKFoASGzdunJo3b65Dhw6pYcOGjuUF1wB89NFHql27tm6++WatX79eM2fOtGwuhw4d0v3336+ePXsqKytLI0eOlK+vr4YPH+4Y895776ljx45q3769nnjiCd1www06evSotmzZoo0bN2r27NmXlT1w4EB98skn6tSpk15++WXVqlVLX331ld599109++yzRd7quiRGjBihBQsWKDY2VsOGDVN0dLQyMjL0wQcfaMOGDW69Zu6VV15Rhw4d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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAI3CAYAAABtfUGQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWt0lEQVR4nO3deViU9eL//9cAsogyAgpIopCSG5pLJ4QyLcUlzUo7LRRZmVqa5nZMP50UW1zLLK1zWiwtM8/R1JNWuORyjrmGUWlmuW+gpogbgsL790df5ucIKKNzi8jzcV1zXc19v2de73uc7np5L2MzxhgBAAAAANzKo7QnAAAAAADXI8oWAAAAAFiAsgUAAAAAFqBsAQAAAIAFKFsAAAAAYAHKFgAAAABYgLIFAAAAABagbAEAAACABShbAAAAAGAByhaAQqZNmyabzSZfX1/t3r270PrWrVsrJiamFGYmrVixQjabTXPmzCmVfFft2rVLnTp1UlBQkGw2mwYMGFDsWJvNpueee67IdXPmzJHNZtOKFSsuaw42m03Tpk1z+bVXkzu3v3Xr1mrdurX7Juei48eP67XXXtMtt9yigIAA+fj4KDIyUk899ZQ2btx4We8ZGRmpJ554wvH8wIEDSk5OVlpamnsmbYEjR45o+PDhatCggSpWrKiAgAC1aNFC77zzjs6ePXvF75+cnCybzeaGmZZ9O3fuVOXKldWtW7ci18+cOVM2m03vvffeVZ4ZUL55lfYEAFy7cnJy9Pe//12ffvppaU+lzBo4cKDWrVunjz76SGFhYapevfpVn0P16tW1Zs0a1a5d+6pnl5Z333231LK3b9+udu3a6dChQ3rmmWc0atQoVapUSbt27dK///1vNW/eXMeOHZPdbr+inAMHDmjUqFGKjIxUkyZN3DN5N/r111/Vrl07nTx5UoMHD1Z8fLyys7O1cOFCPf/885o9e7a+/vprVaxYsbSnel2IiorSxIkT1atXL82cOVOJiYmOdRkZGerXr5/at2+v3r17l+IsgfKHsgWgWB06dNDMmTM1ZMgQ3XzzzaU9nasqOztbvr6+V/y35ps2bdKtt96q++67zz0Tuww+Pj5q0aJFqeVfTadPn1bFihXVoEGDUsnPy8vT/fffrz/++ENr1qxxOgLcqlUrde/eXd98840qVKhQKvMriby8PJ07d04+Pj5X9B7dunXT8ePHtX79et10002OdXfffbdatWqlhx9+WIMGDdI///lPS+fiioLvz7XMGKMzZ87Iz8+v0LqePXtq3rx56tevn+68807HX+707t1bxhhNnTr1qsyxLHyOwNXCaYQAijV06FAFBwfrhRdeuOi4i52mZrPZlJyc7HhecNrPTz/9pL/+9a+y2+0KCgrSoEGDdO7cOW3dulUdOnRQ5cqVFRkZqfHjxxeZeebMGQ0aNEhhYWHy8/NTq1at9MMPPxQa9/3336tLly4KCgqSr6+vmjZtqn//+99OYwpOm1y8eLGeeuopVatWTRUrVlROTk6x27xnzx499thjCgkJkY+Pj+rXr6833nhD+fn5kv7/0x23bdumb775RjabTTabTbt27broZ+mKgtM5N2zYoJYtW6pixYq68cYbNXbsWMc8pOL/fL766is1adJEPj4+ioqK0uuvv17otCxX/mwl6ffff1diYqLT5/LOO++4bZvPV7D9//3vfxUfH6+KFSvqqaeecqw7/zTCgu14/fXXNXHiREVFRalSpUqKi4vT2rVrC713Sb43RZk/f75+/vlnDR8+vNhTbTt27Oj4H9EnnnhCkZGRhcZc6vS4FStW6C9/+Ysk6cknn3R8vwr+PIo7jfLCvILPZfz48Xr11VcVFRUlHx8fLV++/Io+h3nz5umXX37RsGHDnIpWgYceekjt2rXT1KlTlZGRUaK5FPV9LYoxRu+++66aNGkiPz8/BQYG6oEHHtCOHTucxl3s+7Ns2TK1bt1awcHB8vPzU82aNdWtWzedPn36otsdGRmpzp07a968eWrcuLF8fX1144036u233y409vjx4xoyZIiioqLk7e2tG264QQMGDNCpU6ecxhWcXvvPf/5T9evXl4+Pj6ZPn17sHAoKVa9evSRJn376qb788ktNmTJFN9xwQ4k/nyVLlujee+9VjRo15Ovrqzp16qh37976448/nMYVfFc3btyoBx54QIGBgeXqKDpwKRzZAlCsypUr6+9//7uef/55LVu2THfddZfb3vvBBx/UY489pt69e2vJkiUaP368zp49q6VLl6pPnz4aMmSIZs6cqRdeeEF16tRR165dnV7/f//3f2rWrJk+/PBDZWVlKTk5Wa1bt9YPP/ygG2+8UZK0fPlydejQQbGxsfrnP/8pu92uWbNm6aGHHtLp06edrn+RpKee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mi0Al2Sz2TRu3DglJCTo/fffL7S+oCBdeEOJyy0dJVFwUf2Fywr+Z7rgb3KHDx9e6HqvAnXr1nV6XtI7DwYHBys9Pb3Q8gMHDjhluyo0NFT79+8vcl3B8vOvN7lcgYGBstlsxX6G5yvpn21gYKA8PT2VlJSkvn37FpkbFRV10Xldzva7+zeWLud7c7727dvr/fff1/z58zVs2LBL5vn6+hZ5I5ZLFdOSvG9WVlaJ3/fCz/FKP4eCfcXFPof58+fLy8ur0I08LpyLK9/XqlWrymaz6X//+1+RdzC8cFlx35+WLVuqZcuWysvL0/fff6/JkydrwIABCg0Ndbq+rCgXm+f5+yc/Pz999NFHRb7HhfsQd33PS/r5bNq0ST/++KOmTZum7t27O9Zv27at2Pfm986AolG2AJRI27ZtlZCQoJdffrnQ30SHhobK19dXP/30k9Py//znP5bN5/PPP9egQYMc/4HfvXu3Vq9e7bgpRN26dRUdHa0ff/xRo0ePdmt2mzZtNGbMGG3cuFHNmjVzLP/kk09ks9l05513Xtb7tm3bVnPnztXhw4dVrVo1x3JjjGbPnq3IyEjVqVPniufv7++vW2+9VXPnztWECRMcherEiRNasGCB09iS/tlWrFhRd955p3744Qc1btzY6W/TS+pqbf/FXOn35t5771WjRo00ZswYde7cucg7Ei5atMhx98jIyEgdOnRIBw8edBTJ3NxcLVq06JJZFx6VO19kZKRmz56tnJwcx7gjR45o9erVCggIuOR7X+nncP/996tBgwYaO3asunbtWuiOhP/617+0ePFiPfPMM5c8murK97Vz584aO3as9u/frwcffNDleV/I09NTsbGxqlevnj777DNt3LjxkmVr8+bN+vHHH51OJZw5c6YqV67s2F907txZo0ePVnBw8CX/EsKdSvr5FOxXLyxk/CAy4DrKFoASGzdunJo3b65Dhw6pYcOGjuUF1wB89NFHql27tm6++WatX79eM2fOtGwuhw4d0v3336+ePXsqKytLI0eOlK+vr4YPH+4Y895776ljx45q3769nnjiCd1www06evSotmzZoo0bN2r27NmXlT1w4EB98skn6tSpk15++WXVqlVLX331ld599109++yzRd7quiRGjBihBQsWKDY2VsOGDVN0dLQyMjL0wQcfaMOGDW69Zu6VV15Rhw4d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rDF2u93tucYYExgYeNFHQECAZV/iOnXqmAULFjieb9u2zURHR5snnnjC5OfnW/q3NNWrVzdr1qwxxhhz5MgRY7PZzNKlSx3rly1bZm688UZLsm+++WbTqVMns2XLFrNr1y6za9cus3PnTuPl5WWWLFniWGYFm83m+B+iJk2amKlTpzqt/9e//mXq169vSbafn5/Ztm2bMebPz3/jxo1O67du3WrZ9zwgIMCRffbsWePl5WV++OEHx/rffvvNsuyqVaua77//3vH86NGjxtfX13EUYMqUKaZJkyaWZLNv+RP7FvYtVn3PC7b77NmzZs6cOebuu+82np6eJjQ01AwdOtT8+uuvluQaw36tOOzX3K+87te4ZssCc+fOVUpKim6++WZJ0gcffKDw8HCNHDlSTz31lLKzszVhwgQlJia6Pdtms13WuiuVk5OjZ599ttjzunfv3q1Ro0ZZkr1//37FxMQ4nteuXVsrVqzQXXfdpaSkJI0fP96SXOnPawluuOEGSVJQUJAqVqyoWrVqOc0lPT3dkuz169dr6NCh6tatm2bMmKGmTZs61oWHhzvNwwoF36e9e/fq1ltvdVp36623avfu3ZbkNm7cWMuWLVPt2rUVFham3bt3O2377t275efnZ0m2t7e3zpw5I0nKzc1Vfn6+47kkZWdnW3a++blz55yuX6hUqZLOnTunU6dOqWLFimrXrp2GDBliSbbEvkVi3yKxb7Fq31LAy8tL3bp1U7du3bR//3599NFHmjZtml5//XXddttt+u9//+v2TPZrrq+7UuzXytl+zZIKV85VqVLFcSqCMX+efuDl5WUOHTpkjPnzb4l8fX3dnvvYY4+Zxo0bmw0bNhRat2HDBtOkSROTlJTk9lxjjImPjzeTJk0qdr2Vh8SjoqKc/makwP79+81NN91k2rZta1l2zZo1zbp16xzPX3jhBXPkyBHH87S0NFO1alVLsgt8/fXXpkaNGmb06NEmLy/PeHl5mc2bN1uaabPZzGuvvWbeeustEx4ebv773/86rU9LSzOBgYGWZC9cuNAEBQWZjz/+2Hz88ccmMjLSfPjhh+a7774zH330kYmIiDB/+9vfLMm+9957TefOnc2qVatMr169zC233GI6depkTp48aU6dOmUeeOAB06FDB0uyExISnE6vmDBhgqlevbrj+caNGy37rrFvcca+xTrl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jZ+fn9tzySabbLLJJptssskmm+zCPNx/rAwrV67U4MGD5eHx58c7aNAgLV26VEeOHFF0dLQmTZqk6dOnuz03MDBQv//+e7Hrt23bpsDAQLfnkk022WSTTTbZZJNNNtlFsKTClXPh4eEmNTXV8TwzM9PYbDZz/PhxY4wxO3bssORHjUeOHGnsdruZMGGCSUtLM+np6SYjI8OkpaWZCRMmmMDAQDNq1Ci355JNNtlkk0022WSTTTbZhVG2LNC9e3fTqlUrs2XLFrNjxw7z0EMPmaZNmzrWr1ixwkRERFiSPXbsWMd1Yh4eHsbDw8PYbDZTvXr1i/5KO9lkk0022WSTTTbZZJPtXtyN0AKHDh3Svffeq3Xr1slms6lmzZqaO3eumjZtKkmaM2eO0tPT1a9fP8vmsHPnTmVkZEj680dPo6KiLMsim2yyySabbLLJJptssgujbFno999/V05OjurVqycvL6/Sng4AAACAq4gbZFgoOjpaMTExhYrW3r179dRTT1mSmZ2drVWrVumXX34ptO7MmTP65JNPLMklm2yyySabbLLJJptssi9g2QmKKFZaWprx8PBw+/tu3brV1KpVy3EuaqtWrcyBAwcc6zMyMizJJZtssskmm2yyySabbLIL48iWBb788suLPpYvX25J7gsvvKBGjRrp0KFD2rp1qwICAnTbbbdpz549luSRTTbZZJNNNtlkk0022RdhSYUr5wpas81mK/ZhRXsOCQkxP/30k9OyPn36mJo1a5rt27db2trJJptssskmm2yyySabbGfctcEC1atX1zvvvKP77ruvyPVpaWlq3ry523Ozs7MLXR/2zjvvyMPDQ61atdLMmTPdnkk22WSTTTbZZJNNNtlkF8OSClfO3XPPPeall14qdn1aWpqx2Wxuz/3LX/5iPvnkkyLX9e3b11SpUsWy1k422WSTTTbZZJNNNtlkO6NsWeC///2v+eabb4pdf/LkSbNixQq3544ePdp07Nix2PXPPvusJSWPbLLJJptssskmm2yyyS6M39kCAAAAAAtwN0IAAAAAsABlCwAAAAAsQNkCAAAAAAtQtgAAAADAApQtAEC5ZIxR27Zt1b59+0Lr3n33Xdntdu3Zs6cUZgYAuF5QtgAA5ZLNZtPHH3+sdevW6b333nMs37lzp1544QW99dZbqlmzplszz54969b3AwBc2yhbAIByKyIiQm+99ZaGDBminTt3yhijHj16qE2bNrr11lt19913q1KlSgoNDVVSUpL++OMPx2tTUlJ0++23q0qVKgoODlbnzp21fft2x/pdu3bJZrPp3//+t1q3bi1fX1/NmDGjNDYTAFBK+J0tAEC5d9999+nYsWPq1q2bXnnlFW3YsEG33HKLevbsqccff1zZ2dl64YUXdO7cOS1btkyS9MUXX8hms6lRo0Y6deqURowYoV27diktLU0eHh7atWuXoqKiFBkZqTfeeENNmzaVj4+PwsPDS3lrAQBXC2ULAFDuHTp0SDExMTpy5IjmzJmjH374QevWrdOiRYscY/bt26eIiAht3bpVN910U6H3OHz4sEJCQvTzzz8rJibGUbYmTZqk559//mpuDgDgGsFphACAci8kJES9evVS/fr1df/99ys1NVXLly9XpUqVHI969epJkuNUwe3btysxMVE33nijAgICFBUVJUmFbqpxyy23XN2NAQBcM7xKewIAAFwLvLy85OX1538W8/Pzdc8992jcuHGFxlWvXl2SdM899ygiIkIffPCBwsPDlZ+fr5iYGOXm5jqN9/f3t37yAIBrEmULAIALNGvWTF988YUiIyMdBex8R44c0ZYtW/Tee++pZcuWkqRVq1Zd7WkCAK5xnEYIAMAF+vbtq6NHj+qRRx7R+vXrtWPHDi1evFhPPfWU8vLyFBgYqODgYL3//vvatm2bli1bpkGDBpX2tAEA1xjKFgAAFwgPD9d3332nvLw8tW/fXjExMXr++edlt9vl4eEhDw8PzZo1S6mpqYqJidHAgQM1YcKE0p42AOAaw90IAQAAAMACHNkCAAAAAAtQtgAAAADAApQtAAAAALAAZQsAAAAALEDZAgAAAAALULYAAAAAwAKULQAAAACwAGULAAAAACxA2QIAAAAAC1C2AAAAAMAClC0AAAAAsABlCwAAAAAs8P8B46pbwPGVsz0AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -839,30 +875,6 @@ "unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, - { - "cell_type": "code", - "execution_count": 567, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAACJgAAAakCAIAAAA9C6TfAAD64ElEQVR4nOzdeUBU1f//8QMMCCrI4oqaIiiuiRtuuaGVBqmV33Kt1Myl0I+aS6lZmZallplrn8RPamppLqm5Gygq7guYC1KioKCCijAsA/P743y/9zefGWYc1rni8/HXmzvn3nvm3hnK++KcY6fX6wUAAAAAAAAAAADUx97WHQAAAAAAAAAAAED+CHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUIcgAAAAAAAAAAAFSKIAcAAAAAAAAAAEClCHIAAAAAAAAAAABUiiAHAAAAAAAAAABApQhyAAAAAAAAAAAAVIogBwAAAAAAAAAAQKUI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L1myZMyYMWlpaUKINWvWbNy4sW3btg0aNHBzc8vKykpISIiKijKcoGnEiBFvvPGGlcfPlw2vszWGDx8+ffp0IURYWFh8fHzv3r39/PzKlSt369at3bt3K5+fgQMH5rsqu6natWt7e3snJibm5OQIkwVyJF9fX3d39/v378uUqFmzZoZfGevVrVvXx8fn77//FkKMHz++W7ducthQaGiolb19cr333nuRkZHx8fFpaWlvvvlm3759W7Vq5eLicvv27T/++EPJjAcPHqyMnilGfJUKoW3btidOnFB+NB2pZsjo1UaNGhXuOyKe7q8JyiqCHAAAAAAAnhZZWVk3b9603EZZfCI9PV1ZwGbMmDHly5c3atmrV681a9ZcvHjx/v37ixcv/vDDD5WXypcvv3Tp0vfff//q1at5eXm///7777//brR77969851xaNy4cadPn5ZzW8nlRkJCQpQgp3fv3r///rt8Ynv37l3DsSkuLi5z5szx9PS0EOS0adNm4sSJ8+fPF0Lcv39/2bJlhq9279591qxZFia8qlix4tKlS0NDQ+Pi4jIyMpYvX758+XKjNr6+vvPnz1emgCuWU5crV87V1VU+PhZCGA6NskazZs3WrFkzbdq06OhoIURmZmZ4eHh4eLhpS1dX16lTpxb9b/NteJ2tERISEhcXJwPL/fv379+/37RN165dR48ebf0xO3bs+Ouvv8o636fVcpkc5VyFm1dNmjZt2qhRo3Q6nVar3blzp9w4YsSIMv+EumLFisuXL3///fevXbuWlZW1YcMG09FpAwYMmDBhQgl1gK9SQbVr1+77779XfrQc5DzzzDM1atS4deuWsm9RTv3Ufk1QVjG1GgAAAAAAyMeyZcvu3r0rhPDx8XnllVdMG9jZ2SkPTH/55RejmY6qVau2du3aiRMn1qpVy2ivNm3afPfdd5999pkyi5ohPz+/9evX9+3bt2bNmqYNHBwcvv/++379+ilrWQshNBpN9+7dN2zY0K1bN7kkgwVDhgz5/vvvlWRIqlWr1syZM+fNm1e+fHnDI5uqWbPm2rVrR4wY4eXlZfRS1apVx4wZs2bNGnNBS6FP7eDg8OGHH8qr4e3t/e6771p+j6bq1Knz008/ffXVV+3bt8/3sj/zzDNjxozZvn17cc2wZMPrbI2xY8euWLEi36vh7+8/a9asb7755rGfJUPK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+eyzz4b1zTfffBgvsXTp0v3794d1wStvjkZ3gB87K3IAAAAA+BG78sor33jjjWXLlsVisVGjRv3tb38rUeKI/u1y/fr1L7roosK3L+RWaWHWUqlSpb/97W9PPvlkVlZW/FZKSsrXX3/92muvtWvX7qGHHjrppJOyd9y6dWtYxM+JmTdv3quvvrpo0aKMjIzs0/7lL3/5y1/+slSpUoWffGjQoEFffPHFqlWrtm7des0119x8883nn39+hQoVtm/fPmvWrClTpoQ5yvXXX9+pU6dDHTwIgpdeeiks6tat26xZs2PcHeDHTpADAAAAwI9YiRIlfve731133XWxWGzZsmWvv/76VVdddSQDduvWrVu3bkU1vVAsFgvP3dmxY8cTTzwRXqxRo0a5cuV27twZ3zfso48++tWvfvXCCy9kz3LiB/ZUrFhxy5YtQ4YM+fjjj3O/xLfffvvoo4+++eab48aNyxEFHdQJJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r17H9KwoUWLFs2ePTusb7755oSEhGPZHeA4YGs1AAAAAH7cmjdv3rNnz7AeN25c/DSa6EhNTc3MzAyCIBaLJScn33nnnf/+97/ffffd11577b333nvzzTfj0dF33303dOjQ7H337dsXFlu2bOnVq1eY4pQuXfqss8668sore/Xq1alTp7Jly4ZtVq5cefvtt8e7FF65cuU6dOjQuHHjPO+2b9++TZs2hzpmOOf7778/rNu0aXP55Zcfy+4AxwcrcgAAAAD40RswYMCsWbNSUlJ27tz55JNPDhs2rLhn9P/Ys2dPvXr1giBISkoaOXJko0aNst+tW7fuyJEjq1SpMnny5CAIPvroo4ULF5577rk5Blm/fn0QBBUqVOjXr1+PHj3i4U0QBKmpqQ8++OB7770XBMGqVasmTZrUr1+/wk9vy5Yt99577+effx7+WKtWrZYtW5YpU2b37t3Lli3btm3bO++8884771x11VX33Xdf6dKlCznszp07+/fvH+4pV7ly5UceeeSQdr07wu4Axw1BDgAAAAA/ehUqVLjjjjuGDx8eBMG0adOuvPLKli1bHt5Q8+fPX7RoUeHb9+jRo2HDhgW3qVmz5vTp0wtu85vf/GbGjBkpKSlBELzzzjvxICf7mTenn376o48+Wq1atRx9y5cv//DDD2/a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N0JycvKYMWOeeOKJM844I/fds846a/z48UOGDClZsmTul/7d734X37KsQoUKORqUL1/+T3/601NPPXXeeefl3tnshBNO6Nat29SpU+++++7cgwNwtCXEYrHingMAwI9AZmZmnTp18lyUEwTBlClT4nusAcAxlpCQEBZLly4t1okAhZWRkbFq1arNmzdnZGQkJyefcsopdevWjf+3XBg//PDDN998s3379hIlSlSpUqVx48YVK1YsuMuOHTu6du2alZXVv3//X//61/k1S0tLW7169datW/fv31+2bNlatWo1aNBAfgPHWJs2bYIg8O09IUEOAEBhvfTSS9ddd13u6zVq1NiwYYNDWQEoLoIcoDDeeeed3/3ud0EQvPHGG6ecckpxTwcoiCCH7GytBgBQWFdffXWNGjVyXx8zZowUBwCAKFu1atUjjzwSBEGPHj2kOAA/LoIcAIDCyvOkHKfjAAAQcTNnzrzhhht27tx52mmn3XfffcU9HQAOjSAHAOAQ5F6UYzkOAAARl5GRsXfv3m7duk2cODE5Obm4pwPAoXFGDgDAocl+Uo7TcQCIAmfkAAXbv3//559/3rZt2+KeCFBYzsghOytyAAAOTfZFOZbjAAAQfaVLl5biAPx4CXIAAA5N/KQcp+MAAAAAR5sgBwDgkIWLcizHAQAAAI42Xz0AAByyxMTE55577uKLLy7uiQAAAADHOUEOAMDhuOyyy4p7CgAAAMDxz9ZqAAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACJKkAMAAAAAABBRCbFYrLjnAABHICGhuGcAcPzylwX4kUjwJyIAOB759p6QFTkAAAAAAAARJcgBAAAAAACIqMTingAAFIHPly4t7ikAHD9at2lT3FMADo19VwAAjmNW5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAABFafv27VlZWcU9CwAAADhOJBb3BADgJyQ9Pf3SSy9NS0sLgiA5Ofmdd95JSko6wjG3bNlyxRVXhPVbb71VtWrVI53l/1m+fPn//M//hPXcuXPLlClTVCMHQTBgwIAlS5bkeat06dLVqlVr0aJF165dzz///BIl/LuTH409e/bceuuty5cvr1at2rPPPlu/fv3inlFOqampXbt2Devbb7+9T58+B+1yzjnnhMVNN9106623BkFw//33z549+5Bet0+fPrfffntYx3/527Zt++STTx7SOAAAAPwECXIA4NiZP39+SkpKWKenp8+fP79z585HPmx6enpYxGKxIx8t7sCBA/GRi9y+ffvyGzw9PX3Xrl1r1qx58803mzVrNnLkyAYNGhylaVC05s+fv3z58iAIvv/++3/84x933313cc8op1gsFv/Fy8jIKEyX3O0L+O3NT2ZmZryOd9+3b98hDQIAAMBPkyAHAI6dmTNnZv/xX//6V5EEOcXl3XffffHFF4MgaNKkybBhww5vkFKlSp144onxH2Ox2O7du3fv3h3++NVXX/3qV7/6y1/+0rRp0yOfMEfooE+8Vq1a8bpOnTrHbmbHVnJycrly5XJc3LNnT5iklixZMjk5Ocfd0qVLH6PJAQAAcNwR5ADAMZKWljZv3rwgCE444YSsrKz09PR58+alp6cf+e5qxWXbtm3h8ovExMP/E8Xpp5/+7LPP5ri4du3av/71r2+++WYQBLt37x40aNC0adNyfznOMXbQJ96yZcsnn3xy/vz5p5566pVXXnlsZ3fsPPTQQ7kv9u7d+6uvvgqCoH379k888cSxnhMAAADHL5vOA8Ax8uGHH4b7KbVv3/68884LgiAtLW3+/PnFPa8oatCgwYMPPjhgwIDwx02bNr388svFOyUKqX379oMHD77qqqscbgQAAABFwl+wAeAYie+rduGFF1500UVh/a9//avYJhR5N910U/369cN6xowZxTsZAAAAgGJhazUAOBbS0tI++OCDIAgSExMvuOCCjIyMhISEWCxW+N3VNm7cOHv27NWrV+/fv79GjRrnnHNOu3btEhISCuiSmpoaX/HTuXPnUqVK5W7z/ffff/LJJ0EQlCxZsmvXroV5L+vXr//yyy+DIAg3kgqCYMeOHe+++268QadOnYrkRJASJUp06tTpueeeC4Jg7dq1qamp5cuXD4IgKyvrvffeC9t06dIl3Obrs88+W7JkyQ8//HDvvffmHiojI2Px4sWfffbZd999FwRB1apVW7dufcEFF5QpU6bgOYSrppYvX/7999/HYrFKlSo1bty4ffv2VatWzd34CD/w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bYrgopwuXbokJiYGQbB+/frZs2fn2ebRRx/t1q1bt27dsn+Me/bsue6666677rpevXrt3Lkzd6/MzMw9e/aEdaVKleLXj/ADP5b+9Kc/7dq1K/f1BQsWrFmzJqxzhytH/sTD3dWCIFi7du2KFSs+//zzIAiaNm168skn52582E+wYN27d4/Xo0ePLmDt1AcffBCuHAqC4JJLLgknAwAAAMeYIAcAjor4Jmlt2rQ56NEa9erVq1+/fo6OQRC0atWqSZMmYT169OgcJ4Vs2bLl1ltvjX/tnlupUqVatmwZ1s8//3z2L+5jsdjrr79+yy237N69O7/utWrVin9z/d577+VucOqpp4ZFamrq4sWL839/xePEE0/8xS9+EdYjRoxYt25djgbLli176623wrpbt27x61WqVIk/jr/+9a+5R54xY8b+/fuDIEhKSop/CMERf+DH0oYNG/r165djFcumTZv+8Ic/hHW9evXOO++8HL2K5InHd1F7+OGHwzQoz33VgiN4ggWrV6/eZZddFtZLliwZOHDgxo0bc7TJzMycNm3ab3/72/DHpKSkG2+8sZDjAwAAQNHy7woBoOht3749vq9anntG5dahQ4dvv/02CIJ58+alpaXFN+n67W9/27dv3yAItm7d2qtXr169ep166ql79+794osvZsyYkZaW1qFDhwI2nurRo0e46GH9+vW/+MUvOnfuXKlSpe3bty9evHjDhg0JCQm9e/d++eWX8+xbunTpc889N1yR8PTTTy9evLhGjRo33nhjo0aNwgannHJK/fr1w2nfddddHTt2DJenDBgwIPsmY8Vo4MCBixYtWr9+fUpKSu/evfv06XPOOedUrlw5JSVlwYIFkydPDldjtGrVKkeWcMsttwwdOjQIgkmTJq1fv/7yyy9v1KhRmTJlNm/ePHPmzPgndu211+Z4p0fygR9LzZs3//LLL3v06NGtW7eWLVuWKlXqm2++mTZtWjxnGjx4cIkSOf/FT5E88c6dO4cRzvLly8MrXbp0ya/xYT/Bgt13333Lly9fv359EAQLFizo3r1769atmzRpUqFChczMzI0bN3788cc7duyItx86dGjt2rULPz4AAAAUIUEOABS99957L77xVMeOHQvT5cILL/zb3/4W/N/uavFvpdu2bXv33XePGTMmCIIffvjhmWeeyd6rc+fOI0aMyL1yIu7yyy//5z//+emnnwZBsG3btldeeSV+Kzk5edSoUVWqVCkgV7jjjjs+/fTTcBuxMJrq3r17PMgJgmDIkCH9+vXLzMxMS0t7++23w4t9+/aNSJBTrly5CRMmDBgwYO3atXv37p04ceLEiRNztGnYsOGYMWPiW6KFunfvvnbt2ueffz4Igvfff//999/PPfhFF11022235bh4hB/4MXPvvfc+/fTTS5Ysee2111577bUcd++5555zzz03z45H/sSrVq165plnxpPORo0a1atXL7/Gh/0EC1axYsVJkybde++9n3zySRAEsVhs6dKlS5cuzd0yOTn5gQceuOSSSwo/OAAAABQtW6sBQNGLb0TWqFGjPA//yK1169bx01Zy7GPWp0+fp556Knt8EgTBySef/MADDzz22GNly5aNH0GfW8mSJZ966qmePXtmb5OYmNi5c+dXXnmlY8eOpUqVKmBWjRo1mjp1ao8ePWrXrp3nASFnnXXWlClTLrvssurVqx/SN+nHTO3atadMmdK3b9+qVavmuHXSSSf179//xRdfPOmkk3J3HDhw4LPPPnvuuefmfuNNmjQZMWLEn/70p9yf3hF+4MdMUlLS+PHjBw4cGD/2JtS8efOJEyded911+XUskieefQnOQVfSHPYTLFjVqlX//Oc/jxo1qk2bNgkJCXk2uP7666dPny7FAQAAoHglRPBoYgA4BAkJQRB8ntc/pT/+bNiwYcOGDUEQ1K5du4BFDHlKS0tbu3btnj17ypUrV79+/YismDmWYrHYunXr/vvf/+7bty85Ofnkk0+uU6dOnt/g55CWlrZ69eodO3ZkZmZWqFChQYMGuROFPHtF7QPft2/f2WefHdZTp05t2rRpEASZmZmrVq3asmVLYmJigwYNatWqVaxzLMhhP8GD2r179+rVq7du3Zqenp6YmFipUqW6devWrl27SAb/kWrdps3/Vv6yAAAAUNwEOQD8yP2Ughw4EnkGOZAnQQ4AAEB02FoNAAAAAAAgogQ5AAAAAAAAESXIAQAAAAAAiChBDgAAAAAAQEQJcgAAAAAAACIqsbgnAADAsVC6dOnXXnstrOvUqVO8kwEAAAAKSZADAPCTkJCQ0KhRo+KeBQAAAHBobK0GAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYnFPQEA4Fjbvn17pUqVSpYsWdwTOUxZWVn//e9/t2zZkpaWVqpUqRNPPLFu3bpJSUnFPa+flvApfPfdd2lpaYmJiVWqVDnllFPKli1b3PMCAACA440gBwCKTWpqateuXcP69ttv79Onz0G7nHPOOWFx00033XrrrYf6inv27Ln11luXL19erVq1Z599tn79+oc6QvFavHjxtGnT5s+fv2fPnuzXExMTW7du3b17927dupUuXbrIX3f58uX/8z//E9Zz584tU6ZMkb/Ej8iCBQtee+21hQsXpqWlZb+ekJDQvHnzSy+99KqrrkpOTj4GM9myZcsVV1wR1m+99VbVqlWPwYsCAADAMSbIAYBiE4vF0tPTwzojI6MwXQ61fQ7z589fvnx5EATff//9P/7xj7vvvvswBikWW7dufeCBBxYuXJjn3czMzE8++eSTTz559tlnH3jggXjcVVQOHDgQ/+R/yrZs2fLAAw8sWrQoz7uxWGzFihUrVqyYNGnSAw880KFDh2MwpfhzicVix+DlAAAA4NgT5ADAT0itWrXidZ06dYpxJodk9erV/fv337p1a/hjyZIlW7du3bhx4/Lly6enp3/77bcff/xx+IX+5s2bb7vttt///vdXXnnlsZzhu+++++KLLwZB0KRJk2HDhh3Llz5mVq1addttt23bti38sUSJEm3atAmfwr59+zZt2vTxxx//8MMPQRBs37594MCBd999d2EWmQEAAAAFE+QAwE9Iy5Ytn3zyyfnz55966qnHOOo4bNu2bcue4vziF7+47bbbqlWrlr3N3r17p06dOmHChIyMjFgs9uCDD9aoUePcc889lpMMlzolJh6ff7jaunVr9hTnyiuvvO2220466aTsbTIzM2fMmDFmzJjU1NQgCMaMGVOlSpVu3boVw3QBAADgOHJ8ftcAAOSnffv27du3L+5ZHILhw4fHU5zBgwf36tUrd5uyZcvefPPNrVu3vu222/bv3x+LxUaMGDF9+vRSpUod28ketx544IF4inPvvfdee+21udskJib26NGjdevWN998c0pKShAEDz300BlnnFGzZs1jOlcAAAA4vpQo7gkAAORr4cKFH374YVj37NkzzxQn7swzz/zNb34T1ps2bZo7d+5Rn99Pw/z58+OnE/Xs2TPPFCeufv36jz32WFinpaU99dRTR31+AAAAcFyzIgcAjgdZWVnvvfdeWHfp0iXc4Ouzzz5bsmTJDz/8cO+994a3YrHYzJkzw/qcc86pVKlSniNceOGFycnJQRDs2LFj3rx5a9euTU9Pr1ixYps2bc4555ySJUsWPJmMjIzFixd/9tln3333XRAEVatWbd269QUXXFCmTJlDfV9//etfw6JcuXIDBw48aPurr756woQJaWlpQRDMnTu3S5cu4fXU1NT58+eHdefOnfNcqfP9999/8sknQRCULFmya9euhZne+vXrv/zyyyAIvvrqq/DKjh073n333XiDTp06lS5d+sjnUMjnm10RPoUXXnghLAr5FM4888xLLrkk/BzeeeedO+64I/smbIfxXjZu3Dh79uzVq1fv37+/Ro0a55xzTrt27RISEgo5/0P9KA5phmlpafPnz1++fPn3338fi8UqVarUuHHj9u3bV61atZDTAwAAgIIJcgDgeJCZmTl48OCwnjdvXmZm5n333bdkyZIgCEqUKBH/6jkrKyve7IUXXsge5GQfYcaMGTVq1Hj22WcnTZqUkZGR/YVOPfXUsWPH1qpVK7+ZzJs3b9SoUeE35tlVqVJl0KBB3bt3L/yb2rZt2+LFi8O6e/fuFSpUOGiXpKSks84664MPPgiyhStBEGzZsiX755NniPLNN9+EbZKSkgoZ5CxevHjkyJHZr6xfvz7+QkEQzJkzJx7kHMkcCvl844r3KQRBcO2114ZBzoEDB2bOnNmnT5/Dey8ZGRmPP/74K6+8cuDAgfjFSZMmtWjRYtSoUUlJSQedyWF8FIWf4csvvzx+/PjwTKDsEhMTe/XqNXDgwPjTBwAAgMNmazUAON6kpKT07ds3/N758OzevXvgwIHPPvtsjhQnCIJVq1bdcccdmZmZeXacNm3awIEDwy/NS5QoUa9evYYNG4aJxY4dO4YOHfrMM88Ufhrx9StBEHTs2LGQvX73u99NmTJlypQpo0aNKvxr/Ygc9PlG4Sm0atWqSpUqYR3mankq+L0cOHDgnnvuefnll+MpTnwVzooVK2644Yb169cXPI0j/ygKmOHYsWNHjx4dpjilS5du2LBhkyZNwmwpMzPzxRdfvOeee2KxWMHjAwAAwEFZkQMAx5tHHnlkzZo1iYmJF110UevWrStXrnyoIzzwwANff/11lSpVbrrppvPOO69KlSpbt26dOHHi7NmzgyBYtWrVzJkzu3XrlqPXl19+Gc9OevXq1a9fv3DFT1pa2uTJkydMmBCLxZ555plmzZpdeOGFhZnGsmXLwiIhIaF169aFnHytWrUKWDBUtDp16tSkSZMgCN59992XXnopCIJTTz112LBh8Qbly5cv8hct+PlG5CkkJCSceeaZ4QZly5cvj8Viee6EVvB7eeWVV/7973+Hdbt27e64445mzZplZWUtX7580qRJ8+bNGzFiRAFzKJKPIr8Zrly5ctKkSWF9yy233HLLLWXLlg2CYP/+/W+88cbo0aOzsrLmzp07a9asQq7uAgAAgPwIcgDgeLNw4cJmzZr98Y9/PPnkkw9vhK+//vqss84aM2ZMxYoVwyuVK1d+9NFHe/bs+Z///CcIgvfffz93kPPYY49lZWUFQdCnT5+77747fj05OfnXv/51cnLymDFjwmbt27cvUeLgy4LXrl0bFnXr1i3MJlrHXtWqVcOjUL744ovwygknnHDaaacd1Rct+PlG5yk0atQoDHL27t27devW6tWrH9J72b9//7PPPhvWbdu2HT9+fHhWTYkSJU4//fTTTz/98ccfjx/ek6ci+Sjym+Hbb78dFmefffaAAQPi10uXLn311VevXbt26tSpQRC89957ghwAAACOkK3VAOB407Bhw2efffawU5wgCM4444ynn346nuKEEhMTL7nkkrBeuXJlji6rV6/+9NNPgyAoX758//79c4957bXXhgtlNmzY8NFHHxVmGlu2bAmLmjVrHuI7OJ4V8Hwj9RSyt899RE2ogPfywQcfpKSkhPXgwYPDFCe7u+66q23btvm9elF9FPnNcMOGDWHRokWL3L0uv/zya6+99tprrz3aqR4AAAA/BYIcADje3HPPPUe4o9eAAQPKlCmT+3r9+vXDYseOHTluzZ07Nyw6deqUnJycu2/JkiW7dOkS1gUcmpJd/Az5ChUqFKb9T0QBzzdSTyF7EBgfJIcC3suCBQvComXLlg0bNszdICEhIftSmByK6qPIb4bhQTtBEGzatCn33ebNm99777333nvv9ddfn9/IAAAAUEiCHAA43oRndRyJkiVL5nk9/o32/v37c9xaunRpWLRp0ya/YZs1axYWuRf05Cn+KvEvzQkKfL6RegrZ22dkZOTZpoD3Ep/eGWeckV+bPLdrCxXVR5HfDJs2bRoWM2fO/Oc//5lfdwAAADhyghwAoLAKOFLl22+/DYvatWvn16ZatWphkecihtziSUB+MQA5ROopZGZm5h6k8DZu3BgWp5xyyqH2DY7OR5HdFVdcEeaasVhs2LBh119//auvvrpt27bDmCoAAAAULOdu4wAAh2Hr1q1hMWDAgISEhDzbHDhwICx2795dmDHLlSsXbsmV38Zc5BCpp7Br1654fah7/cVisZ07d4Z1lSpVDqlv6Gh8FNlVrVp1zJgxgwYNCvsuX758+fLlI0eObNq0aadOnX7+85872AkAAICiIsgBAI7UgQMH4htw7du376Dts7KyCjNs9erVN2/eHATBli1bjmR6PxFRewrZ28fXvhRSRkZGLBYL6zyPayrYUfoocmjXrt1rr702YcKEt99+O75caeXKlStXrnzmmWcuv/zyu+66K/tBQQAAAHB4BDkAUGyyLxSIf21dgOxt8ltkUCziKxuCILjppptq1apVcPtCfjVfv3798KSTdevW7d+/v3Tp0kcwx+PfUXoKp5xyyuE9hVWrVoVFUlJSjRo1CtkrlP3XO/v7KqSj9FHkVqNGjT/84Q933XXXrFmz5s6du2TJkvT09HACb7zxxmeffTZp0qTDW1EEAAAAcYIcACg2SUlJ8bow6wbC74hDh/3V89GQmJiYmJgYnoly/vnnn3XWWUUybKtWrV5//fUgCLKysj7//PO2bdsWptfMmTM//PDDIAhKlSr1+9//vkhm8qNwlJ7Caaed9sYbbwRBkJWV9cUXXxR+2E8//TQsWrRoUcDpSnkqVapU/L0cxr5nR+mjyE+lSpV69uzZs2fP9PT0OXPmPP/882GItW7dutGjR48ePfqovjoAAADHvUP7SzUAUIRKlSoVPzskfqRHAbK3OfHEE4/WtA5LfMnFd999V1RjnnvuufF67ty5hez17rvv/vOf//znP//5ySefFNVMfiyOxlM455xz4vW///3vQvb66quv4r+u55133mG8bnw3tsL8p5Hb0fgoDiopKenSSy+dOnXqpZdeGl7517/+FT/sBwAAAA6PIAcAilPDhg3DYsWKFQdtnL1NgwYNjtacDkvjxo3DYuXKlUU1Zs2aNU8//fSwfvPNN/fs2XPQLvv37//444/DunXr1nm2CRdqHCWF2SLv6M3haDyFWrVqtWnTJqwL+RSCIJg6dWq8vuSSSw7jdevUqRMWq1evPozuR+OjKKSSJUvec889YR2LxeJbzAEAAMDhEeQAQHGKbxe2atWqg35h/c4774RF+fLlmzdvfnRndojatWsXFvPmzcuvzZ49ezZu3Lhx48YtW7YUctg+ffqExa5du55++umDtp8+fXpqampYd+zYMX49OTk5Xm/fvj3Pvtu2bctv2OxHtmRlZeVuED85Jvv2dzkc4RwK4yg9heuvvz4sdu3aNX78+IO2X758+ZtvvhnWnTp1ql27diFfKLvTTjstLBYuXJjfMTmbNm3Kr/tR+ihC+/btW7FixYoVK/JLiapUqVK5cuWw3rt37yENDgAAADkIcgCgOHXv3j1ejx49uoCFGh988MEHH3wQ1pdcckliYrQOuuvSpUs4pfXr18+ePTvPNo8++mi3bt26dev20EMPFXLYjh07nnHGGWH90ksvhUfm5Gf16tVPPPFEWNepU6d9+/bxWyeddFLJkiXDOs/FTytWrPjjH/+Y38jxHfCCfHb6in9rv2nTpvwW5RzhHArjKD2Fzp07xxflTJkyJTwyJz+bNm26++67ww+hVKlSd9xxR6Gn//+48MILw2Lr1q1z5szJ3WD37t0FvIWj9FGE9uzZc91111133XW9evXKc+e0zMzM+NKlSpUqHdLgAAAAkIMgBwCKU7169S677LKwXrJkycCBAzdu3JijTWZm5rRp037729+GPyYlJd14443HcpKFceKJJ/7iF78I6xEjRqxbty5Hg2XLlr311lth3a1bt0IOm5CQMGLEiIoVK4Y//uEPf3jkkUdyf3WelZU1Y8aMm266Kfz2PCEhYciQIdmzrlKlSrVs2TKsn3/++V27dsVvxWKx119//ZZbbtm9e3d+06hVq1Z8tPfeey93g1NPPTUsUlNTFy9enOcgRziHwjiqTyGeZg0fPvyxxx7LPv9QLBabNWvW9ddfH1/g8tvf/rZevXqH8UaCIGjVqlWTJk3CevTo0TmOutmyZcutt966Zs2a/LofpY8iVKVKlfr164f1X//619wNZsyYsX///iAIkpKS4r8bAAAAcHii9Y95AeAn6L777lu+fPn69euDIFiwYEH37t1bt27dpEmTChUqZGZmbty48eOPP96xY0e8/dChQw9vr6qjbeDAgYsWLVq/fn1KSkrv3r379OlzzjnnVK5cOSUlZcGCBZMnTw7XG7Vq1apr166FH7Z27dpPPfXU7bffHiYHU6dOnTZt2llnnXXqqadWqFBh3759mzZtWrx4cfZNye65555zzjknxzg9evT4/PPPgyBYv379L37xi86dO1eqVGn79u2LFy/esGFDQkJC7969X3755TznULp06XPPPTdcEfX0008vXry4Ro0aN954Y6NGjcIGp5xySv369b/99tsgCO66666OHTuG6zAGDBiQfUe1I5lDIR2lp1CnTp3x48f3798/3LnuxRdffO21184+++zGjRuHT2Hjxo2LFy/OvtdZ3759r7nmmiN5L7/97W/79u0bBMHWrVt79erVq1evU089de/evV988cWMGTPS0tI6dOhQwM5pR+mjCN1yyy1Dhw4NgmDSpEnr16+//PLLGzVqVKZMmc2bN8+cOTP+EK+99trsvwAAAABwGBIKeSQvAERUQkIQBJ8vXVrc8zgi27dvv/feez/55JOCmyUnJz/wwAN5Hh2/b9++s88+O6xfeOGF+PkiOWRmZp511ll5NivMCIsWLerXr18QBCVKlPj0009zN9i4ceOAAQPWrl2b31to2LDhhAkTTjrppPwa5GfDhg1Dhgz54osvCm5WoUKFYcOG5fm9fFZWVt++ffOcdnJy8qhRo6pUqXLDDTcEQZCUlLRo0aIcbVavXn3DDTfE98sKguCZZ57JHhd9/PHH/fr1y7E53pw5c+K7rh3JHAr5fENH7ymsW7duyJAhy5cvL7hZ+fLlBw8enN8yl0N6L5MnTx4zZkyetzp37jxixIjzzjsv/HHWrFknnnhijjaH91EUcobjxo17/vnnC5j8RRdd9Mc//rFUqVIFtIms1v+3mV7gLwsAAADFzdZqAFD8qlat+uc//3nUqFFt2rRJSEjIs8H1118/ffr0PFOc6Khdu/aUKVP69u1btWrVHLdOOumk/v37v/jii4eRHwRBUKdOnb/97W9jxow599xz8zwfqEGDBrfffvuMGTPyW11RsmTJp556qmfPnqVLl45fTExM7Ny58yuvvNKxY8eCv3Bv1KjR1KlTe/ToUbt27TwncNZZZ02ZMuWyyy6rXr16/Cycop1DIR29p1CvXr0XXnjh0Ucfze8p1K1bt3///jNmzDjUzcry06dPn6eeeiq+8il08sknP/DAA4899ljZsmWzf5K5Hb2PIgiCgQMHPvvss3l+FE2aNBkxYsSf/vSnH2mKAwAAQKRYkQPAj9xxsSInu927d69evXrr1q3p6emJiYmVKlWqW7du7dq18wx4IisWi61bt+6///3vvn37kpOTTz755Dp16hTVW9i3b9/atWs3b96cnp5eunTpypUr169fv0qVKoXsnpaWtnbt2j179pQrV65+/frFsvPVsZnDUX0K6enpa9eu/e6778Jf1MqVKzdo0CB3XlJUNmzYsGHDhiAIateufRjn7hzVjyItLW316tU7duzIzMysUKHCUf0cjhkrcgAAAKJDkAPAj9xxF+QAFDtBDgAAQHTYWg0AAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAERUYnFPAAA4rgwYMGDJkiVBEJQsWXLSpEmNGzcuuH1mZuYFF1wQ1i+88MJB2xeLWCy2cOHCWCwWBEGDBg1q1qxZcPutW7d++eWXmzdvTk9PT05Orl27dqtWrSpVqlTIl9u+ffvnn3++adOmffv2lS1btm7duq1atapQocIRvoscNm/e/P333wdBcOKJJ9aqVauQvXbt2rV06dINGzakp6eXL1++QYMGrVq1KlOmTH7tY7HYpk2bCjNytWrVSpcuXchpAAAAwE+HIAcAKEr79u1LT08P61GjRk2aNCkhIaHgLvH2Bw4cOLqTO1wvv/zyo48+Gtb33Xdf796982u5YMGCiRMnfv755zmuJyQkdOjQYeDAgQ0bNizghZYtWzZ+/PiFCxfmuF6yZMkLL7zwtttuO/XUUw/rHeS0cePG66+/PiUlJQiCPn363H333QftsmrVqgkTJsydOzcrKyv79bJly3bv3r1fv35VqlTJ3SslJaVbt26FmdKUKVNatGhRuOkDAADAT4it1QCAo2Xp0qUzZswo7lkcqXXr1o0dO/agzWKx2OjRo/v37587xQnvzp07t1evXjNnzsxvhBdeeOFXv/pV7hQnCIKsrKzZs2f37t379ddfP6TJ52ndunV9+/YNU5xCmj59eu/evWfPnp0jxQmCYO/evX//+9+vuuqqZcuW5e54SK8CAAAA5GZFDgBwFD3++OMXXXRR+fLli3sihykzM3PIkCH79u07aMvnnnvu5ZdfDuvExMQLLrigSZMm5cqVC/ciC7eby8jIuP/++2vWrHnaaafl6P6Pf/zj8ccfD+ukpKSuXbu2atWqbNmyO3fuXLp06Zw5czIzMzMzM//whz+ceOKJ7du3P+x39P777w8fPjw1NbXwXebPnz98+PBwZ7mkpKTLL7/87LPPrlix4vbt2z/88MO33347KysrJSXl9ttvnzp1ao5d2uJBTtWqVQveki45OfnQ3w0AAAAc/wQ5AMBRlJKS8vTTTw8ePLi4J3KYnn/++eXLlx+02ZYtW5555pmwbtiw4bhx42rXrp29wYIFC+688879+/dnZWU9+uijL774Yva7O3bsiG/dduqppz755JM1atSI373uuuu+/fbb22+/PTxs5tFHH73gggsOumFdDrFYbOnSpc8999yHH354qB0feeSRMMWpWbPmxIkT69atG7/7s5/9rHfv3rfeemtqauquXbsmTJgwYsSI7N3jQU7Pnj1vu+22Q3ppAAAAILC1GgBwlJxyyilh8corr6xcubJY53KYvvrqq4kTJwZBcMIJJxS8mmT69OmZmZlBEJQqVeqJJ57IkeIEQXDeeef169cvrJcvX7569ersd998883woKDSpUuPGzcue4oTql+//gMPPBDWGzZs+Prrrw/pjbz11ls/+9nPbrrppniK06NHj+x5TAG++eabDRs2hPXw4cNz92revPmAAQPC+v33389x0FE8yKlcufIhzRkAAAAICXIAgKPiiiuuaNasWRAEsVhs1KhR4ZKOH5H9+/cPHTo0PBLmvvvuq1q1agGNP/roo7Do2rVrnTp18mxz1VVXxeulS5dmv/Xxxx+HRZcuXfJLjNq2bZuUlBTW69atK8xbiFu/fv3WrVvDOikp6Z577nnggQcKuaYn/lrly5dv165dnm3iW73t3bs3/kKhH374ISwK/gABAACA/AhyAICjokSJEkOGDAnrL774Yvr06cU7n0P15JNPrlmzJgiCTp06XX755QU3Xr9+fViceeaZ+bWpWLFi9erVw3rLli3Zb3333Xdh0aRJk/y6lyhRomzZsmGdkZFxkNnnpUaNGrfccsuMGTOuu+66wu/MFj8fqGLFivn1qlixYu72oR07doSFFTkAAABweJyRAwAcLS1btrzqqqumTZsWBMHYsWM7depUoUKFIx92x44dO3fuLHz76tWrxyOQQvr0008nT54cBEHlypWHDh160PaXXHJJGGC0bNmygGaJiXn/0Wvy5MnhiqVSpUrl1zctLS2+uiUeCBXSz372s0svvbRevXqHerJOkG0lzfbt27OyskqWLJm7zbZt23K3D8WDHCtyAAAA4PAIcgCAo2jAgAGzZs3auXNnSkrKk08+GV+jcyReeumlv/zlL4VvP27cuA4dOhS+/d69e+PhzdChQ6tUqXLQLoMGDTpom8zMzO+//z6sq1Wrlv1WcnLyQbvPnDkzPH6mfPnyrVq1Omj77Bo0aHBI7bNr2bJlYmJiZmZmWlrahx9+eOGFF+ZuM2vWrHjjcuXKZb8VD5+syAEAAIDDY2s1AOAoqlSp0sCBA8P6tdde++qrr4p3PoXx2GOPbdq0KQiC7t27d+7cuaiGXbp06f79+8O64IU7uX377bdPPPFEWN9yyy3xw3KOgQoVKlxxxRVhPXLkyPCTye7LL7989tlnw/rmm2/OcTclJSUIgpIlS1asWPHbb7995JFHevbsedFFF3Xs2PGaa6556KGHPvnkk6P8DgAAAODHzYocAODouvLKK994441ly5bFYrFRo0b97W9/K1HiiP4pSf369S+66KLCtz+kTb3mzZv3j3/8IwiC6tWrDx48+FDnVoCXXnopLOrWrdusWbOCG6empu7bty8zM3PTpk0ffPDByy+/nJ6eHgTBL37xi1/96ldFOKvCGDRo0BdffLFq1aqtW7dec801N9988/nnn1+hQoXt27fPmjVrypQpYUB1/fXXd+rUKUffcGu1SpUq/e1vf3vyySezsrLit1JSUr7++uvXXnutXbt2Dz300EknnXQs3xQAAAD8WAhyAICjq0SJEr/73e+uu+66WCy2bNmy119//aqrrjqSAbt169atW7eiml52P/zwwx/+8IewfvDBB3PsEnYkFi1aNHv27LC++eabD3pWzZgxY954443sV0455ZRbb7310ksvLaopFd4JJ5zw3HPPPfroo2+99VZqaurYsWPHjh2bvUG5cuVuv/323r175+gYi8XC04x27NgRX1FUo0aNcuXK7dy5M77R3EcfffSrX/3qhRdekOUAAABAbrZWAwCOuubNm/fs2TOsx40bFz83JWpGjhy5ffv2IAh69ep19tlnF9WwW7Zsuf/++8O6TZs2l19++aGOkJiYWL9+/dKlS8disaKa1SEpV65chw4dGjdunOfd9u3bt2nTJvf11NTUzMzMIAhisVhycvKdd97573//+913333ttdfee++9N998Mx7Ifffdd/FziQAAAIDsrMgBAI6FAQMGzJo1KyUlZefOnU8++eSwYcOKe0Y5vf322++9914QBPXq1bvjjjuKatidO3f2798/3GGscuXKjzzySGF2lmvevHmYgmzfvv2bb77Zv3//nDlz5syZ06ZNm0cfffQYr1zZsmXLvffe+/nnn4c/1qpVq2XLlmXKlNm9e/eyZcu2bdv2zjvvvPPOO1ddddV9991XunTpeMc9e/bUq1cvCIKkpKSRI0c2atQo+7B169YdOXJklSpVJk+eHATBRx99tHDhwnPPPfcYvjMAAAD4ERDkAADHQoUKFe64447hw4cHQTBt2rQrr7yyZcuWhzfU/PnzFy1aVPj2PXr0aNiwYcFttmzZ8vDDDwdBUKJEiYceeig5Ofnw5pbDjh07brvttjVr1gRBULZs2aeeeqpGjRqF6Xj11VdfffXVYZ2env7uu++OHTs2JSVl6dKl//M//zN58uSKFSsWyQwPaseOHTfffPPGjRuDIKhVq9bQoUPPO++8+N0DBw7MmTNn1KhR27dvnzZt2pYtW8aOHVuyZMnwbs2aNadPn17w+L/5zW9mzJiRkpISBME777wjyAEAAIAcBDkAwDFyxRVXTJs2bdmyZUEQjBw5csqUKYVZm5LbZ599Fq7hKKS2bdsWHOTEYrHhw4enpqYGQXDLLbe0atXqMGaV2+bNm/v167du3bogCMqWLTt+/PgWLVocxjhJSUk9evRo27Zt7969d+3atX79+ieffPKYbUT22GOPhSlO9erVJ0+eXLVq1ex3S5Qo0blz5yZNmlx33XU7d+788MMPX3nllWuvvbbw45cpU6ZDhw5h3rN8+fKinTwAAAAcB5yRAwAcIwkJCUOGDElISAiC4Kuvvpo2bVpxz+h/vfrqqwsXLgyCoGnTpr/+9a+LZMy1a9fecMMNYYpToUKFiRMn5nmKTOHVrl37xhtvDOsZM2bs27fviOd4cN9///0777wT1oMGDcqR4sSdfPLJ/fr1C+tDythC8S3XNm3adFjTBAAAgOOZFTkAwLHTtGnTa665ZurUqUEQjBs3rkuXLuXLlz/UQS655JImTZoUvn2zZs0KuLt58+bHH388rPv06RNug5ZbWlpaWGzdunXlypVh3aRJkzCXymHZsmW33377rl27giCoXr36hAkTGjRoUPgJ5+fcc88dN25cEATp6elr1qxp3rz5kY9ZsM8++ywWi4V1hw4dCmjZsWPH0aNHB0GwefPm7777rpA7yIXiG9mlp6cf7kwBAADguCXIAQCOqf79+8+cOTMlJSU1NfWJJ54YNmzYoY7QqFGj+BqOI7du3bp4fjBkyJCDtp80adKkSZPC+uOPP05MzPmnqQULFgwaNCgcs0GDBuPHjy841XjllVf+/ve/B0HQqlWr8Ayh/FSqVCle79y586BTPXLbtm0Li3LlyhV8btCJJ56YvVeNGjUyMjLik6xcuXL84Jzc4quLypQpc6QzBgAAgOOOrdUAgGOqQoUKgwYNCuvp06d/8cUXxTufovXuu+8OHDgwTHFat249adKkg65NOXDgwJo1a9asWfPJJ58U3DI8xSd0bDKP+Kukp6dnZWUV0HLv3r3xulSpUkEQrFmzpsv/+e9//1tA3w0bNoRF9erVj3TGAAAAcNyxIgcAONa6d+8+bdq0pUuXBkHw8MMPF+9kKleufNFFFx202UcffRRmFY0aNTr55JPDizn2VZs6deojjzwS1u3bt//jH/+YlJR00JHjq4s2bNiwdu3aAjZhW758ebyuU6fOQUc+cvFXyczM/Pzzz88444z8WmZPoWrXrh0EQa1ateJXli1bVq9evTw7xmKxBQsWhHXLli2PfM4AAABwnBHkAADHWkJCwv3339+rV68DBw6sWrWqeCfTpEmTJ5544qDNrrrqqvD4nKuuuqp37965G0yYMGHixIlhfcUVVwwbNiz3rmt5atOmTcWKFcNdyB599NGnn346z13I9u/fP2XKlLBu2LBhtWrV4rd27tz5l7/8ZePGjR06dOjRo0dhXrSQTjvttBNOOGHPnj1BEEyYMOGZZ57Jc2779u175plnwrpVq1blypULgqBChQotWrRYsWJFEATPP/98ly5d8oy13nrrrfXr14f1xRdfXISTBwAAgOODrdUAgGLQuHHja665prhnUTQOHDgwcuTIeIpz0003DR8+vJApThAEpUqVuvHGG8N60aJFd9999/bt23O02bZt25133hkmSUEQ9OnTJ/vdQYMGTZ48efbs2cOHD3/77bcP+43klpSUdO2114b1kiVL7rzzzq1bt+Zos27dun79+n399dfhj7/61a/it+Lva+3atQMGDNiyZUuOvrNnzx4xYkRYN23atEOHDkU4eQAAADg+WJEDABSP/v37z5w5c8eOHcU9kSP1/PPPv/rqq/Ef33rrrbfeeuugvR588MFzzjknrPv06bNo0aLFixcHQfDvf/97wYIF559/fuPGjcuVK7d79+6vv/56wYIF+/fvDxt36NDhiiuuiI+zd+/e7Nuavf/++5dddlnul3v//ffHjRuX/Ur8ZJo33nhj3rx58eudOnW644474j/27dt34cKF4a5uH3zwQffu3Tt06NC8efMTTjjhhx9+WLp06eLFiw8cOBA27tGjR9euXeN9u3bt2qNHjzfeeCMIgiVLlnTv3r19+/bNmjUrW7ZsSkrKokWL4pvFlStXbuTIkSVK+DdGAAAAkJMgBwAoHuXLl7/77ruHDBlS3BM5UjmyqNxrVvIUD2aCIEhMTBw7duyIESPCBGj//v1z5syZM2dO7l6XX3750KFDs5/NU6ZMmfLly6empoY/7tq1K8+X271797p16/K8lZqaGu8eBMG2bduy3y1duvSECRN+//vfh/PZv3//rFmzZs2alXucPn363HnnnTkuDhs2rFy5ci+++GIQBBkZGbNnz549e3aONieddNLjjz/esGHDPKcHAAAAP3H+2SMAUGwuu+yyM888s7hnEQlJSUkjR478y1/+0r59+1KlSuW4m5iY2L59+z//+c8PPvhg6dKls98qWbLk7373u/hObhUqVCjyuZUvX/5Pf/rTU089dd555+XeMu6EE07o1q3b1KlT77777twn6JQsWfK3v/3tiy++ePHFF5cpUybH3ZNOOunXv/7166+/3rJlyyKfNgAAABwfEmKxWHHPAQCOQEJCEASfL11a3POAIpOenr5mzZrvvvtu3759ZcqUqV69esOGDZOTkwvosmPHjq5du2ZlZfXv3//Xv/710ZtbWlra6tWrt27dun///rJly9aqVatBgwa585s8ZWRkrFq1avPmzRkZGcnJyaecckrdunWzry4iOlq3afO/lb8sAAAAFDdbqwEAREtSUlKLFi1atGhR+C6LFy/OysoKguDiiy8+avMKgiBITk5u1arV4fUtVapU8+bNmzdvXrRTAgAAgOObrdUAAH7cVq1a9cgjjwRB0KNHj1NOOaW4pwMAAAAUJUEOAMCP2MyZM2+44YadO3eedtpp9913X3FPBwAAAChighwAgB+xjIyMvXv3duvWbeLEiQWfowMAAAD8GDkjBwDgR+ziiy+uXr1627Zti3siAAAAwFFhRQ4AwI9Y6dKlpTgAAABwHBPkAAAAAAAARJQgBwAAAAAAIKIEOQAAAAAAABElyAEAAAAAAIgoQQ4AAAAAAEBECXIAAAAAAAAiSpADAAAAAAAQUYIcAAAAAACAiBLkAAAAAAAARFRCLBYr7jkAwBFISCjuGQAcv/xlAQAAoLhZkQMAAAAAABBRghwAAAAAAICISizuCQDAkbHtDwAAAADHLytyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAAAAIkqQAwAAAAAAEFGCHAAAAAAAgIgS5AAAAAAAAESUIAcAAAAAACCiBDkAAAAAAAARJcgBAAAAAACIKEEOAAAAAABARAlyAAAAAP6/9uxYAAAAAGCQv/U0dpRGAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTIgcAAAAAAGBK5AAAAAAAAEyJHAAAAAAAgCmRAwAAAAAAMCVyAAAAAAAApkQOAAAAAADAlMgBAAAAAACYEjkAAAAAAABTAZC2AiYGP3ydAAAAAElFTkSuQmCC", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# pages = convert_from_path('imgs/Aim_4_Flowchart_Custom.pdf', dpi=200)\n", - "# path_png = 'imgs/step1-2.png'\n", - "# pages[1].save(path_png, 'PNG')\n", - "# # Display the image in the notebook\n", - "# display(Image(filename=path_png))" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -893,15 +905,22 @@ "# To debug, we focus on the inpateint and inpatient ED first" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ------------inpatient only---------" + ] + }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c7278ed059554fd08d69cc61f480bd69", + "model_id": "67aced4b3d1a4355aa8009bd537bc60c", "version_major": 2, "version_minor": 0 }, @@ -915,7 +934,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "bf15606ec2d9447f8aebeb3bc1656fc6", + "model_id": "3b5f86cf7a404627a2644784b97215b9", "version_major": 2, "version_minor": 0 }, @@ -928,7 +947,7 @@ } ], "source": [ - "%%bigquery --use_rest_api current_med_original_no_mapped_with_12_hours_temp\n", + "%%bigquery --use_rest_api current_med_original_no_mapped_with_12_hours_inpatient_temp\n", "WITH base_c AS (\n", " SELECT DISTINCT\n", " anon_id,\n", @@ -939,7 +958,7 @@ " ordering_mode\n", " FROM \n", " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort`\n", - " # where ordering_mode='Inpatient' # focus on the inpatient setting\n", + " where ordering_mode='Inpatient' # focus on the inpatient setting\n", "),\n", "\n", "-- Inner join between order_med and pharmacy_mar\n", @@ -958,9 +977,7 @@ " `som-nero-phi-jonc101.shc_core_2023.pharmacy_mar` mar\n", " ON \n", " mo.anon_id = mar.anon_id \n", - " AND mo.order_med_id_coded = mar.order_med_id_coded \n", - " # removed joining on encounter ID,\n", - " # because outpatient doesn't have encounter ID\n", + " AND mo.order_med_id_coded = mar.order_med_id_coded\n", "),\n", "\n", "-- Join base_c with the combined medication data, within 12 hours\n", @@ -982,7 +999,7 @@ " medications_joined m\n", " ON \n", " c.anon_id = m.anon_id\n", - " AND (\n", + " AND (\n", " (\n", " c.pat_enc_csn_id_coded = m.pat_enc_csn_id_coded\n", " OR ABS(TIMESTAMP_DIFF(m.medication_time, c.order_time_jittered_utc, HOUR)) <= 12 -- subjective window\n", @@ -992,17 +1009,11 @@ " AND m.medication_time <= c.result_time_jittered_utc\n", " )\n", " )\n", - " # AND (c.pat_enc_csn_id_coded = m.pat_enc_csn_id_coded\n", - " # or ABS(TIMESTAMP_DIFF(m.medication_time, c.order_time_jittered_utc, HOUR)) <= 12 # this is subjective \n", - " # or m.medication_time <= c.result_time_jittered_utc)\n", - "\n", - " # c.anon_id = m.anon_id\n", " # AND ABS(TIMESTAMP_DIFF(m.medication_time, c.order_time_jittered_utc, HOUR)) <= 12 # this is subjective \n", - " \n", " \n", ")\n", "\n", - "SELECT *\n", + "SELECT DISTINCT *\n", "FROM cleaned_medications\n", "GROUP BY \n", " anon_id,\n", @@ -1030,7 +1041,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1039,13 +1050,13 @@ "" ] }, - "execution_count": 12, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAJECAYAAADgyz7/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVFUlEQVR4nO3dfXzN9eP/8eeZsc1ssw27yNhCriX6JCSrzIiU9CkpUUJRcvURnz4xKpelC+rTlVyV6lPhE5WrlD5yrVaRhFzbUsxEDNvr90df59exjR3tfc5ePO6322435/1+7X2e5+3Y23Pv9/t1XMYYIwAAAABAsQrwdwAAAAAAuBBRtgAAAADAAZQtAAAAAHAAZQsAAAAAHEDZAgAAAAAHULYAAAAAwAGULQAAAABwAGULAAAAABxA2QIAAAAAB1C2AOQzbdo0uVwuBQcHa+fOnfnWJycnq169en5IJn3++edyuVx6//33/fL83tqxY4fatWunqKgouVwu9e/fv9CxLpdLDz30UIHr3n//fblcLn3++efnlcHlcmnatGlef68vFefrT05OVnJycvGF89Lhw4f11FNP6corr1R4eLiCgoKUmJio++67T1999dV5bTMxMVHdu3d3P963b5/S0tKUnp5ePKEdcODAAQ0bNkx16tRR2bJlFR4erquvvlovvviiTp48+Ze3n5aWJpfLVQxJ7bd9+3aFhYWpU6dOBa6fNWuWXC6XXnnlFR8nAy5ugf4OAKDkysnJ0b/+9S/NnDnT31GsNWDAAK1evVpvvPGGYmNjFRcX5/MMcXFxWrlypapVq+bz5/aXl156yW/PvW3bNrVu3Vr79+/XAw88oJEjR6pcuXLasWOH/vOf/6hx48Y6dOiQIiIi/tLz7Nu3TyNHjlRiYqIaNmxYPOGL0Q8//KDWrVvryJEjGjRokJo1a6Zjx45p/vz5euSRR/Tee+/p448/VtmyZf0d9YKQlJSkiRMnqlevXpo1a5a6dOniXpeZmamHH35Yqamp6t27tx9TAhcfyhaAQrVp00azZs3S4MGDdfnll/s7jk8dO3ZMwcHBf/m35hs2bNBVV12lW265pXiCnYegoCBdffXVfnt+X/r9999VtmxZ1alTxy/Pn5ubq44dO+rXX3/VypUrPc4At2zZUt26ddMnn3yi0qVL+yVfUeTm5urUqVMKCgr6S9vo1KmTDh8+rDVr1uiyyy5zr7vxxhvVsmVLde7cWQMHDtTLL7/saBZvnH7/lGTGGB0/flwhISH51vXs2VNz5szRww8/rOuuu879y53evXvLGKMpU6b4JKMN+xHwFS4jBFCoIUOGKDo6Wo8++uhZx53tMjWXy6W0tDT349OX/Xz77bf6+9//roiICEVFRWngwIE6deqUNm/erDZt2igsLEyJiYkaP358gc95/PhxDRw4ULGxsQoJCVHLli319ddf5xu3bt06dejQQVFRUQoODtYVV1yh//znPx5jTl82uWjRIt13332qWLGiypYtq5ycnEJf865du3T33XerUqVKCgoKUu3atfXMM88oLy9P0v+/3HHr1q365JNP5HK55HK5tGPHjrPuS2+cvpxz7dq1atGihcqWLatLL71UY8eOdeeQCv/7+eijj9SwYUMFBQUpKSlJTz/9dL7Lsrz5u5WkLVu2qEuXLh775cUXXyy21/xnp1//F198oWbNmqls2bK677773Ov+fBnh6dfx9NNPa+LEiUpKSlK5cuXUtGlTrVq1Kt+2i/K+KcjcuXP13XffadiwYYVeatu2bVv3f0S7d++uxMTEfGPOdXnc559/rr/97W+SpHvvvdf9/jr991HYZZRnPt/p/TJ+/Hg9+eSTSkpKUlBQkD777LO/tB/mzJmj77//XkOHDvUoWqfdcccdat26taZMmaLMzMwiZSno/VoQY4xeeuklNWzYUCEhIYqMjNRtt92mn376yWPc2d4/S5cuVXJysqKjoxUSEqIqVaqoU6dO+v3338/6uhMTE9W+fXvNmTNHDRo0UHBwsC699FK98MIL+cYePnxYgwcPVlJSksqUKaNLLrlE/fv319GjRz3Gnb689uWXX1bt2rUVFBSk6dOnF5rhdKHq1auXJGnmzJn68MMPNXnyZF1yySVF3j+LFy/WzTffrMqVKys4OFjVq1dX79699euvv3qMO/1e/eqrr3TbbbcpMjLyojqLDpwLZ7YAFCosLEz/+te/9Mgjj2jp0qW6/vrri23bt99+u+6++2717t1bixcv1vjx43Xy5EktWbJEffr00eDBgzVr1iw9+uijql69um699VaP7//nP/+pRo0a6fXXX1d2drbS0tKUnJysr7/+Wpdeeqkk6bPPPlObNm3UpEkTvfzyy4qIiNA777yjO+64Q7///rvH/S+SdN9996ldu3aaOXOmjh49WujZh19++UXNmjXTiRMn9MQTTygxMVHz58/X4MGDtW3bNr300ktq1KiRVq5cqY4dO6patWru/xgW92WEmZmZuuuuuzRo0CCNGDFCc+bM0bBhwxQfH6977rmn0O/79NNPdfPNN6tp06Z65513lJubq/Hjx+vnn38+7yzff/+9mjVrpipVquiZZ55RbGysFi5cqH79+unXX3/ViBEjznvbhcnIyNDdd9+tIUOGaPTo0QoIOPvvEF988UXVqlVLzz33nCTp8ccf14033qjt27e7L+vz9n3zZ4sWLZIkx89kNmrUSFOnTtW9996rf/3rX2rXrp0kqXLlyue1vRdeeEGXXXaZnn76aYWHh6tGjRp/aT8sXrxY0tn3wy233KJFixbp888/V+fOnc+axZv3a+/evTVt2jT169dP48aN08GDBzVq1Cg1a9ZM33zzjWJiYtxjC3r/nL7PskWLFnrjjTdUvnx57d27VwsWLNCJEyfOecYmPT1d/fv3V1pammJjY/XWW2/pkUce0YkTJzR48GBJf5z5admypfbs2aN//vOfatCggTZu3Kjhw4fru+++05IlSzzK9ty5c/W///1Pw4cPV2xsrCpVqlTo88fFxenFF1/UnXfeqTFjxmjChAnq1KmT+7LCou6fbdu2qWnTprr//vsVERGhHTt2aOLEibrmmmv03Xff5fv5eOutt6pz58564IEH8hVG4KJmAOAMU6dONZLM2rVrTU5Ojrn00kvNlVdeafLy8owxxrRs2dLUrVvXPX779u1Gkpk6dWq+bUkyI0aMcD8eMWKEkWSeeeYZj3ENGzY0kszs2bPdy06ePGkqVqxobr31Vveyzz77zEgyjRo1cucxxpgdO3aY0qVLm/vvv9+9rFatWuaKK64wJ0+e9Hiu9u3bm7i4OJObm+vxeu+5554i7Z+hQ4caSWb16tUeyx988EHjcrnM5s2b3cuqVq1q2rVrV6TtSjJ9+/YtcN17771nJJnPPvvMvaxly5YF5qhTp45JTU11Py7o76dJkyYmPj7eHDt2zL3s8OHDJioqyvz50ODN321qaqqpXLmyyc7O9hj30EMPmeDgYHPw4MGzvfzzfv2ffvppvvEtW7Y0LVu2zPc66tevb06dOuVevmbNGiPJvP322+5lRX3fFKRNmzZGkjl+/PhZX+tp3bp1M1WrVs23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6z1zTzzxhNq0aaOUlBQNGjRIubm5GjdunEJDQ3Xw4EH3OG/+bp9//nldc801atGihR588EElJibqt99+09atWzVv3rxz3svmy9d/Nn/lfVOqVCnNmTNHrVu3VtOmTfXggw/quuuuU2hoqHbu3Kn3339f8+bNU1ZWlqQ/pkAfPny4OnfurH/84x86fvy4XnjhhUIvp/yzatWqKSQkRG+99ZZq166tcuXKKT4+XvHx8eratateeeUV3X333erZs6cOHDig8ePHF6loFdd++OCDD5SSkqKmTZtq0KBBatq0qXJycjRv3jy9+uqratmypZ555pkiZSnq+7V58+bq1auX7r33Xq1bt07XXnutQkNDlZGRoeXLl6t+/fp68MEHz/pcL7/8spYuXap27dqpSpUqOn78uPsMVKtWrc6ZNT4+Xh06dFBaWpri4uL05ptvavHixRo3bpx7JsP+/fvrgw8+0LXXXqsBAwaoQYMGysvL065du7Ro0SINGjRITZo0KdK+8UZR90+tWrVUrVo1DR06VMYYRUVFad68ee5ZJgF4wX9zcwAoqf48G+GZunTpYiR5zEZojDHZ2dnm/vvvNzExMSY0NNTcdNNNZseOHYXORnh6dqzTunXrZkJDQ/M935kzH56ejXDmzJmmX79+pmLFiiYoKMi0aNHCrFu3Lt/3f/PNN+b22283lSpVMqVLlzaxsbHm+uuvNy+//HKRXm9hdu7cabp06WKio6NN6dKlTc2aNc2ECRPyzdDmzWyExhizZcsWc/fdd5u4uDgTGBhoypcvb1q3bl3ojHtn/j0YU/iMc2fOWvfhhx+aBg0amDJlypgqVaqYsWPHFjgLXlH/bk8/13333WcuueQSU7p0aVOxYkXTrFkz8+STT/rs9Z9eV9BshBMmTMg3tqDXUZT3zdkcOnTIPPHEE6ZRo0amXLlypnTp0qZKlSrm7rvvNl9++aXH2I8//tg0bNjQhISEmEsvvdRMnjy5SLMRGmPM22+/bWrVqmVKly6d73VMnz7d1K5d2wQHB5s6deqYd999t9D3RkH7pTj2w6+//mqGDh1qatWqZYKDg025cuXMVVddZSZPnpxvxsFzZSnq+9UYY9544w3TpEkTExoaakJCQky1atXMPffc4/EzorD3z8qVK03Hjh1N1apVTVBQkImOjjYtW7Y0H3744Tlf7+l/7++//76p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kHz3L40cOdLrJ1+3bp2uu+469+PT90h169ZN//73v/Xdd99pxowZOnTokOLi4nTdddfp3XffVVhYmPt7nn32WQUGBur222/XsWPHdMMNN2jatGkqVaqUe8xbb72lfv36uWct7NChw1k/2wsAAAAA/iqvylZgYKAmTJigbt26FcuTJycnyxhT6PqFCxeecxvBwcGaNGmSJk2aVOiYqKgovfnmm+eVEQAAAADOh9f3bLVq1Uqff/65A1EAAAAA4MLh9T1bbdu21bBhw7RhwwY1btxYoaGhHus7dOhQbOEAAAAAwFZel60HH3xQkjRx4sR861wul3Jzc/96KgCAlRKHfuTYtneMbefYtgEAcILXZSsvL8+JHAAAAABwQfH6nq0/O378eHHlAAAAAIALitdlKzc3V0888YQuueQSlStXTj/99JMk6fHHH9eUKVOKPSAAAAAA2MjrsvXUU09p2rRpGj9+vMqUKeNeXr9+fb3++uvFGg4AAAAAbOV12ZoxY4ZeffVV3XXXXR4fHNygQQP98MMPxRoOAAAAAGzlddnau3evqlevnm95Xl6eTp48WSyhAAAAAMB2XpetunXr6n//+1++5e+9956uuOKKYgkFAAAAALbzeur3ESNGqGvXrtq7d6/y8vI0e/Zsbd68WTNmzND8+fOdyAgAAAAA1vH6zNZNN92kd999Vx9//LFcLpeGDx+uTZs2ad68eUpJSXEiIwAAAABYx+szW5KUmpqq1NTU4s4CAAAAABeMv/ShxgAAAACAghXpzFZkZKRcLleRNnjw4MG/FAgA8IfEoR85st0dY9s5sl0AAOCpSGXrueeec//5wIEDevLJJ5WamqqmTZtKklauXKmFCxfq8ccfdyQkAAAAANimSGWrW7du7j936tRJo0aN0kMPPeRe1q9fP02ePFlLlizRgAEDij8lAAAAAFjG63u2Fi5cqDZt2uRbnpqaqiVLlhRLKAAAAACwnddlKzo6WnPmzMm3fO7cuYqOji6WUAAAAABgO6+nfh85cqR69Oihzz//3H3P1qpVq7RgwQK9/vrrxR4QAAAAAGzkddnq3r27ateurRdeeEGzZ8+WMUZ16tTRl19+qSZNmjiREQAAAACs41XZOnnypHr16qXHH39cb731llOZAAAAAMB6Xt2zVbp06QLv1wIAAAAAePJ6goyOHTtq7ty5DkQBAAAA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3zHyOXHihPnHP/5hqlWrZv72t7+ZN954w2N9ZmZmicy9b98+07x5c1OqVClz7bXXmoMHD5p27dq53+uXXXaZ2bdvn79jevjmm28K/CpdurSZM2eO+3FJM2zYMHP06FFjzB/vl549e7o//yQgIMB07NjRHDt2zM8pPXXq1Ml88MEHxhhjNm7caCpUqGAqVqxomjRpYmJiYkxsbKz5/vvv/ZwyP5fLZS699FLz1FNPmT179vg7TpHYeGw0huNjScLxsfjYeGw0puQeHylbPta8eXPTt29f89tvv5kJEyaYypUrm759+7rXDx482DRr1syPCfPr1auXad68uUlPTzc//PCD6dSpkxkyZIg5evSomTJliilbtqx56623/B0zn65du5r69eubVatW5Vu3atUq06BBA3PPPff4Idn5K6kHkxEjRpiYmBgzYcIE89hjj5mIiAjTq1cv9/rMzEzjcrn8mLBgXbt2Nc2aNTMffvihueOOO0yzZs1MixYtzJ49e8yuXbtMixYtPP59lgSn/0N3+qD3568/l5eSJiAgwPz888/GGGOeeuopU7FiRfPBBx+YvXv3mnnz5plLLrnEjBo1ys8pPVWoUMH8+OOPxhhj2rZta7p06WJycnKMMX/8B6pHjx6mdevW/oxYIJfLZXr27GliYmJMYGCgadeunZkzZ445deqUv6MVysZjozEcH0sSjo/Fx8ZjozEl9/hI2fKx8PBws3XrVmOMMSdPnjSBgYHm66+/dq//8ccfTUREhH/CFaJChQpm3bp17scHDx40wcHB7t9ST5482TRs2NBf8QoVERFR4IHktJUrV5a4fR0ZGXnWr/Dw8BJ5MKlevbqZN2+e+/HWrVtNjRo1TPfu3U1eXl6J/M2dMcbExcWZlStXGmOMOXDggHG5XGbJkiXu9UuXLjWXXnqpv+IV6PLLLzft2rUzmzZtMjt27DA7duww27dvN4GBgWbx4sXuZSWNy+Vyl62GDRuaKVOmeKx/9913Te3atf0RrVAhISHun9dxcXHmq6++8li/efPmEvczxJj/v69Pnjxp3n//fXPjjTeaUqVKmZiYGDNkyBDzww8/+DtiPjYeG43h+OhLHB99x8ZjozEl9/jIPVs+VqZMGR0/flySdOLECeXl5bkfS9KxY8dK3HWwp06d8rjuvFy5cjp16pSOHj2qsmXLqnXr1ho8eLAf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", + "image/png": "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q23btpo1a5aOHz9e4NmHgwcPKjk5WadOndKTTz6pxMRELViwQIMHD9b27dv18ssvq0GDBlq1apU6dOigKlWquP/HsKgvI0xPT9fdd9+tQYMGacSIEZo7d66GDRum+Ph43XvvvQV+32effaZbb71VjRs31rvvvqvs7GxNmDBBv/zyywVn+eGHH5ScnKxKlSrp2WefVWxsrBYtWqR+/frp119/1YgRIy542wVJS0vTPffcoyFDhmjMmDEKCDj33xBfeukl1ahRQ88//7wk6YknntDNN9+sHTt2uC/r8/Z982eLFy+WJMfPZDZo0EDTpk3Tfffdp3/9619q27atJKlixYoXtL0XX3xRV1xxhZ555hmVKVNG1apV+0v7YcmSJZLOvR9uu+02LV68WF988YU6d+58zizevF979+6t6dOnq1+/fho/frwOHz6s0aNHKzk5Wd9++61iYmLcY/N7/+TeZ9m0aVO9+eabKlu2rPbt26eFCxfq1KlT5z1jk5qaqv79+2vkyJGKjY3V22+/rUcffVSnTp3S4MGDJf1x5qdZs2bau3ev/vnPf6pevXratGmThg8fru+//15Lly71KNvz5s3T//73Pw0fPlyxsbGqUKFCgc8fFxenl156SXfddZfGjh2riRMnqlOnTu7LCgu7f7Zv367GjRvrgQceUEREhHbu3KlJkybpuuuu0/fff5/n92PHjh3VuXNnPfjgg3kKI3BJMwBwlmnTphlJZt26dSYrK8tcfvnl5uqrrzY5OTnGGGOaNWtmateu7R6/Y8cOI8lMmzYtz7YkmREjRrgfjxgxwkgyzz77rMe4+vXrG0lmzpw57mWnT5825cuXNx07dnQv+/zzz40k06BBA3ceY4zZuXOnKVGihHnggQfcy2rUqGGuuuoqc/r0aY/nateunYmLizPZ2dker/fee+8t1P4ZOnSokWTWrFnjsfyhhx4yLpfLbNmyxb2scuXKpm3btoXariTTt2/ffNe9//77RpL5/PPP3cuaNWuWb45atWqZVq1auR/n9/Np1KiRiY+PNydOnHAvO3r0qImKijJ/PjR487Nt1aqVqVixosnMzPQY9/DDD5uQkBBz+PDhc738C379n332WZ7xzZo1M82aNcvzOurWrWvOnDnjXr527VojybzzzjvuZYV93+SndevWRpI5efLkOV9rrm7dupnKlSvnWZ777+TPKleubLp16+Z+vG7dugJ/Nme//oKeL3e/VKlSxZw6dcpjrNP74dNPPzWSzPjx48+bpbDv11WrVuX7+2XPnj0mNDTUDBkyxL2soPfPBx98YCSZ1NTUArMXpHLlysblcuX53hYtWpgyZcqY48ePG2OMGTt2rAkICDDr1q3L97k/+eQT9zJJJiIi4rz/fs52xx13GEkmJibGHDx40Bjj3f75s5ycHHP69Gmza9cuI8n897//da/Lfa8OHz7cq3zApYLLCAGcU8mSJfXUU09p/fr1hbp8qLDatWvn8bhmzZpyuVxq06aNe1lQUJCqVq2a74yIXbp08fjLb+XKlZWcnOy+5Gjbtm368ccfdffdd0uSzpw54/66+eablZaWpi1btnhss6BZvM62bNky1apVS9dcc43H8u7du8sYo2XLlhVqO0UhNjY2T4569erlu89yHT9+XOvWrVPHjh0VEhLiXh4eHq5bbrnlgnKcPHlSn332mTp06KBSpUrl2d8nT57M93K9vyoyMtKrM65t27ZVYGCg+3G9evUkyb2/LuR9czFo3769x5kKX+wHY4wk5blc8uws3rxfFyxYIJfLpXvuuccjc2xsrK688so8s1nm9/6pX7++SpYsqV69emnGjBl5Lq87n9q1a+e5x7VLly46evSoeybKBQsWqE6dOqpfv75HzlatWuU76+aNN96oyMhIr3KMHj1aktSvXz+VK1fO/byF3T+5E7wkJCQoKChIJUqUUOXKlSVJmzdvzvN8hf39CVxqKFsAzqtz585q0KCBHn/88SKZrlmSoqKiPB6XLFlSpUqV8vifqdzlJ0+ezPP9sbGx+S47dOiQJLkvLxo8eLBKlCjh8dWnTx9JynPvQWEv8Tt06FC+Y+Pj493rL0RgYKCys7PzXXfmzBlJynPpTnR0dJ6xwcHBOnHiRIHPk5GRoZycnAL34YU4dOiQzpw5o8mTJ+fZ3zfffLOkvPv7bBfy+r29LPPs/ZU78ULu/rqQ982fVapUSdIf03Db5Oz96Iv9kHv/YkJCwjmzePN+/eWXX2SMUUxMTJ7cq1evLtS/+SpVqmjp0qWqUKGC+vbtqypVqqhKlSp64YUXCnwt58r052V//v303Xff5ckYHh4uY8wF/276s9z3dsmSJd3LCrt/cnJy1LJlS82ZM0dDhgzRZ599prVr17r/YJLf7xd/zLQK2IB7tgCcl8vl0vjx49WiRQu99tpredbnFqSzJ5S40NJRGLk31Z+9LPd/pnP/kjts2LA893vlql69usfjws48GB0drbS0tDzL9+/f7/Hc3oqJidG+ffvyXZe7/M/3m1yoyMhIuVyuAvfhnxX2ZxsZGanAwEB17dpVffv2zfd5k5KSzpnrQl5/UX/G0oW8b/6sVatWeu211zRv3jwNHTr0vM8XEhKS70Qs5yumhdluZmZmobd79n78q/sh93fFufbDvHnzFBQUlGcij7OzePN+LVeunFwul/73v//lO4Ph2csKev80bdpUTZs2VXZ2ttavX6/Jkyerf//+iomJ8bi/LD/nyvnn30+hoaF68803893G2b9Diup9Xtj9s3HjRn377beaPn26unXr5l6/bdu2ArfN550B+aNsASiU5s2bq0WLFho9enSev0THxMQoJCRE3333ncfy//73v47leeeddzRw4ED3AX7Xrl1auXKle1KI6tWrq1q1avr22281ZsyYIn3um266SWPHjtXXX3+tBg0auJfPnDlTLpdLN9xwwwVtt3nz5pozZ44OHjyo8uXLu5cbY/T+++8rMTFRVatW/cv5w8LCdM0112jOnDmaOHGiu1D99ttvmj9/vsfYwv5sS5UqpRtuuEHffPON6tWr5/HX9MLy1es/l7/6vrn11ltVt25djR07Vu3atct3RsJFixa5Z49MTEzUgQMH9Msvv7iL5KlTp7Ro0aLzPtfZZ+X+LDExUe+//76ysrLc4w4dOqSVK1eqTJky5932X90PHTp0UK1atTRu3Dh17Ngxz4yE7733nhYvXqwHH3zwvGdTvXm/tmvXTuPGjdO+fft0xx13eJ37bIGBgWrUqJFq1Kiht99+W19//fV5y9amTZv07bffelxKOHv2bIWHh7t/X7Rr105jxoxRdHT0ef8IUZQKu39yf6+eXcj4QGTAe5QtAIU2fvx4NWzYUAcOHFDt2rXdy3PvAXjzzTdVpUoVXXnllVq7dq1mz57tWJYDBw6oQ4cO6tmzpzIzMzVixAiFhIRo2LBh7jGvvvqq2rRpo1atWql79+667LLLdPjwYW3evFlff/213n///Qt67gEDBmjmzJlq27atRo8ercqVK+vjjz/Wyy+/rIceeijfqa4LY/jw4Zo/f74aNWqkoUOHqlq1akpPT9frr7+udevWFek9c08+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", "text/plain": [ "
" ] @@ -1055,43 +1066,13 @@ } ], "source": [ - "unique_order_starting_cohort_merged = current_med_original_no_mapped_with_12_hours_temp.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "# find_unique_orders(unique_order_starting_cohort)\n", - "# 480007\n", - "unique_order_starting_cohort_merged[\"medication_time\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "When medication_name is null, medication_action is always null.\n" - ] - } - ], - "source": [ - "# # Check if there are rows where medication_name is null but medication_action is not null\n", - "# condition = current_med_original_no_mapped_with_12_hours_temp[\n", - "# current_med_original_no_mapped_with_12_hours_temp[\"medication_name\"].isnull() &\n", - "# current_med_original_no_mapped_with_12_hours_temp[\"medication_action\"].notnull()\n", - "# ]\n", - "\n", - "# # If the condition is empty, it means the combination is not possible\n", - "# if condition.empty:\n", - "# print(\"When medication_name is null, medication_action is always null.\")\n", - "# else:\n", - "# print(\"There are cases where medication_name is null but medication_action is not null.\")\n", - "# print(condition)" + "unique_order_inp_cohort_merged = current_med_original_no_mapped_with_12_hours_inpatient_temp.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "unique_order_inp_cohort_merged[\"medication_time\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1117,247 +1098,220 @@ " \n", " Year\n", " unique_order_starting_cohort\n", - " unique_order_starting_cohort_merged\n", + " unique_order_inp_cohort_merged\n", " diff\n", " \n", " \n", " \n", " \n", " 0\n", - " 1999.0\n", + " 1999\n", " 10\n", " NaN\n", " NaN\n", " \n", " \n", " 1\n", - " 2000.0\n", + " 2000\n", " 407\n", " NaN\n", " NaN\n", " \n", " \n", " 2\n", - " 2001.0\n", + " 2001\n", " 472\n", " NaN\n", " NaN\n", " \n", " \n", " 3\n", - " 2002.0\n", + " 2002\n", " 384\n", " NaN\n", " NaN\n", " \n", " \n", " 4\n", - " 2003.0\n", + " 2003\n", " 454\n", " NaN\n", " NaN\n", " \n", " \n", " 5\n", - " 2004.0\n", + " 2004\n", " 462\n", " NaN\n", " NaN\n", " \n", " \n", " 6\n", - " 2005.0\n", + " 2005\n", " 561\n", " NaN\n", " NaN\n", " \n", " \n", " 7\n", - " 2006.0\n", + " 2006\n", " 427\n", " NaN\n", " NaN\n", " \n", " \n", " 8\n", - " 2008.0\n", + " 2008\n", " 1651\n", - " 765.0\n", - " 886.0\n", + " 1252.0\n", + " 399.0\n", " \n", " \n", " 9\n", - " 2009.0\n", + " 2009\n", " 2495\n", - " 1741.0\n", - " 754.0\n", + " 2083.0\n", + " 412.0\n", " \n", " \n", " 10\n", - " 2010.0\n", + " 2010\n", " 2286\n", - " 1669.0\n", - " 617.0\n", + " 1954.0\n", + " 332.0\n", " \n", " \n", " 11\n", - " 2011.0\n", + " 2011\n", " 2214\n", - " 1561.0\n", - " 653.0\n", + " 1921.0\n", + " 293.0\n", " \n", " \n", " 12\n", - " 2012.0\n", + " 2012\n", " 2378\n", - " 1627.0\n", - " 751.0\n", + " 2005.0\n", + " 373.0\n", " \n", " \n", " 13\n", - " 2013.0\n", + " 2013\n", " 2324\n", - " 1637.0\n", - " 687.0\n", + " 2013.0\n", + " 311.0\n", " \n", " \n", " 14\n", - " 2014.0\n", + " 2014\n", " 2036\n", - " 1379.0\n", - " 657.0\n", + " 1802.0\n", + " 234.0\n", " \n", " \n", " 15\n", - " 2015.0\n", + " 2015\n", " 4877\n", - " 1434.0\n", - " 3443.0\n", + " 1536.0\n", + " 3341.0\n", " \n", " \n", " 16\n", - " 2016.0\n", + " 2016\n", " 5207\n", - " 1297.0\n", - " 3910.0\n", + " 1399.0\n", + " 3808.0\n", " \n", " \n", " 17\n", - " 2017.0\n", + " 2017\n", " 5396\n", - " 1533.0\n", - " 3863.0\n", + " 1699.0\n", + " 3697.0\n", " \n", " \n", " 18\n", - " 2018.0\n", + " 2018\n", " 5651\n", - " 1956.0\n", - " 3695.0\n", + " 2288.0\n", + " 3363.0\n", " \n", " \n", " 19\n", - " 2019.0\n", + " 2019\n", " 5561\n", - " 2256.0\n", - " 3305.0\n", + " 2651.0\n", + " 2910.0\n", " \n", " \n", " 20\n", - " 2020.0\n", + " 2020\n", " 4540\n", - " 1706.0\n", - " 2834.0\n", + " 1981.0\n", + " 2559.0\n", " \n", " \n", " 21\n", - " 2021.0\n", + " 2021\n", " 4925\n", - " 1990.0\n", - " 2935.0\n", + " 2356.0\n", + " 2569.0\n", " \n", " \n", " 22\n", - " 2022.0\n", + " 2022\n", " 5184\n", - " 2222.0\n", - " 2962.0\n", + " 2695.0\n", + " 2489.0\n", " \n", " \n", " 23\n", - " 2023.0\n", + " 2023\n", " 4755\n", - " 1984.0\n", - " 2771.0\n", + " 2324.0\n", + " 2431.0\n", " \n", " \n", " 24\n", - " 2024.0\n", + " 2024\n", " 115\n", - " 39.0\n", - " 76.0\n", + " 47.0\n", + " 68.0\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Year unique_order_starting_cohort unique_order_starting_cohort_merged \\\n", - "0 1999.0 10 NaN \n", - "1 2000.0 407 NaN \n", - "2 2001.0 472 NaN \n", - "3 2002.0 384 NaN \n", - "4 2003.0 454 NaN \n", - "5 2004.0 462 NaN \n", - "6 2005.0 561 NaN \n", - "7 2006.0 427 NaN \n", - "8 2008.0 1651 765.0 \n", - "9 2009.0 2495 1741.0 \n", - "10 2010.0 2286 1669.0 \n", - "11 2011.0 2214 1561.0 \n", - "12 2012.0 2378 1627.0 \n", - "13 2013.0 2324 1637.0 \n", - "14 2014.0 2036 1379.0 \n", - "15 2015.0 4877 1434.0 \n", - "16 2016.0 5207 1297.0 \n", - "17 2017.0 5396 1533.0 \n", - "18 2018.0 5651 1956.0 \n", - "19 2019.0 5561 2256.0 \n", - "20 2020.0 4540 1706.0 \n", - "21 2021.0 4925 1990.0 \n", - "22 2022.0 5184 2222.0 \n", - "23 2023.0 4755 1984.0 \n", - "24 2024.0 115 39.0 \n", - "\n", - " diff \n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "5 NaN \n", - "6 NaN \n", - "7 NaN \n", - "8 886.0 \n", - "9 754.0 \n", - "10 617.0 \n", - "11 653.0 \n", - "12 751.0 \n", - "13 687.0 \n", - "14 657.0 \n", - "15 3443.0 \n", - "16 3910.0 \n", - "17 3863.0 \n", - "18 3695.0 \n", - "19 3305.0 \n", - "20 2834.0 \n", - "21 2935.0 \n", - "22 2962.0 \n", - "23 2771.0 \n", - "24 76.0 " + " Year unique_order_starting_cohort unique_order_inp_cohort_merged diff\n", + "0 1999 10 NaN NaN\n", + "1 2000 407 NaN NaN\n", + "2 2001 472 NaN NaN\n", + "3 2002 384 NaN NaN\n", + "4 2003 454 NaN NaN\n", + "5 2004 462 NaN NaN\n", + "6 2005 561 NaN NaN\n", + "7 2006 427 NaN NaN\n", + "8 2008 1651 1252.0 399.0\n", + "9 2009 2495 2083.0 412.0\n", + "10 2010 2286 1954.0 332.0\n", + "11 2011 2214 1921.0 293.0\n", + "12 2012 2378 2005.0 373.0\n", + "13 2013 2324 2013.0 311.0\n", + "14 2014 2036 1802.0 234.0\n", + "15 2015 4877 1536.0 3341.0\n", + "16 2016 5207 1399.0 3808.0\n", + "17 2017 5396 1699.0 3697.0\n", + "18 2018 5651 2288.0 3363.0\n", + "19 2019 5561 2651.0 2910.0\n", + "20 2020 4540 1981.0 2559.0\n", + "21 2021 4925 2356.0 2569.0\n", + "22 2022 5184 2695.0 2489.0\n", + "23 2023 4755 2324.0 2431.0\n", + "24 2024 115 47.0 68.0" ] }, - "execution_count": 28, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1367,212 +1321,193 @@ "# Combine the value_counts from both dataframes\n", "combined_counts = pd.DataFrame({\n", " \"unique_order_starting_cohort\": unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index(),\n", - " \"unique_order_starting_cohort_merged\": unique_order_starting_cohort_merged[\"medication_time\"].dt.year.value_counts().sort_index()\n", + " \"unique_order_inp_cohort_merged\": unique_order_inp_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", "}).reset_index()\n", "\n", "# Rename the columns for clarity\n", - "combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_starting_cohort_merged\"]\n", + "combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_inp_cohort_merged\"]\n", "\n", "# Display the combined dataframe\n", - "combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_starting_cohort_merged\"]\n", - "# unique_order_starting_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", + "combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_inp_cohort_merged\"]\n", "combined_counts\n" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 19, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "When medication_name is null, medication_action is always null.\n" + ] + } + ], "source": [ - "# ------------inpatient only---------" + "# # Check if there are rows where medication_name is null but medication_action is not null\n", + "# condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\n", + "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].isnull() &\n", + "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_action\"].notnull()\n", + "# ]\n", + "\n", + "# # If the condition is empty, it means the combination is not possible\n", + "# if condition.empty:\n", + "# print(\"When medication_name is null, medication_action is always null.\")\n", + "# else:\n", + "# print(\"There are cases where medication_name is null but medication_action is not null.\")\n", + "# print(condition)" ] }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 21, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "32006" - ] - }, - "execution_count": 112, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 32002\n", + "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 31730\n" + ] } ], "source": [ - "find_unique_orders(starting_cohort[starting_cohort[\"ordering_mode\"] == \"Inpatient\"])" + "print(\"the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is {}\".format(find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)))\n", + "print(\"the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is {}\".format(find_unique_patient_encounter(current_med_original_no_mapped_with_12_hours_inpatient_temp)))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# classify the medication name into antibiotic or not\n", + "current_med_original_no_mapped_with_12_hours_inpatient_temp[\"cleaned_antibiotic\"] = current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].apply(\n", + " lambda x: find_antibiotics(x, antibiotic_list)\n", + ")" ] }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 23, "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d3e1e3f5f63f4d4390e92a8cc8947471", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0a3e2dd038b74beb8c6727cb5168206f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with current medication is 25890\n", + "the percentage of unique patient encounter with any medication (out of all inpatients) is 81.59%\n", + "----------------------------------------------------------\n", + "the unique culture order with current medication is 26126\n", + "the percentage of unique culture order with any medication (out of all inpatients) is 81.64%\n" + ] } ], "source": [ - "%%bigquery --use_rest_api current_med_original_no_mapped_with_12_hours_inpatient_temp\n", - "WITH base_c AS (\n", - " SELECT DISTINCT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc,\n", - " result_time_jittered_utc,\n", - " ordering_mode\n", - " FROM \n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort`\n", - " where ordering_mode='Inpatient' # focus on the inpatient setting\n", - "),\n", - "\n", - "-- Inner join between order_med and pharmacy_mar\n", - "medications_joined AS (\n", - " SELECT \n", - " mo.anon_id,\n", - " mo.order_med_id_coded,\n", - " # mo.ordering_date_jittered_utc AS medication_time,\n", - " mo.med_description AS medication_name,\n", - " mar.mar_action AS medication_action,\n", - " mar.taken_time_jittered_utc AS medication_time, # new medication_time\n", - " mo.pat_enc_csn_id_coded\n", - " FROM \n", - " `som-nero-phi-jonc101.shc_core_2023.order_med` mo\n", - " INNER JOIN \n", - " `som-nero-phi-jonc101.shc_core_2023.pharmacy_mar` mar\n", - " ON \n", - " mo.anon_id = mar.anon_id \n", - " AND mo.order_med_id_coded = mar.order_med_id_coded\n", - "),\n", - "\n", - "-- Join base_c with the combined medication data, within 12 hours\n", - "cleaned_medications AS (\n", - " SELECT \n", - " c.anon_id,\n", - " c.pat_enc_csn_id_coded,\n", - " c.order_proc_id_coded,\n", - " c.order_time_jittered_utc,\n", - " c.result_time_jittered_utc,\n", - " c.ordering_mode,\n", - " m.medication_time,\n", - " m.medication_name,\n", - " m.order_med_id_coded,\n", - " m.medication_action\n", - " FROM \n", - " base_c c\n", - " LEFT JOIN \n", - " medications_joined m\n", - " ON \n", - " c.anon_id = m.anon_id\n", - " AND (\n", - " (\n", - " c.pat_enc_csn_id_coded = m.pat_enc_csn_id_coded\n", - " OR ABS(TIMESTAMP_DIFF(m.medication_time, c.order_time_jittered_utc, HOUR)) <= 12 -- subjective window\n", - " )\n", - " OR (\n", - " m.medication_time > c.order_time_jittered_utc\n", - " AND m.medication_time <= c.result_time_jittered_utc\n", - " )\n", - " )\n", - " # AND ABS(TIMESTAMP_DIFF(m.medication_time, c.order_time_jittered_utc, HOUR)) <= 12 # this is subjective \n", - " \n", - ")\n", - "\n", - "SELECT DISTINCT *\n", - "FROM cleaned_medications\n", - "GROUP BY \n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc,\n", - " result_time_jittered_utc,\n", - " ordering_mode,\n", - " medication_time,\n", - " medication_name,\n", - " order_med_id_coded,\n", - " medication_action\n", - "ORDER BY \n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc,\n", - " result_time_jittered_utc,\n", - " ordering_mode,\n", - " medication_time,\n", - " medication_name,\n", - " order_med_id_coded,\n", - " medication_action" + "# check how many patient encounter given any medication\n", + "condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].notna() \n", + "any_med_inp= current_med_original_no_mapped_with_12_hours_inpatient_temp[condition]\n", + "any_med_inp_pat_enc_cnt = find_unique_patient_encounter(any_med_inp)\n", + "total_inp_pat_enc_cnt = find_unique_patient_encounter(current_med_original_no_mapped_with_12_hours_inpatient_temp)\n", + "print(\"the unique patient encounter number with current medication is {}\".format(any_med_inp_pat_enc_cnt))\n", + "percentage = any_med_inp_pat_enc_cnt/total_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with any medication (out of all inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "any_med_inp_order_cnt = find_unique_orders(any_med_inp)\n", + "total_inp_order_cnt = find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)\n", + "print(\"the unique culture order with current medication is {}\".format(any_med_inp_order_cnt))\n", + "percentage = any_med_inp_order_cnt/total_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with any medication (out of all inpatients) is {:.2f}%\".format(percentage))" ] }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 24, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "32006" - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with current abx medication is 9739\n", + "the percentage of unique patient encounter with current abx medication(out of any med) is 37.62%\n", + "----------------------------------------------------------\n", + "the unique culture order with current abx medication is 9883\n", + "the percentage of unique culture order with current abx medication (out of any med) is 37.83%\n" + ] } ], "source": [ - "find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)" + "# check how many orders given any antibiotic out of all medication order\n", + "condition = any_med_inp[\"cleaned_antibiotic\"] != \"No Match\"\n", + "abx_med_inp = any_med_inp[condition]\n", + "abx_med_inp_pat_enc_cnt= find_unique_patient_encounter(abx_med_inp)\n", + "print(\"the unique patient encounter number with current abx medication is {}\".format(abx_med_inp_pat_enc_cnt))\n", + "percentage = abx_med_inp_pat_enc_cnt/any_med_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with current abx medication(out of any med) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "abx_med_inp_order_cnt = find_unique_orders(abx_med_inp)\n", + "print(\"the unique culture order with current abx medication is {}\".format(abx_med_inp_order_cnt))\n", + "percentage = abx_med_inp_order_cnt/any_med_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with current abx medication (out of any med) is {:.2f}%\".format(percentage))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The above code shows that out of all inpatient encounter with any medication `n = 25892`, `37.62%` (`n = 9,739`) has abx medication\n", + "31734 --> 25759 --> 9739" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ------------------------ ED Inpatient Only --------------------" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Refactor Fateme's code for ward info in order to select ED order\n", + "Reference: https://github.com/HealthRex/CDSS/blob/master/scripts/antibiotic-susceptibility/sql/queries/microbiology_cultures_ward_info.sql" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 25, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1e105f28c84046d291198404c3d50714", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "" + "Query is running: 0%| |" ] }, - "execution_count": 21, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" }, { "data": { - "image/png": "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q23btpo1a5aOHz9e4NmHgwcPKjk5WadOndKTTz6pxMRELViwQIMHD9b27dv18ssvq0GDBlq1apU6dOigKlWquP/HsKgvI0xPT9fdd9+tQYMGacSIEZo7d66GDRum+Ph43XvvvQV+32effaZbb71VjRs31rvvvqvs7GxNmDBBv/zyywVn+eGHH5ScnKxKlSrp2WefVWxsrBYtWqR+/frp119/1YgRIy542wVJS0vTPffcoyFDhmjMmDEKCDj33xBfeukl1ahRQ88//7wk6YknntDNN9+sHTt2uC/r8/Z982eLFy+WJMfPZDZo0EDTpk3Tfffdp3/9619q27atJKlixYoXtL0XX3xRV1xxhZ555hmVKVNG1apV+0v7YcmSJZLOvR9uu+02LV68WF988YU6d+58zizevF979+6t6dOnq1+/fho/frwOHz6s0aNHKzk5Wd9++61iYmLcY/N7/+TeZ9m0aVO9+eabKlu2rPbt26eFCxfq1KlT5z1jk5qaqv79+2vkyJGKjY3V22+/rUcffVSnTp3S4MGDJf1x5qdZs2bau3ev/vnPf6pevXratGmThg8fru+//15Lly71KNvz5s3T//73Pw0fPlyxsbGqUKFCgc8fFxenl156SXfddZfGjh2riRMnqlOnTu7LCgu7f7Zv367GjRvrgQceUEREhHbu3KlJkybpuuuu0/fff5/n92PHjh3VuXNnPfjgg3kKI3BJMwBwlmnTphlJZt26dSYrK8tcfvnl5uqrrzY5OTnGGGOaNWtmateu7R6/Y8cOI8lMmzYtz7YkmREjRrgfjxgxwkgyzz77rMe4+vXrG0lmzpw57mWnT5825cuXNx07dnQv+/zzz40k06BBA3ceY4zZuXOnKVGihHnggQfcy2rUqGGuuuoqc/r0aY/nateunYmLizPZ2dker/fee+8t1P4ZOnSokWTWrFnjsfyhhx4yLpfLbNmyxb2scuXKpm3btoXariTTt2/ffNe9//77RpL5/PPP3cuaNWuWb45atWqZVq1auR/n9/Np1KiRiY+PNydOnHAvO3r0qImKijJ/PjR487Nt1aqVqVixosnMzPQY9/DDD5uQkBBz+PDhc738C379n332WZ7xzZo1M82aNcvzOurWrWvOnDnjXr527VojybzzzjvuZYV93+SndevWRpI5efLkOV9rrm7dupnKlSvnWZ777+TPKleubLp16+Z+vG7dugJ/Nme//oKeL3e/VKlSxZw6dcpjrNP74dNPPzWSzPjx48+bpbDv11WrVuX7+2XPnj0mNDTUDBkyxL2soPfPBx98YCSZ1NTUArMXpHLlysblcuX53hYtWpgyZcqY48ePG2OMGTt2rAkICDDr1q3L97k/+eQT9zJJJiIi4rz/fs52xx13GEkmJibGHDx40Bjj3f75s5ycHHP69Gmza9cuI8n897//da/Lfa8OHz7cq3zApYLLCAGcU8mSJfXUU09p/fr1hbp8qLDatWvn8bhmzZpyuVxq06aNe1lQUJCqVq2a74yIXbp08fjLb+XKlZWcnOy+5Gjbtm368ccfdffdd0uSzpw54/66+eablZaWpi1btnhss6BZvM62bNky1apVS9dcc43H8u7du8sYo2XLlhVqO0UhNjY2T4569erlu89yHT9+XOvWrVPHjh0VEhLiXh4eHq5bbrnlgnKcPHlSn332mTp06KBSpUrl2d8nT57M93K9vyoyMtKrM65t27ZVYGCg+3G9evUkyb2/LuR9czFo3769x5kKX+wHY4wk5blc8uws3rxfFyxYIJfLpXvuuccjc2xsrK688so8s1nm9/6pX7++SpYsqV69emnGjBl5Lq87n9q1a+e5x7VLly46evSoeybKBQsWqE6dOqpfv75HzlatWuU76+aNN96oyMhIr3KMHj1aktSvXz+VK1fO/byF3T+5E7wkJCQoKChIJUqUUOXKlSVJmzdvzvN8hf39CVxqKFsAzqtz585q0KCBHn/88SKZrlmSoqKiPB6XLFlSpUqV8vifqdzlJ0+ezPP9sbGx+S47dOiQJLkvLxo8eLBKlCjh8dWnTx9JynPvQWEv8Tt06FC+Y+Pj493rL0RgYKCys7PzXXfmzBlJynPpTnR0dJ6xwcHBOnHiRIHPk5GRoZycnAL34YU4dOiQzpw5o8mTJ+fZ3zfffLOkvPv7bBfy+r29LPPs/ZU78ULu/rqQ982fVapUSdIf03Db5Oz96Iv9kHv/YkJCwjmzePN+/eWXX2SMUUxMTJ7cq1evLtS/+SpVqmjp0qWqUKGC+vbtqypVqqhKlSp64YUXCnwt58r052V//v303Xff5ckYHh4uY8wF/276s9z3dsmSJd3LCrt/cnJy1LJlS82ZM0dDhgzRZ599prVr17r/YJLf7xd/zLQK2IB7tgCcl8vl0vjx49WiRQu99tpredbnFqSzJ5S40NJRGLk31Z+9LPd/pnP/kjts2LA893vlql69usfjws48GB0drbS0tDzL9+/f7/Hc3oqJidG+ffvyXZe7/M/3m1yoyMhIuVyuAvfhnxX2ZxsZGanAwEB17dpVffv2zfd5k5KSzpnrQl5/UX/G0oW8b/6sVatWeu211zRv3jwNHTr0vM8XEhKS70Qs5yumhdluZmZmobd79n78q/sh93fFufbDvHnzFBQUlGcij7OzePN+LVeunFwul/73v//lO4Ph2csKev80bdpUTZs2VXZ2ttavX6/Jkyerf//+iomJ8bi/LD/nyvnn30+hoaF68803893G2b9Diup9Xtj9s3HjRn377beaPn26unXr5l6/bdu2ArfN550B+aNsASiU5s2bq0WLFho9enSev0THxMQoJCRE3333ncfy//73v47leeeddzRw4ED3AX7Xrl1auXKle1KI6tWrq1q1avr22281ZsyYIn3um266SWPHjtXXX3+tBg0auJfPnDlTLpdLN9xwwwVtt3nz5pozZ44OHjyo8uXLu5cbY/T+++8rMTFRVatW/cv5w8LCdM0112jOnDmaOHGiu1D99ttvmj9/vsfYwv5sS5UqpRtuuEHffPON6tWr5/HX9MLy1es/l7/6vrn11ltVt25djR07Vu3atct3RsJFixa5Z49MTEzUgQMH9Msvv7iL5KlTp7Ro0aLzPtfZZ+X+LDExUe+//76ysrLc4w4dOqSVK1eqTJky5932X90PHTp0UK1atTRu3Dh17Ngxz4yE7733nhYvXqwHH3zwvGdTvXm/tmvXTuPGjdO+fft0xx13eJ37bIGBgWrUqJFq1Kiht99+W19//fV5y9amTZv07bffelxKOHv2bIWHh7t/X7Rr105jxoxRdHT0ef8IUZQKu39yf6+eXcj4QGTAe5QtAIU2fvx4NWzYUAcOHFDt2rXdy3PvAXjzzTdVpUoVXXnllVq7dq1mz57tWJYDBw6oQ4cO6tmzpzIzMzVixAiFhIRo2LBh7jGvvvqq2rRpo1atWql79+667LLLdPjwYW3evFlff/213n///Qt67gEDBmjmzJlq27atRo8ercqVK+vjjz/Wyy+/rIceeijfqa4LY/jw4Zo/f74aNWqkoUOHqlq1akpPT9frr7+udevWFek9c08+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", + "application/vnd.jupyter.widget-view+json": { + "model_id": "9a86623c4ca04c45ad82545628e1be9a", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "
" + "Downloading: 0%| |" ] }, "metadata": {}, @@ -1580,3635 +1515,1086 @@ } ], "source": [ - "unique_order_inp_cohort_merged = current_med_original_no_mapped_with_12_hours_inpatient_temp.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "unique_order_inp_cohort_merged[\"medication_time\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Yearunique_order_starting_cohortunique_order_inp_cohort_mergeddiff
0199910NaNNaN
12000407NaNNaN
22001472NaNNaN
32002384NaNNaN
42003454NaNNaN
52004462NaNNaN
62005561NaNNaN
72006427NaNNaN
8200816511252.0399.0
9200924952083.0412.0
10201022861954.0332.0
11201122141921.0293.0
12201223782005.0373.0
13201323242013.0311.0
14201420361802.0234.0
15201548771536.03341.0
16201652071399.03808.0
17201753961699.03697.0
18201856512288.03363.0
19201955612651.02910.0
20202045401981.02559.0
21202149252356.02569.0
22202251842695.02489.0
23202347552324.02431.0
24202411547.068.0
\n", - "
" - ], - "text/plain": [ - " Year unique_order_starting_cohort unique_order_inp_cohort_merged diff\n", - "0 1999 10 NaN NaN\n", - "1 2000 407 NaN NaN\n", - "2 2001 472 NaN NaN\n", - "3 2002 384 NaN NaN\n", - "4 2003 454 NaN NaN\n", - "5 2004 462 NaN NaN\n", - "6 2005 561 NaN NaN\n", - "7 2006 427 NaN NaN\n", - "8 2008 1651 1252.0 399.0\n", - "9 2009 2495 2083.0 412.0\n", - "10 2010 2286 1954.0 332.0\n", - "11 2011 2214 1921.0 293.0\n", - "12 2012 2378 2005.0 373.0\n", - "13 2013 2324 2013.0 311.0\n", - "14 2014 2036 1802.0 234.0\n", - "15 2015 4877 1536.0 3341.0\n", - "16 2016 5207 1399.0 3808.0\n", - "17 2017 5396 1699.0 3697.0\n", - "18 2018 5651 2288.0 3363.0\n", - "19 2019 5561 2651.0 2910.0\n", - "20 2020 4540 1981.0 2559.0\n", - "21 2021 4925 2356.0 2569.0\n", - "22 2022 5184 2695.0 2489.0\n", - "23 2023 4755 2324.0 2431.0\n", - "24 2024 115 47.0 68.0" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "# Combine the value_counts from both dataframes\n", - "combined_counts = pd.DataFrame({\n", - " \"unique_order_starting_cohort\": unique_order_starting_cohort[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index(),\n", - " \"unique_order_inp_cohort_merged\": unique_order_inp_cohort_merged[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index()\n", - "}).reset_index()\n", - "\n", - "# Rename the columns for clarity\n", - "combined_counts.columns = [\"Year\", \"unique_order_starting_cohort\", \"unique_order_inp_cohort_merged\"]\n", + "%%bigquery --use_rest_api df_hosp_ward_info\n", + "WITH\n", + "-- Step 1: Extract ER and ICU Information from adt Table\n", + "temp_er_icu_info_adt AS (\n", + " SELECT\n", + " anon_id,\n", + " pat_enc_csn_id_coded,\n", + " CASE \n", + " WHEN pat_class = 'Emergency' OR pat_class = 'Emergency Services' THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_ER,\n", + " CASE \n", + " WHEN pat_class = 'Intensive Care (IC)' THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_ICU,\n", + " CASE \n", + " WHEN pat_lv_of_care LIKE \"%Critical Care\" THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_Critical_Care\n", + " FROM\n", + " `som-nero-phi-jonc101.shc_core_2023.adt`\n", + "),\n", "\n", - "# Display the combined dataframe\n", - "combined_counts[\"diff\"] = combined_counts[\"unique_order_starting_cohort\"] - combined_counts[\"unique_order_inp_cohort_merged\"]\n", - "combined_counts\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "When medication_name is null, medication_action is always null.\n" - ] - } - ], - "source": [ - "# # Check if there are rows where medication_name is null but medication_action is not null\n", - "# condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\n", - "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].isnull() &\n", - "# current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_action\"].notnull()\n", - "# ]\n", + "-- Step 2: Extract ER Information from order_proc Table\n", + "temp_er_info_order_proc AS (\n", + " SELECT\n", + " anon_id,\n", + " pat_enc_csn_id_coded,\n", + " order_proc_id_coded,\n", + " CASE \n", + " WHEN proc_pat_class = 'Emergency' OR proc_pat_class = 'Emergency Services' THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_ER_order_proc\n", + " FROM\n", + " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", + "),\n", "\n", - "# # If the condition is empty, it means the combination is not possible\n", - "# if condition.empty:\n", - "# print(\"When medication_name is null, medication_action is always null.\")\n", - "# else:\n", - "# print(\"There are cases where medication_name is null but medication_action is not null.\")\n", - "# print(condition)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_action
0JC10008981310151720223887605492011-08-16 12:17:00+00:002011-08-19 13:48:00+00:00InpatientNaTNone<NA>None
1JC10009051310069705193575422042009-09-27 18:43:00+00:002009-09-29 23:43:00+00:00Inpatient2009-09-27 19:45:00+00:00ACETAMINOPHEN 100 MG/ML PO DROP357545020Given
2JC10009051310069705193575422042009-09-27 18:43:00+00:002009-09-29 23:43:00+00:00Inpatient2009-09-27 19:45:02+00:00IBUPROFEN 100 MG/5 ML PO SUSP357545024Given
3JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 03:39:00+00:00ACETAMINOPHEN 80 MG/0.8 ML PO DRPS387579939Given
4JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 03:39:00+00:00ACETAMINOPHEN 80 MG/0.8 ML PO DRPS387579950Given
\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000898 131015172022 388760549 \n", - "1 JC1000905 131006970519 357542204 \n", - "2 JC1000905 131006970519 357542204 \n", - "3 JC1000924 131014644911 387581858 \n", - "4 JC1000924 131014644911 387581858 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-08-16 12:17:00+00:00 2011-08-19 13:48:00+00:00 Inpatient \n", - "1 2009-09-27 18:43:00+00:00 2009-09-29 23:43:00+00:00 Inpatient \n", - "2 2009-09-27 18:43:00+00:00 2009-09-29 23:43:00+00:00 Inpatient \n", - "3 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "4 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "\n", - " medication_time medication_name \\\n", - "0 NaT None \n", - "1 2009-09-27 19:45:00+00:00 ACETAMINOPHEN 100 MG/ML PO DROP \n", - "2 2009-09-27 19:45:02+00:00 IBUPROFEN 100 MG/5 ML PO SUSP \n", - "3 2011-07-25 03:39:00+00:00 ACETAMINOPHEN 80 MG/0.8 ML PO DRPS \n", - "4 2011-07-25 03:39:00+00:00 ACETAMINOPHEN 80 MG/0.8 ML PO DRPS \n", - "\n", - " order_med_id_coded medication_action \n", - "0 None \n", - "1 357545020 Given \n", - "2 357545024 Given \n", - "3 387579939 Given \n", - "4 387579950 Given " - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "current_med_original_no_mapped_with_12_hours_inpatient_temp.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is 32006\n", - "the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is 31734\n" - ] - } - ], - "source": [ - "print(\"the number of unique orders for current_med_original_no_mapped_with_12_hours_inpatient_temp is {}\".format(find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)))\n", - "print(\"the number of unique patient encounters for current_med_original_no_mapped_with_12_hours_inpatient_temp is {}\".format(find_unique_patient_encounter(current_med_original_no_mapped_with_12_hours_inpatient_temp)))" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "metadata": {}, - "outputs": [], - "source": [ - "# classify the medication name into antibiotic or not\n", - "current_med_original_no_mapped_with_12_hours_inpatient_temp[\"cleaned_antibiotic\"] = current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].apply(\n", - " lambda x: find_antibiotics(x, antibiotic_list)\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 115, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with current medication is 25892\n", - "the percentage of unique patient encounter with any medication (out of all inpatients) is 81.59%\n", - "----------------------------------------------------------\n", - "the unique culture order with current medication is 26128\n", - "the percentage of unique culture order with any medication (out of all inpatients) is 81.63%\n" - ] - } - ], - "source": [ - "# check how many patient encounter given any medication\n", - "condition = current_med_original_no_mapped_with_12_hours_inpatient_temp[\"medication_name\"].notna() \n", - "any_med_inp= current_med_original_no_mapped_with_12_hours_inpatient_temp[condition]\n", - "any_med_inp_pat_enc_cnt = find_unique_patient_encounter(any_med_inp)\n", - "total_inp_pat_enc_cnt = find_unique_patient_encounter(current_med_original_no_mapped_with_12_hours_inpatient_temp)\n", - "print(\"the unique patient encounter number with current medication is {}\".format(any_med_inp_pat_enc_cnt))\n", - "percentage = any_med_inp_pat_enc_cnt/total_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with any medication (out of all inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "any_med_inp_order_cnt = find_unique_orders(any_med_inp)\n", - "total_inp_order_cnt = find_unique_orders(current_med_original_no_mapped_with_12_hours_inpatient_temp)\n", - "print(\"the unique culture order with current medication is {}\".format(any_med_inp_order_cnt))\n", - "percentage = any_med_inp_order_cnt/total_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with any medication (out of all inpatients) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient encounter (**`N = 31734`**), `81.59%` (`n = 25892`) has medication (abx or non-abx)\n", - "31734 --> 25892" - ] - }, - { - "cell_type": "code", - "execution_count": 116, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "medication_name\n", - "IBUPROFEN 100 MG/5 ML PO SUSP 8327\n", - "NS IV BOLUS 8256\n", - "LIDOCAINE 4 % TP CREA 7643\n", - "NS IV BOLUS - 30 ML/KG 7522\n", - "ACETAMINOPHEN 160 MG/5 ML (5 ML) PO SUSP (PED) 6620\n", - "ONDANSETRON 4 MG PO TBDL 4227\n", - "ACETAMINOPHEN 650 MG/20.3 ML PO SOLN 3454\n", - "ONDANSETRON HCL (PF) 4 MG/2 ML INJ SOLN 3354\n", - "FENTANYL CITRATE (PF) 50 MCG/ML INJ SOLN 3045\n", - "PHENYLEPHRINE IV INFUSION 2665\n", - "D5 % AND 0.9 % SODIUM CHLORIDE IV SOLP 2229\n", - "ACETAMINOPHEN 325 MG PO TABS 2149\n", - "ACETAMINOPHEN 80 MG/0.8 ML PO DRPS 1993\n", - "ACETAMINOPHEN 325 MG/10.15 ML PO SOLN 1936\n", - "ACETAMINOPHEN 120 MG PR SUPP 1610\n", - "NEONATAL FEEDING (VC) 1594\n", - "OXYCODONE 5 MG PO TABS 1569\n", - "NS IV BOLUS - 1000 ML 1426\n", - "PROPOFOL 10 MG/ML IV EMUL 1304\n", - "FENTANYL (PF) 50 MCG/ML INJECTION 1107\n", - "ZZZ IMS TEMPLATE 1084\n", - "MORPHINE 2 MG/ML INJ SYRG 1048\n", - "ACETAMINOPHEN 100 MG/ML PO DROP 979\n", - "HEPARIN, PORCINE (PF) 100 UNIT/ML IV SYRG 971\n", - "LIDOCAINE 5 %(700 MG/PATCH) TP PTMD 953\n", - "DEXMEDETOMIDINE IN 0.9 % NACL 400 MCG/100 ML (4 MCG/ML) IV SOLN 875\n", - "POTASSIUM CHLORIDE IV SCALE 848\n", - "LORAZEPAM 2 MG/ML INJ SOLN 833\n", - "NS WITH POTASSIUM CHLORIDE 20 MEQ/L IV SOLP 833\n", - "SODIUM CHLORIDE 0.9 % 0.9 % IV SOLP 798\n", - "ACETAMINOPHEN 500 MG PO TABS 795\n", - "GABAPENTIN 300 MG PO CAPS 786\n", - "NS WITH POTASSIUM CHLORIDE 40 MEQ/L IV SOLP 715\n", - "MIDAZOLAM IV INFUSION 711\n", - "ACETAMINOPHEN 160 MG/5 ML PO SOLN 659\n", - "HYDROMORPHONE 1 MG/ML IV PCA 652\n", - "PROPOFOL 10 MG/ML IV INFUSION 650\n", - "DOCUSATE SODIUM 100 MG PO CAPS 646\n", - "POTASSIUM CHLORIDE-D5-0.9%NACL 20 MEQ/L IV SOLP 634\n", - "D5 %-0.45 % SODIUM CHLORIDE IV SOLP 595\n", - "LIDOCAINE 1000 MG IN 100 ML IV INFUSION 592\n", - "HYDROMORPHONE 10 MG IN 100 ML IV INFUSION (SHC) 579\n", - "ACETAMINOPHEN 325 MG PR SUPP 568\n", - "POLYETHYLENE GLYCOL 3350 17 GRAM PO PWPK 535\n", - "INSULIN REGULAR HUMAN 100 UNIT/ML INJ SOLN 524\n", - "D5-1/2 NS & POTASSIUM CHLORIDE 20 MEQ/L IV SOLP 518\n", - "PENTOBARBITAL IV INFUSION 516\n", - "MIDAZOLAM 200 MG IN D5W 100 ML IV INFUSION 514\n", - "DIPHENHYDRAMINE HCL 50 MG/ML INJ SOLN 473\n", - "ALBUTEROL SULFATE 2.5 MG /3 ML (0.083 %) INH NEBU 472\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 116, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "any_med_inp[any_med_inp[\"cleaned_antibiotic\"] == \"No Match\"][\"medication_name\"].value_counts().head(50)" - ] - }, - { - "cell_type": "code", - "execution_count": 117, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with current abx medication is 9741\n", - "the percentage of unique patient encounter with current abx medication(out of any med) is 37.62%\n", - "----------------------------------------------------------\n", - "the unique culture order with current abx medication is 9885\n", - "the percentage of unique culture order with current abx medication (out of any med) is 37.83%\n" - ] - } - ], - "source": [ - "# check how many orders given any antibiotic out of all medication order\n", - "condition = any_med_inp[\"cleaned_antibiotic\"] != \"No Match\"\n", - "abx_med_inp = any_med_inp[condition]\n", - "abx_med_inp_pat_enc_cnt= find_unique_patient_encounter(abx_med_inp)\n", - "print(\"the unique patient encounter number with current abx medication is {}\".format(abx_med_inp_pat_enc_cnt))\n", - "percentage = abx_med_inp_pat_enc_cnt/any_med_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with current abx medication(out of any med) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "abx_med_inp_order_cnt = find_unique_orders(abx_med_inp)\n", - "print(\"the unique culture order with current abx medication is {}\".format(abx_med_inp_order_cnt))\n", - "percentage = abx_med_inp_order_cnt/any_med_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with current abx medication (out of any med) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient encounter with any medication `n = 25892`, `37.62%` (`n = 9,741`) has abx medication\n", - "31734 --> 25759 --> 9741" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ------------------------ ED Inpatient Only --------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Refactor Fateme's code for ward info in order to select ED order\n", - "Reference: https://github.com/HealthRex/CDSS/blob/master/scripts/antibiotic-susceptibility/sql/queries/microbiology_cultures_ward_info.sql" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "986e887a948f435483a6582bf61446db", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c0252ef209584bb5805edd7b7c9454fe", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api df_hosp_ward_info\n", - "WITH\n", - "-- Step 1: Extract ER and ICU Information from adt Table\n", - "temp_er_icu_info_adt AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " CASE \n", - " WHEN pat_class = 'Emergency' OR pat_class = 'Emergency Services' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ER,\n", - " CASE \n", - " WHEN pat_class = 'Intensive Care (IC)' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ICU,\n", - " CASE \n", - " WHEN pat_lv_of_care LIKE \"%Critical Care\" THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_Critical_Care\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.adt`\n", - "),\n", - "\n", - "-- Step 2: Extract ER Information from order_proc Table\n", - "temp_er_info_order_proc AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " CASE \n", - " WHEN proc_pat_class = 'Emergency' OR proc_pat_class = 'Emergency Services' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_ER_order_proc\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", - "),\n", - "\n", - "-- Step 3: Combine ER and ICU Information\n", - "temp_combined_er_icu_info AS (\n", + "-- Step 3: Combine ER and ICU Information\n", + "temp_combined_er_icu_info AS (\n", " SELECT\n", " adt.anon_id,\n", " adt.pat_enc_csn_id_coded,\n", " adt.hosp_ward_ER,\n", " adt.hosp_ward_ICU,\n", - " adt.hosp_ward_Critical_Care,\n", - " er.order_proc_id_coded,\n", - " er.hosp_ward_ER_order_proc\n", - " FROM\n", - " temp_er_icu_info_adt adt\n", - " LEFT JOIN\n", - " temp_er_info_order_proc er\n", - " ON\n", - " adt.pat_enc_csn_id_coded = er.pat_enc_csn_id_coded\n", - "),\n", - "\n", - "-- Step 4: Extract IP and OP Information from order_proc Table\n", - "temp_ip_op_info AS (\n", - " SELECT\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc,\n", - " CASE \n", - " WHEN ordering_mode = 'Inpatient' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_IP,\n", - " CASE \n", - " WHEN ordering_mode = 'Outpatient' THEN 1\n", - " ELSE 0\n", - " END AS hosp_ward_OP\n", - " FROM\n", - " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", - "),\n", - "\n", - "-- Step 5: Combine All Information into One Temporary Table\n", - "temp_combined_hosp_ward_info AS (\n", - " SELECT\n", - " ipop.anon_id,\n", - " ipop.pat_enc_csn_id_coded,\n", - " ipop.order_proc_id_coded,\n", - " ipop.order_time_jittered_utc,\n", - " ipop.hosp_ward_IP,\n", - " ipop.hosp_ward_OP,\n", - " COALESCE(icu.hosp_ward_ER, 0) AS hosp_ward_ER_adt,\n", - " COALESCE(icu.hosp_ward_ER_order_proc, 0) AS hosp_ward_ER_order_proc,\n", - " COALESCE(icu.hosp_ward_ICU, 0) AS hosp_ward_ICU,\n", - " COALESCE(icu.hosp_ward_Critical_Care, 0) AS hosp_ward_Critical_Care\n", - " FROM\n", - " temp_ip_op_info ipop\n", - " LEFT JOIN\n", - " temp_combined_er_icu_info icu\n", - " ON\n", - " ipop.pat_enc_csn_id_coded = icu.pat_enc_csn_id_coded AND ipop.order_proc_id_coded = icu.order_proc_id_coded\n", - "),\n", - "\n", - "-- Step 6: Extract ICU stay based on transfer orders\n", - "temp_cohortOfInterest AS (\n", - " SELECT DISTINCT\n", - " pat_enc_csn_id_coded,\n", - " hosp_disch_time_jittered_utc\n", - " FROM `som-nero-phi-jonc101.shc_core_2023.encounter`\n", - " WHERE hosp_disch_time_jittered_utc IS NOT NULL\n", - "),\n", - "\n", - "temp_ordersTransfer AS (\n", - " SELECT DISTINCT\n", - " pat_enc_csn_id_coded,\n", - " description,\n", - " level_of_care,\n", - " service,\n", - " order_inst_jittered_utc\n", - " FROM `som-nero-phi-jonc101.shc_core_2023.order_proc` AS procedures\n", - " WHERE (description LIKE \"CHANGE LEVEL OF CARE/TRANSFER PATIENT\" OR description LIKE \"ADMIT TO INPATIENT\") AND level_of_care IS NOT NULL\n", - "),\n", - "\n", - "temp_icuTransferCount AS (\n", - " SELECT\n", - " mc.pat_enc_csn_id_coded,\n", - " COUNT(CASE WHEN level_of_care LIKE \"Critical Care\" THEN 1 END) AS numICUTransfers\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc # only change this to the starting cohort above\n", - " LEFT JOIN\n", - " temp_ordersTransfer ot\n", - " ON\n", - " mc.pat_enc_csn_id_coded = ot.pat_enc_csn_id_coded\n", - " GROUP BY\n", - " mc.pat_enc_csn_id_coded\n", - "),\n", - "\n", - "microbiology_cultures_with_icu_flag AS (\n", - " SELECT DISTINCT\n", - " mc.anon_id,\n", - " mc.pat_enc_csn_id_coded,\n", - " mc.order_proc_id_coded,\n", - " mc.order_time_jittered_utc,\n", - " CASE WHEN itc.numICUTransfers > 0 THEN 1 ELSE 0 END AS icu_flag\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc\n", - " LEFT JOIN\n", - " temp_icuTransferCount itc\n", - " ON\n", - " mc.pat_enc_csn_id_coded = itc.pat_enc_csn_id_coded\n", - ")\n", - "\n", - "-- Step 7: Create the Final Table with Correct Binary Indicators for Each Hospital Ward and ICU Flag\n", - "SELECT\n", - " mc.anon_id,\n", - " mc.pat_enc_csn_id_coded,\n", - " mc.order_proc_id_coded,\n", - " mc.order_time_jittered_utc,\n", - " MAX(CASE WHEN chwi.hosp_ward_IP = 1 THEN 1 ELSE 0 END) AS hosp_ward_IP,\n", - " MAX(CASE WHEN chwi.hosp_ward_OP = 1 THEN 1 ELSE 0 END) AS hosp_ward_OP,\n", - " MAX(CASE WHEN chwi.hosp_ward_ER_adt = 1 OR chwi.hosp_ward_ER_order_proc = 1 THEN 1 ELSE 0 END) AS hosp_ward_ER,\n", - " MAX(\n", - " CASE \n", - " WHEN chwi.hosp_ward_ICU = 1 THEN 1 \n", - " WHEN icu_flag.icu_flag = 1 THEN 1 \n", - " WHEN chwi.hosp_ward_Critical_Care = 1 THEN 1\n", - " ELSE 0 \n", - " END\n", - " ) AS hosp_ward_ICU\n", - "FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc\n", - "LEFT JOIN\n", - " temp_combined_hosp_ward_info chwi\n", - "ON\n", - " mc.anon_id = chwi.anon_id \n", - " AND mc.pat_enc_csn_id_coded = chwi.pat_enc_csn_id_coded \n", - " AND mc.order_proc_id_coded = chwi.order_proc_id_coded\n", - "LEFT JOIN\n", - " microbiology_cultures_with_icu_flag icu_flag\n", - "ON\n", - " mc.anon_id = icu_flag.anon_id \n", - " AND mc.pat_enc_csn_id_coded = icu_flag.pat_enc_csn_id_coded \n", - " AND mc.order_proc_id_coded = icu_flag.order_proc_id_coded\n", - "GROUP BY\n", - " mc.anon_id, \n", - " mc.pat_enc_csn_id_coded, \n", - " mc.order_proc_id_coded, \n", - " mc.order_time_jittered_utc;" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c4f5ae6727e64b399e1ee70841f60911", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1e976236ae0941149d9e56239385f022", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api df_hosp_ward_info\n", - "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_ward_info_peds" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "ED_order = df_hosp_ward_info[df_hosp_ward_info['hosp_ward_ER'] == 1]" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utchosp_ward_IPhosp_ward_OPhosp_ward_ERhosp_ward_ICU
36068JC19325761312792394516390408382019-11-07 03:10:00+00:001010
36069JC22205731310168597723945791812012-01-15 05:44:00+00:001010
36070JC23586551311991298755049066192016-09-10 21:28:00+00:001010
36071JC16616361310749394704592185462015-03-24 10:57:00+00:001010
36072JC15385361310214417094096394612012-10-24 22:09:00+00:001010
...........................
64767JC22633311310256161334226785242013-07-16 22:31:00+00:001010
64768JC23666951312181318405179525942017-03-21 06:00:00+00:001010
64769JC61665851313326404707938689842022-04-19 20:53:00+00:001010
64770JC22525171313099819097231448882021-05-23 02:38:00+00:001010
64771JC23250471312756141046292036682019-09-03 17:36:00+00:001010
\n", - "

28704 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "36068 JC1932576 131279239451 639040838 \n", - "36069 JC2220573 131016859772 394579181 \n", - "36070 JC2358655 131199129875 504906619 \n", - "36071 JC1661636 131074939470 459218546 \n", - "36072 JC1538536 131021441709 409639461 \n", - "... ... ... ... \n", - "64767 JC2263331 131025616133 422678524 \n", - "64768 JC2366695 131218131840 517952594 \n", - "64769 JC6166585 131332640470 793868984 \n", - "64770 JC2252517 131309981909 723144888 \n", - "64771 JC2325047 131275614104 629203668 \n", - "\n", - " order_time_jittered_utc hosp_ward_IP hosp_ward_OP hosp_ward_ER \\\n", - "36068 2019-11-07 03:10:00+00:00 1 0 1 \n", - "36069 2012-01-15 05:44:00+00:00 1 0 1 \n", - "36070 2016-09-10 21:28:00+00:00 1 0 1 \n", - "36071 2015-03-24 10:57:00+00:00 1 0 1 \n", - "36072 2012-10-24 22:09:00+00:00 1 0 1 \n", - "... ... ... ... ... \n", - "64767 2013-07-16 22:31:00+00:00 1 0 1 \n", - "64768 2017-03-21 06:00:00+00:00 1 0 1 \n", - "64769 2022-04-19 20:53:00+00:00 1 0 1 \n", - "64770 2021-05-23 02:38:00+00:00 1 0 1 \n", - "64771 2019-09-03 17:36:00+00:00 1 0 1 \n", - "\n", - " hosp_ward_ICU \n", - "36068 0 \n", - "36069 0 \n", - "36070 0 \n", - "36071 0 \n", - "36072 0 \n", - "... ... \n", - "64767 0 \n", - "64768 0 \n", - "64769 0 \n", - "64770 0 \n", - "64771 0 \n", - "\n", - "[28704 rows x 8 columns]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ED_order" - ] - }, - { - "cell_type": "code", - "execution_count": 118, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order is 28466\n", - "the percentage of unique patient encounter with ED order (out of all inpatients) is 89.70%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order is 28704\n", - "the percentage of unique culture order with ED order (out of all inpatients) is 89.68%\n" - ] - } - ], - "source": [ - "All_ED_inp= current_med_original_no_mapped_with_12_hours_inpatient_temp.merge(ED_order, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'], how='inner')\n", - "All_ED_inp_pat_enc_cnt = find_unique_patient_encounter(All_ED_inp)\n", - "print(\"the unique patient encounter number with ED order is {}\".format(All_ED_inp_pat_enc_cnt))\n", - "percentage = All_ED_inp_pat_enc_cnt/total_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order (out of all inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "All_ED_inp_order_cnt = find_unique_orders(All_ED_inp)\n", - "print(\"the unique culture order with ED order is {}\".format(All_ED_inp_order_cnt))\n", - "percentage = All_ED_inp_order_cnt/total_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with ED order (out of all inpatients) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient encounter `n = 31734`, `89.70%` (`n = 28466`) is from ED \n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 119, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order and any medication is 23904\n", - "the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is 83.97%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order and any medication is 24112\n", - "the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is 84.00%\n", - "----------------------------------------------------------\n", - "the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is 92.32%\n", - "----------------------------------------------------------\n", - "the percentage of unique culture order with ED order and any medication (out of all inpatients with any med) is 92.28%\n" - ] - } - ], - "source": [ - "any_med_inp_ed = any_med_inp.merge(ED_order, \\\n", - " on=['anon_id','pat_enc_csn_id_coded', \n", - " 'order_proc_id_coded', 'order_time_jittered_utc'],\n", - " how='inner')\n", - "any_med_inp_ed_pat_enc_cnt = find_unique_patient_encounter(any_med_inp_ed)\n", - "print(\"the unique patient encounter number with ED order and any medication is {}\".format(any_med_inp_ed_pat_enc_cnt))\n", - "percentage = any_med_inp_ed_pat_enc_cnt/All_ED_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "any_med_inp_ed_order_cnt = find_unique_orders(any_med_inp_ed)\n", - "print(\"the unique culture order with ED order and any medication is {}\".format(any_med_inp_ed_order_cnt))\n", - "percentage = any_med_inp_ed_order_cnt/All_ED_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "percentage = any_med_inp_ed_pat_enc_cnt/ any_med_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "percentage = any_med_inp_ed_order_cnt/ any_med_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with ED order and any medication (out of all inpatients with any med) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order and abx medication is 8961\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is 31.48%\n", - "----------------------------------------------------------\n", - "the unique culture order with ED order and abx medication is 9086\n", - "the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is 31.65%\n", - "----------------------------------------------------------\n", - "the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is 91.99%\n", - "----------------------------------------------------------\n", - "the percentage of unique culture order with ED order and abx medication (out of all inpatients with abx med) is 91.92%\n" - ] - } - ], - "source": [ - "abx_med_inp_ed = abx_med_inp.merge(ED_order, \\\n", - " on=['anon_id','pat_enc_csn_id_coded', \n", - " 'order_proc_id_coded', 'order_time_jittered_utc'],\n", - " how='inner')\n", - "abx_med_inp_ed_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed)\n", - "print(\"the unique patient encounter number with ED order and abx medication is {}\".format(abx_med_inp_ed_pat_enc_cnt))\n", - "percentage = abx_med_inp_ed_pat_enc_cnt/All_ED_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "abx_med_inp_ed_order_cnt = find_unique_orders(abx_med_inp_ed)\n", - "print(\"the unique culture order with ED order and abx medication is {}\".format(abx_med_inp_ed_order_cnt))\n", - "percentage = abx_med_inp_ed_order_cnt/All_ED_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "percentage = abx_med_inp_ed_pat_enc_cnt/ abx_med_inp_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "percentage = abx_med_inp_ed_order_cnt/ abx_med_inp_order_cnt *100\n", - "print(\"the percentage of unique culture order with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.9191704602933738" - ] - }, - "execution_count": 121, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "abx_med_inp_ed_order_cnt/abx_med_inp_order_cnt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient ED encounter `n = 28466`, `57.93%` (`n = 8743`) has abx medication\n", - "### Also shows that out of all inpatient encouter with current abx med `n= 9480`, `92.23%` (`n = 8743`) is ED\n", - "\n", - "31734 --> 25759 --> 9480 --> 8743" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ----------- Empirical Med for ED Inpatient Only -----------" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "metadata": {}, - "outputs": [], - "source": [ - "# Group by the specified columns\n", - "grouped = abx_med_inp_ed.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "\n", - "# Function to filter each group\n", - "def filter_group(group):\n", - " # Keep rows where:\n", - " # 1. medication_time is greater than culture order time but smaller than result time, OR\n", - " # 2. medication_time is within 6 hours before the culture order time\n", - " condition = (\n", - " ((group['medication_time'] > group['order_time_jittered_utc']) & \n", - " (group['medication_time'] < group['result_time_jittered_utc'])) | \n", - " ((group['medication_time'] >= (group['order_time_jittered_utc'] - pd.Timedelta(hours=12))) & \n", - " (group['medication_time'] <= group['order_time_jittered_utc'])\n", - " ))\n", - " return group[condition]\n", - "\n", - "# Apply the filter to each group\n", - "filtered_groups = [filter_group(group) for _, group in grouped]\n", - "\n", - "# Combine the filtered groups into a new DataFrame\n", - "abx_med_inp_ed_empirical = pd.concat([group for group in filtered_groups if group is not None])\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 127, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with ED order and abx medication empirical is 8943\n", - "the percentage of unique patient encounter with ED order and empirical abx medication \n", - "(out of all ED inpatients with abx med) \n", - "is 99.80%\n" - ] - } - ], - "source": [ - "abx_med_inp_ed_empirical_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed_empirical)\n", - "print(\"the unique patient encounter number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_pat_enc_cnt))\n", - "percentage = abx_med_inp_ed_empirical_pat_enc_cnt/ abx_med_inp_ed_pat_enc_cnt *100\n", - "print(\"the percentage of unique patient encounter with ED order and empirical abx medication \\n(out of all ED inpatients with abx med) \\nis {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique order number with ED order and abx medication empirical is 9067\n", - "the percentage of unique order with ED order and empirical abx medication \n", - "(out of all ED inpatients with abx med) \n", - "is 99.79%\n" - ] - } - ], - "source": [ - "abx_med_inp_ed_empirical_order_cnt = find_unique_orders(abx_med_inp_ed_empirical)\n", - "print(\"the unique order number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_order_cnt))\n", - "percentage = abx_med_inp_ed_empirical_order_cnt/ abx_med_inp_ed_order_cnt *100\n", - "print(\"the percentage of unique order with ED order and empirical abx medication \\n(out of all ED inpatients with abx med) \\nis {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "code", - "execution_count": 132, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds replaced with new data from CSV.\n" - ] - } - ], - "source": [ - "# Define table ID\n", - "table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds\"\n", - "\n", - "# Define job config with WRITE_TRUNCATE to replace the table\n", - "job_config = bigquery.LoadJobConfig(\n", - " write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", - " autodetect=True, # Automatically detect schema\n", - " source_format=bigquery.SourceFormat.PARQUET\n", - ")\n", - "\n", - "# Upload DataFrame to BigQuery\n", - "job = client.load_table_from_dataframe(\n", - " abx_med_inp_ed_empirical, table_id, job_config=job_config\n", - ")\n", - "\n", - "job.result() # Wait for the job to complete\n", - "\n", - "print(f\"Table {table_id} replaced with new data from CSV.\")" - ] - }, - { - "cell_type": "code", - "execution_count": 133, - "metadata": {}, - "outputs": [], - "source": [ - "abx_med_inp_ed_empirical.to_csv('../csv_folder/step_5_abx_med_inp_ed_empirical_peds.csv', index=False)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient ED encounter `n = 8743` with abx_med, `99.98%` (`n = 8741`) is empirical\n", - "31734 --> 25759 --> 9480 --> 8743 --> 8741" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ----------- Filtering out Prior Abx exposure for Empirical Med for ED Inpatient Only -----------" - ] - }, - { - "cell_type": "code", - "execution_count": 215, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b2bf20a114a245a99f6176bfc491af1a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7078079756b74318849c07d8cb4b4287", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api final_cohort_inp_ed_only\n", - "\n", - "WITH exclusion AS (\n", - " SELECT\n", - " distinct\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.all_med_new_med_time_peds` al\n", - " INNER JOIN \n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds` m\n", - " USING\n", - " (anon_id, pat_enc_csn_id_coded, order_proc_id_coded, order_time_jittered_utc)\n", - " WHERE\n", - " al.medication_time IS NOT NULL\n", - " AND ARRAY_LENGTH(al.cleaned_antibiotic) > 0 \n", - " # AND al.medication_action like \"Given\" # remove \"given\" for now\n", - " AND TIMESTAMP_DIFF(al.medication_time, al.order_time_jittered_utc, HOUR) > -720\n", - " AND TIMESTAMP_DIFF(al.medication_time, al.order_time_jittered_utc, HOUR) < -12 # change to 12 to be consistent\n", - "),\n", - "\n", - "filtered_groups AS (\n", - " SELECT\n", - " m.*\n", - " FROM\n", - " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds` m\n", - " WHERE\n", - " -- Disregard groups where any medication_time is between 12 and 720 hours before order_time_jittered_utc\n", - " NOT EXISTS (\n", - " SELECT 1\n", - " FROM exclusion ex\n", - " WHERE\n", - " ex.anon_id = m.anon_id\n", - " AND ex.pat_enc_csn_id_coded = m.pat_enc_csn_id_coded\n", - " AND ex.order_proc_id_coded = m.order_proc_id_coded\n", - " AND ex.order_time_jittered_utc = m.order_time_jittered_utc\n", - " )\n", - ")\n", - "SELECT \n", - "*\n", - " -- distinct\n", - " -- anon_id,\n", - " -- pat_enc_csn_id_coded,\n", - " -- order_proc_id_coded,\n", - " -- order_time_jittered_utc\n", - " -- -- medication_time,\n", - " -- -- result_time_jittered_utc\n", - " -- -- medication_name,\n", - "\n", - "FROM\n", - " filtered_groups\n", - "ORDER BY\n", - " anon_id,\n", - " pat_enc_csn_id_coded,\n", - " order_proc_id_coded,\n", - " order_time_jittered_utc" - ] - }, - { - "cell_type": "code", - "execution_count": 216, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number for final cohort is 8363\n", - "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 93.51%\n", - "----------------------------------------------------------\n", - "the unique order number for final cohort is 8478\n", - "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 93.50%\n" - ] - } - ], - "source": [ - "print(\"the unique patient encounter number for final cohort is {}\".format(find_unique_patient_encounter(final_cohort_inp_ed_only)))\n", - "percentage = find_unique_patient_encounter(final_cohort_inp_ed_only)/abx_med_inp_ed_empirical_pat_enc_cnt * 100\n", - "print(\"the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is {:.2f}%\".format(percentage))\n", - "print(\"----------------------------------------------------------\")\n", - "percentage = find_unique_orders(final_cohort_inp_ed_only)/abx_med_inp_ed_empirical_order_cnt * 100\n", - "print(\"the unique order number for final cohort is {}\".format(find_unique_orders(final_cohort_inp_ed_only)))\n", - "print(\"the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is {:.2f}%\".format(percentage))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The above code shows that out of all inpatient ED encounter `n = 8943` with empirical abx_med, `93.51%` (`n = 8363`) is included as final cohort\n", - "31734 --> 25759 --> 9480 --> 8743 --> 8943 -->8363" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ----Expore the given aspect for the final inpatient ED Cohort ----" - ] - }, - { - "cell_type": "code", - "execution_count": 217, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the unique patient encounter number with valid given medication is 6361\n", - "the unique order number with valid given medication is 6466\n" - ] - } - ], - "source": [ - "condition = final_cohort_inp_ed_only[\"medication_action\"] == \"Given\"\n", - "given_final_cohort_inp_ed_only = final_cohort_inp_ed_only[condition]\n", - "given_final_cohort_inp_ed_only_pat_enc_cnt = find_unique_patient_encounter(given_final_cohort_inp_ed_only)\n", - "given_final_cohort_inp_ed_only_order_cnt = find_unique_orders(given_final_cohort_inp_ed_only)\n", - "print(\"the unique patient encounter number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_pat_enc_cnt))\n", - "print(\"the unique order number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_order_cnt))\n", - "# percentage = given_final_cohort_inp_ed_only_pat_enc_cnt/find_unique_patient_encounter(final_cohort_inp_ed_only) *100\n", - "# print(\"the percentage of unique patient encounter with given medication (out of all inpatients) is {:.2f}%\".format(percentage))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibiotichosp_ward_IPhosp_ward_OPhosp_ward_ERhosp_ward_ICU
0JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 08:20:00+00:00CEPHALEXIN 250 MG PO CAPS387591109Given[Cephalexin]1010
1JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 09:23:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS387591245Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
2JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Inpatient2009-11-10 00:18:23+00:00CEFTRIAXONE PEDIATRIC IM INJECTION359621059Given[Ceftriaxone]1010
3JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Inpatient2010-10-28 08:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P...375117174Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
4JC10021791310724412874573167542015-01-25 11:53:00+00:002015-01-27 16:14:00+00:00Inpatient2015-01-25 13:13:00+00:00AZITHROMYCIN 200 MG/5 ML PO SUSR457317321Given[Azithromycin]1010
................................................
15408JC9985721312649006135988800652019-03-08 16:04:00+00:002019-03-11 20:58:00+00:00Inpatient2019-03-09 02:24:00+00:00VANCOMYCIN PEDIATRIC IV INFUSION (D5W PREMIX)599085201Stopped[Vancomycin]1010
15409JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Inpatient2010-04-15 06:23:22+00:00CEPHALEXIN 250 MG/5 ML PO SUSR364620837Given[Cephalexin]1010
15410JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 21:22:00+00:00PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION443088730Missed[Piperacillin-Tazobactam]1010
15411JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 21:22:00+00:00VANCOMYCIN PEDIATRIC IV INFUSION443088729Canceled Entry[Vancomycin]1010
15412JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 22:21:00+00:00PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B...443088906Given[Piperacillin-Tazobactam]1010
\n", - "

15413 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000924 131014644911 387581858 \n", - "1 JC1000924 131014644911 387581858 \n", - "2 JC1001971 131007652469 359619675 \n", - "3 JC1001971 131011493486 375107375 \n", - "4 JC1002179 131072441287 457316754 \n", - "... ... ... ... \n", - "15408 JC998572 131264900613 598880065 \n", - "15409 JC999518 131008782853 364618856 \n", - "15410 JC999859 131038386282 443088092 \n", - "15411 JC999859 131038386282 443088092 \n", - "15412 JC999859 131038386282 443088092 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "1 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "2 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 Inpatient \n", - "3 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 Inpatient \n", - "4 2015-01-25 11:53:00+00:00 2015-01-27 16:14:00+00:00 Inpatient \n", - "... ... ... ... \n", - "15408 2019-03-08 16:04:00+00:00 2019-03-11 20:58:00+00:00 Inpatient \n", - "15409 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 Inpatient \n", - "15410 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "15411 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "15412 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2011-07-25 08:20:00+00:00 \n", - "1 2011-07-25 09:23:00+00:00 \n", - "2 2009-11-10 00:18:23+00:00 \n", - "3 2010-10-28 08:00:00+00:00 \n", - "4 2015-01-25 13:13:00+00:00 \n", - "... ... \n", - "15408 2019-03-09 02:24:00+00:00 \n", - "15409 2010-04-15 06:23:22+00:00 \n", - "15410 2014-08-04 21:22:00+00:00 \n", - "15411 2014-08-04 21:22:00+00:00 \n", - "15412 2014-08-04 22:21:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 CEPHALEXIN 250 MG PO CAPS 387591109 \n", - "1 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 387591245 \n", - "2 CEFTRIAXONE PEDIATRIC IM INJECTION 359621059 \n", - "3 SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P... 375117174 \n", - "4 AZITHROMYCIN 200 MG/5 ML PO SUSR 457317321 \n", - "... ... ... \n", - "15408 VANCOMYCIN PEDIATRIC IV INFUSION (D5W PREMIX) 599085201 \n", - "15409 CEPHALEXIN 250 MG/5 ML PO SUSR 364620837 \n", - "15410 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION 443088730 \n", - "15411 VANCOMYCIN PEDIATRIC IV INFUSION 443088729 \n", - "15412 PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B... 443088906 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Cephalexin] \n", - "1 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "2 Given [Ceftriaxone] \n", - "3 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "4 Given [Azithromycin] \n", - "... ... ... \n", - "15408 Stopped [Vancomycin] \n", - "15409 Given [Cephalexin] \n", - "15410 Missed [Piperacillin-Tazobactam] \n", - "15411 Canceled Entry [Vancomycin] \n", - "15412 Given [Piperacillin-Tazobactam] \n", - "\n", - " hosp_ward_IP hosp_ward_OP hosp_ward_ER hosp_ward_ICU \n", - "0 1 0 1 0 \n", - "1 1 0 1 0 \n", - "2 1 0 1 0 \n", - "3 1 0 1 0 \n", - "4 1 0 1 0 \n", - "... ... ... ... ... \n", - "15408 1 0 1 0 \n", - "15409 1 0 1 0 \n", - "15410 1 0 1 0 \n", - "15411 1 0 1 0 \n", - "15412 1 0 1 0 \n", - "\n", - "[15413 rows x 15 columns]" - ] - }, - "execution_count": 141, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "given_final_cohort_inp_ed_only_order_cnt.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])" - ] - }, - { - "cell_type": "code", - "execution_count": 145, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibiotichosp_ward_IPhosp_ward_OPhosp_ward_ERhosp_ward_ICU
0JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 08:20:00+00:00CEPHALEXIN 250 MG PO CAPS387591109Given[Cephalexin]1010
1JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 09:23:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS387591245Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
2JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Inpatient2009-11-10 00:18:23+00:00CEFTRIAXONE PEDIATRIC IM INJECTION359621059Given[Ceftriaxone]1010
3JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Inpatient2010-10-28 08:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P...375117174Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]1010
4JC10021791310724412874573167542015-01-25 11:53:00+00:002015-01-27 16:14:00+00:00Inpatient2015-01-25 13:13:00+00:00AZITHROMYCIN 200 MG/5 ML PO SUSR457317321Given[Azithromycin]1010
................................................
15393JC9951271310868403664645682212015-06-09 20:06:00+00:002015-06-11 21:13:00+00:00Inpatient2015-06-09 22:52:00+00:00CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS464581655Given[Ceftriaxone]1010
15394JC9966401310120819593776179022011-01-22 04:42:00+00:002011-02-06 01:21:00+00:00Inpatient2011-01-22 01:36:50+00:00CEFTRIAXONE PEDIATRIC IV INFUSION377610820Given[Ceftriaxone]1010
15395JC9966501310122479163782938712011-01-31 10:14:00+00:002011-02-02 16:40:00+00:00Inpatient2011-01-31 11:48:37+00:00CEPHALEXIN 250 MG/5 ML PO SUSR378294668Given[Cephalexin]1010
15409JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Inpatient2010-04-15 06:23:22+00:00CEPHALEXIN 250 MG/5 ML PO SUSR364620837Given[Cephalexin]1010
15412JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 22:21:00+00:00PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B...443088906Given[Piperacillin-Tazobactam]1010
\n", - "

7552 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000924 131014644911 387581858 \n", - "1 JC1000924 131014644911 387581858 \n", - "2 JC1001971 131007652469 359619675 \n", - "3 JC1001971 131011493486 375107375 \n", - "4 JC1002179 131072441287 457316754 \n", - "... ... ... ... \n", - "15393 JC995127 131086840366 464568221 \n", - "15394 JC996640 131012081959 377617902 \n", - "15395 JC996650 131012247916 378293871 \n", - "15409 JC999518 131008782853 364618856 \n", - "15412 JC999859 131038386282 443088092 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "1 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "2 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 Inpatient \n", - "3 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 Inpatient \n", - "4 2015-01-25 11:53:00+00:00 2015-01-27 16:14:00+00:00 Inpatient \n", - "... ... ... ... \n", - "15393 2015-06-09 20:06:00+00:00 2015-06-11 21:13:00+00:00 Inpatient \n", - "15394 2011-01-22 04:42:00+00:00 2011-02-06 01:21:00+00:00 Inpatient \n", - "15395 2011-01-31 10:14:00+00:00 2011-02-02 16:40:00+00:00 Inpatient \n", - "15409 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 Inpatient \n", - "15412 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2011-07-25 08:20:00+00:00 \n", - "1 2011-07-25 09:23:00+00:00 \n", - "2 2009-11-10 00:18:23+00:00 \n", - "3 2010-10-28 08:00:00+00:00 \n", - "4 2015-01-25 13:13:00+00:00 \n", - "... ... \n", - "15393 2015-06-09 22:52:00+00:00 \n", - "15394 2011-01-22 01:36:50+00:00 \n", - "15395 2011-01-31 11:48:37+00:00 \n", - "15409 2010-04-15 06:23:22+00:00 \n", - "15412 2014-08-04 22:21:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 CEPHALEXIN 250 MG PO CAPS 387591109 \n", - "1 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 387591245 \n", - "2 CEFTRIAXONE PEDIATRIC IM INJECTION 359621059 \n", - "3 SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P... 375117174 \n", - "4 AZITHROMYCIN 200 MG/5 ML PO SUSR 457317321 \n", - "... ... ... \n", - "15393 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 464581655 \n", - "15394 CEFTRIAXONE PEDIATRIC IV INFUSION 377610820 \n", - "15395 CEPHALEXIN 250 MG/5 ML PO SUSR 378294668 \n", - "15409 CEPHALEXIN 250 MG/5 ML PO SUSR 364620837 \n", - "15412 PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B... 443088906 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Cephalexin] \n", - "1 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "2 Given [Ceftriaxone] \n", - "3 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "4 Given [Azithromycin] \n", - "... ... ... \n", - "15393 Given [Ceftriaxone] \n", - "15394 Given [Ceftriaxone] \n", - "15395 Given [Cephalexin] \n", - "15409 Given [Cephalexin] \n", - "15412 Given [Piperacillin-Tazobactam] \n", - "\n", - " hosp_ward_IP hosp_ward_OP hosp_ward_ER hosp_ward_ICU \n", - "0 1 0 1 0 \n", - "1 1 0 1 0 \n", - "2 1 0 1 0 \n", - "3 1 0 1 0 \n", - "4 1 0 1 0 \n", - "... ... ... ... ... \n", - "15393 1 0 1 0 \n", - "15394 1 0 1 0 \n", - "15395 1 0 1 0 \n", - "15409 1 0 1 0 \n", - "15412 1 0 1 0 \n", - "\n", - "[7552 rows x 15 columns]" - ] - }, - "execution_count": 145, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "given_final_cohort_inp_ed_only" + " adt.hosp_ward_Critical_Care,\n", + " er.order_proc_id_coded,\n", + " er.hosp_ward_ER_order_proc\n", + " FROM\n", + " temp_er_icu_info_adt adt\n", + " LEFT JOIN\n", + " temp_er_info_order_proc er\n", + " ON\n", + " adt.pat_enc_csn_id_coded = er.pat_enc_csn_id_coded\n", + "),\n", + "\n", + "-- Step 4: Extract IP and OP Information from order_proc Table\n", + "temp_ip_op_info AS (\n", + " SELECT\n", + " anon_id,\n", + " pat_enc_csn_id_coded,\n", + " order_proc_id_coded,\n", + " order_time_jittered_utc,\n", + " CASE \n", + " WHEN ordering_mode = 'Inpatient' THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_IP,\n", + " CASE \n", + " WHEN ordering_mode = 'Outpatient' THEN 1\n", + " ELSE 0\n", + " END AS hosp_ward_OP\n", + " FROM\n", + " `som-nero-phi-jonc101.shc_core_2023.order_proc`\n", + "),\n", + "\n", + "-- Step 5: Combine All Information into One Temporary Table\n", + "temp_combined_hosp_ward_info AS (\n", + " SELECT\n", + " ipop.anon_id,\n", + " ipop.pat_enc_csn_id_coded,\n", + " ipop.order_proc_id_coded,\n", + " ipop.order_time_jittered_utc,\n", + " ipop.hosp_ward_IP,\n", + " ipop.hosp_ward_OP,\n", + " COALESCE(icu.hosp_ward_ER, 0) AS hosp_ward_ER_adt,\n", + " COALESCE(icu.hosp_ward_ER_order_proc, 0) AS hosp_ward_ER_order_proc,\n", + " COALESCE(icu.hosp_ward_ICU, 0) AS hosp_ward_ICU,\n", + " COALESCE(icu.hosp_ward_Critical_Care, 0) AS hosp_ward_Critical_Care\n", + " FROM\n", + " temp_ip_op_info ipop\n", + " LEFT JOIN\n", + " temp_combined_er_icu_info icu\n", + " ON\n", + " ipop.pat_enc_csn_id_coded = icu.pat_enc_csn_id_coded AND ipop.order_proc_id_coded = icu.order_proc_id_coded\n", + "),\n", + "\n", + "-- Step 6: Extract ICU stay based on transfer orders\n", + "temp_cohortOfInterest AS (\n", + " SELECT DISTINCT\n", + " pat_enc_csn_id_coded,\n", + " hosp_disch_time_jittered_utc\n", + " FROM `som-nero-phi-jonc101.shc_core_2023.encounter`\n", + " WHERE hosp_disch_time_jittered_utc IS NOT NULL\n", + "),\n", + "\n", + "temp_ordersTransfer AS (\n", + " SELECT DISTINCT\n", + " pat_enc_csn_id_coded,\n", + " description,\n", + " level_of_care,\n", + " service,\n", + " order_inst_jittered_utc\n", + " FROM `som-nero-phi-jonc101.shc_core_2023.order_proc` AS procedures\n", + " WHERE (description LIKE \"CHANGE LEVEL OF CARE/TRANSFER PATIENT\" OR description LIKE \"ADMIT TO INPATIENT\") AND level_of_care IS NOT NULL\n", + "),\n", + "\n", + "temp_icuTransferCount AS (\n", + " SELECT\n", + " mc.pat_enc_csn_id_coded,\n", + " COUNT(CASE WHEN level_of_care LIKE \"Critical Care\" THEN 1 END) AS numICUTransfers\n", + " FROM\n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc # only change this to the starting cohort above\n", + " LEFT JOIN\n", + " temp_ordersTransfer ot\n", + " ON\n", + " mc.pat_enc_csn_id_coded = ot.pat_enc_csn_id_coded\n", + " GROUP BY\n", + " mc.pat_enc_csn_id_coded\n", + "),\n", + "\n", + "microbiology_cultures_with_icu_flag AS (\n", + " SELECT DISTINCT\n", + " mc.anon_id,\n", + " mc.pat_enc_csn_id_coded,\n", + " mc.order_proc_id_coded,\n", + " mc.order_time_jittered_utc,\n", + " CASE WHEN itc.numICUTransfers > 0 THEN 1 ELSE 0 END AS icu_flag\n", + " FROM\n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc\n", + " LEFT JOIN\n", + " temp_icuTransferCount itc\n", + " ON\n", + " mc.pat_enc_csn_id_coded = itc.pat_enc_csn_id_coded\n", + ")\n", + "\n", + "-- Step 7: Create the Final Table with Correct Binary Indicators for Each Hospital Ward and ICU Flag\n", + "SELECT\n", + " mc.anon_id,\n", + " mc.pat_enc_csn_id_coded,\n", + " mc.order_proc_id_coded,\n", + " mc.order_time_jittered_utc,\n", + " MAX(CASE WHEN chwi.hosp_ward_IP = 1 THEN 1 ELSE 0 END) AS hosp_ward_IP,\n", + " MAX(CASE WHEN chwi.hosp_ward_OP = 1 THEN 1 ELSE 0 END) AS hosp_ward_OP,\n", + " MAX(CASE WHEN chwi.hosp_ward_ER_adt = 1 OR chwi.hosp_ward_ER_order_proc = 1 THEN 1 ELSE 0 END) AS hosp_ward_ER,\n", + " MAX(\n", + " CASE \n", + " WHEN chwi.hosp_ward_ICU = 1 THEN 1 \n", + " WHEN icu_flag.icu_flag = 1 THEN 1 \n", + " WHEN chwi.hosp_ward_Critical_Care = 1 THEN 1\n", + " ELSE 0 \n", + " END\n", + " ) AS hosp_ward_ICU\n", + "FROM\n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_peds_cohort` mc\n", + "LEFT JOIN\n", + " temp_combined_hosp_ward_info chwi\n", + "ON\n", + " mc.anon_id = chwi.anon_id \n", + " AND mc.pat_enc_csn_id_coded = chwi.pat_enc_csn_id_coded \n", + " AND mc.order_proc_id_coded = chwi.order_proc_id_coded\n", + "LEFT JOIN\n", + " microbiology_cultures_with_icu_flag icu_flag\n", + "ON\n", + " mc.anon_id = icu_flag.anon_id \n", + " AND mc.pat_enc_csn_id_coded = icu_flag.pat_enc_csn_id_coded \n", + " AND mc.order_proc_id_coded = icu_flag.order_proc_id_coded\n", + "GROUP BY\n", + " mc.anon_id, \n", + " mc.pat_enc_csn_id_coded, \n", + " mc.order_proc_id_coded, \n", + " mc.order_time_jittered_utc;" ] }, { "cell_type": "code", - "execution_count": 139, + "execution_count": 26, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "0.7626798773295589" - ] - }, - "execution_count": 139, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_ward_info_peds replaced with new data from CSV.\n" + ] } ], "source": [ - "6466/8478" + "# # Define table ID\n", + "# table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_ward_info_peds\"\n", + "\n", + "# # Define job config with WRITE_TRUNCATE to replace the table\n", + "# job_config = bigquery.LoadJobConfig(\n", + "# write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + "# autodetect=True, # Automatically detect schema\n", + "# source_format=bigquery.SourceFormat.PARQUET\n", + "# )\n", + "\n", + "# # Upload DataFrame to BigQuery\n", + "# job = client.load_table_from_dataframe(\n", + "# df_hosp_ward_info, table_id, job_config=job_config\n", + "# )\n", + "\n", + "# job.result() # Wait for the job to complete\n", + "\n", + "# print(f\"Table {table_id} replaced with new data from CSV.\")" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 218, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c4f5ae6727e64b399e1ee70841f60911", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "" + "Query is running: 0%| |" ] }, - "execution_count": 218, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAI3CAYAAACRaGpaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABel0lEQVR4nO3deZzN9f////uZfWHGzGDGMJhQ9mwREsVYIr3pnUoJCW+02BIf7zJUYysRLe9KlpDeZXmnhSFLCYVSWVIy9pkUYwaNGWaevz/85nwdM8O8NOOcF7fr5XIuF+f1ep7X6/E428t9XstxGGOMAAAAAACF5uXuAgAAAADAbghSAAAAAGARQQoAAAAALCJIAQAAAIBFBCkAAAAAsIggBQAAAAAWEaQAAAAAwCKCFAAAAABYRJACAAAAAIsIUvBYs2fPlsPhUEBAgPbv359nfqtWrVS7dm03VCatXbtWDodDH330kVvWb9W+ffvUsWNHhYeHy+FwaPDgwQWOdTgcevzxx/Od99FHH8nhcGjt2rVXVIPD4dDs2bMtP/ZqKsr+W7VqpVatWhVdcRalp6frxRdfVKNGjRQSEiJ/f39VrlxZjz76qL777rsrWmblypXVq1cv5/0jR44oPj5e27ZtK5qii8GxY8c0atQo1axZU0FBQQoJCdGtt96q1157TWfPnv3by4+Pj5fD4SiCSt0nv8/nhg0bFB8frxMnTuQZX7lyZXXq1OlvrTM9PV0TJkxQkyZNVKpUKfn6+ioyMlLt27fXggULlJmZecn6PNnQoUPlcDgKfI6u1jYkdzta0PeWMUZVq1aVw+Eo8u+qi78rPNGHH34oh8Oh6dOn5zu/X79+8vf3148//niVK4Nd+Li7AOByMjMz9e9//1vvvfeeu0uxrSFDhuibb77Ru+++q6ioKJUrV+6q11CuXDlt3LhRVapUuerrdpfXX3/dbev+7bff1LZtWx09elT/+te/NHbsWJUoUUL79u3Tf//7XzVs2FAnTpxQaGjo31rPkSNHNHbsWFWuXFn16tUrmuKL0M8//6y2bdvq1KlTGjZsmJo1a6aMjAx98skneuqpp/Thhx/qs88+U1BQkLtLdav8Pp8bNmzQ2LFj1atXL5UqVapI1/frr7+qffv2Onr0qPr166fRo0crLCxMycnJWrFihR599FHt2rVLzz//fIH1eaqzZ89q3rx5kqTly5fr8OHDKl++vFtrKlmypGbOnJknLK1bt06//fabSpYs6Z7C3Oy+++5T9+7dNXLkSHXo0EFVq1Z1zktMTNTbb7+t8ePHq27dum6sEp6MIAWPl/vXyeHDh+vmm292dzlXVUZGhgICAv72X7u3b9+uxo0b6x//+EfRFHYF/P39deutt7pt/VfTX3/9paCgINWsWdMt68/OzlaXLl30559/auPGjS57blu2bKmePXvq888/l6+vr1vqK4zs7GydO3dO/v7+f2sZ9957r9LT0/Xtt9/qxhtvdM6766671LJlSz3wwAMaOnSo3nzzzWKtxYrc98/VdDU/n+fOndM//vEPHT9+XN9++61q1KjhMr9bt2567rnn9P3337ulvr/rf//7n/744w917NhRn376qebMmaP/+7//c2tN999/v+bPn6/XXntNISEhzukzZ85U06ZNlZ6e7sbqit/Zs2flcDjk45P3v70zZszQ2rVr1atXL3355Zfy8vJSenq6HnvsMTVt2lRPP/30VanRHZ97/H0c2gePN2LECEVEROiZZ5655LhLHfrhcDgUHx/vvJ97KM6PP/6o++67T6GhoQoPD9fQoUN17tw57d69W+3bt1fJkiVVuXJlTZo0Kd91njlzRkOHDlVUVJQCAwPVsmVLl41/ri1btqhz584KDw9XQECA6tevr//+978uY3IPwUhMTNSjjz6qMmXKKCgoyOXwlosdOHBADz/8sMqWLSt/f3/VqFFDL7/8snJyciT9v8NH9uzZo88//9x5iMe+ffsu+VxakXuI5ebNm9WiRQsFBQXphhtu0IQJE5x1SAW/Pp9++qnq1asnf39/xcbG6qWXXspzqJSV11Y6/9fu7t27uzwvr732WpH1fKHc/r/88ks1a9ZMQUFBevTRR53zLvwLcG4fL730kqZMmaLY2FiVKFFCTZs21aZNm/IsuzDvm/wsXbpUP/30k0aNGlXg4a8dOnRwbrR79eqlypUr5xlzuUPW1q5dq1tuuUWS1Lt3b+f7K/f1KOjQxovXl/u8TJo0SS+88IJiY2Pl7++vNWvW/K3nYcmSJdq5c6dGjhzpEqJy3X///Wrbtq1mzpyplJSUQtWS3/s1P8YYvf7666pXr54CAwMVFhamf/7zn9q7d6/LuEu9f1avXq1WrVopIiJCgYGBqlixou6991799ddfBfb89NNPKzQ0VNnZ2c5pTzzxhBwOhyZPnuycduzYMXl5eTkPabr4MxYfH+/8D2RsbGyBh4ctX75cDRo0UGBgoKpXr6533323wNpy5b4uo0ePzhOiclWqVMnlDz8X17d06VI5HA598cUXeR77xhtvOL/fc1n5Dl6zZo0GDBig0qVLKyIiQl27dtWRI0cu21eumTNnys/PT7NmzVJMTIxmzZolY0y+Yy+3Dfnzzz8VExOjZs2auRyGunPnTgUHB6tHjx6FqunBBx+UJL3//vvOaWlpaVq0aJHz/XaxrKwsvfDCC6pevbr8/f1VpkwZ9e7dW3/88YfLuLNnz2rEiBGKiopSUFCQbrvtNn377beFquvCz9uLL76oihUrKiAgQI0aNcr3tS3Md3vudu+9997TsGHDVL58efn7+2vPnj351hAWFqaZM2fq66+/1iuvvCLp/FEcx44d05w5c+Tt7a309HQNHz5csbGx8vPzU/ny5TV48GCdPn3aZVmvvfaabr/9dpUtW1bBwcGqU6eOJk2alOcQ4kt97mEzBvBQs2bNMpLM5s2bzbRp04wk88UXXzjnt2zZ0tSqVct5PykpyUgys2bNyrMsSWbMmDHO+2PGjDGSzE033WSef/55s3LlSjNixAgjyTz++OOmevXq5tVXXzUrV640vXv3NpLMokWLnI9fs2aNkWRiYmLMPffcY5YtW2bmzZtnqlatakJCQsxvv/3mHLt69Wrj5+dnWrRoYT744AOzfPly06tXrzy15vZbvnx5069fP/P555+bjz76yJw7dy7f5+fo0aOmfPnypkyZMubNN980y5cvN48//riRZAYMGGCMMSYtLc1s3LjRREVFmebNm5uNGzeajRs3mjNnzhT4vEsygwYNynfehx9+aCSZNWvWuLwOERERplq1aubNN980K1euNAMHDjSSzJw5cy75+qxatcp4e3ub2267zSxevNh8+OGH5pZbbjEVK1Y0F349WXltd+zYYUJDQ02dOnXM3LlzTWJiohk2bJjx8vIy8fHxBfb9d/oPDw83MTExZvr06WbNmjVm3bp1znktW7bM00flypVN+/btzdKlS83SpUtNnTp1TFhYmDlx4oRzbGHfN/np16+fkWR27dp12X6NMaZnz56mUqVKeabnfk4uVKlSJdOzZ09jzPn3V+779t///rfz/XXw4MF8+y9ofbnPS/ny5c0dd9xhPvroI5OYmGiSkpKK/Xl4/fXXjSTz/vvvX7aWwr5fjTGmb9++xtfX1wwbNswsX77cLFiwwFSvXt1ERkaalJQU57iC3j9JSUkmICDAxMXFmaVLl5q1a9ea+fPnmx49epjU1NQC+1m+fLmRZDZs2OCcVr16dRMYGGji4uKc0z744AMjyezcudOl79zn9ODBg+aJJ54wkszixYudr21aWpox5vz7oEKFCqZmzZpm7ty5ZsWKFea+++4zkpzv/4L07dvXSDK7d+++5LgLXVzf2bNnTdmyZc1DDz2UZ2zjxo1NgwYNnPetfgffcMMN5oknnjArVqww77zzjgkLCzN33HFHoeo8ePCg8fLyMvfdd58xxph///vfRpJZu3atyzgr25D169cbHx8fM2TIEGOMMadPnzY1a9Y01atXN6dOnbpkPRduR3v06GEaN27snPfGG2+Y4OBgk56ebmrVquXyWc3Ozjbt27c3wcHBZuzYsWblypXmnXfeMeXLlzc1a9Y0f/31l3Nsz549jcPhME8//bRJTEw0U6ZMMeXLlzchISHO74qC5L6uMTEx5rbbbjOLFi1yfq58fX1d3seF/W7PfW7Lly9v/vnPf5qPP/7YfPLJJ+bYsWOXrKV///4mICDATJkyxUgyM2bMcD7f9erVM6VLlzZTpkwxq1atMtOmTTOhoaHmzjvvNDk5Oc5lDBkyxLzxxhtm+fLlZvXq1eaVV14xpUuXNr1793ZZ16W2G7AXghQ81oUbgMzMTHPDDTeYRo0aOb+0iiJIvfzyyy7j6tWr5/yPQ66zZ8+aMmXKmK5duzqn5X5RN2jQwOVLdN++fcbX19c89thjzmnVq1c39evXN2fPnnVZV6dOnUy5cuVMdna2S7+PPPJIoZ6fkSNHGknmm2++cZk+YMAA43A4XP6TUqlSJdOxY8dCLfdKgkR+ddSsWdO0a9fOeT+/16dJkyYmOjraZGRkOKelp6eb8PDwKw5S7dq1MxUqVHD+hy/X448/bgICAszx48cv1f4V939hyL9wXn5Bqk6dOi4B+dtvv3X5z7wxhX/f5Kd9+/ZG0iUD84WuNEgZY8zmzZsLfG2sBqkqVaqYrKwsl7HF/Tx8/vnnRpKZOHHiZWsp7Pt148aN+X6/HDx40AQGBpoRI0Y4pxX0/vnoo4+MJLNt27YCa8/P6dOnjZ+fnxk3bpwxxphDhw4ZSeaZZ54xgYGBzueib9++Jjo62vm4/D5jkydPNpJMUlJSnvVUqlTJBAQEmP379zunZWRkmPDwcNO/f/9L1ljQ65KTk2POnj3rvF34GcmvvqFDh5rAwECXP0Ds3LnTSDLTp093TrP6HTxw4ECXcZMmTTKSTHJy8iX7MsaYcePGGUlm+fLlxhhj9u7daxwOh+nRo4fLOCvbEGOMmThxopFklixZYnr27GkCAwPNjz/+eNl6LtyO5q5z+/btxhhjbrnlFtOrVy9jjMkTpN5///08f0A05v993l9//XVjjDG7du0ykpwhL9f8+fONpEIHqYI+V23atHFOK+x3e26ft99++2WfnwudPHnS3HDDDUaSadOmjfN1GT9+vPHy8jKbN292GZ/7Gf3ss8/yXV52drY5e/asmTt3rvH29nbZ9lxquwF74dA+2IKfn59eeOEFbdmypVCH9BTWxVdUqlGjhhwOhzp06OCc5uPjo6pVq+Z75cDu3bu7HPpUqVIlNWvWzHkY0J49e/Tzzz/roYceknT+3IDc21133aXk5GTt3r3bZZn33ntvoWpfvXq1atasqcaNG7tM79Wrl4wxWr16daGWUxSioqLy1FG3bt18n7Ncp0+f1ubNm9W1a1cFBAQ4p5csWVJ33333FdVx5swZffHFF+rSpYuCgoLyPN9nzpzJ9xC6vyssLEx33nlnocd37NhR3t7ezvu5JzLnPl9X8r65FnTu3NnlvK2r8TyY//+Qq4sPYby4Fivv108++UQOh0MPP/ywS81RUVG6+eab8xwel9/7p169evLz81O/fv00Z86cPIcEFiQoKEhNmzbVqlWrJEkrV65UqVKl9PTTTysrK0vr16+XJK1atUpt2rQp1DILUq9ePVWsWNF5PyAgQDfeeOMlP/eXMm3aNPn6+jpvlzsn9tFHH1VGRoY++OAD57RZs2bJ399f3bt3l3Rl76HOnTu73L/481kQY4zzcL64uDhJ5w+LbNWqlRYtWpTveUiX24bkevrpp9WxY0c9+OCDmjNnjqZPn646depcsp6LtWzZUlWqVNG7776rn376SZs3by7wcLJPPvlEpUqV0t133+3ynNWrV09RUVHO93BunbnPb65u3brlez5SQQr6XH355ZfKzs6+ou/2wm5Lc5UoUUIjRoyQJI0dO9b5unzyySeqXbu26tWr57Ledu3a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9eunvXv3qlmzZnI4HFq/fr0mTpyoYcOGFUeNAAAAAOBRLAepZ599ViVLltTLL7+sUaNGSZKio6MVHx+vJ598ssgLBAAAAABPYzlIORwODRkyREOGDNHJkyclSSVLlizywgAAAADAU13R70jlIkABAAAAuB5ZvtgEAAAAAFzvCFIAAAAAYBFBCgAAAAAsshSkzp49qzvuuEO//PJLcdUDAAAAAB7PUpDy9fXV9u3b5XA4iqseAAAAAPB4lq/a98gjj2jmzJmaMGFCcdQDAAAAG6k88tNiXf6+CR2LdfnAlbIcpLKysvTOO+9o5cqVatSokYKDg13mT5kypciKAwAAAABPZDlIbd++XQ0aNJCkPOdKccgfAAAAgOuB5SC1Zs2a4qgDAAAAAGzjii9/vmfPHq1YsUIZGRmSJGNMkRUFAAAAAJ7McpA6duyYWrdurRtvvFF33XWXkpOTJUmPPfaYhg0bVuQFAgAAAICnsRykhgwZIl9fXx04cEBBQUHO6ffff7+WL19epMUBAAAAgCeyfI5UYmKiVqxYoQoVKrhMr1atmvbv319khQEAAACAp7K8R+r06dMue6Jy/fnnn/L39y+SogAAAADAk1kOUrfffrvmzp3rvO9wOJSTk6PJkyfrjjvuKNLiAAAAAMATWT60b/LkyWrVqpW2bNmirKwsjRgxQjt27NDx48f19ddfF0eNAAAAAOBRLO+Rqlmzpn788Uc1btxYcXFxOn36tLp27arvv/9eVapUsbSsN954Q3Xr1lVISIhCQkLUtGlTff755875xhjFx8crOjpagYGBatWqlXbs2OGyjMzMTD3xxBMqXbq0goOD1blzZx06dMhqWwAAAABQaJb3SElSVFSUxo4d+7dXXqFCBU2YMEFVq1aVJM2ZM0f33HOPvv/+e9WqVUuTJk3SlClTNHv2bN1444164YUXFBcXp927d6tkyZKSpMGDB2vZsmVauHChIiIiNGzYMHXq1Elbt26Vt7f3364RAAAAAC52RUEqNTVVM2fO1K5du+RwOFSjRg317t1b4eHhlpZz9913u9x/8cUX9cYbb2jTpk2qWbOmpk6dqtGjR6tr166SzgetyMhILViwQP3791daWppmzpyp9957T23atJEkzZs3TzExMVq1apXatWt3Je0BAAAAwCVZPrRv3bp1io2N1auvvqrU1FQdP35cr776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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "nique_given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "nique_given_final_cohort_inp_ed_only[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders with Given Abx Med per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## ⏳ Cleaning the medication name" - ] - }, - { - "cell_type": "code", - "execution_count": 220, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_1420/657774021.py:42: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", - "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_1420/657774021.py:43: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n" - ] - } - ], - "source": [ - "import ast\n", - "# def convert_to_list_and_keep_longest(value):\n", - "# # 1) Convert string -> list if possible\n", - "# if isinstance(value, str):\n", - "# try:\n", - "# value = ast.literal_eval(value)\n", - "# except:\n", - "# # If parsing fails, just keep the original value\n", - "# pass\n", - "\n", - "# # 2) If the value is now a non-empty list, return the longest item\n", - "# if isinstance(value, list) and value:\n", - "\n", - "# return max(value, key=len)\n", - " \n", - "# # Otherwise, return the value as-is\n", - "# return value\n", - "\n", - "import numpy as np\n", - "\n", - "def convert_to_list_and_keep_longest(value):\n", - " try:\n", - " # Convert numpy arrays to lists\n", - " if isinstance(value, np.ndarray):\n", - " value = value.tolist()\n", - "\n", - " # Already a list? Great.\n", - " if isinstance(value, list) and len(value) > 0:\n", - " str_items = [str(v) for v in value if v not in [None, \"\"]]\n", - " if str_items:\n", - " return max(str_items, key=len)\n", - "\n", - " # Fallback — just return original\n", - " return value\n", - " \n", - " except Exception as e:\n", - " print(f\"⚠️ Error: {e} — value: {value}\")\n", - " raise\n", - "\n", - "\n", - "# Apply the function to your column\n", - "given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", - "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)" + "application/vnd.jupyter.widget-view+json": { + "model_id": "1e976236ae0941149d9e56239385f022", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%bigquery --use_rest_api df_hosp_ward_info\n", + "select * from som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.microbiology_urine_cultures_ward_info_peds" ] }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ - "# final_cohort.to_csv('../csv_folder/final_cohort.csv', index=False)" + "ED_order = df_hosp_ward_info[df_hosp_ward_info['hosp_ward_ER'] == 1]" ] }, { "cell_type": "code", - "execution_count": 222, + "execution_count": 29, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with ED order is 28463\n", + "the percentage of unique patient encounter with ED order (out of all inpatients) is 89.70%\n", + "----------------------------------------------------------\n", + "the unique culture order with ED order is 28701\n", + "the percentage of unique culture order with ED order (out of all inpatients) is 89.69%\n" + ] + } + ], "source": [ - "given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"result_time_jittered_utc\", \"final_antibiotic\"])" + "All_ED_inp= current_med_original_no_mapped_with_12_hours_inpatient_temp.merge(ED_order, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'], how='inner')\n", + "All_ED_inp_pat_enc_cnt = find_unique_patient_encounter(All_ED_inp)\n", + "print(\"the unique patient encounter number with ED order is {}\".format(All_ED_inp_pat_enc_cnt))\n", + "percentage = All_ED_inp_pat_enc_cnt/total_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order (out of all inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "All_ED_inp_order_cnt = find_unique_orders(All_ED_inp)\n", + "print(\"the unique culture order with ED order is {}\".format(All_ED_inp_order_cnt))\n", + "percentage = All_ED_inp_order_cnt/total_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with ED order (out of all inpatients) is {:.2f}%\".format(percentage))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The above code shows that out of all inpatient encounter `n = 31734`, `89.70%` (`n = 28466`) is from ED \n", + "\n" ] }, { "cell_type": "code", - "execution_count": 223, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for final_cohort is 6466\n", - "the unique order number from final cohort that has more than one medication is 698\n" + "the unique patient encounter number with ED order and any medication is 23902\n", + "the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is 83.98%\n", + "----------------------------------------------------------\n", + "the unique culture order with ED order and any medication is 24110\n", + "the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is 84.00%\n", + "----------------------------------------------------------\n", + "the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is 92.32%\n", + "----------------------------------------------------------\n", + "the percentage of unique culture order with ED order and any medication (out of all inpatients with any med) is 92.28%\n" ] } ], "source": [ - "group_counts = given_final_cohort_inp_ed_only.groupby(\n", - " ['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc']\n", - ")['final_antibiotic'].transform('count')\n", - "\n", - "# Filter rows where group count is greater than 1\n", - "group_counts_df= given_final_cohort_inp_ed_only[group_counts > 1]\n", - "sorted_group_counts_df = group_counts_df.sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", - "\n", - "print(\"the unique order number for final_cohort is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only)))\n", - "print(\"the unique order number from final cohort that has more than one medication is {}\".format(find_unique_orders(sorted_group_counts_df)))" + "any_med_inp_ed = any_med_inp.merge(ED_order, \\\n", + " on=['anon_id','pat_enc_csn_id_coded', \n", + " 'order_proc_id_coded', 'order_time_jittered_utc'],\n", + " how='inner')\n", + "any_med_inp_ed_pat_enc_cnt = find_unique_patient_encounter(any_med_inp_ed)\n", + "print(\"the unique patient encounter number with ED order and any medication is {}\".format(any_med_inp_ed_pat_enc_cnt))\n", + "percentage = any_med_inp_ed_pat_enc_cnt/All_ED_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order and any medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "any_med_inp_ed_order_cnt = find_unique_orders(any_med_inp_ed)\n", + "print(\"the unique culture order with ED order and any medication is {}\".format(any_med_inp_ed_order_cnt))\n", + "percentage = any_med_inp_ed_order_cnt/All_ED_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with ED order and any medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "percentage = any_med_inp_ed_pat_enc_cnt/ any_med_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order and any medication (out of all inpatients with any med) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "percentage = any_med_inp_ed_order_cnt/ any_med_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with ED order and any medication (out of all inpatients with any med) is {:.2f}%\".format(percentage))" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with ED order and abx medication is 8959\n", + "the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is 31.48%\n", + "----------------------------------------------------------\n", + "the unique culture order with ED order and abx medication is 9084\n", + "the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is 31.65%\n", + "----------------------------------------------------------\n", + "the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is 91.99%\n", + "----------------------------------------------------------\n", + "the percentage of unique culture order with ED order and abx medication (out of all inpatients with abx med) is 91.92%\n" + ] + } + ], + "source": [ + "abx_med_inp_ed = abx_med_inp.merge(ED_order, \\\n", + " on=['anon_id','pat_enc_csn_id_coded', \n", + " 'order_proc_id_coded', 'order_time_jittered_utc'],\n", + " how='inner')\n", + "abx_med_inp_ed_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed)\n", + "print(\"the unique patient encounter number with ED order and abx medication is {}\".format(abx_med_inp_ed_pat_enc_cnt))\n", + "percentage = abx_med_inp_ed_pat_enc_cnt/All_ED_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "abx_med_inp_ed_order_cnt = find_unique_orders(abx_med_inp_ed)\n", + "print(\"the unique culture order with ED order and abx medication is {}\".format(abx_med_inp_ed_order_cnt))\n", + "percentage = abx_med_inp_ed_order_cnt/All_ED_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with ED order and abx medication (out of all ED inpatients) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "percentage = abx_med_inp_ed_pat_enc_cnt/ abx_med_inp_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "percentage = abx_med_inp_ed_order_cnt/ abx_med_inp_order_cnt *100\n", + "print(\"the percentage of unique culture order with ED order and abx medication (out of all inpatients with abx med) is {:.2f}%\".format(percentage))" ] }, { "cell_type": "code", - "execution_count": 224, + "execution_count": 32, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibioticfinal_antibiotic
0JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 08:20:00+00:00CEPHALEXIN 250 MG PO CAPS387591109Given[Cephalexin]Cephalexin/Cephalothin
1JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 09:23:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS387591245Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
2JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Inpatient2009-11-10 00:18:23+00:00CEFTRIAXONE PEDIATRIC IM INJECTION359621059Given[Ceftriaxone]Ceftriaxone
3JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Inpatient2010-10-28 08:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P...375117174Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
4JC10021791310724412874573167542015-01-25 11:53:00+00:002015-01-27 16:14:00+00:00Inpatient2015-01-25 13:13:00+00:00AZITHROMYCIN 200 MG/5 ML PO SUSR457317321Given[Azithromycin]Azithromycin
.......................................
15393JC9951271310868403664645682212015-06-09 20:06:00+00:002015-06-11 21:13:00+00:00Inpatient2015-06-09 22:52:00+00:00CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS464581655Given[Ceftriaxone]Ceftriaxone
15394JC9966401310120819593776179022011-01-22 04:42:00+00:002011-02-06 01:21:00+00:00Inpatient2011-01-22 01:36:50+00:00CEFTRIAXONE PEDIATRIC IV INFUSION377610820Given[Ceftriaxone]Ceftriaxone
15395JC9966501310122479163782938712011-01-31 10:14:00+00:002011-02-02 16:40:00+00:00Inpatient2011-01-31 11:48:37+00:00CEPHALEXIN 250 MG/5 ML PO SUSR378294668Given[Cephalexin]Cephalexin/Cephalothin
15409JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Inpatient2010-04-15 06:23:22+00:00CEPHALEXIN 250 MG/5 ML PO SUSR364620837Given[Cephalexin]Cephalexin/Cephalothin
15412JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 22:21:00+00:00PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B...443088906Given[Piperacillin-Tazobactam]Piperacillin/Tazobactam
\n", - "

7217 rows × 12 columns

\n", - "
" - ], "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000924 131014644911 387581858 \n", - "1 JC1000924 131014644911 387581858 \n", - "2 JC1001971 131007652469 359619675 \n", - "3 JC1001971 131011493486 375107375 \n", - "4 JC1002179 131072441287 457316754 \n", - "... ... ... ... \n", - "15393 JC995127 131086840366 464568221 \n", - "15394 JC996640 131012081959 377617902 \n", - "15395 JC996650 131012247916 378293871 \n", - "15409 JC999518 131008782853 364618856 \n", - "15412 JC999859 131038386282 443088092 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "1 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "2 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 Inpatient \n", - "3 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 Inpatient \n", - "4 2015-01-25 11:53:00+00:00 2015-01-27 16:14:00+00:00 Inpatient \n", - "... ... ... ... \n", - "15393 2015-06-09 20:06:00+00:00 2015-06-11 21:13:00+00:00 Inpatient \n", - "15394 2011-01-22 04:42:00+00:00 2011-02-06 01:21:00+00:00 Inpatient \n", - "15395 2011-01-31 10:14:00+00:00 2011-02-02 16:40:00+00:00 Inpatient \n", - "15409 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 Inpatient \n", - "15412 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2011-07-25 08:20:00+00:00 \n", - "1 2011-07-25 09:23:00+00:00 \n", - "2 2009-11-10 00:18:23+00:00 \n", - "3 2010-10-28 08:00:00+00:00 \n", - "4 2015-01-25 13:13:00+00:00 \n", - "... ... \n", - "15393 2015-06-09 22:52:00+00:00 \n", - "15394 2011-01-22 01:36:50+00:00 \n", - "15395 2011-01-31 11:48:37+00:00 \n", - "15409 2010-04-15 06:23:22+00:00 \n", - "15412 2014-08-04 22:21:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 CEPHALEXIN 250 MG PO CAPS 387591109 \n", - "1 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 387591245 \n", - "2 CEFTRIAXONE PEDIATRIC IM INJECTION 359621059 \n", - "3 SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P... 375117174 \n", - "4 AZITHROMYCIN 200 MG/5 ML PO SUSR 457317321 \n", - "... ... ... \n", - "15393 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 464581655 \n", - "15394 CEFTRIAXONE PEDIATRIC IV INFUSION 377610820 \n", - "15395 CEPHALEXIN 250 MG/5 ML PO SUSR 378294668 \n", - "15409 CEPHALEXIN 250 MG/5 ML PO SUSR 364620837 \n", - "15412 PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B... 443088906 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Cephalexin] \n", - "1 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "2 Given [Ceftriaxone] \n", - "3 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "4 Given [Azithromycin] \n", - "... ... ... \n", - "15393 Given [Ceftriaxone] \n", - "15394 Given [Ceftriaxone] \n", - "15395 Given [Cephalexin] \n", - "15409 Given [Cephalexin] \n", - "15412 Given [Piperacillin-Tazobactam] \n", - "\n", - " final_antibiotic \n", - "0 Cephalexin/Cephalothin \n", - "1 Trimethoprim/Sulfamethoxazole \n", - "2 Ceftriaxone \n", - "3 Trimethoprim/Sulfamethoxazole \n", - "4 Azithromycin \n", - "... ... \n", - "15393 Ceftriaxone \n", - "15394 Ceftriaxone \n", - "15395 Cephalexin/Cephalothin \n", - "15409 Cephalexin/Cephalothin \n", - "15412 Piperacillin/Tazobactam \n", - "\n", - "[7217 rows x 12 columns]" + "0.9191541030051604" ] }, - "execution_count": 224, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "given_final_cohort_inp_ed_only" + "abx_med_inp_ed_order_cnt/abx_med_inp_order_cnt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The above code shows that out of all inpatient ED encounter `n = 28466`, `57.93%` (`n = 8743`) has abx medication\n", + "### Also shows that out of all inpatient encouter with current abx med `n= 9480`, `92.23%` (`n = 8743`) is ED\n", + "\n", + "31734 --> 25759 --> 9480 --> 8743" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ----------- Empirical Med for ED Inpatient Only -----------" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Group by the specified columns\n", + "grouped = abx_med_inp_ed.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "\n", + "# Function to filter each group\n", + "def filter_group(group):\n", + " # Keep rows where:\n", + " # 1. medication_time is greater than culture order time but smaller than result time, OR\n", + " # 2. medication_time is within 6 hours before the culture order time\n", + " condition = (\n", + " ((group['medication_time'] > group['order_time_jittered_utc']) & \n", + " (group['medication_time'] < group['result_time_jittered_utc'])) | \n", + " ((group['medication_time'] >= (group['order_time_jittered_utc'] - pd.Timedelta(hours=12))) & \n", + " (group['medication_time'] <= group['order_time_jittered_utc'])\n", + " ))\n", + " return group[condition]\n", + "\n", + "# Apply the filter to each group\n", + "filtered_groups = [filter_group(group) for _, group in grouped]\n", + "\n", + "# Combine the filtered groups into a new DataFrame\n", + "abx_med_inp_ed_empirical = pd.concat([group for group in filtered_groups if group is not None])\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with ED order and abx medication empirical is 8941\n", + "the percentage of unique patient encounter with ED order and empirical abx medication \n", + "(out of all ED inpatients with abx med) \n", + "is 99.80%\n" + ] + } + ], + "source": [ + "abx_med_inp_ed_empirical_pat_enc_cnt = find_unique_patient_encounter(abx_med_inp_ed_empirical)\n", + "print(\"the unique patient encounter number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_pat_enc_cnt))\n", + "percentage = abx_med_inp_ed_empirical_pat_enc_cnt/ abx_med_inp_ed_pat_enc_cnt *100\n", + "print(\"the percentage of unique patient encounter with ED order and empirical abx medication \\n(out of all ED inpatients with abx med) \\nis {:.2f}%\".format(percentage))" ] }, { "cell_type": "code", - "execution_count": 277, + "execution_count": 35, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique order number with ED order and abx medication empirical is 9065\n", + "the percentage of unique order with ED order and empirical abx medication \n", + "(out of all ED inpatients with abx med) \n", + "is 99.79%\n" + ] + } + ], "source": [ - "# read impliced_susceptibility rules\n", - "implied_suspectibility = pd.read_csv('../csv_folder/implied_susceptibility_rules.csv')" + "abx_med_inp_ed_empirical_order_cnt = find_unique_orders(abx_med_inp_ed_empirical)\n", + "print(\"the unique order number with ED order and abx medication empirical is {}\".format(abx_med_inp_ed_empirical_order_cnt))\n", + "percentage = abx_med_inp_ed_empirical_order_cnt/ abx_med_inp_ed_order_cnt *100\n", + "print(\"the percentage of unique order with ED order and empirical abx medication \\n(out of all ED inpatients with abx med) \\nis {:.2f}%\".format(percentage))" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds replaced with new data from CSV.\n" + ] + } + ], + "source": [ + "# Define table ID\n", + "table_id = \"som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds\"\n", + "\n", + "# Define job config with WRITE_TRUNCATE to replace the table\n", + "job_config = bigquery.LoadJobConfig(\n", + " write_disposition=\"WRITE_TRUNCATE\", # This replaces the table\n", + " autodetect=True, # Automatically detect schema\n", + " source_format=bigquery.SourceFormat.PARQUET\n", + ")\n", + "\n", + "# Upload DataFrame to BigQuery\n", + "job = client.load_table_from_dataframe(\n", + " abx_med_inp_ed_empirical, table_id, job_config=job_config\n", + ")\n", + "\n", + "job.result() # Wait for the job to complete\n", + "\n", + "print(f\"Table {table_id} replaced with new data from CSV.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 37, "metadata": {}, + "outputs": [], "source": [ - "# Include implied-susceptibility rules" + "abx_med_inp_ed_empirical.to_csv('../csv_folder/step_5_abx_med_inp_ed_empirical_peds.csv', index=False)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Step 1: Check for inherent resistance" + "### The above code shows that out of all inpatient ED encounter `n = 8743` with abx_med, `99.98%` (`n = 8741`) is empirical\n", + "31734 --> 25759 --> 9480 --> 8743 --> 8741" ] }, { - "cell_type": "code", - "execution_count": 278, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "import re\n", - "with_implied_susceptibility_starting_cohort = starting_cohort.copy()\n", - "with_implied_susceptibility_starting_cohort[\"susceptibility_source\"] = \"original\"\n", - "# Get unique organisms from implied_susceptibility\n", - "bacteria = implied_suspectibility[\"Organism\"].dropna().unique().tolist()\n", - "\n", - "# Create regex pattern and find matches\n", - "pattern = '|'.join([re.escape(org) for org in bacteria])\n", - "matches = with_implied_susceptibility_starting_cohort[\"organism\"].str.contains(pattern, case=False, na=False)\n", - "\n", - "# Add a new column showing WHICH organism was matched\n", - "def find_matched_organism(org_name):\n", - " org_name = str(org_name).upper()\n", - " for bact in bacteria:\n", - " if re.search(re.escape(bact), org_name, re.IGNORECASE):\n", - " return bact\n", - " return None\n", - "\n", - "with_implied_susceptibility_starting_cohort['matched_organism'] \\\n", - " = with_implied_susceptibility_starting_cohort['organism'].apply(find_matched_organism)\n" + "# ----------- Filtering out Prior Abx exposure for Empirical Med for ED Inpatient Only -----------" ] }, { "cell_type": "code", - "execution_count": 279, + "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4e29fa76836047c683be2aad1b44f4d3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Query is running: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "829f30574f1c47dcb8e578abab25e6d5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading: 0%| |" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "inherent_resistance = implied_suspectibility[\n", - " implied_suspectibility['Implied_Agent'].isna()\n", - "][['Organism', 'Antibiotic']].drop_duplicates()\n", - "resistant_to_add = pd.merge(\n", - " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", - " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", - " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", - " inherent_resistance,\n", - " left_on='matched_organism',\n", - " right_on='Organism',\n", - " how='inner'\n", + "%%bigquery --use_rest_api final_cohort_inp_ed_only\n", + "\n", + "WITH exclusion AS (\n", + " SELECT\n", + " distinct\n", + " anon_id,\n", + " pat_enc_csn_id_coded,\n", + " order_proc_id_coded,\n", + " order_time_jittered_utc\n", + " FROM\n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.all_med_new_med_time_peds` al\n", + " INNER JOIN \n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds` m\n", + " USING\n", + " (anon_id, pat_enc_csn_id_coded, order_proc_id_coded, order_time_jittered_utc)\n", + " WHERE\n", + " al.medication_time IS NOT NULL\n", + " AND ARRAY_LENGTH(al.cleaned_antibiotic) > 0 \n", + " # AND al.medication_action like \"Given\" # remove \"given\" for now\n", + " AND TIMESTAMP_DIFF(al.medication_time, al.order_time_jittered_utc, HOUR) > -720\n", + " AND TIMESTAMP_DIFF(al.medication_time, al.order_time_jittered_utc, HOUR) < -12 # change to 12 to be consistent\n", + "),\n", + "\n", + "filtered_groups AS (\n", + " SELECT\n", + " m.*\n", + " FROM\n", + " `som-nero-phi-jonc101.antimicrobial_stewardship_sandy_refactor.step_5_abx_med_inp_ed_empirical_peds` m\n", + " WHERE\n", + " -- Disregard groups where any medication_time is between 12 and 720 hours before order_time_jittered_utc\n", + " NOT EXISTS (\n", + " SELECT 1\n", + " FROM exclusion ex\n", + " WHERE\n", + " ex.anon_id = m.anon_id\n", + " AND ex.pat_enc_csn_id_coded = m.pat_enc_csn_id_coded\n", + " AND ex.order_proc_id_coded = m.order_proc_id_coded\n", + " AND ex.order_time_jittered_utc = m.order_time_jittered_utc\n", + " )\n", ")\n", - "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", - "resistant_to_add['susceptibility'] = 'Resistant'\n", - "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", - "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", - "added_resistant_cohort = (pd.concat([\n", - " with_implied_susceptibility_starting_cohort,\n", - " resistant_to_add[cols_to_keep]\n", - "], ignore_index=True))\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", - " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" + "SELECT \n", + "*\n", + " -- distinct\n", + " -- anon_id,\n", + " -- pat_enc_csn_id_coded,\n", + " -- order_proc_id_coded,\n", + " -- order_time_jittered_utc\n", + " -- -- medication_time,\n", + " -- -- result_time_jittered_utc\n", + " -- -- medication_name,\n", + "\n", + "FROM\n", + " filtered_groups\n", + "ORDER BY\n", + " anon_id,\n", + " pat_enc_csn_id_coded,\n", + " order_proc_id_coded,\n", + " order_time_jittered_utc" ] }, { "cell_type": "code", - "execution_count": 236, + "execution_count": 39, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number for final cohort is 8362\n", + "the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is 93.52%\n", + "----------------------------------------------------------\n", + "the unique order number for final cohort is 8477\n", + "the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is 93.51%\n" + ] + } + ], "source": [ - "# duplicate_check = added_resistant_cohort.duplicated(\n", - "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility'],\n", - "# keep=False # Mark all duplicates as True\n", - "# )\n", - "\n", - "# # Step 2: Create a separate dataframe with just duplicates\n", - "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", - "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - "# 'organism', 'antibiotic', 'susceptibility']\n", - "# )" + "print(\"the unique patient encounter number for final cohort is {}\".format(find_unique_patient_encounter(final_cohort_inp_ed_only)))\n", + "percentage = find_unique_patient_encounter(final_cohort_inp_ed_only)/abx_med_inp_ed_empirical_pat_enc_cnt * 100\n", + "print(\"the percentage of unique patient encounter for final cohort (out of all ED inpatients with empirical abx med) is {:.2f}%\".format(percentage))\n", + "print(\"----------------------------------------------------------\")\n", + "percentage = find_unique_orders(final_cohort_inp_ed_only)/abx_med_inp_ed_empirical_order_cnt * 100\n", + "print(\"the unique order number for final cohort is {}\".format(find_unique_orders(final_cohort_inp_ed_only)))\n", + "print(\"the percentage of unique culture order for final cohort (out of all ED inpatients with empirical abx med) is {:.2f}%\".format(percentage))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Step 2: Check for implied susceptibility" + "### The above code shows that out of all inpatient ED encounter `n = 8943` with empirical abx_med, `93.51%` (`n = 8363`) is included as final cohort\n", + "31734 --> 25759 --> 9480 --> 8743 --> 8943 -->8363" ] }, { - "cell_type": "code", - "execution_count": 280, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "implied_agent_rules = implied_suspectibility[\n", - " implied_suspectibility['Implied_Agent'].notna()\n", - "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", - "implied_to_process = pd.merge(\n", - " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", - " implied_agent_rules,\n", - " left_on=['matched_organism', 'antibiotic'],\n", - " right_on=['Organism', 'Implied_Agent'],\n", - " how='inner'\n", - ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", - "implied_to_process['susceptibility_source'] = 'implied'\n", - "cols_to_keep = added_resistant_cohort.columns\n", - "final_implied_cohort = (pd.concat([\n", - " added_resistant_cohort,\n", - " implied_to_process[cols_to_keep]\n", - "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", - " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", - " 'organism', 'antibiotic', 'susceptibility'], keep='first')" + "# ----Expore the given aspect for the final inpatient ED Cohort ----" ] }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 40, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique patient encounter number with valid given medication is 6360\n", + "the unique order number with valid given medication is 6465\n" + ] + } + ], "source": [ - "condition = (final_implied_cohort[\"was_positive\"] == 1) & (final_implied_cohort[\"organism\"].isna())\n", - "final_implied_cohort = final_implied_cohort[~condition]" + "condition = final_cohort_inp_ed_only[\"medication_action\"] == \"Given\"\n", + "given_final_cohort_inp_ed_only = final_cohort_inp_ed_only[condition]\n", + "given_final_cohort_inp_ed_only_pat_enc_cnt = find_unique_patient_encounter(given_final_cohort_inp_ed_only)\n", + "given_final_cohort_inp_ed_only_order_cnt = find_unique_orders(given_final_cohort_inp_ed_only)\n", + "print(\"the unique patient encounter number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_pat_enc_cnt))\n", + "print(\"the unique order number with valid given medication is {}\".format(given_final_cohort_inp_ed_only_order_cnt))\n", + "# percentage = given_final_cohort_inp_ed_only_pat_enc_cnt/find_unique_patient_encounter(final_cohort_inp_ed_only) *100\n", + "# print(\"the percentage of unique patient encounter with given medication (out of all inpatients) is {:.2f}%\".format(percentage))\n" ] }, { "cell_type": "code", - "execution_count": 285, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "64750" + "" ] }, - "execution_count": 285, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAI3CAYAAACRaGpaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABel0lEQVR4nO3deZzN9f////uZfWHGzGDGMJhQ9mwREsVYIr3pnUoJCW+02BIf7zJUYysRLe9KlpDeZXmnhSFLCYVSWVIy9pkUYwaNGWaevz/85nwdM8O8NOOcF7fr5XIuF+f1ep7X6/E428t9XstxGGOMAAAAAACF5uXuAgAAAADAbghSAAAAAGARQQoAAAAALCJIAQAAAIBFBCkAAAAAsIggBQAAAAAWEaQAAAAAwCKCFAAAAABYRJACAAAAAIsIUvBYs2fPlsPhUEBAgPbv359nfqtWrVS7dm03VCatXbtWDodDH330kVvWb9W+ffvUsWNHhYeHy+FwaPDgwQWOdTgcevzxx/Od99FHH8nhcGjt2rVXVIPD4dDs2bMtP/ZqKsr+W7VqpVatWhVdcRalp6frxRdfVKNGjRQSEiJ/f39VrlxZjz76qL777rsrWmblypXVq1cv5/0jR44oPj5e27ZtK5qii8GxY8c0atQo1axZU0FBQQoJCdGtt96q1157TWfPnv3by4+Pj5fD4SiCSt0nv8/nhg0bFB8frxMnTuQZX7lyZXXq1OlvrTM9PV0TJkxQkyZNVKpUKfn6+ioyMlLt27fXggULlJmZecn6PNnQoUPlcDgKfI6u1jYkdzta0PeWMUZVq1aVw+Eo8u+qi78rPNGHH34oh8Oh6dOn5zu/X79+8vf3148//niVK4Nd+Li7AOByMjMz9e9//1vvvfeeu0uxrSFDhuibb77Ru+++q6ioKJUrV+6q11CuXDlt3LhRVapUuerrdpfXX3/dbev+7bff1LZtWx09elT/+te/NHbsWJUoUUL79u3Tf//7XzVs2FAnTpxQaGjo31rPkSNHNHbsWFWuXFn16tUrmuKL0M8//6y2bdvq1KlTGjZsmJo1a6aMjAx98skneuqpp/Thhx/qs88+U1BQkLtLdav8Pp8bNmzQ2LFj1atXL5UqVapI1/frr7+qffv2Onr0qPr166fRo0crLCxMycnJWrFihR599FHt2rVLzz//fIH1eaqzZ89q3rx5kqTly5fr8OHDKl++vFtrKlmypGbOnJknLK1bt06//fabSpYs6Z7C3Oy+++5T9+7dNXLkSHXo0EFVq1Z1zktMTNTbb7+t8ePHq27dum6sEp6MIAWPl/vXyeHDh+vmm292dzlXVUZGhgICAv72X7u3b9+uxo0b6x//+EfRFHYF/P39deutt7pt/VfTX3/9paCgINWsWdMt68/OzlaXLl30559/auPGjS57blu2bKmePXvq888/l6+vr1vqK4zs7GydO3dO/v7+f2sZ9957r9LT0/Xtt9/qxhtvdM6766671LJlSz3wwAMaOnSo3nzzzWKtxYrc98/VdDU/n+fOndM//vEPHT9+XN9++61q1KjhMr9bt2567rnn9P3337ulvr/rf//7n/744w917NhRn376qebMmaP/+7//c2tN999/v+bPn6/XXntNISEhzukzZ85U06ZNlZ6e7sbqit/Zs2flcDjk45P3v70zZszQ2rVr1atXL3355Zfy8vJSenq6HnvsMTVt2lRPP/30VanRHZ97/H0c2gePN2LECEVEROiZZ5655LhLHfrhcDgUHx/vvJ97KM6PP/6o++67T6GhoQoPD9fQoUN17tw57d69W+3bt1fJkiVVuXJlTZo0Kd91njlzRkOHDlVUVJQCAwPVsmVLl41/ri1btqhz584KDw9XQECA6tevr//+978uY3IPwUhMTNSjjz6qMmXKKCgoyOXwlosdOHBADz/8sMqWLSt/f3/VqFFDL7/8snJyciT9v8NH9uzZo88//9x5iMe+ffsu+VxakXuI5ebNm9WiRQsFBQXphhtu0IQJE5x1SAW/Pp9++qnq1asnf39/xcbG6qWXXspzqJSV11Y6/9fu7t27uzwvr732WpH1fKHc/r/88ks1a9ZMQUFBevTRR53zLvwLcG4fL730kqZMmaLY2FiVKFFCTZs21aZNm/IsuzDvm/wsXbpUP/30k0aNGlXg4a8dOnRwbrR79eqlypUr5xlzuUPW1q5dq1tuuUWS1Lt3b+f7K/f1KOjQxovXl/u8TJo0SS+88IJiY2Pl7++vNWvW/K3nYcmSJdq5c6dGjhzpEqJy3X///Wrbtq1mzpyplJSUQtWS3/s1P8YYvf7666pXr54CAwMVFhamf/7zn9q7d6/LuEu9f1avXq1WrVopIiJCgYGBqlixou6991799ddfBfb89NNPKzQ0VNnZ2c5pTzzxhBwOhyZPnuycduzYMXl5eTkPabr4MxYfH+/8D2RsbGyBh4ctX75cDRo0UGBgoKpXr6533323wNpy5b4uo0ePzhOiclWqVMnlDz8X17d06VI5HA598cUXeR77xhtvOL/fc1n5Dl6zZo0GDBig0qVLKyIiQl27dtWRI0cu21eumTNnys/PT7NmzVJMTIxmzZolY0y+Yy+3Dfnzzz8VExOjZs2auRyGunPnTgUHB6tHjx6FqunBBx+UJL3//vvOaWlpaVq0aJHz/XaxrKwsvfDCC6pevbr8/f1VpkwZ9e7dW3/88YfLuLNnz2rEiBGKiopSUFCQbrvtNn377beFquvCz9uLL76oihUrKiAgQI0aNcr3tS3Md3vudu+9997TsGHDVL58efn7+2vPnj351hAWFqaZM2fq66+/1iuvvCLp/FEcx44d05w5c+Tt7a309HQNHz5csbGx8vPzU/ny5TV48GCdPn3aZVmvvfaabr/9dpUtW1bBwcGqU6eOJk2alOcQ4kt97mEzBvBQs2bNMpLM5s2bzbRp04wk88UXXzjnt2zZ0tSqVct5PykpyUgys2bNyrMsSWbMmDHO+2PGjDGSzE033WSef/55s3LlSjNixAgjyTz++OOmevXq5tVXXzUrV640vXv3NpLMokWLnI9fs2aNkWRiYmLMPffcY5YtW2bmzZtnqlatakJCQsxvv/3mHLt69Wrj5+dnWrRoYT744AOzfPly06tXrzy15vZbvnx5069fP/P555+bjz76yJw7dy7f5+fo0aOmfPnypkyZMubNN980y5cvN48//riRZAYMGGCMMSYtLc1s3LjRREVFmebNm5uNGzeajRs3mjNnzhT4vEsygwYNynfehx9+aCSZNWvWuLwOERERplq1aubNN980K1euNAMHDjSSzJw5cy75+qxatcp4e3ub2267zSxevNh8+OGH5pZbbjEVK1Y0F349WXltd+zYYUJDQ02dOnXM3LlzTWJiohk2bJjx8vIy8fHxBfb9d/oPDw83MTExZvr06WbNmjVm3bp1znktW7bM00flypVN+/btzdKlS83SpUtNnTp1TFhYmDlx4oRzbGHfN/np16+fkWR27dp12X6NMaZnz56mUqVKeabnfk4uVKlSJdOzZ09jzPn3V+779t///rfz/XXw4MF8+y9ofbnPS/ny5c0dd9xhPvroI5OYmGiSkpKK/Xl4/fXXjSTz/vvvX7aWwr5fjTGmb9++xtfX1wwbNswsX77cLFiwwFSvXt1ERkaalJQU57iC3j9JSUkmICDAxMXFmaVLl5q1a9ea+fPnmx49epjU1NQC+1m+fLmRZDZs2OCcVr16dRMYGGji4uKc0z744AMjyezcudOl79zn9ODBg+aJJ54wkszixYudr21aWpox5vz7oEKFCqZmzZpm7ty5ZsWKFea+++4zkpzv/4L07dvXSDK7d+++5LgLXVzf2bNnTdmyZc1DDz2UZ2zjxo1NgwYNnPetfgffcMMN5oknnjArVqww77zzjgkLCzN33HFHoeo8ePCg8fLyMvfdd58xxph///vfRpJZu3atyzgr25D169cbHx8fM2TIEGOMMadPnzY1a9Y01atXN6dOnbpkPRduR3v06GEaN27snPfGG2+Y4OBgk56ebmrVquXyWc3Ozjbt27c3wcHBZuzYsWblypXmnXfeMeXLlzc1a9Y0f/31l3Nsz549jcPhME8//bRJTEw0U6ZMMeXLlzchISHO74qC5L6uMTEx5rbbbjOLFi1yfq58fX1d3seF/W7PfW7Lly9v/vnPf5qPP/7YfPLJJ+bYsWOXrKV///4mICDATJkyxUgyM2bMcD7f9erVM6VLlzZTpkwxq1atMtOmTTOhoaHmzjvvNDk5Oc5lDBkyxLzxxhtm+fLlZvXq1eaVV14xpUuXNr1793ZZ16W2G7AXghQ81oUbgMzMTHPDDTeYRo0aOb+0iiJIvfzyyy7j6tWr5/yPQ66zZ8+aMmXKmK5duzqn5X5RN2jQwOVLdN++fcbX19c89thjzmnVq1c39evXN2fPnnVZV6dOnUy5cuVMdna2S7+PPPJIoZ6fkSNHGknmm2++cZk+YMAA43A4XP6TUqlSJdOxY8dCLfdKgkR+ddSsWdO0a9fOeT+/16dJkyYmOjraZGRkOKelp6eb8PDwKw5S7dq1MxUqVHD+hy/X448/bgICAszx48cv1f4V939hyL9wXn5Bqk6dOi4B+dtvv3X5z7wxhX/f5Kd9+/ZG0iUD84WuNEgZY8zmzZsLfG2sBqkqVaqYrKwsl7HF/Tx8/vnnRpKZOHHiZWsp7Pt148aN+X6/HDx40AQGBpoRI0Y4pxX0/vnoo4+MJLNt27YCa8/P6dOnjZ+fnxk3bpwxxphDhw4ZSeaZZ54xgYGBzueib9++Jjo62vm4/D5jkydPNpJMUlJSnvVUqlTJBAQEmP379zunZWRkmPDwcNO/f/9L1ljQ65KTk2POnj3rvF34GcmvvqFDh5rAwECXP0Ds3LnTSDLTp093TrP6HTxw4ECXcZMmTTKSTHJy8iX7MsaYcePGGUlm+fLlxhhj9u7daxwOh+nRo4fLOCvbEGOMmThxopFklixZYnr27GkCAwPNjz/+eNl6LtyO5q5z+/btxhhjbrnlFtOrVy9jjMkTpN5///08f0A05v993l9//XVjjDG7du0ykpwhL9f8+fONpEIHqYI+V23atHFOK+x3e26ft99++2WfnwudPHnS3HDDDUaSadOmjfN1GT9+vPHy8jKbN292GZ/7Gf3ss8/yXV52drY5e/asmTt3rvH29nbZ9lxquwF74dA+2IKfn59eeOEFbdmypVCH9BTWxVdUqlGjhhwOhzp06OCc5uPjo6pVq+Z75cDu3bu7HPpUqVIlNWvWzHkY0J49e/Tzzz/roYceknT+3IDc21133aXk5GTt3r3bZZn33ntvoWpfvXq1atasqcaNG7tM79Wrl4wxWr16daGWUxSioqLy1FG3bt18n7Ncp0+f1ubNm9W1a1cFBAQ4p5csWVJ33333FdVx5swZffHFF+rSpYuCgoLyPN9nzpzJ9xC6vyssLEx33nlnocd37NhR3t7ezvu5JzLnPl9X8r65FnTu3NnlvK2r8TyY//+Qq4sPYby4Fivv108++UQOh0MPP/ywS81RUVG6+eab8xwel9/7p169evLz81O/fv00Z86cPIcEFiQoKEhNmzbVqlWrJEkrV65UqVKl9PTTTysrK0vr16+XJK1atUpt2rQp1DILUq9ePVWsWNF5PyAgQDfeeOMlP/eXMm3aNPn6+jpvlzsn9tFHH1VGRoY++OAD57RZs2bJ399f3bt3l3Rl76HOnTu73L/481kQY4zzcL64uDhJ5w+LbNWqlRYtWpTveUiX24bkevrpp9WxY0c9+OCDmjNnjqZPn646depcsp6LtWzZUlWqVNG7776rn376SZs3by7wcLJPPvlEpUqV0t133+3ynNWrV09RUVHO93BunbnPb65u3brlez5SQQr6XH355ZfKzs6+ou/2wm5Lc5UoUUIjRoyQJI0dO9b5unzyySeqXbu26tWr57Ledu3a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9eunvXv3qlmzZnI4HFq/fr0mTpyoYcOGFUeNAAAAAOBRLAepZ599ViVLltTLL7+sUaNGSZKio6MVHx+vJ598ssgLBAAAAABPYzlIORwODRkyREOGDNHJkyclSSVLlizywgAAAADAU13R70jlIkABAAAAuB5ZvtgEAAAAAFzvCFIAAAAAYBFBCgAAAAAsshSkzp49qzvuuEO//PJLcdUDAAAAAB7PUpDy9fXV9u3b5XA4iqseAAAAAPB4lq/a98gjj2jmzJmaMGFCcdQDAAAAG6k88tNiXf6+CR2LdfnAlbIcpLKysvTOO+9o5cqVatSokYKDg13mT5kypciKAwAAAABPZDlIbd++XQ0aNJCkPOdKccgfAAAAgOuB5SC1Zs2a4qgDAAAAAGzjii9/vmfPHq1YsUIZGRmSJGNMkRUFAAAAAJ7McpA6duyYWrdurRtvvFF33XWXkpOTJUmPPfaYhg0bVuQFAgAAAICnsRykhgwZIl9fXx04cEBBQUHO6ffff7+WL19epMUBAAAAgCeyfI5UYmKiVqxYoQoVKrhMr1atmvbv319khQEAAACAp7K8R+r06dMue6Jy/fnnn/L39y+SogAAAADAk1kOUrfffrvmzp3rvO9wOJSTk6PJkyfrjjvuKNLiAAAAAMATWT60b/LkyWrVqpW2bNmirKwsjRgxQjt27NDx48f19ddfF0eNAAAAAOBRLO+Rqlmzpn788Uc1btxYcXFxOn36tLp27arvv/9eVapUsbSsN954Q3Xr1lVISIhCQkLUtGlTff755875xhjFx8crOjpagYGBatWqlXbs2OGyjMzMTD3xxBMqXbq0goOD1blzZx06dMhqWwAAAABQaJb3SElSVFSUxo4d+7dXXqFCBU2YMEFVq1aVJM2ZM0f33HOPvv/+e9WqVUuTJk3SlClTNHv2bN1444164YUXFBcXp927d6tkyZKSpMGDB2vZsmVauHChIiIiNGzYMHXq1Elbt26Vt7f3364RAAAAAC52RUEqNTVVM2fO1K5du+RwOFSjRg317t1b4eHhlpZz9913u9x/8cUX9cYbb2jTpk2qWbOmpk6dqtGjR6tr166SzgetyMhILViwQP3791daWppmzpyp9957T23atJEkzZs3TzExMVq1apXatWt3Je0BAAAAwCVZPrRv3bp1io2N1auvvqrU1FQdP35cr776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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "find_unique_orders(final_implied_cohort)" + "nique_given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "nique_given_final_cohort_inp_ed_only[\"order_time_jittered_utc\"].dt.year.value_counts().sort_index().plot(kind='bar', title='Number of Unique Urine Culture Orders with Given Abx Med per Year', xlabel='Year', ylabel='Number of Orders', figsize=(10, 6))" ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "## ⏳ Cleaning the medication name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_50557/657774021.py:42: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", + "/var/folders/r3/mc640yrn2_70d_7zvw5cc3q00000gn/T/ipykernel_50557/657774021.py:43: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n" + ] + } + ], + "source": [ + "import ast\n", + "# def convert_to_list_and_keep_longest(value):\n", + "# # 1) Convert string -> list if possible\n", + "# if isinstance(value, str):\n", + "# try:\n", + "# value = ast.literal_eval(value)\n", + "# except:\n", + "# # If parsing fails, just keep the original value\n", + "# pass\n", + "\n", + "# # 2) If the value is now a non-empty list, return the longest item\n", + "# if isinstance(value, list) and value:\n", + "\n", + "# return max(value, key=len)\n", + " \n", + "# # Otherwise, return the value as-is\n", + "# return value\n", + "\n", + "import numpy as np\n", + "\n", + "def convert_to_list_and_keep_longest(value):\n", + " try:\n", + " # Convert numpy arrays to lists\n", + " if isinstance(value, np.ndarray):\n", + " value = value.tolist()\n", + "\n", + " # Already a list? Great.\n", + " if isinstance(value, list) and len(value) > 0:\n", + " str_items = [str(v) for v in value if v not in [None, \"\"]]\n", + " if str_items:\n", + " return max(str_items, key=len)\n", + "\n", + " # Fallback — just return original\n", + " return value\n", + " \n", + " except Exception as e:\n", + " print(f\"⚠️ Error: {e} — value: {value}\")\n", + " raise\n", + "\n", + "\n", + "# Apply the function to your column\n", + "given_final_cohort_inp_ed_only.drop(columns=['hosp_ward_IP', 'hosp_ward_OP', 'hosp_ward_ER', 'hosp_ward_ICU'], inplace=True)\n", + "given_final_cohort_inp_ed_only[\"final_antibiotic\"] = given_final_cohort_inp_ed_only[\"cleaned_antibiotic\"].apply(convert_to_list_and_keep_longest).replace(cleaning_mapping)\n", + "given_final_cohort_inp_ed_only = given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"result_time_jittered_utc\", \"final_antibiotic\"])" + ] }, { "cell_type": "code", - "execution_count": 286, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ - "final_implied_cohort.to_csv('../csv_folder/final_implied_cohort_peds.csv', index=False)" + "given_final_cohort_inp_ed_only.to_csv('../csv_folder/final_cohort_for_analysis_peds_ed.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 263, + "execution_count": 48, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibioticfinal_antibiotic
0JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 08:20:00+00:00CEPHALEXIN 250 MG PO CAPS387591109Given[Cephalexin]Cephalexin/Cephalothin
1JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 09:23:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS387591245Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
2JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Inpatient2009-11-10 00:18:23+00:00CEFTRIAXONE PEDIATRIC IM INJECTION359621059Given[Ceftriaxone]Ceftriaxone
3JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Inpatient2010-10-28 08:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P...375117174Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
4JC10021791310724412874573167542015-01-25 11:53:00+00:002015-01-27 16:14:00+00:00Inpatient2015-01-25 13:13:00+00:00AZITHROMYCIN 200 MG/5 ML PO SUSR457317321Given[Azithromycin]Azithromycin
.......................................
15393JC9951271310868403664645682212015-06-09 20:06:00+00:002015-06-11 21:13:00+00:00Inpatient2015-06-09 22:52:00+00:00CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS464581655Given[Ceftriaxone]Ceftriaxone
15394JC9966401310120819593776179022011-01-22 04:42:00+00:002011-02-06 01:21:00+00:00Inpatient2011-01-22 01:36:50+00:00CEFTRIAXONE PEDIATRIC IV INFUSION377610820Given[Ceftriaxone]Ceftriaxone
15395JC9966501310122479163782938712011-01-31 10:14:00+00:002011-02-02 16:40:00+00:00Inpatient2011-01-31 11:48:37+00:00CEPHALEXIN 250 MG/5 ML PO SUSR378294668Given[Cephalexin]Cephalexin/Cephalothin
15409JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Inpatient2010-04-15 06:23:22+00:00CEPHALEXIN 250 MG/5 ML PO SUSR364620837Given[Cephalexin]Cephalexin/Cephalothin
15412JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 22:21:00+00:00PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B...443088906Given[Piperacillin-Tazobactam]Piperacillin/Tazobactam
\n", - "

7217 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000924 131014644911 387581858 \n", - "1 JC1000924 131014644911 387581858 \n", - "2 JC1001971 131007652469 359619675 \n", - "3 JC1001971 131011493486 375107375 \n", - "4 JC1002179 131072441287 457316754 \n", - "... ... ... ... \n", - "15393 JC995127 131086840366 464568221 \n", - "15394 JC996640 131012081959 377617902 \n", - "15395 JC996650 131012247916 378293871 \n", - "15409 JC999518 131008782853 364618856 \n", - "15412 JC999859 131038386282 443088092 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "1 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "2 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 Inpatient \n", - "3 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 Inpatient \n", - "4 2015-01-25 11:53:00+00:00 2015-01-27 16:14:00+00:00 Inpatient \n", - "... ... ... ... \n", - "15393 2015-06-09 20:06:00+00:00 2015-06-11 21:13:00+00:00 Inpatient \n", - "15394 2011-01-22 04:42:00+00:00 2011-02-06 01:21:00+00:00 Inpatient \n", - "15395 2011-01-31 10:14:00+00:00 2011-02-02 16:40:00+00:00 Inpatient \n", - "15409 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 Inpatient \n", - "15412 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2011-07-25 08:20:00+00:00 \n", - "1 2011-07-25 09:23:00+00:00 \n", - "2 2009-11-10 00:18:23+00:00 \n", - "3 2010-10-28 08:00:00+00:00 \n", - "4 2015-01-25 13:13:00+00:00 \n", - "... ... \n", - "15393 2015-06-09 22:52:00+00:00 \n", - "15394 2011-01-22 01:36:50+00:00 \n", - "15395 2011-01-31 11:48:37+00:00 \n", - "15409 2010-04-15 06:23:22+00:00 \n", - "15412 2014-08-04 22:21:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 CEPHALEXIN 250 MG PO CAPS 387591109 \n", - "1 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 387591245 \n", - "2 CEFTRIAXONE PEDIATRIC IM INJECTION 359621059 \n", - "3 SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P... 375117174 \n", - "4 AZITHROMYCIN 200 MG/5 ML PO SUSR 457317321 \n", - "... ... ... \n", - "15393 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 464581655 \n", - "15394 CEFTRIAXONE PEDIATRIC IV INFUSION 377610820 \n", - "15395 CEPHALEXIN 250 MG/5 ML PO SUSR 378294668 \n", - "15409 CEPHALEXIN 250 MG/5 ML PO SUSR 364620837 \n", - "15412 PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B... 443088906 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Cephalexin] \n", - "1 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "2 Given [Ceftriaxone] \n", - "3 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "4 Given [Azithromycin] \n", - "... ... ... \n", - "15393 Given [Ceftriaxone] \n", - "15394 Given [Ceftriaxone] \n", - "15395 Given [Cephalexin] \n", - "15409 Given [Cephalexin] \n", - "15412 Given [Piperacillin-Tazobactam] \n", - "\n", - " final_antibiotic \n", - "0 Cephalexin/Cephalothin \n", - "1 Trimethoprim/Sulfamethoxazole \n", - "2 Ceftriaxone \n", - "3 Trimethoprim/Sulfamethoxazole \n", - "4 Azithromycin \n", - "... ... \n", - "15393 Ceftriaxone \n", - "15394 Ceftriaxone \n", - "15395 Cephalexin/Cephalothin \n", - "15409 Cephalexin/Cephalothin \n", - "15412 Piperacillin/Tazobactam \n", - "\n", - "[7217 rows x 12 columns]" - ] - }, - "execution_count": 263, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "the unique order number for final_cohort is 6465\n", + "the unique order number from final cohort that has more than one medication is 697\n" + ] } ], "source": [ - "given_final_cohort_inp_ed_only" + "group_counts = given_final_cohort_inp_ed_only.groupby(\n", + " ['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc']\n", + ")['final_antibiotic'].transform('count')\n", + "\n", + "# Filter rows where group count is greater than 1\n", + "group_counts_df= given_final_cohort_inp_ed_only[group_counts > 1]\n", + "sorted_group_counts_df = group_counts_df.sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\n", + "\n", + "print(\"the unique order number for final_cohort is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only)))\n", + "print(\"the unique order number from final cohort that has more than one medication is {}\".format(find_unique_orders(sorted_group_counts_df)))" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# read impliced_susceptibility rules\n", + "implied_suspectibility = pd.read_csv('../csv_folder/implied_susceptibility_rules.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Include implied-susceptibility rules" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step 1: Check for inherent resistance" ] }, { "cell_type": "code", - "execution_count": 287, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ - "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" + "import re\n", + "with_implied_susceptibility_starting_cohort = starting_cohort.copy()\n", + "with_implied_susceptibility_starting_cohort[\"susceptibility_source\"] = \"original\"\n", + "# Get unique organisms from implied_susceptibility\n", + "bacteria = implied_suspectibility[\"Organism\"].dropna().unique().tolist()\n", + "\n", + "# Create regex pattern and find matches\n", + "pattern = '|'.join([re.escape(org) for org in bacteria])\n", + "matches = with_implied_susceptibility_starting_cohort[\"organism\"].str.contains(pattern, case=False, na=False)\n", + "\n", + "# Add a new column showing WHICH organism was matched\n", + "def find_matched_organism(org_name):\n", + " org_name = str(org_name).upper()\n", + " for bact in bacteria:\n", + " if re.search(re.escape(bact), org_name, re.IGNORECASE):\n", + " return bact\n", + " return None\n", + "\n", + "with_implied_susceptibility_starting_cohort['matched_organism'] \\\n", + " = with_implied_susceptibility_starting_cohort['organism'].apply(find_matched_organism)\n" ] }, { "cell_type": "code", - "execution_count": 288, + "execution_count": 51, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "7215" - ] - }, - "execution_count": 288, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "len(merged_culture_med.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"final_antibiotic\"]))" + "inherent_resistance = implied_suspectibility[\n", + " implied_suspectibility['Implied_Agent'].isna()\n", + "][['Organism', 'Antibiotic']].drop_duplicates()\n", + "resistant_to_add = pd.merge(\n", + " with_implied_susceptibility_starting_cohort[['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded',\n", + " 'order_time_jittered_utc', 'result_time_jittered_utc', 'ordering_mode',\n", + " 'culture_description', 'was_positive', 'organism', \"matched_organism\"]].drop_duplicates(),\n", + " inherent_resistance,\n", + " left_on='matched_organism',\n", + " right_on='Organism',\n", + " how='inner'\n", + ")\n", + "resistant_to_add = resistant_to_add.rename(columns={'Antibiotic': 'antibiotic'})\n", + "resistant_to_add['susceptibility'] = 'Resistant'\n", + "resistant_to_add['susceptibility_source'] = 'inherent_resistance'\n", + "cols_to_keep = with_implied_susceptibility_starting_cohort.columns\n", + "added_resistant_cohort = (pd.concat([\n", + " with_implied_susceptibility_starting_cohort,\n", + " resistant_to_add[cols_to_keep]\n", + "], ignore_index=True))\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')\\\n", + " .sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])# Keeps our new resistant records if duplicates exist" ] }, { "cell_type": "code", - "execution_count": 281, + "execution_count": 236, "metadata": {}, "outputs": [], "source": [ - "# merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis.csv', index=False)" + "# duplicate_check = added_resistant_cohort.duplicated(\n", + "# subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility'],\n", + "# keep=False # Mark all duplicates as True\n", + "# )\n", + "\n", + "# # Step 2: Create a separate dataframe with just duplicates\n", + "# duplicates_df = added_resistant_cohort[duplicate_check].sort_values(\n", + "# by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + "# 'organism', 'antibiotic', 'susceptibility']\n", + "# )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step 2: Check for implied susceptibility" ] }, { "cell_type": "code", - "execution_count": 236, + "execution_count": 52, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "while the unique culture order is 6466, the number of medication to evaluate is 7217\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" + "implied_agent_rules = implied_suspectibility[\n", + " implied_suspectibility['Implied_Agent'].notna()\n", + "][['Organism', 'Antibiotic', 'Implied_Agent']].drop_duplicates()\n", + "implied_to_process = pd.merge(\n", + " added_resistant_cohort.drop(columns = ['susceptibility_source']),\n", + " implied_agent_rules,\n", + " left_on=['matched_organism', 'antibiotic'],\n", + " right_on=['Organism', 'Implied_Agent'],\n", + " how='inner'\n", + ").rename(columns={'antibiotic': 'antibiotic_to_drop', 'Antibiotic': 'antibiotic'}).drop(columns =['antibiotic_to_drop', 'Organism', 'Implied_Agent'])\n", + "implied_to_process['susceptibility_source'] = 'implied'\n", + "cols_to_keep = added_resistant_cohort.columns\n", + "final_implied_cohort = (pd.concat([\n", + " added_resistant_cohort,\n", + " implied_to_process[cols_to_keep]\n", + "], ignore_index=True)).sort_values(by=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc'])\\\n", + " .drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', \n", + " 'organism', 'antibiotic', 'susceptibility'], keep='first')" ] }, { "cell_type": "code", - "execution_count": 290, + "execution_count": 54, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcordering_modemedication_timemedication_nameorder_med_id_codedmedication_actioncleaned_antibioticfinal_antibiotic
0JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 08:20:00+00:00CEPHALEXIN 250 MG PO CAPS387591109Given[Cephalexin]Cephalexin/Cephalothin
1JC10009241310146449113875818582011-07-25 05:14:00+00:002011-07-27 02:24:00+00:00Inpatient2011-07-25 09:23:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS387591245Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
2JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Inpatient2009-11-10 00:18:23+00:00CEFTRIAXONE PEDIATRIC IM INJECTION359621059Given[Ceftriaxone]Ceftriaxone
3JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Inpatient2010-10-28 08:00:00+00:00SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P...375117174Given[Sulfamethoxazole-Trimethoprim, Trimethoprim]Trimethoprim/Sulfamethoxazole
4JC10021791310724412874573167542015-01-25 11:53:00+00:002015-01-27 16:14:00+00:00Inpatient2015-01-25 13:13:00+00:00AZITHROMYCIN 200 MG/5 ML PO SUSR457317321Given[Azithromycin]Azithromycin
.......................................
15393JC9951271310868403664645682212015-06-09 20:06:00+00:002015-06-11 21:13:00+00:00Inpatient2015-06-09 22:52:00+00:00CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS464581655Given[Ceftriaxone]Ceftriaxone
15394JC9966401310120819593776179022011-01-22 04:42:00+00:002011-02-06 01:21:00+00:00Inpatient2011-01-22 01:36:50+00:00CEFTRIAXONE PEDIATRIC IV INFUSION377610820Given[Ceftriaxone]Ceftriaxone
15395JC9966501310122479163782938712011-01-31 10:14:00+00:002011-02-02 16:40:00+00:00Inpatient2011-01-31 11:48:37+00:00CEPHALEXIN 250 MG/5 ML PO SUSR378294668Given[Cephalexin]Cephalexin/Cephalothin
15409JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Inpatient2010-04-15 06:23:22+00:00CEPHALEXIN 250 MG/5 ML PO SUSR364620837Given[Cephalexin]Cephalexin/Cephalothin
15412JC9998591310383862824430880922014-08-04 20:55:00+00:002014-08-07 00:58:00+00:00Inpatient2014-08-04 22:21:00+00:00PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B...443088906Given[Piperacillin-Tazobactam]Piperacillin/Tazobactam
\n", - "

7217 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1000924 131014644911 387581858 \n", - "1 JC1000924 131014644911 387581858 \n", - "2 JC1001971 131007652469 359619675 \n", - "3 JC1001971 131011493486 375107375 \n", - "4 JC1002179 131072441287 457316754 \n", - "... ... ... ... \n", - "15393 JC995127 131086840366 464568221 \n", - "15394 JC996640 131012081959 377617902 \n", - "15395 JC996650 131012247916 378293871 \n", - "15409 JC999518 131008782853 364618856 \n", - "15412 JC999859 131038386282 443088092 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc ordering_mode \\\n", - "0 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "1 2011-07-25 05:14:00+00:00 2011-07-27 02:24:00+00:00 Inpatient \n", - "2 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 Inpatient \n", - "3 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 Inpatient \n", - "4 2015-01-25 11:53:00+00:00 2015-01-27 16:14:00+00:00 Inpatient \n", - "... ... ... ... \n", - "15393 2015-06-09 20:06:00+00:00 2015-06-11 21:13:00+00:00 Inpatient \n", - "15394 2011-01-22 04:42:00+00:00 2011-02-06 01:21:00+00:00 Inpatient \n", - "15395 2011-01-31 10:14:00+00:00 2011-02-02 16:40:00+00:00 Inpatient \n", - "15409 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 Inpatient \n", - "15412 2014-08-04 20:55:00+00:00 2014-08-07 00:58:00+00:00 Inpatient \n", - "\n", - " medication_time \\\n", - "0 2011-07-25 08:20:00+00:00 \n", - "1 2011-07-25 09:23:00+00:00 \n", - "2 2009-11-10 00:18:23+00:00 \n", - "3 2010-10-28 08:00:00+00:00 \n", - "4 2015-01-25 13:13:00+00:00 \n", - "... ... \n", - "15393 2015-06-09 22:52:00+00:00 \n", - "15394 2011-01-22 01:36:50+00:00 \n", - "15395 2011-01-31 11:48:37+00:00 \n", - "15409 2010-04-15 06:23:22+00:00 \n", - "15412 2014-08-04 22:21:00+00:00 \n", - "\n", - " medication_name order_med_id_coded \\\n", - "0 CEPHALEXIN 250 MG PO CAPS 387591109 \n", - "1 SULFAMETHOXAZOLE-TRIMETHOPRIM 400-80 MG PO TABS 387591245 \n", - "2 CEFTRIAXONE PEDIATRIC IM INJECTION 359621059 \n", - "3 SULFAMETHOXAZOLE-TRIMETHOPRIM 200-40 MG/5 ML P... 375117174 \n", - "4 AZITHROMYCIN 200 MG/5 ML PO SUSR 457317321 \n", - "... ... ... \n", - "15393 CEFTRIAXONE 1 GRAM/50 ML MINI-BAG PLUS 464581655 \n", - "15394 CEFTRIAXONE PEDIATRIC IV INFUSION 377610820 \n", - "15395 CEPHALEXIN 250 MG/5 ML PO SUSR 378294668 \n", - "15409 CEPHALEXIN 250 MG/5 ML PO SUSR 364620837 \n", - "15412 PIPERACILLIN-TAZOBACTAM 4.5 GRAM/100 ML MINI-B... 443088906 \n", - "\n", - " medication_action cleaned_antibiotic \\\n", - "0 Given [Cephalexin] \n", - "1 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "2 Given [Ceftriaxone] \n", - "3 Given [Sulfamethoxazole-Trimethoprim, Trimethoprim] \n", - "4 Given [Azithromycin] \n", - "... ... ... \n", - "15393 Given [Ceftriaxone] \n", - "15394 Given [Ceftriaxone] \n", - "15395 Given [Cephalexin] \n", - "15409 Given [Cephalexin] \n", - "15412 Given [Piperacillin-Tazobactam] \n", - "\n", - " final_antibiotic \n", - "0 Cephalexin/Cephalothin \n", - "1 Trimethoprim/Sulfamethoxazole \n", - "2 Ceftriaxone \n", - "3 Trimethoprim/Sulfamethoxazole \n", - "4 Azithromycin \n", - "... ... \n", - "15393 Ceftriaxone \n", - "15394 Ceftriaxone \n", - "15395 Cephalexin/Cephalothin \n", - "15409 Cephalexin/Cephalothin \n", - "15412 Piperacillin/Tazobactam \n", - "\n", - "[7217 rows x 12 columns]" - ] - }, - "execution_count": 290, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "given_final_cohort_inp_ed_only.drop_duplicates(subset=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"final_antibiotic\"])" + "final_implied_cohort.to_csv('../csv_folder/final_implied_cohort_peds.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 291, + "execution_count": 56, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the number of unique medications to be evaluated is 7217\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"the number of unique medications to be evaluated is {}\"\\\n", - " .format(len(given_final_cohort_inp_ed_only.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))))" + "merged_culture_med = given_final_cohort_inp_ed_only.drop(columns = [\"cleaned_antibiotic\"]).merge(final_implied_cohort, on=['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', 'result_time_jittered_utc'], how='inner')" ] }, { "cell_type": "code", - "execution_count": 373, + "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0.5442504189868628, 0.4557495810131373)" + "7215" ] }, - "execution_count": 373, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# negative rate\n", - "10067/18497, 8430/18497" + "len(merged_culture_med.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc',\"final_antibiotic\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "merged_culture_med.to_csv('../csv_folder/merged_culture_med_analysis_peds_ed.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "while the unique culture order is 6465, the number of medication to evaluate is 7215\n" + ] + } + ], + "source": [ + "print(\"while the unique culture order is {}, the number of medication to evaluate is {}\".format(find_unique_orders(given_final_cohort_inp_ed_only), len(given_final_cohort_inp_ed_only)))" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "# Incorporate antibiotic ranking to both prescribe and tested antibioti" + "# Incorporate antibiotic ranking to both prescribe and tested antibiotic" ] }, { "cell_type": "code", - "execution_count": 292, + "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9511bd63db964139baad5875919905bf", + "model_id": "9453ea4b767e4d9bb4300b1ae63a1cd9", "version_major": 2, "version_minor": 0 }, @@ -5222,7 +2608,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4979cf9e5b164eb1ad10cb9c1e8a1ffb", + "model_id": "6d22e1361c804b31a11842fb5f4ae3b9", "version_major": 2, "version_minor": 0 }, @@ -5241,7 +2627,7 @@ }, { "cell_type": "code", - "execution_count": 293, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ @@ -5253,20 +2639,21 @@ " left_on=['antibiotic'], right_on=['antibiotic_agent'], how='left')\\\n", " .rename(columns={'spectrum_ranking': 'tested_antibiotic_rank',\n", " 'ordering_mode_x': 'ordering_mode'})\\\n", - " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])" + " .drop(columns = ['antibiotic_agent', 'spectrum','ordering_mode_y'])\n", + "with_tested_and_prescribed_abx_rank_df = with_tested_and_prescribed_abx_rank_df[with_tested_and_prescribed_abx_rank_df[\"presciribed_antibiotic_rank\"] != 99]" ] }, { "cell_type": "code", - "execution_count": 295, + "execution_count": 66, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the unique order number for negative cohort is 4108\n", - "the unique order number for positive cohort is 2357\n" + "the unique order number for negative cohort is 4107\n", + "the unique order number for positive cohort is 2356\n" ] } ], @@ -5279,36 +2666,36 @@ }, { "cell_type": "code", - "execution_count": 296, + "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "7215" + "7212" ] }, - "execution_count": 296, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(merged_culture_med.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" + "len(with_tested_and_prescribed_abx_rank_df.groupby(['anon_id', 'pat_enc_csn_id_coded', 'order_proc_id_coded', 'order_time_jittered_utc', \"final_antibiotic\"]))" ] }, { "cell_type": "code", - "execution_count": 297, + "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "4646" + "4645" ] }, - "execution_count": 297, + "execution_count": 89, "metadata": {}, "output_type": "execute_result" } @@ -5319,16 +2706,16 @@ }, { "cell_type": "code", - "execution_count": 298, + "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2569" + "2567" ] }, - "execution_count": 298, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -5339,31 +2726,24 @@ }, { "cell_type": "code", - "execution_count": 299, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "7215" + "7212" ] }, - "execution_count": 299, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "4646 + 2569" + "4645 + 2567" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 241, @@ -5435,7 +2815,7 @@ }, { "cell_type": "code", - "execution_count": 311, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -5509,26 +2889,27 @@ " results,\n", " on=[\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", " \"order_time_jittered_utc\", \"result_time_jittered_utc\", \"final_antibiotic\"]\n", - ")" + ")\n", + "final_cohort_with_evaluation.drop(columns = ['ordering_mode', 'culture_description',\"order_med_id_coded\", \"was_positive\"], inplace=True)" ] }, { "cell_type": "code", - "execution_count": 312, + "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "scenario\n", - "not_performed 1213\n", + "not_performed 1211\n", "too_broad 756\n", "resistant 409\n", "appropriate 191\n", "Name: count, dtype: int64" ] }, - "execution_count": 312, + "execution_count": 88, "metadata": {}, "output_type": "execute_result" } @@ -5537,283 +2918,6 @@ "results[\"scenario\"].value_counts()" ] }, - { - "cell_type": "code", - "execution_count": 313, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idpat_enc_csn_id_codedorder_proc_id_codedorder_time_jittered_utcresult_time_jittered_utcfinal_antibioticscenarioranking_diffmin_susceptible_test_rankmin_tested_susceptible_abxprescribed_rank
0JC10019711310076524693596196752009-11-09 22:23:00+00:002009-11-11 19:30:00+00:00Ceftriaxonenot_performedN/A1Cefazolin3
1JC10019711310114934863751073752010-10-28 06:49:00+00:002010-10-30 05:01:00+00:00Trimethoprim/Sulfamethoxazoletoo_broad11Cephalexin/Cephalothin2
2JC10052411310167542423941899282012-01-17 10:45:00+00:002012-01-19 19:00:00+00:00Ceftriaxonenot_performedN/A1Oxacillin3
3JC10052411310198043624044835662012-08-09 05:10:00+00:002012-08-11 19:24:00+00:00CeftriaxoneresistantN/A1Ampicillin3
4JC10074431310087672493645673452010-04-06 05:10:00+00:002010-04-08 16:39:00+00:00Ceftriaxonenot_performedN/A1Cefazolin3
....................................
2564JC9922651312944467336817222022020-09-03 05:15:00+00:002020-09-06 22:13:00+00:00Ciprofloxacintoo_broad12Amoxicillin/Clavulanic Acid3
2565JC9941331310105919093716784742010-09-14 07:14:00+00:002010-09-16 15:50:00+00:00Cephalexin/CephalothinresistantN/A2Trimethoprim/Sulfamethoxazole1
2566JC9944561312826697296501321542020-02-21 23:00:00+00:002020-02-23 18:24:00+00:00Ceftriaxonetoo_broad21Cefazolin3
2567JC9951271310868403664645682212015-06-09 20:06:00+00:002015-06-11 21:13:00+00:00CeftriaxoneresistantN/A2Nitrofurantoin3
2568JC9995181310087828533646188562010-04-15 04:56:00+00:002010-04-18 15:47:00+00:00Cephalexin/Cephalothinappropriate01Cephalexin/Cephalothin1
\n", - "

2569 rows × 11 columns

\n", - "
" - ], - "text/plain": [ - " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "0 JC1001971 131007652469 359619675 \n", - "1 JC1001971 131011493486 375107375 \n", - "2 JC1005241 131016754242 394189928 \n", - "3 JC1005241 131019804362 404483566 \n", - "4 JC1007443 131008767249 364567345 \n", - "... ... ... ... \n", - "2564 JC992265 131294446733 681722202 \n", - "2565 JC994133 131010591909 371678474 \n", - "2566 JC994456 131282669729 650132154 \n", - "2567 JC995127 131086840366 464568221 \n", - "2568 JC999518 131008782853 364618856 \n", - "\n", - " order_time_jittered_utc result_time_jittered_utc \\\n", - "0 2009-11-09 22:23:00+00:00 2009-11-11 19:30:00+00:00 \n", - "1 2010-10-28 06:49:00+00:00 2010-10-30 05:01:00+00:00 \n", - "2 2012-01-17 10:45:00+00:00 2012-01-19 19:00:00+00:00 \n", - "3 2012-08-09 05:10:00+00:00 2012-08-11 19:24:00+00:00 \n", - "4 2010-04-06 05:10:00+00:00 2010-04-08 16:39:00+00:00 \n", - "... ... ... \n", - "2564 2020-09-03 05:15:00+00:00 2020-09-06 22:13:00+00:00 \n", - "2565 2010-09-14 07:14:00+00:00 2010-09-16 15:50:00+00:00 \n", - "2566 2020-02-21 23:00:00+00:00 2020-02-23 18:24:00+00:00 \n", - "2567 2015-06-09 20:06:00+00:00 2015-06-11 21:13:00+00:00 \n", - "2568 2010-04-15 04:56:00+00:00 2010-04-18 15:47:00+00:00 \n", - "\n", - " final_antibiotic scenario ranking_diff \\\n", - "0 Ceftriaxone not_performed N/A \n", - "1 Trimethoprim/Sulfamethoxazole too_broad 1 \n", - "2 Ceftriaxone not_performed N/A \n", - "3 Ceftriaxone resistant N/A \n", - "4 Ceftriaxone not_performed N/A \n", - "... ... ... ... \n", - "2564 Ciprofloxacin too_broad 1 \n", - "2565 Cephalexin/Cephalothin resistant N/A \n", - "2566 Ceftriaxone too_broad 2 \n", - "2567 Ceftriaxone resistant N/A \n", - "2568 Cephalexin/Cephalothin appropriate 0 \n", - "\n", - " min_susceptible_test_rank min_tested_susceptible_abx \\\n", - "0 1 Cefazolin \n", - "1 1 Cephalexin/Cephalothin \n", - "2 1 Oxacillin \n", - "3 1 Ampicillin \n", - "4 1 Cefazolin \n", - "... ... ... \n", - "2564 2 Amoxicillin/Clavulanic Acid \n", - "2565 2 Trimethoprim/Sulfamethoxazole \n", - "2566 1 Cefazolin \n", - "2567 2 Nitrofurantoin \n", - "2568 1 Cephalexin/Cephalothin \n", - "\n", - " prescribed_rank \n", - "0 3 \n", - "1 2 \n", - "2 3 \n", - "3 3 \n", - "4 3 \n", - "... ... \n", - "2564 3 \n", - "2565 1 \n", - "2566 3 \n", - "2567 3 \n", - "2568 1 \n", - "\n", - "[2569 rows x 11 columns]" - ] - }, - "execution_count": 313, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "results" - ] - }, { "cell_type": "code", "execution_count": 316, @@ -5896,12 +3000,12 @@ }, { "cell_type": "code", - "execution_count": 303, + "execution_count": 91, "metadata": {}, "outputs": [ { "data": { - "image/png": "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n376SU2bNs3HmiK73B3/Pfjgg3rzzTd18OBB9enTR3v27NGOHTv0j3/8Qz/88IM8PT2zPK3Y2FhJUmhoqNsy58+fNx8FSa8cip5i+2iGXenSpTVu3Djz/9WrV+djbSQvLy9FRERowYIFkm5exRk4cKDbZ6qKutatW2vHjh2qUaOGJGnJkiVavnx5/lYKyIQyZco4hZrbt2/Px9oUfqdPn9aaNWskSU899ZSeeuopSTefP12xYkV+Vg2FTIcOHcwTqEOHDik+Pj6fawQUfNWrV9eLL75o/v/999/nY22Qlxo2bKgtW7borrvukiRt3rxZn3zySbbGlZSUJEkqVapUhmUyKoeip9gHEdLNq5d2f/75Zz7W5H+eeOIJPfbYY5JuHoC7ewzi999/18svv6w77rhDvr6+8vT0VGBgoJo0aaKnn35an3/+udMGXhhVqlRJn376qfn/hAkT8rE27h07dkyDBw9Ww4YNVbZsWZUpU0YhISF67rnnnB7HceXWhhrXrl2rhx9+WNWqVZO3t7dq166tl156SSdPnrRgTvJXTpaj3f79+/Xss88qJCREZcqUUdmyZdWwYUMNHjzY0lvZHd+I4CpMdNXmwJdffqkuXbooMDBQHh4eLhsN/eabb8xnOL28vFSxYkW1atVKEydOVEJCQrp1OnLkiKZOnaqHHnpIwcHBKl26tEqXLq2goCA98cQT+u677zI1b1evXtW4cePUuHFj+fj4qGLFimrTpo1mzJiRJw3M/uc//9GNGzdUokQJPfnkk2rRooV55cR+p0R6bn27xKFDhzRw4EAFBwfLy8tLVapU0aOPPqpt27a5HN5ms6lWrVrm/wMGDEi3odWstq0QGxurIUOGKDQ0VGXKlFHlypXVpUuXDMPxzL41I6vrjH3dvO+++8xu9913X5p5dmwrI7Ot1KempmrRokXq3r27atasqdKlS6tixYpq3Lixnn76aX333Xc5fi45Ixltm7e+gSIuLk5vv/227rrrLpUrV85tOyHff/+9evfurVq1aql06dLy8/NT48aNFRERof/+97/p1unAgQMaO3asOnfubH5Pvr6+CgkJUb9+/dyum1nx888/q1q1arLZbKpSpYrL1ugvXryooUOHql69eipdurQCAgJ0//3364svvsjStLKzL9+5c6e53KOiolyWuf/++80yU6dOdVnmtddek81mU0BAgNOt4662yyVLlqhDhw6qXLmySpcurdtvv10RERH666+/sjS/Gfntt9/07LPPqlatWvL29la1atX02GOP6ccff3RZfsiQIWZjgvaryulp2rSpbDabbr/99lytt6O//e1v5t8nTpxwWSYxMVGff/65wsPD1aRJE/n7+6tUqVKqXLmywsLCNGXKlAx/p27dp+7cuVO9evUyt4vq1aurT58++vXXX3M0PydOnFC9evVks9nk6+vrFK5k9c1Hly5d0siRI9WwYUP5+PioXLlyuvfee/Wf//wnU3VZsWKFOnfurEqVKqlMmTIKDQ3VP//5T50+fVqS9W9IKl26tD777DNzHzhlyhSXDUhm9PtnP6+aN29emgbR7fvZ9H5bXTVgnpKSolmzZpnHSl5eXqpUqZLuvfdeTZs2Ld2Lt+1ueZtNTEyMXnrpJfN40dXvV25Oz/5bX7duXfO3r3Pnzpm+EH7u3DmNGTNGbdq0UUBAgLy8vFSjRg21adNGY8aM0W+//eZ22JzMh3SzQdFnnnlGoaGh8vHxkbe3t2rUqKGmTZvqxRdf1IoVK7L+OJNRhK1fv96QZEgyIiMj3Za7evWqWa5evXpO/ebMmWP2mzNnTrbrEhYWZo4ns7Zu3WoO07FjxzT9lyxZYnh6eppl3H3279+f7Xrfyj7OsLCwbI8jO8s0NTXVuP32283hYmNj05SJjIzMle8qO/WdN2+e4eXl5fY7KFmypDF+/Hi303BcT0eNGuV2PH5+fsaGDRtyND+Z2SbyghXL0TAMY/z48UaJEiXcjsPLy8uYN29ejuYls9vBRx99ZJZdtGhRmv5Hjx41+8+ePdvo06dPmvo6TuPq1avGo48+mu72HhgYaOzZs8dlfY4cOZLh/kKS0bt3byM5OdntfMXGxhr16tVzO/wDDzxgREVFmf+vX78+E0s1fXfeeachyWjfvr3ZbfTo0YYkw8PDwzhz5ky6wwcFBRmSjH79+hnLli0zypQp43YdW7x4cZrhM7PcHLcpx98fV/Pfr18/Q5IRFBRk7Ny50wgICHA73ldffTVT8+VKdtcZx3UzvY/jtuy4jR89etRlfY4ePWo0adIkw/FmZ53Jym9Ls2bNDEmGt7e3kZqamqa/4+/J77//bgQHB6c77wkJCRkuZ19fX+Obb75xWR/H9SW9z9ChQ93Ok2OdXdm8ebNRrlw5c737/fff05Q5ePCgUa1aNbfTf/rppzP1PWd3X56SkmL4+fkZkow333wzTf+kpCSnbbdr164up9+4cWNDktG9e3en7o7Lee3atcaTTz7pto5169Y1/vvf/7ocf2bYj/vCwsKMVatWGT4+Pi6nU6JECWPq1Klphj948KBZZsKECelOa9++fZku64rjupPetrd69Wqz3CuvvOKyjOPxrrtPrVq1jF9//dXtdBz3qR9++KHh4eHhcjxlypRxe0yU0Xp66NAho0aNGoYko3z58saPP/7o1D8r+/Bff/3V5T7C/nnxxRfdzmtqaqrx3HPPuR22atWqxu7duzPc12cks+dEt+rUqZM53JYtW9L0dzXOzOzPwsLCnNY7d59b6/rHH38YDRo0SHeYkJAQl/s3w3DeLpcvX+5yu3RcX3Jzeps2bTIqVqzodjzvvPNOut/FggUL3O5H7J+goCCXw+Z0Pt599910j63tn8uXL6c7D7ciiDAMY/v27WY5x4Ncw8jfIOLGjRtG2bJlDenmAYzjicHp06fNlTEgIMAYM2aMsWbNGmP37t3G1q1bjQULFhjPPvusUalSpSIRRBiGYbzwwgvmcK5OFPIriPj2228Nm81mfk+RkZHGpk2bjB9//NGYOnWqUalSJXP4Tz75xOU07P3tB8e33367MWvWLGPnzp3G2rVrjeeee87cAZQtW9Y4duxYtufHPq0GDRoYoaGhhre3t+Hr62vUrVvX6Nu3r7Fu3bpsjzs9VizHjz/+2CxTuXJlY8qUKcaPP/5obN682Rg1apS5zdhsNmPlypXZnpfMbAdXrlwxd/plypQxzp49m6aM48me/UT7nnvuMRYuXGjs2rXLWLt2rTFz5kyz/OOPP26Wb9y4sTF//nxj586dRlRUlDFgwABz+VWoUME4efJkmunFxMQYnp6exkMPPWR88MEHxtq1a43du3cba9euNT755BOjYcOG5vhHjhzpcr6Sk5ONu+66yyzXqVMn46uvvjJ27dplfPnll8b9999vSDKaN29ulslpELF3715zXLNnzza7Hz582Oz+3nvvpTsO+0HcXXfdZXh7exu1atUyPvroI2Pbtm3Gjz/+aIwaNcrw9vY2pJuB363f1/79+53ClbFjxxr79+93+jiGIZk9iK1cubIRHBxseHl5GUOHDjU2btxobN++3fjggw+cTghdnag4zpe7g9PsrjPXr1839u/fb8yePdtp2d86zxcvXjSHyejA//Tp00ZgYKDT7+28efOM7du3Gzt27DA+//xz47nnnjMqVKiQp0HEunXrzP3pY4895rKM4+/JnXfeaZQqVcp4+eWXje+//97YtWuXsWjRImPr1q2GYdw8eb7vvvvMfUuvXr2ML774wti1a5fx448/Gu+//75Rs2ZNQ5Lh6elp7Nq1K830vv/+e8PHx8d4/PHHjU8//dSIjo42du/ebXz33XfG1KlTze/51m3AXZ1vtWrVKvMEvn79+saJEyfSlLl06ZJx2223meN44oknjFWrVhm7du0yFi5caP4+OW7brr7nnO7LH3zwQUOScffdd6fpt2nTJqeDXn9/fyMlJcWpzF9//WV+vx9++KFTP8ftsnXr1oYko1u3bsaXX35p/PTTT8aqVauMrl27mmV69uzpcllnhv24LyQkxChXrpzh7+9vjB8/3ti6dauxdetWY9y4cWboIslYtmxZmnG0atXKkGSEhoamO63XXnvNkG4GPKdOncpyXTMbREydOtUs9+6777os06ZNG6NRo0bG8OHDja+++srYvn27sW3bNuPzzz83evbsaX43t99+u3H16lWX47BPo2XLlobNZjMaN25szJ4929i5c6exceNGY/DgweZ4atasaSQlJaUZR3r7o127dpnrYbVq1VweJ2dlHx4SEmKULVvWGDFihBEdHW3s2rXLmDFjhtP29N1337mc1/Hjx5tlbrvtNuOjjz4ytm/fbmzcuNEYPny4Ubp0aaN27dpG5cqV093XZyS7QcTkyZPN4SZOnJimv6txJiQkmL8R9n3+I4884vTbceTIEePMmTMZ/rY6/q6eOnXKqFKlinks/PrrrxurV682du/ebaxfv94YNmyYuZ+rXbu2cenSpTT1tW+XtWrVMnx9fY3KlSsbEydONLZs2WJs27bN+PDDD41z587l+vRCQ0ONSpUqGQEBAcbEiRONzZs3Gzt27DDeffddMyD28PAwDhw44PJ7mDdvnrmMvL29jZdfftlYtWqVsXv3bmPjxo3GRx99ZHTu3NmoXbt2mmFzOh/79u0zt7datWoZU6dONX744Qdjz549xqZNm8wLab6+vgQRjjK70T3yyCNmuTFjxjj1c9yRuTrwdPVxJTtBhGEYRtu2bc3hjh8/bnafNWuW2T29oOHq1avGlStXsjTN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wEDVr19fkvTFF1+4fb43MTExxwHo/Pnzzb/feOMN9ezZM91PRESE+Zy147C5ybFhq9w8KEzvzo+vvvrKvBKWlfU1N9YZKffmuWvXrmaoURDu0HM8OczudindvEJov4r96aefKj4+PsvjyI1t05VSpUrpiy++MFtKnzJlioYOHeqybNOmTc1nptN7m0hsbGy6gUtu/iY6thNhb/PK3j6EnWM7Ee+//36m24ewkmEY6e6T7MGClP42bn+7zZ9//qmVK1ead7j16NHDskYEu3btarbu/8UXX+i3335z6m9fl9Nbj/fu3att27blXSXT8fHHH5tXcz///HP17ds3wwaO81KHDh0k3bxTzP44rCt59ZuWnqtXr6pv377muvnGG2/k6x0kjm+LmDx5cpGbXnoeeughSTd/t7L6pkQr5qNGjRrmXXRZPeckiChgkpKS9M4776hPnz6SbjZeMmvWrDSNe0VFRZmvDHMlLi7OvMqVl88r5bWtW7eqRYsWOnnypKSbLbfar/DcatSoUWbLr/bnJvPao48+at4xMH78eJdXNk+cOKE33nhD0s0rF+m9qk+Snn32WSUmJqbpvnDhQq1atUrSzef7s9NozTfffON00HurM2fOqEePHuYVwhdffDHL08iO3FiOAwYMMK8Av/766y5PvPbt22de0alevbq6deuWm7ORxsqVK7Vx40ZJN29Nz8mbJOzfRXJysp5++mmXDU3Onj3bPEno3r270zpSt25d80TQ3UHNt99+m+Gz5PYrSqdPn9brr7/usszgwYNz/GiG/VWcwcHB6b7S1q5EiRLm9xkdHZ3uiXd2VaxY0Xyk4PDhw7k23unTp5u35js6ffq00zqf3isAXcnpOiM5N46Vk3kODQ017+z7+uuv0339X2JiYp7ehpyamup0Qt6lS5dsj8vb29v8jk6fPq2ePXu63H/bXb58WR999JFTN8fHtdyFUtOnT9fy5cuzXD9PT08tW7ZMDz74oCRp0qRJ5ts0HHl5eZn71L1797r8flJSUjRw4MB0G7nNzd9Ex3Yi7O3D3BqU2duJkKQPPvhA0s27B+yNOxYUb7/9dpqTdkn69ddfzUdxqlWrlu6r+cLCwsx1ZeDAgWboZcVjGY7s609qaqr5e2pnr9/mzZtdvobQ3kZDfrHZbPr000/1zDPPSLp5XNW/f/98CyP69etnHt8PHjxY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H28+klGqVKl0y8bFxUmS0yMWjvz8/JzK2f/OSnlHEyZMkL+/v/mpUaNG+jMDAAAAAEAxVuCDiH379mns2LF644039Le//S2/q5PGsGHDFBcXZ35OnDiR31UCAAAAAKDA8sjvCmSkX79+qlOnjkaNGpWp8vY7G9zdwWB/dMLxDgh/f/8slXfk5eUlLy+vTNUNAAAAAIDirlDcEXHo0CF5e3vLZrOZn3nz5kmSWrVqJZvNpuXLl0vKuE0HV21IhISEKCEhQadPn85UeQAAAAAAkD0F/o6IZ555xmX3jRs3KiYmRg8//LAqV66s4OBgSTcDg8DAQG3ZskWJiYlOb864du2aNm7cqMDAQNWtW9fsHhYWph9//FFr1qxR3759naYTFRVllgEAAAAAADlT4IOImTNnuuzev39/xcTEaNiwYWrZsqXZ3WazKTw8XGPGjNGYMWM0adIks9+ECRN08eJFvfzyy7LZbGb3AQMGaMqUKRo3bpweeeQR8zGMgwcPav78+apTp47at2+fR3MIAAAAAEDxUeCDiOyIiIjQihUrNHnyZO3Zs0dNmzbVvn37tHr1ajVp0kQRERFO5UNDQzVq1CiNGDFCd955p3r06KHExEQtWrRIycnJmjFjhjw8iuSiAgAAAADAUgW+jYjs8PHxUXR0tAYPHqxDhw5p6tSpOnDggAYPHqzo6GinxzXshg8frgULFiggIEDTp0/X4sWL1bp1a23ZskX33XdfPswFAAAAAABFj80wDCO/K1GUxMfHm2/h8PPzy+/qZFnw0JX5XYVi59jErvldBQAAAACFWGE7Dy2Sd0QAAAAAAICCiSACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABYhiACAAAAAABY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58WICLgUtsFCVnHt2jVNnTr1oUPW+ZAGV0V/DgBZy9WrVylGwIYREXApbIOFrODixYuqVauWRo8erZ07d+rgwYO6cuWKIiMjFRERoYiICN25c0cJCQlmRwUeG/05soL07PqSkJBgK8ABruzGjRv6/vvvNXLkSA0aNEgjRozQd999pxs3bkgSRQgkQSECLiW922AdPnzY0dGADDN27FgdPXpU8+bN05UrVyRJb775pm7cuKFt27YpICBAvr6+2rdvn8lJgcdHf46soHPnzvrXv/6V4qg2SYqIiNAzzzyjCRMmODgZkLEWL14sHx8f9e7dW5999plmzJihSZMmqU+fPipdurQWLVpkdkQ4GQoRcClpbYOViG2w4OqWL1+u5s2bq1evXsm28axbt65+//13RUREaOzYseYEBDIA/TmygiZNmmj69OmqU6eO/vnnnyTnvv/+e/n7+2vr1q166623TEoIPLktW7bohRde0I0bN/TKK68oJCREoaGhWrBggQYNGqTY2Fj16NFDW7ZsMTsqnAiFCLiUwMDAJG9Uu3fvroMHD6p9+/b66quv9OKLL2rjxo1q06aNyUmBx3fu3DnVrFnTdtvNzU2xsbG22/nz59ezzz6rn376yYx4QIagP0dWsGbNGk2cOFGHDh1SQECAvvzyS127dk19+vRR7969lTt3bq1atUqffPKJ2VGBxzZhwgRlz55dO3bs0PTp09W9e3cFBgbqhRde0LRp07R9+3Zlz55dEydONDsqnIi72QGARxEUFKT4+HidPn1apUqV0uuvv661a9fqt99+0++//y7p3jZYH330kclJgceXN2/eJHPl8+fPr9OnTydp4+XlpcjISEdHAzIM/TmyAovFonfeeUctWrRQz5499eabb2r06NG6efOmOnbsqJkzZzLqBy5vy5Yt6t69u6pWrZri+apVq+qFF17Q4sWLHRsMTo1dM5AphIWF6ejRo/Lx8VFAQICsVgb7wHXVr19fRYsW1S+//CJJat26tfbs2aP9+/erQIECio2NVY0aNWS1WnXgwAGT0wIZi/4cmdW7776rjz/+WJJUqFAhrV+/XpUqVTI5FfDkcuTIoTfffDPNEQ/vvvuuPv/88yQjPJG1UYgAACczZswYTZkyRefPn1fOnDm1aNEidevWTSVKlFC9evX0119/KSIiQhMmTNA777xjdlwAQBrO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V0+LFi3SiBEjkrQdMmSITp48qTZt2qS4HkRicWLt2rXJ1htwlEqVKmnPnj366KOPVLduXZ05c0a7d+/WnTt3FBgYqM8++0wLFixIco2bm5sWL16sDz/8UBUqVNCxY8cUGRmpvn37avv27SpYsOBj58mePbvWrVtnWwzy4MGDKl26tN555x2FhoamujuAJNWqVcu2XWSvXr0e+8NvevTq1UvFixfX+fPnbaNbSpcurS1btui5555TtmzZdODAAXl6emrcuHFasWKF3N0ds0FX4cKFtXr1alWsWFG//PKLevXqpfj4eLv9vhkzZmjatGmqVq2azpw5oxMnTqhDhw7avn27ihUrJunxd88ICwvTpk2btGXLFkVERChPnjzq0qWLJk+erNOnT2vMmDF2/f+ckmLFimnLli2aNm2aGjdurMuXL2vXrl26du2aAgICNG7cONs2wY/qww8/1KZNm/TSSy8pV65c2rNnjyIiIlSyZEkFBQVp2bJlat68eYY8jtKlS2vnzp368MMPVatWLZ09e1bh4eEqUKCA+vbtaxtZlMjd3V3z58/XsmXLbKOudu3apXPnzqlChQoaMmSI1q5dm+IaLgCA1FkMM76OAgAAGSIhIUGlSpXS2bNntXfv3sfethMZ5/XXX9fUqVM1ZcoUDRs2zOw4AAA4HUZEAADgwn7//XedPXtWdevWpQjhBK5fv66ff/5ZklJcYBQAAFCIAADAZcXGxtrWj3jttddMTpO1fP7559q9e3eSY2fOnFHXrl11/vx51apVS3Xr1jUnHAAATo6pGQAAuJg5c+Zo9uzZOnDggC5cuKAqVapo165dT7RzBx5NkyZNtG7dOuXNm1dly5bV7du3deDAASUkJKhQoUIKDQ1V1apVzY4JAIBTcswKUgAAIMNERERo/fr18vLyUseOHfXll19ShHCwoUOHKn/+/Prrr7904MABGYahp556Ss8++6xGjhypEiVKmB0RAACnxYgIAAAAAADgMKwRAQAAAAAAHIZCBAAAAAAAcBgKEQAAAAAAwGEoRAAAAAAAAIehEAEAAAAAAByGQgQAAAAAAHAYChEAAAAAAMBhKEQAAAAAAACHoRABAAAAAAAc5v8DA8MXT3752UwAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABCIAAAQfCAYAAADGNUggAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gU5eL28XshJIGEhBoglISSSBHBQ5EeRAGBo6BgQakKCioq6okgHECkKMoRRYVz6IhSBEWqQYRQpSld0EhRinRISICQkHn/4N357ZLdTZ8k8P1c117XZuaZZ57ZzMzO3DvzjM0wDEMAAAAAAAAWKJDbDQAAAAAAAHcOgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAAAAAAGAZgggAQLaLjo6WzWaTzWZTdHR0bjfHcmktf69evWSz2RQaGpql+YSGhspms6lXr15Zqic7zJw501zmo0eP5nZz7jgjRowwP/+cxP85fVq2bCmbzaaWLVvmdlPuSFldT+/077D0sn9GI0aMcFvm/PnzevPNN1WjRg0VLlzYnGbChAlO5fbt26du3bqpYsWK8vb2Nsvt2rUrR5cBuee2DiIcdyK3vgoXLqyKFSvqn//8p6ZOnapr1665rMNxR5be160blvR/X0i3vooUKaJy5cqpVq1aevLJJ/XBBx/o999/z+FPJvMy+lnUrVs3VR3uPtNChQqpVKlSqlq1qh588EENGjRIK1euVEpKSo4vl/2kICsvTzvhvCS9y5OZg6c75XP01H77vuXhhx/WF198oRs3buR2c28rffr0MT/rqlWr5nZzkId4+r4uUKCAAgICdPfdd6tfv3765Zdfcru5QJ7hGGLd+ipatKiqVaumJ598UosXL5ZhGLndXGSCu3MiLy8vlShRQpUrV1aLFi00cOBALVq0SNevX8+W+cbGxqpx48YaP368Dh486PZ86+eff1bDhg315Zdf6vjx40pKSsqW+SNvu62DCE+uXbum48ePa/ny5erbt6/q1q2bKwHA1atXderUKf36669asGCBIiMjVb16dT3wwAPavXu35e3JTcnJyTp//rwOHz6sH3/8Ue+//77at2+vypUra9KkSbndPCBd7PuWZcuWqUePHmrUqJHOnj2b2826LVy7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TpeOu9ouFyxYoAceeEClS5dW4cKFdddddykyMlIXLlzI0PKm5bffftPzzz+vypUry9fXV+XKldPjjz+un376yWX5119/3exM0P6rsif16tWTzWbTXXfdla3tdvSPf/zDfH/s2DGXZRISEjR//nz16dNHdevWVWBgoAoVKqTSpUsrIiJCH374YZrfU7fuU7dv366uXbua20X58uXVvXt3HThwIEvLc+zYMVWvXl02m03+/v5O4UpGn3x06dIlDRs2TLVq1ZKfn5+KFSumFi1a6Msvv0xXW5YsWaK2bduqVKlSKlKkiMLDw/Wvf/1Lp06dkmT9E5IKFy6sL774wtwHfvjhhy47kEzr+89+XjVr1qxUHaLb97OevltddWCenJysadOmmcdKPj4+KlWqlFq0aKEJEyZ4/PG25S1Ps4mJidHLL79sHi+6+v7KzvnZv+urVatmfve1bds23T+Enz17ViNHjlTTpk0VFBQkHx8fVaxYUU2bNtXIkSP122+/uZ02K8sh3exQ9LnnnlN4eLj8/Pzk6+urihUrql69enrppZe0ZMmSjN/OZNzG1q5da0gyJBnDhw93W+7q1atmuerVqzuNmzFjhjluxowZmW5LRESEWU96bd682ZymdevWqcYvWLDA8Pb2Nsu4e+3duzfT7b6Vvc6IiIhM15GZzzQlJcW46667zOlOnDiRqszw4cOz5X+VmfbOmjXL8PHxcfs/KFiwoDFmzBi383BcT0eMGOG2noCAAGPdunVZWp70bBM5wYrP0TAMY8yYMUaBAgXc1uHj42PMmjUrS8uS3u3g008/NcvOnTs31fgjR46Y46dPn2507949VXsd53H16lXj0Ucf9bi9BwcHGzt37nTZnsOHD6e5v5BkdOvWzUhKSnK7XCdOnDCqV6/udvqHHnrIiIqKMv9eu3ZtOj5Vz+655x5DktGqVStz2DvvvGNIMry8vIzTp097nD4kJMSQZPTs2dNYtGiRUaRIEbfr2Lx581JNn57PzXGbcvz+cbX8PXv2NCQZISEhxvbt242goCC39b766qvpWi5XMrvOOK6bnl6O27LjNn7kyBGX7Tly5IhRt27dNOvNzDqTke+W+vXrG5IMX19fIyUlJdV4x++T33//3QgNDfW47PHx8Wl+zv7+/sbSpUtdtsdxffH0GjRokNtlcmyzKxs3bjSKFStmrne///57qjL79+83ypUr53b+zz77bLr+z5ndlycnJxsBAQGGJOOtt95KNT4xMdFp2+3QoYPL+depU8eQZHTu3NlpuOPnvHr1auPpp59228Zq1aoZf//9t8v608N+3BcREWGsWLHC8PPzczmfAgUKGOPHj081/f79+80yY8eO9Tiv3bt3p7usK47rjqdtb+XKlWa5V155xWUZx+Ndd6/KlSsbBw4ccDsfx33qxIkTDS8vL5f1FClSxO0xUVrr6cGDB42KFSsakozixYsbP/30k9P4jOzDDxw44HIfYX+99NJLbpc1JSXFeOGFF9xOW7ZsWeOXX35Jc1+flvSeE92qTZs25nSbNm1KNd5VnenZn0VERDitd+5et7b1jz/+MGrWrOlxmrCwMJf7N8Nw3i4XL17scrt0XF+yc34bNmwwSpYs6baeDz74wOP/Ys6cOW73I/ZXSEiIy2mzuhz/+c9/PB5b21+XL1/2uAy3IogwDGPr1q1mOceDXMPI3SDixo0bRtGiRQ3p5gGM44nBqVOnzJUxKCjIGDlypLFq1Srjl19+MTZv3mzMmTPHeP75541SpUrdFkGEYRjGiy++aE7n6kQht4KIZcuWGTabzfw/DR8+3NiwYYPx008/GePHjzdKlSplTv/555+7nId9vP3g+K677jKmTZtmbN++3Vi9erXxwgsvmDuAokWLGkePHs308tjnVbNmTSM8PNzw9fU1/P39jWrVqhk9evQw1qxZk+m6PbHic/zss8/MMqVLlzY+/PBD46effjI2btxojBgxwtxmbDabsXz58kwvS3q2gytXrpg7/SJFihhnzpxJVcbxZM9+ot28eXPjq6++Mnbs2GGsXr3amDp1qln+iSeeMMvXqVPHmD17trF9+3YjKirK6N27t/n5lShRwjh+/Hiq+cXExBje3t7Gww8/bHzyySfG6tWrjV9++cVYvXq18fnnnxu1atUy6x82bJjL5UpKSjLuvfdes1ybNm2Mb7/91tixY4fxzTffGA8++KAhyWjQoIFZJqtBxK5du8y6pk+fbg4/dOiQOfyjjz7yWIf9IO7ee+81fH19jcqVKxuffvqpsWXLFuOnn34yRowYYfj6+hrSzcDv1v/X3r17ncKVUaNGGXv37nV6OYYh6T2ILV26tBEaGmr4+PgYgwYNMtavX29s3brV+OSTT5xOCF2dqDgul7uD08yuM9ev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mjZtKsk5ZNi2bZuuXLmigIAA3XvvvWYQsWHDBvO459KlS9qzZ48kuXzikCNP+wL7fkDK+r6gcuXKKlWqlNvxpUuX9vidZA/PL1++rEWLFjmNO3XqlPmko+7du+f4ow9btmypl156yWPAI0mbNm3Sk08+qZIlSyooKEjh4eFO3zFTpkyRlPZ6nF37648//li9e/fWjRs31LZtW61evVrFixf3OE16lSpVygzvPbXRVTvt/++6deuqYMGCbuuoXbu2x+03J+WVY2/7vvbKlSvy8vLyuK91DORc7WslKSwsTL6+vpbOz13AK7lfl5OSksz1pHnz5mluezmxHF27dlWhQoWUmJiopk2b6uGHH9bkyZO1f//+LJ/33jFBRP/+/bV3717zFRMTowsXLuivv/7SJ598okqVKuV2E11y3Ek77sxKliypJUuWqHz58jIMQ2vXrtXrr7+u+vXrq0SJEurcubOWLVuWG03OMe4+i9xkf7xXmTJl0ixrT949PRLM04HbrfPJ7keL2VWpUkWtW7eWJP3xxx86efJkjszHUXZ8jtn9v8isQoUKKTQ0VC+++KKio6NVqFAhHT9+3OlKDFc8HRQ5tjOt5XP8hcfVZ9S4cWO9/PLL2rp1q65fv+6xrqtXrzr9bf/FVMrYuppZsbGxWrJkiSTnKx9uZb9S4sSJE+YvTO64u4rDzn6gYEWgK93cl3l5eXksY/8sM7K+Ztc6k13s++8SJUrk2gG1v7+/GjRooClTpujtt9+WdPNXZnePx7bztG3aQ7uMuvWX7aNHj6p27dp6++23tWfPnjTXv1u3zVt99NFHkqS7775b06ZN83iSI2Xftp1d+2F7iPDzzz+bj3q0hxLNmzdXwYIFdd9996lw4cKKi4szg65169aZYWRERITH+XvaFzieMGR1X5DW5yl53sYbNGigOnXqSFKqdXX27Nnmo249XYGSEdOnTzePlbdv364FCxaYYe93332n1q1be3zM34gRI9SsWTMtWLAgzf1JWutxdu2vJ0yYIMMwVLp0aS1atCjNejMivW2UUrfTvt2ltY4ULFgw24KTjMorx97Zta+1S+vzzO75pXc9ufXHlAsXLpgn+/YrEzIiO5ajevXqmjt3rooXL67k5GQtW7ZM/fv31913362goCB1795dGzZsyNR8PB/93EaCgoJ0991353YzMiQlJcVM9gMCAlJdQta8eXP98ccfWrRokVasWKH169fr+PHjiouL0zfffKNvvvlGbdu21TfffJOtO93cYj/QkJSjz8nOjPQklOlJDTOadOaUmjVrmpeCnThxQsHBwZbMNzs+x+z6X2SHWrVqqX379vruu++0YcMGxcTEmJeS3iqtEwW7rKwjr776qn7++WdJUqdOnfTss8/qnnvuUVBQkHx9fc26K1WqpGPHjqX6nBz/Tqsd2fEZL1iwwDzg/fzzz/X555+nOc3s2bPNIC0/sGJ9zSv7FSnvtOWNN97Qe++9p5SUFE2bNs3jSZynbdPxxCI6OtrjL6OObj3x6N69u44cOSKbzabevXvrqaeeUo0aNVS6dGkzuElJSTHbktY60blzZy1atEj79u3Tq6++mubVbdm9bWd1vbaHCMnJydq4caMeeugh81Yje0jh7e2txo0ba82aNYqOjlb9+vXNMsWLF/d4JYuVsmMb79OnjwYMGKDo6GgdOXJElStXliTNnDlT0s2rmmrVqpXltko3r+BwPF6uX7++Hn/8cb311lsaN26cfv75Z7311lv6+OOPU037448/6p133pF080eNN998U82aNVOlSpXk7+9vrr/Dhg3Tu+++my3tTQ/79nD27Fl169ZNX3/9dZoBMG7KK8fe9n1t5cqVzR8o0sO+rdwqrWOu7J5fdsjM92d2LUfnzp314IMPav78+YqKitKGDRt09uxZnTt3TnPmzNGcOXPUs2dPTZ8+3eOVH7diK8zDfvrpJ/OXgMaNG7vcaHx9ffXMM8+Y97AePnxYy5cv16effqrff/9dUVFRGjJkiPnrSH5lGIbTvZPNmjXLxdb8H3s67O5SLEenT592msZTmfSMz8lk2qoTdbvs+BxLlCihv//+O9v+F9mlevXq5j16e/fudRtEeOLYzrSWz3G843RxcXGaP3++pJv3Rn/55Zdu63D8ddRdO9JaVzObwjuy35aREd9++63i4+Pd3guf15w/f143btzweFBk/ywzsr5mxzqTneyXpp8/f17Xr183b//KLSVKlFDp0qV1+vRpp9sSMsoxePD29s7UDx4HDx7Uxo0bJUmDBw/W6NGjXZZzt126MnfuXD3xxBNavHixPv30U3l5eXk8Drh12w4PD3db1tO2nV3fiQ0aNJCfn58SEhIUHR2tBx54wKl/CLuWLVuaQcSbb76Z7v4hrJTW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s7Rdv/76q5o1a2b+MBYREWF+9+eWBg0amI8OXrFihcsrchwdPXpUc+fOzTfz8+Tll182rzh44YUXPD7dyn6+ZJcdy7F48eJUj551dOzYMR08eFBSxs856SMiA06cOJGuR5sFBAR4fAqHYx03btzQpUuXdPz4cW3ZskULFy4076308fHRZ599Zh5AOJo7d64efvhhtW7dWm3atNHdd9+tEiVK6PLly9q3b58+/fRTnThxQpJyZOeRkJCQ7se81axZ023HJbd+ppcvX9b58+e1c+dOff/99+Y9oZL0z3/+0+MvLLmhUKFC+t///qeHH35Yly9fVrNmzfSvf/1LDzzwgLy8vLR582a999575knZhx9+6PExXvXr19eOHTtUv359vfXWW6pdu7ZiY2O1cOFC/fe//5V089nZH374YabaO2DAACUlJalz585q3LixQkNDVbhwYZ07d07R0dGaPHmy+Sths2bNLAsisuNzLF26tD744AO99NJLOnnypOrXr69BgwapSZMmunHjhlavXq0PPvhA8fHxstls+t///pflR5252g6SkpJ04sQJLV++3PylWbp5UJ6VXxM6dOigxx9/XF9//bVWr16t++67T2+88YZq1Kihixcvat68eeb2UaJECf3nP/9xmr5kyZJq3769li9frhUrVuihhx7SCy+8oEqVKunMmTNatGiRZs6cqSpVqujSpUsuD4ikm/uTGTNmaOfOnZo0aZKOHDmifv36qWLFijp27Jg+//xzrVq1Sg0aNMj07RkbNmwwD2LtlyOnR+fOnfXf//5XKSkpmjNnTrZfPeXl5aUGDRpo06ZNmj59uu69917VrVvXXI9KlCiR4T4WSpcurSJFiqh169YaOHCg2rdvLx8fH23btk1jxowx7wl9991309X7vqOsrjPSzY5LK1SooOPHj+vDDz9U+fLlddddd5nrcpkyZVS0aNF0tefzzz/Xli1bdPLkSUVGRur7779Xr169VL16ddlsNh09elTR0dHmFYFZuerL1fd1QkKCfv31V02ZMsW8PaRkyZJurxJIr8jISP3444/68ccftXLlStWsWVP9+vVT48aNVaxYMV2+fFm//faboqOjtXjxYvn6+urll182p7/33nt19913a9++fZo0aZIuXbqkZ555RuXKldOxY8c0Z84cLVy4UE2bNs3UpbU+Pj769ttv1bFj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Tly4cEFvv/22JKldu3aSJJvNpj59+ig+Pl4jR450Kj927FhdvHhRffr0kc1mM4f37t1bXl5eGj16tNN89u/fr9mzZ6tq1apq1apVTiwaAAAAAAB3nDzfR8TMmTM1depU3X///QoJCZGfn5/+/PNPLV++XPHx8ercubOefvpps3xkZKSWLFmicePGaefOnapXr552796tlStXqm7duoqMjHSqPzw8XCNGjNDQoUN1zz33qEuXLkpISNDcuXOVlJSkKVOmmFdcAAAAAACArMnzZ9hdunRRbGystmzZovXr1+vKlSsqUaKEmjVrph49euipp55yusLBz89P0dHReuedd7Rw4UJFR0erbNmyGjhwoIYPHy4/P79U8xgyZIhCQ0M1YcIETZo0Sd7e3mrSpIlGjhypBg0aWLm4AAAAAADc1myGYRi53YjbSVxcnPkkjoCAgNxuToaFDlqe20244xx9r0NuNwEAAABAPpbfzkPzfB8RAAAAAADg9kEQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALEMQAQAAAAAALJPng4gTJ05owoQJatOmjSpVqiRvb2+VLVtWnTt31tatW1OVHzFihGw2m8uXr6+v2/l89dVXatiwofz8/FS8eHG1b99eO3bsyMlFAwAAAADgjuOV2w1Iy8SJE/X++++ratWqat26tYKCghQTE6PFixdr8eLFmjt3rp544olU0/Xs2VOhoaFOw7y8XC/umDFjNGTIEFWqVEn9+vVTfHy85s2bp6ZNmyoqKkotW7bMgSUDAAAAAODOk+eDiIYNG2r9+vVq3ry50/ANGzbogQceUP/+/dWxY0f5+Pg4je/Vq1e6AoSYmBgNHz5c4eHh2rZtmwIDAyVJr7zyiho2bKg+ffro4MGDbkMMAAAAAACQfnn+1ozHHnssVQghSc2bN9f999+vCxcuaO/evZmuf8aMGUpOTtaQIUPMEEKSatWqpR49eujQoUNas2ZNpusHAAAAAAD/J88HEZ4UKlRIkutbLjZs2KBx48Zp/PjxWr58uRITE13WER0dLUlq06ZNqnFt27aVJK1bty6bWgwAAAAAwJ0t395v8Ndff2n16tUqW7asateunWr8sGHDnP4uV66cZs2apdatWzsNj4mJkb+/v8qWLZuqjrCwMLOMO4mJiU4hR1xcXIaWAwAAAACAO0m+vCIiKSlJ3bt3V2JiosaNG6eCBQua4+rWratZs2bp6NGjunr1qmJiYvTuu+/q0qVLeuSRR7R7926numJjY51uyXAUEBBglnFn7NixCgwMNF8VK1bMhiUEAAAAAOD2lO+CiJSUFD377LNav369+vbtq+7duzuN79Spk3r06KGQkBD5+vqqWrVqGjp0qD7++GNdu3ZNo0aNytb2DB48WLGxsebr2LFj2Vo/AAAAAAC3k3wVRBiGob59+2rOnDnq1q2bJk+enO5pe/bsKS8vL23atMlpeGBgoNsrHuy3Wbi7YkKSfHx8FBAQ4PQCAAAAAACu5ZsgIiUlRc8995ymT5+url27aubMmSpQIP3N9/b2VtGiRXXlyhWn4WFhYYqPj9epU6dSTWPvG8LeVwQAAAAAAMiafBFEpKSkqE+fPpoxY4aefPJJffHFF079QqRHTEyMLl68qNDQUKfhERERkqRVq1almiYqKsqpDAAAAAAAyJo8H0TYr4SYMWOGHn/8cc2ZM8dtCHH58mXt2bMn1fCLFy/queeekyR17drVaVzv3r3l5eWl0aNHO92isX//fs2ePVtVq1ZVq1atsnGJAAAAAAC4c+X5x3eOHDlSM2fOlL+/v8LDw112NtmpUyfVrVtX58+fV506dVS/fn3Vrl1bQUFBOnHihFauXKnz58+rdevWGjhwoNO04eHhGjFihIYOHap77rlHXbp0UUJCgubOnaukpCRNmTJFXl55/mMCAAAAACBfyPNn2EePHpUkxcfHa/To0S7LhIaGqm7duipRooReeuklbdmyRUuXLtWlS5fk5+en2rVrq1u3burTp4/LqymGDBmi0NBQTZgwQZMmTZK3t7eaNGmikSNHqkGDBjm5eAAAAAAA3FFshmEYud2I20lcXJz5JI78+ASN0EHLc7sJd5yj73XI7SYAAAAAyMfy23lonu8jAgAAAAAA3D4IIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGW8cqriGzduaMeOHTp58qTuvfdehYaG5tSsAAAAAABAPpGlKyKioqL02GOPad68eU7DT548qfvuu09NmjRRly5dVK1aNb3zzjtZaigAAAAAAMj/shREzJ49W999953Cw8Odhg8cOFC//PKLAgICVKdOHdlsNo0cOVKbNm3KUmMBAAAAAED+lqUgYvv27QoMDNQ//vEPc9iFCxf07bffqnTp0vr999/1yy+/aO7cuTIMQxMmTMhqewEAAAAAQD6WpSDi7NmzqlixotOwtWvXKjk5WV27dlXp0qUlSV26dFG5cuW0e/furMwOAAAAAADkc1kKIq5cuaKCBQs6Ddu4caNsNpseeOABp+EVKlTQ8ePHszI7AAAAAACQz2UpiChTpoyOHj2q5ORkc1hUVJQKFCig5s2bO5W9evWq/Pz8sjI7AAAAAACQz2UpiGjevLliY2M1cuRIxcfHa9q0aTp48KAaNWqkYsWKmeWSkpIUExOj4ODgrLYXAAAAAADkY1kKIt5++235+vpq9OjRCgwM1PPPPy9JGjJkiFO5H374QYmJiWrSpElWZgcAAAAAAPK5LAURtWrV0tq1a9W+fXuFh4frgQce0LJly/TQQw85lfviiy8UGBio9u3bZ6mxAAAAAAAgf/PKagUNGzbU0qVLPZaZO3duVmcDAAAAAABuA1m6ImL27NmKiopKV9lVq1Zp9uzZWZkdAAAAAADI57IURPTq1UtjxoxJV9mxY8eqd+/eWZkdAAAAAADI57IUREiSYRjZWg4AAAAAANy+shxEpNepU6fk5+dn1ewAAAAAAEAelKHOKv/66y8dPXrUaVhsbKzWr1/vdpqrV69q3bp1+v3333XfffdlqpEAAAAAAOD2kKEgYsaMGRo5cqTTsH379un+++/3OJ39tozXXnstY60DAAAAAAC3lQwFEaGhoWrRooX597p16xQQEKC6deu6LG+z2VS4cGFVqVJFTz75pJo1a5alxgIAAAAAgPwtQ0FEz5491bNnT/PvAgUKqHbt2lq7dm22NwwAAAAAANx+MhRE3Grt2rUKDAzMrrYAAAAAAIDbXJaCiIiIiOxqBwAAAAAAuANkKYhwFBsbq8OHDys+Pt7snNIVxz4mAAAAAADAnSXLQcT69es1aNAgbd26Nc2yNptNycnJWZ0lAAAAAADIp7LcR8RDDz2kpKQk+fj4KDQ0VEFBQSpQoEB2tQ8AAAAAANxGshREDB8+XElJSXrmmWc0YcIElSxZMrvaBQAAAAAAbkNZCiJ++eUXFStWTDNnzlTBggWzq00AAAAAAOA2laV7KLy9vVWtWjVCCAAAAAAAkC5ZCiLuu+8+HT161ONTMgAAAAAAAOyyFEQMHz5csbGx+vDDD7OrPQAAAAAA4DaWpT4igoOD9Z///EdvvPGGNm/erOeee05Vq1aVn5+f22kqVaqUlVkCAAAAAIB8LEtBRGhoqGw2mwzD0JIlS7RkyRKP5W02m5KTk7MySwAAAAAAkI9lKYioVKmSbDZbdrUFAAAAAADc5rIURBw9ejSbmgEAAAAAAO4EWeqsEgAAAAAAICMIIgAAAAAAgGWydGvGX3/9leFpeGoGAAAAAAB3rmx5akZ68dQMAAAAAADubDn21IyEhASdO3dOklSoUCEFBwdnZVYAAAAAAOA2kKNPzYiLi9OUKVP07rvv6umnn9bo0aOzMjsAAAAAAJDPZSmISEtAQIDeeOMN1apVSx06dFD16tXVvXv3nJwlAAAAAADIwyx5asZDDz2kkJAQffzxx1bMDgAAAAAA5FGWPb6zWLFiOnjwoFWzAwAAAAAAeZAlQcSZM2d04MAB+fr6WjE7AAAAAACQR+VoEHHu3DmtXLlS7dq10/Xr1/Xggw/m5OwAAAAAAEAel6XOKgsWLJiucoZhqGzZsnrvvfeyMjsAAAAAAJDPZSmIMAzD43g/Pz9VqVJF7dq105tvvqlSpUplZXYAAAAAACCfy1IQkZKSkl3tAAAAAAAAdwDLnpoBAAAAAACQ54OIEydOaMKECWrTpo0qVaokb29vlS1bVp07d9bWrVtdThMXF6fXX39dISEh8vHxUUhIiF5//XXFxcW5nc9XX32lhg0bys/PT8WLF1f79u21Y8eOnFosAAAAAADuSFm6NcMuMTFRc+fO1apVq/T777/r8uXLKlq0qMLDw9W2bVs99dRT8vHxyVTdEydO1Pvvv6+qVauqdevWCgoKUkxMjBYvXqzFixdr7ty5euKJJ8zyCQkJioiI0K5du9S6dWt17dpVu3fv1kcffaS1a9dq48aN8vPzc5rHmDFjNGTIEFWqVEn9+vVTfHy85s2bp6ZNmyoqKkotW7bMyscDAAAAAAD+P5uRVo+Tafjll1/0+OOP6+jRoy47r7TZbKpcubIWLFigf/zjHxmu/5tvvlHp0qXVvHlzp+EbNmzQAw88oKJFi+rkyZNm0DF8+HCNHDlSkZGRev/9983y9uHDhg3TO++8Yw6PiYlRzZo1VaVKFW3btk2BgYGSpP3796thw4YqV66cDh48KC+v9GU2cXFxCgwMVGxsrAICAjK8vLktdNDy3G7CHefoex1yuwkAAAAA8rH8dh6apSDi+PHjqlOnji5evKhSpUqpb9++qlWrlsqUKaPTp09r//79mjp1qs6ePauSJUtq165dKl++fLY1vm3btlq1apW2b9+u+vXryzAMVahQQXFxcTp16pTTlQ/Xrl1TcHCwihQpomPHjslms0mS3n77bY0dO1azZs1Sjx49nOrv37+/Jk+erKioKLVp0yZdbcpvK8CtCCKsRxABAAAAICvy23lolvqIGDt2rC5evKjHHntMf/75p0aPHq2nn35aDzzwgJ5++mmNHj1af/75pzp37qzz589r7Nix2dVuSVKhQoUkybxaISYmRidPnlTTpk1T3X7h6+urFi1a6MSJE/rjjz/M4dHR0ZLkMmho27atJGndunXZ2m4AAAAAAO5UWQoiVq5cKT8/P82cOVOFCxd2WcbX11czZsyQn5+fVqxYkZXZOfnrr7+0evVqlS1bVrVr15Z0M4iQpLCwMJfT2Ifby9nf+/v7q2zZsukqf6vExETFxcU5vQAAAAAAgGtZCiJOnjypGjVqyN/f32M5f39/1ahRQ3///XdWZmdKSkpS9+7dlZiYqHHjxqlgwYKSpNjYWEky+3m4lf0SFXs5+/uMlL/V2LFjFRgYaL4qVqyY8QUCAAAAAOAOkaUgomjRojp9+nS6yp4+fTrV7RKZkZKSomeffVbr169X37591b179yzXmRWDBw9WbGys+Tp27FiutgcAAAAAgLwsS0FEvXr1dPz4cc2bN89jublz5+rYsWOqX79+VmYnwzDUt29fzZkzR926ddPkyZOdxtuvbHB3BYP9tgnHKyDsHXqkt/ytfHx8FBAQ4PQCAAAAAACuZSmIGDBggAzDUM+ePfXGG2/oyJEjTuOPHDmi119/Xb1795bNZtMrr7yS6XmlpKToueee0/Tp09W1a1fNnDlTBQo4Nz+tPh1c9SERFham+Ph4nTp1Kl3lAQAAAABA5mUpiOjQoYPeeustJSUlacKECapWrZqKFCmikJAQFSlSRNWqVdPHH3+s69eva9CgQWrfvn2m5pOSkqI+ffpoxowZevLJJ/XFF1+Y/UI4CgsLU3BwsDZt2qSEhASncdeuXdP69esVHBysatWqmcMjIiIkSatWrUpVX1RUlFMZAAAAAACQNVkKIqSbnTUuWbJEjRs3ls1m07Vr13Ts2DFdu3ZNNptNTZs21dKlSzV69OhM1W+/EmLGjBl6/PHHNWfOHJchhCTZbDb16dNH8fHxGjlyZKp2Xrx4UX369JHNZjOH9+7dW15eXho9erTTLRr79+/X7NmzVbVqVbVq1SpTbQcAAAAAAM5shmEY2VVZQkKC/vjjD8XHx8vf31/VqlXLcgeVI0aM0DvvvCN/f3+9+uqr8vLySlWmU6dOqlu3rtmGZs2aadeuXWrdurXq1aun3bt3a+XKlapbt642btyYqk2jR4/W0KFDValSJXXp0kUJCQmaO3eurl69qqioKN1///3pbm9cXJzZ70R+7C8idNDy3G7CHefoex1yuwkAAAAA8rH8dh6a+qw+Dfv379ehQ4cUFBSkRo0aOY3z8/NTnTp1nIZt2bJFZ86cUbVq1VSzZs0MN/Do0aOSpPj4eLdXVYSGhppBhJ+fn6Kjo/XOO+9o4cKFio6OVtmyZTVw4EANHz7cZTAyZMgQhYaGasKECZo0aZK8vb3VpEkTjRw5Ug0aNMhwmwEAAAAAgGsZuiLiypUrCgsL07lz57R27Vo1adIkzWk2b96sli1bKjg4WL/99pt8fHyy1OC8Lr8lUbfiigjrcUUEAAAAgKzIb+ehGeojYu7cufr777/13HPPpSuEkKQmTZqob9++OnbsWJqP+QQAAAAAALe3DAURixcvztRjOF977TUZhqFFixZlaDoAAAAAAHB7yVAQsXPnTpUrV07Vq1fP0EzCwsJUvnx57dy5M0PTAQAAAACA20uGgohz586pfPnymZpRcHCwzp07l6lpAQAAAADA7SFDQYSvr6+uXr2aqRldvXpV3t7emZoWAAAAAADcHjIURJQrV06HDh1SYmJihmaSmJioQ4cOKTg4OEPTAQAAAACA20uGgojmzZvr2rVrWrhwYYZm8vXXX+vq1atq3rx5hqYDAAAAAAC3lwwFEb169ZJhGHrrrbd07NixdE3z119/KTIyUjabTT179sxUIwEAAAAAwO0hQ0FEkyZN9Pjjj+vkyZO677779PXXXyslJcVl2ZSUFC1YsECNGjXS6dOn1blzZzVt2jRbGg0AAAAAAPInr4xOMHPmTJ04cUKbN2/WU089pdKlS6tp06aqXLmy/Pz8lJCQoCNHjmjz5s06c+aMDMNQ48aNNXPmzBxoPgAAAAAAyE8yHEQULlxY0dHRGjFihCZOnKgzZ87o22+/lc1mM8sYhiFJ8vf314ABAzRixAgVKlQo+1oNAAAAAADypQwHEZLk5eWlUaNGKTIyUsuXL9fmzZt14sQJXb58WUWLFlX58uXVpEkTtW/fXoGBgdndZgAAAAAAkE9lKoiwCwgIUNeuXdW1a9fsag8AAAAAALiNZaizSgAAAAAAgKwgiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJYhiAAAAAAAAJbJF0HEnDlz9MILL6h+/fry8fGRzWbTzJkzXZYdMWKEbDaby5evr6/beXz11Vdq2LCh/Pz8VLx4cbVv3147duzIoSUCAAAAAODO5JXbDUiPoUOH6s8//1SpUqVUrlw5/fnnn2lO07NnT4WGhjoN8/JyvbhjxozRkCFDVKlSJfXr10/x8fGaN2+emjZtqqioKLVs2TIblgIAAAAAAOSLIGLq1KkKCwtTSEiI3nvvPQ0ePDjNaXr16pWuACEmJkbDhw9XeHi4tm3bpsDAQEnSK6+8ooYNG6pPnz46ePCg2xADAAAAAACkX764NePBBx9USEhIjtQ9Y8YMJScna8iQIWYIIUm1atVSjx49dOjQIa1ZsyZH5g0AAAAAwJ0mXwQRmbFhwwaNGzdO48eP1/Lly5WYmOiyXHR0tCSpTZs2qca1bdtWkrRu3bocaycAAAAAAHeS2/Z+g2HDhjn9Xa5cOc2aNUutW7d2Gh4TEyN/f3+VLVs2VR1hYWFmGXcSExOdQo64uLisNBsAAAAAgNvabXdFRN26dTVr1iwdPXpUV69eVUxMjN59911dunRJjzzyiHbv3u1UPjY21umWDEcBAQFmGXfGjh2rwMBA81WxYsXsWxgAAAAAAG4zt10Q0alTJ/Xo0UMhISHy9fVVtWrVNHToUH388ce6du2aRo0ala3zGzx4sGJjY83XsWPHsrV+AAAAAABuJ7ddEOFOz5495eXlpU2bNjkNDwwMdHvFg/02C3dXTEiSj4+PAgICnF4AAAAAAMC1OyaI8Pb2VtGiRXXlyhWn4WFhYYqPj9epU6dSTWPvG8LeVwQAAAAAAMiaOyaIiImJ0cWLFxUaGuo0PCIiQpK0atWqVNNERUU5lQEAAAAAAFlzWwURly9f1p49e1INv3jxop577jlJUteuXZ3G9e7dW15eXho9erTTLRr79+/X7NmzVbVqVbVq1SpnGw4AAAAAwB0iXzy+c+rUqdq4caMkae/eveaw6OhoSTc7qOzUqZPOnz+vOnXqqH79+qpdu7aCgoJ04sQJrVy5UufPn1fr1q01cOBAp7rDw8M1YsQIDR06VPfcc4+6dOmihIQEzZ07V0lJSZoyZYq8vPLFxwQAAAAAQJ6XL86wN27cqFmzZjkN27Rpk9nxZGhoqDp16qQSJUropZde0pYtW7R06VJdunRJfn5+ql27trp166Y+ffqoYMGCqeofMmSIQkNDNWHCBE2aNEne3t5q0qSJRo4cqQYNGliyjAAAAAAA3AlshmEYud2I20lcXJz5JI78+ASN0EHLc7sJd5yj73XI7SYAAAAAyMfy23nobdVHBAAAAAAAyNsIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGUIIgAAAAAAgGXyRRAxZ84cvfDCC6pfv758fHxks9k0c+ZMt+Xj4uL0+uuvKyQkRD4+PgoJCdHrr7+uuLg4t9N89dVXatiwofz8/FS8eHG1b99eO3bsyIGlAQAAAADgzpUvgoihQ4fqf//7n/7880+VK1fOY9mEhARFREToo48+0l133aWBAweqZs2a+uijjxQREaGEhIRU04wZM0bPPPOMTp8+rX79+umJJ57Qpk2b1LRpU0VHR+fQUgEAAAAAcOfJF0HE1KlTdfToUZ09e1b9+vXzWHbcuHHatWuXIiMjtWrVKr333ntauXKlhg0bpl27dmncuHFO5WNiYjR8+HCFh4drz549Gj9+vP773/9q8+bN8vLyUp8+fZScnJyTiwcAAAAAwB0jXwQRDz74oEJCQtIsZxiGpk6dKn9/fw0bNsxp3ODBg1W8eHFNmzZNhmGYw2fMmKHk5GQNGTJEgYGB5vBatWqpR48eOnTokNasWZN9CwMAAAAAwB0sXwQR6RUTE6OTJ0+qadOm8vPzcxrn6+urFi1a6MSJE/rjjz/M4fZbL9q0aZOqvrZt20qS1q1bl3ONBgAAAADgDnLbBRGSFBYW5nK8fbi9nP29v7+/ypYtm67yt0pMTFRcXJzTCwAAAAAAuHZbBRGxsbGS5HSLhaOAgACncvb3GSl/q7FjxyowMNB8VaxYMVNtBwAAAADgTnBbBRG5YfDgwYqNjTVfx44dy+0mAQAAAACQZ3nldgOyk/3KBndXMNhvm3C8AiIwMDBD5W/l4+MjHx+fTLUXAAAAAIA7zW11RURafTq46kMiLCxM8fHxOnXqVLrKAwAAAACAzLvtgojg4GBt2rRJCQkJTuOuXbum9evXKzg4WNWqVTOHR0RESJJWrVqVqr6oqCinMgAAAAAAIGtuqyDCZrOpT58+io+P18iRI53GjR07VhcvXlSfPn1ks9nM4b1795aXl5dGjx7tdIvG/v37NXv2bFWtWlWtWrWybBkAAAAAALid5Ys+IqZOnaqNGzdKkvbu3WsOi46OliR16tRJnTp1kiRFRkZqyZIlGjdunHbu3Kl69epp9+7dWrlyperWravIyEinusPDwzVixAgNHTpU99xzj7p06aKEhATNnTtXSUlJmjJliry88sXHBAAAAABAnpcvzrA3btyoWbNmOQ3btGmTNm3aJEkKDQ01gwg/Pz9FR0frnXfe0cKFCxUdHa2yZctq4MCBGj58uPz8/FLVP2TIEIWGhmrChAmaNGmSvL291aRJE40cOVINGjTI8eUDAAAAAOBOYTMMw8jtRtxO4uLizCdxBAQE5HZzMix00PLcbsId5+h7HXK7CQAAAADysfx2Hnpb9REBAAAAAADyNoIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAAAAAABgGYIIAMhF586d07hx49S0aVOVLVtWPj4+Cg4O1n333ad//etf+umnn1JNc/ToUdlstgy9QkNDrV84AAAAwAWv3G4AANypvv76a/Xv31/nz593Gv7333/r77//1rZt2xQTE6PFixdneV533XVXlusAAAAAsgNBBADkgtmzZ6t3795KSUlRUFCQ+vfvr2bNmqlEiRI6deqUDh06pKVLl6pQoUKppi1fvrz27t2b5jzGjh2rr776SpLUs2fPbF8GAAAAIDMIIgDAYgcOHNDzzz+vlJQUNW/eXEuXLlVgYGCqcgMGDND169dTDS9UqJDuvvtuj/O4ceOGoqOjJUlFixZVp06dsqPpAAAAQJbRRwQAWGzAgAFKTExUqVKl9M0337gMIey8vb0zNY/Vq1fr5MmTkqQuXbqoSJEimaoHAAAAyG4EEQBgoYMHD+rHH3+UJL388ssqVapUjsxn9uzZ5ntuywAAAEBeQhABABb6+uuvzfePP/64+f7ixYuKiYlJ1XFlZly+fNns4DIkJEQtWrTIcp0AAABAdiGIAAALbdmyRZIUGBioGjVq6Msvv1SdOnVUokQJhYeHq1SpUqpSpYreeecdxcfHZ2oeCxcu1JUrVyRJPXr0kM1my7b2AwAAAFlFEAEAFvr1118lSaGhoRowYIC6deumPXv2OJU5cuSIRowYocaNG5v9PGSE420ZPXr0yFqDAQAAgGxGEAEAFrpw4YKkm31FfPbZZypWrJgmT56sM2fO6Nq1a9q+fbvatWsnSdq3b58ef/xxpaSkpLv+v/76S+vWrZMkNWnSRNWqVcv+hQAAAACygCACACyUkJAgSUpMTFTBggW1cuVKvfDCCypdurR8fHxUv359LVu2zAwjNm/erG+++Sbd9c+ZM0eGYUjiaggAAADkTQQRAGAhX19f8/3jjz+uRo0apSpToEABffDBB+bfc+fOTXf9X3zxhSTJx8dHTz75ZBZaCgAAAOQMgggAsFDRokXN9/arHlypVauWypcvL0navn17uuretm2bDh48KEl65JFHVKxYscw3FAAAAMghBBEAYKGKFSua7ytUqJCusmfOnElX3XRSCQAAgPyAIAIALFSrVi3z/Y0bNzyWtY/38vJKs96kpCTNnz9fkhQUFKSHHnooC60EAAAAcg5BBABYqEWLFub7Q4cOeSx7+PBhSTJv0fBk+fLlOnfunCTp6aefTld4AQAAAOQGgggAsNAjjzyiQoUKSZLHp2GsW7dO58+flyQ1b948zXodb8vo2bNnFlsJAAAA5ByCCACwUMmSJdWnTx9J0g8//KB58+alKnP58mW99tpr5t8vvPCCxzovXLig5cuXS5Jq166tunXrZlt7AQAAgOxGEAEAFnvnnXdUqVIlSVL37t01YMAArV27Vj///LNmzpyphg0bateuXZKk/v37q0GDBh7rmzdvnq5fvy6JqyEAAACQ99kMwzByuxG3k7i4OAUGBio2NlYBAQG53ZwMCx20PLebcMc5+l6H3G4CcsGBAwf0yCOP6I8//nBb5tlnn9XkyZPNWzncadSokbZu3aqCBQvq+PHjKlu2bHY3FwAAAHlYfjsP5YoIAMgFNWrU0K5du/TBBx/ovvvuU4kSJeTt7a0KFSroySef1Jo1azRt2rQ0Q4iYmBht3bpVktS6dWtCCOQZNpstXa+WLVu6nP7AgQP69NNP1bNnT/3jH/9QhQoV5OvrKz8/P1WpUkVPPvmkvvvuO/F7CgAA+Q9XRGSz/JZE3YorIqzHFREAbkc2my1d5SIiIhQdHZ1qeLdu3fTll1+ma/pvvvlGJUqUyGgTAQC4beS381Ce7wYAAHJM//799eKLL7od7+fn53K4l5eX7rvvPjVt2lS1a9dW2bJlVbp0aV28eFEHDx7Uf//7X+3bt0/r1q3Tww8/rA0bNqhAAS70BAAgPyCIAAAAOSYoKEh33313hqebOnWqvLxcH6Y8+OCD6t+/v5544gl988032rx5s5YvX66HH344q80FAAAW4KcDAACQ57gLIewKFiyoyMhI8+/169fndJMAAEA2IYgAAAD5kuNtHdeuXcvFlgAAgIzg1gwAdxw6ZbUenbIiJ8ydO9d8X7169VxsCQAAyAiuiAAAADnm66+/1l133aXChQuraNGiCgsLU8+ePbV27dpM1Xfu3Dn99NNPeu655zR27FhJUsmSJfXMM89kZ7MBAEAO4ooIAACQY3799Venv//44w/98ccfmj17tjp16qSZM2cqMDDQYx0tW7bUunXrXI4rUaKEvvnmGxUrViy7mgwAAHIYV0QAAIBsV6RIET311FOaMmWKNmzYoJ07d2rVqlUaMmSISpYsKUlavHixOnbsqKSkpEzNY8CAATpw4IBatGiRnU0HAAA5jCsiAABAtjtx4oTLqxRat26tAQMGqF27dtq5c6fWrVunSZMm6ZVXXnFb14wZM5SQkCDDMHTp0iXt2LFDkyZN0meffaYjR45o6tSpKlOmTA4uDQAAyE5cEQEAALKdp1slypQpo4ULF8rb21uSNHHiRI91Va5cWXfffbdq166t5s2ba+DAgdqzZ4/at2+vZcuWqUGDBjp+/Hh2Nh/IksjISNlsNvMVHR3tstzMmTOdynl6zZw509JlAICcRBABAAAsV6VKFbVu3VrSzX4jTp48maHpfX19NWPGDBUpUkTHjh1TZGRkTjQTyLDdu3fro48+yu1mAECexq0ZAAAgV9SsWVPLl998nO6JEycUHBycoelLlSqlpk2b6ocfftB3332n5ORkeXlxaIPck5KSor59+yo5OVlBQUE6c+ZMuqeNioryuA1UqFAhO5oIAHkC39YAACBXGIaR5TpKly4tSbpy5YrOnj2rcuXKZblOILM++eQTbd++XdWrV9ejjz5qPmI2PcLDwxUaGppzjQOAPIRbMwAAQK5wfLRnRq+GsDtx4oT53t/fP8ttAjLr2LFj+ve//y1JmjRpktkHCgAgNYIIAABgucOHD+uHH36QdLO/iPLly2e4jhMnTuinn36SJIWEhKho0aLZ2kYgI1588UXFx8erZ8+eatmyZW43BwDyNIIIAACQrZYuXark5GS340+fPq0uXbooKSlJkvTSSy85jf/999+1Zs0aj/OIjY1V165ddf36dUlS9+7ds9hqIPMWLFigZcuWqUSJEvrggw9yuzkAkOfRRwQAAMhWAwYMUFJSkjp37qzGjRsrNDRUhQsX1rlz5/T/2LvP6KjK/e3j10wqLXRCT0BaqKFFmoYO0puA0hFFPSiIwlE4QkABQYqiIn85dDVYQBQBC71XARWC1FAChBJIKCGQZD8veDKHkAQCZGbPJN/PWqzF7H3vyTXj5jbzm7usW7dOM2fO1KVLlyRJDRo0SFGIOHPmjJo0aaJq1aqpQ4cOqlmzpgoXLix3d3edO3dOmzdv1uzZs3Xu3DlJUuXKlfX22287/HUCknTlyhUNHjxYkjRx4kTbuiUPq2/fvgoLC9Ply5fl4+OjMmXKqGnTpnrllVceacQQADgzChEAACDDnTlzRp988ok++eSTNNt07txZ//3vf+Xl5ZXq+X379mnfvn33/TmtW7fW3LlzlSNHjsfKCzyq4cOH69y5c6pXr55eeOGFR36e9evX2/5+6dIlXbp0Sdu3b9eUKVP00UcfaeDAgRkRFwCcAoUIAACQoebPn6/169dr69atOnbsmC5evKiYmBjlzJlTJUqUUL169dSnTx/VrVs31evr16+v9evXa82aNdq0aZNOnjypyMhI3bhxQz4+PipVqpSefPJJPf/886pfv76DXx3wP5s2bdJ///tfubu7a+bMmbJYLA/9HKVLl1anTp1Ut25dlShRQtKdNVQWL16s77//Xjdv3tTLL78si8Wil156KaNfAnBfMTExWrFihXbu3Kldu3YpIiJCFy5cUGxsrPLkyaOKFSuqVatWeuGFF5Q/f/77Ptfx48c1ffp0/f777zpx4oQSExNVrFgxNWvWTK+++qoqVarkoFcFZ2AxMmLvLNjExMQod+7cio6Olo+Pj9lxHpr/28vNjpDlhH/Q2uwIWQ73ueNxnwPIbG7duqXAwECFhYVp2LBhmjRpUrLzISEhGjNmjCRp7dq1qS5gmfT7YloFjJ9//lmdOnXS7du3lT17dh09elSFCxfO8NcCpGXVqlVq1qzZA9sVKFBAX375pVq0aJHq+S+++EKvvfaabV2fe3l6euqjjz7SK6+88lh5szJX+xzKYpUAAADAQxo/frzCwsJUsmRJjR49+pGeI3fu3PcdRdGmTRvbc9+4cUOzZ89+pJ8DPI4SJUqod+/e+vjjj7VkyRJt3bpVmzdv1jfffKNnn31Wbm5uunjxotq1a6c///wzxfWLFi3SwIEDdevWLeXOnVtjx47Vpk2btHPnTn3xxRcqU6aMbt26pX/961/6/vvvTXiFMANTMwAAAICHcPDgQU2YMEGS9Mknn9h1jZIXX3xR7777rgzD0Pr16zVy5Ei7/SzgXo0aNdLJkyfTPN+1a1ctXbpUHTt21K1btzRmzBgtXrzYdv7GjRu2xVxz5sypTZs2qXLlyrbztWrVUrdu3dSgQQP99ddfeu211/TMM8+w7k8WQCECAAAAeAjTpk3TrVu3VLp0ad24cUOLFi1K0ebvv/+2/X3NmjW2XV7atm37UB+yChUqpAIFCujChQuKiIh4/PDAQ3Bzc3tgmw4dOqhChQo6ePCgNmzYkOzcypUrdf78eUnS4MGDkxUhkvj4+Gjq1Klq1qyZzp07p3nz5qXYTQmZT6YsRPj7++vEiROpnhs4cKBmzpyZ7FhMTIxCQkK0ePFinTt3ToULF1bnzp0VEhLiEvNrAAAA4DhxcXGS7iwq+dxzzz2w/XvvvWf7+/Hjxx/6216WdIOzS7qnb968mez4zp07bX9/5pln0ry+YcOG8vb21s2bN/X9999TiMgCMmUhQroz527IkCEpjteqVSvZ4+vXrys4OFh79+5Vs2bN9Nxzz2nfvn2aNm2a1q5dq02bNjE0CADgcliU1fFYlBX2cP78eV26dEmSVLRoUZPTACmFhYVp7969kqQKFSokOxcVFWX7u6+vb5rP4e7urnz58unMmTPasmWL4uPj5e6eaT+qQpm4EJEnTx6FhIQ8sN2kSZO0d+9eDR8+XBMnTrQdHz16tMaOHatJkybZVjwGAAAA5s2bp3nz5t23TXp2zUiPL774wjYiIjg4+JGeA8hoN27cUEREhJYtW6ZJkyYpISFBkmzrQSS5+wvd6OjoNJ/PMAzFxMRIurMjzZEjR1IUNZC5ZOldMwzD0H//+1/lzJlTo0aNSnbunXfeUd68eTV79myGwwEAACBDhYeHa8+ePfdt8/PPP9umdXh7e6tfv36OiAakat68ebJYLLJYLMqRI4fKlSunN998U5GRkZKkt956Sz169Eh2TUBAgO3v69evT/O59+zZo2vXrtke32+BTGQOmXZERFxcnObPn6+IiAjlzZtX9erVU7Vq1ZK1OXz4sM6cOaMWLVqkmH7h7e2tp59+Wj/++KOOHDmismXLOjI+AAAAMrHw8HA1atRIdevWVdu2bRUYGKhChQrJMAwdO3ZM33//vb7//nvbF2KTJ09WsWLFTE4NpBQYGKiZM2fqySefTHGuVatW8vDw0O3btzV16lT17t1bBQoUSNYmMTExxW4wV69etWtmmC/TFiLOnTunvn37JjvWsmVLLVy40HbzHz58WJLSLDIkHT98+HCabeLi4mwLFkmyDSkCAAAAHmTr1q3aunVrmuezZ8+uadOm6aWXXnJgKiClDh062Nbbi42N1dGjR/Xtt9/qhx9+UI8ePfTRRx+pTZs2ya4pXry4XnnlFU2fPl0RERGqX7++Jk2apEaNGsnT01N79+5VSEiIfv31V3l6eurWrVu250fmlikLEf3791dwcLAqVaokLy8vHThwQGPGjNHKlSvVrl07bd68WRaLxTZPKXfu3Kk+T9KOGfebzzRhwgTWkAAAAMBDqVmzpr788ktt3bpVu3bt0tmzZ3Xx4kXFx8crb968qlSpkpo0aaIBAwaoUKFCZscFlCdPHuXJk8f2uHbt2urevbsWLlyoPn36qH379po9e3aKL4M//PBDHT9+XMuWLdOhQ4fUoUOHFM9dunRpderUSZMnT5Yk5cqVy46vBM4gU64RMWrUKAUHB6tAgQLKlSuXnnzySf38889q0KCBtm7dqhUrVmTYz3rnnXcUHR1t+3Pq1KkMe24AAAC4ppCQEBmGIcMwUl2oMleuXOrRo4c+/fRTbdu2TSdOnND169cVFxenc+fOafXq1RoxYgRFCDi9Xr166dlnn1ViYqIGDRqky5cvJzvv6empH3/8UXPnzlXNmjVltf7vI2iePHn02muv6Y8//ki2Ll/evHkdlh/myJSFiNRYrVbbAj+bN2+W9L+REGmNeEiaZpHWiAlJ8vLyko+PT7I/AAAAAJBVtG/fXpJ0/fp1rVy5MsV5i8Wivn37ateuXYqOjtaRI0d08uRJXbx4UdOnT1fu3Ln1559/2tpXrFjRYdlhjkw5NSMtSWtD3LhxQ1LyNSBS86A1JAAAAAAgqytYsKDt7ydOnLhv25w5cypnzpzJjt26dUs7duyQdGeaxr0LWiLzyTIjIiRp+/btkiR/f39JdwoMRYsW1ebNm3X9+vVkbW/evKkNGzaoaNGiKlOmjKOjAgAAAIBLiIiIsP393iJDeqxYscI2Sr1r164ZlgvOK9MVIg4cOKArV66kOL5p0yZNnTpVXl5e6tSpk6Q7Q4QGDBiga9euaezYscnaT5gwQZcvX9aAAQNksVgcER0AAAAAXM53331n+3uVKlUe6tr4+HiNHj1akuTh4aEXX3wxQ7PBOWW6qRnffvutJk2apCZNmsjf319eXl76+++/9dtvv8lqtWrmzJkqWbKkrf3w4cP1008/adKkSdqzZ49q1qypffv2aeXKlQoMDNTw4cNNfDUAAAAAYI558+ape/fu8vb2TrPNtGnTbJsB+Pv7q0GDBsnOX7x4UdmzZ1f27NlTXHvr1i0NGDDAtj7Ev//9b5UuXToDXwGcVaYrRDRq1EhhYWH6448/tH79et28eVO+vr7q1q2b3njjDQUFBSVrnyNHDq1bt05jxozR999/r3Xr1qlw4cJ64403NHr0aOXIkcOkVwIAAID78X97udkRspzwD1qbHQEOFBISojfffFOdO3dWgwYN9MQTTyhnzpy6evWq/vrrL3311Ve2jQA8PT01a9Ysubsn/4i5bt06vfjii+rRo4eaNm2qkiVL6saNG9qzZ49mzpypAwcOSJKaN2+ud9991+GvEebIdIWI4OBgBQcHP9Q1uXPn1tSpUzV16lQ7pQIAAAAA1xMVFaVZs2Zp1qxZabYpXry45syZo6ZNm6Z6/sqVK/rss8/02WefpXq+b9+++vzzz+Xp6ZkhmeH8Ml0hAgAAAADw+FavXq1Vq1Zp7dq1CgsLU2RkpC5duiRvb2/5+voqMDBQbdq0UdeuXVOdeiFJTz31lD788EOtWbNGBw8eVGRkpKxWq4oWLapGjRqpb9++qlOnjoNfGcxGIQIAAAAAkMITTzyhJ554QgMHDnzk5/D19dVbb72lt956KwOTwdVlul0zAAAAAACA86IQAQAAAAAAHIZCBAAAAAAAcBgKEQAAAAAAwGEoRAAAAAAAAIdh1wwAAAAAcFL+by83O0KWE/5Ba7MjZHqMiAAAAAAAAA5DIQIAAAAAADgMhQgAAAAAAOAwFCIAAAAAAIDDUIgAAAAAAAAOQyECAAAAAAA4DIUIAAAAAADgMBQiAAAAAACAw1CIAAAAAAAADkMhAgAAAAAAOAyFCAAAAAAA4DAUIgAAAAAAgMNQiAAAAAAAAA5DIQIAAAAAADgMhQgAAAAAAOAwFCIAAAAAAIDDUIgAAAAAAAAOQyECAAAAAAA4DIUIAAAAAADgMBQiAAAAAACAw1CIAAAAAAAADkMhAgAAAAAAOAyFCAAAAAAA4DAUIgAAAAAAgMNQiAAAAAAAAA5DIQIAAAAAADgMhQgAAAAAAOAwFCIAAAAAAIDDUIgAAAAAAAAOQyECAAAAAAA4DIUIAAAAAADgMBQiAAAAAACAw1CIAAAAAAAADkMhAgAAAAAAOAyFCAAAAAAA4DAUIgAAAAAAgMNQiAAAAAAAAA5DIQIAAAAAADgMhQgAAAAAAOAwFCIAAAAAAIDDUIgAAAAAAAAOQyECAAAAAAA4DIUIAAAAAADgMBQiAAAAAACAw1CIAAAAAAAADkMhAgAAAAAAOAyFCAAAAAAA4DAUIgAAAAAAgMNQiAAAAAAAAA5DIeIuO3fuVKtWrZQ3b17lyJFDQUFB+vrrr82OBQAAAABApuFudgBnsW7dOrVo0UKenp7q3r27cufOrSVLlqhHjx4KDw/XiBEjzI4IAAAAAIDLY0SEpPj4eA0YMEAWi0UbNmzQrFmzNHnyZO3bt0+VKlXS6NGjdfjwYbNjAgAAAADg8ihESFqzZo2OHj2q559/XtWrV7cdz5Url959913Fx8dr7ty5JiYEAAAAACBzoBChO9MyJKl58+YpziUdW79+vSMjAQAAAACQKbFGhGSbdlG2bNkU5/LmzasCBQqkOTUjLi5OcXFxtsfR0dGSpJiYGDsktb/EuBtmR8hyXPVecWXc547Hfe543OeOx33ueNznjsd97njc547nivd5UmbDMExOkj4UIvS/4kHu3LlTPe/j46PTp0+nem7ChAkaM2ZMiuMlSpTIuIDI1HJ/ZHYCwP64z5EVcJ8jK+A+R1bgyvf51atX0/xc60woRDymd955R0OHDrU9TkxMVFRUlPLnzy+LxWJisqwjJiZGJUqU0KlTp+Tj42N2HMAuuM+RFXCfIyvgPkdWwH3ueIZh6OrVqypatKjZUdKFQoT+NxIiaWTEvWJiYtKsKnl5ecnLyyvZsTx58mRoPqSPj48PHR0yPe5zZAXc58gKuM+RFXCfO5YrjIRIwmKV+t/aEKmtA3H58mVdvHgx1fUjAAAAAADAw6EQISk4OFiS9Ntvv6U4l3QsqQ0AAAAAAHh0FCIkNWnSRKVLl9bXX3+tvXv32o5fvXpV7733ntzd3dW3b1/T8uH+vLy8NHr06BRTZIDMhPscWQH3ObIC7nNkBdzneBCL4Sr7e9jZ2rVr1aJFC3l5eem5556Tj4+PlixZouPHj+v999/XyJEjzY4IAAAAAIDLoxBxlx07dmj06NHaunWrbt26pUqVKmnIkCHq0aOH2dEAAAAAAMgUKEQAAAAAAACHYY0IAAAAAADgMBQiAAAAAACAw1CIAAAAAAAADuNudgDgYcXGxmrHjh06ffq0Ll68qOzZs6tgwYKqUqWKnnjiCbPjARnm9u3bOn/+fLL7PE+ePGbHAjIM/TmymujoaGXPnl0eHh5mRwEAU1GIgEuIjY1VaGio5s6dqx07dig+Pl6SZBiGLBaLrV2RIkXUsWNHvfTSS6pSpYpZcYFHdvToUc2bN09r1qzR7t27dfv27WTnixYtqoYNG6pDhw5q37693N3pxuFa6M+RVVy9elXffvut1qxZoy1btigiIkIJCQmSpFy5cqlKlSpq2LCh2rdvr1q1apmcFnh0q1evtt3nqRWWg4OD1aZNGxUuXNjsqHAi7JoBp3br1i1NmzZNEydO1JUrV5QjRw7VrFlTNWvWlK+vr/Lly6fY2FhFRUXpn3/+0fbt23X8+HFZLBY1btxYH374oQIDA81+GcADbdu2TaNGjdKaNWuUmJgoT09PVapUKdX7/Ny5c7JYLCpUqJAGDRqkoUOHKlu2bGa/BOC+6M+RVZw8eVLvv/++QkNDdf36dUlSvnz5VKhQoWT3+enTp5WQkCCLxaLAwEANHTqULePhMq5du6bp06dr1qxZOnnypJI+Unp7e9vu8+joaCUmJkqS3N3d1a5dO73xxhuqX7++mdHhJChEwKn5+/srIiJCHTp0UM+ePdWqVasHDmc8duyYFi5cqAULFujEiROaNWuW+vXr56DEwMPr3r27vvvuOxUqVEjdu3dX165dVbNmTXl6eqba/tSpU/rtt9/05ZdfauPGjSpcuLAWLlyoRo0aOTg5kH7058gK3n77bU2fPl2JiYl65pln1LVrV9WtW1f+/v4p2sbGxmrXrl367bffFBoaqmPHjqlGjRqaNWuWqlev7vjwQDrNnDlTISEhOn/+vKpVq2a7z2vVqqWcOXPa2hmGocOHD2v79u367bff9OOPP+r69etq3769pkyZolKlSpn4KmA2ChFwan379tW77777SHOFExIStGDBAlmtVvXp08cO6YCMUbZsWY0cOVK9evWSm5vbQ1175MgRvf/++ypXrpxGjBhhp4TA46M/R1aQN29eDR48WIMHD1bevHkf6to1a9bovffeU6NGjTRq1Cg7JQQen4eHh3r06KFhw4apUqVK6b4uaWrehAkT1KtXL+7zLI5CBACYLCEh4aELEPZ4DgDA44mOjlbu3LlNfw7Ano4ePfpYCwonJCTo9OnT8vPzy8BUcDUUIgAAAAAAgMOw3Dpc0q1bt7Rq1SodPHhQ169f17vvvitJunnzpmJiYlSgQAFZrVaTUwIAHoT+HFlJVFSUrl+/rhIlSpgdBQBMxYgIuJyffvpJL730ki5cuGDb7i1pO6wdO3aobt26WrhwoZ5//nmTkwKP7tatW1q6dKl27typK1eu2O7xu1ksFs2ePduEdEDGoD9HVhAdHa1Ro0Zp0aJFunjxoiwWi23b2u3bt2vMmDF67733VLNmTZOTAo/n3Llz2r17d5q/t0hS7969HZwKzopCBFzK5s2b1ahRIxUpUkTDhg3Ttm3bFBoamqyzK1++vCpXrqzFixebmBR4dCdOnFCzZs109OhR3a+LvvtDG+Bq6M+RFURFRalevXo6dOiQatSooZs3byosLMx2n8fGxqpw4cJ64YUXNHXqVJPTAo/m5s2bevHFFxUaGprm7y33FpsBpmbApbz//vvKkyePdu3apYIFC+rSpUsp2tSsWVM7duwwIR2QMd544w0dOXJEvXr1Uv/+/VW8eHG5u9NdI3OhP0dWEBISokOHDik0NFTdunXTmDFjNHbsWNv5bNmyKTg4WGvWrDExJfB4/v3vf+urr75SuXLl9Nxzz/F7C9KFOwQuZdu2berSpYsKFiyYZpsSJUrop59+cmAqIGOtWbNGTZo00fz5882OAtgN/Tmygp9++klt2rRRt27d0mzj5+enLVu2ODAVkLG+++47VaxYUbt375aXl5fZceAiWP0JLiUuLu6BW1pFR0ezsBlcWmJioqpXr252DMCu6M+RFZw9e1YVK1a8bxtvb29dv37dQYmAjHflyhW1bNmSIgQeCv93h0spXbq0du3add82W7duVYUKFRyUCMh4devWVVhYmNkxALuiP0dWkD9/fp06deq+bQ4ePKgiRYo4KBGQ8QICAhQZGWl2DLgYChFwKZ07d9bGjRu1YMGCVM9PnjxZf//9932HQALO7oMPPtDatWv1/fffmx0FsBv6c2QFTz/9tH766SdFRESkev7AgQP65Zdf1LRpUwcnAzLOv//9b/344486cuSI2VHgQtg1Ay7l2rVrqlOnjsLCwtSkSRPdvHlTmzdv1ptvvqmtW7dqy5YtCgwM1JYtWxgeBpc1duxY7dy5UytWrFBwcLCqV6+e6hB2i8Wid99914SEwOOjP0dW8NdffykoKEi+vr4aP368tm7dqhkzZujvv//Wli1bNHLkSF27dk179uxR2bJlzY4LPJINGzbo008/1apVqzRkyJA0f2+R7hTnAIlCBFzQ5cuXNWjQIH377bfJtgCyWCzq2rWrZsyYobx585qYEHg86Z0TzzZYcHX058gKfvrpJ/Xu3VtXr16V9L9tDA3DUK5cuRQaGqpWrVqZnBJ4dFar1XZPS3f68LTwewuSUIiAy7p06ZJ27typqKgo+fj4qHbt2vL19TU7FvDY1q9fn+62wcHBdkwCOAb9OTK7qKgozZ8/X9u3b7fd508++aT69eunAgUKmB0PeCwhISH3LT7cbfTo0XZOA1dBIQIAAAAAADgMi1UCAAAAAACHcTc7APCwDhw4oE8//VQ7d+7UlStXUp1rZrFYdPToURPSAQ/v5MmTkqRixYrJzc3N9jg9SpYsaa9YgN3RnyOz2bBhwyNfyyJ+ALISpmbApaxfv14tW7ZUXFyc3N3d5evrK3f31Otpx48fd3A64NEkLfIUFhamcuXK2R4/iMViUXx8vAMSAhmP/hyZUXr779SwiB9cRenSpWWxWLRq1SqVKlVKpUuXTtd1FJZxN0ZEwKW8/fbbio+P13//+1/16dNHbm5uZkcCHlvv3r1lsVhsW10lPQYyM/pzZEajRo2i/0aml5iYmOw+v/dxWvj+G3djRARcSvbs2dW5c2ctXLjQ7CgAgMdAfw4AQNbFYpVwKbly5VKhQoXMjgEAeEz05wAAZF1MzYBLad26tTZu3Gh2DMBhIiIitG/fPkVHR8vHx0eBgYEqVqyY2bGAx0Z/jqxmy5Yt2rt3b7L+vH79+mbHAh5bQkKCrl+/rpw5c8pqTfk9d9L5HDlyMA0PNkzNgEu5ePGi6tevrxYtWuiDDz5Q9uzZzY4E2MWxY8f08ssva/Xq1SnONWnSRDNmzFCZMmVMSAZkDPpzZBXbt29Xnz59dPjwYUl35sknzacvW7as5s6dq7p165oZEXgso0aN0qRJk3Tq1CkVLFgwxfkLFy6oZMmSeueddzRq1CgTEsIZUYiAS2ncuLGuXLmiffv2KUeOHCpbtqxtgb+7WSyWVD/AAa7g9OnTql27tiIjIxUQEKCnn35ahQsXVmRkpDZu3Kj9+/fL19dXO3bsUIkSJcyOCzwS+nNkBWFhYQoKCtL169fVokULNWzY0Nafr1u3Tr/88oty5sypbdu2qWLFimbHBR5JjRo1VKRIES1fvjzNNm3bttWZM2e0e/duByaDM6MQAZeS2nCv1FgsFrbBgssaMGCA5syZoy+++EIDBgxIcX727Nl66aWX1L9/f82aNcuEhMDjoz9HVtC9e3f98MMP+vnnn9WsWbMU51etWqXWrVurY8eOWrRokQkJgceXJ08evfDCC5oyZUqabd566y3NmTNHUVFRDkwGZ8YaEXApiYmJZkcA7O7XX39Vu3btUi1CSNILL7ygZcuWaeXKlQ5OBmQc+nNkBWvXrlWXLl1SLUJIUtOmTdW5c2dG/cClxcfHP7C4bLFYdPPmTQclgitg1wwAcDLnz59XpUqV7tumUqVKunDhgoMSAQAeRXR0tPz9/e/bplSpUoqOjnZMIMAOnnjiCa1Zs+a+bdasWaNSpUo5KBFcAYUIuLTr16/r7Nmzun79utlRgAxTsGBB7d+//75tDhw4kOqCUICroj9HZlS0aFFt27btvm22b9+uokWLOigRkPE6d+6svXv3atSoUSmm0iUkJOjdd9/V3r179eyzz5qUEM6IQgRczu3btzV+/HiVK1dOPj4+Kl68uHx8fFS2bFmNHz9et27dMjsi8FhatGihZcuWafbs2amenzNnjpYtW6aWLVs6OBmQsejPkdm1b99e69at07vvvptiWPrNmzc1evRorV27Vu3btzcpIfD4hg4dqgoVKmjcuHEKCAjQwIEDNXbsWA0cOFABAQEaP368AgIC9NZbb5kdFU6ExSrhUmJjY9WsWTNt3bpVbm5ueuKJJ2yrTx89elTx8fF68skntXr1amXLls3suMAjOXXqlGrVqqWLFy+qYsWKCg4Olq+vryIjI7Vhwwbt379fBQoU0K5du9g1Ay6L/hxZQVRUlJ588kkdO3ZM+fPnV1BQkK0/37lzpy5cuKDSpUtrx44dypcvn9lxgUd26dIlvfLKK1q8eLHu/nhptVrVuXNnzZgxQ/nz5zcxIZwNhQi4lDFjxmjMmDF6/vnn9cEHH6h48eK2c2fOnNHbb7+tL7/8UqNHj9bo0aNNTAo8niNHjmjgwIFau3ZtinONGjXS559/rnLlypmQDMgY9OfIKqKiojRs2DAtWrRIsbGxtuPe3t567rnnNHHiRBUoUMDEhEDGOX/+vHbt2qUrV64oT548qlWrlgoVKmR2LDghChFwKQEBAcqVK5d27NiRZpugoCBdvXpVYWFhDkwG2Mfp06e1Z88excTEyMfHR4GBgYyCQKZAf46s5vbt2zp48KCtP69QoYI8PDzMjgUApmD7TriU8PBwvfHGG/dt06RJE3300UeOCQTYWfHixZN9UwxkFvTnyGo8PDxUpUoVs2MAgFOgEAGXkj179gduWXjhwgVlz57dQYmAjOfm5qaQkBC9++67abaZOHGiRo4cqfj4eAcmAzIO/TmygsaNGytHjhyaNm2aypQpk2qb+fPna/78+Q/c/hBwZgkJCfr222+1atUqnTlzRnFxcSnaWCwWrV692oR0cEYUIuBS6tSpo0WLFmnIkCGqVKlSivMHDhzQN998o+DgYBPSARnDMAylZ9YcM+vgyujPkRWsW7dOkrR161Z9//33atiwYYo24eHhWr9+vWODARno+vXrat68ubZt2ybDMGSxWJL9jpL02GKxmJgSzobtO+FSRo4cqbi4ONWuXVuvvfaavv/+e23cuFHff/+9Bg0apNq1aysuLk7vvPOO2VEBu7pw4QI7CcCl0Z8jq2jVqpXc3NzUokULzZo1y+w4QIZ7//33tXXrVo0ZM0YXL16UYRgKCQnR2bNn9c0336hUqVLq0qVLqqMkkHUxIgIupV69egoNDdWAAQP02WefacaMGbZzhmEod+7cmj9/vurXr29iSuDhLViwINnjvXv3pjgm3Rn6ePr0ac2dO1eVK1d2VDwgw9GfI6sICgrSZ599ptatW+vll19WWFiYpkyZwrfDyDSWLFmiOnXq6D//+U+y476+vnr22WdVt25dVatWTR9++CHFZdhQiIDL6dy5s1q0aKGlS5cm202gevXqat++vXLlymV2ROCh9e3b1/ZLqcVi0Y8//qgff/wxRbukoY7ZsmVTSEiIIyMCGY7+HFmFn5+ftm7dqu7du+ujjz7SP//8o0WLFnGPI1M4efKkWrdubXtstVqTjX4oXry4Wrdurfnz51OIgA2FCLiknDlzqmfPnurZs2eq52NjYxm2Dpcyd+5cSXcKDf3791eHDh3Uvn37FO3c3NyUL18+1a1bV3nz5nV0TCDD0Z8jq8iVK5eWLVumoUOHavr06apfv75++ukns2MBjy1HjhyyWv834z937tw6e/ZssjaFCxfWyZMnHR0NToxCBFxK586dNXv2bOXJkyfNNnv27FGPHj104MABxwUDHlOfPn1sf1+/fr06duyodu3amZgIsC/6c2RFVqtVH330kQICAvTaa68pKChIQUFBZscCHoufn1+yIkPlypW1Zs0axcXFycvLS4ZhaPXq1SpSpIiJKeFsWKwSLuWHH35Q1apV01xdeurUqapXr56OHz/u4GRAxpk7dy5FCGR69OfIygYOHKhffvlFCQkJWrFihdlxgMfSpEkTrV271raleJ8+fXTy5EnVrVtXw4YNU4MGDbR371517tzZ5KRwJhaD/d/gQubNm6fXX39dN27c0PDhw/Xee+/Jzc1NkZGR6t27t1atWqVy5copNDRUgYGBZscFHkt8fLz++ecfXblyRQkJCam2efrppx2cCsgY9OfICsaMGaNGjRql2VcfPnxYgwcPVmxsrNauXevgdEDGOHz4sJYsWaLevXvbRj289tprmjFjhm1tq86dO2v+/PnKnj27mVHhRChEwOUcOXJEzz//vHbt2qWgoCC9+OKLGjFihC5cuKCXXnpJ06ZNYz4xXJphGBo1apQ++eQTXb169b5t0ypQAK6A/hwAMq8LFy7o2LFj8vPzU+HChc2OAydDIQIuKSEhQcOHD9e0adNksViUJ08ehrMj0xg7dqxCQkKUJ08etW/fXsWLF5e7e+pL+owePdrB6YCMRX8OAEDWw2KVcEkHDx7Ub7/9Znt89epV/fnnn2rbti37csPlzZkzR35+ftq1a5fy589vdhzArujPkRVs3bpVq1at0pkzZ5Jta5jEYrFo9uzZJiQDHt8nn3yi11577b5trl69qn/9619asGCBg1LB2TEiAi5nxowZGjZsmG7fvq2QkBB17NhRPXr00L59+1S/fn199dVXKlGihNkxgUeWLVs2vfzyy5o2bZrZUQC7oj9HZhcfH6/nnntOS5YskWEYslgsuvtX76THFouFqXZwWVarVa1atdLcuXNVsGDBFOd37NihHj166NixY9znsGHXDLiU9u3b67XXXlORIkW0adMmjRgxQgEBAdq+fbsGDx6szZs3q2rVqlq0aJHZUYFHVqpUKcXExJgdA7Ar+nNkBVOmTNHixYvVr18/7dq1S4ZhaMiQIdq6dasmTpyoPHny6Nlnn9XRo0fNjgo8st69e2vFihWqVq2afv3112Tnxo8fr6eeekoRERH65JNPTEoIZ8SICLgUq9Wqnj17asaMGcqZM2eK87/99pv69Omj8+fPU3GFy5oxY4bGjBmjv/76S4UKFTI7DmAX9OfICqpWrSpJ+vPPPyXdue9DQkI0atQoSdL+/fsVFBSkqVOnauDAgablBB7XN998o5dfflkxMTEaPHiwXn31VQ0YMEAbNmxQlSpVFBoaqooVK5odE06EERFwKQsXLtSCBQtS/aVVkpo3b64///xTrVu3dnAyIOO0adNGwcHBqlevnhYsWKC//vpLJ0+eTPUP4Kro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yUmS7u97Cz516tRJc8RGVFSUkSdPHrsXIgIDAw1Jxscff5zsuD0KEUn3Ye3atZONcEpy5swZI2fOnEbOnDmTjYpI+pleXl4pClWGcadgWbhwYcPNzc34448/Us3VuXNnQ5KxYMEC27G736vURmQl5a1atWqy499++62tP7t48WKqP+9u58+fN7y8vAwfH59U74+EhASjdu3aaRboAABpY40IAMgCktZTeP7555Md79GjhyQpNDQ0zbnwkvTCCy/I29s7xfFXX31V0p353feqUqWK3n//fSUkJKhXr17q1auXEhISNH78eFWqVOmRX0vSc1etWlW///67zp8/L+nOPHFJD9xecsmSJZKkAQMGpHq+atWq8vf317Fjx3T69GlJUlhYmE6ePClvb+9U5/3XqFFDderUedSXo2LFiql9+/Ypjrdp00YlS5bU9evXtXnzZtvxRo0aqVSpUtq3b5/27duX7JqktRF69uyZ6vaOD3L3GgG5c+dWs2bNdPDgQXXr1k3Lli1L87pdu3bp7bffVrt27RQcHKwGDRqoQYMGOnTokCTpzz//TPW65557LtX1PGrXri1J953rP2XKFL300kvKly+f1q5dqwYNGjzMS7Vp2bKlihcvnq4MV69e1fbt2yXdea/ulTdvXnXo0OGRcjyMpPfs6tWrdv9ZSf9m+vbtK3f3lDu/FylSRLVr19a1a9e0e/fuFOebNm2qokWLpji+detWnTt3TjVq1FD16tVT/dnt2rWTpFTXbpDu9E33Suve+fHHHyVJ/fv3V/78+VN9vrutWLFCcXFxatGiRar3h9VqVZs2be6bDwCQupT/NwEAZCp37zBxbyHimWeeUd68eXX+/Hn99ttvatWqVarPERAQcN/jkZGRiomJkY+PT7LzQ4cO1fLly7Vu3TpJd7YOHDJkyGO8mv/p2bOnhg8frtDQUPXo0UO//PKLKlWqpMDAwPte99dff0mSRo0apfHjx6fa5uLFi5LuvHfFixe3fZj28/NT9uzZU70mICBA27Zte6TXUr58+VS3TLRYLCpfvrxOnjypQ4cOqWXLlrbjffv21ejRozV//nxNnTpV0p3FNL/++mtJeuSFEsuWLatChQrJMAydO3dOx44dk4eHh2rXrq28efOmaG8YhgYNGqQZM2bc93nTWjTziSeeSPV4oUKFJEnXrl1L9fwnn3yiP/74Q8WKFdPvv/+e5j2aHg+T4ciRIzIMQ/nz50/1w7V0p5hlb0mZ7v03Zw9J/2Y+//xz2/11r6R/IxERESnOpfXfJul5w8PD0ywiXblyJc3nLVCggHLnzp3ieFr3TlhYmCSlu2iYlG/btm1p5ktaqDa1fACAtFGIAIBM7quvvlJiYqJq1Kih8uXLJzvn6empZ599Vl988YUWLlyYZiEi6Rf7+x2/evVqig9FVqtVwcHBtkJE0u4FGaFHjx56++239eWXX8rNzU3x8fEPHA0hSdHR0ZKU6je390ra0jDpA03BggXTbOvr65ue2KlK6/29+3nv/ea7X79+GjNmjL766itNmjRJ7u7uWrFihS5cuKBatWo98qiTESNGJCtibN68WR06dNBbb70lX19f264lSRYuXKgZM2YoR44c+vDDD9WsWTMVK1bMtg1kz5499dVXX+n27dup/ry0djdJKswYhpHq+SNHjki68218sWLFHuo1Pk6G69evS5Jy5cqV5vPd71xGOXXqlKT73zsZJenfzN9///3Atkn/Zu6W1vub9LwXLlzQhQsXMux5UyvqSVJMTIwkKU+ePPf9WffmO3XqlO39fph8AIC0MTUDADK5pGkZf/zxh23I/d1/vvjiC0l3hi0n/aJ+r7Q+JNx9PLUPX3v37tWECRNsHwyGDx9uG23wuIoWLarGjRtr165d+vDDD2W1Wm1TTe4nZ86ckqTDhw/LuLNWUpp/krYvTLrmfh+WkqaIPIr0PO+972+JEiXUpEkTnT9/Xr/88ouk/03LyMhtI+vXr69Zs2ZJkgYPHpziHkna/nXKlCl65ZVXVKZMGVsRQtIDP8A9qvHjx6tBgwbatWuXWrVqZSsQ2FvSh9+0RmpI9p8uceDAAdsIk6CgILv+LOl/9//vv//+wH8zD3PvJT1vjx49Hvi8ScXMx5H0byhplEV6840cOfKB+e7dGhYAcH8UIgAgE9uzZ4/+/vtvWSwW+fr6pvnH09NTsbGxWrx4carPkzSkOa3jvr6+KUZD3Lx5Uz179tStW7c0duxYdenSRefOndPLL7+cYa8v6dv5kydPKjg4ONV53PeqWLGipPR9u5ukXLlytp9z48aNVNuk9R6lxz///KPExMQUxw3D0D///JMsw9369+8vSZo3b54uXbqkn3/+WZ6ennruueceOUtqOnTooDp16igqKso2DSRJeHi4JKlevXoprrt9+/ZjvS/3kyNHDq1YsUJ16tTR5s2b1aZNG4d8K12mTBlZrVZdvHhRZ8+eTbVN0pB+e5k5c6akO1MeSpUqZdefJT3avxkznzctSaOE0juFytH5ACAroRABAJlY0miIp59+WufOnUvzz5tvvpms/b1mz56tuLi4FMeT1gVo3rx5inMjRozQ/v37VadOHb399tuaOXOmChcurMWLF2vBggUZ8vo6d+6s5s2bq0mTJnr99dfTdU2nTp0kSdOnT09z2P+9KlSooBIlSig2NjbV7Hv37tXWrVvTH/wep0+fTnUhyOXLl+vEiRPKkSOH6tevn+J8x44dlTdvXi1btkyfffaZbt26pXbt2ilfvnyPnCUtb7/9tqQ779vdowGSRj8kzZW/29y5cx845P5x5MqVS7/88otq1qypdevWqX379qnepxn9M5988klJSvVb8OjoaC1dutRuP/+XX36x/bsbMWKE3X7O3ZL+zfzf//2fbt68mWHP+9RTT6lAgQLat29fhox4eJCkRUTnzJmT5pold2vdurU8PT21YsUKHT582M7pACBroRABAJlUQkKCQkNDJT14J4mkkQXr1q1LdSj9pUuX9MILL9iGvxuGoRkzZmjJkiVyc3PT0KFDk7Vfu3atPvroI2XPnl0LFiyQm5ub8ufPrzlz5kiSXnvtNZ08efKxX2POnDn166+/atWqVeneqWDgwIEqXbq01q5dqx49eqT4VvvatWv69ttvk70mq9Vqezxy5Eht2bLFdu7EiRPq06ePPDw8Hvl1uLu767XXXkv2TfqBAwc0aNAgSdLLL7+c6tQXLy8vPf/887p165bee+89SRk7LeNu7dq1U0BAgC5fvqzPP//cdjxpEb///Oc/yYoOv/zyi4YNG5bqbisZKXfu3Prtt99UrVo1/f777+rcubNu3bpl15+ZdC+89957yQpIly9fVvfu3e87beNRHTlyRG+++abatGmjhIQE9ezZM8V6HfbSsWNH1alTRwcPHlTbtm1t63MkiYuL0/Lly20jdNLL29tbY8eOlSQ9++yz+uGHH1IUB//++2/9+9//TrZrzKPq0KGDatWqpfPnz6tVq1a20UZJ9u3bl+zeLlq0qIYMGaLbt2+rRYsWKYolhmFox44deuWVV+67uwsAICUKEQCQSf3+++86d+6cvL291aVLl/u2rVixoqpXry7DMGxz/u82atQofffdd7Zt+ooXL65//etfMgxDEyZMSLZTRXR0tPr27SvDMDRlyhSVLVvWdu6ZZ57Ryy+/rJiYGPXp0yfdIxIyUs6cObV8+XKVKlVKoaGhKl68uCpWrKg6deqofPnyypMnj7p165as2CDdKZ60atVKUVFRql+/vgICAlS9enWVKVNGV65c0cCBAx85U5cuXVSgQAFVq1bNtjVp5cqVdeLECdWuXVtjxoxJ89qkD3/x8fEqXLiwbWeNjGaxWPTWW29JkqZOnWr7Znz48OHKly+ftm/fLj8/P1WvXl2lSpXSM888o5o1a6pz5852yXO3fPny6ffff1elSpW0fPlyde/e/b7b0T6uLl26qH///oqNjVW7du30xBNPqHbt2ipWrJi2b9+u4cOHS9IjbZ8q3flQnrT9afXq1eXr66uyZctq6tSpcnNzU0hIiEPXJLBarVqyZImqV6+uVatWqWzZsipbtqzq1KmjSpUqycfHR23atNGKFSse+rlfeeUVvf3227p48aI6deqkAgUKKCgoSDVr1lT+/PlVpUoVTZo0KUPW3XBzc9PixYtVvnx5bd++XRUqVFD58uVVq1YtFShQQIGBgfrmm2+SXTNu3Dj17NlTx48fV6NGjVSkSBE9+eSTCgwMVO7cufXkk09q5syZdi9+AUBmQyECADKppGkWbdu2TXWLu3slfbua2vSMp556Shs3blSDBg105MgRXb58WXXq1NGSJUs0bNiwZG0HDRqkkydPqmXLlqmuB5FUnFi3bl2K9QYcpUKFCtq3b58++OAD1a5dWxEREdq7d69u3bql4OBgTZ48WYsWLUp2jZubm5YuXaoJEyaoXLlyOnbsmCIjI9WnTx/t2LFD+fPnf+Q8Xl5eWr9+vW0xyH/++UclS5bU22+/rbVr16a5O4Ak1ahRw7ZdZM+ePR/5w2969OzZU0WLFtW5c+dso1tKliyprVu3qlOnTvL09NTBgwfl7e2tMWPG6JdffpG7u2M26CpYsKBWrVql8uXL64cfflDPnj2VkJBgt583a9YszZgxQ1WqVFFERIROnDihtm3baseOHSpSpIikR989Y9euXdq8ebO2bt2q8PBw5cqVSx07dtTUqVN1+vRpjR492q7/nVNTpEgRbd26JmuQBwAAAghJREFUVTNmzNDTTz+tS5cuac+ePbp69aqCgoI0ZswY2zbBD2vChAnavHmznn/+eeXIkUP79u1TeHi4ihcvrv79+2v58uVq0qRJhryOkiVLavfu3ZowYYJq1KihM2fOKCwsTPny5VOfPn1sI4uSuLu7a+HChVq+fLlt1NWePXt09uxZlStXToMGDdK6detSXcMFAJA2i2HG11EAACBDJCYmqkSJEjpz5oz+/vvvR962Exnntdde06effqpp06ZpyJAhZscBAMDpMCICAAAXtnLlSp05c0a1a9emCOEErl27pu+//16SUl1gFAAAUIgAAMBlxcbG2taPePXVV01Ok7V89NFH2rt3b7JjERER6ty5s86dO6caNWqodu3a5oQDAMDJMTUDAAAXM2/ePM2dO1cHDx7U+fPnValSJe3Zs+exdu7Aw2nYsKHWr1+v3Llzq3Tp0oqLi9PBgweVmJioAgUKaO3atapcubLZMQEAcEqOWUEKAABkmPDwcG3YsEE+Pj5q166dpk+fThHCwQYPHqz/184dEwEQAkEQPAvEhKjBEDKJcQMu9j/oVnDx1Na11mrvXeecuvfWGKPmnLXWqt771ycCwG9ZRAAAAAAxfkQAAAAAMUIEAAAAECNEAAAAADFCBAAAABAjRAAAAAAxQgQAAAAQI0QAAAAAMUIEAAAAECNEAAAAADEPqraMRb1SZ14AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -5929,7 +3033,10 @@ " figsize=(12, 8),\n", " fontsize=14 # Adjust font size for tick labels\n", ")\n", - "\n", + "# Add value labels on top of each bar\n", + "for i, v in enumerate(top_5):\n", + " ax.text(i, v, str(v), ha='center', va='bottom', fontsize=20) \n", + " \n", "# Customize title and axis labels with larger font sizes\n", "ax.set_title('PEDs_ED: Top 5 Too Broad Antibiotic Breakdown by Ranking Differences', fontsize=20)\n", "ax.set_xlabel('Abx Med by Ranking Difference', fontsize=16)\n", @@ -5941,7 +3048,7 @@ }, { "cell_type": "code", - "execution_count": 304, + "execution_count": 79, "metadata": {}, "outputs": [ { @@ -5977,15 +3084,6 @@ "plt.show()" ] }, - { - "cell_type": "code", - "execution_count": 162, - "metadata": {}, - "outputs": [], - "source": [ - "# final_cohort_with_evaluation.drop(columns = ['prescribed_rank'], inplace=True)" - ] - }, { "cell_type": "code", "execution_count": 305, @@ -6002,74 +3100,212 @@ "pair_counts = not_performed_df.drop_duplicates(subset= [\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\", \"organism\"]).groupby([\"final_antibiotic\", \"organism\"]).size().reset_index(name=\"count\").sort_values(by=\"count\", ascending=False)\n", "\n", - "# Display the result\n", + "# # Display the result\n", "\n", - "# Display the result\n", - "not_performed_df.to_csv('../csv_folder/not_performed_df_peds.csv', index=False)\n", - "unique_pairs.to_csv('../csv_folder/unique_pairs_peds.csv', index=False)\n", - "pair_counts.to_csv('../csv_folder/unique_pair_counts_peds.csv', index=False)" + "# # Display the result\n", + "# not_performed_df.to_csv('../csv_folder/not_performed_df_peds.csv', index=False)\n", + "# unique_pairs.to_csv('../csv_folder/unique_pairs_peds.csv', index=False)\n", + "# pair_counts.to_csv('../csv_folder/unique_pair_counts_peds.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 307, + "execution_count": 84, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "presciribed_antibiotic_rank\n", - "1 1004\n", - "2 268\n", - "3 1145\n", - "4 66\n", - "5 82\n", - "6 2\n", - "99 2\n", - "Name: count, dtype: Int64" - ] - }, - "execution_count": 307, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "positive_cohort.groupby([\"anon_id\", \"pat_enc_csn_id_coded\", \"order_proc_id_coded\", \n", - " \"order_time_jittered_utc\", \"result_time_jittered_utc\",\"final_antibiotic\"])[[\"presciribed_antibiotic_rank\"]].min().reset_index()[\"presciribed_antibiotic_rank\"].value_counts().sort_index()\n", - "# negative_cohort[\"final_antibiotic\"].value_counts().sort_index()" + "not_performed_df_peds_ed = final_cohort_with_evaluation[final_cohort_with_evaluation[\"scenario\"] == \"not_performed\"][[\"final_antibiotic\", \"organism\",\"antibiotic\", \"susceptibility\",\"susceptibility_source\", \"min_tested_susceptible_abx\"]]\n", + "not_performed_df_peds_ed.to_csv('../csv_folder/not_performed_df_peds_ed.csv', index=False)" ] }, { "cell_type": "code", - "execution_count": 308, + "execution_count": 83, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
final_antibioticorganismantibioticsusceptibilitysusceptibility_sourcemin_tested_susceptible_abx
0CeftriaxoneESCHERICHIA COLIGentamicinSusceptibleoriginalCefazolin
1CeftriaxoneESCHERICHIA COLICefazolinSusceptibleoriginalCefazolin
2CeftriaxoneESCHERICHIA COLIPiperacillin/TazobactamSusceptibleoriginalCefazolin
3CeftriaxoneESCHERICHIA COLICiprofloxacinSusceptibleoriginalCefazolin
4CeftriaxoneESCHERICHIA COLIAmoxicillin/Clavulanic AcidSusceptibleoriginalCefazolin
.....................
49493CefepimeSERRATIA MARCESCENSGentamicinSusceptibleoriginalTrimethoprim/Sulfamethoxazole
49494CefepimeSERRATIA MARCESCENSCiprofloxacinSusceptibleoriginalTrimethoprim/Sulfamethoxazole
49495CefepimeSERRATIA MARCESCENSAmpicillinNoneoriginalTrimethoprim/Sulfamethoxazole
49496CefepimeSERRATIA MARCESCENSMeropenemSusceptibleoriginalTrimethoprim/Sulfamethoxazole
49497CefepimeSERRATIA MARCESCENSAmpicillinResistantinherent_resistanceTrimethoprim/Sulfamethoxazole
\n", + "

22887 rows × 6 columns

\n", + "
" + ], "text/plain": [ - "7213" + " final_antibiotic organism antibiotic \\\n", + "0 Ceftriaxone ESCHERICHIA COLI Gentamicin \n", + "1 Ceftriaxone ESCHERICHIA COLI Cefazolin \n", + "2 Ceftriaxone ESCHERICHIA COLI Piperacillin/Tazobactam \n", + "3 Ceftriaxone ESCHERICHIA COLI Ciprofloxacin \n", + "4 Ceftriaxone ESCHERICHIA COLI Amoxicillin/Clavulanic Acid \n", + "... ... ... ... \n", + "49493 Cefepime SERRATIA MARCESCENS Gentamicin \n", + "49494 Cefepime SERRATIA MARCESCENS Ciprofloxacin \n", + "49495 Cefepime SERRATIA MARCESCENS Ampicillin \n", + "49496 Cefepime SERRATIA MARCESCENS Meropenem \n", + "49497 Cefepime SERRATIA MARCESCENS Ampicillin \n", + "\n", + " susceptibility susceptibility_source min_tested_susceptible_abx \n", + "0 Susceptible original Cefazolin \n", + "1 Susceptible original Cefazolin \n", + "2 Susceptible original Cefazolin \n", + "3 Susceptible original Cefazolin \n", + "4 Susceptible original Cefazolin \n", + "... ... ... ... \n", + "49493 Susceptible original Trimethoprim/Sulfamethoxazole \n", + "49494 Susceptible original Trimethoprim/Sulfamethoxazole \n", + "49495 None original Trimethoprim/Sulfamethoxazole \n", + "49496 Susceptible original Trimethoprim/Sulfamethoxazole \n", + "49497 Resistant inherent_resistance Trimethoprim/Sulfamethoxazole \n", + "\n", + "[22887 rows x 6 columns]" ] }, - "execution_count": 308, + "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "191+756+409+4646+1211" + "not_performed_df_peds_ed" ] }, { "cell_type": "code", - "execution_count": 245, + "execution_count": 87, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Randomly picked group: ('JC1518716', 131020094223, 405328509, Timestamp('2012-07-12 19:45:00+0000', tz='UTC'), Timestamp('2012-07-14 17:20:00+0000', tz='UTC'), 'Piperacillin/Tazobactam')\n" + "Randomly picked group: ('JC2190949', 131010248351, 370355140, Timestamp('2010-07-13 20:18:00+0000', tz='UTC'), Timestamp('2010-08-22 15:44:00+0000', tz='UTC'), 'Ceftriaxone')\n" ] }, { @@ -6100,9 +3336,8 @@ " result_time_jittered_utc\n", " medication_time\n", " medication_name\n", - " order_med_id_coded\n", + " medication_action\n", " final_antibiotic\n", - " was_positive\n", " organism\n", " antibiotic\n", " susceptibility\n", @@ -6113,238 +3348,274 @@ " scenario\n", " ranking_diff\n", " min_susceptible_test_rank\n", + " min_tested_susceptible_abx\n", + " prescribed_rank\n", " \n", " \n", " \n", " \n", - " 3995\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", + " 8329\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", " Nitrofurantoin\n", - " Susceptible\n", + " Resistant\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 2\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 3996\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Gentamicin\n", - " Resistant\n", + " 8330\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Ampicillin\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", - " 2\n", + " PROTEUS MIRABILIS\n", + " 3\n", + " 1\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 3997\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Amoxicillin/Clavulanic Acid\n", + " 8331\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Cephalexin/Cephalothin\n", " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", - " 2\n", + " PROTEUS MIRABILIS\n", + " 3\n", + " 1\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 3998\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", + " 8332\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", " Ciprofloxacin\n", - " Resistant\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 3\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 3999\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", + " 8333\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", " Levofloxacin\n", - " Resistant\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 3\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 4000\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Cephalexin/Cephalothin\n", - " Intermediate\n", + " 8334\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Trimethoprim/Sulfamethoxazole\n", + " Resistant\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", - " 1\n", - " not_performed\n", - " NaN\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 2\n", + " not_performed\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 4001\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", + " 8335\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Gentamicin\n", + " Susceptible\n", + " original\n", + " PROTEUS MIRABILIS\n", + " 3\n", + " 2\n", + " not_performed\n", + " N/A\n", " 1\n", - " ESCHERICHIA COLI\n", " Ampicillin\n", - " Resistant\n", + " 3\n", + " \n", + " \n", + " 8336\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Cefazolin\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 1\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 4002\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", + " 8337\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Trimethoprim/Sulfamethoxazole\n", - " Resistant\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 4\n", - " 2\n", " not_performed\n", - " NaN\n", - " 2\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 4003\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Tobramycin\n", - " Intermediate\n", + " 8338\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Amoxicillin/Clavulanic Acid\n", + " Susceptible\n", " original\n", - " ESCHERICHIA COLI\n", - " 4\n", - " 5\n", - " not_performed\n", - " NaN\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 2\n", + " not_performed\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", - " 4004\n", - " JC1518716\n", - " 131020094223\n", - " 405328509\n", - " 2012-07-12 19:45:00+00:00\n", - " 2012-07-14 17:20:00+00:00\n", - " 2012-07-12 22:05:00+00:00\n", - " PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION\n", - " 405335391\n", - " Piperacillin/Tazobactam\n", - " 1\n", - " ESCHERICHIA COLI\n", - " Vancomycin\n", + " 8339\n", + " JC2190949\n", + " 131010248351\n", + " 370355140\n", + " 2010-07-13 20:18:00+00:00\n", + " 2010-08-22 15:44:00+00:00\n", + " 2010-07-13 22:21:00+00:00\n", + " CEFTRIAXONE PEDIATRIC IM INJECTION\n", + " Given\n", + " Ceftriaxone\n", + " PROTEUS MIRABILIS\n", + " Doxycycline\n", " Resistant\n", " inherent_resistance\n", - " ESCHERICHIA COLI\n", - " 4\n", - " 5\n", - " not_performed\n", - " NaN\n", + " PROTEUS MIRABILIS\n", + " 3\n", " 2\n", + " not_performed\n", + " N/A\n", + " 1\n", + " Ampicillin\n", + " 3\n", " \n", " \n", "\n", @@ -6352,103 +3623,111 @@ ], "text/plain": [ " anon_id pat_enc_csn_id_coded order_proc_id_coded \\\n", - "3995 JC1518716 131020094223 405328509 \n", - "3996 JC1518716 131020094223 405328509 \n", - "3997 JC1518716 131020094223 405328509 \n", - "3998 JC1518716 131020094223 405328509 \n", - "3999 JC1518716 131020094223 405328509 \n", - "4000 JC1518716 131020094223 405328509 \n", - "4001 JC1518716 131020094223 405328509 \n", - "4002 JC1518716 131020094223 405328509 \n", - "4003 JC1518716 131020094223 405328509 \n", - "4004 JC1518716 131020094223 405328509 \n", + "8329 JC2190949 131010248351 370355140 \n", + "8330 JC2190949 131010248351 370355140 \n", + "8331 JC2190949 131010248351 370355140 \n", + "8332 JC2190949 131010248351 370355140 \n", + "8333 JC2190949 131010248351 370355140 \n", + "8334 JC2190949 131010248351 370355140 \n", + "8335 JC2190949 131010248351 370355140 \n", + "8336 JC2190949 131010248351 370355140 \n", + "8337 JC2190949 131010248351 370355140 \n", + "8338 JC2190949 131010248351 370355140 \n", + "8339 JC2190949 131010248351 370355140 \n", "\n", " order_time_jittered_utc result_time_jittered_utc \\\n", - "3995 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "3996 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "3997 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "3998 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "3999 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "4000 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "4001 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "4002 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "4003 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "4004 2012-07-12 19:45:00+00:00 2012-07-14 17:20:00+00:00 \n", - "\n", - " medication_time medication_name \\\n", - "3995 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "3996 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "3997 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "3998 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "3999 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "4000 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "4001 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "4002 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "4003 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "4004 2012-07-12 22:05:00+00:00 PIPERACILLIN-TAZOBACTAM PEDIATRIC IV INFUSION \n", - "\n", - " order_med_id_coded final_antibiotic was_positive \\\n", - "3995 405335391 Piperacillin/Tazobactam 1 \n", - "3996 405335391 Piperacillin/Tazobactam 1 \n", - "3997 405335391 Piperacillin/Tazobactam 1 \n", - "3998 405335391 Piperacillin/Tazobactam 1 \n", - "3999 405335391 Piperacillin/Tazobactam 1 \n", - "4000 405335391 Piperacillin/Tazobactam 1 \n", - "4001 405335391 Piperacillin/Tazobactam 1 \n", - "4002 405335391 Piperacillin/Tazobactam 1 \n", - "4003 405335391 Piperacillin/Tazobactam 1 \n", - "4004 405335391 Piperacillin/Tazobactam 1 \n", - "\n", - " organism antibiotic susceptibility \\\n", - "3995 ESCHERICHIA COLI Nitrofurantoin Susceptible \n", - "3996 ESCHERICHIA COLI Gentamicin Resistant \n", - "3997 ESCHERICHIA COLI Amoxicillin/Clavulanic Acid Susceptible \n", - "3998 ESCHERICHIA COLI Ciprofloxacin Resistant \n", - "3999 ESCHERICHIA COLI Levofloxacin Resistant \n", - "4000 ESCHERICHIA COLI Cephalexin/Cephalothin Intermediate \n", - "4001 ESCHERICHIA COLI Ampicillin Resistant \n", - "4002 ESCHERICHIA COLI Trimethoprim/Sulfamethoxazole Resistant \n", - "4003 ESCHERICHIA COLI Tobramycin Intermediate \n", - "4004 ESCHERICHIA COLI Vancomycin Resistant \n", - "\n", - " susceptibility_source matched_organism presciribed_antibiotic_rank \\\n", - "3995 original ESCHERICHIA COLI 4 \n", - "3996 original ESCHERICHIA COLI 4 \n", - "3997 original ESCHERICHIA COLI 4 \n", - "3998 original ESCHERICHIA COLI 4 \n", - "3999 original ESCHERICHIA COLI 4 \n", - "4000 original ESCHERICHIA COLI 4 \n", - "4001 original ESCHERICHIA COLI 4 \n", - "4002 original ESCHERICHIA COLI 4 \n", - "4003 original ESCHERICHIA COLI 4 \n", - "4004 inherent_resistance ESCHERICHIA COLI 4 \n", - "\n", - " tested_antibiotic_rank scenario ranking_diff \\\n", - "3995 2 not_performed NaN \n", - "3996 2 not_performed NaN \n", - "3997 2 not_performed NaN \n", - "3998 3 not_performed NaN \n", - "3999 3 not_performed NaN \n", - "4000 1 not_performed NaN \n", - "4001 1 not_performed NaN \n", - "4002 2 not_performed NaN \n", - "4003 5 not_performed NaN \n", - "4004 5 not_performed NaN \n", - "\n", - " min_susceptible_test_rank \n", - "3995 2 \n", - "3996 2 \n", - "3997 2 \n", - "3998 2 \n", - "3999 2 \n", - "4000 2 \n", - "4001 2 \n", - "4002 2 \n", - "4003 2 \n", - "4004 2 " + "8329 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8330 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8331 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8332 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8333 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8334 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8335 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8336 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8337 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8338 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "8339 2010-07-13 20:18:00+00:00 2010-08-22 15:44:00+00:00 \n", + "\n", + " medication_time medication_name \\\n", + "8329 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8330 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8331 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8332 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8333 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8334 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8335 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8336 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8337 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8338 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "8339 2010-07-13 22:21:00+00:00 CEFTRIAXONE PEDIATRIC IM INJECTION \n", + "\n", + " medication_action final_antibiotic organism \\\n", + "8329 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8330 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8331 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8332 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8333 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8334 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8335 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8336 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8337 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8338 Given Ceftriaxone PROTEUS MIRABILIS \n", + "8339 Given Ceftriaxone PROTEUS MIRABILIS \n", + "\n", + " antibiotic susceptibility susceptibility_source \\\n", + "8329 Nitrofurantoin Resistant original \n", + "8330 Ampicillin Susceptible original \n", + "8331 Cephalexin/Cephalothin Susceptible original \n", + "8332 Ciprofloxacin Susceptible original \n", + "8333 Levofloxacin Susceptible original \n", + "8334 Trimethoprim/Sulfamethoxazole Resistant original \n", + "8335 Gentamicin Susceptible original \n", + "8336 Cefazolin Susceptible original \n", + "8337 Piperacillin/Tazobactam Susceptible original \n", + "8338 Amoxicillin/Clavulanic Acid Susceptible original \n", + "8339 Doxycycline Resistant inherent_resistance \n", + "\n", + " matched_organism presciribed_antibiotic_rank tested_antibiotic_rank \\\n", + "8329 PROTEUS MIRABILIS 3 2 \n", + "8330 PROTEUS MIRABILIS 3 1 \n", + "8331 PROTEUS MIRABILIS 3 1 \n", + "8332 PROTEUS MIRABILIS 3 3 \n", + "8333 PROTEUS MIRABILIS 3 3 \n", + "8334 PROTEUS MIRABILIS 3 2 \n", + "8335 PROTEUS MIRABILIS 3 2 \n", + "8336 PROTEUS MIRABILIS 3 1 \n", + "8337 PROTEUS MIRABILIS 3 4 \n", + "8338 PROTEUS MIRABILIS 3 2 \n", + "8339 PROTEUS MIRABILIS 3 2 \n", + "\n", + " scenario ranking_diff min_susceptible_test_rank \\\n", + "8329 not_performed N/A 1 \n", + "8330 not_performed N/A 1 \n", + "8331 not_performed N/A 1 \n", + "8332 not_performed N/A 1 \n", + "8333 not_performed N/A 1 \n", + "8334 not_performed N/A 1 \n", + "8335 not_performed N/A 1 \n", + "8336 not_performed N/A 1 \n", + "8337 not_performed N/A 1 \n", + "8338 not_performed N/A 1 \n", + "8339 not_performed N/A 1 \n", + "\n", + " min_tested_susceptible_abx prescribed_rank \n", + "8329 Ampicillin 3 \n", + "8330 Ampicillin 3 \n", + "8331 Ampicillin 3 \n", + "8332 Ampicillin 3 \n", + "8333 Ampicillin 3 \n", + "8334 Ampicillin 3 \n", + "8335 Ampicillin 3 \n", + "8336 Ampicillin 3 \n", + "8337 Ampicillin 3 \n", + "8338 Ampicillin 3 \n", + "8339 Ampicillin 3 " ] }, - "execution_count": 245, + "execution_count": 87, "metadata": {}, "output_type": "execute_result" } @@ -6567,21 +3846,21 @@ }, { "cell_type": "code", - "execution_count": 274, + "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ranking_diff\n", - "1.0 228\n", - "2.0 497\n", - "3.0 28\n", - "4.0 3\n", + "1 228\n", + "2 497\n", + "3 28\n", + "4 3\n", "Name: count, dtype: int64" ] }, - "execution_count": 274, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.env b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.env deleted file mode 100644 index 64ad5ac7..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.env +++ /dev/null @@ -1 +0,0 @@ -GROQ_API_KEY = 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 \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.gitignore b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.gitignore deleted file mode 100644 index 37d97a55..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Python -__pycache__/ -*.py[cod] -*$py.class -*.so -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -*.egg-info/ -.installed.cfg -*.egg - -# Virtual Environment -venv/ -env/ -ENV/ - -# IDE -.idea/ -.vscode/ -*.swp -*.swo - -# Project specific -csv_output/ -*.csv -*.log -Recommender_API/api/ -*.log - -Recommender_API/Notebook/ -*.log - - -# Jupyter Notebook -.ipynb_checkpoints -*.log -*.ipynb - -# OS specific -.DS_Store -Thumbs.db \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/Notebook/clinical_workflow b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/Notebook/clinical_workflow deleted file mode 100644 index bb5b9b0d..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/Notebook/clinical_workflow +++ /dev/null @@ -1,15 +0,0 @@ -// Clinical Workflow -digraph { - rankdir=LR - extract_patient_info [label="Extract Patient Info"] - match_icd10_code [label="Match ICD-10 Code"] - validate_icd10_code_exists [label="Validate Code Exists"] - validate_icd10_clinical_match [label="Validate Clinical Match"] - end [label=END] - extract_patient_info -> match_icd10_code - match_icd10_code -> validate_icd10_code_exists - validate_icd10_code_exists -> match_icd10_code [label="if error"] - validate_icd10_code_exists -> validate_icd10_clinical_match [label="if no error"] - validate_icd10_clinical_match -> match_icd10_code [label="if error"] - validate_icd10_clinical_match -> end [label="if no error"] -} diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/README.md b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/README.md deleted file mode 100644 index 6f3e593f..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# Medical Recommender API - -A FastAPI-based API that processes clinical cases and recommends medical procedures or medications based on ICD-10 codes. - -## Setup - -1. Install required packages: -```bash -pip install fastapi uvicorn requests google-cloud-bigquery pandas langchain-groq langgraph -``` - -2. Set up Google Cloud credentials: - - Make sure you have the Google Cloud SDK installed - - Authenticate using `gcloud auth application-default login` - - The application uses the project "som-nero-phi-jonc101" - -## Running the API - -1. Start the FastAPI server: -```bash -cd Recommender_API -uvicorn api.fastapi_app:app --reload --port 8002 -``` - -The API will be available at `http://localhost:8002` - -## API Endpoints - -### 1. Process Clinical Case -Processes clinical notes to extract patient information and determine the appropriate ICD-10 code. - -**Endpoint:** `POST /process_clinical_case` - -**Request Body:** -```json -{ - "clinical_question": "Could this patient have stable angina?", - "clinical_notes": "55-year-old male presents with chest pain on exertion..." -} -``` - -**Response:** -```json -{ - "patient_age": 55, - "patient_gender": "male", - "icd10_code": "I25.10", - "rationale": "Patient presents with typical symptoms of stable angina...", - "error": null -} -``` - -### 2. Get Orders -Retrieves recommended procedures or medications based on the ICD-10 code and patient information. - -**Endpoint:** `POST /get_orders` - -**Request Body:** -```json -{ - "icd10_code": "I25.10", - "patient_age": 55, - "patient_gender": "male", - "result_type": "proc", // or "med" - "limit": 10, - "min_patients_for_non_rare_items": 10, - "year": 2024 -} -``` - -**Response:** -```json -{ - "icd10_code": "I25.10", - "result_type": "proc", - "patient_age": 55, - "patient_gender": "male", - "data": [ - { - "itemId": "PROC123", - "description": "Cardiac Stress Test", - "patientRate": 45.5, - "encounterRate": 30.2, - "nPatientscohortItem": 150, - "nEncounterscohortItem": 75, - "nPatientsCohortTotal": 330, - "nEncountersCohortTotal": 248 - } - // ... more items - ] -} -``` - -## Example Usage - -You can use the provided example script to test the API: - -```bash -cd Recommender_API/api -python example_usage.py -``` - -Or use curl commands: - -```bash -# Process clinical case -curl -X POST "http://localhost:8002/process_clinical_case" \ - -H "Content-Type: application/json" \ - -d '{ - "clinical_question": "Could this patient have stable angina?", - "clinical_notes": "55-year-old male with chest pain on exertion..." - }' - -# Get orders -curl -X POST "http://localhost:8002/get_orders" \ - -H "Content-Type: application/json" \ - -d '{ - "icd10_code": "I25.10", - "patient_age": 55, - "patient_gender": "male", - "result_type": "proc", - "limit": 10 - }' -``` - -## API Documentation - -Once the server is running, you can access the interactive API documentation at: -- Swagger UI: `http://localhost:8002/docs` -- ReDoc: `http://localhost:8002/redoc` - -## Logging - -The API logs its operations to `clinical_workflow.log` in the directory where the server is started. You can monitor the logs in real-time using: - -```bash -tail -f clinical_workflow.log -``` \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/__init__.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/__init__.py deleted file mode 100644 index b751d11e..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# This file makes the api directory a Python package \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api.py deleted file mode 100644 index a6a13c2c..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api.py +++ /dev/null @@ -1,217 +0,0 @@ -from google.cloud import bigquery -import pandas as pd -from typing import List, Optional, Union, Dict -import logging - -logger = logging.getLogger(__name__) - -class BigQueryAPI: - def __init__(self, project_id: str = "som-nero-phi-jonc101"): - """Initialize the BigQuery API client. - - Args: - project_id (str): Google Cloud project ID - """ - try: - self.client = bigquery.Client(project_id) - logger.info(f"Successfully initialized BigQuery client for project {project_id}") - except Exception as e: - logger.error(f"Failed to initialize BigQuery client: {str(e)}") - raise Exception(f"Failed to initialize BigQuery client. Please ensure you have valid Google Cloud credentials set up. Error: {str(e)}") - - def get_orders( - self, - params: Dict[str, Union[str, int, None]], - min_patients_for_non_rare_items: int = 10, - result_type: str = "med", # Options: "proc", "med" - limit: int = 100, - year: int = 2024 # Default to 2024 if not specified - ) -> pd.DataFrame: - """Get common orders based on patient parameters and filters. - - Args: - params (Dict): Dictionary containing patient parameters: - - patient_age (Optional[int]): Patient age - - patient_gender (Optional[str]): Patient gender - - icd10_code (Optional[str]): ICD-10 diagnosis code - min_patients_for_non_rare_items (int): Minimum number of patients for non-rare items - result_type (str): Type of results to return ("proc" or "med") - limit (int): Maximum number of results to return - year (int): Year of the dataset to use (2022-2024) - - Returns: - pd.DataFrame: Results showing most common orders - """ - try: - # Validate year - if year not in [2022, 2023, 2024]: - raise ValueError("Year must be between 2022 and 2024") - - # Extract parameters - patient_age = params.get('patient_age') - patient_gender = params.get('patient_gender') - icd10_code = params.get('icd10_code') - - # Build age filter if provided - age_filter = "" - # if patient_age is not None: - # age_filter = f"AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) = {patient_age}" - if patient_age is not None: - # Map single age to age group - if patient_age < 18: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 0 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 17" - elif patient_age < 45: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 18 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 44" - elif patient_age < 65: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 45 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 64" - else: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 65" - - # Build gender filter if provided - gender_filter = "" - if patient_gender is not None: - gender_filter = f"AND LOWER(demogx.gender) = LOWER('{patient_gender}')" - - # Build diagnosis filter if provided - diagnosis_filter = "" - if icd10_code is not None: - diagnosis_filter = f"AND dx.icd10 = '{icd10_code}'" - - logger.info(f"Building query for params={params}, type={result_type}, year={year}") - - query = f""" - WITH query_params AS ( - select - ['3'] as excludeMedOrderClass, - {min_patients_for_non_rare_items} as minPatientsForNonRareItems - ), - - cohortEncounter AS ( - select distinct - enc.anon_id, - demogx.birth_date_jittered_utc as birthDateTime, - demogx.gender as gender, - pat_enc_csn_id_coded as encounterId, - appt_when_jittered_utc as encounterDateTime, - dx.icd9, dx.icd10, dx_name, - DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) as age_when_encountered - from `shc_core_{year}.encounter` as enc - join `shc_core_{year}.diagnosis` as dx on enc.pat_enc_csn_id_coded = dx.pat_enc_csn_id_jittered - left join `shc_core_{year}.demographic` as demogx on demogx.anon_id = enc.anon_id - where visit_type like 'NEW PATIENT%' - and appt_status = 'Completed' - {diagnosis_filter} - {gender_filter} - {age_filter} - ), - - cohortEncounterCount AS ( - select count(distinct anon_id) as nPatients, count(distinct encounterId) as nEncounters - from cohortEncounter - )""" - - if result_type == "proc": - query += f""" - ,cohortEncounterProc AS ( - select - op.proc_code, op.description, - count(distinct cohortEnc.anon_id) as nPatients, - count(distinct cohortEnc.encounterId) as nEncounters - from cohortEncounter as cohortEnc - join `shc_core_{year}.order_proc` as op on cohortEnc.encounterId = op.pat_enc_csn_id_coded - group by op.proc_code, op.description - ) - SELECT - proc_code as itemId, - description, - round(p.nPatients/c.nPatients *100,2) as patientRate, - round(p.nEncounters/c.nEncounters * 100,2) as encounterRate, - p.nPatients as nPatientscohortItem, - p.nEncounters as nEncounterscohortItem, - c.nPatients as nPatientsCohortTotal, - c.nEncounters as nEncountersCohortTotal - FROM cohortEncounterProc p - CROSS JOIN cohortEncounterCount c - CROSS JOIN query_params qp - WHERE p.nPatients > qp.minPatientsForNonRareItems - ORDER BY p.nPatients DESC - """ - elif result_type == "med": - query += f""" - ,cohortEncounterMed AS ( - select - om.medication_id, - om.med_description, - count(distinct cohortEnc.anon_id) as nPatients, - count(distinct cohortEnc.encounterId) as nEncounters - from cohortEncounter as cohortEnc - join `shc_core_{year}.order_med` as om on cohortEnc.encounterId = om.pat_enc_csn_id_coded - cross join query_params qp - where om.order_class_c not in UNNEST(qp.excludeMedOrderClass) - group by om.medication_id, om.med_description - ) - SELECT - medication_id as itemId, - med_description as description, - round(m.nPatients/c.nPatients *100,2) as patientRate, - round(m.nEncounters/c.nEncounters * 100,2) as encounterRate, - m.nPatients as nPatientscohortItem, - m.nEncounters as nEncounterscohortItem, - c.nPatients as nPatientsCohortTotal, - c.nEncounters as nEncountersCohortTotal - FROM cohortEncounterMed m - CROSS JOIN cohortEncounterCount c - CROSS JOIN query_params qp - WHERE m.nPatients > qp.minPatientsForNonRareItems - ORDER BY m.nPatients DESC - """ - - query += f" LIMIT {limit}" - - logger.info("Executing BigQuery query...") - query_job = self.client.query(query) - results = query_job.to_dataframe() - logger.info(f"Query completed successfully. Returned {len(results)} rows.") - return results - - except Exception as e: - logger.error(f"Error in get_orders: {str(e)}", exc_info=True) - raise Exception(f"Failed to execute BigQuery query: {str(e)}") - -if __name__ == "__main__": - # Initialize the API - api = BigQueryAPI() - - # Example with all parameters - params = { - 'patient_age': 55, - 'patient_gender': 'male', - 'icd10_code': 'I10' - } - - # Get medication orders - med_results = api.get_orders( - params=params, - result_type='med', - limit=100 - ) - - # Get procedure orders - proc_results = api.get_orders( - params=params, - result_type='proc', - limit=100 - ) - - # Example with partial parameters - partial_params = { - 'patient_age': 55, - 'patient_gender': None, # No gender restriction - 'icd10_code': None # No diagnosis restriction - } - - # Print results - print("\nMedication Results:") - print(med_results) - print("\nProcedure Results:") - print(proc_results) \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api_original.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api_original.py deleted file mode 100644 index cade114c..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/bigquery_api_original.py +++ /dev/null @@ -1,159 +0,0 @@ -from google.cloud import bigquery -import pandas as pd -from typing import List, Optional, Union -import logging - -logger = logging.getLogger(__name__) - -class BigQueryAPI: - def __init__(self, project_id: str = "som-nero-phi-jonc101"): - """Initialize the BigQuery API client. - - Args: - project_id (str): Google Cloud project ID - """ - try: - self.client = bigquery.Client(project_id) - logger.info(f"Successfully initialized BigQuery client for project {project_id}") - except Exception as e: - logger.error(f"Failed to initialize BigQuery client: {str(e)}") - raise Exception(f"Failed to initialize BigQuery client. Please ensure you have valid Google Cloud credentials set up. Error: {str(e)}") - - def get_immediate_orders( - self, - diagnosis_codes: List[str], - patient_gender: Optional[str] = None, - min_patients_for_non_rare_items: int = 10, - result_type: str = "med", # Options: "proc", "med" - limit: int = 10, - year: int = 2021 # Default to 2021 if not specified - ) -> pd.DataFrame: - """Get common immediate orders based on diagnosis/complaint and patient gender. - - Args: - diagnosis_codes (List[str]): List of diagnosis codes to analyze - patient_gender (Optional[str]): Patient gender to filter by (e.g. 'Male', 'Female') - min_patients_for_non_rare_items (int): Minimum number of patients for non-rare items - result_type (str): Type of results to return ("proc" or "med") - limit (int): Maximum number of results to return - year (int): Year of the dataset to use (2021-2024) - - Returns: - pd.DataFrame: Results showing most common immediate orders - """ - try: - # Validate year - if year not in [2021, 2022, 2023, 2024]: - raise ValueError("Year must be between 2021 and 2024") - - # Format parameters for the query - gender_param = f"'{patient_gender}'" if patient_gender else "NULL" - - logger.info(f"Building query for diagnosis_codes={diagnosis_codes}, gender={patient_gender}, type={result_type}, year={year}") - - query = f""" - WITH - params AS - ( - select - {min_patients_for_non_rare_items} as minPatientsForNonRareItems, - {gender_param} as targetGender - ), - - targetEncounters AS - ( - select distinct - enc.anon_id, - enc.pat_enc_csn_id_coded as encounterId, - enc.appt_when_jittered as encounterDateTime, - demo.gender - from `shc_core_{year}.encounter` as enc - join shc_core_{year}.diagnosis as dx on enc.pat_enc_csn_id_coded = dx.pat_enc_csn_id_jittered - join `shc_core_{year}.demographic` as demo on enc.anon_id = demo.anon_id, - params - where visit_type like 'NEW PATIENT%' - and appt_status = 'Completed' - and dx.icd10 in ({','.join([f"'{code}'" for code in diagnosis_codes])}) - and (params.targetGender is NULL or demo.gender = params.targetGender) - ), - - encounterCount AS - ( - select count(distinct anon_id) as totalPatients, count(distinct encounterId) as totalEncounters - from targetEncounters - ) - """ - - if result_type == "proc": - query += f""" - SELECT * FROM ( - WITH - encounterProc AS - ( - select - op.proc_code, op.description, - count(distinct enc.anon_id) as itemPatients, - count(distinct enc.encounterId) as itemEncounters - from targetEncounters as enc - join `shc_core_{year}.order_proc` as op on enc.encounterId = op.pat_enc_csn_id_coded - group by proc_code, description - ) - SELECT - proc_code as itemId, - description, - (itemEncounters / totalEncounters) as encounterRate, - itemEncounters as nEncounters, - totalEncounters, - itemPatients as nPatients, - totalPatients - FROM encounterProc, encounterCount, params - WHERE itemPatients > params.minPatientsForNonRareItems - ORDER BY itemEncounters DESC, itemId, description - ) - """ - elif result_type == "med": - # Handle different year schemas for order_class_c - if year == 2021: - order_class_filter = "where order_class_c != 3" # For 2021, order_class_c is an integer - else: - order_class_filter = "where order_class_c != '3'" # For 2022+, order_class_c is a string - - query += f""" - SELECT * FROM ( - WITH - encounterMed AS - ( - select - om.medication_id, om.med_description, - count(distinct enc.anon_id) as itemPatients, - count(distinct enc.encounterId) as itemEncounters - from targetEncounters as enc - join `shc_core_{year}.order_med` as om on enc.encounterId = om.pat_enc_csn_id_coded - {order_class_filter} -- Exclude historical medications - group by medication_id, med_description - ) - SELECT - medication_id as itemId, - med_description as description, - (itemEncounters / totalEncounters) as encounterRate, - itemEncounters as nEncounters, - totalEncounters, - itemPatients as nPatients, - totalPatients - FROM encounterMed, encounterCount, params - WHERE itemPatients > params.minPatientsForNonRareItems - ORDER BY itemEncounters DESC, itemId, description - ) - """ - - query += f" LIMIT {limit}" - - logger.info("Executing BigQuery query...") - query_job = self.client.query(query) - results = query_job.to_dataframe() - logger.info(f"Query completed successfully. Returned {len(results)} rows.") - return results - - except Exception as e: - logger.error(f"Error in get_immediate_orders: {str(e)}", exc_info=True) - raise Exception(f"Failed to execute BigQuery query: {str(e)}") \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/example_usage.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/example_usage.py deleted file mode 100644 index 30f07d6c..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/example_usage.py +++ /dev/null @@ -1,86 +0,0 @@ -import requests -import json - -def process_clinical_case_and_get_orders( - clinical_question: str, - clinical_notes: str, - result_type: str = "proc", - limit: int = 100 -): - """ - Process a clinical case and get orders in one flow. - - Args: - clinical_question: The clinical question to answer - clinical_notes: The clinical notes to analyze - result_type: Either "proc" for procedures or "med" for medications - limit: Maximum number of results to return - - Returns: - dict: The orders data - """ - # Base URL for the API - base_url = "http://localhost:8000" - - # Step 1: Process the clinical case - clinical_case_url = f"{base_url}/process_clinical_case" - clinical_case_data = { - "clinical_question": clinical_question, - "clinical_notes": clinical_notes - } - - print("Processing clinical case...") - clinical_response = requests.post(clinical_case_url, json=clinical_case_data) - clinical_response.raise_for_status() # Raise an exception for bad status codes - clinical_result = clinical_response.json() - - print("\nClinical Case Result:") - print(json.dumps(clinical_result, indent=2)) - - # Step 2: Get orders using the clinical result - orders_url = f"{base_url}/get_orders" - orders_data = { - "icd10_code": clinical_result["icd10_code"], - "patient_age": clinical_result["patient_age"], - "patient_gender": clinical_result["patient_gender"], - "result_type": result_type, - "limit": limit - } - - print("\nGetting orders...") - orders_response = requests.post(orders_url, json=orders_data) - orders_response.raise_for_status() - orders_result = orders_response.json() - - print("\nOrders Result:") - print(json.dumps(orders_result, indent=2)) - - return orders_result - -if __name__ == "__main__": - # Example usage - clinical_question = "Could this patient have stable angina?" - clinical_notes = """ - 55-year-old male presents with chest pain on exertion for the past 2 weeks. - Pain is substernal, radiates to left arm, and is relieved with rest. - No associated symptoms. Past medical history includes hypertension. - No family history of CAD. Smokes 1 pack per day for 20 years. - """ - - # Get procedures - print("Getting procedures...") - proc_results = process_clinical_case_and_get_orders( - clinical_question=clinical_question, - clinical_notes=clinical_notes, - result_type="proc", - limit=10 - ) - - # Get medications - print("\nGetting medications...") - med_results = process_clinical_case_and_get_orders( - clinical_question=clinical_question, - clinical_notes=clinical_notes, - result_type="med", - limit=10 - ) \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/fastapi_app.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/fastapi_app.py deleted file mode 100644 index ce2d245a..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/api/fastapi_app.py +++ /dev/null @@ -1,405 +0,0 @@ -from fastapi import FastAPI, HTTPException -from pydantic import BaseModel -from typing import Optional, List, Dict, Any -from google.cloud import bigquery -import pandas as pd -import json -import logging -import datetime -from typing import TypedDict -from langgraph.graph import StateGraph, END -from langchain_core.messages import HumanMessage -from langchain_groq import ChatGroq -from langchain_core.runnables import RunnableLambda -import re -import sys -import os -from dotenv import load_dotenv - -load_dotenv() -api_key = os.getenv("GROQ_API_KEY") - -# Add the parent directory to Python path -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from api.bigquery_api import BigQueryAPI - -app = FastAPI(title="Medical Recommender API") - -# Initialize BigQuery client and API -client = bigquery.Client("som-nero-phi-jonc101") -api = BigQueryAPI() - -# Set up logging -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler(f'clinical_workflow_{datetime.datetime.now().strftime("%Y%m%d_%H%M%S")}.log'), - logging.StreamHandler() - ] -) - -class ClinicalState(TypedDict): - clinical_question: str - clinical_notes: str - icd10_codes: pd.DataFrame - patient_age: int | None - patient_gender: str | None - icd10_code: str | None - rationale: str | None - error: str | None - -class QueryRequest(BaseModel): - result_type: str = "icd10" # Default to icd10 - limit: int = 100 # Default limit - query_params: Optional[Dict[str, Any]] = None - -class ClinicalCaseRequest(BaseModel): - clinical_question: str - clinical_notes: str - -class OrderRequest(BaseModel): - icd10_code: str - patient_age: Optional[int] = None - patient_gender: Optional[str] = None - result_type: str = "proc" # Default to proc, can be "proc" or "med" - limit: int = 100 # Default limit - min_patients_for_non_rare_items: int = 10 - year: int = 2024 - - @classmethod - def from_clinical_result(cls, clinical_result: dict, result_type: str = "proc", limit: int = 100): - """Create an OrderRequest from the output of process_clinical_case.""" - return cls( - icd10_code=clinical_result["icd10_code"], - patient_age=clinical_result["patient_age"], - patient_gender=clinical_result["patient_gender"], - result_type=result_type, - limit=limit - ) - -def clean_output(output): - """Clean up the output by removing content wrapped in tags and extracting only the actual response.""" - if isinstance(output, pd.DataFrame): - return output - - cleaned_output = re.sub(r'.*?', '', output, flags=re.DOTALL) - cleaned_output = cleaned_output.strip() - - return cleaned_output - -def log_stage(stage_name: str, input_data: dict, output_data: dict): - """Log the input and output of each stage.""" - input_copy = input_data.copy() - output_copy = output_data.copy() - - if 'icd10_codes' in input_copy and isinstance(input_copy['icd10_codes'], pd.DataFrame): - input_copy['icd10_codes'] = input_copy['icd10_codes'].to_string() - if 'icd10_codes' in output_copy and isinstance(output_copy['icd10_codes'], pd.DataFrame): - output_copy['icd10_codes'] = output_copy['icd10_codes'].to_string() - - logging.info(f"\n{'='*50}") - logging.info(f"Stage: {stage_name}") - logging.info(f"Input: {json.dumps(input_copy, indent=2)}") - logging.info(f"Output: {json.dumps(output_copy, indent=2)}") - logging.info(f"{'='*50}\n") - -def extract_patient_info(state: dict) -> dict: - """Extract patient age and gender from clinical notes.""" - input_state = state.copy() - - llm = ChatGroq( - model_name="Deepseek-R1-Distill-Llama-70b", - temperature=0.3, - api_key= api_key - - ) - - prompt = f""" - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with {{ and end with }}. - - Example of expected format: - {{"age": 55, "gender": "male"}} - - Clinical Notes: {state.get('clinical_notes')} - """ - logging.info(f"LLM Prompt for extract_patient_info:\n{prompt}") - - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for extract_patient_info:\n{response.content}") - - try: - content = clean_output(response.content) - info = json.loads(content) - state['patient_age'] = info['age'] - state['patient_gender'] = info['gender'] - except Exception as e: - state['error'] = f"Failed to extract patient information: {str(e)}" - - log_stage("extract_patient_info", input_state, state) - return state - -def match_icd10_code(state: dict) -> dict: - """Match clinical information to ICD-10 code.""" - state['error'] = None - input_state = state.copy() - - llm = ChatGroq( - model="Deepseek-R1-Distill-Llama-70b", - api_key= api_key - ) - - prompt = f""" - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with {{ and end with }}. - - Example of expected format: - {{"icd10_code": "xxx", "rationale": "xxxxx"}} - - - Clinical Question: {state.get('clinical_question')} - Clinical Notes: {state.get('clinical_notes')} - Patient Age: {state.get('patient_age')} - Patient Gender: {state.get('patient_gender')} - - Available ICD-10 Codes: - {state.get('icd10_codes')} - """ - logging.info(f"LLM Prompt for match_icd10_code:\n{prompt}") - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for match_icd10_code:\n{response.content}") - try: - output = clean_output(response.content) - match = json.loads(output) - state['icd10_code'] = match['icd10_code'] - state['rationale'] = match['rationale'] - except: - state['error'] = "Failed to match ICD-10 code" - log_stage("match_icd10_code", input_state, state) - return state - -def validate_icd10_code_exists(state: dict) -> dict: - """Validate if the ICD-10 code exists in the provided list.""" - input_state = state.copy() - valid_codes = state['icd10_codes']['icd10'].tolist() - if state.get('icd10_code') not in valid_codes: - logging.warning(f"Invalid code {state.get('icd10_code')}, will rerun matching...") - state['error'] = f"Invalid code {state.get('icd10_code')}, not in provided list" - state['icd10_code'] = None - state['rationale'] = None - else: - state['error'] = None - log_stage("validate_icd10_code_exists", input_state, state) - return state - -def validate_icd10_clinical_match(state: dict) -> dict: - """Validate if the matched ICD-10 code is clinically appropriate.""" - input_state = state.copy() - llm = ChatGroq( - model_name="Deepseek-R1-Distill-Llama-70b", - temperature=0.3, - api_key= api_key - ) - - prompt = f""" - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {{"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"}} - or - {{"is_valid": false, "reason": "The code I10 is too general for this specific case"}} - - Current Match: - ICD-10 Code: {state.get('icd10_code')} - Rationale: {state.get('rationale')} - - Clinical Question: {state.get('clinical_question')} - Clinical Notes: {state.get('clinical_notes')} - Patient Age: {state.get('patient_age')} - Patient Gender: {state.get('patient_gender')} - - Available ICD-10 Codes: - {state['icd10_codes'].to_string()} - """ - logging.info(f"LLM Prompt for validate_icd10_clinical_match:\n{prompt}") - - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for validate_icd10_clinical_match:\n{response.content}") - try: - output = clean_output(response.content) - validation = json.loads(output) - logging.info(f"Validation result: {validation}") - - if not validation['is_valid']: - state['error'] = f"Invalid match: {validation['reason']}" - state['icd10_code'] = None - state['rationale'] = None - return state - else: - state['error'] = None - except Exception as e: - logging.error(f"Validation error: {str(e)}") - state['error'] = f"Failed to validate ICD-10 code: {str(e)}" - return state - - log_stage("validate_icd10_clinical_match", input_state, state) - return state - -def create_clinical_graph() -> StateGraph: - workflow = StateGraph(dict) - - # Add nodes - workflow.add_node("extract_patient_info", RunnableLambda(extract_patient_info)) - workflow.add_node("match_icd10_code", RunnableLambda(match_icd10_code)) - workflow.add_node("validate_icd10_code_exists", RunnableLambda(validate_icd10_code_exists)) - workflow.add_node("validate_icd10_clinical_match", RunnableLambda(validate_icd10_clinical_match)) - - # Add basic edges - workflow.add_edge("extract_patient_info", "match_icd10_code") - workflow.add_edge("match_icd10_code", "validate_icd10_code_exists") - - # Define conditional edges - workflow.add_conditional_edges( - "validate_icd10_code_exists", - lambda x: "match_icd10_code" if x.get("error") else "validate_icd10_clinical_match", - { - "match_icd10_code": "match_icd10_code", - "validate_icd10_clinical_match": "validate_icd10_clinical_match" - } - ) - - workflow.add_conditional_edges( - "validate_icd10_clinical_match", - lambda x: "match_icd10_code" if x.get("error") else END, - { - "match_icd10_code": "match_icd10_code", - END: END - } - ) - - workflow.set_entry_point("extract_patient_info") - - return workflow.compile() - -@app.post("/query") -async def query_data(request: QueryRequest): - try: - if request.result_type == "icd10": - # Query for ICD10 codes - query = """ - select distinct icd10, count(icd10) as count - from som-nero-phi-jonc101.shc_core_2024.diagnosis - group by icd10 - order by count desc - limit @limit - """ - job_config = bigquery.QueryJobConfig( - query_parameters=[ - bigquery.ScalarQueryParameter("limit", "INT64", request.limit) - ] - ) - else: - raise HTTPException(status_code=400, detail="Invalid result_type. Must be 'icd10' ") - - # Execute the query - query_job = client.query(query, job_config=job_config) - results = query_job.result() - - # Convert to DataFrame and then to dict for JSON response - df = results.to_dataframe() - return {"data": df.to_dict(orient="records")} - - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) - -@app.post("/process_clinical_case") -async def process_clinical_case(request: ClinicalCaseRequest): - try: - # Get ICD10 codes - query = """ - select distinct icd10, count(icd10) as count - from som-nero-phi-jonc101.shc_core_2024.diagnosis - group by icd10 - order by count desc - limit 400 - """ - query_job = client.query(query) - results = query_job.result() - icd10_codes_df = results.to_dataframe() - - # Create the graph - graph = create_clinical_graph() - - # Initialize state - initial_state = { - "clinical_question": request.clinical_question, - "clinical_notes": request.clinical_notes, - "icd10_codes": icd10_codes_df, - "patient_age": None, - "patient_gender": None, - "icd10_code": None, - "rationale": None, - "error": None - } - - # Run the graph - config = {"recursion_limit": 100} - result = graph.invoke(initial_state, config=config) - - # Clean up the result - clean_result = { - "patient_age": result.get("patient_age"), - "patient_gender": result.get("patient_gender"), - "icd10_code": result.get("icd10_code"), - "rationale": result.get("rationale"), - "error": result.get("error") - } - - return clean_result - - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) - -@app.post("/get_orders") -async def get_orders(request: OrderRequest): - try: - if request.result_type not in ["proc", "med"]: - raise HTTPException(status_code=400, detail="Invalid result_type. Must be 'proc' or 'med'") - - # Prepare parameters for the BigQueryAPI - params = { - 'patient_age': request.patient_age, - 'patient_gender': request.patient_gender, - 'icd10_code': request.icd10_code - } - - # Use the existing BigQueryAPI to get orders - results = api.get_orders( - params=params, - min_patients_for_non_rare_items=request.min_patients_for_non_rare_items, - result_type=request.result_type, - limit=request.limit, - year=request.year - ) - - return { - "icd10_code": request.icd10_code, - "result_type": request.result_type, - "patient_age": request.patient_age, - "patient_gender": request.patient_gender, - "data": results.to_dict(orient="records") - } - - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) - -if __name__ == "__main__": - import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/main.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/main.py deleted file mode 100644 index cdb7b261..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/main.py +++ /dev/null @@ -1,67 +0,0 @@ -from fastapi import FastAPI, Query -from typing import List, Optional -import pandas as pd -from pydantic import BaseModel -import os -import sys -from pathlib import Path - -# Add the project root directory to Python path -project_root = str(Path(__file__).parent) -sys.path.append(project_root) - -from api.bigquery_api import BigQueryAPI - -app = FastAPI(title="Antibiotic Susceptibility API") - -class ResponseModel(BaseModel): - descriptions: List[str] - -@app.get("/query", response_model=ResponseModel) -async def query_data( - diagnosis: str = Query(..., description="Diagnosis code (e.g., J01.90)"), - gender: str = Query(..., description="Patient gender (Male/Female)"), - type: str = Query(..., description="Type of results (med/proc)"), - limit: int = Query(10, description="Maximum number of results to return"), - year: int = Query(2021, description="Year of the dataset to use (2021-2024)") -): - """ - Query the antibiotic susceptibility data based on diagnosis, gender, type, limit, and year. - Returns a list of descriptions from BigQuery. - """ - # Validate year - if year not in [2021, 2022, 2023, 2024]: - raise ValueError("Year must be between 2021 and 2024") - - # Validate gender - if gender not in ["Male", "Female"]: - raise ValueError("Gender must be either 'Male' or 'Female'") - - # Validate type - if type not in ["med", "proc"]: - raise ValueError("Type must be either 'med' or 'proc'") - - try: - # Initialize BigQuery API - api = BigQueryAPI() - - # Get results directly from BigQuery - results = api.get_immediate_orders( - diagnosis_codes=[diagnosis], - patient_gender=gender, - result_type=type, - limit=limit, - year=year - ) - - # Extract descriptions - descriptions = results['description'].tolist() - - return ResponseModel(descriptions=descriptions) - - except Exception as e: - raise Exception(f"Error querying BigQuery: {str(e)}") - -if __name__ == "__main__": - import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/requirements.txt b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/requirements.txt deleted file mode 100644 index 70866320..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -google-cloud-bigquery>=3.11.4 -fastapi==0.104.1 -uvicorn==0.24.0 -pandas==2.1.4 -pydantic==2.5.2 -python-dotenv==1.0.0 \ No newline at end of file diff --git a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/scripts/run_api.py b/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/scripts/run_api.py deleted file mode 100644 index bb1790e2..00000000 --- a/scripts/antibiotic-susceptibility/sql/queries/aim_4/AIM4/Recommender_API/scripts/run_api.py +++ /dev/null @@ -1,113 +0,0 @@ -import warnings -warnings.filterwarnings('ignore', category=UserWarning) # Suppress all UserWarnings -warnings.filterwarnings('ignore', category=FutureWarning) # Suppress FutureWarnings - -import argparse -import os -import sys -from pathlib import Path -import pandas as pd -from datetime import datetime - -# Add the project root directory to Python path -project_root = str(Path(__file__).parent.parent) -sys.path.append(project_root) - -from api.bigquery_api import BigQueryAPI - -def validate_year(year): - """Validate that the year is within the allowed range.""" - if year not in [2021, 2022, 2023, 2024]: - raise ValueError(f"Year must be between 2021 and 2024, got {year}") - return year - -def create_output_filename(diagnosis_codes, gender, result_type, year, limit): - """Create a standardized output filename.""" - gender_str = gender if gender else 'all' - diagnosis_str = '_'.join(diagnosis_codes) - return f"{diagnosis_str}_{gender_str}_{result_type}_year{year}_limit{limit}.csv" - -def main(): - parser = argparse.ArgumentParser( - description='Query BigQuery for common immediate orders based on diagnosis and patient characteristics' - ) - - # Required arguments - parser.add_argument('--diagnosis', - required=True, - nargs='+', - help='Diagnosis codes (e.g., J01.90)') - - # Optional arguments - parser.add_argument('--gender', - default=None, - choices=['Male', 'Female'], - help='Patient gender to filter by') - - parser.add_argument('--type', - default='med', - choices=['med', 'proc'], - help='Type of results to return (medications or procedures)') - - parser.add_argument('--limit', - type=int, - default=10, - help='Maximum number of results to return') - - parser.add_argument('--year', - type=int, - default=2022, - help='Year of the dataset to use (2021-2024)') - - parser.add_argument('--output-dir', - default='csv_output', - help='Directory to save output files') - - args = parser.parse_args() - - try: - # Validate year - year = validate_year(args.year) - - # Initialize API - api = BigQueryAPI() - - # Get results - print(f"Querying data for year {year}...") - results = api.get_immediate_orders( - diagnosis_codes=args.diagnosis, - patient_gender=args.gender, - result_type=args.type, - limit=args.limit, - year=year - ) - - # Create output directory if it doesn't exist - os.makedirs(args.output_dir, exist_ok=True) - - # Generate output filename - output_filename = create_output_filename( - args.diagnosis, - args.gender, - args.type, - year, - args.limit - ) - output_path = os.path.join(args.output_dir, output_filename) - - # Save results - results.to_csv(output_path, index=False) - print(f"\nResults saved to: {output_path}") - print(f"\nQuery Summary:") - print(f"- Diagnosis codes: {', '.join(args.diagnosis)}") - print(f"- Gender: {args.gender if args.gender else 'All'}") - print(f"- Result type: {args.type}") - print(f"- Year: {year}") - print(f"- Number of results: {len(results)}") - - except Exception as e: - print(f"Error: {str(e)}") - sys.exit(1) - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/scripts/critical_care_billing/bigquery.sql b/scripts/critical_care_billing/bigquery.sql new file mode 100644 index 00000000..9d0fbd4e --- /dev/null +++ b/scripts/critical_care_billing/bigquery.sql @@ -0,0 +1,93 @@ +WITH + +med7_csn AS ( + SELECT DISTINCT + ANY_VALUE(anon_id) AS anon_id, + pat_enc_csn_id_coded, + ANY_VALUE(prov_name) AS prov_name, + MIN(DATE(trtmnt_tm_begin_dt_jittered)) AS med7_start_date, + FROM `som-nero-phi-jonc101.shc_core_2024.treatment_team` + WHERE ( + prov_name LIKE '%MED UNIV 7%' + OR prov_name LIKE '%MED UNIV HOSP MED%' + OR prov_name LIKE '%MED UNIV LOLA%' + OR prov_name LIKE '%MED UNIV SURGE%' + ) + AND trtmnt_tm_begin_dt_jittered BETWEEN DATE('2022-01-01') AND DATE('2023-12-31') + GROUP BY pat_enc_csn_id_coded +), + +med7_notes AS ( + SELECT + med7_csn.pat_enc_csn_id_coded, + med7_csn.prov_name, + DATE(notes.jittered_note_date) AS note_date, + notes.note_type_desc, + notes.author_prov_map_id, + prov_map.prov_type, + prov_map.specialty_or_dept, + dep_map.department_name + FROM `som-nero-phi-jonc101-secure.Deid_Notes_Jchen.Deid_Notes_SHC_JChen` as notes + INNER JOIN med7_csn + ON med7_csn.pat_enc_csn_id_coded = notes.offest_csn + INNER JOIN `som-nero-phi-jonc101.shc_core_2024.dep_map` as dep_map + ON notes.effective_dept_id = dep_map.department_id + INNER JOIN `som-nero-phi-jonc101.shc_core_2024.prov_map` as prov_map + ON SUBSTR(notes.author_prov_map_id, 2) = prov_map.shc_prov_id +), + +med7_cpt AS ( + SELECT + cpt.pat_enc_csn_id_coded, + DATE(cpt.start_date_jittered) AS cpt_date, + cpt.code, + prov_map.prov_type, + prov_map.specialty_or_dept + FROM `som-nero-phi-jonc101.shc_core_2024.procedure` as cpt + INNER JOIN med7_csn + ON med7_csn.pat_enc_csn_id_coded = cpt.pat_enc_csn_id_coded + INNER JOIN `som-nero-phi-jonc101.shc_core_2024.prov_map` as prov_map + ON SUBSTR(cpt.billing_prov_map_id, 2) = prov_map.shc_prov_id + +), + +code_blue_notes AS ( + SELECT + med7_notes.pat_enc_csn_id_coded, + note_date, + prov_name AS note_writer, + med7_notes.prov_type AS note_writer_type, + med7_notes.specialty_or_dept as note_writer_dept, + department_name, + med7_cpt.code, + med7_cpt.prov_type AS billing_type, + med7_cpt.specialty_or_dept as billing_dept + FROM med7_notes + LEFT JOIN med7_cpt + ON med7_notes.pat_enc_csn_id_coded = med7_cpt.pat_enc_csn_id_coded + AND med7_notes.note_date = med7_cpt.cpt_date + AND (med7_cpt.code = '99291' OR med7_cpt.code = '92950') + WHERE lower(note_type_desc) LIKE '%code%' + GROUP BY pat_enc_csn_id_coded, note_date, prov_name, department_name, note_writer_type, note_writer_dept, code, billing_type, billing_dept +), + +acp_notes AS ( + SELECT + med7_notes.pat_enc_csn_id_coded, + note_date, + prov_name AS note_writer, + med7_notes.prov_type AS note_writer_type, + med7_notes.specialty_or_dept as note_writer_dept, + department_name, + med7_cpt.prov_type AS billing_type, + med7_cpt.specialty_or_dept as billing_dept + FROM med7_notes + LEFT JOIN med7_cpt + ON med7_notes.pat_enc_csn_id_coded = med7_cpt.pat_enc_csn_id_coded + AND med7_notes.note_date = med7_cpt.cpt_date + AND med7_cpt.code = '99497' + WHERE lower(note_type_desc) LIKE '%goals%' + GROUP BY pat_enc_csn_id_coded, note_date, prov_name, department_name, note_writer_type, note_writer_dept, billing_type, billing_dept +) + +SELECT * FROM acp_notes diff --git a/scripts/eConsult/Recommender/phase_1/.gitignore b/scripts/eConsult/Recommender/phase_1/.gitignore index 2eea525d..1f6066a3 100644 --- a/scripts/eConsult/Recommender/phase_1/.gitignore +++ b/scripts/eConsult/Recommender/phase_1/.gitignore @@ -1 +1,3 @@ -.env \ No newline at end of file +.env +logs/* +real_data/* \ No newline at end of file diff --git a/scripts/eConsult/Recommender/phase_1/Notebook/logs/clinical_workflow_20250604.log b/scripts/eConsult/Recommender/phase_1/Notebook/logs/clinical_workflow_20250604.log deleted file mode 100644 index 1cb1a642..00000000 --- a/scripts/eConsult/Recommender/phase_1/Notebook/logs/clinical_workflow_20250604.log +++ /dev/null @@ -1,12854 +0,0 @@ -2025-06-04 01:18:54,056 - INFO - -================================================== -2025-06-04 01:18:54,093 - INFO - Starting new clinical case processing -2025-06-04 01:18:54,094 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:18:54,095 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:18:54,096 - INFO - ================================================== - -2025-06-04 01:19:44,525 - INFO - -================================================== -2025-06-04 01:19:44,527 - INFO - Starting new clinical case processing -2025-06-04 01:19:44,528 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:19:44,528 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:19:44,529 - INFO - ================================================== - -2025-06-04 01:19:44,568 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:19:45,731 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:19:45,736 - INFO - -================================================== -2025-06-04 01:19:45,736 - INFO - Stage: extract_patient_info -2025-06-04 01:19:45,737 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:19:45,737 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": "Failed to extract patient information: 'str' object has no attribute 'content'" -} -2025-06-04 01:19:45,738 - INFO - ================================================== - -2025-06-04 01:19:45,739 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:47,892 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is concerning for an opportunistic infection due to immunosuppression. Of the provided codes, B20 (HIV disease) is the only code in the list related to infectious or immunosuppressive conditions. While the patient does not have a documented HIV diagnosis, none of the other codes pertain to disseminated mycobacterial or fungal infections. B20 is most thematically appropriate from the choices, as it encompasses opportunistic infections in immunocompromised states."} -2025-06-04 01:19:47,894 - INFO - -================================================== -2025-06-04 01:19:47,894 - INFO - Stage: match_icd10_code -2025-06-04 01:19:47,895 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:19:47,895 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is concerning for an opportunistic infection due to immunosuppression. Of the provided codes, B20 (HIV disease) is the only code in the list related to infectious or immunosuppressive conditions. While the patient does not have a documented HIV diagnosis, none of the other codes pertain to disseminated mycobacterial or fungal infections. B20 is most thematically appropriate from the choices, as it encompasses opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:19:47,895 - INFO - ================================================== - -2025-06-04 01:19:47,899 - INFO - -================================================== -2025-06-04 01:19:47,899 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:19:47,900 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is concerning for an opportunistic infection due to immunosuppression. Of the provided codes, B20 (HIV disease) is the only code in the list related to infectious or immunosuppressive conditions. While the patient does not have a documented HIV diagnosis, none of the other codes pertain to disseminated mycobacterial or fungal infections. B20 is most thematically appropriate from the choices, as it encompasses opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:19:47,901 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is concerning for an opportunistic infection due to immunosuppression. Of the provided codes, B20 (HIV disease) is the only code in the list related to infectious or immunosuppressive conditions. While the patient does not have a documented HIV diagnosis, none of the other codes pertain to disseminated mycobacterial or fungal infections. B20 is most thematically appropriate from the choices, as it encompasses opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:19:47,901 - INFO - ================================================== - -2025-06-04 01:19:47,903 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is concerning for an opportunistic infection due to immunosuppression. Of the provided codes, B20 (HIV disease) is the only code in the list related to infectious or immunosuppressive conditions. While the patient does not have a documented HIV diagnosis, none of the other codes pertain to disseminated mycobacterial or fungal infections. B20 is most thematically appropriate from the choices, as it encompasses opportunistic infections in immunocompromised states. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:49,646 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifies HIV disease, but the patient does not have HIV; her immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis. A more appropriate code would relate to immunosuppression or secondary infection, but B20 is not valid for this case."} -2025-06-04 01:19:49,646 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifies HIV disease, but the patient does not have HIV; her immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis. A more appropriate code would relate to immunosuppression or secondary infection, but B20 is not valid for this case.'} -2025-06-04 01:19:49,648 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:52,326 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical picture of fever, weight loss, night sweats, nodular pulmonary and hepatosplenic lesions, and opportunistic infectious differential (disseminated mycobacterial or fungal infection) suggests immunocompromise. Of the available codes, B20 (HIV disease) is the closest match to the syndrome of immunosuppression and serious opportunistic infections, even though this patient is on immunosuppressive medications rather than diagnosed HIV—no other code fits infectious or immunodeficiency states."} -2025-06-04 01:19:52,328 - INFO - -================================================== -2025-06-04 01:19:52,329 - INFO - Stage: match_icd10_code -2025-06-04 01:19:52,329 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:19:52,330 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture of fever, weight loss, night sweats, nodular pulmonary and hepatosplenic lesions, and opportunistic infectious differential (disseminated mycobacterial or fungal infection) suggests immunocompromise. Of the available codes, B20 (HIV disease) is the closest match to the syndrome of immunosuppression and serious opportunistic infections, even though this patient is on immunosuppressive medications rather than diagnosed HIV\u2014no other code fits infectious or immunodeficiency states.", - "error": null -} -2025-06-04 01:19:52,330 - INFO - ================================================== - -2025-06-04 01:19:52,333 - INFO - -================================================== -2025-06-04 01:19:52,333 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:19:52,334 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture of fever, weight loss, night sweats, nodular pulmonary and hepatosplenic lesions, and opportunistic infectious differential (disseminated mycobacterial or fungal infection) suggests immunocompromise. Of the available codes, B20 (HIV disease) is the closest match to the syndrome of immunosuppression and serious opportunistic infections, even though this patient is on immunosuppressive medications rather than diagnosed HIV\u2014no other code fits infectious or immunodeficiency states.", - "error": null -} -2025-06-04 01:19:52,335 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture of fever, weight loss, night sweats, nodular pulmonary and hepatosplenic lesions, and opportunistic infectious differential (disseminated mycobacterial or fungal infection) suggests immunocompromise. Of the available codes, B20 (HIV disease) is the closest match to the syndrome of immunosuppression and serious opportunistic infections, even though this patient is on immunosuppressive medications rather than diagnosed HIV\u2014no other code fits infectious or immunodeficiency states.", - "error": null -} -2025-06-04 01:19:52,336 - INFO - ================================================== - -2025-06-04 01:19:52,338 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical picture of fever, weight loss, night sweats, nodular pulmonary and hepatosplenic lesions, and opportunistic infectious differential (disseminated mycobacterial or fungal infection) suggests immunocompromise. Of the available codes, B20 (HIV disease) is the closest match to the syndrome of immunosuppression and serious opportunistic infections, even though this patient is on immunosuppressive medications rather than diagnosed HIV—no other code fits infectious or immunodeficiency states. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:53,841 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease. The patient is immunosuppressed due to medications for rheumatoid arthritis, not HIV infection, so B20 is not appropriate."} -2025-06-04 01:19:53,842 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease. The patient is immunosuppressed due to medications for rheumatoid arthritis, not HIV infection, so B20 is not appropriate.'} -2025-06-04 01:19:53,848 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:56,727 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation fits a severe systemic infectious process (disseminated mycobacterial or fungal infection) in an immunocompromised host. Among the provided codes, B20 (HIV disease) is the only infectious disease code, and though the patient is immunosuppressed due to medication rather than HIV, it is the closest match given the differential diagnosis and context. None of the other codes (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant) fit the clinical scenario as primary diagnoses."} -2025-06-04 01:19:56,730 - INFO - -================================================== -2025-06-04 01:19:56,731 - INFO - Stage: match_icd10_code -2025-06-04 01:19:56,732 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:19:56,733 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation fits a severe systemic infectious process (disseminated mycobacterial or fungal infection) in an immunocompromised host. Among the provided codes, B20 (HIV disease) is the only infectious disease code, and though the patient is immunosuppressed due to medication rather than HIV, it is the closest match given the differential diagnosis and context. None of the other codes (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant) fit the clinical scenario as primary diagnoses.", - "error": null -} -2025-06-04 01:19:56,734 - INFO - ================================================== - -2025-06-04 01:19:56,736 - INFO - -================================================== -2025-06-04 01:19:56,737 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:19:56,738 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation fits a severe systemic infectious process (disseminated mycobacterial or fungal infection) in an immunocompromised host. Among the provided codes, B20 (HIV disease) is the only infectious disease code, and though the patient is immunosuppressed due to medication rather than HIV, it is the closest match given the differential diagnosis and context. None of the other codes (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant) fit the clinical scenario as primary diagnoses.", - "error": null -} -2025-06-04 01:19:56,738 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation fits a severe systemic infectious process (disseminated mycobacterial or fungal infection) in an immunocompromised host. Among the provided codes, B20 (HIV disease) is the only infectious disease code, and though the patient is immunosuppressed due to medication rather than HIV, it is the closest match given the differential diagnosis and context. None of the other codes (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant) fit the clinical scenario as primary diagnoses.", - "error": null -} -2025-06-04 01:19:56,739 - INFO - ================================================== - -2025-06-04 01:19:56,740 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation fits a severe systemic infectious process (disseminated mycobacterial or fungal infection) in an immunocompromised host. Among the provided codes, B20 (HIV disease) is the only infectious disease code, and though the patient is immunosuppressed due to medication rather than HIV, it is the closest match given the differential diagnosis and context. None of the other codes (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant) fit the clinical scenario as primary diagnoses. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:19:58,427 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection. The matched ICD-10 code is not appropriate."} -2025-06-04 01:19:58,428 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection. The matched ICD-10 code is not appropriate.'} -2025-06-04 01:19:58,430 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:00,745 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, and findings of multiple pulmonary nodules and hepatosplenic lesions in the setting of immunosuppression is concerning for opportunistic infection. Of the provided codes, B20 (HIV disease) is most closely aligned with the diagnostic concern for serious opportunistic infections, although the patient is not confirmed HIV positive. No other code in the list represents disseminated mycobacterial or fungal infection. B20 is the most appropriate available code in the context of serious systemic infection in an immunosuppressed host."} -2025-06-04 01:20:00,746 - INFO - -================================================== -2025-06-04 01:20:00,746 - INFO - Stage: match_icd10_code -2025-06-04 01:20:00,747 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:00,747 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, and findings of multiple pulmonary nodules and hepatosplenic lesions in the setting of immunosuppression is concerning for opportunistic infection. Of the provided codes, B20 (HIV disease) is most closely aligned with the diagnostic concern for serious opportunistic infections, although the patient is not confirmed HIV positive. No other code in the list represents disseminated mycobacterial or fungal infection. B20 is the most appropriate available code in the context of serious systemic infection in an immunosuppressed host.", - "error": null -} -2025-06-04 01:20:00,748 - INFO - ================================================== - -2025-06-04 01:20:00,750 - INFO - -================================================== -2025-06-04 01:20:00,751 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:00,751 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, and findings of multiple pulmonary nodules and hepatosplenic lesions in the setting of immunosuppression is concerning for opportunistic infection. Of the provided codes, B20 (HIV disease) is most closely aligned with the diagnostic concern for serious opportunistic infections, although the patient is not confirmed HIV positive. No other code in the list represents disseminated mycobacterial or fungal infection. B20 is the most appropriate available code in the context of serious systemic infection in an immunosuppressed host.", - "error": null -} -2025-06-04 01:20:00,753 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, and findings of multiple pulmonary nodules and hepatosplenic lesions in the setting of immunosuppression is concerning for opportunistic infection. Of the provided codes, B20 (HIV disease) is most closely aligned with the diagnostic concern for serious opportunistic infections, although the patient is not confirmed HIV positive. No other code in the list represents disseminated mycobacterial or fungal infection. B20 is the most appropriate available code in the context of serious systemic infection in an immunosuppressed host.", - "error": null -} -2025-06-04 01:20:00,753 - INFO - ================================================== - -2025-06-04 01:20:00,755 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation with persistent fever, night sweats, weight loss, and findings of multiple pulmonary nodules and hepatosplenic lesions in the setting of immunosuppression is concerning for opportunistic infection. Of the provided codes, B20 (HIV disease) is most closely aligned with the diagnostic concern for serious opportunistic infections, although the patient is not confirmed HIV positive. No other code in the list represents disseminated mycobacterial or fungal infection. B20 is the most appropriate available code in the context of serious systemic infection in an immunosuppressed host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:02,321 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for confirmed HIV disease, whereas this patient has immunosuppression from rheumatoid arthritis therapy without evidence or diagnosis of HIV infection."} -2025-06-04 01:20:02,322 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for confirmed HIV disease, whereas this patient has immunosuppression from rheumatoid arthritis therapy without evidence or diagnosis of HIV infection.'} -2025-06-04 01:20:02,323 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:04,441 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is used for immunodeficiency due to HIV, but in ICD-10, infectious and certain parasitic diseases codes (A00-B99) also include other disseminated infections; among the given codes, B20 is the only one relevant to severe, disseminated infectious processes in an immunosuppressed host, matching the context of possible disseminated mycobacterial or fungal infection."} -2025-06-04 01:20:04,444 - INFO - -================================================== -2025-06-04 01:20:04,444 - INFO - Stage: match_icd10_code -2025-06-04 01:20:04,445 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:04,446 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is used for immunodeficiency due to HIV, but in ICD-10, infectious and certain parasitic diseases codes (A00-B99) also include other disseminated infections; among the given codes, B20 is the only one relevant to severe, disseminated infectious processes in an immunosuppressed host, matching the context of possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-04 01:20:04,446 - INFO - ================================================== - -2025-06-04 01:20:04,449 - INFO - -================================================== -2025-06-04 01:20:04,449 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:04,450 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is used for immunodeficiency due to HIV, but in ICD-10, infectious and certain parasitic diseases codes (A00-B99) also include other disseminated infections; among the given codes, B20 is the only one relevant to severe, disseminated infectious processes in an immunosuppressed host, matching the context of possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-04 01:20:04,451 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is used for immunodeficiency due to HIV, but in ICD-10, infectious and certain parasitic diseases codes (A00-B99) also include other disseminated infections; among the given codes, B20 is the only one relevant to severe, disseminated infectious processes in an immunosuppressed host, matching the context of possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-04 01:20:04,451 - INFO - ================================================== - -2025-06-04 01:20:04,453 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is used for immunodeficiency due to HIV, but in ICD-10, infectious and certain parasitic diseases codes (A00-B99) also include other disseminated infections; among the given codes, B20 is the only one relevant to severe, disseminated infectious processes in an immunosuppressed host, matching the context of possible disseminated mycobacterial or fungal infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:06,630 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease resulting in infectious and parasitic diseases; the patient has immunosuppression due to rheumatoid arthritis treatment, not HIV, so this code does not accurately reflect her condition."} -2025-06-04 01:20:06,630 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease resulting in infectious and parasitic diseases; the patient has immunosuppression due to rheumatoid arthritis treatment, not HIV, so this code does not accurately reflect her condition.'} -2025-06-04 01:20:06,634 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:08,710 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is consistent with an opportunistic infectious process in an immunocompromised host. While B20 is the ICD-10 code for HIV disease, it is the closest match in the provided list for severe opportunistic infections; the other codes do not pertain to disseminated infections or immunosuppression. None of the other options fit for disseminated mycobacterial or fungal disease, nor for immunosuppression due to medications."} -2025-06-04 01:20:08,712 - INFO - -================================================== -2025-06-04 01:20:08,713 - INFO - Stage: match_icd10_code -2025-06-04 01:20:08,714 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:08,715 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infectious process in an immunocompromised host. While B20 is the ICD-10 code for HIV disease, it is the closest match in the provided list for severe opportunistic infections; the other codes do not pertain to disseminated infections or immunosuppression. None of the other options fit for disseminated mycobacterial or fungal disease, nor for immunosuppression due to medications.", - "error": null -} -2025-06-04 01:20:08,716 - INFO - ================================================== - -2025-06-04 01:20:08,719 - INFO - -================================================== -2025-06-04 01:20:08,719 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:08,720 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infectious process in an immunocompromised host. While B20 is the ICD-10 code for HIV disease, it is the closest match in the provided list for severe opportunistic infections; the other codes do not pertain to disseminated infections or immunosuppression. None of the other options fit for disseminated mycobacterial or fungal disease, nor for immunosuppression due to medications.", - "error": null -} -2025-06-04 01:20:08,720 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infectious process in an immunocompromised host. While B20 is the ICD-10 code for HIV disease, it is the closest match in the provided list for severe opportunistic infections; the other codes do not pertain to disseminated infections or immunosuppression. None of the other options fit for disseminated mycobacterial or fungal disease, nor for immunosuppression due to medications.", - "error": null -} -2025-06-04 01:20:08,721 - INFO - ================================================== - -2025-06-04 01:20:08,723 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is consistent with an opportunistic infectious process in an immunocompromised host. While B20 is the ICD-10 code for HIV disease, it is the closest match in the provided list for severe opportunistic infections; the other codes do not pertain to disseminated infections or immunosuppression. None of the other options fit for disseminated mycobacterial or fungal disease, nor for immunosuppression due to medications. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:10,614 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis medications, not HIV. A code for immunosuppression due to medication would be more appropriate, but is not available in the provided list."} -2025-06-04 01:20:10,615 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis medications, not HIV. A code for immunosuppression due to medication would be more appropriate, but is not available in the provided list.'} -2025-06-04 01:20:10,617 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:13,257 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease, which is used broadly for immunocompromised states leading to opportunistic infections. In this case, none of the other codes fit disseminated mycobacterial infection or histoplasmosis directly, but B20 is the closest for severe systemic infections in immunocompromised hosts such as this patient on immunosuppressive therapy."} -2025-06-04 01:20:13,258 - INFO - -================================================== -2025-06-04 01:20:13,259 - INFO - Stage: match_icd10_code -2025-06-04 01:20:13,259 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:13,260 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which is used broadly for immunocompromised states leading to opportunistic infections. In this case, none of the other codes fit disseminated mycobacterial infection or histoplasmosis directly, but B20 is the closest for severe systemic infections in immunocompromised hosts such as this patient on immunosuppressive therapy.", - "error": null -} -2025-06-04 01:20:13,261 - INFO - ================================================== - -2025-06-04 01:20:13,262 - INFO - -================================================== -2025-06-04 01:20:13,263 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:13,263 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which is used broadly for immunocompromised states leading to opportunistic infections. In this case, none of the other codes fit disseminated mycobacterial infection or histoplasmosis directly, but B20 is the closest for severe systemic infections in immunocompromised hosts such as this patient on immunosuppressive therapy.", - "error": null -} -2025-06-04 01:20:13,264 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which is used broadly for immunocompromised states leading to opportunistic infections. In this case, none of the other codes fit disseminated mycobacterial infection or histoplasmosis directly, but B20 is the closest for severe systemic infections in immunocompromised hosts such as this patient on immunosuppressive therapy.", - "error": null -} -2025-06-04 01:20:13,264 - INFO - ================================================== - -2025-06-04 01:20:13,266 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease, which is used broadly for immunocompromised states leading to opportunistic infections. In this case, none of the other codes fit disseminated mycobacterial infection or histoplasmosis directly, but B20 is the closest for severe systemic infections in immunocompromised hosts such as this patient on immunosuppressive therapy. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:14,806 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease, but this patient is immunocompromised due to immunosuppressive therapy for rheumatoid arthritis, not HIV infection."} -2025-06-04 01:20:14,807 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease, but this patient is immunocompromised due to immunosuppressive therapy for rheumatoid arthritis, not HIV infection.'} -2025-06-04 01:20:14,809 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:16,940 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical picture suggests a serious, disseminated opportunistic infection (suspected disseminated non-tuberculous mycobacterial or fungal infection) in an immunosuppressed host. Of the available codes, B20 (HIV disease) is most aligned with severe infections as seen in immunocompromised states, though not a perfect fit; none of the other codes represent disseminated infection or immunosuppression itself."} -2025-06-04 01:20:16,942 - INFO - -================================================== -2025-06-04 01:20:16,943 - INFO - Stage: match_icd10_code -2025-06-04 01:20:16,943 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:16,944 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture suggests a serious, disseminated opportunistic infection (suspected disseminated non-tuberculous mycobacterial or fungal infection) in an immunosuppressed host. Of the available codes, B20 (HIV disease) is most aligned with severe infections as seen in immunocompromised states, though not a perfect fit; none of the other codes represent disseminated infection or immunosuppression itself.", - "error": null -} -2025-06-04 01:20:16,945 - INFO - ================================================== - -2025-06-04 01:20:16,946 - INFO - -================================================== -2025-06-04 01:20:16,947 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:16,948 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture suggests a serious, disseminated opportunistic infection (suspected disseminated non-tuberculous mycobacterial or fungal infection) in an immunosuppressed host. Of the available codes, B20 (HIV disease) is most aligned with severe infections as seen in immunocompromised states, though not a perfect fit; none of the other codes represent disseminated infection or immunosuppression itself.", - "error": null -} -2025-06-04 01:20:16,948 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture suggests a serious, disseminated opportunistic infection (suspected disseminated non-tuberculous mycobacterial or fungal infection) in an immunosuppressed host. Of the available codes, B20 (HIV disease) is most aligned with severe infections as seen in immunocompromised states, though not a perfect fit; none of the other codes represent disseminated infection or immunosuppression itself.", - "error": null -} -2025-06-04 01:20:16,949 - INFO - ================================================== - -2025-06-04 01:20:16,950 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical picture suggests a serious, disseminated opportunistic infection (suspected disseminated non-tuberculous mycobacterial or fungal infection) in an immunosuppressed host. Of the available codes, B20 (HIV disease) is most aligned with severe infections as seen in immunocompromised states, though not a perfect fit; none of the other codes represent disseminated infection or immunosuppression itself. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:18,568 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 indicates HIV disease, but there is no evidence or mention of HIV infection; the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV."} -2025-06-04 01:20:18,569 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 indicates HIV disease, but there is no evidence or mention of HIV infection; the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV.'} -2025-06-04 01:20:18,570 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:21,373 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but in the absence of a code specifically for disseminated non-tuberculous mycobacterial or fungal infections, B20 best matches the clinical scenario of a serious opportunistic infection in an immunosuppressed host. The other codes are related to unrelated conditions such as osteoporosis (M81.0), diabetes (E11.65), thyroid disorders (E03.9), lipid disorders (E78.5), hypertension (I10), vitamin deficiency (E55.9), long-term drug therapy (Z79.4), and transplant status (Z94.81), none of which directly apply."} -2025-06-04 01:20:21,375 - INFO - -================================================== -2025-06-04 01:20:21,375 - INFO - Stage: match_icd10_code -2025-06-04 01:20:21,376 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:21,377 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but in the absence of a code specifically for disseminated non-tuberculous mycobacterial or fungal infections, B20 best matches the clinical scenario of a serious opportunistic infection in an immunosuppressed host. The other codes are related to unrelated conditions such as osteoporosis (M81.0), diabetes (E11.65), thyroid disorders (E03.9), lipid disorders (E78.5), hypertension (I10), vitamin deficiency (E55.9), long-term drug therapy (Z79.4), and transplant status (Z94.81), none of which directly apply.", - "error": null -} -2025-06-04 01:20:21,378 - INFO - ================================================== - -2025-06-04 01:20:21,380 - INFO - -================================================== -2025-06-04 01:20:21,380 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:21,381 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but in the absence of a code specifically for disseminated non-tuberculous mycobacterial or fungal infections, B20 best matches the clinical scenario of a serious opportunistic infection in an immunosuppressed host. The other codes are related to unrelated conditions such as osteoporosis (M81.0), diabetes (E11.65), thyroid disorders (E03.9), lipid disorders (E78.5), hypertension (I10), vitamin deficiency (E55.9), long-term drug therapy (Z79.4), and transplant status (Z94.81), none of which directly apply.", - "error": null -} -2025-06-04 01:20:21,381 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but in the absence of a code specifically for disseminated non-tuberculous mycobacterial or fungal infections, B20 best matches the clinical scenario of a serious opportunistic infection in an immunosuppressed host. The other codes are related to unrelated conditions such as osteoporosis (M81.0), diabetes (E11.65), thyroid disorders (E03.9), lipid disorders (E78.5), hypertension (I10), vitamin deficiency (E55.9), long-term drug therapy (Z79.4), and transplant status (Z94.81), none of which directly apply.", - "error": null -} -2025-06-04 01:20:21,382 - INFO - ================================================== - -2025-06-04 01:20:21,384 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but in the absence of a code specifically for disseminated non-tuberculous mycobacterial or fungal infections, B20 best matches the clinical scenario of a serious opportunistic infection in an immunosuppressed host. The other codes are related to unrelated conditions such as osteoporosis (M81.0), diabetes (E11.65), thyroid disorders (E03.9), lipid disorders (E78.5), hypertension (I10), vitamin deficiency (E55.9), long-term drug therapy (Z79.4), and transplant status (Z94.81), none of which directly apply. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:23,167 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specifically for HIV disease resulting in infectious and parasitic diseases, but there is no evidence of HIV infection in this patient. The clinical case describes immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not HIV."} -2025-06-04 01:20:23,167 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specifically for HIV disease resulting in infectious and parasitic diseases, but there is no evidence of HIV infection in this patient. The clinical case describes immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not HIV.'} -2025-06-04 01:20:23,170 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:26,414 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes severe immunosuppression with unexplained fever, night sweats, weight loss, and multiple organ involvement (lungs, liver, spleen) in a patient on immunosuppressive therapy. Among the provided codes, B20 ('Human immunodeficiency virus [HIV] disease') best fits, as it encompasses disseminated opportunistic infections seen in immunocompromised patients, such as non-tuberculous mycobacterial or fungal infections. Although the patient is not documented as HIV-positive, none of the other codes correspond to disseminated infectious etiologies, and B20 is used when coding the presence of opportunistic infections in immunocompromised states."} -2025-06-04 01:20:26,417 - INFO - -================================================== -2025-06-04 01:20:26,417 - INFO - Stage: match_icd10_code -2025-06-04 01:20:26,418 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:26,420 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes severe immunosuppression with unexplained fever, night sweats, weight loss, and multiple organ involvement (lungs, liver, spleen) in a patient on immunosuppressive therapy. Among the provided codes, B20 ('Human immunodeficiency virus [HIV] disease') best fits, as it encompasses disseminated opportunistic infections seen in immunocompromised patients, such as non-tuberculous mycobacterial or fungal infections. Although the patient is not documented as HIV-positive, none of the other codes correspond to disseminated infectious etiologies, and B20 is used when coding the presence of opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:20:26,420 - INFO - ================================================== - -2025-06-04 01:20:26,423 - INFO - -================================================== -2025-06-04 01:20:26,423 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:26,424 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes severe immunosuppression with unexplained fever, night sweats, weight loss, and multiple organ involvement (lungs, liver, spleen) in a patient on immunosuppressive therapy. Among the provided codes, B20 ('Human immunodeficiency virus [HIV] disease') best fits, as it encompasses disseminated opportunistic infections seen in immunocompromised patients, such as non-tuberculous mycobacterial or fungal infections. Although the patient is not documented as HIV-positive, none of the other codes correspond to disseminated infectious etiologies, and B20 is used when coding the presence of opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:20:26,425 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes severe immunosuppression with unexplained fever, night sweats, weight loss, and multiple organ involvement (lungs, liver, spleen) in a patient on immunosuppressive therapy. Among the provided codes, B20 ('Human immunodeficiency virus [HIV] disease') best fits, as it encompasses disseminated opportunistic infections seen in immunocompromised patients, such as non-tuberculous mycobacterial or fungal infections. Although the patient is not documented as HIV-positive, none of the other codes correspond to disseminated infectious etiologies, and B20 is used when coding the presence of opportunistic infections in immunocompromised states.", - "error": null -} -2025-06-04 01:20:26,427 - INFO - ================================================== - -2025-06-04 01:20:26,429 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes severe immunosuppression with unexplained fever, night sweats, weight loss, and multiple organ involvement (lungs, liver, spleen) in a patient on immunosuppressive therapy. Among the provided codes, B20 ('Human immunodeficiency virus [HIV] disease') best fits, as it encompasses disseminated opportunistic infections seen in immunocompromised patients, such as non-tuberculous mycobacterial or fungal infections. Although the patient is not documented as HIV-positive, none of the other codes correspond to disseminated infectious etiologies, and B20 is used when coding the presence of opportunistic infections in immunocompromised states. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:28,036 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specifically for HIV-related disease and opportunistic infections due to HIV; this patient has immunosuppression from medications, not HIV, making B20 inappropriate."} -2025-06-04 01:20:28,037 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specifically for HIV-related disease and opportunistic infections due to HIV; this patient has immunosuppression from medications, not HIV, making B20 inappropriate.'} -2025-06-04 01:20:28,042 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:30,320 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The patient is on long-term use of immunosuppressive medications (methotrexate and prednisone), which is most accurately captured by ICD-10 code Z79.4 (Long term (current) use of anti-inflammatory drugs). The patient's presentation and workup are directly related to her immunosuppressed state, increasing risk of disseminated infections."} -2025-06-04 01:20:30,324 - INFO - -================================================== -2025-06-04 01:20:30,325 - INFO - Stage: match_icd10_code -2025-06-04 01:20:30,325 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:30,326 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term use of immunosuppressive medications (methotrexate and prednisone), which is most accurately captured by ICD-10 code Z79.4 (Long term (current) use of anti-inflammatory drugs). The patient's presentation and workup are directly related to her immunosuppressed state, increasing risk of disseminated infections.", - "error": null -} -2025-06-04 01:20:30,328 - INFO - ================================================== - -2025-06-04 01:20:30,332 - INFO - -================================================== -2025-06-04 01:20:30,333 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:30,333 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term use of immunosuppressive medications (methotrexate and prednisone), which is most accurately captured by ICD-10 code Z79.4 (Long term (current) use of anti-inflammatory drugs). The patient's presentation and workup are directly related to her immunosuppressed state, increasing risk of disseminated infections.", - "error": null -} -2025-06-04 01:20:30,335 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term use of immunosuppressive medications (methotrexate and prednisone), which is most accurately captured by ICD-10 code Z79.4 (Long term (current) use of anti-inflammatory drugs). The patient's presentation and workup are directly related to her immunosuppressed state, increasing risk of disseminated infections.", - "error": null -} -2025-06-04 01:20:30,335 - INFO - ================================================== - -2025-06-04 01:20:30,337 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The patient is on long-term use of immunosuppressive medications (methotrexate and prednisone), which is most accurately captured by ICD-10 code Z79.4 (Long term (current) use of anti-inflammatory drugs). The patient's presentation and workup are directly related to her immunosuppressed state, increasing risk of disseminated infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:32,146 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "Z79.4 is defined as 'Long term (current) use of anti-inflammatory drugs,' which refers primarily to NSAIDs, not immunosuppressive therapies like methotrexate and prednisone; therefore, this code does not specifically capture the patient's use of immunosuppressive medications."} -2025-06-04 01:20:32,147 - INFO - Validation result: {'is_valid': False, 'reason': "Z79.4 is defined as 'Long term (current) use of anti-inflammatory drugs,' which refers primarily to NSAIDs, not immunosuppressive therapies like methotrexate and prednisone; therefore, this code does not specifically capture the patient's use of immunosuppressive medications."} -2025-06-04 01:20:32,149 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:34,519 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "Although the patient is at risk for opportunistic infections due to immunosuppression from rheumatoid arthritis therapy, the most appropriate ICD-10 code from the provided list is B20 (HIV disease) because it encompasses unexplained systemic symptoms in the immunocompromised host with concern for opportunistic infections such as disseminated mycobacterial or fungal infection, as the other codes do not pertain to infectious etiologies."} -2025-06-04 01:20:34,521 - INFO - -================================================== -2025-06-04 01:20:34,521 - INFO - Stage: match_icd10_code -2025-06-04 01:20:34,522 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:34,522 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "Although the patient is at risk for opportunistic infections due to immunosuppression from rheumatoid arthritis therapy, the most appropriate ICD-10 code from the provided list is B20 (HIV disease) because it encompasses unexplained systemic symptoms in the immunocompromised host with concern for opportunistic infections such as disseminated mycobacterial or fungal infection, as the other codes do not pertain to infectious etiologies.", - "error": null -} -2025-06-04 01:20:34,523 - INFO - ================================================== - -2025-06-04 01:20:34,526 - INFO - -================================================== -2025-06-04 01:20:34,526 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:34,527 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "Although the patient is at risk for opportunistic infections due to immunosuppression from rheumatoid arthritis therapy, the most appropriate ICD-10 code from the provided list is B20 (HIV disease) because it encompasses unexplained systemic symptoms in the immunocompromised host with concern for opportunistic infections such as disseminated mycobacterial or fungal infection, as the other codes do not pertain to infectious etiologies.", - "error": null -} -2025-06-04 01:20:34,527 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "Although the patient is at risk for opportunistic infections due to immunosuppression from rheumatoid arthritis therapy, the most appropriate ICD-10 code from the provided list is B20 (HIV disease) because it encompasses unexplained systemic symptoms in the immunocompromised host with concern for opportunistic infections such as disseminated mycobacterial or fungal infection, as the other codes do not pertain to infectious etiologies.", - "error": null -} -2025-06-04 01:20:34,528 - INFO - ================================================== - -2025-06-04 01:20:34,530 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: Although the patient is at risk for opportunistic infections due to immunosuppression from rheumatoid arthritis therapy, the most appropriate ICD-10 code from the provided list is B20 (HIV disease) because it encompasses unexplained systemic symptoms in the immunocompromised host with concern for opportunistic infections such as disseminated mycobacterial or fungal infection, as the other codes do not pertain to infectious etiologies. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:36,406 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease, but the patient does not have HIV and is immunosuppressed due to rheumatoid arthritis therapy; a more accurate code is not available from the provided list."} -2025-06-04 01:20:36,407 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease, but the patient does not have HIV and is immunosuppressed due to rheumatoid arthritis therapy; a more accurate code is not available from the provided list.'} -2025-06-04 01:20:36,412 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:39,244 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, and imaging suggesting disseminated infection, in the context of immunosuppression. The most appropriate ICD-10 code from the provided list is B20 (Human immunodeficiency virus [HIV] disease), as B20 is often used broadly for immunocompromised states with complex infections when no other infection code matches. While the specific diagnosis here is not yet clear, none of the other codes fit infectious or immunocompromised circumstances; therefore, B20 best captures the nature of the case presented."} -2025-06-04 01:20:39,246 - INFO - -================================================== -2025-06-04 01:20:39,247 - INFO - Stage: match_icd10_code -2025-06-04 01:20:39,247 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:39,248 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, and imaging suggesting disseminated infection, in the context of immunosuppression. The most appropriate ICD-10 code from the provided list is B20 (Human immunodeficiency virus [HIV] disease), as B20 is often used broadly for immunocompromised states with complex infections when no other infection code matches. While the specific diagnosis here is not yet clear, none of the other codes fit infectious or immunocompromised circumstances; therefore, B20 best captures the nature of the case presented.", - "error": null -} -2025-06-04 01:20:39,250 - INFO - ================================================== - -2025-06-04 01:20:39,254 - INFO - -================================================== -2025-06-04 01:20:39,255 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:39,256 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, and imaging suggesting disseminated infection, in the context of immunosuppression. The most appropriate ICD-10 code from the provided list is B20 (Human immunodeficiency virus [HIV] disease), as B20 is often used broadly for immunocompromised states with complex infections when no other infection code matches. While the specific diagnosis here is not yet clear, none of the other codes fit infectious or immunocompromised circumstances; therefore, B20 best captures the nature of the case presented.", - "error": null -} -2025-06-04 01:20:39,256 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, and imaging suggesting disseminated infection, in the context of immunosuppression. The most appropriate ICD-10 code from the provided list is B20 (Human immunodeficiency virus [HIV] disease), as B20 is often used broadly for immunocompromised states with complex infections when no other infection code matches. While the specific diagnosis here is not yet clear, none of the other codes fit infectious or immunocompromised circumstances; therefore, B20 best captures the nature of the case presented.", - "error": null -} -2025-06-04 01:20:39,257 - INFO - ================================================== - -2025-06-04 01:20:39,259 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, and imaging suggesting disseminated infection, in the context of immunosuppression. The most appropriate ICD-10 code from the provided list is B20 (Human immunodeficiency virus [HIV] disease), as B20 is often used broadly for immunocompromised states with complex infections when no other infection code matches. While the specific diagnosis here is not yet clear, none of the other codes fit infectious or immunocompromised circumstances; therefore, B20 best captures the nature of the case presented. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:40,617 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 indicates HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection."} -2025-06-04 01:20:40,617 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 indicates HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection.'} -2025-06-04 01:20:40,620 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:42,971 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical picture is consistent with a severe immunocompromised state and atypical infections, which falls under 'B20: Human immunodeficiency virus [HIV] disease' by exclusion, as none of the other codes relate to disseminated mycobacterial or fungal infections or immunodeficiency; 'B20' is the only infectious disease code available and often encompasses AIDS-defining opportunistic infections in the ICD-10 framework."} -2025-06-04 01:20:42,975 - INFO - -================================================== -2025-06-04 01:20:42,976 - INFO - Stage: match_icd10_code -2025-06-04 01:20:42,976 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:42,977 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture is consistent with a severe immunocompromised state and atypical infections, which falls under 'B20: Human immunodeficiency virus [HIV] disease' by exclusion, as none of the other codes relate to disseminated mycobacterial or fungal infections or immunodeficiency; 'B20' is the only infectious disease code available and often encompasses AIDS-defining opportunistic infections in the ICD-10 framework.", - "error": null -} -2025-06-04 01:20:42,977 - INFO - ================================================== - -2025-06-04 01:20:42,979 - INFO - -================================================== -2025-06-04 01:20:42,980 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:42,980 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture is consistent with a severe immunocompromised state and atypical infections, which falls under 'B20: Human immunodeficiency virus [HIV] disease' by exclusion, as none of the other codes relate to disseminated mycobacterial or fungal infections or immunodeficiency; 'B20' is the only infectious disease code available and often encompasses AIDS-defining opportunistic infections in the ICD-10 framework.", - "error": null -} -2025-06-04 01:20:42,981 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical picture is consistent with a severe immunocompromised state and atypical infections, which falls under 'B20: Human immunodeficiency virus [HIV] disease' by exclusion, as none of the other codes relate to disseminated mycobacterial or fungal infections or immunodeficiency; 'B20' is the only infectious disease code available and often encompasses AIDS-defining opportunistic infections in the ICD-10 framework.", - "error": null -} -2025-06-04 01:20:42,981 - INFO - ================================================== - -2025-06-04 01:20:42,984 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical picture is consistent with a severe immunocompromised state and atypical infections, which falls under 'B20: Human immunodeficiency virus [HIV] disease' by exclusion, as none of the other codes relate to disseminated mycobacterial or fungal infections or immunodeficiency; 'B20' is the only infectious disease code available and often encompasses AIDS-defining opportunistic infections in the ICD-10 framework. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:44,830 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but there is no evidence or mention of HIV infection in the clinical case; the patient's immunosuppressed state is due to immunosuppressive therapy for rheumatoid arthritis, not HIV."} -2025-06-04 01:20:44,831 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 refers specifically to HIV disease, but there is no evidence or mention of HIV infection in the clinical case; the patient's immunosuppressed state is due to immunosuppressive therapy for rheumatoid arthritis, not HIV."} -2025-06-04 01:20:44,837 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:47,149 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility."} -2025-06-04 01:20:47,152 - INFO - -================================================== -2025-06-04 01:20:47,152 - INFO - Stage: match_icd10_code -2025-06-04 01:20:47,152 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:47,153 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:47,153 - INFO - ================================================== - -2025-06-04 01:20:47,156 - INFO - -================================================== -2025-06-04 01:20:47,157 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:47,157 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:47,158 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:47,159 - INFO - ================================================== - -2025-06-04 01:20:47,161 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:48,609 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 is appropriate because it specifies long-term use of immunosuppressive drugs, which is the underlying factor contributing to the patient's increased risk for disseminated infections."} -2025-06-04 01:20:48,610 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 is appropriate because it specifies long-term use of immunosuppressive drugs, which is the underlying factor contributing to the patient's increased risk for disseminated infections."} -2025-06-04 01:20:48,611 - INFO - -================================================== -2025-06-04 01:20:48,611 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:20:48,612 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:48,612 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:48,613 - INFO - ================================================== - -2025-06-04 01:20:48,615 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:20:49,736 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:20:49,740 - INFO - -================================================== -2025-06-04 01:20:49,741 - INFO - Stage: extract_patient_info -2025-06-04 01:20:49,741 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:49,742 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": "Failed to extract patient information: 'str' object has no attribute 'content'" -} -2025-06-04 01:20:49,743 - INFO - ================================================== - -2025-06-04 01:20:49,744 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:51,780 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario involves a patient with suspected disseminated infection (possible mycobacterial or fungal), immunosuppression, and systemic symptoms. Among the listed codes, B20 (HIV disease) is the only infectious disease code, and while not a perfect match, it is closest to a severe immunocompromised state predisposing to such infections, as the other codes pertain to non-infectious or unrelated conditions."} -2025-06-04 01:20:51,782 - INFO - -================================================== -2025-06-04 01:20:51,783 - INFO - Stage: match_icd10_code -2025-06-04 01:20:51,784 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "Z79.4", - "rationale": "The patient's persistent symptoms and immunosuppression are due to chronic use of immunosuppressive drugs (methotrexate, prednisone), which is captured by Z79.4 (Long-term [current] use of insulin and other drugs). None of the other listed codes are specific for mycobacterial or fungal infections; Z79.4 is most directly relevant to this patient's immunosuppressed state leading to susceptibility.", - "error": null -} -2025-06-04 01:20:51,784 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with suspected disseminated infection (possible mycobacterial or fungal), immunosuppression, and systemic symptoms. Among the listed codes, B20 (HIV disease) is the only infectious disease code, and while not a perfect match, it is closest to a severe immunocompromised state predisposing to such infections, as the other codes pertain to non-infectious or unrelated conditions.", - "error": null -} -2025-06-04 01:20:51,786 - INFO - ================================================== - -2025-06-04 01:20:51,788 - INFO - -================================================== -2025-06-04 01:20:51,788 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:51,789 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with suspected disseminated infection (possible mycobacterial or fungal), immunosuppression, and systemic symptoms. Among the listed codes, B20 (HIV disease) is the only infectious disease code, and while not a perfect match, it is closest to a severe immunocompromised state predisposing to such infections, as the other codes pertain to non-infectious or unrelated conditions.", - "error": null -} -2025-06-04 01:20:51,789 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with suspected disseminated infection (possible mycobacterial or fungal), immunosuppression, and systemic symptoms. Among the listed codes, B20 (HIV disease) is the only infectious disease code, and while not a perfect match, it is closest to a severe immunocompromised state predisposing to such infections, as the other codes pertain to non-infectious or unrelated conditions.", - "error": null -} -2025-06-04 01:20:51,790 - INFO - ================================================== - -2025-06-04 01:20:51,791 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario involves a patient with suspected disseminated infection (possible mycobacterial or fungal), immunosuppression, and systemic symptoms. Among the listed codes, B20 (HIV disease) is the only infectious disease code, and while not a perfect match, it is closest to a severe immunocompromised state predisposing to such infections, as the other codes pertain to non-infectious or unrelated conditions. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:53,227 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 (HIV disease) is not appropriate, as the patient’s immunosuppression is due to medications for rheumatoid arthritis, not HIV infection."} -2025-06-04 01:20:53,228 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 (HIV disease) is not appropriate, as the patient’s immunosuppression is due to medications for rheumatoid arthritis, not HIV infection.'} -2025-06-04 01:20:53,232 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:55,246 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient is immunosuppressed and presenting with symptoms suggestive of a disseminated opportunistic infection (e.g., non-tuberculous mycobacteria or histoplasmosis), which are often associated with immunodeficiency states such as HIV/AIDS and covered under ICD-10 code B20 for immunodeficiency with opportunistic infections."} -2025-06-04 01:20:55,250 - INFO - -================================================== -2025-06-04 01:20:55,251 - INFO - Stage: match_icd10_code -2025-06-04 01:20:55,253 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:55,254 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with symptoms suggestive of a disseminated opportunistic infection (e.g., non-tuberculous mycobacteria or histoplasmosis), which are often associated with immunodeficiency states such as HIV/AIDS and covered under ICD-10 code B20 for immunodeficiency with opportunistic infections.", - "error": null -} -2025-06-04 01:20:55,255 - INFO - ================================================== - -2025-06-04 01:20:55,257 - INFO - -================================================== -2025-06-04 01:20:55,258 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:55,259 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with symptoms suggestive of a disseminated opportunistic infection (e.g., non-tuberculous mycobacteria or histoplasmosis), which are often associated with immunodeficiency states such as HIV/AIDS and covered under ICD-10 code B20 for immunodeficiency with opportunistic infections.", - "error": null -} -2025-06-04 01:20:55,259 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with symptoms suggestive of a disseminated opportunistic infection (e.g., non-tuberculous mycobacteria or histoplasmosis), which are often associated with immunodeficiency states such as HIV/AIDS and covered under ICD-10 code B20 for immunodeficiency with opportunistic infections.", - "error": null -} -2025-06-04 01:20:55,260 - INFO - ================================================== - -2025-06-04 01:20:55,263 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient is immunosuppressed and presenting with symptoms suggestive of a disseminated opportunistic infection (e.g., non-tuberculous mycobacteria or histoplasmosis), which are often associated with immunodeficiency states such as HIV/AIDS and covered under ICD-10 code B20 for immunodeficiency with opportunistic infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:56,873 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease with associated opportunistic infections, but there is no evidence or mention of HIV infection or AIDS in this patient's history; immunosuppression is due to medications for rheumatoid arthritis."} -2025-06-04 01:20:56,875 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 is for HIV disease with associated opportunistic infections, but there is no evidence or mention of HIV infection or AIDS in this patient's history; immunosuppression is due to medications for rheumatoid arthritis."} -2025-06-04 01:20:56,878 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:20:59,705 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases. While the case does not specify HIV infection, B20 is commonly used for immunocompromised states presenting with unusual infections (e.g., disseminated mycobacterial or fungal infections) in ICD-10 coding, particularly when other codes are unrelated. None of the other codes in the list (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant status) fit the clinical scenario as closely as B20 for a patient with immunosuppression and serious opportunistic infection."} -2025-06-04 01:20:59,708 - INFO - -================================================== -2025-06-04 01:20:59,709 - INFO - Stage: match_icd10_code -2025-06-04 01:20:59,710 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:20:59,711 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases. While the case does not specify HIV infection, B20 is commonly used for immunocompromised states presenting with unusual infections (e.g., disseminated mycobacterial or fungal infections) in ICD-10 coding, particularly when other codes are unrelated. None of the other codes in the list (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant status) fit the clinical scenario as closely as B20 for a patient with immunosuppression and serious opportunistic infection.", - "error": null -} -2025-06-04 01:20:59,711 - INFO - ================================================== - -2025-06-04 01:20:59,714 - INFO - -================================================== -2025-06-04 01:20:59,715 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:20:59,716 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases. While the case does not specify HIV infection, B20 is commonly used for immunocompromised states presenting with unusual infections (e.g., disseminated mycobacterial or fungal infections) in ICD-10 coding, particularly when other codes are unrelated. None of the other codes in the list (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant status) fit the clinical scenario as closely as B20 for a patient with immunosuppression and serious opportunistic infection.", - "error": null -} -2025-06-04 01:20:59,717 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases. While the case does not specify HIV infection, B20 is commonly used for immunocompromised states presenting with unusual infections (e.g., disseminated mycobacterial or fungal infections) in ICD-10 coding, particularly when other codes are unrelated. None of the other codes in the list (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant status) fit the clinical scenario as closely as B20 for a patient with immunosuppression and serious opportunistic infection.", - "error": null -} -2025-06-04 01:20:59,717 - INFO - ================================================== - -2025-06-04 01:20:59,719 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases. While the case does not specify HIV infection, B20 is commonly used for immunocompromised states presenting with unusual infections (e.g., disseminated mycobacterial or fungal infections) in ICD-10 coding, particularly when other codes are unrelated. None of the other codes in the list (osteoporosis, medication use, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, organ transplant status) fit the clinical scenario as closely as B20 for a patient with immunosuppression and serious opportunistic infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:21:01,565 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specifically for HIV disease, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV, so B20 is not appropriate."} -2025-06-04 01:21:01,568 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specifically for HIV disease, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV, so B20 is not appropriate.'} -2025-06-04 01:21:01,573 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:21:04,050 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes immunosuppression, systemic symptoms, and opportunistic infection considerations (disseminated mycobacterial infection or histoplasmosis). Of the provided codes, B20 represents HIV disease causing infectious and parasitic diseases, the most closely matching code for immunocompromised states with complex infections. Although the patient has rheumatoid arthritis and is immunosuppressed due to medication and there is no documentation of HIV, none of the other codes reflect disseminated infection or immunosuppression; B20 is the most appropriate fit from the list."} -2025-06-04 01:21:04,053 - INFO - -================================================== -2025-06-04 01:21:04,054 - INFO - Stage: match_icd10_code -2025-06-04 01:21:04,055 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:21:04,056 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes immunosuppression, systemic symptoms, and opportunistic infection considerations (disseminated mycobacterial infection or histoplasmosis). Of the provided codes, B20 represents HIV disease causing infectious and parasitic diseases, the most closely matching code for immunocompromised states with complex infections. Although the patient has rheumatoid arthritis and is immunosuppressed due to medication and there is no documentation of HIV, none of the other codes reflect disseminated infection or immunosuppression; B20 is the most appropriate fit from the list.", - "error": null -} -2025-06-04 01:21:04,057 - INFO - ================================================== - -2025-06-04 01:21:04,060 - INFO - -================================================== -2025-06-04 01:21:04,061 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:21:04,063 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes immunosuppression, systemic symptoms, and opportunistic infection considerations (disseminated mycobacterial infection or histoplasmosis). Of the provided codes, B20 represents HIV disease causing infectious and parasitic diseases, the most closely matching code for immunocompromised states with complex infections. Although the patient has rheumatoid arthritis and is immunosuppressed due to medication and there is no documentation of HIV, none of the other codes reflect disseminated infection or immunosuppression; B20 is the most appropriate fit from the list.", - "error": null -} -2025-06-04 01:21:04,063 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": "B20", - "rationale": "The clinical scenario describes immunosuppression, systemic symptoms, and opportunistic infection considerations (disseminated mycobacterial infection or histoplasmosis). Of the provided codes, B20 represents HIV disease causing infectious and parasitic diseases, the most closely matching code for immunocompromised states with complex infections. Although the patient has rheumatoid arthritis and is immunosuppressed due to medication and there is no documentation of HIV, none of the other codes reflect disseminated infection or immunosuppression; B20 is the most appropriate fit from the list.", - "error": null -} -2025-06-04 01:21:04,064 - INFO - ================================================== - -2025-06-04 01:21:04,066 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes immunosuppression, systemic symptoms, and opportunistic infection considerations (disseminated mycobacterial infection or histoplasmosis). Of the provided codes, B20 represents HIV disease causing infectious and parasitic diseases, the most closely matching code for immunocompromised states with complex infections. Although the patient has rheumatoid arthritis and is immunosuppressed due to medication and there is no documentation of HIV, none of the other codes reflect disseminated infection or immunosuppression; B20 is the most appropriate fit from the list. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:21:05,627 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifies HIV disease causing infections, but there is no evidence of HIV in this patient. The immunosuppression is due to medication, not HIV."} -2025-06-04 01:21:05,627 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifies HIV disease causing infections, but there is no evidence of HIV in this patient. The immunosuppression is due to medication, not HIV.'} -2025-06-04 01:21:05,629 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: None - Patient Gender: None - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:17,784 - INFO - -================================================== -2025-06-04 01:27:17,786 - INFO - Starting new clinical case processing -2025-06-04 01:27:17,786 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:27:17,787 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:27:17,787 - INFO - ================================================== - -2025-06-04 01:27:17,795 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:27:19,033 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:27:19,037 - INFO - -================================================== -2025-06-04 01:27:19,037 - INFO - Stage: extract_patient_info -2025-06-04 01:27:19,037 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:19,038 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:19,038 - INFO - ================================================== - -2025-06-04 01:27:19,042 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:21,219 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The most appropriate code from the provided list is B20, which is used for HIV disease resulting in infectious and parasitic diseases. While the case does not explicitly mention HIV, B20 is the only code that covers disseminated infectious processes such as mycobacterial or fungal infections in immunocompromised patients, and none of the other listed codes are relevant to infectious etiologies. This matches the clinical suspicion of disseminated non-tuberculous mycobacteria or histoplasmosis in an immunosuppressed host."} -2025-06-04 01:27:21,220 - INFO - -================================================== -2025-06-04 01:27:21,221 - INFO - Stage: match_icd10_code -2025-06-04 01:27:21,221 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:21,223 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The most appropriate code from the provided list is B20, which is used for HIV disease resulting in infectious and parasitic diseases. While the case does not explicitly mention HIV, B20 is the only code that covers disseminated infectious processes such as mycobacterial or fungal infections in immunocompromised patients, and none of the other listed codes are relevant to infectious etiologies. This matches the clinical suspicion of disseminated non-tuberculous mycobacteria or histoplasmosis in an immunosuppressed host.", - "error": null -} -2025-06-04 01:27:21,223 - INFO - ================================================== - -2025-06-04 01:27:21,225 - INFO - -================================================== -2025-06-04 01:27:21,225 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:21,226 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The most appropriate code from the provided list is B20, which is used for HIV disease resulting in infectious and parasitic diseases. While the case does not explicitly mention HIV, B20 is the only code that covers disseminated infectious processes such as mycobacterial or fungal infections in immunocompromised patients, and none of the other listed codes are relevant to infectious etiologies. This matches the clinical suspicion of disseminated non-tuberculous mycobacteria or histoplasmosis in an immunosuppressed host.", - "error": null -} -2025-06-04 01:27:21,226 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The most appropriate code from the provided list is B20, which is used for HIV disease resulting in infectious and parasitic diseases. While the case does not explicitly mention HIV, B20 is the only code that covers disseminated infectious processes such as mycobacterial or fungal infections in immunocompromised patients, and none of the other listed codes are relevant to infectious etiologies. This matches the clinical suspicion of disseminated non-tuberculous mycobacteria or histoplasmosis in an immunosuppressed host.", - "error": null -} -2025-06-04 01:27:21,227 - INFO - ================================================== - -2025-06-04 01:27:21,228 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The most appropriate code from the provided list is B20, which is used for HIV disease resulting in infectious and parasitic diseases. While the case does not explicitly mention HIV, B20 is the only code that covers disseminated infectious processes such as mycobacterial or fungal infections in immunocompromised patients, and none of the other listed codes are relevant to infectious etiologies. This matches the clinical suspicion of disseminated non-tuberculous mycobacteria or histoplasmosis in an immunosuppressed host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:22,749 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease causing infections; the case does not mention HIV, so B20 is inappropriate for this immunosuppressed, non-HIV patient."} -2025-06-04 01:27:22,750 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease causing infections; the case does not mention HIV, so B20 is inappropriate for this immunosuppressed, non-HIV patient.'} -2025-06-04 01:27:22,753 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:24,646 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case."} -2025-06-04 01:27:24,647 - INFO - -================================================== -2025-06-04 01:27:24,648 - INFO - Stage: match_icd10_code -2025-06-04 01:27:24,648 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:24,649 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:24,649 - INFO - ================================================== - -2025-06-04 01:27:24,651 - INFO - -================================================== -2025-06-04 01:27:24,652 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:24,652 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:24,653 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:24,653 - INFO - ================================================== - -2025-06-04 01:27:24,655 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:26,133 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 is appropriate because the patient is on long-term corticosteroid therapy with prednisone, which is relevant to her immunosuppressed status and risk for atypical infections."} -2025-06-04 01:27:26,134 - INFO - Validation result: {'is_valid': True, 'reason': 'The code Z79.4 is appropriate because the patient is on long-term corticosteroid therapy with prednisone, which is relevant to her immunosuppressed status and risk for atypical infections.'} -2025-06-04 01:27:26,136 - INFO - -================================================== -2025-06-04 01:27:26,137 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:27:26,138 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:26,138 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:26,139 - INFO - ================================================== - -2025-06-04 01:27:26,141 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:27:27,300 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:27:27,302 - INFO - -================================================== -2025-06-04 01:27:27,303 - INFO - Stage: extract_patient_info -2025-06-04 01:27:27,304 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:27,305 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:27,306 - INFO - ================================================== - -2025-06-04 01:27:27,309 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:29,719 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's immunosuppressed state and prolonged systemic symptoms with concern for atypical infections (e.g., disseminated mycobacterial or fungal infections) align with opportunistic infections typically seen in HIV disease, which is what code B20 (HIV disease resulting in infectious and parasitic diseases) encompasses. While HIV is not confirmed in the case, this is the most applicable code from the provided options, as none directly specify mycobacterial or fungal infections nor immunosuppression due to other causes."} -2025-06-04 01:27:29,723 - INFO - -================================================== -2025-06-04 01:27:29,724 - INFO - Stage: match_icd10_code -2025-06-04 01:27:29,725 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient has rheumatoid arthritis and is currently on long-term low-dose prednisone therapy, which is an immunosuppressive corticosteroid. Z79.4 denotes long-term (current) use of corticosteroids and is the most appropriate code from the provided list for billing and clinical documentation, given the immunosuppression-related infectious concerns described in the case.", - "error": null -} -2025-06-04 01:27:29,726 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed state and prolonged systemic symptoms with concern for atypical infections (e.g., disseminated mycobacterial or fungal infections) align with opportunistic infections typically seen in HIV disease, which is what code B20 (HIV disease resulting in infectious and parasitic diseases) encompasses. While HIV is not confirmed in the case, this is the most applicable code from the provided options, as none directly specify mycobacterial or fungal infections nor immunosuppression due to other causes.", - "error": null -} -2025-06-04 01:27:29,727 - INFO - ================================================== - -2025-06-04 01:27:29,731 - INFO - -================================================== -2025-06-04 01:27:29,732 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:29,732 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed state and prolonged systemic symptoms with concern for atypical infections (e.g., disseminated mycobacterial or fungal infections) align with opportunistic infections typically seen in HIV disease, which is what code B20 (HIV disease resulting in infectious and parasitic diseases) encompasses. While HIV is not confirmed in the case, this is the most applicable code from the provided options, as none directly specify mycobacterial or fungal infections nor immunosuppression due to other causes.", - "error": null -} -2025-06-04 01:27:29,733 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed state and prolonged systemic symptoms with concern for atypical infections (e.g., disseminated mycobacterial or fungal infections) align with opportunistic infections typically seen in HIV disease, which is what code B20 (HIV disease resulting in infectious and parasitic diseases) encompasses. While HIV is not confirmed in the case, this is the most applicable code from the provided options, as none directly specify mycobacterial or fungal infections nor immunosuppression due to other causes.", - "error": null -} -2025-06-04 01:27:29,734 - INFO - ================================================== - -2025-06-04 01:27:29,737 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's immunosuppressed state and prolonged systemic symptoms with concern for atypical infections (e.g., disseminated mycobacterial or fungal infections) align with opportunistic infections typically seen in HIV disease, which is what code B20 (HIV disease resulting in infectious and parasitic diseases) encompasses. While HIV is not confirmed in the case, this is the most applicable code from the provided options, as none directly specify mycobacterial or fungal infections nor immunosuppression due to other causes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:31,343 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 requires a confirmed diagnosis of HIV infection, which is not present in this case. The patient's immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV disease."} -2025-06-04 01:27:31,344 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 requires a confirmed diagnosis of HIV infection, which is not present in this case. The patient's immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV disease."} -2025-06-04 01:27:31,346 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:33,568 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease, which can be associated with opportunistic infections like disseminated mycobacterial or atypical fungal infections, as described in the clinical scenario. While the patient does not have a confirmed HIV diagnosis, this is the only code among the options that relates to immunosuppression and infections of this nature; the others correspond to unrelated conditions such as osteoporosis, diabetes, hypothyroidism, or hypertension."} -2025-06-04 01:27:33,570 - INFO - -================================================== -2025-06-04 01:27:33,571 - INFO - Stage: match_icd10_code -2025-06-04 01:27:33,571 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:33,571 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which can be associated with opportunistic infections like disseminated mycobacterial or atypical fungal infections, as described in the clinical scenario. While the patient does not have a confirmed HIV diagnosis, this is the only code among the options that relates to immunosuppression and infections of this nature; the others correspond to unrelated conditions such as osteoporosis, diabetes, hypothyroidism, or hypertension.", - "error": null -} -2025-06-04 01:27:33,572 - INFO - ================================================== - -2025-06-04 01:27:33,574 - INFO - -================================================== -2025-06-04 01:27:33,574 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:33,575 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which can be associated with opportunistic infections like disseminated mycobacterial or atypical fungal infections, as described in the clinical scenario. While the patient does not have a confirmed HIV diagnosis, this is the only code among the options that relates to immunosuppression and infections of this nature; the others correspond to unrelated conditions such as osteoporosis, diabetes, hypothyroidism, or hypertension.", - "error": null -} -2025-06-04 01:27:33,575 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, which can be associated with opportunistic infections like disseminated mycobacterial or atypical fungal infections, as described in the clinical scenario. While the patient does not have a confirmed HIV diagnosis, this is the only code among the options that relates to immunosuppression and infections of this nature; the others correspond to unrelated conditions such as osteoporosis, diabetes, hypothyroidism, or hypertension.", - "error": null -} -2025-06-04 01:27:33,576 - INFO - ================================================== - -2025-06-04 01:27:33,578 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease, which can be associated with opportunistic infections like disseminated mycobacterial or atypical fungal infections, as described in the clinical scenario. While the patient does not have a confirmed HIV diagnosis, this is the only code among the options that relates to immunosuppression and infections of this nature; the others correspond to unrelated conditions such as osteoporosis, diabetes, hypothyroidism, or hypertension. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:35,367 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for confirmed HIV infection, but the patient has no clinical or laboratory evidence of HIV; her immunosuppression is due to RA treatment. B20 is not appropriate for this case."} -2025-06-04 01:27:35,367 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for confirmed HIV infection, but the patient has no clinical or laboratory evidence of HIV; her immunosuppression is due to RA treatment. B20 is not appropriate for this case.'} -2025-06-04 01:27:35,370 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:37,598 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's persistent fevers, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while on immunosuppression are most concerning for a systemic opportunistic infection. While B20 specifically denotes HIV disease with infectious or parasitic complications, it is the closest available code among those provided that pertains to disseminated infectious processes in immunocompromised hosts. The other codes do not reflect infectious or immunodeficiency-related diagnoses."} -2025-06-04 01:27:37,600 - INFO - -================================================== -2025-06-04 01:27:37,601 - INFO - Stage: match_icd10_code -2025-06-04 01:27:37,601 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:37,602 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while on immunosuppression are most concerning for a systemic opportunistic infection. While B20 specifically denotes HIV disease with infectious or parasitic complications, it is the closest available code among those provided that pertains to disseminated infectious processes in immunocompromised hosts. The other codes do not reflect infectious or immunodeficiency-related diagnoses.", - "error": null -} -2025-06-04 01:27:37,604 - INFO - ================================================== - -2025-06-04 01:27:37,607 - INFO - -================================================== -2025-06-04 01:27:37,607 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:37,608 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while on immunosuppression are most concerning for a systemic opportunistic infection. While B20 specifically denotes HIV disease with infectious or parasitic complications, it is the closest available code among those provided that pertains to disseminated infectious processes in immunocompromised hosts. The other codes do not reflect infectious or immunodeficiency-related diagnoses.", - "error": null -} -2025-06-04 01:27:37,609 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while on immunosuppression are most concerning for a systemic opportunistic infection. While B20 specifically denotes HIV disease with infectious or parasitic complications, it is the closest available code among those provided that pertains to disseminated infectious processes in immunocompromised hosts. The other codes do not reflect infectious or immunodeficiency-related diagnoses.", - "error": null -} -2025-06-04 01:27:37,609 - INFO - ================================================== - -2025-06-04 01:27:37,612 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's persistent fevers, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while on immunosuppression are most concerning for a systemic opportunistic infection. While B20 specifically denotes HIV disease with infectious or parasitic complications, it is the closest available code among those provided that pertains to disseminated infectious processes in immunocompromised hosts. The other codes do not reflect infectious or immunodeficiency-related diagnoses. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:39,270 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically refers to HIV disease with associated infectious or parasitic complications, but this patient has no history or evidence of HIV; the presenting immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis."} -2025-06-04 01:27:39,271 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease with associated infectious or parasitic complications, but this patient has no history or evidence of HIV; the presenting immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis.'} -2025-06-04 01:27:39,274 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:41,956 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation."} -2025-06-04 01:27:41,960 - INFO - -================================================== -2025-06-04 01:27:41,961 - INFO - Stage: match_icd10_code -2025-06-04 01:27:41,961 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:27:41,962 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:41,963 - INFO - ================================================== - -2025-06-04 01:27:41,965 - INFO - -================================================== -2025-06-04 01:27:41,966 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:27:41,967 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:41,967 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:41,968 - INFO - ================================================== - -2025-06-04 01:27:41,971 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:27:43,623 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 is appropriate since the patient is on long-term corticosteroid therapy (prednisone), which is relevant to her immunosuppressed state and increased risk for infections."} -2025-06-04 01:27:43,624 - INFO - Validation result: {'is_valid': True, 'reason': 'The code Z79.4 is appropriate since the patient is on long-term corticosteroid therapy (prednisone), which is relevant to her immunosuppressed state and increased risk for infections.'} -2025-06-04 01:27:43,626 - INFO - -================================================== -2025-06-04 01:27:43,627 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:27:43,628 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:43,629 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:43,629 - INFO - ================================================== - -2025-06-04 01:27:43,631 - INFO - -================================================== -2025-06-04 01:27:43,631 - INFO - Final Result: -2025-06-04 01:27:43,632 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This patient with rheumatoid arthritis is on long-term immunosuppressive therapy (methotrexate and low-dose prednisone), making her more susceptible to infections like disseminated mycobacterial or fungal disease. Z79.4 denotes 'Long term (current) use of corticosteroids', which explains her immunosuppressed status and associated infectious risk seen in the clinical presentation.", - "error": null -} -2025-06-04 01:27:43,632 - INFO - ================================================== - -2025-06-04 01:28:54,600 - INFO - -================================================== -2025-06-04 01:28:54,607 - INFO - Starting new clinical case processing -2025-06-04 01:28:54,609 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:28:54,610 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:28:54,610 - INFO - ================================================== - -2025-06-04 01:28:54,624 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:28:55,762 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:28:55,765 - INFO - -================================================== -2025-06-04 01:28:55,766 - INFO - Stage: extract_patient_info -2025-06-04 01:28:55,766 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:28:55,767 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:28:55,767 - INFO - ================================================== - -2025-06-04 01:28:55,769 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:28:58,691 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes a patient with immunosuppression and symptoms/signs suggestive of a possible opportunistic infection such as disseminated mycobacterial or fungal disease. ICD-10 code B20 refers to HIV disease resulting in infectious and parasitic diseases, including opportunistic infections, and while the patient is not explicitly stated to have HIV, this is the most closely related code for severe opportunistic infections among those provided. None of the other codes pertain to disseminated mycobacterial or fungal infections."} -2025-06-04 01:28:58,692 - INFO - -================================================== -2025-06-04 01:28:58,693 - INFO - Stage: match_icd10_code -2025-06-04 01:28:58,694 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:28:58,695 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression and symptoms/signs suggestive of a possible opportunistic infection such as disseminated mycobacterial or fungal disease. ICD-10 code B20 refers to HIV disease resulting in infectious and parasitic diseases, including opportunistic infections, and while the patient is not explicitly stated to have HIV, this is the most closely related code for severe opportunistic infections among those provided. None of the other codes pertain to disseminated mycobacterial or fungal infections.", - "error": null -} -2025-06-04 01:28:58,696 - INFO - ================================================== - -2025-06-04 01:28:58,697 - INFO - -================================================== -2025-06-04 01:28:58,698 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:28:58,699 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression and symptoms/signs suggestive of a possible opportunistic infection such as disseminated mycobacterial or fungal disease. ICD-10 code B20 refers to HIV disease resulting in infectious and parasitic diseases, including opportunistic infections, and while the patient is not explicitly stated to have HIV, this is the most closely related code for severe opportunistic infections among those provided. None of the other codes pertain to disseminated mycobacterial or fungal infections.", - "error": null -} -2025-06-04 01:28:58,701 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression and symptoms/signs suggestive of a possible opportunistic infection such as disseminated mycobacterial or fungal disease. ICD-10 code B20 refers to HIV disease resulting in infectious and parasitic diseases, including opportunistic infections, and while the patient is not explicitly stated to have HIV, this is the most closely related code for severe opportunistic infections among those provided. None of the other codes pertain to disseminated mycobacterial or fungal infections.", - "error": null -} -2025-06-04 01:28:58,702 - INFO - ================================================== - -2025-06-04 01:28:58,703 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes a patient with immunosuppression and symptoms/signs suggestive of a possible opportunistic infection such as disseminated mycobacterial or fungal disease. ICD-10 code B20 refers to HIV disease resulting in infectious and parasitic diseases, including opportunistic infections, and while the patient is not explicitly stated to have HIV, this is the most closely related code for severe opportunistic infections among those provided. None of the other codes pertain to disseminated mycobacterial or fungal infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:00,374 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease resulting in infectious and parasitic diseases; the patient has immunosuppression due to immunosuppressive therapy for rheumatoid arthritis, not HIV, so this code is inappropriate."} -2025-06-04 01:29:00,376 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease resulting in infectious and parasitic diseases; the patient has immunosuppression due to immunosuppressive therapy for rheumatoid arthritis, not HIV, so this code is inappropriate.'} -2025-06-04 01:29:00,378 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:03,132 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is consistent with a possible opportunistic disseminated infection in the setting of immunosuppression. ICD-10 code B20 covers human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases, but it is also commonly used for serious systemic opportunistic infections in immunosuppressed patients when more specific codes are unavailable. None of the other codes on the list relate to disseminated mycobacterial or fungal infections, and B20 is the closest fit to the clinical scenario."} -2025-06-04 01:29:03,137 - INFO - -================================================== -2025-06-04 01:29:03,137 - INFO - Stage: match_icd10_code -2025-06-04 01:29:03,138 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:03,138 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a possible opportunistic disseminated infection in the setting of immunosuppression. ICD-10 code B20 covers human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases, but it is also commonly used for serious systemic opportunistic infections in immunosuppressed patients when more specific codes are unavailable. None of the other codes on the list relate to disseminated mycobacterial or fungal infections, and B20 is the closest fit to the clinical scenario.", - "error": null -} -2025-06-04 01:29:03,139 - INFO - ================================================== - -2025-06-04 01:29:03,142 - INFO - -================================================== -2025-06-04 01:29:03,143 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:03,144 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a possible opportunistic disseminated infection in the setting of immunosuppression. ICD-10 code B20 covers human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases, but it is also commonly used for serious systemic opportunistic infections in immunosuppressed patients when more specific codes are unavailable. None of the other codes on the list relate to disseminated mycobacterial or fungal infections, and B20 is the closest fit to the clinical scenario.", - "error": null -} -2025-06-04 01:29:03,144 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a possible opportunistic disseminated infection in the setting of immunosuppression. ICD-10 code B20 covers human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases, but it is also commonly used for serious systemic opportunistic infections in immunosuppressed patients when more specific codes are unavailable. None of the other codes on the list relate to disseminated mycobacterial or fungal infections, and B20 is the closest fit to the clinical scenario.", - "error": null -} -2025-06-04 01:29:03,145 - INFO - ================================================== - -2025-06-04 01:29:03,147 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is consistent with a possible opportunistic disseminated infection in the setting of immunosuppression. ICD-10 code B20 covers human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases, but it is also commonly used for serious systemic opportunistic infections in immunosuppressed patients when more specific codes are unavailable. None of the other codes on the list relate to disseminated mycobacterial or fungal infections, and B20 is the closest fit to the clinical scenario. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:04,639 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease with associated infections; the patient has immunosuppression from rheumatoid arthritis treatment but no evidence or mention of HIV infection."} -2025-06-04 01:29:04,640 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease with associated infections; the patient has immunosuppression from rheumatoid arthritis treatment but no evidence or mention of HIV infection.'} -2025-06-04 01:29:04,644 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:07,589 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The case describes an immunosuppressed patient (on methotrexate and prednisone for rheumatoid arthritis) with systemic symptoms and imaging findings highly suggestive of an opportunistic infection (disseminated non-tuberculous mycobacteria vs. histoplasmosis). Of the codes provided, B20 (HIV disease) is the most appropriate to capture an opportunistic infectious process, as there are no codes specifically for disseminated mycobacterial or fungal diseases among the options; while the patient is not documented to have HIV, B20 is conventionally used for opportunistic infections in the absence of a more specific code from the provided list."} -2025-06-04 01:29:07,591 - INFO - -================================================== -2025-06-04 01:29:07,591 - INFO - Stage: match_icd10_code -2025-06-04 01:29:07,592 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:07,593 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The case describes an immunosuppressed patient (on methotrexate and prednisone for rheumatoid arthritis) with systemic symptoms and imaging findings highly suggestive of an opportunistic infection (disseminated non-tuberculous mycobacteria vs. histoplasmosis). Of the codes provided, B20 (HIV disease) is the most appropriate to capture an opportunistic infectious process, as there are no codes specifically for disseminated mycobacterial or fungal diseases among the options; while the patient is not documented to have HIV, B20 is conventionally used for opportunistic infections in the absence of a more specific code from the provided list.", - "error": null -} -2025-06-04 01:29:07,594 - INFO - ================================================== - -2025-06-04 01:29:07,596 - INFO - -================================================== -2025-06-04 01:29:07,597 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:07,598 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The case describes an immunosuppressed patient (on methotrexate and prednisone for rheumatoid arthritis) with systemic symptoms and imaging findings highly suggestive of an opportunistic infection (disseminated non-tuberculous mycobacteria vs. histoplasmosis). Of the codes provided, B20 (HIV disease) is the most appropriate to capture an opportunistic infectious process, as there are no codes specifically for disseminated mycobacterial or fungal diseases among the options; while the patient is not documented to have HIV, B20 is conventionally used for opportunistic infections in the absence of a more specific code from the provided list.", - "error": null -} -2025-06-04 01:29:07,599 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The case describes an immunosuppressed patient (on methotrexate and prednisone for rheumatoid arthritis) with systemic symptoms and imaging findings highly suggestive of an opportunistic infection (disseminated non-tuberculous mycobacteria vs. histoplasmosis). Of the codes provided, B20 (HIV disease) is the most appropriate to capture an opportunistic infectious process, as there are no codes specifically for disseminated mycobacterial or fungal diseases among the options; while the patient is not documented to have HIV, B20 is conventionally used for opportunistic infections in the absence of a more specific code from the provided list.", - "error": null -} -2025-06-04 01:29:07,600 - INFO - ================================================== - -2025-06-04 01:29:07,603 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The case describes an immunosuppressed patient (on methotrexate and prednisone for rheumatoid arthritis) with systemic symptoms and imaging findings highly suggestive of an opportunistic infection (disseminated non-tuberculous mycobacteria vs. histoplasmosis). Of the codes provided, B20 (HIV disease) is the most appropriate to capture an opportunistic infectious process, as there are no codes specifically for disseminated mycobacterial or fungal diseases among the options; while the patient is not documented to have HIV, B20 is conventionally used for opportunistic infections in the absence of a more specific code from the provided list. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:09,811 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient is immunosuppressed due to immunosuppressive therapy for rheumatoid arthritis, not HIV. None of the provided codes specifically represent disseminated mycobacterial or fungal infection in this immunosuppressed patient."} -2025-06-04 01:29:09,812 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but the patient is immunosuppressed due to immunosuppressive therapy for rheumatoid arthritis, not HIV. None of the provided codes specifically represent disseminated mycobacterial or fungal infection in this immunosuppressed patient.'} -2025-06-04 01:29:09,813 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:12,309 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's clinical scenario involves persistent fever, night sweats, weight loss, and imaging showing pulmonary and hepatosplenic lesions in an immunosuppressed host, which raises suspicion for opportunistic infections—commonly seen in immunodeficiency states such as HIV/AIDS, which is coded as B20. Although her history does not state HIV, B20 is the closest available code for complex immunocompromised infection. None of the other codes reflect opportunistic infections or disseminated mycobacterial/fungal processes."} -2025-06-04 01:29:12,312 - INFO - -================================================== -2025-06-04 01:29:12,312 - INFO - Stage: match_icd10_code -2025-06-04 01:29:12,313 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:12,314 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical scenario involves persistent fever, night sweats, weight loss, and imaging showing pulmonary and hepatosplenic lesions in an immunosuppressed host, which raises suspicion for opportunistic infections\u2014commonly seen in immunodeficiency states such as HIV/AIDS, which is coded as B20. Although her history does not state HIV, B20 is the closest available code for complex immunocompromised infection. None of the other codes reflect opportunistic infections or disseminated mycobacterial/fungal processes.", - "error": null -} -2025-06-04 01:29:12,314 - INFO - ================================================== - -2025-06-04 01:29:12,316 - INFO - -================================================== -2025-06-04 01:29:12,316 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:12,317 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical scenario involves persistent fever, night sweats, weight loss, and imaging showing pulmonary and hepatosplenic lesions in an immunosuppressed host, which raises suspicion for opportunistic infections\u2014commonly seen in immunodeficiency states such as HIV/AIDS, which is coded as B20. Although her history does not state HIV, B20 is the closest available code for complex immunocompromised infection. None of the other codes reflect opportunistic infections or disseminated mycobacterial/fungal processes.", - "error": null -} -2025-06-04 01:29:12,317 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical scenario involves persistent fever, night sweats, weight loss, and imaging showing pulmonary and hepatosplenic lesions in an immunosuppressed host, which raises suspicion for opportunistic infections\u2014commonly seen in immunodeficiency states such as HIV/AIDS, which is coded as B20. Although her history does not state HIV, B20 is the closest available code for complex immunocompromised infection. None of the other codes reflect opportunistic infections or disseminated mycobacterial/fungal processes.", - "error": null -} -2025-06-04 01:29:12,318 - INFO - ================================================== - -2025-06-04 01:29:12,320 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's clinical scenario involves persistent fever, night sweats, weight loss, and imaging showing pulmonary and hepatosplenic lesions in an immunosuppressed host, which raises suspicion for opportunistic infections—commonly seen in immunodeficiency states such as HIV/AIDS, which is coded as B20. Although her history does not state HIV, B20 is the closest available code for complex immunocompromised infection. None of the other codes reflect opportunistic infections or disseminated mycobacterial/fungal processes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:13,926 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 corresponds specifically to HIV disease, but the patient has no documented HIV infection; her immunosuppression is due to rheumatoid arthritis treatment, making B20 inappropriate for this scenario."} -2025-06-04 01:29:13,927 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 corresponds specifically to HIV disease, but the patient has no documented HIV infection; her immunosuppression is due to rheumatoid arthritis treatment, making B20 inappropriate for this scenario.'} -2025-06-04 01:29:13,930 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:16,492 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is most consistent with a disseminated infection in the setting of immunosuppression. Of the codes provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest fit for serious opportunistic infections—even though the patient has iatrogenic immunosuppression from rheumatoid arthritis treatment, not HIV. No other provided codes pertain to disseminated infections or immunocompromise. The rest refer to metabolic, endocrine, or unrelated transplant/osteoporosis diagnoses."} -2025-06-04 01:29:16,500 - INFO - -================================================== -2025-06-04 01:29:16,501 - INFO - Stage: match_icd10_code -2025-06-04 01:29:16,502 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:16,504 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is most consistent with a disseminated infection in the setting of immunosuppression. Of the codes provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest fit for serious opportunistic infections\u2014even though the patient has iatrogenic immunosuppression from rheumatoid arthritis treatment, not HIV. No other provided codes pertain to disseminated infections or immunocompromise. The rest refer to metabolic, endocrine, or unrelated transplant/osteoporosis diagnoses.", - "error": null -} -2025-06-04 01:29:16,505 - INFO - ================================================== - -2025-06-04 01:29:16,510 - INFO - -================================================== -2025-06-04 01:29:16,511 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:16,512 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is most consistent with a disseminated infection in the setting of immunosuppression. Of the codes provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest fit for serious opportunistic infections\u2014even though the patient has iatrogenic immunosuppression from rheumatoid arthritis treatment, not HIV. No other provided codes pertain to disseminated infections or immunocompromise. The rest refer to metabolic, endocrine, or unrelated transplant/osteoporosis diagnoses.", - "error": null -} -2025-06-04 01:29:16,512 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is most consistent with a disseminated infection in the setting of immunosuppression. Of the codes provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest fit for serious opportunistic infections\u2014even though the patient has iatrogenic immunosuppression from rheumatoid arthritis treatment, not HIV. No other provided codes pertain to disseminated infections or immunocompromise. The rest refer to metabolic, endocrine, or unrelated transplant/osteoporosis diagnoses.", - "error": null -} -2025-06-04 01:29:16,513 - INFO - ================================================== - -2025-06-04 01:29:16,516 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is most consistent with a disseminated infection in the setting of immunosuppression. Of the codes provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest fit for serious opportunistic infections—even though the patient has iatrogenic immunosuppression from rheumatoid arthritis treatment, not HIV. No other provided codes pertain to disseminated infections or immunocompromise. The rest refer to metabolic, endocrine, or unrelated transplant/osteoporosis diagnoses. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:17,923 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 denotes HIV disease resulting in infectious and parasitic diseases, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate."} -2025-06-04 01:29:17,923 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 denotes HIV disease resulting in infectious and parasitic diseases, but this patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate.'} -2025-06-04 01:29:17,926 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:20,769 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient is immunosuppressed and presenting with systemic symptoms and organ involvement suspicious for serious opportunistic infection (e.g., disseminated mycobacterial or fungal infection), which aligns most closely with the code B20 (HIV disease resulting in infectious and parasitic diseases). Although the patient is not known to have HIV, B20 is commonly used in ICD-10 for immunosuppressed states with opportunistic infections when a more specific immunodeficiency code is not available in the list. None of the other codes pertain to disseminated infectious disease in an immunosuppressed host."} -2025-06-04 01:29:20,772 - INFO - -================================================== -2025-06-04 01:29:20,772 - INFO - Stage: match_icd10_code -2025-06-04 01:29:20,773 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:20,774 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with systemic symptoms and organ involvement suspicious for serious opportunistic infection (e.g., disseminated mycobacterial or fungal infection), which aligns most closely with the code B20 (HIV disease resulting in infectious and parasitic diseases). Although the patient is not known to have HIV, B20 is commonly used in ICD-10 for immunosuppressed states with opportunistic infections when a more specific immunodeficiency code is not available in the list. None of the other codes pertain to disseminated infectious disease in an immunosuppressed host.", - "error": null -} -2025-06-04 01:29:20,774 - INFO - ================================================== - -2025-06-04 01:29:20,776 - INFO - -================================================== -2025-06-04 01:29:20,777 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:20,778 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with systemic symptoms and organ involvement suspicious for serious opportunistic infection (e.g., disseminated mycobacterial or fungal infection), which aligns most closely with the code B20 (HIV disease resulting in infectious and parasitic diseases). Although the patient is not known to have HIV, B20 is commonly used in ICD-10 for immunosuppressed states with opportunistic infections when a more specific immunodeficiency code is not available in the list. None of the other codes pertain to disseminated infectious disease in an immunosuppressed host.", - "error": null -} -2025-06-04 01:29:20,778 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presenting with systemic symptoms and organ involvement suspicious for serious opportunistic infection (e.g., disseminated mycobacterial or fungal infection), which aligns most closely with the code B20 (HIV disease resulting in infectious and parasitic diseases). Although the patient is not known to have HIV, B20 is commonly used in ICD-10 for immunosuppressed states with opportunistic infections when a more specific immunodeficiency code is not available in the list. None of the other codes pertain to disseminated infectious disease in an immunosuppressed host.", - "error": null -} -2025-06-04 01:29:20,779 - INFO - ================================================== - -2025-06-04 01:29:20,781 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient is immunosuppressed and presenting with systemic symptoms and organ involvement suspicious for serious opportunistic infection (e.g., disseminated mycobacterial or fungal infection), which aligns most closely with the code B20 (HIV disease resulting in infectious and parasitic diseases). Although the patient is not known to have HIV, B20 is commonly used in ICD-10 for immunosuppressed states with opportunistic infections when a more specific immunodeficiency code is not available in the list. None of the other codes pertain to disseminated infectious disease in an immunosuppressed host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:22,308 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically denotes HIV disease with resulting infections; the patient has immunosuppression due to methotrexate and prednisone, not HIV, so B20 is not appropriate for this case."} -2025-06-04 01:29:22,308 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically denotes HIV disease with resulting infections; the patient has immunosuppression due to methotrexate and prednisone, not HIV, so B20 is not appropriate for this case.'} -2025-06-04 01:29:22,313 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:24,642 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but among the options, it is the most appropriate for severe disseminated infections in an immunosuppressed patient (even though this patient is not explicitly HIV-positive), as none of the provided codes specifically correspond to disseminated mycobacterial or fungal infection. The other codes either relate to metabolic, endocrine, or unrelated chronic conditions."} -2025-06-04 01:29:24,643 - INFO - -================================================== -2025-06-04 01:29:24,644 - INFO - Stage: match_icd10_code -2025-06-04 01:29:24,645 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:24,646 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but among the options, it is the most appropriate for severe disseminated infections in an immunosuppressed patient (even though this patient is not explicitly HIV-positive), as none of the provided codes specifically correspond to disseminated mycobacterial or fungal infection. The other codes either relate to metabolic, endocrine, or unrelated chronic conditions.", - "error": null -} -2025-06-04 01:29:24,646 - INFO - ================================================== - -2025-06-04 01:29:24,648 - INFO - -================================================== -2025-06-04 01:29:24,648 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:24,648 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but among the options, it is the most appropriate for severe disseminated infections in an immunosuppressed patient (even though this patient is not explicitly HIV-positive), as none of the provided codes specifically correspond to disseminated mycobacterial or fungal infection. The other codes either relate to metabolic, endocrine, or unrelated chronic conditions.", - "error": null -} -2025-06-04 01:29:24,649 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but among the options, it is the most appropriate for severe disseminated infections in an immunosuppressed patient (even though this patient is not explicitly HIV-positive), as none of the provided codes specifically correspond to disseminated mycobacterial or fungal infection. The other codes either relate to metabolic, endocrine, or unrelated chronic conditions.", - "error": null -} -2025-06-04 01:29:24,649 - INFO - ================================================== - -2025-06-04 01:29:24,650 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, but among the options, it is the most appropriate for severe disseminated infections in an immunosuppressed patient (even though this patient is not explicitly HIV-positive), as none of the provided codes specifically correspond to disseminated mycobacterial or fungal infection. The other codes either relate to metabolic, endocrine, or unrelated chronic conditions. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:26,378 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient is not HIV-positive. A code directly reflecting disseminated mycobacterial or fungal infection would be more appropriate, but B20 does not accurately represent this immunosuppressed patient's condition."} -2025-06-04 01:29:26,379 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 is specific for HIV disease, but the patient is not HIV-positive. A code directly reflecting disseminated mycobacterial or fungal infection would be more appropriate, but B20 does not accurately represent this immunosuppressed patient's condition."} -2025-06-04 01:29:26,381 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:29,236 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while immunosuppressed (on methotrexate and prednisone for rheumatoid arthritis) is highly suggestive of an opportunistic infection, particularly disseminated non-tuberculous mycobacterial infection or histoplasmosis. Of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely aligns with the clinical scenario of serious opportunistic infectious complications in an immunocompromised host and is the only code directly related to complex infectious processes. The other codes pertain to bone density, medication use, diabetes, hypothyroidism, lipid disorders, hypertension, vitamin D deficiency, and organ transplant, none of which match the active infectious disease context."} -2025-06-04 01:29:29,238 - INFO - -================================================== -2025-06-04 01:29:29,239 - INFO - Stage: match_icd10_code -2025-06-04 01:29:29,239 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:29,240 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while immunosuppressed (on methotrexate and prednisone for rheumatoid arthritis) is highly suggestive of an opportunistic infection, particularly disseminated non-tuberculous mycobacterial infection or histoplasmosis. Of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely aligns with the clinical scenario of serious opportunistic infectious complications in an immunocompromised host and is the only code directly related to complex infectious processes. The other codes pertain to bone density, medication use, diabetes, hypothyroidism, lipid disorders, hypertension, vitamin D deficiency, and organ transplant, none of which match the active infectious disease context.", - "error": null -} -2025-06-04 01:29:29,241 - INFO - ================================================== - -2025-06-04 01:29:29,243 - INFO - -================================================== -2025-06-04 01:29:29,244 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:29,244 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while immunosuppressed (on methotrexate and prednisone for rheumatoid arthritis) is highly suggestive of an opportunistic infection, particularly disseminated non-tuberculous mycobacterial infection or histoplasmosis. Of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely aligns with the clinical scenario of serious opportunistic infectious complications in an immunocompromised host and is the only code directly related to complex infectious processes. The other codes pertain to bone density, medication use, diabetes, hypothyroidism, lipid disorders, hypertension, vitamin D deficiency, and organ transplant, none of which match the active infectious disease context.", - "error": null -} -2025-06-04 01:29:29,245 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while immunosuppressed (on methotrexate and prednisone for rheumatoid arthritis) is highly suggestive of an opportunistic infection, particularly disseminated non-tuberculous mycobacterial infection or histoplasmosis. Of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely aligns with the clinical scenario of serious opportunistic infectious complications in an immunocompromised host and is the only code directly related to complex infectious processes. The other codes pertain to bone density, medication use, diabetes, hypothyroidism, lipid disorders, hypertension, vitamin D deficiency, and organ transplant, none of which match the active infectious disease context.", - "error": null -} -2025-06-04 01:29:29,246 - INFO - ================================================== - -2025-06-04 01:29:29,247 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation with persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions while immunosuppressed (on methotrexate and prednisone for rheumatoid arthritis) is highly suggestive of an opportunistic infection, particularly disseminated non-tuberculous mycobacterial infection or histoplasmosis. Of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely aligns with the clinical scenario of serious opportunistic infectious complications in an immunocompromised host and is the only code directly related to complex infectious processes. The other codes pertain to bone density, medication use, diabetes, hypothyroidism, lipid disorders, hypertension, vitamin D deficiency, and organ transplant, none of which match the active infectious disease context. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:31,215 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically refers to HIV disease with resulting infections, but there is no evidence or mention of HIV infection in this patient; a more appropriate code would be needed for disseminated mycobacterial or fungal infections in an immunosuppressed, HIV-negative patient."} -2025-06-04 01:29:31,216 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease with resulting infections, but there is no evidence or mention of HIV infection in this patient; a more appropriate code would be needed for disseminated mycobacterial or fungal infections in an immunosuppressed, HIV-negative patient.'} -2025-06-04 01:29:31,217 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:33,498 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fevers, weight loss, and night sweats with imaging findings of pulmonary nodules and hepatosplenic lesions is most consistent with a systemic infectious process; B20 is the only code in the provided list that represents an infectious disease (HIV disease), which is an immunocompromised state that increases risk for disseminated mycobacterial and fungal infections, closely matching the described scenario of concern for opportunistic infection in an immunosuppressed patient."} -2025-06-04 01:29:33,499 - INFO - -================================================== -2025-06-04 01:29:33,500 - INFO - Stage: match_icd10_code -2025-06-04 01:29:33,500 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:33,501 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, weight loss, and night sweats with imaging findings of pulmonary nodules and hepatosplenic lesions is most consistent with a systemic infectious process; B20 is the only code in the provided list that represents an infectious disease (HIV disease), which is an immunocompromised state that increases risk for disseminated mycobacterial and fungal infections, closely matching the described scenario of concern for opportunistic infection in an immunosuppressed patient.", - "error": null -} -2025-06-04 01:29:33,502 - INFO - ================================================== - -2025-06-04 01:29:33,503 - INFO - -================================================== -2025-06-04 01:29:33,504 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:33,504 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, weight loss, and night sweats with imaging findings of pulmonary nodules and hepatosplenic lesions is most consistent with a systemic infectious process; B20 is the only code in the provided list that represents an infectious disease (HIV disease), which is an immunocompromised state that increases risk for disseminated mycobacterial and fungal infections, closely matching the described scenario of concern for opportunistic infection in an immunosuppressed patient.", - "error": null -} -2025-06-04 01:29:33,505 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, weight loss, and night sweats with imaging findings of pulmonary nodules and hepatosplenic lesions is most consistent with a systemic infectious process; B20 is the only code in the provided list that represents an infectious disease (HIV disease), which is an immunocompromised state that increases risk for disseminated mycobacterial and fungal infections, closely matching the described scenario of concern for opportunistic infection in an immunosuppressed patient.", - "error": null -} -2025-06-04 01:29:33,506 - INFO - ================================================== - -2025-06-04 01:29:33,508 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fevers, weight loss, and night sweats with imaging findings of pulmonary nodules and hepatosplenic lesions is most consistent with a systemic infectious process; B20 is the only code in the provided list that represents an infectious disease (HIV disease), which is an immunocompromised state that increases risk for disseminated mycobacterial and fungal infections, closely matching the described scenario of concern for opportunistic infection in an immunosuppressed patient. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:35,053 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but the patient has immunosuppression from rheumatoid arthritis treatment, not HIV; thus, B20 is inappropriate for this case."} -2025-06-04 01:29:35,054 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but the patient has immunosuppression from rheumatoid arthritis treatment, not HIV; thus, B20 is inappropriate for this case.'} -2025-06-04 01:29:35,058 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:37,212 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes an immunocompromised patient with prolonged fever, night sweats, weight loss, and organ involvement raising concern for disseminated infection. Of the provided codes, 'B20' represents 'Human immunodeficiency virus [HIV] disease,' which is used in ICD-10 to classify immunodeficiency states associated with increased risk for opportunistic infections such as disseminated mycobacterial or fungal disease; this is the closest fit among given options."} -2025-06-04 01:29:37,214 - INFO - -================================================== -2025-06-04 01:29:37,216 - INFO - Stage: match_icd10_code -2025-06-04 01:29:37,217 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:37,218 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with prolonged fever, night sweats, weight loss, and organ involvement raising concern for disseminated infection. Of the provided codes, 'B20' represents 'Human immunodeficiency virus [HIV] disease,' which is used in ICD-10 to classify immunodeficiency states associated with increased risk for opportunistic infections such as disseminated mycobacterial or fungal disease; this is the closest fit among given options.", - "error": null -} -2025-06-04 01:29:37,219 - INFO - ================================================== - -2025-06-04 01:29:37,222 - INFO - -================================================== -2025-06-04 01:29:37,223 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:37,224 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with prolonged fever, night sweats, weight loss, and organ involvement raising concern for disseminated infection. Of the provided codes, 'B20' represents 'Human immunodeficiency virus [HIV] disease,' which is used in ICD-10 to classify immunodeficiency states associated with increased risk for opportunistic infections such as disseminated mycobacterial or fungal disease; this is the closest fit among given options.", - "error": null -} -2025-06-04 01:29:37,225 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with prolonged fever, night sweats, weight loss, and organ involvement raising concern for disseminated infection. Of the provided codes, 'B20' represents 'Human immunodeficiency virus [HIV] disease,' which is used in ICD-10 to classify immunodeficiency states associated with increased risk for opportunistic infections such as disseminated mycobacterial or fungal disease; this is the closest fit among given options.", - "error": null -} -2025-06-04 01:29:37,226 - INFO - ================================================== - -2025-06-04 01:29:37,229 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes an immunocompromised patient with prolonged fever, night sweats, weight loss, and organ involvement raising concern for disseminated infection. Of the provided codes, 'B20' represents 'Human immunodeficiency virus [HIV] disease,' which is used in ICD-10 to classify immunodeficiency states associated with increased risk for opportunistic infections such as disseminated mycobacterial or fungal disease; this is the closest fit among given options. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:38,636 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV."} -2025-06-04 01:29:38,637 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV.'} -2025-06-04 01:29:38,641 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:41,973 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's case is characterized by persistent fever, night sweats, weight loss, and multisystem involvement (pulmonary nodules, hepatosplenic lesions) while on chronic immunosuppression, which are findings highly suspicious for a disseminated opportunistic infection typically classified under B20 (HIV disease resulting in infectious and parasitic diseases). While the patient is not known to have HIV, B20 is often used when documenting severe opportunistic infections suggesting underlying immunodeficiency. Among the available codes, it is the closest match for a disseminated infectious process in an immunocompromised host."} -2025-06-04 01:29:41,975 - INFO - -================================================== -2025-06-04 01:29:41,975 - INFO - Stage: match_icd10_code -2025-06-04 01:29:41,975 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:41,976 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's case is characterized by persistent fever, night sweats, weight loss, and multisystem involvement (pulmonary nodules, hepatosplenic lesions) while on chronic immunosuppression, which are findings highly suspicious for a disseminated opportunistic infection typically classified under B20 (HIV disease resulting in infectious and parasitic diseases). While the patient is not known to have HIV, B20 is often used when documenting severe opportunistic infections suggesting underlying immunodeficiency. Among the available codes, it is the closest match for a disseminated infectious process in an immunocompromised host.", - "error": null -} -2025-06-04 01:29:41,977 - INFO - ================================================== - -2025-06-04 01:29:41,979 - INFO - -================================================== -2025-06-04 01:29:41,980 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:41,980 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's case is characterized by persistent fever, night sweats, weight loss, and multisystem involvement (pulmonary nodules, hepatosplenic lesions) while on chronic immunosuppression, which are findings highly suspicious for a disseminated opportunistic infection typically classified under B20 (HIV disease resulting in infectious and parasitic diseases). While the patient is not known to have HIV, B20 is often used when documenting severe opportunistic infections suggesting underlying immunodeficiency. Among the available codes, it is the closest match for a disseminated infectious process in an immunocompromised host.", - "error": null -} -2025-06-04 01:29:41,981 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's case is characterized by persistent fever, night sweats, weight loss, and multisystem involvement (pulmonary nodules, hepatosplenic lesions) while on chronic immunosuppression, which are findings highly suspicious for a disseminated opportunistic infection typically classified under B20 (HIV disease resulting in infectious and parasitic diseases). While the patient is not known to have HIV, B20 is often used when documenting severe opportunistic infections suggesting underlying immunodeficiency. Among the available codes, it is the closest match for a disseminated infectious process in an immunocompromised host.", - "error": null -} -2025-06-04 01:29:41,981 - INFO - ================================================== - -2025-06-04 01:29:41,983 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's case is characterized by persistent fever, night sweats, weight loss, and multisystem involvement (pulmonary nodules, hepatosplenic lesions) while on chronic immunosuppression, which are findings highly suspicious for a disseminated opportunistic infection typically classified under B20 (HIV disease resulting in infectious and parasitic diseases). While the patient is not known to have HIV, B20 is often used when documenting severe opportunistic infections suggesting underlying immunodeficiency. Among the available codes, it is the closest match for a disseminated infectious process in an immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:43,548 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is not known to have HIV; thus, this code is inappropriate for this immunocompromised non-HIV case."} -2025-06-04 01:29:43,548 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is not known to have HIV; thus, this code is inappropriate for this immunocompromised non-HIV case.'} -2025-06-04 01:29:43,550 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:45,829 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation with prolonged fever, weight loss, night sweats, and multiple organ involvement is highly suggestive of disseminated infection, which is classically seen in immunocompromised states. Among the listed codes, B20 (HIV disease) best fits as these symptoms commonly prompt investigation for underlying immunodeficiency such as HIV/AIDS, which predisposes to opportunistic infections like disseminated mycobacteria or histoplasmosis."} -2025-06-04 01:29:45,830 - INFO - -================================================== -2025-06-04 01:29:45,830 - INFO - Stage: match_icd10_code -2025-06-04 01:29:45,831 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:45,831 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, weight loss, night sweats, and multiple organ involvement is highly suggestive of disseminated infection, which is classically seen in immunocompromised states. Among the listed codes, B20 (HIV disease) best fits as these symptoms commonly prompt investigation for underlying immunodeficiency such as HIV/AIDS, which predisposes to opportunistic infections like disseminated mycobacteria or histoplasmosis.", - "error": null -} -2025-06-04 01:29:45,832 - INFO - ================================================== - -2025-06-04 01:29:45,834 - INFO - -================================================== -2025-06-04 01:29:45,835 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:45,835 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, weight loss, night sweats, and multiple organ involvement is highly suggestive of disseminated infection, which is classically seen in immunocompromised states. Among the listed codes, B20 (HIV disease) best fits as these symptoms commonly prompt investigation for underlying immunodeficiency such as HIV/AIDS, which predisposes to opportunistic infections like disseminated mycobacteria or histoplasmosis.", - "error": null -} -2025-06-04 01:29:45,836 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, weight loss, night sweats, and multiple organ involvement is highly suggestive of disseminated infection, which is classically seen in immunocompromised states. Among the listed codes, B20 (HIV disease) best fits as these symptoms commonly prompt investigation for underlying immunodeficiency such as HIV/AIDS, which predisposes to opportunistic infections like disseminated mycobacteria or histoplasmosis.", - "error": null -} -2025-06-04 01:29:45,836 - INFO - ================================================== - -2025-06-04 01:29:45,838 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation with prolonged fever, weight loss, night sweats, and multiple organ involvement is highly suggestive of disseminated infection, which is classically seen in immunocompromised states. Among the listed codes, B20 (HIV disease) best fits as these symptoms commonly prompt investigation for underlying immunodeficiency such as HIV/AIDS, which predisposes to opportunistic infections like disseminated mycobacteria or histoplasmosis. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:47,377 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 (HIV disease) is not appropriate, as there is no evidence the patient has HIV; her immunocompromise is due to immunosuppressive medications for rheumatoid arthritis."} -2025-06-04 01:29:47,378 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 (HIV disease) is not appropriate, as there is no evidence the patient has HIV; her immunocompromise is due to immunosuppressive medications for rheumatoid arthritis.'} -2025-06-04 01:29:47,379 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:49,512 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case."} -2025-06-04 01:29:49,515 - INFO - -================================================== -2025-06-04 01:29:49,516 - INFO - Stage: match_icd10_code -2025-06-04 01:29:49,517 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:49,518 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:49,519 - INFO - ================================================== - -2025-06-04 01:29:49,521 - INFO - -================================================== -2025-06-04 01:29:49,522 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:49,523 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:49,523 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:49,524 - INFO - ================================================== - -2025-06-04 01:29:49,526 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:51,156 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 is appropriate because the patient's current immunosuppressed state due to corticosteroid use is central to her risk for atypical infections, which is the main focus of the clinical case."} -2025-06-04 01:29:51,157 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 is appropriate because the patient's current immunosuppressed state due to corticosteroid use is central to her risk for atypical infections, which is the main focus of the clinical case."} -2025-06-04 01:29:51,159 - INFO - -================================================== -2025-06-04 01:29:51,161 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:29:51,162 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:51,162 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:51,163 - INFO - ================================================== - -2025-06-04 01:29:51,168 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:29:52,985 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:29:52,987 - INFO - -================================================== -2025-06-04 01:29:52,988 - INFO - Stage: extract_patient_info -2025-06-04 01:29:52,989 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:52,989 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:52,990 - INFO - ================================================== - -2025-06-04 01:29:52,993 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:55,457 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fevers, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions despite broad-spectrum antibiotics is highly suggestive of a disseminated opportunistic infection, a hallmark of immunosuppression. The ICD-10 code B20 is for HIV disease resulting in infectious and parasitic diseases, which best matches the scenario involving suspicion for disseminated mycobacterial or fungal infection in an immunocompromised patient. Although HIV is not stated, B20 is used in ICD-10 to broadly capture serious opportunistic infectious conditions in immunocompromised individuals; the other codes do not match this setting."} -2025-06-04 01:29:55,460 - INFO - -================================================== -2025-06-04 01:29:55,461 - INFO - Stage: match_icd10_code -2025-06-04 01:29:55,462 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The most appropriate code from the provided list is Z79.4 (Long term (current) use of corticosteroids), as the patient's clinical scenario centers on immunosuppression (due to methotrexate and prednisone use) leading to possible atypical infections; none of the available codes reflect infection or its complications, but Z79.4 best captures a key risk factor central to the case.", - "error": null -} -2025-06-04 01:29:55,463 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions despite broad-spectrum antibiotics is highly suggestive of a disseminated opportunistic infection, a hallmark of immunosuppression. The ICD-10 code B20 is for HIV disease resulting in infectious and parasitic diseases, which best matches the scenario involving suspicion for disseminated mycobacterial or fungal infection in an immunocompromised patient. Although HIV is not stated, B20 is used in ICD-10 to broadly capture serious opportunistic infectious conditions in immunocompromised individuals; the other codes do not match this setting.", - "error": null -} -2025-06-04 01:29:55,463 - INFO - ================================================== - -2025-06-04 01:29:55,466 - INFO - -================================================== -2025-06-04 01:29:55,467 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:55,467 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions despite broad-spectrum antibiotics is highly suggestive of a disseminated opportunistic infection, a hallmark of immunosuppression. The ICD-10 code B20 is for HIV disease resulting in infectious and parasitic diseases, which best matches the scenario involving suspicion for disseminated mycobacterial or fungal infection in an immunocompromised patient. Although HIV is not stated, B20 is used in ICD-10 to broadly capture serious opportunistic infectious conditions in immunocompromised individuals; the other codes do not match this setting.", - "error": null -} -2025-06-04 01:29:55,468 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fevers, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions despite broad-spectrum antibiotics is highly suggestive of a disseminated opportunistic infection, a hallmark of immunosuppression. The ICD-10 code B20 is for HIV disease resulting in infectious and parasitic diseases, which best matches the scenario involving suspicion for disseminated mycobacterial or fungal infection in an immunocompromised patient. Although HIV is not stated, B20 is used in ICD-10 to broadly capture serious opportunistic infectious conditions in immunocompromised individuals; the other codes do not match this setting.", - "error": null -} -2025-06-04 01:29:55,469 - INFO - ================================================== - -2025-06-04 01:29:55,470 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fevers, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions despite broad-spectrum antibiotics is highly suggestive of a disseminated opportunistic infection, a hallmark of immunosuppression. The ICD-10 code B20 is for HIV disease resulting in infectious and parasitic diseases, which best matches the scenario involving suspicion for disseminated mycobacterial or fungal infection in an immunocompromised patient. Although HIV is not stated, B20 is used in ICD-10 to broadly capture serious opportunistic infectious conditions in immunocompromised individuals; the other codes do not match this setting. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:57,320 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient has immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not due to HIV. Therefore, B20 is not appropriate for this case."} -2025-06-04 01:29:57,321 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient has immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not due to HIV. Therefore, B20 is not appropriate for this case.'} -2025-06-04 01:29:57,328 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:29:59,648 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes an immunocompromised patient with systemic symptoms and findings concerning for disseminated opportunistic infections. Of the provided codes, B20 (HIV disease) best aligns with serious immunocompromise and opportunistic infection risk, paralleling the patient's severe infection profile. No codes directly reflect non-tuberculous mycobacteria or histoplasmosis, and B20 is most appropriate given the context."} -2025-06-04 01:29:59,651 - INFO - -================================================== -2025-06-04 01:29:59,652 - INFO - Stage: match_icd10_code -2025-06-04 01:29:59,653 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:29:59,654 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with systemic symptoms and findings concerning for disseminated opportunistic infections. Of the provided codes, B20 (HIV disease) best aligns with serious immunocompromise and opportunistic infection risk, paralleling the patient's severe infection profile. No codes directly reflect non-tuberculous mycobacteria or histoplasmosis, and B20 is most appropriate given the context.", - "error": null -} -2025-06-04 01:29:59,656 - INFO - ================================================== - -2025-06-04 01:29:59,660 - INFO - -================================================== -2025-06-04 01:29:59,661 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:29:59,662 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with systemic symptoms and findings concerning for disseminated opportunistic infections. Of the provided codes, B20 (HIV disease) best aligns with serious immunocompromise and opportunistic infection risk, paralleling the patient's severe infection profile. No codes directly reflect non-tuberculous mycobacteria or histoplasmosis, and B20 is most appropriate given the context.", - "error": null -} -2025-06-04 01:29:59,663 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunocompromised patient with systemic symptoms and findings concerning for disseminated opportunistic infections. Of the provided codes, B20 (HIV disease) best aligns with serious immunocompromise and opportunistic infection risk, paralleling the patient's severe infection profile. No codes directly reflect non-tuberculous mycobacteria or histoplasmosis, and B20 is most appropriate given the context.", - "error": null -} -2025-06-04 01:29:59,664 - INFO - ================================================== - -2025-06-04 01:29:59,667 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes an immunocompromised patient with systemic symptoms and findings concerning for disseminated opportunistic infections. Of the provided codes, B20 (HIV disease) best aligns with serious immunocompromise and opportunistic infection risk, paralleling the patient's severe infection profile. No codes directly reflect non-tuberculous mycobacteria or histoplasmosis, and B20 is most appropriate given the context. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:01,563 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease, but the patient is immunocompromised due to rheumatoid arthritis treatment and there is no evidence of HIV infection in the case."} -2025-06-04 01:30:01,565 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease, but the patient is immunocompromised due to rheumatoid arthritis treatment and there is no evidence of HIV infection in the case.'} -2025-06-04 01:30:01,567 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:04,558 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's immunosuppression (due to methotrexate and prednisone) and presentation with prolonged fever, night sweats, weight loss, and possible disseminated infection with atypical mycobacteria or fungi fit the context of an opportunistic infection often seen in immunocompromised states. Among the available codes, B20 (Human immunodeficiency virus [HIV] disease) is the only infectious disease code related to immunosuppression and opportunistic infections, which most closely matches the scenario involving concern for disseminated infections in the immunocompromised host."} -2025-06-04 01:30:04,560 - INFO - -================================================== -2025-06-04 01:30:04,561 - INFO - Stage: match_icd10_code -2025-06-04 01:30:04,561 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:30:04,562 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppression (due to methotrexate and prednisone) and presentation with prolonged fever, night sweats, weight loss, and possible disseminated infection with atypical mycobacteria or fungi fit the context of an opportunistic infection often seen in immunocompromised states. Among the available codes, B20 (Human immunodeficiency virus [HIV] disease) is the only infectious disease code related to immunosuppression and opportunistic infections, which most closely matches the scenario involving concern for disseminated infections in the immunocompromised host.", - "error": null -} -2025-06-04 01:30:04,563 - INFO - ================================================== - -2025-06-04 01:30:04,566 - INFO - -================================================== -2025-06-04 01:30:04,566 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:30:04,567 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppression (due to methotrexate and prednisone) and presentation with prolonged fever, night sweats, weight loss, and possible disseminated infection with atypical mycobacteria or fungi fit the context of an opportunistic infection often seen in immunocompromised states. Among the available codes, B20 (Human immunodeficiency virus [HIV] disease) is the only infectious disease code related to immunosuppression and opportunistic infections, which most closely matches the scenario involving concern for disseminated infections in the immunocompromised host.", - "error": null -} -2025-06-04 01:30:04,568 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppression (due to methotrexate and prednisone) and presentation with prolonged fever, night sweats, weight loss, and possible disseminated infection with atypical mycobacteria or fungi fit the context of an opportunistic infection often seen in immunocompromised states. Among the available codes, B20 (Human immunodeficiency virus [HIV] disease) is the only infectious disease code related to immunosuppression and opportunistic infections, which most closely matches the scenario involving concern for disseminated infections in the immunocompromised host.", - "error": null -} -2025-06-04 01:30:04,569 - INFO - ================================================== - -2025-06-04 01:30:04,571 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's immunosuppression (due to methotrexate and prednisone) and presentation with prolonged fever, night sweats, weight loss, and possible disseminated infection with atypical mycobacteria or fungi fit the context of an opportunistic infection often seen in immunocompromised states. Among the available codes, B20 (Human immunodeficiency virus [HIV] disease) is the only infectious disease code related to immunosuppression and opportunistic infections, which most closely matches the scenario involving concern for disseminated infections in the immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:06,060 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but the patient does not have HIV; her immunosuppression is due to medications for rheumatoid arthritis."} -2025-06-04 01:30:06,062 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but the patient does not have HIV; her immunosuppression is due to medications for rheumatoid arthritis.'} -2025-06-04 01:30:06,066 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:08,407 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's history of persistent fever, weight loss, night sweats, and disseminated nodular lesions with immune suppression raises concern for disseminated mycobacterial or fungal infection, which can be opportunistic infections seen in immunocompromised hosts such as those with HIV (B20). The other codes are not relevant to infectious etiologies or immunocompromised states. B20 is most appropriate given the context of possible disseminated opportunistic infection."} -2025-06-04 01:30:08,409 - INFO - -================================================== -2025-06-04 01:30:08,410 - INFO - Stage: match_icd10_code -2025-06-04 01:30:08,411 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:30:08,411 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of persistent fever, weight loss, night sweats, and disseminated nodular lesions with immune suppression raises concern for disseminated mycobacterial or fungal infection, which can be opportunistic infections seen in immunocompromised hosts such as those with HIV (B20). The other codes are not relevant to infectious etiologies or immunocompromised states. B20 is most appropriate given the context of possible disseminated opportunistic infection.", - "error": null -} -2025-06-04 01:30:08,412 - INFO - ================================================== - -2025-06-04 01:30:08,414 - INFO - -================================================== -2025-06-04 01:30:08,415 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:30:08,416 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of persistent fever, weight loss, night sweats, and disseminated nodular lesions with immune suppression raises concern for disseminated mycobacterial or fungal infection, which can be opportunistic infections seen in immunocompromised hosts such as those with HIV (B20). The other codes are not relevant to infectious etiologies or immunocompromised states. B20 is most appropriate given the context of possible disseminated opportunistic infection.", - "error": null -} -2025-06-04 01:30:08,417 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of persistent fever, weight loss, night sweats, and disseminated nodular lesions with immune suppression raises concern for disseminated mycobacterial or fungal infection, which can be opportunistic infections seen in immunocompromised hosts such as those with HIV (B20). The other codes are not relevant to infectious etiologies or immunocompromised states. B20 is most appropriate given the context of possible disseminated opportunistic infection.", - "error": null -} -2025-06-04 01:30:08,418 - INFO - ================================================== - -2025-06-04 01:30:08,420 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's history of persistent fever, weight loss, night sweats, and disseminated nodular lesions with immune suppression raises concern for disseminated mycobacterial or fungal infection, which can be opportunistic infections seen in immunocompromised hosts such as those with HIV (B20). The other codes are not relevant to infectious etiologies or immunocompromised states. B20 is most appropriate given the context of possible disseminated opportunistic infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:10,231 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, whereas the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate for this clinical case."} -2025-06-04 01:30:10,233 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, whereas the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate for this clinical case.'} -2025-06-04 01:30:10,239 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:12,308 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately."} -2025-06-04 01:30:12,310 - INFO - -================================================== -2025-06-04 01:30:12,311 - INFO - Stage: match_icd10_code -2025-06-04 01:30:12,312 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-04 01:30:12,313 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:12,313 - INFO - ================================================== - -2025-06-04 01:30:12,315 - INFO - -================================================== -2025-06-04 01:30:12,316 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:30:12,317 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:12,317 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:12,318 - INFO - ================================================== - -2025-06-04 01:30:12,320 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:30:13,899 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive drugs, which is central to her current immunosuppressed state and risk for disseminated infection."} -2025-06-04 01:30:13,900 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive drugs, which is central to her current immunosuppressed state and risk for disseminated infection."} -2025-06-04 01:30:13,902 - INFO - -================================================== -2025-06-04 01:30:13,902 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:30:13,903 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:13,903 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:13,904 - INFO - ================================================== - -2025-06-04 01:30:13,906 - INFO - -================================================== -2025-06-04 01:30:13,906 - INFO - Final Result: -2025-06-04 01:30:13,907 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 indicates long term (current) use of immunosuppressive drugs, which is highly relevant as the patient's immunosuppression (methotrexate and prednisone) is central to her risk for disseminated infections such as mycobacterial or fungal disease. None of the other codes capture the clinical problem more appropriately.", - "error": null -} -2025-06-04 01:30:13,907 - INFO - ================================================== - -2025-06-04 01:44:50,735 - INFO - -================================================== -2025-06-04 01:44:50,738 - INFO - Starting new clinical case processing -2025-06-04 01:44:50,738 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:44:50,739 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:44:50,739 - INFO - ================================================== - -2025-06-04 01:44:50,746 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:44:51,895 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:44:51,901 - INFO - -================================================== -2025-06-04 01:44:51,902 - INFO - Stage: extract_patient_info -2025-06-04 01:44:51,902 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:51,902 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:51,904 - INFO - ================================================== - -2025-06-04 01:44:51,905 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:44:54,257 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information."} -2025-06-04 01:44:54,258 - INFO - -================================================== -2025-06-04 01:44:54,259 - INFO - Stage: match_icd10_code -2025-06-04 01:44:54,259 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:54,260 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:54,262 - INFO - ================================================== - -2025-06-04 01:44:54,265 - INFO - -================================================== -2025-06-04 01:44:54,265 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:44:54,266 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:54,268 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:54,269 - INFO - ================================================== - -2025-06-04 01:44:54,272 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:44:55,991 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 reflects the patient's long-term use of corticosteroids (prednisone), which is relevant to immunosuppression and the increased risk of disseminated infection described in the case."} -2025-06-04 01:44:55,992 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 reflects the patient's long-term use of corticosteroids (prednisone), which is relevant to immunosuppression and the increased risk of disseminated infection described in the case."} -2025-06-04 01:44:55,994 - INFO - -================================================== -2025-06-04 01:44:55,995 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:44:55,996 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:55,997 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:55,997 - INFO - ================================================== - -2025-06-04 01:44:55,999 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:44:57,215 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:44:57,218 - INFO - -================================================== -2025-06-04 01:44:57,219 - INFO - Stage: extract_patient_info -2025-06-04 01:44:57,222 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:57,225 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:44:57,225 - INFO - ================================================== - -2025-06-04 01:44:57,228 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:00,926 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging findings of disseminated pulmonary and hepatosplenic lesions in the context of immunosuppression is most consistent with an opportunistic infection, which fits under ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases). While the case does not state an HIV diagnosis specifically, among the provided codes, B20 is the only one addressing disseminated infections in immunocompromised states. The other codes address unrelated medical conditions such as osteoporosis, diabetes, hypertension, or hypothyroidism."} -2025-06-04 01:45:00,928 - INFO - -================================================== -2025-06-04 01:45:00,928 - INFO - Stage: match_icd10_code -2025-06-04 01:45:00,929 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical scenario describes a patient on long-term low-dose prednisone (a corticosteroid), represented by code Z79.4 (Long term (current) use of steroids), which is the most directly relevant ICD-10 code from the provided list. None of the other codes specifically address infectious or mycobacterial processes, so Z79.4 best matches the clinical information.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:00,930 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging findings of disseminated pulmonary and hepatosplenic lesions in the context of immunosuppression is most consistent with an opportunistic infection, which fits under ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases). While the case does not state an HIV diagnosis specifically, among the provided codes, B20 is the only one addressing disseminated infections in immunocompromised states. The other codes address unrelated medical conditions such as osteoporosis, diabetes, hypertension, or hypothyroidism.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:00,931 - INFO - ================================================== - -2025-06-04 01:45:00,933 - INFO - -================================================== -2025-06-04 01:45:00,934 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:45:00,934 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging findings of disseminated pulmonary and hepatosplenic lesions in the context of immunosuppression is most consistent with an opportunistic infection, which fits under ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases). While the case does not state an HIV diagnosis specifically, among the provided codes, B20 is the only one addressing disseminated infections in immunocompromised states. The other codes address unrelated medical conditions such as osteoporosis, diabetes, hypertension, or hypothyroidism.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:00,935 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging findings of disseminated pulmonary and hepatosplenic lesions in the context of immunosuppression is most consistent with an opportunistic infection, which fits under ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases). While the case does not state an HIV diagnosis specifically, among the provided codes, B20 is the only one addressing disseminated infections in immunocompromised states. The other codes address unrelated medical conditions such as osteoporosis, diabetes, hypertension, or hypothyroidism.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:00,935 - INFO - ================================================== - -2025-06-04 01:45:00,937 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, night sweats, weight loss, and imaging findings of disseminated pulmonary and hepatosplenic lesions in the context of immunosuppression is most consistent with an opportunistic infection, which fits under ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases). While the case does not state an HIV diagnosis specifically, among the provided codes, B20 is the only one addressing disseminated infections in immunocompromised states. The other codes address unrelated medical conditions such as osteoporosis, diabetes, hypertension, or hypothyroidism. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:02,435 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific to HIV disease with opportunistic infections; this patient has immunosuppression from rheumatoid arthritis therapy, not HIV, so B20 is not appropriate."} -2025-06-04 01:45:02,435 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific to HIV disease with opportunistic infections; this patient has immunosuppression from rheumatoid arthritis therapy, not HIV, so B20 is not appropriate.'} -2025-06-04 01:45:02,437 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:05,019 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the context of immunosuppression, raising suspicion for opportunistic infections typical of immunodeficiency, including HIV/AIDS. While the patient is on immunosuppressive therapy for rheumatoid arthritis, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code among the ones provided that fits a severe immunocompromised state manifesting as systemic infection; no ICD-10 codes for non-tuberculous mycobacteria or histoplasmosis are present in the list."} -2025-06-04 01:45:05,021 - INFO - -================================================== -2025-06-04 01:45:05,022 - INFO - Stage: match_icd10_code -2025-06-04 01:45:05,022 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:05,022 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the context of immunosuppression, raising suspicion for opportunistic infections typical of immunodeficiency, including HIV/AIDS. While the patient is on immunosuppressive therapy for rheumatoid arthritis, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code among the ones provided that fits a severe immunocompromised state manifesting as systemic infection; no ICD-10 codes for non-tuberculous mycobacteria or histoplasmosis are present in the list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:05,023 - INFO - ================================================== - -2025-06-04 01:45:05,025 - INFO - -================================================== -2025-06-04 01:45:05,026 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:45:05,026 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the context of immunosuppression, raising suspicion for opportunistic infections typical of immunodeficiency, including HIV/AIDS. While the patient is on immunosuppressive therapy for rheumatoid arthritis, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code among the ones provided that fits a severe immunocompromised state manifesting as systemic infection; no ICD-10 codes for non-tuberculous mycobacteria or histoplasmosis are present in the list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:05,027 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the context of immunosuppression, raising suspicion for opportunistic infections typical of immunodeficiency, including HIV/AIDS. While the patient is on immunosuppressive therapy for rheumatoid arthritis, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code among the ones provided that fits a severe immunocompromised state manifesting as systemic infection; no ICD-10 codes for non-tuberculous mycobacteria or histoplasmosis are present in the list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:05,028 - INFO - ================================================== - -2025-06-04 01:45:05,030 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes a patient with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the context of immunosuppression, raising suspicion for opportunistic infections typical of immunodeficiency, including HIV/AIDS. While the patient is on immunosuppressive therapy for rheumatoid arthritis, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code among the ones provided that fits a severe immunocompromised state manifesting as systemic infection; no ICD-10 codes for non-tuberculous mycobacteria or histoplasmosis are present in the list. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:06,536 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease resulting in infectious and parasitic diseases, but this patient is immunosuppressed due to methotrexate and prednisone, not HIV."} -2025-06-04 01:45:06,537 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease resulting in infectious and parasitic diseases, but this patient is immunosuppressed due to methotrexate and prednisone, not HIV.'} -2025-06-04 01:45:06,539 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:08,411 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection."} -2025-06-04 01:45:08,419 - INFO - -================================================== -2025-06-04 01:45:08,420 - INFO - Stage: match_icd10_code -2025-06-04 01:45:08,421 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:08,421 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:08,422 - INFO - ================================================== - -2025-06-04 01:45:08,425 - INFO - -================================================== -2025-06-04 01:45:08,426 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:45:08,427 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:08,427 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:08,428 - INFO - ================================================== - -2025-06-04 01:45:08,431 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:45:09,960 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 appropriately indicates long-term use of immunosuppressive drugs, matching the patient's chronic methotrexate and prednisone therapy described in the clinical scenario."} -2025-06-04 01:45:09,962 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 appropriately indicates long-term use of immunosuppressive drugs, matching the patient's chronic methotrexate and prednisone therapy described in the clinical scenario."} -2025-06-04 01:45:09,964 - INFO - -================================================== -2025-06-04 01:45:09,965 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:45:09,966 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:09,966 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:09,967 - INFO - ================================================== - -2025-06-04 01:45:09,969 - INFO - -================================================== -2025-06-04 01:45:09,969 - INFO - Final Result: -2025-06-04 01:45:09,969 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The clinical picture involves an immunosuppressed patient due to long-term use of immunosuppressive drugs (methotrexate and prednisone). Z79.4 corresponds to long-term (current) use of immunosuppressive drugs, which best reflects the setting of the clinical scenario and the main underlying risk factor for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:45:09,970 - INFO - ================================================== - -2025-06-04 01:46:46,221 - INFO - -================================================== -2025-06-04 01:46:46,223 - INFO - Starting new clinical case processing -2025-06-04 01:46:46,224 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:46:46,224 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:46:46,225 - INFO - ================================================== - -2025-06-04 01:46:46,230 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:46:47,407 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:46:47,411 - INFO - -================================================== -2025-06-04 01:46:47,412 - INFO - Stage: extract_patient_info -2025-06-04 01:46:47,412 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:47,413 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:47,413 - INFO - ================================================== - -2025-06-04 01:46:47,415 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:49,669 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient is immunosuppressed and presents with prolonged fever, weight loss, night sweats, and imaging revealing nodular lesions suggestive of a disseminated infectious process consistent with an opportunistic infection, which aligns with B20 for HIV disease with related symptoms and infections, as ICD-10 B20 broadly covers immunodeficiency and related opportunistic infections. However, as none of the other codes specifically address disseminated mycobacterial or fungal infections, B20 is the most appropriate from the provided list."} -2025-06-04 01:46:49,671 - INFO - -================================================== -2025-06-04 01:46:49,672 - INFO - Stage: match_icd10_code -2025-06-04 01:46:49,673 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:49,673 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with prolonged fever, weight loss, night sweats, and imaging revealing nodular lesions suggestive of a disseminated infectious process consistent with an opportunistic infection, which aligns with B20 for HIV disease with related symptoms and infections, as ICD-10 B20 broadly covers immunodeficiency and related opportunistic infections. However, as none of the other codes specifically address disseminated mycobacterial or fungal infections, B20 is the most appropriate from the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:49,674 - INFO - ================================================== - -2025-06-04 01:46:49,678 - INFO - -================================================== -2025-06-04 01:46:49,679 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:46:49,679 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with prolonged fever, weight loss, night sweats, and imaging revealing nodular lesions suggestive of a disseminated infectious process consistent with an opportunistic infection, which aligns with B20 for HIV disease with related symptoms and infections, as ICD-10 B20 broadly covers immunodeficiency and related opportunistic infections. However, as none of the other codes specifically address disseminated mycobacterial or fungal infections, B20 is the most appropriate from the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:49,680 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with prolonged fever, weight loss, night sweats, and imaging revealing nodular lesions suggestive of a disseminated infectious process consistent with an opportunistic infection, which aligns with B20 for HIV disease with related symptoms and infections, as ICD-10 B20 broadly covers immunodeficiency and related opportunistic infections. However, as none of the other codes specifically address disseminated mycobacterial or fungal infections, B20 is the most appropriate from the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:49,681 - INFO - ================================================== - -2025-06-04 01:46:49,683 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient is immunosuppressed and presents with prolonged fever, weight loss, night sweats, and imaging revealing nodular lesions suggestive of a disseminated infectious process consistent with an opportunistic infection, which aligns with B20 for HIV disease with related symptoms and infections, as ICD-10 B20 broadly covers immunodeficiency and related opportunistic infections. However, as none of the other codes specifically address disseminated mycobacterial or fungal infections, B20 is the most appropriate from the provided list. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:51,297 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease causing immunosuppression, but this patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate."} -2025-06-04 01:46:51,298 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease causing immunosuppression, but this patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate.'} -2025-06-04 01:46:51,303 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:54,389 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 represents HIV disease resulting in infectious and parasitic diseases. Though the patient is not stated to have HIV, none of the other provided codes pertain to disseminated infection or immunosuppression. The clinical scenario is of an immunosuppressed patient with multi-organ disseminated infection (possible mycobacteria or histoplasma), which most closely fits the infectious etiology described by B20 among the available codes."} -2025-06-04 01:46:54,393 - INFO - -================================================== -2025-06-04 01:46:54,393 - INFO - Stage: match_icd10_code -2025-06-04 01:46:54,394 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:54,394 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 represents HIV disease resulting in infectious and parasitic diseases. Though the patient is not stated to have HIV, none of the other provided codes pertain to disseminated infection or immunosuppression. The clinical scenario is of an immunosuppressed patient with multi-organ disseminated infection (possible mycobacteria or histoplasma), which most closely fits the infectious etiology described by B20 among the available codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:54,394 - INFO - ================================================== - -2025-06-04 01:46:54,399 - INFO - -================================================== -2025-06-04 01:46:54,400 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:46:54,400 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 represents HIV disease resulting in infectious and parasitic diseases. Though the patient is not stated to have HIV, none of the other provided codes pertain to disseminated infection or immunosuppression. The clinical scenario is of an immunosuppressed patient with multi-organ disseminated infection (possible mycobacteria or histoplasma), which most closely fits the infectious etiology described by B20 among the available codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:54,401 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 represents HIV disease resulting in infectious and parasitic diseases. Though the patient is not stated to have HIV, none of the other provided codes pertain to disseminated infection or immunosuppression. The clinical scenario is of an immunosuppressed patient with multi-organ disseminated infection (possible mycobacteria or histoplasma), which most closely fits the infectious etiology described by B20 among the available codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:54,402 - INFO - ================================================== - -2025-06-04 01:46:54,403 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 represents HIV disease resulting in infectious and parasitic diseases. Though the patient is not stated to have HIV, none of the other provided codes pertain to disseminated infection or immunosuppression. The clinical scenario is of an immunosuppressed patient with multi-organ disseminated infection (possible mycobacteria or histoplasma), which most closely fits the infectious etiology described by B20 among the available codes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:56,125 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease with resulting infections, but this patient does not have HIV; her immunosuppression is due to rheumatoid arthritis treatment, so B20 is not appropriate for this scenario."} -2025-06-04 01:46:56,125 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease with resulting infections, but this patient does not have HIV; her immunosuppression is due to rheumatoid arthritis treatment, so B20 is not appropriate for this scenario.'} -2025-06-04 01:46:56,130 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:58,047 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's persistent fever, night sweats, weight loss, and organ lesions while immunosuppressed are highly suggestive of an opportunistic infectious process. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match as it encompasses complex infections in immunocompromised hosts; the other codes pertain to unrelated chronic diseases or status codes."} -2025-06-04 01:46:58,049 - INFO - -================================================== -2025-06-04 01:46:58,049 - INFO - Stage: match_icd10_code -2025-06-04 01:46:58,049 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:58,050 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, night sweats, weight loss, and organ lesions while immunosuppressed are highly suggestive of an opportunistic infectious process. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match as it encompasses complex infections in immunocompromised hosts; the other codes pertain to unrelated chronic diseases or status codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:58,051 - INFO - ================================================== - -2025-06-04 01:46:58,053 - INFO - -================================================== -2025-06-04 01:46:58,053 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:46:58,054 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, night sweats, weight loss, and organ lesions while immunosuppressed are highly suggestive of an opportunistic infectious process. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match as it encompasses complex infections in immunocompromised hosts; the other codes pertain to unrelated chronic diseases or status codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:58,054 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, night sweats, weight loss, and organ lesions while immunosuppressed are highly suggestive of an opportunistic infectious process. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match as it encompasses complex infections in immunocompromised hosts; the other codes pertain to unrelated chronic diseases or status codes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:46:58,055 - INFO - ================================================== - -2025-06-04 01:46:58,056 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's persistent fever, night sweats, weight loss, and organ lesions while immunosuppressed are highly suggestive of an opportunistic infectious process. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match as it encompasses complex infections in immunocompromised hosts; the other codes pertain to unrelated chronic diseases or status codes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:46:59,655 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease with infectious complications, but this patient has immunosuppression from methotrexate and prednisone for rheumatoid arthritis, not HIV; therefore, B20 is not an appropriate match."} -2025-06-04 01:46:59,656 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease with infectious complications, but this patient has immunosuppression from methotrexate and prednisone for rheumatoid arthritis, not HIV; therefore, B20 is not an appropriate match.'} -2025-06-04 01:46:59,657 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:02,119 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, pulmonary and hepatosplenic lesions, and immunosuppression from methotrexate and prednisone raises suspicion for a disseminated infectious process often seen in immunocompromised individuals. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only one fitting a systemic infectious workup; although the patient does not have a confirmed HIV diagnosis, it most closely represents the diagnostic concern for opportunistic infections in immunocompromised hosts. The other codes are unrelated to disseminated mycobacterial or fungal infection."} -2025-06-04 01:47:02,122 - INFO - -================================================== -2025-06-04 01:47:02,123 - INFO - Stage: match_icd10_code -2025-06-04 01:47:02,124 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:02,125 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, pulmonary and hepatosplenic lesions, and immunosuppression from methotrexate and prednisone raises suspicion for a disseminated infectious process often seen in immunocompromised individuals. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only one fitting a systemic infectious workup; although the patient does not have a confirmed HIV diagnosis, it most closely represents the diagnostic concern for opportunistic infections in immunocompromised hosts. The other codes are unrelated to disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:02,127 - INFO - ================================================== - -2025-06-04 01:47:02,131 - INFO - -================================================== -2025-06-04 01:47:02,131 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:02,132 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, pulmonary and hepatosplenic lesions, and immunosuppression from methotrexate and prednisone raises suspicion for a disseminated infectious process often seen in immunocompromised individuals. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only one fitting a systemic infectious workup; although the patient does not have a confirmed HIV diagnosis, it most closely represents the diagnostic concern for opportunistic infections in immunocompromised hosts. The other codes are unrelated to disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:02,132 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, pulmonary and hepatosplenic lesions, and immunosuppression from methotrexate and prednisone raises suspicion for a disseminated infectious process often seen in immunocompromised individuals. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only one fitting a systemic infectious workup; although the patient does not have a confirmed HIV diagnosis, it most closely represents the diagnostic concern for opportunistic infections in immunocompromised hosts. The other codes are unrelated to disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:02,133 - INFO - ================================================== - -2025-06-04 01:47:02,136 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, night sweats, weight loss, pulmonary and hepatosplenic lesions, and immunosuppression from methotrexate and prednisone raises suspicion for a disseminated infectious process often seen in immunocompromised individuals. Among the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only one fitting a systemic infectious workup; although the patient does not have a confirmed HIV diagnosis, it most closely represents the diagnostic concern for opportunistic infections in immunocompromised hosts. The other codes are unrelated to disseminated mycobacterial or fungal infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:03,881 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 requires a confirmed HIV diagnosis, which is not present in this case; the patient is immunosuppressed from medications, not HIV."} -2025-06-04 01:47:03,881 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 requires a confirmed HIV diagnosis, which is not present in this case; the patient is immunosuppressed from medications, not HIV.'} -2025-06-04 01:47:03,884 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:06,155 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical picture of an immunosuppressed patient with persistent fever, night sweats, weight loss, and organ lesions is suggestive of a disseminated opportunistic infection. B20 is used for HIV disease resulting in infectious and parasitic diseases; while the patient is not explicitly described as HIV-positive, among the provided codes, B20 is the only one relevant to serious opportunistic infections. None of the other codes pertain to infectious etiologies or immunosuppression context as described."} -2025-06-04 01:47:06,157 - INFO - -================================================== -2025-06-04 01:47:06,157 - INFO - Stage: match_icd10_code -2025-06-04 01:47:06,158 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:06,159 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical picture of an immunosuppressed patient with persistent fever, night sweats, weight loss, and organ lesions is suggestive of a disseminated opportunistic infection. B20 is used for HIV disease resulting in infectious and parasitic diseases; while the patient is not explicitly described as HIV-positive, among the provided codes, B20 is the only one relevant to serious opportunistic infections. None of the other codes pertain to infectious etiologies or immunosuppression context as described.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:06,159 - INFO - ================================================== - -2025-06-04 01:47:06,163 - INFO - -================================================== -2025-06-04 01:47:06,164 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:06,164 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical picture of an immunosuppressed patient with persistent fever, night sweats, weight loss, and organ lesions is suggestive of a disseminated opportunistic infection. B20 is used for HIV disease resulting in infectious and parasitic diseases; while the patient is not explicitly described as HIV-positive, among the provided codes, B20 is the only one relevant to serious opportunistic infections. None of the other codes pertain to infectious etiologies or immunosuppression context as described.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:06,165 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical picture of an immunosuppressed patient with persistent fever, night sweats, weight loss, and organ lesions is suggestive of a disseminated opportunistic infection. B20 is used for HIV disease resulting in infectious and parasitic diseases; while the patient is not explicitly described as HIV-positive, among the provided codes, B20 is the only one relevant to serious opportunistic infections. None of the other codes pertain to infectious etiologies or immunosuppression context as described.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:06,166 - INFO - ================================================== - -2025-06-04 01:47:06,169 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical picture of an immunosuppressed patient with persistent fever, night sweats, weight loss, and organ lesions is suggestive of a disseminated opportunistic infection. B20 is used for HIV disease resulting in infectious and parasitic diseases; while the patient is not explicitly described as HIV-positive, among the provided codes, B20 is the only one relevant to serious opportunistic infections. None of the other codes pertain to infectious etiologies or immunosuppression context as described. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:07,787 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease resulting in infectious/parasitic diseases, but this patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate for this case."} -2025-06-04 01:47:07,788 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease resulting in infectious/parasitic diseases, but this patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV; thus, B20 is not appropriate for this case.'} -2025-06-04 01:47:07,791 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:09,892 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions is most suggestive of a disseminated opportunistic infection, which is characteristic of immunocompromised hosts such as those with HIV/AIDS. Among the provided ICD-10 codes, B20 represents HIV disease resulting in infectious and parasitic diseases, which best fits the clinical suspicion of disseminated mycobacterial or fungal infection in an immunosuppressed patient."} -2025-06-04 01:47:09,894 - INFO - -================================================== -2025-06-04 01:47:09,895 - INFO - Stage: match_icd10_code -2025-06-04 01:47:09,896 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:09,897 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions is most suggestive of a disseminated opportunistic infection, which is characteristic of immunocompromised hosts such as those with HIV/AIDS. Among the provided ICD-10 codes, B20 represents HIV disease resulting in infectious and parasitic diseases, which best fits the clinical suspicion of disseminated mycobacterial or fungal infection in an immunosuppressed patient.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:09,897 - INFO - ================================================== - -2025-06-04 01:47:09,899 - INFO - -================================================== -2025-06-04 01:47:09,899 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:09,901 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions is most suggestive of a disseminated opportunistic infection, which is characteristic of immunocompromised hosts such as those with HIV/AIDS. Among the provided ICD-10 codes, B20 represents HIV disease resulting in infectious and parasitic diseases, which best fits the clinical suspicion of disseminated mycobacterial or fungal infection in an immunosuppressed patient.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:09,901 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions is most suggestive of a disseminated opportunistic infection, which is characteristic of immunocompromised hosts such as those with HIV/AIDS. Among the provided ICD-10 codes, B20 represents HIV disease resulting in infectious and parasitic diseases, which best fits the clinical suspicion of disseminated mycobacterial or fungal infection in an immunosuppressed patient.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:09,902 - INFO - ================================================== - -2025-06-04 01:47:09,903 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's clinical syndrome of persistent fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions is most suggestive of a disseminated opportunistic infection, which is characteristic of immunocompromised hosts such as those with HIV/AIDS. Among the provided ICD-10 codes, B20 represents HIV disease resulting in infectious and parasitic diseases, which best fits the clinical suspicion of disseminated mycobacterial or fungal infection in an immunosuppressed patient. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:18,804 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease resulting in infectious and parasitic diseases, but the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV/AIDS."} -2025-06-04 01:47:18,806 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease resulting in infectious and parasitic diseases, but the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV/AIDS.'} -2025-06-04 01:47:18,811 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:21,643 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for Human immunodeficiency virus [HIV] disease, which may be considered here due to the presentation of disseminated opportunistic infections like non-tuberculous mycobacteria or histoplasmosis in an immunocompromised patient. None of the other codes are specific for disseminated mycobacterial or fungal infections. Although the patient has rheumatoid arthritis on immunosuppressants, B20 is the closest code provided representing an immunocompromised state potentially associated with such infections."} -2025-06-04 01:47:21,646 - INFO - -================================================== -2025-06-04 01:47:21,647 - INFO - Stage: match_icd10_code -2025-06-04 01:47:21,648 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:21,649 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for Human immunodeficiency virus [HIV] disease, which may be considered here due to the presentation of disseminated opportunistic infections like non-tuberculous mycobacteria or histoplasmosis in an immunocompromised patient. None of the other codes are specific for disseminated mycobacterial or fungal infections. Although the patient has rheumatoid arthritis on immunosuppressants, B20 is the closest code provided representing an immunocompromised state potentially associated with such infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:21,649 - INFO - ================================================== - -2025-06-04 01:47:21,653 - INFO - -================================================== -2025-06-04 01:47:21,653 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:21,654 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for Human immunodeficiency virus [HIV] disease, which may be considered here due to the presentation of disseminated opportunistic infections like non-tuberculous mycobacteria or histoplasmosis in an immunocompromised patient. None of the other codes are specific for disseminated mycobacterial or fungal infections. Although the patient has rheumatoid arthritis on immunosuppressants, B20 is the closest code provided representing an immunocompromised state potentially associated with such infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:21,655 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for Human immunodeficiency virus [HIV] disease, which may be considered here due to the presentation of disseminated opportunistic infections like non-tuberculous mycobacteria or histoplasmosis in an immunocompromised patient. None of the other codes are specific for disseminated mycobacterial or fungal infections. Although the patient has rheumatoid arthritis on immunosuppressants, B20 is the closest code provided representing an immunocompromised state potentially associated with such infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:21,656 - INFO - ================================================== - -2025-06-04 01:47:21,658 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for Human immunodeficiency virus [HIV] disease, which may be considered here due to the presentation of disseminated opportunistic infections like non-tuberculous mycobacteria or histoplasmosis in an immunocompromised patient. None of the other codes are specific for disseminated mycobacterial or fungal infections. Although the patient has rheumatoid arthritis on immunosuppressants, B20 is the closest code provided representing an immunocompromised state potentially associated with such infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:23,257 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient has immunosuppression due to rheumatoid arthritis therapy, not HIV; therefore, B20 is not appropriate for this case."} -2025-06-04 01:47:23,258 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but the patient has immunosuppression due to rheumatoid arthritis therapy, not HIV; therefore, B20 is not appropriate for this case.'} -2025-06-04 01:47:23,261 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:26,341 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk."} -2025-06-04 01:47:26,343 - INFO - -================================================== -2025-06-04 01:47:26,344 - INFO - Stage: match_icd10_code -2025-06-04 01:47:26,344 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:26,345 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:26,345 - INFO - ================================================== - -2025-06-04 01:47:26,348 - INFO - -================================================== -2025-06-04 01:47:26,348 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:26,349 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:26,350 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:26,350 - INFO - ================================================== - -2025-06-04 01:47:26,352 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:28,025 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "Z79.4 is appropriate since it indicates long-term use of immunosuppressive drugs, matching the clinical context of methotrexate and prednisone use, which is central to the patient's current risk for disseminated infection."} -2025-06-04 01:47:28,026 - INFO - Validation result: {'is_valid': True, 'reason': "Z79.4 is appropriate since it indicates long-term use of immunosuppressive drugs, matching the clinical context of methotrexate and prednisone use, which is central to the patient's current risk for disseminated infection."} -2025-06-04 01:47:28,028 - INFO - -================================================== -2025-06-04 01:47:28,030 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:47:28,030 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:28,031 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:28,032 - INFO - ================================================== - -2025-06-04 01:47:28,035 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:47:29,133 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:47:29,135 - INFO - -================================================== -2025-06-04 01:47:29,135 - INFO - Stage: extract_patient_info -2025-06-04 01:47:29,136 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:29,137 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:29,138 - INFO - ================================================== - -2025-06-04 01:47:29,139 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:31,065 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease."} -2025-06-04 01:47:31,067 - INFO - -================================================== -2025-06-04 01:47:31,068 - INFO - Stage: match_icd10_code -2025-06-04 01:47:31,070 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code is for long-term (current) use of immunosuppressive drugs, which is central to the patient's clinical context as she is on methotrexate and prednisone for rheumatoid arthritis. This increases her risk for disseminated infections such as atypical mycobacteria or histoplasmosis. None of the available ICD-10 codes specifically identify mycobacterial or disseminated fungal infection, making Z79.4 the most appropriate code from the provided list to capture her immunosuppressed state, which is integral to her diagnostic risk.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:31,072 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:31,074 - INFO - ================================================== - -2025-06-04 01:47:31,076 - INFO - -================================================== -2025-06-04 01:47:31,077 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:47:31,077 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:31,078 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:31,078 - INFO - ================================================== - -2025-06-04 01:47:31,080 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:47:32,563 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 indicates long-term use of immunosuppressive drugs, which is clinically relevant given the patient's chronic use of methotrexate and prednisone that increases her risk for disseminated infections."} -2025-06-04 01:47:32,565 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 indicates long-term use of immunosuppressive drugs, which is clinically relevant given the patient's chronic use of methotrexate and prednisone that increases her risk for disseminated infections."} -2025-06-04 01:47:32,568 - INFO - -================================================== -2025-06-04 01:47:32,569 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 01:47:32,570 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:32,571 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:32,572 - INFO - ================================================== - -2025-06-04 01:47:32,574 - INFO - -================================================== -2025-06-04 01:47:32,575 - INFO - Final Result: -2025-06-04 01:47:32,575 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents long-term (current) use of immunosuppressive drugs, which is the relevant underlying factor in this patient with rheumatoid arthritis on methotrexate and prednisone, predisposing her to disseminated infections such as atypical mycobacterial or fungal infections. None of the other codes provided are specific for disseminated infection, immunodeficiency, or granulomatous disease.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:47:32,576 - INFO - ================================================== - -2025-06-04 01:58:03,969 - INFO - -================================================== -2025-06-04 01:58:03,973 - INFO - Starting new clinical case processing -2025-06-04 01:58:03,974 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 01:58:03,974 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 01:58:03,975 - INFO - ================================================== - -2025-06-04 01:58:03,984 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:58:05,166 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:58:05,171 - INFO - -================================================== -2025-06-04 01:58:05,172 - INFO - Stage: extract_patient_info -2025-06-04 01:58:05,172 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:58:05,173 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 01:58:05,173 - INFO - ================================================== - -2025-06-04 01:58:05,175 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:07,606 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is consistent with an opportunistic infection (such as disseminated mycobacterial or fungal infection) in the setting of immunosuppression. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code for immunodeficiency with infection, as there is no more precise code for disseminated mycobacterial or fungal disease on this list. The other codes do not relate to immunosuppression or infection."} -2025-06-04 01:58:07,609 - INFO - -================================================== -2025-06-04 01:58:07,609 - INFO - Stage: match_icd10_code -2025-06-04 01:58:07,610 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 01:58:07,611 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection (such as disseminated mycobacterial or fungal infection) in the setting of immunosuppression. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code for immunodeficiency with infection, as there is no more precise code for disseminated mycobacterial or fungal disease on this list. The other codes do not relate to immunosuppression or infection.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 01:58:07,612 - INFO - ================================================== - -2025-06-04 01:58:07,614 - INFO - -================================================== -2025-06-04 01:58:07,615 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:58:07,615 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection (such as disseminated mycobacterial or fungal infection) in the setting of immunosuppression. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code for immunodeficiency with infection, as there is no more precise code for disseminated mycobacterial or fungal disease on this list. The other codes do not relate to immunosuppression or infection.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 01:58:07,615 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection (such as disseminated mycobacterial or fungal infection) in the setting of immunosuppression. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code for immunodeficiency with infection, as there is no more precise code for disseminated mycobacterial or fungal disease on this list. The other codes do not relate to immunosuppression or infection.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 01:58:07,616 - INFO - ================================================== - -2025-06-04 01:58:07,617 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is consistent with an opportunistic infection (such as disseminated mycobacterial or fungal infection) in the setting of immunosuppression. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest code for immunodeficiency with infection, as there is no more precise code for disseminated mycobacterial or fungal disease on this list. The other codes do not relate to immunosuppression or infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:09,136 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease resulting in infectious and parasitic diseases; the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection, so B20 is not appropriate for this case."} -2025-06-04 01:58:09,139 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease resulting in infectious and parasitic diseases; the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV infection, so B20 is not appropriate for this case.'} -2025-06-04 01:58:09,140 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:11,712 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's clinical presentation of prolonged fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions in an immunosuppressed host raises strong suspicion for a systemic infectious process consistent with conditions categorized under B20 (HIV disease, which encompasses severe immunodeficiency with opportunistic infections, such as disseminated mycobacterial or fungal infections). While the patient is not documented as HIV positive, B20 is the closest match among the provided codes for disseminated opportunistic infections in a severely immunocompromised patient."} -2025-06-04 01:58:11,715 - INFO - -================================================== -2025-06-04 01:58:11,715 - INFO - Stage: match_icd10_code -2025-06-04 01:58:11,716 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 01:58:11,716 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical presentation of prolonged fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions in an immunosuppressed host raises strong suspicion for a systemic infectious process consistent with conditions categorized under B20 (HIV disease, which encompasses severe immunodeficiency with opportunistic infections, such as disseminated mycobacterial or fungal infections). While the patient is not documented as HIV positive, B20 is the closest match among the provided codes for disseminated opportunistic infections in a severely immunocompromised patient.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 01:58:11,717 - INFO - ================================================== - -2025-06-04 01:58:11,719 - INFO - -================================================== -2025-06-04 01:58:11,720 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:58:11,721 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical presentation of prolonged fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions in an immunosuppressed host raises strong suspicion for a systemic infectious process consistent with conditions categorized under B20 (HIV disease, which encompasses severe immunodeficiency with opportunistic infections, such as disseminated mycobacterial or fungal infections). While the patient is not documented as HIV positive, B20 is the closest match among the provided codes for disseminated opportunistic infections in a severely immunocompromised patient.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 01:58:11,722 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical presentation of prolonged fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions in an immunosuppressed host raises strong suspicion for a systemic infectious process consistent with conditions categorized under B20 (HIV disease, which encompasses severe immunodeficiency with opportunistic infections, such as disseminated mycobacterial or fungal infections). While the patient is not documented as HIV positive, B20 is the closest match among the provided codes for disseminated opportunistic infections in a severely immunocompromised patient.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 01:58:11,722 - INFO - ================================================== - -2025-06-04 01:58:11,724 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's clinical presentation of prolonged fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions in an immunosuppressed host raises strong suspicion for a systemic infectious process consistent with conditions categorized under B20 (HIV disease, which encompasses severe immunodeficiency with opportunistic infections, such as disseminated mycobacterial or fungal infections). While the patient is not documented as HIV positive, B20 is the closest match among the provided codes for disseminated opportunistic infections in a severely immunocompromised patient. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:13,212 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, and the patient is immunosuppressed due to methotrexate and prednisone, not HIV infection."} -2025-06-04 01:58:13,213 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, and the patient is immunosuppressed due to methotrexate and prednisone, not HIV infection.'} -2025-06-04 01:58:13,215 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:15,591 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's clinical picture—persistent fever, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions—suggests a disseminated infectious process consistent with opportunistic infections seen in immunocompromised states. Of the codes listed, B20 (HIV disease resulting in infectious and parasitic diseases) most closely fits, as disseminated mycobacterial and fungal infections are AIDS-defining illnesses, and none of the other options correspond to disseminated infection. This code is selected as it encompasses the spectrum of severe immune compromise and associated infections, which aligns with the diagnostic considerations raised."} -2025-06-04 01:58:15,593 - INFO - -================================================== -2025-06-04 01:58:15,594 - INFO - Stage: match_icd10_code -2025-06-04 01:58:15,594 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:15,596 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical picture\u2014persistent fever, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions\u2014suggests a disseminated infectious process consistent with opportunistic infections seen in immunocompromised states. Of the codes listed, B20 (HIV disease resulting in infectious and parasitic diseases) most closely fits, as disseminated mycobacterial and fungal infections are AIDS-defining illnesses, and none of the other options correspond to disseminated infection. This code is selected as it encompasses the spectrum of severe immune compromise and associated infections, which aligns with the diagnostic considerations raised.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:15,597 - INFO - ================================================== - -2025-06-04 01:58:15,599 - INFO - -================================================== -2025-06-04 01:58:15,599 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:58:15,600 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical picture\u2014persistent fever, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions\u2014suggests a disseminated infectious process consistent with opportunistic infections seen in immunocompromised states. Of the codes listed, B20 (HIV disease resulting in infectious and parasitic diseases) most closely fits, as disseminated mycobacterial and fungal infections are AIDS-defining illnesses, and none of the other options correspond to disseminated infection. This code is selected as it encompasses the spectrum of severe immune compromise and associated infections, which aligns with the diagnostic considerations raised.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:15,601 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical picture\u2014persistent fever, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions\u2014suggests a disseminated infectious process consistent with opportunistic infections seen in immunocompromised states. Of the codes listed, B20 (HIV disease resulting in infectious and parasitic diseases) most closely fits, as disseminated mycobacterial and fungal infections are AIDS-defining illnesses, and none of the other options correspond to disseminated infection. This code is selected as it encompasses the spectrum of severe immune compromise and associated infections, which aligns with the diagnostic considerations raised.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:15,601 - INFO - ================================================== - -2025-06-04 01:58:15,602 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's clinical picture—persistent fever, night sweats, weight loss, multiple pulmonary nodules, and hepatosplenic lesions—suggests a disseminated infectious process consistent with opportunistic infections seen in immunocompromised states. Of the codes listed, B20 (HIV disease resulting in infectious and parasitic diseases) most closely fits, as disseminated mycobacterial and fungal infections are AIDS-defining illnesses, and none of the other options correspond to disseminated infection. This code is selected as it encompasses the spectrum of severe immune compromise and associated infections, which aligns with the diagnostic considerations raised. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:17,782 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 (HIV disease resulting in infectious and parasitic diseases) is not appropriate because there is no evidence or mention of HIV/AIDS in the patient's history; the immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV."} -2025-06-04 01:58:17,783 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 (HIV disease resulting in infectious and parasitic diseases) is not appropriate because there is no evidence or mention of HIV/AIDS in the patient's history; the immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV."} -2025-06-04 01:58:17,786 - INFO - -================================================== -2025-06-04 01:58:17,786 - INFO - Stage: stopper_node -2025-06-04 01:58:17,788 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 01:58:17,789 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 01:58:17,789 - INFO - ================================================== - -2025-06-04 01:58:17,791 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 01:58:18,987 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 01:58:18,990 - INFO - -================================================== -2025-06-04 01:58:18,991 - INFO - Stage: extract_patient_info -2025-06-04 01:58:18,992 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 (HIV disease resulting in infectious and parasitic diseases) is not appropriate because there is no evidence or mention of HIV/AIDS in the patient's history; the immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV.", - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:18,993 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 (HIV disease resulting in infectious and parasitic diseases) is not appropriate because there is no evidence or mention of HIV/AIDS in the patient's history; the immunosuppression is due to methotrexate and prednisone for rheumatoid arthritis, not HIV.", - "retry_count": 3, - "stopped": false -} -2025-06-04 01:58:18,994 - INFO - ================================================== - -2025-06-04 01:58:18,997 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:21,377 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and findings of disseminated infectious process (multiple pulmonary nodules and hepatosplenic lesions) in an immunosuppressed individual raises suspicion for severe opportunistic infections such as disseminated non-tuberculous mycobacteria or histoplasmosis, which are commonly coded under B20 for HIV disease with associated opportunistic infections. Although there is no direct mention of HIV, B20 is the most fitting code from the list for disseminated opportunistic infections, as no other code specifically addresses disseminated mycobacterial or fungal infections."} -2025-06-04 01:58:21,379 - INFO - -================================================== -2025-06-04 01:58:21,380 - INFO - Stage: match_icd10_code -2025-06-04 01:58:21,380 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 01:58:21,381 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and findings of disseminated infectious process (multiple pulmonary nodules and hepatosplenic lesions) in an immunosuppressed individual raises suspicion for severe opportunistic infections such as disseminated non-tuberculous mycobacteria or histoplasmosis, which are commonly coded under B20 for HIV disease with associated opportunistic infections. Although there is no direct mention of HIV, B20 is the most fitting code from the list for disseminated opportunistic infections, as no other code specifically addresses disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 01:58:21,381 - INFO - ================================================== - -2025-06-04 01:58:21,384 - INFO - -================================================== -2025-06-04 01:58:21,385 - INFO - Stage: validate_icd10_code_exists -2025-06-04 01:58:21,385 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and findings of disseminated infectious process (multiple pulmonary nodules and hepatosplenic lesions) in an immunosuppressed individual raises suspicion for severe opportunistic infections such as disseminated non-tuberculous mycobacteria or histoplasmosis, which are commonly coded under B20 for HIV disease with associated opportunistic infections. Although there is no direct mention of HIV, B20 is the most fitting code from the list for disseminated opportunistic infections, as no other code specifically addresses disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 01:58:21,386 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and findings of disseminated infectious process (multiple pulmonary nodules and hepatosplenic lesions) in an immunosuppressed individual raises suspicion for severe opportunistic infections such as disseminated non-tuberculous mycobacteria or histoplasmosis, which are commonly coded under B20 for HIV disease with associated opportunistic infections. Although there is no direct mention of HIV, B20 is the most fitting code from the list for disseminated opportunistic infections, as no other code specifically addresses disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 01:58:21,387 - INFO - ================================================== - -2025-06-04 01:58:21,389 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, night sweats, weight loss, and findings of disseminated infectious process (multiple pulmonary nodules and hepatosplenic lesions) in an immunosuppressed individual raises suspicion for severe opportunistic infections such as disseminated non-tuberculous mycobacteria or histoplasmosis, which are commonly coded under B20 for HIV disease with associated opportunistic infections. Although there is no direct mention of HIV, B20 is the most fitting code from the list for disseminated opportunistic infections, as no other code specifically addresses disseminated mycobacterial or fungal infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 01:58:22,962 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease with associated opportunistic infections, but there is no evidence or mention of HIV infection in this patient with rheumatoid arthritis on immunosuppressive therapy."} -2025-06-04 01:58:22,963 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease with associated opportunistic infections, but there is no evidence or mention of HIV infection in this patient with rheumatoid arthritis on immunosuppressive therapy.'} -2025-06-04 01:58:22,965 - INFO - -================================================== -2025-06-04 01:58:22,966 - INFO - Stage: stopper_node -2025-06-04 01:58:22,967 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 01:58:22,967 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 01:58:22,968 - INFO - ================================================== - -2025-06-04 01:58:22,969 - INFO - -================================================== -2025-06-04 01:58:22,970 - INFO - Final Result: -2025-06-04 01:58:22,971 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 01:58:22,972 - INFO - ================================================== - -2025-06-04 02:05:34,971 - INFO - -================================================== -2025-06-04 02:05:34,973 - INFO - Starting new clinical case processing -2025-06-04 02:05:34,974 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 02:05:34,974 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 02:05:34,975 - INFO - ================================================== - -2025-06-04 02:05:35,261 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:05:36,406 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:05:36,414 - INFO - -================================================== -2025-06-04 02:05:36,415 - INFO - Stage: extract_patient_info -2025-06-04 02:05:36,415 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:36,416 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:36,416 - INFO - ================================================== - -2025-06-04 02:05:36,418 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:38,969 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "Code B20 is used for HIV disease resulting in infectious and parasitic diseases, but it is often used in immunosuppressed states in infectious contexts. The patient is immunosuppressed (on methotrexate and steroids), presenting with prolonged fever, weight loss, and evidence of disseminated infection, raising suspicion for opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis, fitting the use of B20 more closely than any other listed code."} -2025-06-04 02:05:38,970 - INFO - -================================================== -2025-06-04 02:05:38,970 - INFO - Stage: match_icd10_code -2025-06-04 02:05:38,971 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:38,972 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "Code B20 is used for HIV disease resulting in infectious and parasitic diseases, but it is often used in immunosuppressed states in infectious contexts. The patient is immunosuppressed (on methotrexate and steroids), presenting with prolonged fever, weight loss, and evidence of disseminated infection, raising suspicion for opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis, fitting the use of B20 more closely than any other listed code.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:38,973 - INFO - ================================================== - -2025-06-04 02:05:38,976 - INFO - -================================================== -2025-06-04 02:05:38,976 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:38,977 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "Code B20 is used for HIV disease resulting in infectious and parasitic diseases, but it is often used in immunosuppressed states in infectious contexts. The patient is immunosuppressed (on methotrexate and steroids), presenting with prolonged fever, weight loss, and evidence of disseminated infection, raising suspicion for opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis, fitting the use of B20 more closely than any other listed code.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:38,977 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "Code B20 is used for HIV disease resulting in infectious and parasitic diseases, but it is often used in immunosuppressed states in infectious contexts. The patient is immunosuppressed (on methotrexate and steroids), presenting with prolonged fever, weight loss, and evidence of disseminated infection, raising suspicion for opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis, fitting the use of B20 more closely than any other listed code.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:38,978 - INFO - ================================================== - -2025-06-04 02:05:38,980 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: Code B20 is used for HIV disease resulting in infectious and parasitic diseases, but it is often used in immunosuppressed states in infectious contexts. The patient is immunosuppressed (on methotrexate and steroids), presenting with prolonged fever, weight loss, and evidence of disseminated infection, raising suspicion for opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis, fitting the use of B20 more closely than any other listed code. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:40,543 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but this patient is immunosuppressed due to methotrexate and steroids for rheumatoid arthritis and does not have HIV. B20 is therefore not appropriate for this case."} -2025-06-04 02:05:40,544 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but this patient is immunosuppressed due to methotrexate and steroids for rheumatoid arthritis and does not have HIV. B20 is therefore not appropriate for this case.'} -2025-06-04 02:05:40,545 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:42,973 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's symptoms (persistent fever, night sweats, weight loss, hepatosplenic lesions, pulmonary nodules) in an immunosuppressed setting are consistent with an opportunistic infection, for which ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases) is the closest available code from the list, as there is no specific code for disseminated mycobacterial or fungal infection provided. The other codes do not match the clinical scenario."} -2025-06-04 02:05:42,976 - INFO - -================================================== -2025-06-04 02:05:42,977 - INFO - Stage: match_icd10_code -2025-06-04 02:05:42,977 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:42,978 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms (persistent fever, night sweats, weight loss, hepatosplenic lesions, pulmonary nodules) in an immunosuppressed setting are consistent with an opportunistic infection, for which ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases) is the closest available code from the list, as there is no specific code for disseminated mycobacterial or fungal infection provided. The other codes do not match the clinical scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:42,979 - INFO - ================================================== - -2025-06-04 02:05:42,983 - INFO - -================================================== -2025-06-04 02:05:42,983 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:42,984 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms (persistent fever, night sweats, weight loss, hepatosplenic lesions, pulmonary nodules) in an immunosuppressed setting are consistent with an opportunistic infection, for which ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases) is the closest available code from the list, as there is no specific code for disseminated mycobacterial or fungal infection provided. The other codes do not match the clinical scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:42,985 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms (persistent fever, night sweats, weight loss, hepatosplenic lesions, pulmonary nodules) in an immunosuppressed setting are consistent with an opportunistic infection, for which ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases) is the closest available code from the list, as there is no specific code for disseminated mycobacterial or fungal infection provided. The other codes do not match the clinical scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:42,986 - INFO - ================================================== - -2025-06-04 02:05:42,988 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's symptoms (persistent fever, night sweats, weight loss, hepatosplenic lesions, pulmonary nodules) in an immunosuppressed setting are consistent with an opportunistic infection, for which ICD-10 code B20 (HIV disease resulting in infectious and parasitic diseases) is the closest available code from the list, as there is no specific code for disseminated mycobacterial or fungal infection provided. The other codes do not match the clinical scenario. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:44,501 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease resulting in infectious and parasitic diseases, but there is no evidence in the case that the patient has HIV; immunosuppression is due to medications for rheumatoid arthritis."} -2025-06-04 02:05:44,501 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease resulting in infectious and parasitic diseases, but there is no evidence in the case that the patient has HIV; immunosuppression is due to medications for rheumatoid arthritis.'} -2025-06-04 02:05:44,503 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:46,923 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is consistent with a systemic infectious process, specifically a possible disseminated mycobacterial or fungal infection in the setting of immunosuppression. None of the other codes fit; B20 (HIV disease) is often associated with disseminated infections, but without confirmed HIV, it's the closest infectious disease code provided. The other codes refer to osteoporosis, long-term immunosuppressive therapy, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which directly reflect disseminated infection."} -2025-06-04 02:05:46,925 - INFO - -================================================== -2025-06-04 02:05:46,926 - INFO - Stage: match_icd10_code -2025-06-04 02:05:46,926 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:46,927 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a systemic infectious process, specifically a possible disseminated mycobacterial or fungal infection in the setting of immunosuppression. None of the other codes fit; B20 (HIV disease) is often associated with disseminated infections, but without confirmed HIV, it's the closest infectious disease code provided. The other codes refer to osteoporosis, long-term immunosuppressive therapy, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which directly reflect disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:46,928 - INFO - ================================================== - -2025-06-04 02:05:46,930 - INFO - -================================================== -2025-06-04 02:05:46,931 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:46,932 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a systemic infectious process, specifically a possible disseminated mycobacterial or fungal infection in the setting of immunosuppression. None of the other codes fit; B20 (HIV disease) is often associated with disseminated infections, but without confirmed HIV, it's the closest infectious disease code provided. The other codes refer to osteoporosis, long-term immunosuppressive therapy, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which directly reflect disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:46,932 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with a systemic infectious process, specifically a possible disseminated mycobacterial or fungal infection in the setting of immunosuppression. None of the other codes fit; B20 (HIV disease) is often associated with disseminated infections, but without confirmed HIV, it's the closest infectious disease code provided. The other codes refer to osteoporosis, long-term immunosuppressive therapy, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which directly reflect disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:46,933 - INFO - ================================================== - -2025-06-04 02:05:46,935 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is consistent with a systemic infectious process, specifically a possible disseminated mycobacterial or fungal infection in the setting of immunosuppression. None of the other codes fit; B20 (HIV disease) is often associated with disseminated infections, but without confirmed HIV, it's the closest infectious disease code provided. The other codes refer to osteoporosis, long-term immunosuppressive therapy, diabetes, hypothyroidism, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which directly reflect disseminated infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:48,585 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, which has not been confirmed or suggested in this patient; a code for disseminated mycobacterial or fungal infection would be more appropriate."} -2025-06-04 02:05:48,586 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, which has not been confirmed or suggested in this patient; a code for disseminated mycobacterial or fungal infection would be more appropriate.'} -2025-06-04 02:05:48,589 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:51,035 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, weight loss, night sweats, multiple pulmonary nodules, and hepatosplenic lesions on a background of immunosuppression raises concern for an opportunistic infection such as disseminated mycobacterial or fungal infection. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the clinical context of suspected opportunistic infection in an immunocompromised host, as the specific ICD-10 codes for disseminated mycobacterial or histoplasmosis are not available in the provided list."} -2025-06-04 02:05:51,037 - INFO - -================================================== -2025-06-04 02:05:51,037 - INFO - Stage: match_icd10_code -2025-06-04 02:05:51,038 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:51,039 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, weight loss, night sweats, multiple pulmonary nodules, and hepatosplenic lesions on a background of immunosuppression raises concern for an opportunistic infection such as disseminated mycobacterial or fungal infection. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the clinical context of suspected opportunistic infection in an immunocompromised host, as the specific ICD-10 codes for disseminated mycobacterial or histoplasmosis are not available in the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:51,040 - INFO - ================================================== - -2025-06-04 02:05:51,041 - INFO - -================================================== -2025-06-04 02:05:51,043 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:51,043 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, weight loss, night sweats, multiple pulmonary nodules, and hepatosplenic lesions on a background of immunosuppression raises concern for an opportunistic infection such as disseminated mycobacterial or fungal infection. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the clinical context of suspected opportunistic infection in an immunocompromised host, as the specific ICD-10 codes for disseminated mycobacterial or histoplasmosis are not available in the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:51,044 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, weight loss, night sweats, multiple pulmonary nodules, and hepatosplenic lesions on a background of immunosuppression raises concern for an opportunistic infection such as disseminated mycobacterial or fungal infection. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the clinical context of suspected opportunistic infection in an immunocompromised host, as the specific ICD-10 codes for disseminated mycobacterial or histoplasmosis are not available in the provided list.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:51,045 - INFO - ================================================== - -2025-06-04 02:05:51,046 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, weight loss, night sweats, multiple pulmonary nodules, and hepatosplenic lesions on a background of immunosuppression raises concern for an opportunistic infection such as disseminated mycobacterial or fungal infection. Of the provided codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the clinical context of suspected opportunistic infection in an immunocompromised host, as the specific ICD-10 codes for disseminated mycobacterial or histoplasmosis are not available in the provided list. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:52,785 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, whereas the patient is immunocompromised due to rheumatoid arthritis treatment and there is no evidence or mention of HIV infection in the case."} -2025-06-04 02:05:52,787 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, whereas the patient is immunocompromised due to rheumatoid arthritis treatment and there is no evidence or mention of HIV infection in the case.'} -2025-06-04 02:05:52,791 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:55,423 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 denotes HIV disease resulting in infectious and parasitic diseases, and is generally used for immunodeficiency-related infections. However, among the provided codes, B20 is the only one indicative of severe, opportunistic or disseminated infectious processes, whereas the other codes refer to osteoporosis, drug use, diabetes, thyroid disorders, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which match the described infectious scenario. Thus, B20 is most closely related to the clinical suspicion of immunosuppression-associated disseminated infections."} -2025-06-04 02:05:55,425 - INFO - -================================================== -2025-06-04 02:05:55,426 - INFO - Stage: match_icd10_code -2025-06-04 02:05:55,426 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:55,427 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 denotes HIV disease resulting in infectious and parasitic diseases, and is generally used for immunodeficiency-related infections. However, among the provided codes, B20 is the only one indicative of severe, opportunistic or disseminated infectious processes, whereas the other codes refer to osteoporosis, drug use, diabetes, thyroid disorders, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which match the described infectious scenario. Thus, B20 is most closely related to the clinical suspicion of immunosuppression-associated disseminated infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:55,428 - INFO - ================================================== - -2025-06-04 02:05:55,429 - INFO - -================================================== -2025-06-04 02:05:55,430 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:55,431 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 denotes HIV disease resulting in infectious and parasitic diseases, and is generally used for immunodeficiency-related infections. However, among the provided codes, B20 is the only one indicative of severe, opportunistic or disseminated infectious processes, whereas the other codes refer to osteoporosis, drug use, diabetes, thyroid disorders, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which match the described infectious scenario. Thus, B20 is most closely related to the clinical suspicion of immunosuppression-associated disseminated infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:55,431 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 denotes HIV disease resulting in infectious and parasitic diseases, and is generally used for immunodeficiency-related infections. However, among the provided codes, B20 is the only one indicative of severe, opportunistic or disseminated infectious processes, whereas the other codes refer to osteoporosis, drug use, diabetes, thyroid disorders, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which match the described infectious scenario. Thus, B20 is most closely related to the clinical suspicion of immunosuppression-associated disseminated infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:55,432 - INFO - ================================================== - -2025-06-04 02:05:55,434 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 denotes HIV disease resulting in infectious and parasitic diseases, and is generally used for immunodeficiency-related infections. However, among the provided codes, B20 is the only one indicative of severe, opportunistic or disseminated infectious processes, whereas the other codes refer to osteoporosis, drug use, diabetes, thyroid disorders, hyperlipidemia, hypertension, vitamin D deficiency, and transplant status, none of which match the described infectious scenario. Thus, B20 is most closely related to the clinical suspicion of immunosuppression-associated disseminated infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:57,438 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease with associated infections, but this patient has immunosuppression due to rheumatoid arthritis treatment, not HIV; a more appropriate code for iatrogenic immunosuppression or the specific infection would be needed."} -2025-06-04 02:05:57,439 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease with associated infections, but this patient has immunosuppression due to rheumatoid arthritis treatment, not HIV; a more appropriate code for iatrogenic immunosuppression or the specific infection would be needed.'} -2025-06-04 02:05:57,441 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:05:59,795 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the setting of immunosuppression is highly suggestive of a disseminated infectious process such as disseminated mycobacteria or histoplasmosis. Among the provided ICD-10 codes, B20 ('Human immunodeficiency virus [HIV] disease') is the only infectious disease code commonly associated with opportunistic/disseminated infections, and is the best available option from the list, although the patient is not known to have HIV."} -2025-06-04 02:05:59,796 - INFO - -================================================== -2025-06-04 02:05:59,797 - INFO - Stage: match_icd10_code -2025-06-04 02:05:59,797 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:59,798 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the setting of immunosuppression is highly suggestive of a disseminated infectious process such as disseminated mycobacteria or histoplasmosis. Among the provided ICD-10 codes, B20 ('Human immunodeficiency virus [HIV] disease') is the only infectious disease code commonly associated with opportunistic/disseminated infections, and is the best available option from the list, although the patient is not known to have HIV.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:59,798 - INFO - ================================================== - -2025-06-04 02:05:59,801 - INFO - -================================================== -2025-06-04 02:05:59,802 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:05:59,802 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the setting of immunosuppression is highly suggestive of a disseminated infectious process such as disseminated mycobacteria or histoplasmosis. Among the provided ICD-10 codes, B20 ('Human immunodeficiency virus [HIV] disease') is the only infectious disease code commonly associated with opportunistic/disseminated infections, and is the best available option from the list, although the patient is not known to have HIV.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:59,802 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the setting of immunosuppression is highly suggestive of a disseminated infectious process such as disseminated mycobacteria or histoplasmosis. Among the provided ICD-10 codes, B20 ('Human immunodeficiency virus [HIV] disease') is the only infectious disease code commonly associated with opportunistic/disseminated infections, and is the best available option from the list, although the patient is not known to have HIV.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:05:59,803 - INFO - ================================================== - -2025-06-04 02:05:59,805 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation with prolonged fever, night sweats, weight loss, pulmonary nodules, and hepatosplenic lesions in the setting of immunosuppression is highly suggestive of a disseminated infectious process such as disseminated mycobacteria or histoplasmosis. Among the provided ICD-10 codes, B20 ('Human immunodeficiency virus [HIV] disease') is the only infectious disease code commonly associated with opportunistic/disseminated infections, and is the best available option from the list, although the patient is not known to have HIV. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:01,538 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 indicates HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and there is no diagnosis of HIV; B20 is not appropriate for this case."} -2025-06-04 02:06:01,541 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 indicates HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and there is no diagnosis of HIV; B20 is not appropriate for this case.'} -2025-06-04 02:06:01,546 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:04,213 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's history of immunosuppression and presentation with prolonged fever, weight loss, and organ lesions strongly suggest an opportunistic infectious process compatible with disseminated mycobacterial or fungal infection, conditions captured under B20 (Human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases) in the context of serious immunodeficiency, though the precise alignment is limited by the provided codes; B20 is the most appropriate among those listed for an immunocompromised host with severe systemic infection."} -2025-06-04 02:06:04,215 - INFO - -================================================== -2025-06-04 02:06:04,215 - INFO - Stage: match_icd10_code -2025-06-04 02:06:04,216 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:04,218 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of immunosuppression and presentation with prolonged fever, weight loss, and organ lesions strongly suggest an opportunistic infectious process compatible with disseminated mycobacterial or fungal infection, conditions captured under B20 (Human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases) in the context of serious immunodeficiency, though the precise alignment is limited by the provided codes; B20 is the most appropriate among those listed for an immunocompromised host with severe systemic infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:04,218 - INFO - ================================================== - -2025-06-04 02:06:04,221 - INFO - -================================================== -2025-06-04 02:06:04,222 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:04,223 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of immunosuppression and presentation with prolonged fever, weight loss, and organ lesions strongly suggest an opportunistic infectious process compatible with disseminated mycobacterial or fungal infection, conditions captured under B20 (Human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases) in the context of serious immunodeficiency, though the precise alignment is limited by the provided codes; B20 is the most appropriate among those listed for an immunocompromised host with severe systemic infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:04,223 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's history of immunosuppression and presentation with prolonged fever, weight loss, and organ lesions strongly suggest an opportunistic infectious process compatible with disseminated mycobacterial or fungal infection, conditions captured under B20 (Human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases) in the context of serious immunodeficiency, though the precise alignment is limited by the provided codes; B20 is the most appropriate among those listed for an immunocompromised host with severe systemic infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:04,224 - INFO - ================================================== - -2025-06-04 02:06:04,226 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's history of immunosuppression and presentation with prolonged fever, weight loss, and organ lesions strongly suggest an opportunistic infectious process compatible with disseminated mycobacterial or fungal infection, conditions captured under B20 (Human immunodeficiency virus [HIV] disease resulting in infectious and parasitic diseases) in the context of serious immunodeficiency, though the precise alignment is limited by the provided codes; B20 is the most appropriate among those listed for an immunocompromised host with severe systemic infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:06,248 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease with resulting infectious complications, but the clinical notes do not indicate that the patient has HIV; her immunosuppression is due to immunosuppressive therapy for rheumatoid arthritis, so B20 is not appropriate for this case."} -2025-06-04 02:06:06,250 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease with resulting infectious complications, but the clinical notes do not indicate that the patient has HIV; her immunosuppression is due to immunosuppressive therapy for rheumatoid arthritis, so B20 is not appropriate for this case.'} -2025-06-04 02:06:06,253 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:08,819 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient is immunocompromised (rheumatoid arthritis on methotrexate and prednisone) and presents with prolonged fever, weight loss, night sweats, and disseminated nodular lesions, raising concern for opportunistic infections such as disseminated mycobacterial or fungal disease, both of which are classic AIDS-defining illnesses. Of the options provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match for coding an immunocompromised state with opportunistic infections, even though no HIV diagnosis is present; none of the other codes fit the scenario."} -2025-06-04 02:06:08,821 - INFO - -================================================== -2025-06-04 02:06:08,822 - INFO - Stage: match_icd10_code -2025-06-04 02:06:08,823 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:08,824 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunocompromised (rheumatoid arthritis on methotrexate and prednisone) and presents with prolonged fever, weight loss, night sweats, and disseminated nodular lesions, raising concern for opportunistic infections such as disseminated mycobacterial or fungal disease, both of which are classic AIDS-defining illnesses. Of the options provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match for coding an immunocompromised state with opportunistic infections, even though no HIV diagnosis is present; none of the other codes fit the scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:08,826 - INFO - ================================================== - -2025-06-04 02:06:08,828 - INFO - -================================================== -2025-06-04 02:06:08,829 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:08,830 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunocompromised (rheumatoid arthritis on methotrexate and prednisone) and presents with prolonged fever, weight loss, night sweats, and disseminated nodular lesions, raising concern for opportunistic infections such as disseminated mycobacterial or fungal disease, both of which are classic AIDS-defining illnesses. Of the options provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match for coding an immunocompromised state with opportunistic infections, even though no HIV diagnosis is present; none of the other codes fit the scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:08,830 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunocompromised (rheumatoid arthritis on methotrexate and prednisone) and presents with prolonged fever, weight loss, night sweats, and disseminated nodular lesions, raising concern for opportunistic infections such as disseminated mycobacterial or fungal disease, both of which are classic AIDS-defining illnesses. Of the options provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match for coding an immunocompromised state with opportunistic infections, even though no HIV diagnosis is present; none of the other codes fit the scenario.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:08,831 - INFO - ================================================== - -2025-06-04 02:06:08,832 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient is immunocompromised (rheumatoid arthritis on methotrexate and prednisone) and presents with prolonged fever, weight loss, night sweats, and disseminated nodular lesions, raising concern for opportunistic infections such as disseminated mycobacterial or fungal disease, both of which are classic AIDS-defining illnesses. Of the options provided, B20 (HIV disease resulting in infectious and parasitic diseases) is the closest match for coding an immunocompromised state with opportunistic infections, even though no HIV diagnosis is present; none of the other codes fit the scenario. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:10,416 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 requires a confirmed HIV infection, which is not present in this patient; her immunocompromised state is due to immunosuppressive therapy for rheumatoid arthritis, not HIV."} -2025-06-04 02:06:10,418 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 requires a confirmed HIV infection, which is not present in this patient; her immunocompromised state is due to immunosuppressive therapy for rheumatoid arthritis, not HIV.'} -2025-06-04 02:06:10,421 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:13,299 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario involves a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) who is presenting with systemic symptoms (fever, night sweats, weight loss) and imaging findings (pulmonary nodules, hepatosplenic lesions) highly suggestive of an opportunistic infectious process. Among the provided ICD-10 codes, B20 (Human immunodeficiency virus [HIV] disease) is most directly related to opportunistic infections and their clinical management—even though the patient is not known to be HIV-positive, this code often covers severe opportunistic infections in immunocompromised hosts; the other codes are unrelated to disseminated mycobacterial or fungal infections."} -2025-06-04 02:06:13,303 - INFO - -================================================== -2025-06-04 02:06:13,306 - INFO - Stage: match_icd10_code -2025-06-04 02:06:13,308 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:13,311 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) who is presenting with systemic symptoms (fever, night sweats, weight loss) and imaging findings (pulmonary nodules, hepatosplenic lesions) highly suggestive of an opportunistic infectious process. Among the provided ICD-10 codes, B20 (Human immunodeficiency virus [HIV] disease) is most directly related to opportunistic infections and their clinical management\u2014even though the patient is not known to be HIV-positive, this code often covers severe opportunistic infections in immunocompromised hosts; the other codes are unrelated to disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:13,311 - INFO - ================================================== - -2025-06-04 02:06:13,314 - INFO - -================================================== -2025-06-04 02:06:13,317 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:13,318 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) who is presenting with systemic symptoms (fever, night sweats, weight loss) and imaging findings (pulmonary nodules, hepatosplenic lesions) highly suggestive of an opportunistic infectious process. Among the provided ICD-10 codes, B20 (Human immunodeficiency virus [HIV] disease) is most directly related to opportunistic infections and their clinical management\u2014even though the patient is not known to be HIV-positive, this code often covers severe opportunistic infections in immunocompromised hosts; the other codes are unrelated to disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:13,319 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario involves a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) who is presenting with systemic symptoms (fever, night sweats, weight loss) and imaging findings (pulmonary nodules, hepatosplenic lesions) highly suggestive of an opportunistic infectious process. Among the provided ICD-10 codes, B20 (Human immunodeficiency virus [HIV] disease) is most directly related to opportunistic infections and their clinical management\u2014even though the patient is not known to be HIV-positive, this code often covers severe opportunistic infections in immunocompromised hosts; the other codes are unrelated to disseminated mycobacterial or fungal infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:13,320 - INFO - ================================================== - -2025-06-04 02:06:13,322 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario involves a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) who is presenting with systemic symptoms (fever, night sweats, weight loss) and imaging findings (pulmonary nodules, hepatosplenic lesions) highly suggestive of an opportunistic infectious process. Among the provided ICD-10 codes, B20 (Human immunodeficiency virus [HIV] disease) is most directly related to opportunistic infections and their clinical management—even though the patient is not known to be HIV-positive, this code often covers severe opportunistic infections in immunocompromised hosts; the other codes are unrelated to disseminated mycobacterial or fungal infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:14,825 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically refers to HIV disease, but the patient has immunosuppression from medications, not HIV; therefore, B20 is not appropriate for this case."} -2025-06-04 02:06:14,826 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease, but the patient has immunosuppression from medications, not HIV; therefore, B20 is not appropriate for this case.'} -2025-06-04 02:06:14,828 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:16,874 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections."} -2025-06-04 02:06:16,876 - INFO - -================================================== -2025-06-04 02:06:16,877 - INFO - Stage: match_icd10_code -2025-06-04 02:06:16,877 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:16,878 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:16,878 - INFO - ================================================== - -2025-06-04 02:06:16,880 - INFO - -================================================== -2025-06-04 02:06:16,881 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:16,881 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:16,882 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:16,882 - INFO - ================================================== - -2025-06-04 02:06:16,884 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:18,466 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 is appropriate because it accurately reflects the patient's long-term use of immunosuppressive drugs, which is clinically relevant to her presentation and risk for disseminated infections."} -2025-06-04 02:06:18,466 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 is appropriate because it accurately reflects the patient's long-term use of immunosuppressive drugs, which is clinically relevant to her presentation and risk for disseminated infections."} -2025-06-04 02:06:18,468 - INFO - -================================================== -2025-06-04 02:06:18,469 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:06:18,469 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:18,470 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:18,470 - INFO - ================================================== - -2025-06-04 02:06:18,472 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:06:19,595 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:06:19,598 - INFO - -================================================== -2025-06-04 02:06:19,599 - INFO - Stage: extract_patient_info -2025-06-04 02:06:19,601 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:19,601 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:19,602 - INFO - ================================================== - -2025-06-04 02:06:19,606 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:21,712 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is consistent with an opportunistic infection in an immunosuppressed host, raising suspicion for conditions frequently seen in immunocompromised states such as HIV/AIDS. B20 is the ICD-10 code for 'Human immunodeficiency virus [HIV] disease,' which encompasses opportunistic infections like disseminated mycobacterial and fungal processes. None of the other options represent disseminated infection or relevant immunocompromised states."} -2025-06-04 02:06:21,718 - INFO - -================================================== -2025-06-04 02:06:21,719 - INFO - Stage: match_icd10_code -2025-06-04 02:06:21,721 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is on long-term immunosuppressive therapy (methotrexate and prednisone) for rheumatoid arthritis, which is most directly captured by Z79.4 (Long term (current) use of anti-inflammatory and immunosuppressive drugs) from the provided codes. None of the codes specifically identify disseminated mycobacterial or fungal infection, and Z79.4 provides the relevant clinical context underlying her risk for these infections.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:21,722 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection in an immunosuppressed host, raising suspicion for conditions frequently seen in immunocompromised states such as HIV/AIDS. B20 is the ICD-10 code for 'Human immunodeficiency virus [HIV] disease,' which encompasses opportunistic infections like disseminated mycobacterial and fungal processes. None of the other options represent disseminated infection or relevant immunocompromised states.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:21,724 - INFO - ================================================== - -2025-06-04 02:06:21,728 - INFO - -================================================== -2025-06-04 02:06:21,730 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:21,741 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection in an immunosuppressed host, raising suspicion for conditions frequently seen in immunocompromised states such as HIV/AIDS. B20 is the ICD-10 code for 'Human immunodeficiency virus [HIV] disease,' which encompasses opportunistic infections like disseminated mycobacterial and fungal processes. None of the other options represent disseminated infection or relevant immunocompromised states.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:21,744 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is consistent with an opportunistic infection in an immunosuppressed host, raising suspicion for conditions frequently seen in immunocompromised states such as HIV/AIDS. B20 is the ICD-10 code for 'Human immunodeficiency virus [HIV] disease,' which encompasses opportunistic infections like disseminated mycobacterial and fungal processes. None of the other options represent disseminated infection or relevant immunocompromised states.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:21,745 - INFO - ================================================== - -2025-06-04 02:06:21,747 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is consistent with an opportunistic infection in an immunosuppressed host, raising suspicion for conditions frequently seen in immunocompromised states such as HIV/AIDS. B20 is the ICD-10 code for 'Human immunodeficiency virus [HIV] disease,' which encompasses opportunistic infections like disseminated mycobacterial and fungal processes. None of the other options represent disseminated infection or relevant immunocompromised states. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:23,177 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is for HIV disease, but the patient has immunosuppression from rheumatoid arthritis treatment and no evidence of HIV infection."} -2025-06-04 02:06:23,178 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is for HIV disease, but the patient has immunosuppression from rheumatoid arthritis treatment and no evidence of HIV infection.'} -2025-06-04 02:06:23,180 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:26,628 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical presentation involves a patient who is immunosuppressed (on methotrexate and prednisone) and is being worked up for disseminated infection (mycobacterial or fungal), both of which are opportunistic infections commonly associated with immunodeficiency. Among the available codes, B20 (HIV disease) is the only one referencing immunodeficiency and susceptibility to such infections; although HIV is not specifically mentioned, B20 is the closest match to a clinical scenario of immunodeficiency with opportunistic infections. None of the other codes pertain to infection, immunosuppression, or opportunistic processes."} -2025-06-04 02:06:26,631 - INFO - -================================================== -2025-06-04 02:06:26,632 - INFO - Stage: match_icd10_code -2025-06-04 02:06:26,634 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:26,635 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical presentation involves a patient who is immunosuppressed (on methotrexate and prednisone) and is being worked up for disseminated infection (mycobacterial or fungal), both of which are opportunistic infections commonly associated with immunodeficiency. Among the available codes, B20 (HIV disease) is the only one referencing immunodeficiency and susceptibility to such infections; although HIV is not specifically mentioned, B20 is the closest match to a clinical scenario of immunodeficiency with opportunistic infections. None of the other codes pertain to infection, immunosuppression, or opportunistic processes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:26,636 - INFO - ================================================== - -2025-06-04 02:06:26,640 - INFO - -================================================== -2025-06-04 02:06:26,641 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:26,642 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical presentation involves a patient who is immunosuppressed (on methotrexate and prednisone) and is being worked up for disseminated infection (mycobacterial or fungal), both of which are opportunistic infections commonly associated with immunodeficiency. Among the available codes, B20 (HIV disease) is the only one referencing immunodeficiency and susceptibility to such infections; although HIV is not specifically mentioned, B20 is the closest match to a clinical scenario of immunodeficiency with opportunistic infections. None of the other codes pertain to infection, immunosuppression, or opportunistic processes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:26,643 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical presentation involves a patient who is immunosuppressed (on methotrexate and prednisone) and is being worked up for disseminated infection (mycobacterial or fungal), both of which are opportunistic infections commonly associated with immunodeficiency. Among the available codes, B20 (HIV disease) is the only one referencing immunodeficiency and susceptibility to such infections; although HIV is not specifically mentioned, B20 is the closest match to a clinical scenario of immunodeficiency with opportunistic infections. None of the other codes pertain to infection, immunosuppression, or opportunistic processes.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:26,644 - INFO - ================================================== - -2025-06-04 02:06:26,646 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical presentation involves a patient who is immunosuppressed (on methotrexate and prednisone) and is being worked up for disseminated infection (mycobacterial or fungal), both of which are opportunistic infections commonly associated with immunodeficiency. Among the available codes, B20 (HIV disease) is the only one referencing immunodeficiency and susceptibility to such infections; although HIV is not specifically mentioned, B20 is the closest match to a clinical scenario of immunodeficiency with opportunistic infections. None of the other codes pertain to infection, immunosuppression, or opportunistic processes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:28,234 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically refers to HIV disease, and there is no evidence of HIV infection in the clinical case. The immunosuppression is due to methotrexate and prednisone, not HIV."} -2025-06-04 02:06:28,235 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease, and there is no evidence of HIV infection in the clinical case. The immunosuppression is due to methotrexate and prednisone, not HIV.'} -2025-06-04 02:06:28,239 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:30,790 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis."} -2025-06-04 02:06:30,792 - INFO - -================================================== -2025-06-04 02:06:30,793 - INFO - Stage: match_icd10_code -2025-06-04 02:06:30,793 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:30,794 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:30,795 - INFO - ================================================== - -2025-06-04 02:06:30,797 - INFO - -================================================== -2025-06-04 02:06:30,797 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:06:30,798 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:30,799 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:30,799 - INFO - ================================================== - -2025-06-04 02:06:30,801 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:06:32,443 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 reflects the patient's chronic use of corticosteroids, which is relevant to her immunosuppressed state and susceptibility to disseminated infections as described in the clinical case."} -2025-06-04 02:06:32,444 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 reflects the patient's chronic use of corticosteroids, which is relevant to her immunosuppressed state and susceptibility to disseminated infections as described in the clinical case."} -2025-06-04 02:06:32,448 - INFO - -================================================== -2025-06-04 02:06:32,449 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:06:32,450 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:32,451 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:32,452 - INFO - ================================================== - -2025-06-04 02:06:32,453 - INFO - -================================================== -2025-06-04 02:06:32,454 - INFO - Final Result: -2025-06-04 02:06:32,454 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "This code represents 'Long term (current) use of corticosteroids,' which is relevant because the patient's immunosuppression from methotrexate and low-dose prednisone is a key contributor to her susceptibility to disseminated infection. None of the other codes specifically address disseminated mycobacterial or fungal infection; Z79.4 best captures the clinical context of immunosuppression driving the differential diagnosis.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:06:32,455 - INFO - ================================================== - -2025-06-04 02:13:27,562 - INFO - -================================================== -2025-06-04 02:13:27,563 - INFO - Starting new clinical case processing -2025-06-04 02:13:27,564 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 02:13:27,564 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 02:13:27,565 - INFO - ================================================== - -2025-06-04 02:13:27,571 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:13:28,689 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:13:28,694 - INFO - -================================================== -2025-06-04 02:13:28,695 - INFO - Stage: extract_patient_info -2025-06-04 02:13:28,695 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:28,696 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:28,696 - INFO - ================================================== - -2025-06-04 02:13:28,698 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:31,675 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's immunocompromised state due to methotrexate and prednisone, along with prolonged fevers, weight loss, and evidence of disseminated infection (multiple organ involvement), raise suspicion for serious opportunistic infections, which are frequently seen in patients with HIV/AIDS (ICD-10 B20). While her HIV status is not explicitly stated, B20 is the only infectious disease code among the choices and best fits the clinical context of an immunocompromised patient with possible disseminated infection."} -2025-06-04 02:13:31,677 - INFO - -================================================== -2025-06-04 02:13:31,678 - INFO - Stage: match_icd10_code -2025-06-04 02:13:31,679 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:31,680 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunocompromised state due to methotrexate and prednisone, along with prolonged fevers, weight loss, and evidence of disseminated infection (multiple organ involvement), raise suspicion for serious opportunistic infections, which are frequently seen in patients with HIV/AIDS (ICD-10 B20). While her HIV status is not explicitly stated, B20 is the only infectious disease code among the choices and best fits the clinical context of an immunocompromised patient with possible disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:31,681 - INFO - ================================================== - -2025-06-04 02:13:31,685 - INFO - -================================================== -2025-06-04 02:13:31,686 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:31,686 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunocompromised state due to methotrexate and prednisone, along with prolonged fevers, weight loss, and evidence of disseminated infection (multiple organ involvement), raise suspicion for serious opportunistic infections, which are frequently seen in patients with HIV/AIDS (ICD-10 B20). While her HIV status is not explicitly stated, B20 is the only infectious disease code among the choices and best fits the clinical context of an immunocompromised patient with possible disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:31,687 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunocompromised state due to methotrexate and prednisone, along with prolonged fevers, weight loss, and evidence of disseminated infection (multiple organ involvement), raise suspicion for serious opportunistic infections, which are frequently seen in patients with HIV/AIDS (ICD-10 B20). While her HIV status is not explicitly stated, B20 is the only infectious disease code among the choices and best fits the clinical context of an immunocompromised patient with possible disseminated infection.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:31,688 - INFO - ================================================== - -2025-06-04 02:13:31,691 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's immunocompromised state due to methotrexate and prednisone, along with prolonged fevers, weight loss, and evidence of disseminated infection (multiple organ involvement), raise suspicion for serious opportunistic infections, which are frequently seen in patients with HIV/AIDS (ICD-10 B20). While her HIV status is not explicitly stated, B20 is the only infectious disease code among the choices and best fits the clinical context of an immunocompromised patient with possible disseminated infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:33,216 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but there is no evidence that the patient has HIV; her immunosuppression is due to medications, not HIV infection."} -2025-06-04 02:13:33,217 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but there is no evidence that the patient has HIV; her immunosuppression is due to medications, not HIV infection.'} -2025-06-04 02:13:33,220 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:36,381 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's persistent fever, weight loss, night sweats, and CT findings of pulmonary nodules and hepatosplenic lesions while immunosuppressed (methotrexate and prednisone) are suggestive of a disseminated infectious process, such as non-tuberculous mycobacteria or histoplasmosis. Of the codes provided, B20 (HIV disease) is the only infectious etiology listed; none directly describe disseminated mycobacterial or fungal infections. Given B20 is commonly used to code for severe immunocompromised states with opportunistic infections, it is the closest match."} -2025-06-04 02:13:36,385 - INFO - -================================================== -2025-06-04 02:13:36,386 - INFO - Stage: match_icd10_code -2025-06-04 02:13:36,386 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:36,386 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, weight loss, night sweats, and CT findings of pulmonary nodules and hepatosplenic lesions while immunosuppressed (methotrexate and prednisone) are suggestive of a disseminated infectious process, such as non-tuberculous mycobacteria or histoplasmosis. Of the codes provided, B20 (HIV disease) is the only infectious etiology listed; none directly describe disseminated mycobacterial or fungal infections. Given B20 is commonly used to code for severe immunocompromised states with opportunistic infections, it is the closest match.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:36,387 - INFO - ================================================== - -2025-06-04 02:13:36,390 - INFO - -================================================== -2025-06-04 02:13:36,390 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:36,391 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, weight loss, night sweats, and CT findings of pulmonary nodules and hepatosplenic lesions while immunosuppressed (methotrexate and prednisone) are suggestive of a disseminated infectious process, such as non-tuberculous mycobacteria or histoplasmosis. Of the codes provided, B20 (HIV disease) is the only infectious etiology listed; none directly describe disseminated mycobacterial or fungal infections. Given B20 is commonly used to code for severe immunocompromised states with opportunistic infections, it is the closest match.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:36,392 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fever, weight loss, night sweats, and CT findings of pulmonary nodules and hepatosplenic lesions while immunosuppressed (methotrexate and prednisone) are suggestive of a disseminated infectious process, such as non-tuberculous mycobacteria or histoplasmosis. Of the codes provided, B20 (HIV disease) is the only infectious etiology listed; none directly describe disseminated mycobacterial or fungal infections. Given B20 is commonly used to code for severe immunocompromised states with opportunistic infections, it is the closest match.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:36,392 - INFO - ================================================== - -2025-06-04 02:13:36,394 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's persistent fever, weight loss, night sweats, and CT findings of pulmonary nodules and hepatosplenic lesions while immunosuppressed (methotrexate and prednisone) are suggestive of a disseminated infectious process, such as non-tuberculous mycobacteria or histoplasmosis. Of the codes provided, B20 (HIV disease) is the only infectious etiology listed; none directly describe disseminated mycobacterial or fungal infections. Given B20 is commonly used to code for severe immunocompromised states with opportunistic infections, it is the closest match. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:37,928 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically indicates HIV disease, but the patient is immunosuppressed due to medications for rheumatoid arthritis and there is no evidence of HIV; the code does not match the described scenario."} -2025-06-04 02:13:37,929 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically indicates HIV disease, but the patient is immunosuppressed due to medications for rheumatoid arthritis and there is no evidence of HIV; the code does not match the described scenario.'} -2025-06-04 02:13:37,932 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:40,855 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and immunosuppression due to rheumatoid arthritis treatment raises suspicion for underlying opportunistic infections. 'B20' is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, which includes opportunistic infections such as disseminated mycobacteria or histoplasmosis. While the patient's HIV status is not stated, B20 is the closest available code among the listed options to represent the workup for severe opportunistic infections in an immunocompromised host."} -2025-06-04 02:13:40,862 - INFO - -================================================== -2025-06-04 02:13:40,863 - INFO - Stage: match_icd10_code -2025-06-04 02:13:40,863 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:40,864 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and immunosuppression due to rheumatoid arthritis treatment raises suspicion for underlying opportunistic infections. 'B20' is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, which includes opportunistic infections such as disseminated mycobacteria or histoplasmosis. While the patient's HIV status is not stated, B20 is the closest available code among the listed options to represent the workup for severe opportunistic infections in an immunocompromised host.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:40,865 - INFO - ================================================== - -2025-06-04 02:13:40,868 - INFO - -================================================== -2025-06-04 02:13:40,869 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:40,870 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and immunosuppression due to rheumatoid arthritis treatment raises suspicion for underlying opportunistic infections. 'B20' is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, which includes opportunistic infections such as disseminated mycobacteria or histoplasmosis. While the patient's HIV status is not stated, B20 is the closest available code among the listed options to represent the workup for severe opportunistic infections in an immunocompromised host.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:40,870 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and immunosuppression due to rheumatoid arthritis treatment raises suspicion for underlying opportunistic infections. 'B20' is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, which includes opportunistic infections such as disseminated mycobacteria or histoplasmosis. While the patient's HIV status is not stated, B20 is the closest available code among the listed options to represent the workup for severe opportunistic infections in an immunocompromised host.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:40,871 - INFO - ================================================== - -2025-06-04 02:13:40,872 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, night sweats, weight loss, and immunosuppression due to rheumatoid arthritis treatment raises suspicion for underlying opportunistic infections. 'B20' is the ICD-10 code for HIV disease resulting in infectious and parasitic diseases, which includes opportunistic infections such as disseminated mycobacteria or histoplasmosis. While the patient's HIV status is not stated, B20 is the closest available code among the listed options to represent the workup for severe opportunistic infections in an immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:42,481 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease with resulting infectious or parasitic diseases; the patient's immunosuppression is due to rheumatoid arthritis therapy, not HIV, so B20 is inappropriate for this case."} -2025-06-04 02:13:42,483 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 is specific for HIV disease with resulting infectious or parasitic diseases; the patient's immunosuppression is due to rheumatoid arthritis therapy, not HIV, so B20 is inappropriate for this case."} -2025-06-04 02:13:42,486 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:45,231 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes an immunosuppressed patient (rheumatoid arthritis on methotrexate and prednisone) with persistent fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions, raising concern for disseminated opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis. Of the available codes, B20 (HIV disease) is closest to capturing the context of an immunocompromised state predisposing to severe infections, as none of the others relates to disseminated infection or immunosuppression. Although this patient is not described as HIV-positive, B20 is the most relevant among the options provided."} -2025-06-04 02:13:45,233 - INFO - -================================================== -2025-06-04 02:13:45,234 - INFO - Stage: match_icd10_code -2025-06-04 02:13:45,234 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:45,235 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunosuppressed patient (rheumatoid arthritis on methotrexate and prednisone) with persistent fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions, raising concern for disseminated opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis. Of the available codes, B20 (HIV disease) is closest to capturing the context of an immunocompromised state predisposing to severe infections, as none of the others relates to disseminated infection or immunosuppression. Although this patient is not described as HIV-positive, B20 is the most relevant among the options provided.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:45,235 - INFO - ================================================== - -2025-06-04 02:13:45,238 - INFO - -================================================== -2025-06-04 02:13:45,239 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:45,239 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunosuppressed patient (rheumatoid arthritis on methotrexate and prednisone) with persistent fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions, raising concern for disseminated opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis. Of the available codes, B20 (HIV disease) is closest to capturing the context of an immunocompromised state predisposing to severe infections, as none of the others relates to disseminated infection or immunosuppression. Although this patient is not described as HIV-positive, B20 is the most relevant among the options provided.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:45,240 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes an immunosuppressed patient (rheumatoid arthritis on methotrexate and prednisone) with persistent fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions, raising concern for disseminated opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis. Of the available codes, B20 (HIV disease) is closest to capturing the context of an immunocompromised state predisposing to severe infections, as none of the others relates to disseminated infection or immunosuppression. Although this patient is not described as HIV-positive, B20 is the most relevant among the options provided.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:45,240 - INFO - ================================================== - -2025-06-04 02:13:45,242 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes an immunosuppressed patient (rheumatoid arthritis on methotrexate and prednisone) with persistent fever, weight loss, night sweats, pulmonary nodules, and hepatosplenic lesions, raising concern for disseminated opportunistic infections such as non-tuberculous mycobacteria or histoplasmosis. Of the available codes, B20 (HIV disease) is closest to capturing the context of an immunocompromised state predisposing to severe infections, as none of the others relates to disseminated infection or immunosuppression. Although this patient is not described as HIV-positive, B20 is the most relevant among the options provided. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:46,864 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV. None of the provided codes accurately capture the context of disseminated infection or non-HIV immunosuppression."} -2025-06-04 02:13:46,865 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV. None of the provided codes accurately capture the context of disseminated infection or non-HIV immunosuppression.'} -2025-06-04 02:13:46,867 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:48,716 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's symptoms and immunosuppressed status raise concern for opportunistic infections such as disseminated mycobacterial or fungal disease, which are characteristic of HIV-related immunodeficiency and classified under B20 (Human immunodeficiency virus [HIV] disease). None of the other listed codes match the described infectious process."} -2025-06-04 02:13:48,718 - INFO - -================================================== -2025-06-04 02:13:48,718 - INFO - Stage: match_icd10_code -2025-06-04 02:13:48,719 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:48,720 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms and immunosuppressed status raise concern for opportunistic infections such as disseminated mycobacterial or fungal disease, which are characteristic of HIV-related immunodeficiency and classified under B20 (Human immunodeficiency virus [HIV] disease). None of the other listed codes match the described infectious process.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:48,721 - INFO - ================================================== - -2025-06-04 02:13:48,723 - INFO - -================================================== -2025-06-04 02:13:48,724 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:48,724 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms and immunosuppressed status raise concern for opportunistic infections such as disseminated mycobacterial or fungal disease, which are characteristic of HIV-related immunodeficiency and classified under B20 (Human immunodeficiency virus [HIV] disease). None of the other listed codes match the described infectious process.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:48,725 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's symptoms and immunosuppressed status raise concern for opportunistic infections such as disseminated mycobacterial or fungal disease, which are characteristic of HIV-related immunodeficiency and classified under B20 (Human immunodeficiency virus [HIV] disease). None of the other listed codes match the described infectious process.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:48,725 - INFO - ================================================== - -2025-06-04 02:13:48,727 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's symptoms and immunosuppressed status raise concern for opportunistic infections such as disseminated mycobacterial or fungal disease, which are characteristic of HIV-related immunodeficiency and classified under B20 (Human immunodeficiency virus [HIV] disease). None of the other listed codes match the described infectious process. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:50,219 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not HIV. Therefore, B20 is not appropriate for this clinical case."} -2025-06-04 02:13:50,219 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to methotrexate and prednisone for rheumatoid arthritis, not HIV. Therefore, B20 is not appropriate for this clinical case.'} -2025-06-04 02:13:50,220 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:52,445 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options."} -2025-06-04 02:13:52,447 - INFO - -================================================== -2025-06-04 02:13:52,447 - INFO - Stage: match_icd10_code -2025-06-04 02:13:52,448 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:52,449 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:52,450 - INFO - ================================================== - -2025-06-04 02:13:52,452 - INFO - -================================================== -2025-06-04 02:13:52,452 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:52,453 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:52,453 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:52,454 - INFO - ================================================== - -2025-06-04 02:13:52,455 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:54,023 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "Z79.4 is appropriate because the patient's immunosuppressed state from long-term methotrexate and prednisone use is central to her current clinical presentation and diagnostic considerations."} -2025-06-04 02:13:54,024 - INFO - Validation result: {'is_valid': True, 'reason': "Z79.4 is appropriate because the patient's immunosuppressed state from long-term methotrexate and prednisone use is central to her current clinical presentation and diagnostic considerations."} -2025-06-04 02:13:54,025 - INFO - -================================================== -2025-06-04 02:13:54,026 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:13:54,027 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:54,027 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:54,028 - INFO - ================================================== - -2025-06-04 02:13:54,031 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:13:55,285 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:13:55,287 - INFO - -================================================== -2025-06-04 02:13:55,288 - INFO - Stage: extract_patient_info -2025-06-04 02:13:55,289 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:55,290 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:55,291 - INFO - ================================================== - -2025-06-04 02:13:55,294 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:57,824 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging showing disseminated lesions is consistent with a systemic infectious process. While the specific pathogens (non-tuberculous mycobacteria or histoplasmosis) have not been confirmed, she is immunosuppressed, which raises suspicion for an opportunistic infection potentially meeting CDC criteria for an AIDS-defining illness coded as B20 (HIV disease resulting in infectious and parasitic diseases). Although HIV is not explicitly mentioned, B20 is the closest code for a serious opportunistic infection in an immunosuppressed host among the available options."} -2025-06-04 02:13:57,828 - INFO - -================================================== -2025-06-04 02:13:57,829 - INFO - Stage: match_icd10_code -2025-06-04 02:13:57,830 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 represents long term (current) use of immunosuppressive drugs, which is the most relevant ICD-10 code from the provided list for this patient on methotrexate and prednisone. The main clinical concern is infection due to immunosuppression, but there are no specific codes for disseminated mycobacterial or fungal infection among the options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:57,831 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging showing disseminated lesions is consistent with a systemic infectious process. While the specific pathogens (non-tuberculous mycobacteria or histoplasmosis) have not been confirmed, she is immunosuppressed, which raises suspicion for an opportunistic infection potentially meeting CDC criteria for an AIDS-defining illness coded as B20 (HIV disease resulting in infectious and parasitic diseases). Although HIV is not explicitly mentioned, B20 is the closest code for a serious opportunistic infection in an immunosuppressed host among the available options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:57,831 - INFO - ================================================== - -2025-06-04 02:13:57,836 - INFO - -================================================== -2025-06-04 02:13:57,836 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:13:57,837 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging showing disseminated lesions is consistent with a systemic infectious process. While the specific pathogens (non-tuberculous mycobacteria or histoplasmosis) have not been confirmed, she is immunosuppressed, which raises suspicion for an opportunistic infection potentially meeting CDC criteria for an AIDS-defining illness coded as B20 (HIV disease resulting in infectious and parasitic diseases). Although HIV is not explicitly mentioned, B20 is the closest code for a serious opportunistic infection in an immunosuppressed host among the available options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:57,838 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of persistent fever, night sweats, weight loss, and imaging showing disseminated lesions is consistent with a systemic infectious process. While the specific pathogens (non-tuberculous mycobacteria or histoplasmosis) have not been confirmed, she is immunosuppressed, which raises suspicion for an opportunistic infection potentially meeting CDC criteria for an AIDS-defining illness coded as B20 (HIV disease resulting in infectious and parasitic diseases). Although HIV is not explicitly mentioned, B20 is the closest code for a serious opportunistic infection in an immunosuppressed host among the available options.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:13:57,838 - INFO - ================================================== - -2025-06-04 02:13:57,840 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of persistent fever, night sweats, weight loss, and imaging showing disseminated lesions is consistent with a systemic infectious process. While the specific pathogens (non-tuberculous mycobacteria or histoplasmosis) have not been confirmed, she is immunosuppressed, which raises suspicion for an opportunistic infection potentially meeting CDC criteria for an AIDS-defining illness coded as B20 (HIV disease resulting in infectious and parasitic diseases). Although HIV is not explicitly mentioned, B20 is the closest code for a serious opportunistic infection in an immunosuppressed host among the available options. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:13:59,681 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 requires a confirmed diagnosis of HIV/AIDS, which is not documented in the case; the patient's immunosuppression is medication-induced, not due to HIV."} -2025-06-04 02:13:59,682 - INFO - Validation result: {'is_valid': False, 'reason': "The code B20 requires a confirmed diagnosis of HIV/AIDS, which is not documented in the case; the patient's immunosuppression is medication-induced, not due to HIV."} -2025-06-04 02:13:59,685 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:14:02,584 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The clinical scenario describes a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) and symptoms/signs compatible with a severe, opportunistic infection (fevers, night sweats, weight loss, hepatosplenic and pulmonary involvement). Among the provided codes, B20 represents 'Human immunodeficiency virus [HIV] disease,' which is the ICD-10 category that best fits disseminated opportunistic infections. While the patient is not known to have HIV, none of the other codes are applicable to disseminated mycobacterial or fungal diseases, so B20 is the closest match given the severe immunosuppression and clinical suspicion."} -2025-06-04 02:14:02,586 - INFO - -================================================== -2025-06-04 02:14:02,587 - INFO - Stage: match_icd10_code -2025-06-04 02:14:02,595 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:02,624 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) and symptoms/signs compatible with a severe, opportunistic infection (fevers, night sweats, weight loss, hepatosplenic and pulmonary involvement). Among the provided codes, B20 represents 'Human immunodeficiency virus [HIV] disease,' which is the ICD-10 category that best fits disseminated opportunistic infections. While the patient is not known to have HIV, none of the other codes are applicable to disseminated mycobacterial or fungal diseases, so B20 is the closest match given the severe immunosuppression and clinical suspicion.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:02,648 - INFO - ================================================== - -2025-06-04 02:14:02,652 - INFO - -================================================== -2025-06-04 02:14:02,655 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:14:02,656 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) and symptoms/signs compatible with a severe, opportunistic infection (fevers, night sweats, weight loss, hepatosplenic and pulmonary involvement). Among the provided codes, B20 represents 'Human immunodeficiency virus [HIV] disease,' which is the ICD-10 category that best fits disseminated opportunistic infections. While the patient is not known to have HIV, none of the other codes are applicable to disseminated mycobacterial or fungal diseases, so B20 is the closest match given the severe immunosuppression and clinical suspicion.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:02,682 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The clinical scenario describes a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) and symptoms/signs compatible with a severe, opportunistic infection (fevers, night sweats, weight loss, hepatosplenic and pulmonary involvement). Among the provided codes, B20 represents 'Human immunodeficiency virus [HIV] disease,' which is the ICD-10 category that best fits disseminated opportunistic infections. While the patient is not known to have HIV, none of the other codes are applicable to disseminated mycobacterial or fungal diseases, so B20 is the closest match given the severe immunosuppression and clinical suspicion.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:02,686 - INFO - ================================================== - -2025-06-04 02:14:02,692 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The clinical scenario describes a patient with immunosuppression (methotrexate and prednisone for rheumatoid arthritis) and symptoms/signs compatible with a severe, opportunistic infection (fevers, night sweats, weight loss, hepatosplenic and pulmonary involvement). Among the provided codes, B20 represents 'Human immunodeficiency virus [HIV] disease,' which is the ICD-10 category that best fits disseminated opportunistic infections. While the patient is not known to have HIV, none of the other codes are applicable to disseminated mycobacterial or fungal diseases, so B20 is the closest match given the severe immunosuppression and clinical suspicion. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:14:04,339 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient does not have HIV; her immunosuppression is medication-induced. A more appropriate code for the underlying immunosuppression or infection should be used."} -2025-06-04 02:14:04,347 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but the patient does not have HIV; her immunosuppression is medication-induced. A more appropriate code for the underlying immunosuppression or infection should be used.'} -2025-06-04 02:14:04,396 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:14:06,726 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications."} -2025-06-04 02:14:06,730 - INFO - -================================================== -2025-06-04 02:14:06,730 - INFO - Stage: match_icd10_code -2025-06-04 02:14:06,731 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:06,731 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:06,732 - INFO - ================================================== - -2025-06-04 02:14:06,735 - INFO - -================================================== -2025-06-04 02:14:06,736 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:14:06,736 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:06,737 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:06,737 - INFO - ================================================== - -2025-06-04 02:14:06,739 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:14:08,375 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive drugs, which is central to her immunosuppressed state and increased risk for disseminated mycobacterial or fungal infection."} -2025-06-04 02:14:08,376 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive drugs, which is central to her immunosuppressed state and increased risk for disseminated mycobacterial or fungal infection."} -2025-06-04 02:14:08,378 - INFO - -================================================== -2025-06-04 02:14:08,378 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:14:08,381 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:08,382 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:08,383 - INFO - ================================================== - -2025-06-04 02:14:08,385 - INFO - -================================================== -2025-06-04 02:14:08,385 - INFO - Final Result: -2025-06-04 02:14:08,386 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The key clinical issue is immunosuppression due to long-term use of immunosuppressive drugs (methotrexate and prednisone), which predisposes the patient to infections like disseminated mycobacterial or fungal diseases. Z79.4 represents 'Long term (current) use of immunosuppressive drugs,' most directly relevant among the provided codes. None of the other codes represent infectious or granulomatous diseases or their complications.", - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:14:08,387 - INFO - ================================================== - -2025-06-04 02:15:03,289 - INFO - -================================================== -2025-06-04 02:15:03,290 - INFO - Starting new clinical case processing -2025-06-04 02:15:03,291 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 02:15:03,293 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 02:15:03,293 - INFO - ================================================== - -2025-06-04 02:15:03,300 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:15:04,473 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:15:04,480 - INFO - -================================================== -2025-06-04 02:15:04,481 - INFO - Stage: extract_patient_info -2025-06-04 02:15:04,482 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:15:04,483 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:15:04,484 - INFO - ================================================== - -2025-06-04 02:15:04,488 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:06,844 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "B20 is the ICD-10 code for HIV disease, but in this scenario, it is the only infectious disease code available and best approximates a systemic opportunistic infection context in an immunosuppressed patient, as none of the other codes correspond to disseminated mycobacterial or fungal infections. Other codes are related to osteoporosis, diabetes, hypothyroidism, hyperlipidemia, essential hypertension, vitamin D deficiency, and organ transplant, which do not fit the clinical picture."} -2025-06-04 02:15:06,847 - INFO - -================================================== -2025-06-04 02:15:06,847 - INFO - Stage: match_icd10_code -2025-06-04 02:15:06,848 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:06,849 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, but in this scenario, it is the only infectious disease code available and best approximates a systemic opportunistic infection context in an immunosuppressed patient, as none of the other codes correspond to disseminated mycobacterial or fungal infections. Other codes are related to osteoporosis, diabetes, hypothyroidism, hyperlipidemia, essential hypertension, vitamin D deficiency, and organ transplant, which do not fit the clinical picture.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:06,850 - INFO - ================================================== - -2025-06-04 02:15:06,853 - INFO - -================================================== -2025-06-04 02:15:06,854 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:15:06,855 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, but in this scenario, it is the only infectious disease code available and best approximates a systemic opportunistic infection context in an immunosuppressed patient, as none of the other codes correspond to disseminated mycobacterial or fungal infections. Other codes are related to osteoporosis, diabetes, hypothyroidism, hyperlipidemia, essential hypertension, vitamin D deficiency, and organ transplant, which do not fit the clinical picture.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:06,855 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "B20 is the ICD-10 code for HIV disease, but in this scenario, it is the only infectious disease code available and best approximates a systemic opportunistic infection context in an immunosuppressed patient, as none of the other codes correspond to disseminated mycobacterial or fungal infections. Other codes are related to osteoporosis, diabetes, hypothyroidism, hyperlipidemia, essential hypertension, vitamin D deficiency, and organ transplant, which do not fit the clinical picture.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:06,856 - INFO - ================================================== - -2025-06-04 02:15:06,857 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: B20 is the ICD-10 code for HIV disease, but in this scenario, it is the only infectious disease code available and best approximates a systemic opportunistic infection context in an immunosuppressed patient, as none of the other codes correspond to disseminated mycobacterial or fungal infections. Other codes are related to osteoporosis, diabetes, hypothyroidism, hyperlipidemia, essential hypertension, vitamin D deficiency, and organ transplant, which do not fit the clinical picture. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:08,505 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "B20 is specific for HIV disease, which is not diagnosed or suggested in this immunosuppressed patient; a code for disseminated mycobacterial or fungal infection would be more appropriate, but unavailable among the choices."} -2025-06-04 02:15:08,506 - INFO - Validation result: {'is_valid': False, 'reason': 'B20 is specific for HIV disease, which is not diagnosed or suggested in this immunosuppressed patient; a code for disseminated mycobacterial or fungal infection would be more appropriate, but unavailable among the choices.'} -2025-06-04 02:15:08,508 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:10,830 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's prolonged fever, night sweats, weight loss, imaging findings, and immunosuppressed state due to methotrexate and prednisone are most consistent with a serious systemic infectious process, for which B20 (HIV disease resulting in infectious and parasitic diseases) is the ICD-10 code best capturing disseminated opportunistic infections. None of the other provided codes specifically reflect disseminated mycobacterial or fungal infection in an immunocompromised host."} -2025-06-04 02:15:10,832 - INFO - -================================================== -2025-06-04 02:15:10,833 - INFO - Stage: match_icd10_code -2025-06-04 02:15:10,833 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:15:10,834 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's prolonged fever, night sweats, weight loss, imaging findings, and immunosuppressed state due to methotrexate and prednisone are most consistent with a serious systemic infectious process, for which B20 (HIV disease resulting in infectious and parasitic diseases) is the ICD-10 code best capturing disseminated opportunistic infections. None of the other provided codes specifically reflect disseminated mycobacterial or fungal infection in an immunocompromised host.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:15:10,834 - INFO - ================================================== - -2025-06-04 02:15:10,837 - INFO - -================================================== -2025-06-04 02:15:10,838 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:15:10,839 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's prolonged fever, night sweats, weight loss, imaging findings, and immunosuppressed state due to methotrexate and prednisone are most consistent with a serious systemic infectious process, for which B20 (HIV disease resulting in infectious and parasitic diseases) is the ICD-10 code best capturing disseminated opportunistic infections. None of the other provided codes specifically reflect disseminated mycobacterial or fungal infection in an immunocompromised host.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:15:10,839 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's prolonged fever, night sweats, weight loss, imaging findings, and immunosuppressed state due to methotrexate and prednisone are most consistent with a serious systemic infectious process, for which B20 (HIV disease resulting in infectious and parasitic diseases) is the ICD-10 code best capturing disseminated opportunistic infections. None of the other provided codes specifically reflect disseminated mycobacterial or fungal infection in an immunocompromised host.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:15:10,840 - INFO - ================================================== - -2025-06-04 02:15:10,842 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's prolonged fever, night sweats, weight loss, imaging findings, and immunosuppressed state due to methotrexate and prednisone are most consistent with a serious systemic infectious process, for which B20 (HIV disease resulting in infectious and parasitic diseases) is the ICD-10 code best capturing disseminated opportunistic infections. None of the other provided codes specifically reflect disseminated mycobacterial or fungal infection in an immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:12,611 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically denotes HIV disease with resulting infections, but this patient has immunosuppression from rheumatoid arthritis treatment, not HIV; a code for disseminated mycobacterial or fungal infection would be more appropriate."} -2025-06-04 02:15:12,612 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically denotes HIV disease with resulting infections, but this patient has immunosuppression from rheumatoid arthritis treatment, not HIV; a code for disseminated mycobacterial or fungal infection would be more appropriate.'} -2025-06-04 02:15:12,614 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:14,972 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, and multi-organ nodular lesions in an immunosuppressed host raises concern for disseminated opportunistic infections, which are often associated with immunodeficiency. Of the available codes, B20 (HIV disease) is most closely linked to such presentations and provides the best match for an immunocompromised state with risk for opportunistic infections like mycobacterial or fungal processes."} -2025-06-04 02:15:14,975 - INFO - -================================================== -2025-06-04 02:15:14,976 - INFO - Stage: match_icd10_code -2025-06-04 02:15:14,977 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:14,977 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, and multi-organ nodular lesions in an immunosuppressed host raises concern for disseminated opportunistic infections, which are often associated with immunodeficiency. Of the available codes, B20 (HIV disease) is most closely linked to such presentations and provides the best match for an immunocompromised state with risk for opportunistic infections like mycobacterial or fungal processes.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:14,978 - INFO - ================================================== - -2025-06-04 02:15:14,982 - INFO - -================================================== -2025-06-04 02:15:14,983 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:15:14,984 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, and multi-organ nodular lesions in an immunosuppressed host raises concern for disseminated opportunistic infections, which are often associated with immunodeficiency. Of the available codes, B20 (HIV disease) is most closely linked to such presentations and provides the best match for an immunocompromised state with risk for opportunistic infections like mycobacterial or fungal processes.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:14,984 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's clinical syndrome of persistent fever, night sweats, weight loss, and multi-organ nodular lesions in an immunosuppressed host raises concern for disseminated opportunistic infections, which are often associated with immunodeficiency. Of the available codes, B20 (HIV disease) is most closely linked to such presentations and provides the best match for an immunocompromised state with risk for opportunistic infections like mycobacterial or fungal processes.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:14,985 - INFO - ================================================== - -2025-06-04 02:15:14,987 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's clinical syndrome of persistent fever, night sweats, weight loss, and multi-organ nodular lesions in an immunosuppressed host raises concern for disseminated opportunistic infections, which are often associated with immunodeficiency. Of the available codes, B20 (HIV disease) is most closely linked to such presentations and provides the best match for an immunocompromised state with risk for opportunistic infections like mycobacterial or fungal processes. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:16,488 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers to HIV disease, but this patient is immunosuppressed from rheumatoid arthritis treatment with methotrexate and prednisone, not from HIV infection."} -2025-06-04 02:15:16,488 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers to HIV disease, but this patient is immunosuppressed from rheumatoid arthritis treatment with methotrexate and prednisone, not from HIV infection.'} -2025-06-04 02:15:16,491 - INFO - -================================================== -2025-06-04 02:15:16,492 - INFO - Stage: stopper_node -2025-06-04 02:15:16,493 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:15:16,493 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:15:16,494 - INFO - ================================================== - -2025-06-04 02:15:16,496 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:15:17,714 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:15:17,715 - INFO - -================================================== -2025-06-04 02:15:17,716 - INFO - Stage: extract_patient_info -2025-06-04 02:15:17,718 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 refers to HIV disease, but this patient is immunosuppressed from rheumatoid arthritis treatment with methotrexate and prednisone, not from HIV infection.", - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:17,718 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 refers to HIV disease, but this patient is immunosuppressed from rheumatoid arthritis treatment with methotrexate and prednisone, not from HIV infection.", - "retry_count": 3, - "stopped": false -} -2025-06-04 02:15:17,719 - INFO - ================================================== - -2025-06-04 02:15:17,725 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:20,829 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections."} -2025-06-04 02:15:20,832 - INFO - -================================================== -2025-06-04 02:15:20,834 - INFO - Stage: match_icd10_code -2025-06-04 02:15:20,837 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:20,838 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:20,841 - INFO - ================================================== - -2025-06-04 02:15:20,844 - INFO - -================================================== -2025-06-04 02:15:20,845 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:15:20,851 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:20,857 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:20,860 - INFO - ================================================== - -2025-06-04 02:15:20,872 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:22,385 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "Z79.4 is appropriate because the patient is on long-term immunosuppressant therapy (methotrexate and prednisone), predisposing her to opportunistic infections, which is central to the clinical scenario."} -2025-06-04 02:15:22,386 - INFO - Validation result: {'is_valid': True, 'reason': 'Z79.4 is appropriate because the patient is on long-term immunosuppressant therapy (methotrexate and prednisone), predisposing her to opportunistic infections, which is central to the clinical scenario.'} -2025-06-04 02:15:22,388 - INFO - -================================================== -2025-06-04 02:15:22,389 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:15:22,390 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:22,391 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:22,392 - INFO - ================================================== - -2025-06-04 02:15:22,394 - INFO - -================================================== -2025-06-04 02:15:22,395 - INFO - Final Result: -2025-06-04 02:15:22,395 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "Z79.4 codes for long-term (current) use of drugs such as immunosuppressants, which applies here because the patient is on methotrexate and prednisone, predisposing her to opportunistic infections like disseminated mycobacterial or atypical fungal infections.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:15:22,396 - INFO - ================================================== - -2025-06-04 02:15:52,683 - INFO - -================================================== -2025-06-04 02:15:52,685 - INFO - Starting new clinical case processing -2025-06-04 02:15:52,686 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 02:15:52,687 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 02:15:52,688 - INFO - ================================================== - -2025-06-04 02:15:52,693 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:15:54,950 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:15:54,953 - INFO - -================================================== -2025-06-04 02:15:54,953 - INFO - Stage: extract_patient_info -2025-06-04 02:15:54,954 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:15:54,955 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:15:54,956 - INFO - ================================================== - -2025-06-04 02:15:54,957 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:15:58,544 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient is immunosuppressed and presents with constitutional symptoms and findings concerning for disseminated infection. While the presented codes lack specific entries for disseminated mycobacterial or fungal infection, 'B20' corresponds to 'HIV disease', which is often used as a proxy for immunocompromised status with associated opportunistic infections in coding scenarios when a more specific code is not available. None of the remaining codes (osteoporosis, long-term medication use, diabetes, hypothyroidism, lipid disorder, hypertension, vitamin D deficiency, or transplant status) are as applicable to the scenario of severe opportunistic infection in an immunosuppressed host."} -2025-06-04 02:15:58,547 - INFO - -================================================== -2025-06-04 02:15:58,548 - INFO - Stage: match_icd10_code -2025-06-04 02:15:58,548 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:58,548 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with constitutional symptoms and findings concerning for disseminated infection. While the presented codes lack specific entries for disseminated mycobacterial or fungal infection, 'B20' corresponds to 'HIV disease', which is often used as a proxy for immunocompromised status with associated opportunistic infections in coding scenarios when a more specific code is not available. None of the remaining codes (osteoporosis, long-term medication use, diabetes, hypothyroidism, lipid disorder, hypertension, vitamin D deficiency, or transplant status) are as applicable to the scenario of severe opportunistic infection in an immunosuppressed host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:58,549 - INFO - ================================================== - -2025-06-04 02:15:58,551 - INFO - -================================================== -2025-06-04 02:15:58,552 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:15:58,552 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with constitutional symptoms and findings concerning for disseminated infection. While the presented codes lack specific entries for disseminated mycobacterial or fungal infection, 'B20' corresponds to 'HIV disease', which is often used as a proxy for immunocompromised status with associated opportunistic infections in coding scenarios when a more specific code is not available. None of the remaining codes (osteoporosis, long-term medication use, diabetes, hypothyroidism, lipid disorder, hypertension, vitamin D deficiency, or transplant status) are as applicable to the scenario of severe opportunistic infection in an immunosuppressed host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:58,553 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient is immunosuppressed and presents with constitutional symptoms and findings concerning for disseminated infection. While the presented codes lack specific entries for disseminated mycobacterial or fungal infection, 'B20' corresponds to 'HIV disease', which is often used as a proxy for immunocompromised status with associated opportunistic infections in coding scenarios when a more specific code is not available. None of the remaining codes (osteoporosis, long-term medication use, diabetes, hypothyroidism, lipid disorder, hypertension, vitamin D deficiency, or transplant status) are as applicable to the scenario of severe opportunistic infection in an immunosuppressed host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:15:58,553 - INFO - ================================================== - -2025-06-04 02:15:58,555 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient is immunosuppressed and presents with constitutional symptoms and findings concerning for disseminated infection. While the presented codes lack specific entries for disseminated mycobacterial or fungal infection, 'B20' corresponds to 'HIV disease', which is often used as a proxy for immunocompromised status with associated opportunistic infections in coding scenarios when a more specific code is not available. None of the remaining codes (osteoporosis, long-term medication use, diabetes, hypothyroidism, lipid disorder, hypertension, vitamin D deficiency, or transplant status) are as applicable to the scenario of severe opportunistic infection in an immunosuppressed host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:16:00,341 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease, but the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV. A more appropriate code is not available in the provided list, but B20 is not valid for this scenario."} -2025-06-04 02:16:00,342 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease, but the patient is immunosuppressed due to methotrexate and prednisone for rheumatoid arthritis, not HIV. A more appropriate code is not available in the provided list, but B20 is not valid for this scenario.'} -2025-06-04 02:16:00,344 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:16:02,384 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "Z79.4", "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection."} -2025-06-04 02:16:02,388 - INFO - -================================================== -2025-06-04 02:16:02,388 - INFO - Stage: match_icd10_code -2025-06-04 02:16:02,389 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:02,389 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:02,390 - INFO - ================================================== - -2025-06-04 02:16:02,409 - INFO - -================================================== -2025-06-04 02:16:02,410 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:16:02,411 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:02,411 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:02,411 - INFO - ================================================== - -2025-06-04 02:16:02,414 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z79.4 - Rationale: The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:16:03,797 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": true, "reason": "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive agents, which is pertinent to her immunosuppressed status and related clinical presentation."} -2025-06-04 02:16:03,798 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z79.4 accurately reflects the patient's long-term use of immunosuppressive agents, which is pertinent to her immunosuppressed status and related clinical presentation."} -2025-06-04 02:16:03,800 - INFO - -================================================== -2025-06-04 02:16:03,800 - INFO - Stage: validate_icd10_clinical_match -2025-06-04 02:16:03,801 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:03,802 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:03,802 - INFO - ================================================== - -2025-06-04 02:16:03,805 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:16:04,949 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:16:04,951 - INFO - -================================================== -2025-06-04 02:16:04,952 - INFO - Stage: extract_patient_info -2025-06-04 02:16:04,955 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:04,956 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:16:04,958 - INFO - ================================================== - -2025-06-04 02:16:04,964 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:16:07,219 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation of prolonged fever, night sweats, weight loss, and imaging findings of disseminated lesions, along with immunosuppression due to rheumatoid arthritis treatment, raises strong suspicion for an opportunistic infection such as disseminated mycobacterial or fungal disease. While B20 is specifically HIV disease resulting in infectious and parasitic diseases, in this list, it is the only infectious disease code provided and most closely matches the clinical scenario of a serious systemic opportunistic infection in an immunocompromised host."} -2025-06-04 02:16:07,261 - INFO - -================================================== -2025-06-04 02:16:07,262 - INFO - Stage: match_icd10_code -2025-06-04 02:16:07,263 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z79.4", - "rationale": "The patient is immunosuppressed due to long-term use of immunosuppressive agents (methotrexate and prednisone) for rheumatoid arthritis, as evidenced by her medication history. Z79.4 (Long term (current) use of other immunosuppressive agents) best reflects her clinical status among the provided codes, since there is no specific code listed for disseminated mycobacterial or fungal infection.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:16:07,264 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of prolonged fever, night sweats, weight loss, and imaging findings of disseminated lesions, along with immunosuppression due to rheumatoid arthritis treatment, raises strong suspicion for an opportunistic infection such as disseminated mycobacterial or fungal disease. While B20 is specifically HIV disease resulting in infectious and parasitic diseases, in this list, it is the only infectious disease code provided and most closely matches the clinical scenario of a serious systemic opportunistic infection in an immunocompromised host.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:16:07,264 - INFO - ================================================== - -2025-06-04 02:16:07,286 - INFO - -================================================== -2025-06-04 02:16:07,292 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:16:07,313 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of prolonged fever, night sweats, weight loss, and imaging findings of disseminated lesions, along with immunosuppression due to rheumatoid arthritis treatment, raises strong suspicion for an opportunistic infection such as disseminated mycobacterial or fungal disease. While B20 is specifically HIV disease resulting in infectious and parasitic diseases, in this list, it is the only infectious disease code provided and most closely matches the clinical scenario of a serious systemic opportunistic infection in an immunocompromised host.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:16:07,322 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation of prolonged fever, night sweats, weight loss, and imaging findings of disseminated lesions, along with immunosuppression due to rheumatoid arthritis treatment, raises strong suspicion for an opportunistic infection such as disseminated mycobacterial or fungal disease. While B20 is specifically HIV disease resulting in infectious and parasitic diseases, in this list, it is the only infectious disease code provided and most closely matches the clinical scenario of a serious systemic opportunistic infection in an immunocompromised host.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:16:07,332 - INFO - ================================================== - -2025-06-04 02:16:07,343 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation of prolonged fever, night sweats, weight loss, and imaging findings of disseminated lesions, along with immunosuppression due to rheumatoid arthritis treatment, raises strong suspicion for an opportunistic infection such as disseminated mycobacterial or fungal disease. While B20 is specifically HIV disease resulting in infectious and parasitic diseases, in this list, it is the only infectious disease code provided and most closely matches the clinical scenario of a serious systemic opportunistic infection in an immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:16:08,840 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, while the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV; thus, B20 is not appropriate for this case."} -2025-06-04 02:16:08,842 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, while the patient is immunosuppressed due to rheumatoid arthritis treatment, not HIV; thus, B20 is not appropriate for this case.'} -2025-06-04 02:16:08,845 - INFO - -================================================== -2025-06-04 02:16:08,845 - INFO - Stage: stopper_node -2025-06-04 02:16:08,846 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:16:08,847 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:16:08,847 - INFO - ================================================== - -2025-06-04 02:16:08,848 - INFO - -================================================== -2025-06-04 02:16:08,848 - INFO - Final Result: -2025-06-04 02:16:08,849 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:16:08,849 - INFO - ================================================== - -2025-06-04 02:17:06,844 - INFO - -================================================== -2025-06-04 02:17:06,846 - INFO - Starting new clinical case processing -2025-06-04 02:17:06,846 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? -2025-06-04 02:17:06,848 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. -2025-06-04 02:17:06,849 - INFO - ================================================== - -2025-06-04 02:17:06,855 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:17:08,107 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:17:08,110 - INFO - -================================================== -2025-06-04 02:17:08,111 - INFO - Stage: extract_patient_info -2025-06-04 02:17:08,111 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:17:08,112 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 0, - "stopped": false -} -2025-06-04 02:17:08,112 - INFO - ================================================== - -2025-06-04 02:17:08,114 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:10,783 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host."} -2025-06-04 02:17:10,785 - INFO - -================================================== -2025-06-04 02:17:10,786 - INFO - Stage: match_icd10_code -2025-06-04 02:17:10,786 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:17:10,787 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:17:10,787 - INFO - ================================================== - -2025-06-04 02:17:10,789 - INFO - -================================================== -2025-06-04 02:17:10,790 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:17:10,790 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:17:10,791 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.", - "error": null, - "retry_count": 1, - "stopped": false -} -2025-06-04 02:17:10,791 - INFO - ================================================== - -2025-06-04 02:17:10,793 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:12,529 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 specifically refers to HIV disease with resulting infections; the patient does not have HIV, so this code is not appropriate for her immunosuppression due to rheumatoid arthritis therapy."} -2025-06-04 02:17:12,530 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease with resulting infections; the patient does not have HIV, so this code is not appropriate for her immunosuppression due to rheumatoid arthritis therapy.'} -2025-06-04 02:17:12,534 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:14,683 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies."} -2025-06-04 02:17:14,686 - INFO - -================================================== -2025-06-04 02:17:14,686 - INFO - Stage: match_icd10_code -2025-06-04 02:17:14,687 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:17:14,687 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:17:14,688 - INFO - ================================================== - -2025-06-04 02:17:14,689 - INFO - -================================================== -2025-06-04 02:17:14,690 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:17:14,691 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:17:14,691 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.", - "error": null, - "retry_count": 2, - "stopped": false -} -2025-06-04 02:17:14,693 - INFO - ================================================== - -2025-06-04 02:17:14,695 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:16,633 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease; the patient is immunosuppressed from medications but does not have HIV, so this code is inappropriate for her diagnosis."} -2025-06-04 02:17:16,634 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease; the patient is immunosuppressed from medications but does not have HIV, so this code is inappropriate for her diagnosis.'} -2025-06-04 02:17:16,637 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:18,956 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice."} -2025-06-04 02:17:18,957 - INFO - -================================================== -2025-06-04 02:17:18,958 - INFO - Stage: match_icd10_code -2025-06-04 02:17:18,959 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:18,959 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:18,960 - INFO - ================================================== - -2025-06-04 02:17:18,961 - INFO - -================================================== -2025-06-04 02:17:18,962 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:17:18,962 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:18,963 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.", - "error": null, - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:18,963 - INFO - ================================================== - -2025-06-04 02:17:18,965 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:20,511 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case."} -2025-06-04 02:17:20,511 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.'} -2025-06-04 02:17:20,513 - INFO - -================================================== -2025-06-04 02:17:20,514 - INFO - Stage: stopper_node -2025-06-04 02:17:20,514 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:17:20,515 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 3 retries. Manual review required.", - "retry_count": 3, - "stopped": true -} -2025-06-04 02:17:20,516 - INFO - ================================================== - -2025-06-04 02:17:20,518 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-04 02:17:21,641 - INFO - LLM Response for extract_patient_info: -{"age": 52, "gender": "female"} -2025-06-04 02:17:21,643 - INFO - -================================================== -2025-06-04 02:17:21,643 - INFO - Stage: extract_patient_info -2025-06-04 02:17:21,644 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.", - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:21,644 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Invalid match: The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.", - "retry_count": 3, - "stopped": false -} -2025-06-04 02:17:21,645 - INFO - ================================================== - -2025-06-04 02:17:21,646 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:24,262 - INFO - LLM Response for match_icd10_code: -{"icd10_code": "B20", "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk."} -2025-06-04 02:17:24,265 - INFO - -================================================== -2025-06-04 02:17:24,265 - INFO - Stage: match_icd10_code -2025-06-04 02:17:24,266 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:17:24,268 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:17:24,269 - INFO - ================================================== - -2025-06-04 02:17:24,270 - INFO - -================================================== -2025-06-04 02:17:24,271 - INFO - Stage: validate_icd10_code_exists -2025-06-04 02:17:24,271 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:17:24,272 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "B20", - "rationale": "The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.", - "error": null, - "retry_count": 4, - "stopped": false -} -2025-06-04 02:17:24,272 - INFO - ================================================== - -2025-06-04 02:17:24,274 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: B20 - Rationale: The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 -0 M81.0 -1 Z79.4 -2 E11.65 -3 E03.9 -5 E78.5 -6 I10 -7 E55.9 -8 B20 -9 Z94.81 - -2025-06-04 02:17:25,783 - INFO - LLM Response for validate_icd10_clinical_match: -{"is_valid": false, "reason": "The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and not HIV, so B20 is not appropriate for this case."} -2025-06-04 02:17:25,784 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and not HIV, so B20 is not appropriate for this case.'} -2025-06-04 02:17:25,787 - INFO - -================================================== -2025-06-04 02:17:25,787 - INFO - Stage: stopper_node -2025-06-04 02:17:25,787 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 02:17:25,788 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10\n0 M81.0\n1 Z79.4\n2 E11.65\n3 E03.9\n5 E78.5\n6 I10\n7 E55.9\n8 B20\n9 Z94.81", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 02:17:25,789 - INFO - ================================================== - -2025-06-04 02:17:25,790 - INFO - -================================================== -2025-06-04 02:17:25,792 - INFO - Final Result: -2025-06-04 02:17:25,794 - INFO - { - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": "Stopped after 4 retries. Manual review required.", - "retry_count": 4, - "stopped": true -} -2025-06-04 02:17:25,794 - INFO - ================================================== - diff --git a/scripts/eConsult/Recommender/phase_1/Notebook/phase_1_updated.ipynb b/scripts/eConsult/Recommender/phase_1/Notebook/phase_1_updated.ipynb index e681e46d..55f84a8c 100644 --- a/scripts/eConsult/Recommender/phase_1/Notebook/phase_1_updated.ipynb +++ b/scripts/eConsult/Recommender/phase_1/Notebook/phase_1_updated.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2025-04-24T23:53:09.958341Z", @@ -20,18 +20,12 @@ } }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The google.cloud.bigquery extension is already loaded. To reload it, use:\n", - " %reload_ext google.cloud.bigquery\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ + "/Users/wenyuanchen/anaconda3/envs/sage_recommender/lib/python3.13/site-packages/google/cloud/bigquery/__init__.py:237: FutureWarning: %load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.\n", + " warnings.warn(\n", "/Users/wenyuanchen/anaconda3/envs/sage_recommender/lib/python3.13/site-packages/google/auth/_default.py:76: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK without a quota project. You might receive a \"quota exceeded\" or \"API not enabled\" error. See the following page for troubleshooting: https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds. \n", " warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)\n" ] @@ -42,7 +36,7 @@ "True" ] }, - "execution_count": 12, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -109,112 +103,9 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "04aeccb7a54e4da8804820934dbb1fe9", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Query is running: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a52a122cdd274b2892d988fe783733f1", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Downloading: 0%| |" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%%bigquery --use_rest_api eConsult_QA\n", - "select * from som-nero-phi-jonc101.Digital_Medical_Con.eConsult_QA limit 100" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
anon_idjittered_note_datequestionanswerprov_typedept_specialtydept_name
2JC7018462024-04-11 17:30:00My Clinical Question (condition: growth/lesion...- based on chart review only Recommendatio...PHYSICIANDERMATOLOGYDERMATOLOGY HOOVER
\n", - "
" - ], - "text/plain": [ - " anon_id jittered_note_date \\\n", - "2 JC701846 2024-04-11 17:30:00 \n", - "\n", - " question \\\n", - "2 My Clinical Question (condition: growth/lesion... \n", - "\n", - " answer prov_type \\\n", - "2 - based on chart review only Recommendatio... PHYSICIAN \n", - "\n", - " dept_specialty dept_name \n", - "2 DERMATOLOGY DERMATOLOGY HOOVER " - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "eConsult_QA.iloc[[random.randint(0, len(eConsult_QA))]]" + "eConsult_question = pd.read_csv(\"../real_data/icd.csv\")" ] }, { @@ -225,7 +116,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "5a41c3a52a0048139961e9b264de0213", + "model_id": "4b69d9118744460eaac56eeefdd7050c", "version_major": 2, "version_minor": 0 }, @@ -239,7 +130,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f9d145237a344fc092b15549868b23d9", + "model_id": "9e8403ad7d0e4706a1defa9cf52ceb87", "version_major": 2, "version_minor": 0 }, @@ -252,20 +143,29 @@ } ], "source": [ - "%%bigquery --use_rest_api top_200_icd10_codes\n", + "%%bigquery --use_rest_api top_limit_icd10_codes\n", "select distinct icd10, dx_name, dm.specialty, count(icd10) as count from som-nero-phi-jonc101.shc_core_2024.diagnosis as dx\n", "JOIN `som-nero-phi-jonc101.shc_core_2024.dep_map` dm\n", " ON dx.dept_id = dm.department_id\n", "where dm.specialty IN ('Infectious Diseases', 'Endocrinology', 'Hematology')\n", "group by icd10,dx_name,dm.specialty\n", "order by count desc\n", - "limit 10" + "limit 10000" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, + "outputs": [], + "source": [ + "top_icd10_codes_cleaned = top_limit_icd10_codes.drop_duplicates(subset=[\"icd10\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, "outputs": [ { "data": { @@ -324,13 +224,6 @@ " 85715\n", " \n", " \n", - " 4\n", - " E03.9\n", - " Hypothyroidism, unspecified\n", - " Endocrinology\n", - " 80150\n", - " \n", - " \n", " 5\n", " E78.5\n", " Hyperlipidemia, unspecified\n", @@ -338,79 +231,89 @@ " 77241\n", " \n", " \n", - " 6\n", - " I10\n", - " Essential (primary) hypertension\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 9977\n", + " F21\n", + " Schizotypal personality disorder (CMS-HCC)\n", + " Infectious Diseases\n", + " 37\n", + " \n", + " \n", + " 9984\n", + " E13.319\n", + " Other specified diabetes mellitus with unspeci...\n", " Endocrinology\n", - " 74292\n", + " 37\n", " \n", " \n", - " 7\n", - " E55.9\n", - " Vitamin D deficiency, unspecified\n", + " 9992\n", + " L91.8\n", + " Other hypertrophic disorders of the skin\n", " Endocrinology\n", - " 73312\n", + " 37\n", " \n", " \n", - " 8\n", - " B20\n", - " Human immunodeficiency virus (HIV) disease (CM...\n", - " Infectious Diseases\n", - " 61123\n", + " 9994\n", + " I60.9\n", + " Subarachnoid hemorrhage (CMS-HCC)\n", + " Hematology\n", + " 37\n", " \n", " \n", - " 9\n", - " Z94.81\n", - " Bone marrow transplant status\n", + " 9999\n", + " K55.21\n", + " Angiodysplasia of colon with hemorrhage\n", " Hematology\n", - " 60425\n", + " 37\n", " \n", " \n", "\n", + "

3092 rows × 4 columns

\n", "" ], "text/plain": [ - " icd10 dx_name \\\n", - "0 M81.0 Age-related osteoporosis without current patho... \n", - "1 Z79.4 Long term (current) use of insulin \n", - "2 E11.65 Type 2 diabetes mellitus with hyperglycemia \n", - "3 E03.9 Hypothyroidism, unspecified type \n", - "4 E03.9 Hypothyroidism, unspecified \n", - "5 E78.5 Hyperlipidemia, unspecified \n", - "6 I10 Essential (primary) hypertension \n", - "7 E55.9 Vitamin D deficiency, unspecified \n", - "8 B20 Human immunodeficiency virus (HIV) disease (CM... \n", - "9 Z94.81 Bone marrow transplant status \n", + " icd10 dx_name \\\n", + "0 M81.0 Age-related osteoporosis without current patho... \n", + "1 Z79.4 Long term (current) use of insulin \n", + "2 E11.65 Type 2 diabetes mellitus with hyperglycemia \n", + "3 E03.9 Hypothyroidism, unspecified type \n", + "5 E78.5 Hyperlipidemia, unspecified \n", + "... ... ... \n", + "9977 F21 Schizotypal personality disorder (CMS-HCC) \n", + "9984 E13.319 Other specified diabetes mellitus with unspeci... \n", + "9992 L91.8 Other hypertrophic disorders of the skin \n", + "9994 I60.9 Subarachnoid hemorrhage (CMS-HCC) \n", + "9999 K55.21 Angiodysplasia of colon with hemorrhage \n", "\n", - " specialty count \n", - "0 Endocrinology 133009 \n", - "1 Endocrinology 90259 \n", - "2 Endocrinology 88002 \n", - "3 Endocrinology 85715 \n", - "4 Endocrinology 80150 \n", - "5 Endocrinology 77241 \n", - "6 Endocrinology 74292 \n", - "7 Endocrinology 73312 \n", - "8 Infectious Diseases 61123 \n", - "9 Hematology 60425 " + " specialty count \n", + "0 Endocrinology 133009 \n", + "1 Endocrinology 90259 \n", + "2 Endocrinology 88002 \n", + "3 Endocrinology 85715 \n", + "5 Endocrinology 77241 \n", + "... ... ... \n", + "9977 Infectious Diseases 37 \n", + "9984 Endocrinology 37 \n", + "9992 Endocrinology 37 \n", + "9994 Hematology 37 \n", + "9999 Hematology 37 \n", + "\n", + "[3092 rows x 4 columns]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "top_200_icd10_codes" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "top_200_icd10_codes_cleaned = top_200_icd10_codes[['icd10']].drop_duplicates()[:400]" + "top_icd10_codes_cleaned" ] }, { @@ -422,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -450,7 +353,7 @@ " pass\n", "\n", "# Create logs directory if it doesn't exist\n", - "log_dir = \"logs\"\n", + "log_dir = f\"../logs/clinical_workflow_{datetime.datetime.now().strftime(\"%Y%m%d%H%M%S\")}\"\n", "os.makedirs(log_dir, exist_ok=True)\n", "\n", "# Set up logging with the custom handler\n", @@ -458,7 +361,7 @@ " level=logging.INFO,\n", " format='%(asctime)s - %(levelname)s - %(message)s',\n", " handlers=[\n", - " NonEmptyFileHandler(os.path.join(log_dir, f'clinical_workflow_{datetime.datetime.now().strftime(\"%Y%m%d\")}.log')),\n", + " NonEmptyFileHandler(os.path.join(log_dir, 'run.log')),\n", " logging.StreamHandler()\n", " ]\n", ")" @@ -466,7 +369,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "top_icd10_codes_cleaned.to_csv(log_dir + \"/top_icd10_codes_cleaned.csv\", index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -476,12 +388,13 @@ " output_copy = output_data.copy()\n", " \n", " if 'icd10_codes' in input_copy and isinstance(input_copy['icd10_codes'], pd.DataFrame):\n", - " input_copy['icd10_codes'] = input_copy['icd10_codes'].to_string()\n", + " input_copy['icd10_codes'] = \"check separate file for icd10_codes\"\n", + " # input_copy['icd10_codes'] = input_copy['icd10_codes'].to_string()\n", " if 'icd10_codes' in output_copy and isinstance(output_copy['icd10_codes'], pd.DataFrame):\n", - " output_copy['icd10_codes'] = output_copy['icd10_codes'].to_string()\n", + " output_copy['icd10_codes'] = \"check separate file for icd10_codes\"\n", " \n", " logging.info(f\"\\n{'='*50}\")\n", - " logging.info(f\"Stage: {stage_name}\")\n", + " logging.info(f\"Summary of Stage: {stage_name}\")\n", " logging.info(f\"Input: {json.dumps(input_copy, indent=2)}\")\n", " logging.info(f\"Output: {json.dumps(output_copy, indent=2)}\")\n", " logging.info(f\"{'='*50}\\n\")" @@ -496,7 +409,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -517,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -542,7 +455,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -562,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -576,7 +489,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -624,7 +537,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -646,7 +559,7 @@ " # )\n", " # llm = ChatOpenAI(model=\"gpt-4\", temperature=0.3)\n", " \n", - " prompt = f\"\"\"\n", + " raw_prompt = f\"\"\"\n", " Match the clinical information to the most appropriate ICD-10 code from the provided list.\n", " Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'.\n", " DO NOT include any other text, thinking process, or explanation.\n", @@ -661,10 +574,9 @@ " Patient Age: {state.get('patient_age')}\n", " Patient Gender: {state.get('patient_gender')}\n", " \n", - " Available ICD-10 Codes:\n", - " {state.get('icd10_codes')}\n", " \"\"\"\n", - " logging.info(f\"LLM Prompt for match_icd10_code:\\n{prompt}\")\n", + " prompt = raw_prompt + f\"Available ICD-10 Codes: {state['icd10_codes'].to_string()}\"\n", + " logging.info(f\"LLM Prompt for match_icd10_code:\\n{raw_prompt} + available ICD-10 codes\")\n", " # response = llm.invoke([HumanMessage(content=prompt)])\n", " response = query_llm(prompt)\n", " logging.info(f\"LLM Response for match_icd10_code:\\n{response}\")\n", @@ -687,7 +599,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -712,7 +624,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -726,7 +638,7 @@ " # )\n", " # llm = ChatOpenAI(model=\"gpt-4\", temperature=0.3)\n", " \n", - " prompt = f\"\"\"\n", + " raw_prompt = f\"\"\"\n", " Validate if the matched ICD-10 code is appropriate for the clinical case.\n", " Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string).\n", " DO NOT include any other text, thinking process, or explanation.\n", @@ -744,11 +656,9 @@ " Clinical Notes: {state.get('clinical_notes')}\n", " Patient Age: {state.get('patient_age')}\n", " Patient Gender: {state.get('patient_gender')}\n", - " \n", - " Available ICD-10 Codes:\n", - " {state['icd10_codes'].to_string()}\n", " \"\"\"\n", - " logging.info(f\"LLM Prompt for validate_icd10_clinical_match:\\n{prompt}\")\n", + " prompt = raw_prompt + f\"Available ICD-10 Codes: {state['icd10_codes'].to_string()}\"\n", + " logging.info(f\"LLM Prompt for validate_icd10_clinical_match:\\n{raw_prompt} + avaialble ICD-10 codes\")\n", " \n", " # response = llm.invoke([HumanMessage(content=prompt)])\n", " response = query_llm(prompt)\n", @@ -779,12 +689,11 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ - "MAX_RETRIES = 3\n", - "def create_clinical_graph() -> StateGraph:\n", + "def create_clinical_graph(MAX_RETRIES = 3) -> StateGraph:\n", " workflow = StateGraph(dict)\n", " \n", " # Add nodes\n", @@ -801,14 +710,15 @@ " workflow.add_edge(\"match_icd10_code\", \"validate_icd10_code_exists\")\n", "\n", " # Helper to increment retry count\n", - " def check_and_route(state, next_success):\n", + " def check_and_route(state, next_node):\n", " if state.get(\"error\"):\n", " # Only increment retry_count when a retry will actually happen\n", " if state.get(\"retry_count\", 0) >= MAX_RETRIES:\n", " return \"stopper\"\n", " return \"match_icd10_code\"\n", " else:\n", - " return next_success\n", + " return next_node\n", + " \n", "\n", " \n", " # Conditional for code existence validation\n", @@ -832,28 +742,6 @@ " \"stopper\": \"stopper\"\n", " }\n", " )\n", - " \n", - " # # Define conditional edges\n", - " # workflow.add_conditional_edges(\n", - " # \"validate_icd10_code_exists\",\n", - " # lambda x: \"match_icd10_code\" if x.get(\"error\") else \"validate_icd10_clinical_match\",\n", - " # {\n", - " # \"match_icd10_code\": \"match_icd10_code\",\n", - " # \"validate_icd10_clinical_match\": \"validate_icd10_clinical_match\"\n", - " # }\n", - " # )\n", - " \n", - " # # ensure it goes back to match_icd10_code when validation fails\n", - " # workflow.add_conditional_edges(\n", - " # \"validate_icd10_clinical_match\",\n", - " # lambda x: \"match_icd10_code\" if x.get(\"error\") else END, # When error, go back to matching\n", - " # {\n", - " # \"match_icd10_code\": \"match_icd10_code\", # Map the return value to the actual node\n", - " # END: END\n", - " # }\n", - " # )\n", - " \n", - " # Set entry point\n", " workflow.set_entry_point(\"extract_patient_info\")\n", " \n", " return workflow.compile()" @@ -861,12 +749,12 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# Example usage\n", - "def process_clinical_case(clinical_question: str, clinical_notes: str, icd10_codes_df: pd.DataFrame) -> dict:\n", + "def process_clinical_case(clinical_question: str, clinical_notes: str, icd10_codes_df: pd.DataFrame, MAX_RETRIES = 10) -> dict:\n", " # Create the graph\n", " \"\"\"Process a clinical case through the workflow.\"\"\"\n", " logging.info(f\"\\n{'='*50}\")\n", @@ -874,7 +762,7 @@ " logging.info(f\"Clinical Question: {clinical_question}\")\n", " logging.info(f\"Clinical Notes: {clinical_notes}\")\n", " logging.info(f\"{'='*50}\\n\")\n", - " graph = create_clinical_graph()\n", + " graph = create_clinical_graph(MAX_RETRIES)\n", " \n", " # Initialize state\n", " initial_state = {\n", @@ -886,7 +774,7 @@ " \"icd10_code\": None,\n", " \"rationale\": None,\n", " \"error\": None,\n", - " \"retry_count\": 1,\n", + " \"retry_count\": 0,\n", " \"stopped\": False\n", " }\n", " # print(\"Initial state:\", initial_state) # Debug print\n", @@ -894,7 +782,6 @@ " # Run the graph\n", " config = {\"recursion_limit\": 100} # Increase from default 25 to 100\n", " result = graph.invoke(initial_state, config=config)\n", - " result = graph.invoke(initial_state)\n", " clean_result = {\n", " \"patient_age\": result.get(\"patient_age\"),\n", " \"patient_gender\": result.get(\"patient_gender\"),\n", @@ -916,850 +803,23 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:06,844 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:06,846 - INFO - Starting new clinical case processing\n", - "2025-06-04 02:17:06,846 - INFO - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - "2025-06-04 02:17:06,848 - INFO - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - "2025-06-04 02:17:06,849 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:06,855 - INFO - LLM Prompt for extract_patient_info:\n", - "\n", - " Extract the patient's age and gender from the following clinical notes.\n", - " Return ONLY a JSON object with 'age' and 'gender' fields.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"age\": 55, \"gender\": \"male\"}\n", - "\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " \n", - "2025-06-04 02:17:08,107 - INFO - LLM Response for extract_patient_info:\n", - "{\"age\": 52, \"gender\": \"female\"}\n", - "2025-06-04 02:17:08,110 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:08,111 - INFO - Stage: extract_patient_info\n", - "2025-06-04 02:17:08,111 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": null,\n", - " \"patient_gender\": null,\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 0,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:08,112 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 0,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:08,112 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:08,114 - INFO - LLM Prompt for match_icd10_code:\n", - "\n", - " Match the clinical information to the most appropriate ICD-10 code from the provided list.\n", - " Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"icd10_code\": \"xxx\", \"rationale\": \"xxxxx\"}\n", - "\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"age\": 52, \"gender\": \"female\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:10,783 - INFO - LLM Response for match_icd10_code:\n", - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\"}\n", - "2025-06-04 02:17:10,785 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:10,786 - INFO - Stage: match_icd10_code\n", - "2025-06-04 02:17:10,786 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 1,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:10,787 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\",\n", - " \"error\": null,\n", - " \"retry_count\": 1,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:10,787 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:10,789 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:10,790 - INFO - Stage: validate_icd10_code_exists\n", - "2025-06-04 02:17:10,790 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\",\n", - " \"error\": null,\n", - " \"retry_count\": 1,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:10,791 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\",\n", - " \"error\": null,\n", - " \"retry_count\": 1,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:10,791 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:10,793 - INFO - LLM Prompt for validate_icd10_clinical_match:\n", - "\n", - " Validate if the matched ICD-10 code is appropriate for the clinical case.\n", - " Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string).\n", - " DO NOT include any other text, thinking process, or explanation.\n", - "\n", - " Example of expected format:\n", - " {\"is_valid\": true, \"reason\": \"The code I10 matches the patient's hypertension diagnosis\"}\n", - " or\n", - " {\"is_valid\": false, \"reason\": \"The code I10 is too general for this specific case\"}\n", - "\n", - " Current Match:\n", - " ICD-10 Code: B20\n", - " Rationale: The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's persistent fevers, night sweats, weight loss, and multiple organ involvement in the context of immunosuppression are most consistent with an opportunistic infection, and of the available codes, B20 (HIV disease resulting in infectious and parasitic diseases) is the only code related to disseminated infectious processes in immunocompromised hosts. While the patient does not have a known HIV diagnosis, no other listed codes fit the clinical scenario of systemic infection. Therefore, B20 is the closest ICD-10 code from the list to represent a disseminated infectious process in an immunocompromised host.\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:12,529 - INFO - LLM Response for validate_icd10_clinical_match:\n", - "{\"is_valid\": false, \"reason\": \"The code B20 specifically refers to HIV disease with resulting infections; the patient does not have HIV, so this code is not appropriate for her immunosuppression due to rheumatoid arthritis therapy.\"}\n", - "2025-06-04 02:17:12,530 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 specifically refers to HIV disease with resulting infections; the patient does not have HIV, so this code is not appropriate for her immunosuppression due to rheumatoid arthritis therapy.'}\n", - "2025-06-04 02:17:12,534 - INFO - LLM Prompt for match_icd10_code:\n", - "\n", - " Match the clinical information to the most appropriate ICD-10 code from the provided list.\n", - " Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"icd10_code\": \"xxx\", \"rationale\": \"xxxxx\"}\n", - "\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"is_valid\": false, \"reason\": \"The code B20 specifically refers to HIV disease with resulting infections; the patient does not have HIV, so this code is not appropriate for her immunosuppression due to rheumatoid arthritis therapy.\"}\n", - "Invalid match, will rerun matching...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:14,683 - INFO - LLM Response for match_icd10_code:\n", - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\"}\n", - "2025-06-04 02:17:14,686 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:14,686 - INFO - Stage: match_icd10_code\n", - "2025-06-04 02:17:14,687 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 2,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:14,687 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\",\n", - " \"error\": null,\n", - " \"retry_count\": 2,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:14,688 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:14,689 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:14,690 - INFO - Stage: validate_icd10_code_exists\n", - "2025-06-04 02:17:14,691 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\",\n", - " \"error\": null,\n", - " \"retry_count\": 2,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:14,691 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\",\n", - " \"error\": null,\n", - " \"retry_count\": 2,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:14,693 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:14,695 - INFO - LLM Prompt for validate_icd10_clinical_match:\n", - "\n", - " Validate if the matched ICD-10 code is appropriate for the clinical case.\n", - " Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string).\n", - " DO NOT include any other text, thinking process, or explanation.\n", - "\n", - " Example of expected format:\n", - " {\"is_valid\": true, \"reason\": \"The code I10 matches the patient's hypertension diagnosis\"}\n", - " or\n", - " {\"is_valid\": false, \"reason\": \"The code I10 is too general for this specific case\"}\n", - "\n", - " Current Match:\n", - " ICD-10 Code: B20\n", - " Rationale: The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's immunosuppressed status and systemic symptoms with concern for disseminated infection match B20 (HIV disease resulting in infectious and parasitic diseases), as this is the closest code among those provided relating to disseminated opportunistic infections, although the patient does not have diagnosed HIV; the other codes do not pertain to infectious etiologies.\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:16,633 - INFO - LLM Response for validate_icd10_clinical_match:\n", - "{\"is_valid\": false, \"reason\": \"The code B20 is specific for HIV disease; the patient is immunosuppressed from medications but does not have HIV, so this code is inappropriate for her diagnosis.\"}\n", - "2025-06-04 02:17:16,634 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease; the patient is immunosuppressed from medications but does not have HIV, so this code is inappropriate for her diagnosis.'}\n", - "2025-06-04 02:17:16,637 - INFO - LLM Prompt for match_icd10_code:\n", - "\n", - " Match the clinical information to the most appropriate ICD-10 code from the provided list.\n", - " Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"icd10_code\": \"xxx\", \"rationale\": \"xxxxx\"}\n", - "\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"is_valid\": false, \"reason\": \"The code B20 is specific for HIV disease; the patient is immunosuppressed from medications but does not have HIV, so this code is inappropriate for her diagnosis.\"}\n", - "Invalid match, will rerun matching...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:18,956 - INFO - LLM Response for match_icd10_code:\n", - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\"}\n", - "2025-06-04 02:17:18,957 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:18,958 - INFO - Stage: match_icd10_code\n", - "2025-06-04 02:17:18,959 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:18,959 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\",\n", - " \"error\": null,\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:18,960 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:18,961 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:18,962 - INFO - Stage: validate_icd10_code_exists\n", - "2025-06-04 02:17:18,962 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\",\n", - " \"error\": null,\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:18,963 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\",\n", - " \"error\": null,\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:18,963 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:18,965 - INFO - LLM Prompt for validate_icd10_clinical_match:\n", - "\n", - " Validate if the matched ICD-10 code is appropriate for the clinical case.\n", - " Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string).\n", - " DO NOT include any other text, thinking process, or explanation.\n", - "\n", - " Example of expected format:\n", - " {\"is_valid\": true, \"reason\": \"The code I10 matches the patient's hypertension diagnosis\"}\n", - " or\n", - " {\"is_valid\": false, \"reason\": \"The code I10 is too general for this specific case\"}\n", - "\n", - " Current Match:\n", - " ICD-10 Code: B20\n", - " Rationale: The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's presentation is suggestive of a disseminated opportunistic infection, which is commonly encountered in immunocompromised individuals. Although she is not explicitly described as HIV-positive, among the given codes, B20 (HIV disease resulting in infectious and parasitic diseases) most closely matches the scenario of an immunosuppressed state with disseminated mycobacterial or fungal infection. None of the other codes relate to infections or immunosuppression, making B20 the most appropriate choice.\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:20,511 - INFO - LLM Response for validate_icd10_clinical_match:\n", - "{\"is_valid\": false, \"reason\": \"The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.\"}\n", - "2025-06-04 02:17:20,511 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.'}\n", - "2025-06-04 02:17:20,513 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:20,514 - INFO - Stage: stopper_node\n", - "2025-06-04 02:17:20,514 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 3 retries. Manual review required.\",\n", - " \"retry_count\": 3,\n", - " \"stopped\": true\n", - "}\n", - "2025-06-04 02:17:20,515 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 3 retries. Manual review required.\",\n", - " \"retry_count\": 3,\n", - " \"stopped\": true\n", - "}\n", - "2025-06-04 02:17:20,516 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:20,518 - INFO - LLM Prompt for extract_patient_info:\n", - "\n", - " Extract the patient's age and gender from the following clinical notes.\n", - " Return ONLY a JSON object with 'age' and 'gender' fields.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"age\": 55, \"gender\": \"male\"}\n", - "\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"is_valid\": false, \"reason\": \"The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.\"}\n", - "Invalid match, will rerun matching...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:21,641 - INFO - LLM Response for extract_patient_info:\n", - "{\"age\": 52, \"gender\": \"female\"}\n", - "2025-06-04 02:17:21,643 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:21,643 - INFO - Stage: extract_patient_info\n", - "2025-06-04 02:17:21,644 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Invalid match: The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.\",\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:21,644 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Invalid match: The code B20 is specific for HIV disease resulting in infectious and parasitic diseases, but the patient is immunocompromised due to rheumatoid arthritis treatment, not HIV, making B20 inappropriate for this case.\",\n", - " \"retry_count\": 3,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:21,645 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:21,646 - INFO - LLM Prompt for match_icd10_code:\n", - "\n", - " Match the clinical information to the most appropriate ICD-10 code from the provided list.\n", - " Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'.\n", - " DO NOT include any other text, thinking process, or explanation.\n", - " The response should start with { and end with }.\n", - "\n", - " Example of expected format:\n", - " {\"icd10_code\": \"xxx\", \"rationale\": \"xxxxx\"}\n", - "\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"age\": 52, \"gender\": \"female\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:24,262 - INFO - LLM Response for match_icd10_code:\n", - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\"}\n", - "2025-06-04 02:17:24,265 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:24,265 - INFO - Stage: match_icd10_code\n", - "2025-06-04 02:17:24,266 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": null,\n", - " \"retry_count\": 4,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:24,268 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\",\n", - " \"error\": null,\n", - " \"retry_count\": 4,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:24,269 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:24,270 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:24,271 - INFO - Stage: validate_icd10_code_exists\n", - "2025-06-04 02:17:24,271 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\",\n", - " \"error\": null,\n", - " \"retry_count\": 4,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:24,272 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": \"B20\",\n", - " \"rationale\": \"The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\",\n", - " \"error\": null,\n", - " \"retry_count\": 4,\n", - " \"stopped\": false\n", - "}\n", - "2025-06-04 02:17:24,272 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:24,274 - INFO - LLM Prompt for validate_icd10_clinical_match:\n", - "\n", - " Validate if the matched ICD-10 code is appropriate for the clinical case.\n", - " Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string).\n", - " DO NOT include any other text, thinking process, or explanation.\n", - "\n", - " Example of expected format:\n", - " {\"is_valid\": true, \"reason\": \"The code I10 matches the patient's hypertension diagnosis\"}\n", - " or\n", - " {\"is_valid\": false, \"reason\": \"The code I10 is too general for this specific case\"}\n", - "\n", - " Current Match:\n", - " ICD-10 Code: B20\n", - " Rationale: The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\n", - "\n", - " Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\n", - " Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\n", - " Patient Age: 52\n", - " Patient Gender: female\n", - "\n", - " Available ICD-10 Codes:\n", - " icd10\n", - "0 M81.0\n", - "1 Z79.4\n", - "2 E11.65\n", - "3 E03.9\n", - "5 E78.5\n", - "6 I10\n", - "7 E55.9\n", - "8 B20\n", - "9 Z94.81\n", - " \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"icd10_code\": \"B20\", \"rationale\": \"The patient's presentation with persistent fever, night sweats, weight loss, multiple small pulmonary nodules, and hepatosplenic lesions on immunosuppression raises concern for an opportunistic infection. B20 (HIV disease) is the only infectious disease code provided and is used for immunosuppression-related infections not otherwise specified by other codes in this list. While she is not documented as HIV-positive, none of the other available codes represent mycobacterial or fungal infections; hence, B20 most closely matches the clinical scenario of immunosuppression and opportunistic infection risk.\"}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-06-04 02:17:25,783 - INFO - LLM Response for validate_icd10_clinical_match:\n", - "{\"is_valid\": false, \"reason\": \"The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and not HIV, so B20 is not appropriate for this case.\"}\n", - "2025-06-04 02:17:25,784 - INFO - Validation result: {'is_valid': False, 'reason': 'The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and not HIV, so B20 is not appropriate for this case.'}\n", - "2025-06-04 02:17:25,787 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:25,787 - INFO - Stage: stopper_node\n", - "2025-06-04 02:17:25,787 - INFO - Input: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 4 retries. Manual review required.\",\n", - " \"retry_count\": 4,\n", - " \"stopped\": true\n", - "}\n", - "2025-06-04 02:17:25,788 - INFO - Output: {\n", - " \"clinical_question\": \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\",\n", - " \"clinical_notes\": \"52\\u2011year\\u2011old female with rheumatoid arthritis on methotrexate and low\\u2011dose prednisone presents with 6\\u2011week history of daily fevers up to 102\\u00b0F, drenching night sweats, and a 12\\u2011lb unintentional weight loss. Initial blood cultures and chest X\\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\\u202fmm/hr), and CRP (12\\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\",\n", - " \"icd10_codes\": \" icd10\\n0 M81.0\\n1 Z79.4\\n2 E11.65\\n3 E03.9\\n5 E78.5\\n6 I10\\n7 E55.9\\n8 B20\\n9 Z94.81\",\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 4 retries. Manual review required.\",\n", - " \"retry_count\": 4,\n", - " \"stopped\": true\n", - "}\n", - "2025-06-04 02:17:25,789 - INFO - ==================================================\n", - "\n", - "2025-06-04 02:17:25,790 - INFO - \n", - "==================================================\n", - "2025-06-04 02:17:25,792 - INFO - Final Result:\n", - "2025-06-04 02:17:25,794 - INFO - {\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 4 retries. Manual review required.\",\n", - " \"retry_count\": 4,\n", - " \"stopped\": true\n", - "}\n", - "2025-06-04 02:17:25,794 - INFO - ==================================================\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"is_valid\": false, \"reason\": \"The code B20 refers specifically to HIV disease, but the patient has immunosuppression due to rheumatoid arthritis treatment and not HIV, so B20 is not appropriate for this case.\"}\n", - "Invalid match, will rerun matching...\n", - "{\n", - " \"patient_age\": 52,\n", - " \"patient_gender\": \"female\",\n", - " \"icd10_code\": null,\n", - " \"rationale\": null,\n", - " \"error\": \"Stopped after 4 retries. Manual review required.\",\n", - " \"retry_count\": 4,\n", - " \"stopped\": true\n", - "}\n" - ] - } - ], + "outputs": [], "source": [ "# clinical_question =\"Could this patient's chronic upper abdominal discomfort and iron deficiency anemia indicate a peptic ulcer or upper GI malignancy, and is EGD indicated?\"\n", "\n", "# clinical_notes = \"47-year-old male with no significant past medical history presents with 3-month history of epigastric discomfort, early satiety, and unintentional 10 lb weight loss. Denies NSAID use, alcohol, or overt GI bleeding. Labs show iron deficiency anemia (Hgb 10.5, MCV 74, ferritin 12). Physical exam unremarkable. Concern for peptic ulcer disease or less likely gastric cancer. Seeking input on need for upper endoscopy.\"\n", "# Process the case\n", - "clinical_question = \"In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?\"\n", - "\n", - "clinical_notes = (\n", - " \"52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with \"\n", - " \"6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. \"\n", - " \"Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. \"\n", - " \"Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). \"\n", - " \"CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. \"\n", - " \"Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.\"\n", - ")\n", - "result = process_clinical_case(clinical_question, clinical_notes, top_200_icd10_codes_cleaned)\n", + "clinical_question = eConsult_question[\"Question\"].iloc[2]\n", + "clinical_notes = eConsult_question[\"Summary\"].iloc[2]\n", + "result = process_clinical_case(clinical_question, clinical_notes, top_icd10_codes_cleaned[[\"icd10\"]])\n", "print(json.dumps(result, indent=2))" ] }, { "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "# # Example usage\n", - "# clinical_question = \"Could this patient's recurrent, exertional chest pain with recent ECG abnormalities suggest underlying ischemic heart disease, and would further cardiac workup (e.g., stress testing or angiography) be appropriate at this time?\"\n", - "\n", - "# clinical_notes = \"\"\"55-year-old male with a history of hypertension and hyperlipidemia presents with 2-month history of intermittent chest discomfort described as a pressure-like sensation localized to the left chest, occasionally radiating to the jaw, occurring primarily during brisk walking or stair climbing. Denies associated nausea, diaphoresis, or syncope. Symptoms improve with rest. No prior cardiac history. Vital signs stable. Physical exam unremarkable. Recent resting ECG showed nonspecific ST changes. Lipid panel elevated; LDL 145 mg/dL. Concerned about possible stable angina. Requesting input on next steps for diagnostic evaluation and whether referral to cardiology is appropriate.\"\"\"\n", - "\n", - "# # print(\"Clinical notes before processing:\", clinical_notes) # Debug print\n", - "\n", - "# # Process the case\n", - "# result = process_clinical_case(clinical_question, clinical_notes, top_200_icd10_codes_cleaned)\n", - "# print(json.dumps(result, indent=2))" - ] - }, - { - "cell_type": "code", - "execution_count": 46, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1768,7 +828,7 @@ "text": [ "/Users/wenyuanchen/anaconda3/envs/sage_recommender/lib/python3.13/site-packages/google/auth/_default.py:76: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK without a quota project. You might receive a \"quota exceeded\" or \"API not enabled\" error. See the following page for troubleshooting: https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds. \n", " warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)\n", - "2025-05-12 01:47:52,472 - INFO - Successfully initialized BigQuery client for project som-nero-phi-jonc101\n" + "2025-06-22 16:59:18,197 - INFO - Successfully initialized BigQuery client for project som-nero-phi-jonc101\n" ] } ], @@ -1779,294 +839,87 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 39, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'patient_age': 52,\n", - " 'patient_gender': 'female',\n", - " 'icd10_code': 'Z79.4',\n", - " 'rationale': 'The patient is on long-term (current) use of methotrexate and low-dose prednisone, which is represented by the ICD-10 code Z79.4.',\n", - " 'error': None}" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "result" + "no_gender_filter_result = result.copy()\n", + "no_gender_filter_result[\"patient_gender\"] = None\n", + "\n", + "no_age_filter_result = result.copy()\n", + "no_age_filter_result[\"patient_age\"] = None\n", + "\n", + "no_filter_at_all_result = result.copy()\n", + "no_filter_at_all_result[\"patient_age\"] = None\n", + "no_filter_at_all_result[\"patient_gender\"] = None\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "2025-05-12 01:47:52,510 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'Z79.4', 'rationale': 'The patient is on long-term (current) use of methotrexate and low-dose prednisone, which is represented by the ICD-10 code Z79.4.', 'error': None}, type=proc, year=2024\n", - "2025-05-12 01:47:52,531 - INFO - Executing BigQuery query...\n", - "2025-05-12 01:47:55,968 - INFO - Query completed successfully. Returned 75 rows.\n" + "2025-06-22 17:20:50,025 - INFO - Building query for params={'patient_age': 31, 'patient_gender': 'female', 'icd10_code': 'A53.9', 'rationale': \"The patient has serologic evidence of syphilis (RPR and treponemal test positive) without symptoms, and was started on penicillin G treatment during pregnancy. A53.9 is the ICD-10 code for 'Syphilis, unspecified', which is used for confirmed syphilis cases without specification of stage or symptomatology.\", 'error': None, 'retry_count': 1, 'stopped': False}, type=lab, year=2024\n", + "2025-06-22 17:20:50,027 - INFO - Executing BigQuery query...\n", + "2025-06-22 17:20:53,333 - INFO - Query completed successfully. Returned 1 rows.\n", + "2025-06-22 17:20:53,334 - INFO - Building query for params={'patient_age': 31, 'patient_gender': 'female', 'icd10_code': 'A53.9', 'rationale': \"The patient has serologic evidence of syphilis (RPR and treponemal test positive) without symptoms, and was started on penicillin G treatment during pregnancy. A53.9 is the ICD-10 code for 'Syphilis, unspecified', which is used for confirmed syphilis cases without specification of stage or symptomatology.\", 'error': None, 'retry_count': 1, 'stopped': False}, type=med, year=2024\n", + "2025-06-22 17:20:53,334 - INFO - Executing BigQuery query...\n", + "2025-06-22 17:20:56,366 - INFO - Query completed successfully. Returned 0 rows.\n", + "2025-06-22 17:20:56,368 - INFO - Building query for params={'patient_age': 31, 'patient_gender': 'female', 'icd10_code': 'A53.9', 'rationale': \"The patient has serologic evidence of syphilis (RPR and treponemal test positive) without symptoms, and was started on penicillin G treatment during pregnancy. A53.9 is the ICD-10 code for 'Syphilis, unspecified', which is used for confirmed syphilis cases without specification of stage or symptomatology.\", 'error': None, 'retry_count': 1, 'stopped': False}, type=procedure, year=2024\n", + "2025-06-22 17:20:56,369 - INFO - Executing BigQuery query...\n", + "2025-06-22 17:21:00,896 - INFO - Query completed successfully. Returned 2 rows.\n", + "/Users/wenyuanchen/Desktop/Stanford/HealthRex/scripts/eConsult/Recommender/phase_1/Notebook/../api/bigquery_api.py:250: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " return pd.concat(all_results, ignore_index=True)\n" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
itemIddescriptionorder_procdepartmentencounter_departmentpatientRateencounterRatenPatientscohortItemnEncounterscohortItemnPatientsCohortTotalnEncountersCohortTotal
0LABUALBALBUMIN WITH CREATININE, URINE (RANDOM)EndocrinologyEndocrinology27.1110.638101990298818715
1LABA1CHEMOGLOBIN A1CEndocrinologyEndocrinology26.7716.128003017298818715
2LABMETBMETABOLIC PANEL, BASICEndocrinologyEndocrinology22.4910.126721894298818715
3LABMETCMETABOLIC PANEL, COMPREHENSIVEEndocrinologyEndocrinology19.446.665811247298818715
4LABLPDCLIPID PANEL WITH CALCULATED LDLEndocrinologyEndocrinology15.765.754711076298818715
.................................
70LABGLNFGLUCOSE NON-FASTING, SERUM/PLASMAEndocrinologyEndocrinology0.370.061111298818715
71LABANTITGTHYROGLOBULIN AB ULTRA-SENSITIVEEndocrinologyEndocrinology0.370.061112298818715
72EXTKPOTASSIUM (MANUAL ENTRY)EndocrinologyEndocrinology0.370.061111298818715
73LABT3T3, TOTALEndocrinologyEndocrinology0.370.071114298818715
74EXTNASODIUM (MANUAL ENTRY)EndocrinologyEndocrinology0.370.061111298818715
\n", - "

75 rows × 10 columns

\n", - "
" - ], - "text/plain": [ - " itemId description order_procdepartment \\\n", - "0 LABUALB ALBUMIN WITH CREATININE, URINE (RANDOM) Endocrinology \n", - "1 LABA1C HEMOGLOBIN A1C Endocrinology \n", - "2 LABMETB METABOLIC PANEL, BASIC Endocrinology \n", - "3 LABMETC METABOLIC PANEL, COMPREHENSIVE Endocrinology \n", - "4 LABLPDC LIPID PANEL WITH CALCULATED LDL Endocrinology \n", - ".. ... ... ... \n", - "70 LABGLNF GLUCOSE NON-FASTING, SERUM/PLASMA Endocrinology \n", - "71 LABANTITG THYROGLOBULIN AB ULTRA-SENSITIVE Endocrinology \n", - "72 EXTK POTASSIUM (MANUAL ENTRY) Endocrinology \n", - "73 LABT3 T3, TOTAL Endocrinology \n", - "74 EXTNA SODIUM (MANUAL ENTRY) Endocrinology \n", - "\n", - " encounter_department patientRate encounterRate nPatientscohortItem \\\n", - "0 Endocrinology 27.11 10.63 810 \n", - "1 Endocrinology 26.77 16.12 800 \n", - "2 Endocrinology 22.49 10.12 672 \n", - "3 Endocrinology 19.44 6.66 581 \n", - "4 Endocrinology 15.76 5.75 471 \n", - ".. ... ... ... ... \n", - "70 Endocrinology 0.37 0.06 11 \n", - "71 Endocrinology 0.37 0.06 11 \n", - "72 Endocrinology 0.37 0.06 11 \n", - "73 Endocrinology 0.37 0.07 11 \n", - "74 Endocrinology 0.37 0.06 11 \n", - "\n", - " nEncounterscohortItem nPatientsCohortTotal nEncountersCohortTotal \n", - "0 1990 2988 18715 \n", - "1 3017 2988 18715 \n", - "2 1894 2988 18715 \n", - "3 1247 2988 18715 \n", - "4 1076 2988 18715 \n", - ".. ... ... ... \n", - "70 11 2988 18715 \n", - "71 12 2988 18715 \n", - "72 11 2988 18715 \n", - "73 14 2988 18715 \n", - "74 11 2988 18715 \n", - "\n", - "[75 rows x 10 columns]" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "api.get_orders(\n", - " params=result,\n", - " result_type='proc',\n", - " limit=100\n", - ")\n" + "orders = api.get_orders(\n", + " params=result\n", + ")" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "no_gender_filter_orders = api.get_orders(\n", + " params=no_gender_filter_result\n", + ")\n", + "no_age_filter_orders = api.get_orders(\n", + " params=no_age_filter_result\n", + ")\n", + "\n", + "no_filter_at_all_orders = api.get_orders(\n", + " params=no_filter_at_all_result\n", + ")\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "no_filter_at_all_orders = api.get_orders(\n", + " params=no_filter_at_all_result\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 44, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-05-12 11:31:22,483 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'Z79.4', 'rationale': 'The patient is on long-term (current) use of methotrexate and low-dose prednisone, which is represented by the ICD-10 code Z79.4.', 'error': None}, type=med, year=2024\n", - "2025-05-12 11:31:22,512 - INFO - Executing BigQuery query...\n", - "2025-05-12 11:31:30,606 - INFO - Query completed successfully. Returned 10 rows.\n" - ] - }, { "data": { "text/html": [ @@ -2090,194 +943,183 @@ " \n", " itemId\n", " description\n", - " department\n", " patientRate\n", " encounterRate\n", " nPatientscohortItem\n", " nEncounterscohortItem\n", " nPatientsCohortTotal\n", " nEncountersCohortTotal\n", + " result_type\n", " \n", " \n", " \n", " \n", - " 0\n", - " 28995\n", - " METFORMIN 500 MG PO TB24\n", - " Endocrinology\n", - " 5.79\n", - " 1.46\n", - " 173\n", - " 274\n", - " 2988\n", - " 18715\n", - " \n", - " \n", - " 1\n", - " 201231\n", - " LANTUS SOLOSTAR U-100 INSULIN 100 UNIT/ML (3 M...\n", - " Endocrinology\n", - " 5.66\n", - " 1.38\n", - " 169\n", - " 258\n", - " 2988\n", - " 18715\n", - " \n", - " \n", - " 2\n", - " 233242\n", - " TRULICITY 1.5 MG/0.5 ML SC PNIJ\n", - " Endocrinology\n", - " 4.45\n", - " 0.95\n", - " 133\n", - " 177\n", - " 2988\n", - " 18715\n", - " \n", - " \n", - " 3\n", - " 203639\n", - " HUMALOG KWIKPEN INSULIN 100 UNIT/ML SC INPN\n", - " Endocrinology\n", - " 4.45\n", - " 1.13\n", - " 133\n", - " 212\n", - " 2988\n", - " 18715\n", - " \n", - " \n", - " 4\n", - " 24398\n", - " METFORMIN 1,000 MG PO TABS\n", - " Endocrinology\n", - " 4.02\n", - " 1.20\n", - " 120\n", - " 224\n", - " 2988\n", - " 18715\n", + " 19\n", + " Cobicistat\n", + " Cobicistat\n", + " 2.66\n", + " 1.03\n", + " 17\n", + " 18\n", + " 640\n", + " 1743\n", + " med\n", " \n", " \n", - " 5\n", - " 233241\n", - " TRULICITY 0.75 MG/0.5 ML SC PNIJ\n", - " Endocrinology\n", - " 4.02\n", - " 0.75\n", - " 120\n", - " 140\n", - " 2988\n", - " 18715\n", + " 20\n", + " 99214\n", + " EVAL/MGMT OF EST PATIENT\n", + " 41.56\n", + " 31.67\n", + " 266\n", + " 552\n", + " 640\n", + " 1743\n", + " procedure\n", " \n", " \n", - " 6\n", - " 232958\n", - " JARDIANCE 10 MG PO TABS\n", - " Endocrinology\n", - " 4.02\n", - " 0.84\n", - " 120\n", - " 157\n", - " 2988\n", - " 18715\n", + " 21\n", + " 99213\n", + " EVAL/MGMT OF EST PATIENT LEVEL 3\n", + " 24.84\n", + " 13.20\n", + " 159\n", + " 230\n", + " 640\n", + " 1743\n", + " procedure\n", " \n", " \n", - " 7\n", - " 232959\n", - " JARDIANCE 25 MG PO TABS\n", - " Endocrinology\n", - " 3.25\n", - " 0.82\n", - " 97\n", - " 154\n", - " 2988\n", - " 18715\n", + " 22\n", + " 99215\n", + " EVAL/MGMT OF EST PATIENT\n", + " 22.19\n", + " 13.43\n", + " 142\n", + " 234\n", + " 640\n", + " 1743\n", + " procedure\n", " \n", " \n", - " 8\n", - " 239231\n", - " BASAGLAR KWIKPEN U-100 INSULIN 100 UNIT/ML (3 ...\n", - " Endocrinology\n", - " 2.91\n", - " 0.99\n", - " 87\n", - " 186\n", - " 2988\n", - " 18715\n", + " 23\n", + " 96372\n", + " THERAPEUTIC PROPHYLACTIC/DX INJECTION SUBQ/IM\n", + " 21.72\n", + " 11.53\n", + " 139\n", + " 201\n", + " 640\n", + " 1743\n", + " procedure\n", " \n", " \n", - " 9\n", - " 247917\n", - " TRULICITY 3 MG/0.5 ML SC PNIJ\n", - " Endocrinology\n", - " 2.74\n", - " 0.61\n", - " 82\n", - " 115\n", - " 2988\n", - " 18715\n", + " 24\n", + " 99205\n", + " EVAL/MGMT OF NEW PATIENT\n", + " 16.09\n", + " 6.14\n", + " 103\n", + " 107\n", + " 640\n", + " 1743\n", + " procedure\n", " \n", " \n", "\n", "" ], "text/plain": [ - " itemId description department \\\n", - "0 28995 METFORMIN 500 MG PO TB24 Endocrinology \n", - "1 201231 LANTUS SOLOSTAR U-100 INSULIN 100 UNIT/ML (3 M... Endocrinology \n", - "2 233242 TRULICITY 1.5 MG/0.5 ML SC PNIJ Endocrinology \n", - "3 203639 HUMALOG KWIKPEN INSULIN 100 UNIT/ML SC INPN Endocrinology \n", - "4 24398 METFORMIN 1,000 MG PO TABS Endocrinology \n", - "5 233241 TRULICITY 0.75 MG/0.5 ML SC PNIJ Endocrinology \n", - "6 232958 JARDIANCE 10 MG PO TABS Endocrinology \n", - "7 232959 JARDIANCE 25 MG PO TABS Endocrinology \n", - "8 239231 BASAGLAR KWIKPEN U-100 INSULIN 100 UNIT/ML (3 ... Endocrinology \n", - "9 247917 TRULICITY 3 MG/0.5 ML SC PNIJ Endocrinology \n", + " itemId description patientRate \\\n", + "19 Cobicistat Cobicistat 2.66 \n", + "20 99214 EVAL/MGMT OF EST PATIENT 41.56 \n", + "21 99213 EVAL/MGMT OF EST PATIENT LEVEL 3 24.84 \n", + "22 99215 EVAL/MGMT OF EST PATIENT 22.19 \n", + "23 96372 THERAPEUTIC PROPHYLACTIC/DX INJECTION SUBQ/IM 21.72 \n", + "24 99205 EVAL/MGMT OF NEW PATIENT 16.09 \n", "\n", - " patientRate encounterRate nPatientscohortItem nEncounterscohortItem \\\n", - "0 5.79 1.46 173 274 \n", - "1 5.66 1.38 169 258 \n", - "2 4.45 0.95 133 177 \n", - "3 4.45 1.13 133 212 \n", - "4 4.02 1.20 120 224 \n", - "5 4.02 0.75 120 140 \n", - "6 4.02 0.84 120 157 \n", - "7 3.25 0.82 97 154 \n", - "8 2.91 0.99 87 186 \n", - "9 2.74 0.61 82 115 \n", + " encounterRate nPatientscohortItem nEncounterscohortItem \\\n", + "19 1.03 17 18 \n", + "20 31.67 266 552 \n", + "21 13.20 159 230 \n", + "22 13.43 142 234 \n", + "23 11.53 139 201 \n", + "24 6.14 103 107 \n", "\n", - " nPatientsCohortTotal nEncountersCohortTotal \n", - "0 2988 18715 \n", - "1 2988 18715 \n", - "2 2988 18715 \n", - "3 2988 18715 \n", - "4 2988 18715 \n", - "5 2988 18715 \n", - "6 2988 18715 \n", - "7 2988 18715 \n", - "8 2988 18715 \n", - "9 2988 18715 " + " nPatientsCohortTotal nEncountersCohortTotal result_type \n", + "19 640 1743 med \n", + "20 640 1743 procedure \n", + "21 640 1743 procedure \n", + "22 640 1743 procedure \n", + "23 640 1743 procedure \n", + "24 640 1743 procedure " ] }, - "execution_count": 55, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "api.get_orders(\n", - " params=result,\n", - " result_type='med',\n", - " limit=10\n", - ")" + "no_filter_at_all_orders.iloc[19:25]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "result_df = pd.DataFrame([result])\n", + "result_df.to_csv(f\"{log_dir}/result.csv\")\n", + "orders.to_csv(f\"{log_dir}/orders.csv\", index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "no_gender_filter_result" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "no_gender_result_df = pd.DataFrame([no_gender_filter_result])\n", + "no_gender_result_df.to_csv(f\"{log_dir}/non_gender_filter_result.csv\")\n", + "no_gender_filter_orders.to_csv(f\"{log_dir}/non_gender_filter_orders.csv\", index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "no_age_result_df = pd.DataFrame([no_age_filter_result])\n", + "no_age_result_df.to_csv(f\"{log_dir}/no_age_filter_result.csv\")\n", + "no_age_filter_orders.to_csv(f\"{log_dir}/no_age_filter_orders.csv\", index=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "no_filter_at_all_result_df = pd.DataFrame([no_filter_at_all_result])\n", + "no_filter_at_all_result_df.to_csv(f\"{log_dir}/no_filter_at_all_result.csv\")\n", + "no_filter_at_all_orders.to_csv(f\"{log_dir}/no_filter_at_all_orders.csv\", index=False)\n" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ diff --git a/scripts/eConsult/Recommender/phase_1/README.md b/scripts/eConsult/Recommender/phase_1/README.md index 6f3e593f..4dfe9f2f 100644 --- a/scripts/eConsult/Recommender/phase_1/README.md +++ b/scripts/eConsult/Recommender/phase_1/README.md @@ -2,137 +2,146 @@ A FastAPI-based API that processes clinical cases and recommends medical procedures or medications based on ICD-10 codes. -## Setup +## Quick Start -1. Install required packages: +### 1. Install Dependencies ```bash -pip install fastapi uvicorn requests google-cloud-bigquery pandas langchain-groq langgraph +cd phase_1 +pip install -r requirements.txt ``` -2. Set up Google Cloud credentials: - - Make sure you have the Google Cloud SDK installed - - Authenticate using `gcloud auth application-default login` - - The application uses the project "som-nero-phi-jonc101" - -## Running the API - -1. Start the FastAPI server: +### 2. Run the API ```bash -cd Recommender_API -uvicorn api.fastapi_app:app --reload --port 8002 +cd phase_1/api +python fastapi_app.py ``` -The API will be available at `http://localhost:8002` - -## API Endpoints +The API will be available at `http://localhost:8000` -### 1. Process Clinical Case -Processes clinical notes to extract patient information and determine the appropriate ICD-10 code. +## Data Structure -**Endpoint:** `POST /process_clinical_case` - -**Request Body:** +### Process Clinical Case Request ```json { - "clinical_question": "Could this patient have stable angina?", - "clinical_notes": "55-year-old male presents with chest pain on exertion..." + "clinical_question": "Patient has a history of prostate cancer...", + "clinical_notes": "What antibiotic should I use for this patient?", + "specialties": ["Infectious Diseases", "Urology"], + "limit": 5000 } ``` -**Response:** +### Get Orders Request ```json { - "patient_age": 55, - "patient_gender": "male", - "icd10_code": "I25.10", - "rationale": "Patient presents with typical symptoms of stable angina...", - "error": null + "icd10_code": "E11.9", + "patient_age": 45, + "patient_gender": "female", + "result_type": null, // "lab", "procedure", or null for all + "limit": 10 } ``` -### 2. Get Orders -Retrieves recommended procedures or medications based on the ICD-10 code and patient information. - -**Endpoint:** `POST /get_orders` - -**Request Body:** +### Get Orders from File Request ```json { - "icd10_code": "I25.10", - "patient_age": 55, - "patient_gender": "male", - "result_type": "proc", // or "med" - "limit": 10, - "min_patients_for_non_rare_items": 10, - "year": 2024 + "result_file_path": "logs/demo/clinical_workflow_20250623225312/result.csv", + "result_type": "lab", + "limit": 5 } ``` -**Response:** +### Query ICD-10 Request ```json { - "icd10_code": "I25.10", - "result_type": "proc", - "patient_age": 55, - "patient_gender": "male", - "data": [ - { - "itemId": "PROC123", - "description": "Cardiac Stress Test", - "patientRate": 45.5, - "encounterRate": 30.2, - "nPatientscohortItem": 150, - "nEncounterscohortItem": 75, - "nPatientsCohortTotal": 330, - "nEncountersCohortTotal": 248 - } - // ... more items - ] + "result_type": "icd10", + "specialties": ["Infectious Diseases", "Endocrinology"], + "limit": 10, + "query_params": null } ``` -## Example Usage +## Test API Commands + +### 1. Process a Clinical Case +```bash +curl -s -X POST "http://localhost:8000/process_clinical_case" \ + -H "Content-Type: application/json" \ + -d '{ + "clinical_question": "your question", + "clinical_notes": "your notes, + "specialties": ["Infectious Diseases", "Urology"], + "limit": 5000 + }' | jq +``` + +### 2. Get Orders (All Types) +```bash +curl -s -X POST "http://localhost:8000/get_orders" \ + -H "Content-Type: application/json" \ + -d '{ + "icd10_code": "E11.9", + "patient_age": 45, + "patient_gender": "female", + "result_type": null, + "limit": 10 + }' | jq +``` -You can use the provided example script to test the API: +### 3. Get Orders (Labs Only) +```bash +curl -s -X POST "http://localhost:8000/get_orders" \ + -H "Content-Type: application/json" \ + -d '{ + "icd10_code": "N39.0", + "patient_age": 60, + "patient_gender": "male", + "result_type": "lab", + "limit": 5 + }' | jq +``` +### 4. Get Orders (Procedures Only) ```bash -cd Recommender_API/api -python example_usage.py +curl -s -X POST "http://localhost:8000/get_orders" \ + -H "Content-Type: application/json" \ + -d '{ + "icd10_code": "I10", + "patient_age": 70, + "patient_gender": "female", + "result_type": "procedure", + "limit": 5 + }' | jq ``` -Or use curl commands: +### 5. Get Orders from File +```bash +curl -s -X POST "http://localhost:8000/get_orders_from_file" \ + -H "Content-Type: application/json" \ + -d '{ + "result_file_path": "logs/demo/clinical_workflow_20250623225312/result.csv", + "result_type": "lab", + "limit": 5 + }' | jq +``` +### 6. Query ICD-10 Codes ```bash -# Process clinical case -curl -X POST "http://localhost:8002/process_clinical_case" \ - -H "Content-Type: application/json" \ - -d '{ - "clinical_question": "Could this patient have stable angina?", - "clinical_notes": "55-year-old male with chest pain on exertion..." - }' - -# Get orders -curl -X POST "http://localhost:8002/get_orders" \ - -H "Content-Type: application/json" \ - -d '{ - "icd10_code": "I25.10", - "patient_age": 55, - "patient_gender": "male", - "result_type": "proc", - "limit": 10 - }' +curl -s -X POST "http://localhost:8000/query" \ + -H "Content-Type: application/json" \ + -d '{ + "result_type": "icd10", + "specialties": ["Infectious Diseases", "Endocrinology"], + "limit": 10, + "query_params": null + }' | jq ``` ## API Documentation -Once the server is running, you can access the interactive API documentation at: -- Swagger UI: `http://localhost:8002/docs` -- ReDoc: `http://localhost:8002/redoc` - -## Logging +Once running, access interactive documentation at: +- Swagger UI: `http://localhost:8000/docs` +- ReDoc: `http://localhost:8000/redoc` -The API logs its operations to `clinical_workflow.log` in the directory where the server is started. You can monitor the logs in real-time using: +## Note -```bash -tail -f clinical_workflow.log -``` \ No newline at end of file +If you don't have `jq` installed, remove `| jq` from the end of each curl command. `jq` just makes the output prettier but is not required. diff --git a/scripts/eConsult/Recommender/phase_1/api/bigquery_api.py b/scripts/eConsult/Recommender/phase_1/api/bigquery_api.py index 2546dab2..27479f7f 100644 --- a/scripts/eConsult/Recommender/phase_1/api/bigquery_api.py +++ b/scripts/eConsult/Recommender/phase_1/api/bigquery_api.py @@ -18,180 +18,244 @@ def __init__(self, project_id: str = "som-nero-phi-jonc101"): except Exception as e: logger.error(f"Failed to initialize BigQuery client: {str(e)}") raise Exception(f"Failed to initialize BigQuery client. Please ensure you have valid Google Cloud credentials set up. Error: {str(e)}") - def get_orders( self, params: Dict[str, Union[str, int, None]], min_patients_for_non_rare_items: int = 10, - result_type: str = "med", # Options: "proc", "med" - limit: int = 100, - year: int = 2024 # Default to 2024 if not specified + result_type: Optional[Union[str, List[str]]] = None, # Accept str, list, or None + limit: int = 10, + year: int = 2024 ) -> pd.DataFrame: - """Get common orders based on patient parameters and filters. + """ + Get common orders based on patient parameters and filters. + result_type can be a string, a list of strings, or None (all). + Args: + params (Dict): Dictionary containing patient parameters: + - patient_age (Optional[int]): Patient age + - patient_gender (Optional[str]): Patient gender + - icd10_code (Optional[str]): ICD-10 diagnosis code + min_patients_for_non_rare_items (int): Minimum number of patients for non-rare items. + result_type (Optional[Union[str, List[str]]]): + One or more result types to return. + Options are "lab", "med", and/or "procedure". + - If None (default), returns all three types concatenated. + - If a string, returns only that type. + - If a list, returns all specified types concatenated. + limit (int): Maximum number of results to return for each result type. + year (int): Year of the dataset to use (2022, 2023, or 2024). - Args: - params (Dict): Dictionary containing patient parameters: - - patient_age (Optional[int]): Patient age - - patient_gender (Optional[str]): Patient gender - - icd10_code (Optional[str]): ICD-10 diagnosis code - min_patients_for_non_rare_items (int): Minimum number of patients for non-rare items - result_type (str): Type of results to return ("proc" or "med") - limit (int): Maximum number of results to return - year (int): Year of the dataset to use (2022-2024) - - Returns: - pd.DataFrame: Results showing most common orders + Returns: + pd.DataFrame: Results showing the most common orders, with an added column 'result_type' indicating the source. """ try: # Validate year if year not in [2022, 2023, 2024]: raise ValueError("Year must be between 2022 and 2024") - # Extract parameters - patient_age = params.get('patient_age') - patient_gender = params.get('patient_gender') - icd10_code = params.get('icd10_code') - - # Build age filter if provided - age_filter = "" - # if patient_age is not None: - # age_filter = f"AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) = {patient_age}" - if patient_age is not None: - # Map single age to age group - if patient_age < 18: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 0 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 17" - elif patient_age < 45: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 18 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 44" - elif patient_age < 65: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 45 AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) <= 64" - else: - age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 65" - - # Build gender filter if provided - gender_filter = "" - if patient_gender is not None: - gender_filter = f"AND LOWER(demogx.gender) = LOWER('{patient_gender}')" + # Standardize result_type to a list + allowed_types = {"lab", "med", "procedure"} + if result_type is None: + result_types = ["lab", "med", "procedure"] + elif isinstance(result_type, str): + if result_type not in allowed_types: + raise ValueError(f"result_type must be one of {allowed_types}") + result_types = [result_type] + elif isinstance(result_type, list): + for t in result_type: + if t not in allowed_types: + raise ValueError(f"Each type in result_type must be one of {allowed_types}") + result_types = result_type + else: + raise ValueError("result_type must be str, list[str], or None") - # Build diagnosis filter if provided - diagnosis_filter = "" - if icd10_code is not None: - diagnosis_filter = f"AND dx.icd10 = '{icd10_code}'" - - logger.info(f"Building query for params={params}, type={result_type}, year={year}") - - query = f""" - WITH query_params AS ( - select - ['3'] as excludeMedOrderClass, - {min_patients_for_non_rare_items} as minPatientsForNonRareItems - ), - - cohortEncounter AS ( - select distinct - enc.anon_id, - demogx.birth_date_jittered_utc as birthDateTime, - demogx.gender as gender, - pat_enc_csn_id_coded as encounterId, - appt_when_jittered_utc as encounterDateTime, - dx.icd9, dx.icd10, dx_name, - dm.specialty as encounter_department, - DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) as age_when_encountered - from `shc_core_{year}.encounter` as enc - join `shc_core_{year}.diagnosis` as dx on enc.pat_enc_csn_id_coded = dx.pat_enc_csn_id_jittered - left join `shc_core_{year}.dep_map` dm ON enc.department_id = dm.department_id - left join `shc_core_{year}.demographic` as demogx on demogx.anon_id = enc.anon_id - # where visit_type like 'NEW PATIENT%' - where LOWER(enc.appt_type) IN ('appointment', 'office visit', 'telemedicine') - and appt_status = 'Completed' - {diagnosis_filter} - {gender_filter} - {age_filter} - ), - - cohortEncounterCount AS ( - select count(distinct anon_id) as nPatients, count(distinct encounterId) as nEncounters - from cohortEncounter - )""" - - if result_type == "proc": - query += f""" - ,cohortEncounterProc AS ( - select - op.proc_code, op.description, cohortEnc.encounter_department, - dm.specialty as order_proc_department, - count(distinct cohortEnc.anon_id) as nPatients, - count(distinct cohortEnc.encounterId) as nEncounters - from cohortEncounter as cohortEnc - join `shc_core_{year}.order_proc` as op on cohortEnc.encounterId = op.pat_enc_csn_id_coded - left join `shc_core_{year}.dep_map` dm ON op.department_id = dm.department_id - where op.ordering_mode = 'Outpatient' - and op.order_type IN ('Lab', 'Imaging', 'Point of Care Testing', 'Pathology', 'Microbiology Culture') - and dm.specialty IN ('Infectious Diseases', 'Endocrinology', 'Hematology') - group by op.proc_code, op.description, dm.specialty, cohortEnc.encounter_department - ) - SELECT - proc_code as itemId, - description, - order_proc_department as order_procdepartment, - encounter_department as encounter_department, - round(p.nPatients/c.nPatients *100,2) as patientRate, - round(p.nEncounters/c.nEncounters * 100,2) as encounterRate, - p.nPatients as nPatientscohortItem, - p.nEncounters as nEncounterscohortItem, - c.nPatients as nPatientsCohortTotal, - c.nEncounters as nEncountersCohortTotal - FROM cohortEncounterProc p - CROSS JOIN cohortEncounterCount c - CROSS JOIN query_params qp - WHERE p.nPatients > qp.minPatientsForNonRareItems - ORDER BY p.nPatients DESC - """ - elif result_type == "med": - query += f""" - ,cohortEncounterMed AS ( + all_results = [] + for rt in result_types: + patient_age = params.get('patient_age') + patient_gender = params.get('patient_gender') + icd10_code = params.get('icd10_code') + + age_filter = "" + if patient_age is not None: + if patient_age < 18: + age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) BETWEEN 0 AND 17" + elif patient_age < 45: + age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) BETWEEN 18 AND 44" + elif patient_age < 65: + age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) BETWEEN 45 AND 64" + else: + age_filter = "AND DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) >= 65" + + gender_filter = "" + if patient_gender is not None: + gender_filter = f"AND LOWER(demogx.gender) = LOWER('{patient_gender}')" + + diagnosis_filter = "" + if icd10_code is not None: + diagnosis_filter = f"AND dx.icd10 = '{icd10_code}'" + + logger.info(f"Building query for params={params}, type={rt}, year={year}") + + query = f""" + WITH query_params AS ( select - om.medication_id, - om.med_description, - cohortEnc.encounter_department, - count(distinct cohortEnc.anon_id) as nPatients, - count(distinct cohortEnc.encounterId) as nEncounters - from cohortEncounter as cohortEnc - join `shc_core_{year}.order_med` as om on cohortEnc.encounterId = om.pat_enc_csn_id_coded - left join `shc_core_{year}.mapped_meds` mm ON om.medication_id = mm.medication_id - cross join query_params qp - where om.order_class_c not in UNNEST(qp.excludeMedOrderClass) - and om.ordering_mode = 'Outpatient' - and (mm.rxcui_str IS NOT NULL OR mm.generic_name IS NOT NULL) - group by om.medication_id, om.med_description, cohortEnc.encounter_department - ) - SELECT - medication_id as itemId, - med_description as description, - encounter_department as department, - round(m.nPatients/c.nPatients *100,2) as patientRate, - round(m.nEncounters/c.nEncounters * 100,2) as encounterRate, - m.nPatients as nPatientscohortItem, - m.nEncounters as nEncounterscohortItem, - c.nPatients as nPatientsCohortTotal, - c.nEncounters as nEncountersCohortTotal - FROM cohortEncounterMed m - CROSS JOIN cohortEncounterCount c - CROSS JOIN query_params qp - WHERE m.nPatients > qp.minPatientsForNonRareItems - ORDER BY m.nPatients DESC - """ - - query += f" LIMIT {limit}" - - logger.info("Executing BigQuery query...") - query_job = self.client.query(query) - results = query_job.to_dataframe() - logger.info(f"Query completed successfully. Returned {len(results)} rows.") - return results - + ['3'] as excludeMedOrderClass, + {min_patients_for_non_rare_items} as minPatientsForNonRareItems + ), + cohortEncounter AS ( + select distinct + enc.anon_id, + demogx.birth_date_jittered_utc as birthDateTime, + demogx.gender as gender, + pat_enc_csn_id_coded as encounterId, + appt_when_jittered_utc as encounterDateTime, + dx.icd9, dx.icd10, dx_name, + dm.specialty as encounter_department, + DATE_DIFF(DATE(appt_when_jittered_utc), DATE(birth_date_jittered_utc), YEAR) as age_when_encountered + from `shc_core_{year}.encounter` as enc + join `shc_core_{year}.diagnosis` as dx on enc.pat_enc_csn_id_coded = dx.pat_enc_csn_id_jittered + left join `shc_core_{year}.dep_map` dm ON enc.department_id = dm.department_id + left join `shc_core_{year}.demographic` as demogx on demogx.anon_id = enc.anon_id + where LOWER(enc.appt_type) IN ('appointment', 'office visit', 'telemedicine') + and appt_status = 'Completed' + {diagnosis_filter} + {gender_filter} + {age_filter} + ), + cohortEncounterCount AS ( + select count(distinct anon_id) as nPatients, count(distinct encounterId) as nEncounters + from cohortEncounter + )""" + + if rt == "lab": + query += f""" + ,cohortEncounterProc AS ( + select + op.proc_code, op.description, + # cohortEnc.encounter_department, + # dm.specialty as order_proc_department, + count(distinct cohortEnc.anon_id) as nPatients, + count(distinct cohortEnc.encounterId) as nEncounters + from cohortEncounter as cohortEnc + join `shc_core_{year}.order_proc` as op on cohortEnc.encounterId = op.pat_enc_csn_id_coded + left join `shc_core_{year}.dep_map` dm ON op.department_id = dm.department_id + where op.ordering_mode = 'Outpatient' + and op.order_type IN ('Lab', 'Imaging', 'Point of Care Testing', 'Pathology', 'Microbiology Culture') + and dm.specialty IN ('Infectious Diseases', 'Endocrinology', 'Hematology') + group by op.proc_code, op.description + # ,dm.specialty, cohortEnc.encounter_department + ) + SELECT + proc_code as itemId, + description, + # order_proc_department as order_procdepartment, + # encounter_department as encounter_department, + round(p.nPatients/c.nPatients *100,2) as patientRate, + round(p.nEncounters/c.nEncounters * 100,2) as encounterRate, + p.nPatients as nPatientscohortItem, + p.nEncounters as nEncounterscohortItem, + c.nPatients as nPatientsCohortTotal, + c.nEncounters as nEncountersCohortTotal, + 'lab' as result_type + FROM cohortEncounterProc p + CROSS JOIN cohortEncounterCount c + CROSS JOIN query_params qp + WHERE p.nPatients > qp.minPatientsForNonRareItems + ORDER BY p.nPatients DESC + LIMIT {limit} + """ + elif rt == "med": + query += f""" + ,cohortEncounterMed AS ( + select + # om.medication_id, + # om.med_description, + mm.rxcui_str as medication_description, + # cohortEnc.encounter_department, + count(distinct cohortEnc.anon_id) as nPatients, + count(distinct cohortEnc.encounterId) as nEncounters + from cohortEncounter as cohortEnc + join `shc_core_{year}.order_med` as om on cohortEnc.encounterId = om.pat_enc_csn_id_coded + left join `shc_core_{year}.mapped_meds` mm ON om.medication_id = mm.medication_id + cross join query_params qp + where om.order_class_c not in UNNEST(qp.excludeMedOrderClass) + and om.ordering_mode = 'Outpatient' + and (mm.rxcui_str IS NOT NULL OR mm.generic_name IS NOT NULL) + group by mm.rxcui_str + # group by om.medication_id, om.med_description + # ,cohortEnc.encounter_department + ) + SELECT + medication_description as itemId, + medication_description as description, + # encounter_department as department, + round(m.nPatients/c.nPatients *100,2) as patientRate, + round(m.nEncounters/c.nEncounters * 100,2) as encounterRate, + m.nPatients as nPatientscohortItem, + m.nEncounters as nEncounterscohortItem, + c.nPatients as nPatientsCohortTotal, + c.nEncounters as nEncountersCohortTotal, + 'med' as result_type + FROM cohortEncounterMed m + CROSS JOIN cohortEncounterCount c + CROSS JOIN query_params qp + WHERE m.nPatients > qp.minPatientsForNonRareItems + ORDER BY m.nPatients DESC + LIMIT {limit} + """ + elif rt == "procedure": + query += f""" + ,cohortEncounterProcedure AS ( + select + proc.code, + proc.description, + # cohortEnc.encounter_department, + count(distinct proc.anon_id) as nPatients, + count(distinct proc.pat_enc_csn_id_coded) as nEncounters + from cohortEncounter as cohortEnc + join `som-nero-phi-jonc101.shc_core_{year}.procedure` as proc + on cohortEnc.anon_id = proc.anon_id + and cohortEnc.encounterId = proc.pat_enc_csn_id_coded + group by proc.description, proc.code + # , cohortEnc.encounter_department + ) + SELECT + code as itemId, + description as description, + # encounter_department as department, + round(p.nPatients/c.nPatients *100,2) as patientRate, + round(p.nEncounters/c.nEncounters * 100,2) as encounterRate, + p.nPatients as nPatientscohortItem, + p.nEncounters as nEncounterscohortItem, + c.nPatients as nPatientsCohortTotal, + c.nEncounters as nEncountersCohortTotal, + 'procedure' as result_type + FROM cohortEncounterProcedure p + CROSS JOIN cohortEncounterCount c + CROSS JOIN query_params qp + WHERE p.nPatients > qp.minPatientsForNonRareItems + ORDER BY p.nPatients DESC + LIMIT {limit} + """ + else: + raise ValueError("Unknown result_type") + + logger.info("Executing BigQuery query...") + query_job = self.client.query(query) + results = query_job.to_dataframe() + logger.info(f"Query completed successfully. Returned {len(results)} rows.") + all_results.append(results) + + # Concatenate and return as a single DataFrame + if all_results: + return pd.concat(all_results, ignore_index=True) + else: + return pd.DataFrame([]) # empty if nothing + except Exception as e: logger.error(f"Error in get_orders: {str(e)}", exc_info=True) - raise Exception(f"Failed to execute BigQuery query: {str(e)}") + raise Exception(f"Failed to execute BigQuery query: {str(e)}") + + if __name__ == "__main__": # Initialize the API @@ -204,19 +268,10 @@ def get_orders( 'icd10_code': 'I10' } - # Get medication orders - med_results = api.get_orders( - params=params, - result_type='med', - limit=100 - ) + df_all = api.get_orders(params) + df_lab = api.get_orders(params, result_type="lab") + df_mix = api.get_orders(params, result_type=["lab", "procedure"]) - # Get procedure orders - proc_results = api.get_orders( - params=params, - result_type='proc', - limit=100 - ) # Example with partial parameters partial_params = { @@ -224,9 +279,19 @@ def get_orders( 'patient_gender': None, # No gender restriction 'icd10_code': None # No diagnosis restriction } + df_all_partial = api.get_orders(params) + df_lab_partial = api.get_orders(params, result_type="lab") + df_mix_partial = api.get_orders(params, result_type=["lab", "procedure"]) # Print results - print("\nMedication Results:") - print(med_results) - print("\nProcedure Results:") - print(proc_results) \ No newline at end of file + # print("all Results:") + # df_all.to_csv("all_results_sample.csv", index=False) + # print(df_all) + # print(df_all_partial) + # print("lab Results:") + # df_lab.to_csv("lab_results_sample.csv", index=False) + # print(df_lab) + + # print("mix Results:") + # print(df_mix) + # df_mix.to_csv("mix_results_sample.csv", index=False) \ No newline at end of file diff --git a/scripts/eConsult/Recommender/phase_1/api/clinical_workflow_20250603_104422.log b/scripts/eConsult/Recommender/phase_1/api/clinical_workflow_20250603_104422.log deleted file mode 100644 index a339891f..00000000 --- a/scripts/eConsult/Recommender/phase_1/api/clinical_workflow_20250603_104422.log +++ /dev/null @@ -1,2360 +0,0 @@ -2025-06-03 10:45:33,035 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-03 10:45:34,648 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:45:34,660 - INFO - LLM Response for extract_patient_info: - -Okay, so I need to extract the patient's age and gender from the given clinical notes. Let me start by reading through the notes carefully. - -The first part says, "52-year-old female with rheumatoid arthritis..." So right there, I can see the age is 52 and the gender is female. That seems straightforward. - -I should make sure there's no other information that might contradict this. Sometimes, notes can have multiple mentions, but in this case, it's only mentioned once. - -I don't see any other numbers that could be age, and the gender is clearly stated as female. So I can confidently take age as 52 and gender as female. - -Now, I need to format this as a JSON object with only 'age' and 'gender' fields. The example provided uses lowercase for "male", so I should follow that and use "female" in lowercase as well. - -Putting it all together, the JSON should look like {"age": 52, "gender": "female"}. I need to make sure there are no extra spaces or characters and that it starts with { and ends with }. - -Double-checking, I don't see any other instructions or requirements, so this should be the correct response. - - -{"age": 52, "gender": "female"} -2025-06-03 10:45:34,674 - INFO - -================================================== -2025-06-03 10:45:34,674 - INFO - Stage: extract_patient_info -2025-06-03 10:45:34,674 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:45:34,675 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:45:34,675 - INFO - ================================================== - -2025-06-03 10:45:34,701 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 10:45:37,677 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:45:37,678 - INFO - LLM Response for match_icd10_code: - -Okay, I need to figure out the correct ICD-10 code for this patient. Let's start by looking at the clinical information provided. - -The patient is a 52-year-old female with a history of rheumatoid arthritis, treated with methotrexate and low-dose prednisone. She presents with persistent fever, night sweats, and significant unintentional weight loss over six weeks. Initial tests like blood cultures and chest X-ray didn't show anything, but the CT scan revealed multiple small pulmonary nodules and hepatosplenic lesions. The concern is between disseminated non-tuberculous mycobacteria (NTM) and histoplasmosis. - -Looking at the ICD-10 codes provided, I need to choose the most appropriate one. The options given include R69, which is for unspecified symptoms, but the patient's symptoms are quite specific. E78.5 is for hyperlipidemia, which doesn't fit here. Z00.00 is for general health examinations, which isn't the case. Z23 is for a need for immunization, which isn't relevant here. J96.01 is for acute respiratory failure, which isn't mentioned. R06.83 is for orthostatic hypotension, not relevant. R05.3 is for cough, which she denies. N39.41 is for urinary tract infection with E. coli, not applicable. Z01.89 is for other specified encounters, which might be too vague. - -The patient's main issue is the systemic infection, possibly from NTM or histoplasmosis. Since the exact cause isn't determined yet, but the presentation is indicative of a chronic infection, R05.3 (fever) might be a symptom code, but it doesn't capture the whole picture. However, looking again, R69 is a general code for symptoms and might be too broad. But in the absence of a specific code for the underlying infection, R69 could be appropriate for the symptoms described. Alternatively, if the infection is confirmed, a more specific code would be used, but since it's still a concern, R69 might be the best fit here. - -Wait, but the patient has specific findings on CT: multiple small pulmonary nodules and hepatosplenic lesions. These are indicative of a disseminated infection. So, perhaps a code for the infection itself would be more appropriate. However, looking at the available codes, there's no specific code for NTM or histoplasmosis listed. The provided options don't include A31.x (for other mycobacteria) or B39 (histoplasmosis). Therefore, in this case, the best fit from the provided list is R69, as it's a symptom code for the presentation of fever, night sweats, and weight loss, which are systemic symptoms of an underlying infection. - - -{"icd10_code": "R69", "rationale": "The patient presents with systemic symptoms such as fever, night sweats, and weight loss, which are indicative of a possible underlying infection. Given the absence of a specific code for the suspected disseminated mycobacterial or fungal infection in the provided list, R69 is the most appropriate code for these symptoms."} -2025-06-03 10:45:37,682 - INFO - -================================================== -2025-06-03 10:45:37,683 - INFO - Stage: match_icd10_code -2025-06-03 10:45:37,683 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:45:37,684 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R69", - "rationale": "The patient presents with systemic symptoms such as fever, night sweats, and weight loss, which are indicative of a possible underlying infection. Given the absence of a specific code for the suspected disseminated mycobacterial or fungal infection in the provided list, R69 is the most appropriate code for these symptoms.", - "error": null -} -2025-06-03 10:45:37,684 - INFO - ================================================== - -2025-06-03 10:45:37,689 - INFO - -================================================== -2025-06-03 10:45:37,689 - INFO - Stage: validate_icd10_code_exists -2025-06-03 10:45:37,689 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R69", - "rationale": "The patient presents with systemic symptoms such as fever, night sweats, and weight loss, which are indicative of a possible underlying infection. Given the absence of a specific code for the suspected disseminated mycobacterial or fungal infection in the provided list, R69 is the most appropriate code for these symptoms.", - "error": null -} -2025-06-03 10:45:37,691 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R69", - "rationale": "The patient presents with systemic symptoms such as fever, night sweats, and weight loss, which are indicative of a possible underlying infection. Given the absence of a specific code for the suspected disseminated mycobacterial or fungal infection in the provided list, R69 is the most appropriate code for these symptoms.", - "error": null -} -2025-06-03 10:45:37,691 - INFO - ================================================== - -2025-06-03 10:45:37,711 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: R69 - Rationale: The patient presents with systemic symptoms such as fever, night sweats, and weight loss, which are indicative of a possible underlying infection. Given the absence of a specific code for the suspected disseminated mycobacterial or fungal infection in the provided list, R69 is the most appropriate code for these symptoms. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 10:45:41,229 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:45:41,230 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to validate if the ICD-10 code R69 is appropriate for the given clinical case. Let me start by understanding the case details. The patient is a 52-year-old female with rheumatoid arthritis on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, drenching night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray didn't show anything. She has mild anemia, elevated ESR and CRP, and CT scans showing multiple small pulmonary nodules and hepatosplenic lesions. The concern is for disseminated non-tuberculous mycobacteria versus histoplasmosis. - -The rationale for using R69 is that it's for systemic symptoms like fever, night sweats, and weight loss, which are indicative of a possible underlying infection. However, there's no specific code provided for the suspected infections. - -Looking at the available ICD-10 codes, I see that R69 is indeed a code for "Other symptoms and signs involving the nervous and musculoskeletal systems." Wait, no, that's not right. Actually, R69 is "Other symptoms and signs involving the circulatory and respiratory systems." Hmm, no, maybe I'm mixing it up. Let me check: R69 is actually "Other symptoms and signs involving the circulatory and respiratory systems." Wait, no, that's not correct. R69 is part of the R codes, which are symptoms, signs, and abnormal clinical and laboratory findings. Specifically, R69 is "Other symptoms and signs involving the circulatory and respiratory systems." But wait, I think I might be confusing it. Let me confirm: R69 is actually "Other symptoms and signs involving the circulatory and respiratory systems." No, that's not accurate. Actually, R69 is "Other symptoms and signs involving the circulatory and respiratory systems." Wait, I'm getting confused. Let me look it up properly. - -Upon checking, R69 is actually "Other symptoms and signs involving the circulatory and respiratory systems." But in this case, the symptoms are more systemic and related to possible infection. So, R69 might not be the most specific code here. The patient's symptoms are more aligned with infection-related systemic symptoms, which would typically fall under codes like A41.9 for sepsis or other infection codes. However, since the exact infection isn't identified yet, maybe R50.9 (Generalized fever) or R53.83 (Other fatigue) could be considered, but they might not capture the full picture. - -Wait, looking at the available codes, I don't see A41.9 in the list. The closest might be R50.9 for fever, but that doesn't cover the night sweats and weight loss. R69 is a more general code for systemic symptoms, which might be appropriate when a specific infection code isn't available. Since the exact infection isn't confirmed, R69 could be a placeholder, but it's not ideal because it's too general and doesn't specify the infectious nature of the symptoms. - -Therefore, using R69 might not be the most accurate because it doesn't reflect the suspected underlying infection. It's better to wait for a more specific diagnosis or use a code that indicates an infectious process, even if it's unspecified. However, given the available codes, R69 might be the best option, but it's still too general. - - -{"is_valid": false, "reason": "The code R69 is too general for this specific case as it does not accurately reflect the suspected underlying infection."} -2025-06-03 10:45:41,230 - INFO - Validation result: {'is_valid': False, 'reason': 'The code R69 is too general for this specific case as it does not accurately reflect the suspected underlying infection.'} -2025-06-03 10:45:41,249 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 10:45:41,420 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:45:41,420 - INFO - Retrying request to /openai/v1/chat/completions in 10.000000 seconds -2025-06-03 10:45:54,805 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:45:54,807 - INFO - LLM Response for match_icd10_code: - -Okay, so I'm trying to figure out the appropriate ICD-10 code for this patient. Let's break down the information given. - -The patient is a 52-year-old female with a history of rheumatoid arthritis, treated with methotrexate and low-dose prednisone. She presents with persistent fever, night sweats, and significant weight loss over six weeks. Initial tests like blood cultures and chest X-ray didn't show anything, but CT scans revealed multiple small pulmonary nodules and hepatosplenic lesions. The differential diagnosis includes disseminated non-tuberculous mycobacteria (NTM) or histoplasmosis. - -Looking at the ICD-10 codes provided, I need to choose the most appropriate one. Let's go through the possibilities. - -First, I10 is essential hypertension, which doesn't apply here. R69 is for unspecified symptoms, but the patient has specific symptoms pointing towards an infection. E78.5 is for hyperlipidemia, which isn't relevant. Z00.00 is for encounters for general adult medical examination without abnormal findings, which doesn't fit because the patient has significant findings. Z23 is for persons with potential health hazards related to personal and family history of medical conditions; maybe, but not the best fit here. - -Since the patient has symptoms like fever, night sweats, and weight loss, and the CT findings suggest a possible infectious or inflammatory process, the most appropriate code would be R50.9, which is for fever, unspecified. However, I don't see R50.9 in the provided list. Wait, looking back, I don't see R50.9 in the list. The closest might be R69, but that's too vague. - -Wait, maybe I should consider the underlying condition. The patient is immunocompromised due to methotrexate and prednisone, so an infection is more likely. But the specific infection isn't confirmed yet. So perhaps R50.9 is the best choice, but since it's not in the list, maybe R05.3 (Fever, unspecified) is the next option. But R05.3 isn't in the provided codes either. - -Wait, looking at the available codes, I see R05.3 is at index 397 with count 140519. So that's an option. Alternatively, since the patient has systemic symptoms and CT findings, maybe R96.01 or R06.83, but those don't fit as well. - -Alternatively, considering the patient's symptoms and possible infection, maybe A30.0 for pulmonary mycobacterial infection, but that's not in the list. Alternatively, since it's disseminated, maybe A01.8 or A01.9, but again, not in the list. - -Given the options, the best fit is R05.3 for fever, unspecified, along with the systemic symptoms, but wait, I think R50.9 is more specific for fever. But since R50.9 isn't in the provided list, perhaps R05.3 is the next best choice. - -Wait, looking again, R05.3 is "Fever, unspecified" which is a specific code for fever. Since the patient has persistent fever, that seems appropriate. So the ICD-10 code would be R05.3 with the rationale being the patient's presentation of fever, night sweats, and weight loss, which are consistent with an infection like disseminated mycobacterial or fungal infection. - - -{"icd10_code": "R05.3", "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context."} -2025-06-03 10:45:54,814 - INFO - -================================================== -2025-06-03 10:45:54,814 - INFO - Stage: match_icd10_code -2025-06-03 10:45:54,814 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:45:54,814 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context.", - "error": null -} -2025-06-03 10:45:54,815 - INFO - ================================================== - -2025-06-03 10:45:54,820 - INFO - -================================================== -2025-06-03 10:45:54,820 - INFO - Stage: validate_icd10_code_exists -2025-06-03 10:45:54,821 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context.", - "error": null -} -2025-06-03 10:45:54,821 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context.", - "error": null -} -2025-06-03 10:45:54,824 - INFO - ================================================== - -2025-06-03 10:45:54,846 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: R05.3 - Rationale: The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 10:45:54,975 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:45:54,975 - INFO - Retrying request to /openai/v1/chat/completions in 39.000000 seconds -2025-06-03 10:46:37,590 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:46:37,593 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to validate if the ICD-10 code R05.3 is appropriate for the given clinical case. Let me start by understanding the case details. - -The patient is a 52-year-old female with rheumatoid arthritis on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, drenching night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray were negative. She denies cough, dyspnea, or focal pain. Labs show mild anemia, elevated ESR, and CRP. CT chest/abdomen shows multiple small pulmonary nodules and hepatosplenic lesions. The concern is for disseminated non-tuberculous mycobacteria versus histoplasmosis. - -The current ICD-10 code matched is R05.3, which is for fever, unspecified. The rationale provided is that R05.3 is appropriate given the clinical context of an infectious process like disseminated mycobacterial or fungal infection. - -Now, I need to check if R05.3 is the correct code. R05.3 is part of the R05 series, which includes fever of unspecified origin. However, in this case, the fever is part of a more specific clinical picture pointing towards an infectious process, possibly mycobacterial or fungal. - -Looking at the available ICD-10 codes, I see that R05.3 is listed at position 397 with a count of 140,519. But I also notice that other codes like R50.9 (Fever, unspecified) are present, but R05.3 is more specific to the type of fever. - -Wait, actually, R05.3 is "Fever, unspecified" and R50.9 is also "Fever, unspecified." Hmm, maybe I'm confusing the codes. Let me double-check. R05 is for symptoms and signs concerning the circulatory and respiratory systems, specifically fever. R50 is for general symptoms like fever. So R05.3 might be more specific to the respiratory context, but in this case, the fever is part of a systemic infection. - -However, the patient's presentation is more aligned with a specific infectious process rather than a general symptom. The presence of night sweats, weight loss, and imaging findings suggests a more severe condition. Therefore, coding just the fever might not capture the full clinical picture. - -But since the specific infection hasn't been confirmed yet, the appropriate code might still be R05.3 as it's the best fit for the symptoms presented. Alternatively, if the infection is identified, a more specific code would be used, but since it's still under investigation, R05.3 is appropriate. - -Wait, but in the available codes, I don't see any specific infection codes like B20 for HIV or C84.6 for histoplasmosis. So maybe R05.3 is the best choice here because the exact infection isn't confirmed yet. - -Therefore, R05.3 is valid because it accurately reflects the patient's presentation of fever without a specific cause identified yet. - - -{"is_valid": true, "reason": "The code R05.3 accurately reflects the patient's presentation of fever without a specific cause identified yet."} -2025-06-03 10:46:37,593 - INFO - Validation result: {'is_valid': True, 'reason': "The code R05.3 accurately reflects the patient's presentation of fever without a specific cause identified yet."} -2025-06-03 10:46:37,600 - INFO - -================================================== -2025-06-03 10:46:37,600 - INFO - Stage: validate_icd10_clinical_match -2025-06-03 10:46:37,600 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context.", - "error": null -} -2025-06-03 10:46:37,600 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are consistent with an infectious process such as disseminated mycobacterial or fungal infection. R05.3 is the most appropriate code for fever, unspecified, given the clinical context.", - "error": null -} -2025-06-03 10:46:37,601 - INFO - ================================================== - -2025-06-03 10:46:37,615 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'R05.3'}, type=proc, year=2024 -2025-06-03 10:46:37,615 - INFO - Executing BigQuery query... -2025-06-03 10:46:40,451 - INFO - Query completed successfully. Returned 1 rows. -2025-06-03 10:46:43,346 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-03 10:46:43,434 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:46:43,434 - INFO - Retrying request to /openai/v1/chat/completions in 15.000000 seconds -2025-06-03 10:46:59,980 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:46:59,986 - INFO - LLM Response for extract_patient_info: - -Okay, so I need to extract the patient's age and gender from the given clinical notes. Let me read through the notes carefully. - -The first part says "52-year-old female". That's pretty straightforward. So the age is 52 and the gender is female. I don't see any other mentions of age or gender in the notes, so that should be it. - -I should make sure to format the JSON correctly. The age should be a number without quotes, and the gender should be a string in lowercase as per the example. So the JSON should look like {"age": 52, "gender": "female"}. - -I think that's all. No other information is needed, just those two fields. - - -{"age": 52, "gender": "female"} -2025-06-03 10:46:59,995 - INFO - -================================================== -2025-06-03 10:46:59,995 - INFO - Stage: extract_patient_info -2025-06-03 10:46:59,995 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:46:59,996 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:46:59,996 - INFO - ================================================== - -2025-06-03 10:47:00,064 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 10:47:00,213 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:47:00,213 - INFO - Retrying request to /openai/v1/chat/completions in 4.000000 seconds -2025-06-03 10:47:05,924 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:47:05,926 - INFO - LLM Response for match_icd10_code: - -Okay, let me try to figure out the correct ICD-10 code for this patient. The patient is a 52-year-old female with rheumatoid arthritis on methotrexate and low-dose prednisone. She has a 6-week history of fevers, night sweats, and weight loss. Initial tests didn't show much, but CT scans found multiple small pulmonary nodules and hepatosplenic lesions. The main concerns are disseminated non-tuberculous mycobacteria or histoplasmosis. - -Looking at the ICD-10 codes provided, I need to match the clinical presentation. The symptoms are persistent fever, night sweats, weight loss, and the imaging shows multiple lesions. The key here is that the symptoms are non-specific but suggest a chronic infection. - -The available codes I see are R05.3, which is for unspecified chronic fever. That seems to fit because the patient has a persistent fever without a specific diagnosis yet. The other codes might not fit as well. For example, R06.83 is for shivering, which isn't mentioned here. E78.5 is for hyperlipidemia, which isn't relevant. Z codes like Z23 are for need for immunization, which doesn't apply. - -So, R05.3 seems appropriate because it covers the chronic fever part of the presentation, which is a significant symptom here. The rest of the symptoms like night sweats and weight loss are supporting the chronic infection, but the code specifically for chronic fever is R05.3. - - -{"icd10_code": "R05.3", "rationale": "The patient presents with persistent fever, which aligns with R05.3, the code for unspecified chronic fever."} -2025-06-03 10:47:05,931 - INFO - -================================================== -2025-06-03 10:47:05,932 - INFO - Stage: match_icd10_code -2025-06-03 10:47:05,932 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:47:05,933 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, which aligns with R05.3, the code for unspecified chronic fever.", - "error": null -} -2025-06-03 10:47:05,934 - INFO - ================================================== - -2025-06-03 10:47:05,939 - INFO - -================================================== -2025-06-03 10:47:05,939 - INFO - Stage: validate_icd10_code_exists -2025-06-03 10:47:05,939 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, which aligns with R05.3, the code for unspecified chronic fever.", - "error": null -} -2025-06-03 10:47:05,940 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever, which aligns with R05.3, the code for unspecified chronic fever.", - "error": null -} -2025-06-03 10:47:05,941 - INFO - ================================================== - -2025-06-03 10:47:05,963 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: R05.3 - Rationale: The patient presents with persistent fever, which aligns with R05.3, the code for unspecified chronic fever. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 10:47:06,068 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:47:06,069 - INFO - Retrying request to /openai/v1/chat/completions in 35.000000 seconds -2025-06-03 10:47:44,269 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:47:44,272 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to figure out if the ICD-10 code R05.3 is appropriate for this patient. Let me start by understanding what R05.3 stands for. From what I remember, R05 is the code for symptoms and signs concerning the circulatory and respiratory systems, specifically for unspecified chronic fever. So R05.3 would be more specific, but I'm not exactly sure what the .3 denotes here. Maybe it's just a placeholder for the specific type of fever. - -Now, looking at the clinical case: the patient is a 52-year-old woman with rheumatoid arthritis on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray didn't show anything. She doesn't have cough, dyspnea, or focal pain. Her labs show mild anemia, elevated ESR, and CRP. CT scans show multiple small pulmonary nodules and hepatosplenic lesions. The concern is for disseminated non-tuberculous mycobacteria versus histoplasmosis. - -So, the patient has persistent fever, which is why R05.3 was considered. But I need to check if this is the most appropriate code. R05.3 is for unspecified chronic fever, but in this case, the fever isn't just a standalone symptom. It's part of a bigger picture that includes night sweats, weight loss, and imaging findings suggesting a possible infectious or inflammatory process. - -The clinical question is whether this could be a disseminated mycobacterial infection or a fungal infection. The patient is immunocompromised due to methotrexate and prednisone, which increases her risk for opportunistic infections. The symptoms and imaging are pointing towards something more specific than just chronic fever. - -If the cause of the fever is identified as mycobacterial or fungal, then a more specific ICD-10 code for that infection would be more appropriate. For example, if it's histoplasmosis, the code would be B39.9 or more specific if the type is known. Similarly, for mycobacterial infections, codes like A31.23 for pulmonary mycobacterium avium complex could be used. - -Using R05.3 might be too vague because it doesn't capture the underlying cause. It's more of a symptom code, and in this case, the symptoms are part of a larger, more specific condition. Therefore, R05.3 isn't the best fit here because it doesn't reflect the potential infectious process that's being investigated. - -So, the code R05.3 is not valid in this context because it's too general and doesn't address the possible specific infections that are being considered. A more precise code for the suspected condition should be used instead. - - -{"is_valid": false, "reason": "The code R05.3 is too general and does not capture the potential underlying infectious process such as disseminated mycobacterial or fungal infection."} -2025-06-03 10:47:44,272 - INFO - Validation result: {'is_valid': False, 'reason': 'The code R05.3 is too general and does not capture the potential underlying infectious process such as disseminated mycobacterial or fungal infection.'} -2025-06-03 10:47:44,302 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 10:47:44,376 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:47:44,377 - INFO - Retrying request to /openai/v1/chat/completions in 22.000000 seconds -2025-06-03 10:48:09,844 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:48:09,847 - INFO - LLM Response for match_icd10_code: - -Alright, so I'm trying to figure out the appropriate ICD-10 code for this patient. Let me start by going through the clinical notes provided. The patient is a 52-year-old female with rheumatoid arthritis, on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, night sweats, and unintentional weight loss of 12 pounds. - -Her initial blood cultures and chest X-ray didn't show anything, and she doesn't have symptoms like cough, dyspnea, or focal pain. Her labs show mild anemia, elevated ESR, and CRP. The CT scan of her chest and abdomen revealed multiple small pulmonary nodules and hepatosplenic lesions. The main concerns are disseminated non-tuberculous mycobacteria versus histoplasmosis. - -Now, looking at the ICD-10 codes provided, I need to match the most appropriate one. The possible conditions here are either a mycobacterial infection or a fungal infection like histoplasmosis. However, the patient is immunocompromised due to rheumatoid arthritis treatment with methotrexate and prednisone, which suppresses the immune system, making her more susceptible to opportunistic infections. - -I remember that in ICD-10, certain codes are used for infections. For mycobacterial infections, especially non-tuberculous mycobacteria (NTM), the codes fall under A30, but I don't see that in the provided list. For histoplasmosis, the code is B39.0. But again, I'm not sure if that's in the list. - -Wait, looking back, the available codes don't include A30 or B39.0. So I need to see if there's a code that represents the symptoms or the underlying condition. The patient has systemic symptoms like fever, night sweats, and weight loss, which could be coded under R50.9 (Fever, unspecified). But that seems too general. - -Alternatively, since the patient is immunocompromised and the concern is about an opportunistic infection, perhaps the code Z95.1 (Presence of arteriovenous fistula) isn't relevant here. Maybe looking for a code that indicates immunodeficiency. However, the patient's immunocompromised state is due to her treatment, not a congenital condition, so codes like D84.9 (Immunodeficiency, unspecified) might apply, but that's not in the list. - -Wait, looking at the provided list, I don't see any infection-specific codes. So maybe I should consider the symptoms. The patient has a persistent fever, which is a significant symptom here. In the available codes, R50.9 is present, which is for fever, unspecified. That might be the best fit here since the cause of the fever is still uncertain, and it's a prominent symptom. - -Alternatively, if I consider the possibility of a fungal infection, but without a specific code, R50.9 seems appropriate. Also, the patient has night sweats and weight loss, which are systemic symptoms often associated with chronic infections or malignancies. But again, without a specific code for the suspected infection, R50.9 is the most accurate. - -So, I think the correct ICD-10 code here is R50.9, with the rationale being that the patient presents with persistent fever, night sweats, and weight loss, which are all symptoms captured by this code while the underlying cause is being investigated. - - -{"icd10_code": "R50.9", "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated."} -2025-06-03 10:48:09,854 - INFO - -================================================== -2025-06-03 10:48:09,855 - INFO - Stage: match_icd10_code -2025-06-03 10:48:09,855 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 10:48:09,855 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R50.9", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated.", - "error": null -} -2025-06-03 10:48:09,856 - INFO - ================================================== - -2025-06-03 10:48:09,862 - INFO - -================================================== -2025-06-03 10:48:09,862 - INFO - Stage: validate_icd10_code_exists -2025-06-03 10:48:09,862 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R50.9", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated.", - "error": null -} -2025-06-03 10:48:09,866 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R50.9", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated.", - "error": null -} -2025-06-03 10:48:09,867 - INFO - ================================================== - -2025-06-03 10:48:09,907 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: R50.9 - Rationale: The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 10:48:09,999 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 10:48:10,000 - INFO - Retrying request to /openai/v1/chat/completions in 38.000000 seconds -2025-06-03 10:48:51,394 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 10:48:51,420 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to validate whether the ICD-10 code R50.9 is appropriate for this clinical case. Let me start by understanding the case details. - -The patient is a 52-year-old female with rheumatoid arthritis, on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, drenching night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray didn't show anything. She doesn't have cough, dyspnea, or focal pain. Her labs show mild anemia, elevated ESR, and CRP. CT scans reveal multiple small pulmonary nodules and hepatosplenic lesions. The concern is for disseminated non-tuberculous mycobacteria versus histoplasmosis. They're asking for input on biopsy site selection and empiric therapy. - -Now, looking at the ICD-10 code R50.9, which is "Fever, unspecified." The rationale given is that the patient has persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 while the underlying cause is being investigated. - -But wait, the clinical question is about whether this could be disseminated mycobacterial infection or an atypical fungal process. These are specific conditions that go beyond just fever. The patient's symptoms and test results suggest a more serious underlying condition rather than just a simple fever. - -R50.9 is a very general code. It's used when the cause of the fever isn't known. However, in this case, the clinical team is already investigating specific, potentially serious infections. Using R50.9 might not capture the severity or the specific differential diagnoses they're considering. - -Moreover, the patient has significant weight loss, night sweats, and systemic symptoms, which are often associated with chronic infections like tuberculosis or fungal infections. These symptoms could be better captured by more specific codes if available, but looking at the available ICD-10 codes, I don't see any that directly match disseminated mycobacterial infection or histoplasmosis. - -But wait, let me check the available codes again. The list provided includes codes like B18.1 for chronic hepatitis B, but I don't see specific codes for mycobacterial infections or histoplasmosis. So maybe R50.9 is the best they can do for now. However, R50.9 is quite non-specific and might not fully represent the clinical scenario, which is leaning towards a more specific infectious cause. - -On the other hand, if the cause is still unknown and they're in the process of investigating, R50.9 might be appropriate as a placeholder. But given that they have a high suspicion of specific infections, it might be better to code for those if possible. Since those specific codes aren't listed here, R50.9 might be the only option, but it's not ideal because it doesn't reflect the complexity of the case. - -So, considering all this, R50.9 is technically correct for the symptoms described but doesn't capture the underlying suspected conditions. However, without more specific codes available, it might be the best choice for now. Therefore, it's valid, but perhaps not the most precise. - - -{"is_valid": true, "reason": "R50.9 is appropriate as it captures the patient's fever while the underlying cause is being investigated."} -2025-06-03 10:48:51,422 - INFO - Validation result: {'is_valid': True, 'reason': "R50.9 is appropriate as it captures the patient's fever while the underlying cause is being investigated."} -2025-06-03 10:48:51,433 - INFO - -================================================== -2025-06-03 10:48:51,434 - INFO - Stage: validate_icd10_clinical_match -2025-06-03 10:48:51,434 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R50.9", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated.", - "error": null -} -2025-06-03 10:48:51,434 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R50.9", - "rationale": "The patient presents with persistent fever, night sweats, and weight loss, which are symptoms captured by R50.9 (Fever, unspecified) while the underlying cause is being investigated.", - "error": null -} -2025-06-03 10:48:51,435 - INFO - ================================================== - -2025-06-03 10:48:51,462 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'R50.9'}, type=med, year=2024 -2025-06-03 10:48:51,463 - INFO - Executing BigQuery query... -2025-06-03 10:48:57,521 - INFO - Query completed successfully. Returned 10 rows. diff --git a/scripts/eConsult/Recommender/phase_1/api/demo_api.sh b/scripts/eConsult/Recommender/phase_1/api/demo_api.sh new file mode 100755 index 00000000..635acc48 --- /dev/null +++ b/scripts/eConsult/Recommender/phase_1/api/demo_api.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +# Medical Recommender API - Live cURL Demo (User Input) +# ======================================== + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +BASE_URL="http://localhost:8000" + +print_header() { + echo -e "\n${BLUE}========================================${NC}" + echo -e "${BLUE}$1${NC}" + echo -e "${BLUE}========================================${NC}" +} + +print_step() { + echo -e "${YELLOW}$1${NC}" +} + +print_json() { + if command -v jq &>/dev/null; then + echo "$1" | jq + else + echo "$1" + fi +} + +# === Prompt user for input === +echo -e "${YELLOW}Please enter the clinical question:${NC}" +read -r CLINICAL_QUESTION + +echo -e "${YELLOW}Please enter the clinical notes:${NC}" +read -r CLINICAL_NOTES + +# Escape quotes and newlines for JSON +CLINICAL_QUESTION_ESCAPED=$(printf '%s' "$CLINICAL_QUESTION" | python3 -c 'import sys, json; print(json.dumps(sys.stdin.read().strip()))') +CLINICAL_NOTES_ESCAPED=$(printf '%s' "$CLINICAL_NOTES" | python3 -c 'import sys, json; print(json.dumps(sys.stdin.read().strip()))') + +# 1. Process a clinical case +print_header "Step 1: Process a Clinical Case" +print_step "POST /process_clinical_case" + +RESPONSE=$(curl -s -X POST "$BASE_URL/process_clinical_case" \ + -H 'Content-Type: application/json' \ + -d '{ + "clinical_question": '"$CLINICAL_QUESTION_ESCAPED"', + "clinical_notes": '"$CLINICAL_NOTES_ESCAPED"' + }') + +print_json "$RESPONSE" + +ICD10_CODE=$(echo "$RESPONSE" | jq -r .icd10_code 2>/dev/null) +PATIENT_AGE=$(echo "$RESPONSE" | jq -r .patient_age 2>/dev/null) +PATIENT_GENDER=$(echo "$RESPONSE" | jq -r .patient_gender 2>/dev/null) + +if [[ "$ICD10_CODE" == "null" || -z "$ICD10_CODE" ]]; then + echo -e "${RED}Clinical case failed. Error: $(echo "$RESPONSE" | jq -r .error 2>/dev/null)${NC}" + exit 1 +fi + +# 2. Get recommended orders for this case (all types) +print_header "Step 2: Get Recommended Orders" +print_step "POST /get_orders" + +ORDERS_PAYLOAD=$(cat < tags and extracting only the actual response.""" + """ + Clean up the output by removing content wrapped in tags and extracting only the actual response. + """ + # If the output is already a DataFrame, return it directly if isinstance(output, pd.DataFrame): return output + # Remove all content between tags cleaned_output = re.sub(r'.*?', '', output, flags=re.DOTALL) + + # Remove any leading/trailing whitespace cleaned_output = cleaned_output.strip() return cleaned_output @@ -121,27 +165,27 @@ def log_stage(stage_name: str, input_data: dict, output_data: dict): output_copy = output_data.copy() if 'icd10_codes' in input_copy and isinstance(input_copy['icd10_codes'], pd.DataFrame): - input_copy['icd10_codes'] = input_copy['icd10_codes'].to_string() + input_copy['icd10_codes'] = "check separate file for icd10_codes" if 'icd10_codes' in output_copy and isinstance(output_copy['icd10_codes'], pd.DataFrame): - output_copy['icd10_codes'] = output_copy['icd10_codes'].to_string() + output_copy['icd10_codes'] = "check separate file for icd10_codes" logging.info(f"\n{'='*50}") - logging.info(f"Stage: {stage_name}") + logging.info(f"Summary of Stage: {stage_name}") logging.info(f"Input: {json.dumps(input_copy, indent=2)}") logging.info(f"Output: {json.dumps(output_copy, indent=2)}") logging.info(f"{'='*50}\n") +def stopper_node(state: dict) -> dict: + state = state.copy() + state['stopped'] = True + state['error'] = f"Stopped after {state.get('retry_count', 0)} retries. Manual review required." + log_stage("stopper_node", state, state) + return state + def extract_patient_info(state: dict) -> dict: """Extract patient age and gender from clinical notes.""" input_state = state.copy() - llm = ChatGroq( - model_name="Deepseek-R1-Distill-Llama-70b", - temperature=0.3, - api_key= api_key - - ) - prompt = f""" Extract the patient's age and gender from the following clinical notes. Return ONLY a JSON object with 'age' and 'gender' fields. @@ -155,11 +199,12 @@ def extract_patient_info(state: dict) -> dict: """ logging.info(f"LLM Prompt for extract_patient_info:\n{prompt}") - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for extract_patient_info:\n{response.content}") + response = query_llm(prompt) + logging.info(f"LLM Response for extract_patient_info:\n{response}") try: - content = clean_output(response.content) + # Clean the response to handle markdown code block + content = clean_output(response) info = json.loads(content) state['patient_age'] = info['age'] state['patient_gender'] = info['gender'] @@ -172,14 +217,11 @@ def extract_patient_info(state: dict) -> dict: def match_icd10_code(state: dict) -> dict: """Match clinical information to ICD-10 code.""" state['error'] = None + state['retry_count'] += 1 + input_state = state.copy() - - llm = ChatGroq( - model="Deepseek-R1-Distill-Llama-70b", - api_key= api_key - ) - prompt = f""" + raw_prompt = f""" Match the clinical information to the most appropriate ICD-10 code from the provided list. Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. DO NOT include any other text, thinking process, or explanation. @@ -194,32 +236,35 @@ def match_icd10_code(state: dict) -> dict: Patient Age: {state.get('patient_age')} Patient Gender: {state.get('patient_gender')} - Available ICD-10 Codes: - {state.get('icd10_codes')} """ - logging.info(f"LLM Prompt for match_icd10_code:\n{prompt}") - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for match_icd10_code:\n{response.content}") + prompt = raw_prompt + f"Available ICD-10 Codes: {state['icd10_codes'].to_string()}" + logging.info(f"LLM Prompt for match_icd10_code:\n{raw_prompt} + available ICD-10 codes") + response = query_llm(prompt) + logging.info(f"LLM Response for match_icd10_code:\n{response}") try: - output = clean_output(response.content) + output = clean_output(response) match = json.loads(output) state['icd10_code'] = match['icd10_code'] state['rationale'] = match['rationale'] except: state['error'] = "Failed to match ICD-10 code" + log_stage("match_icd10_code", input_state, state) return state def validate_icd10_code_exists(state: dict) -> dict: """Validate if the ICD-10 code exists in the provided list.""" input_state = state.copy() + # Check if the code is in the provided list valid_codes = state['icd10_codes']['icd10'].tolist() if state.get('icd10_code') not in valid_codes: logging.warning(f"Invalid code {state.get('icd10_code')}, will rerun matching...") + print(f"Invalid code {state.get('icd10_code')}, will rerun matching...") state['error'] = f"Invalid code {state.get('icd10_code')}, not in provided list" state['icd10_code'] = None state['rationale'] = None else: + # Clear any previous errors if validation passes state['error'] = None log_stage("validate_icd10_code_exists", input_state, state) return state @@ -227,13 +272,8 @@ def validate_icd10_code_exists(state: dict) -> dict: def validate_icd10_clinical_match(state: dict) -> dict: """Validate if the matched ICD-10 code is clinically appropriate.""" input_state = state.copy() - llm = ChatGroq( - model_name="Deepseek-R1-Distill-Llama-70b", - temperature=0.3, - api_key= api_key - ) - prompt = f""" + raw_prompt = f""" Validate if the matched ICD-10 code is appropriate for the clinical case. Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). DO NOT include any other text, thinking process, or explanation. @@ -251,25 +291,25 @@ def validate_icd10_clinical_match(state: dict) -> dict: Clinical Notes: {state.get('clinical_notes')} Patient Age: {state.get('patient_age')} Patient Gender: {state.get('patient_gender')} - - Available ICD-10 Codes: - {state['icd10_codes'].to_string()} """ - logging.info(f"LLM Prompt for validate_icd10_clinical_match:\n{prompt}") + prompt = raw_prompt + f"Available ICD-10 Codes: {state['icd10_codes'].to_string()}" + logging.info(f"LLM Prompt for validate_icd10_clinical_match:\n{raw_prompt} + available ICD-10 codes") - response = llm.invoke([HumanMessage(content=prompt)]) - logging.info(f"LLM Response for validate_icd10_clinical_match:\n{response.content}") try: - output = clean_output(response.content) + response = query_llm(prompt) + logging.info(f"LLM Response for validate_icd10_clinical_match:\n{response}") + output = clean_output(response) validation = json.loads(output) logging.info(f"Validation result: {validation}") if not validation['is_valid']: + print("Invalid match, will rerun matching...") state['error'] = f"Invalid match: {validation['reason']}" state['icd10_code'] = None state['rationale'] = None return state else: + # Clear any previous errors if validation passes state['error'] = None except Exception as e: logging.error(f"Validation error: {str(e)}") @@ -279,7 +319,7 @@ def validate_icd10_clinical_match(state: dict) -> dict: log_stage("validate_icd10_clinical_match", input_state, state) return state -def create_clinical_graph() -> StateGraph: +def create_clinical_graph(MAX_RETRIES = 3) -> StateGraph: workflow = StateGraph(dict) # Add nodes @@ -287,30 +327,47 @@ def create_clinical_graph() -> StateGraph: workflow.add_node("match_icd10_code", RunnableLambda(match_icd10_code)) workflow.add_node("validate_icd10_code_exists", RunnableLambda(validate_icd10_code_exists)) workflow.add_node("validate_icd10_clinical_match", RunnableLambda(validate_icd10_clinical_match)) - + # Add stopper node + workflow.add_node("stopper", RunnableLambda(stopper_node)) + + # Add basic edges workflow.add_edge("extract_patient_info", "match_icd10_code") workflow.add_edge("match_icd10_code", "validate_icd10_code_exists") - - # Define conditional edges + + # Helper to increment retry count + def check_and_route(state, next_node): + if state.get("error"): + # Only increment retry_count when a retry will actually happen + if state.get("retry_count", 0) >= MAX_RETRIES: + return "stopper" + return "match_icd10_code" + else: + return next_node + + + + # Conditional for code existence validation workflow.add_conditional_edges( "validate_icd10_code_exists", - lambda x: "match_icd10_code" if x.get("error") else "validate_icd10_clinical_match", + lambda x: check_and_route(x, "validate_icd10_clinical_match"), { "match_icd10_code": "match_icd10_code", - "validate_icd10_clinical_match": "validate_icd10_clinical_match" + "validate_icd10_clinical_match": "validate_icd10_clinical_match", + "stopper": "stopper" } ) - + + # Conditional for clinical validation workflow.add_conditional_edges( "validate_icd10_clinical_match", - lambda x: "match_icd10_code" if x.get("error") else END, + lambda x: check_and_route(x, END), { "match_icd10_code": "match_icd10_code", - END: END + END: END, + "stopper": "stopper" } ) - workflow.set_entry_point("extract_patient_info") return workflow.compile() @@ -319,11 +376,14 @@ def create_clinical_graph() -> StateGraph: async def query_data(request: QueryRequest): try: if request.result_type == "icd10": - # Query for ICD10 codes + # Query for ICD10 codes with specialty filtering (matching notebook) query = """ - select distinct icd10, count(icd10) as count - from som-nero-phi-jonc101.shc_core_2024.diagnosis - group by icd10 + select distinct icd10, dx_name, dm.specialty, count(icd10) as count + from som-nero-phi-jonc101.shc_core_2024.diagnosis as dx + JOIN `som-nero-phi-jonc101.shc_core_2024.dep_map` dm + ON dx.dept_id = dm.department_id + where dm.specialty IN ('Infectious Diseases', 'Endocrinology', 'Hematology') + group by icd10,dx_name,dm.specialty order by count desc limit @limit """ @@ -349,35 +409,56 @@ async def query_data(request: QueryRequest): @app.post("/process_clinical_case") async def process_clinical_case(request: ClinicalCaseRequest): try: - # Get ICD10 codes + # Set up logging for this specific clinical case + log_dir = setup_logging_for_case() + + # Get ICD10 codes with specialty filtering (matching notebook) query = """ - select distinct icd10, count(icd10) as count - from som-nero-phi-jonc101.shc_core_2024.diagnosis - group by icd10 + select distinct icd10, dx_name, dm.specialty, count(icd10) as count + from som-nero-phi-jonc101.shc_core_2024.diagnosis as dx + JOIN `som-nero-phi-jonc101.shc_core_2024.dep_map` dm + ON dx.dept_id = dm.department_id + where dm.specialty IN ('Infectious Diseases', 'Endocrinology', 'Hematology') + group by icd10,dx_name,dm.specialty order by count desc - limit 400 + limit 10000 """ query_job = client.query(query) results = query_job.result() icd10_codes_df = results.to_dataframe() + + # Clean duplicates like in notebook + icd10_codes_df = icd10_codes_df.drop_duplicates(subset=["icd10"]) + + # Save to log directory like in notebook + icd10_codes_df.to_csv(os.path.join(log_dir, "top_icd10_codes_cleaned.csv"), index=False) # Create the graph - graph = create_clinical_graph() + graph = create_clinical_graph(MAX_RETRIES=10) - # Initialize state + # Initialize state (matching notebook exactly) initial_state = { "clinical_question": request.clinical_question, "clinical_notes": request.clinical_notes, - "icd10_codes": icd10_codes_df, + "icd10_codes": icd10_codes_df[["icd10"]], # Only icd10 column like in notebook "patient_age": None, "patient_gender": None, "icd10_code": None, "rationale": None, - "error": None + "error": None, + "retry_count": 0, + "stopped": False } + # Log start like in notebook + logging.info(f"\n{'='*50}") + logging.info("Starting new clinical case processing") + logging.info(f"Clinical Question: {request.clinical_question}") + logging.info(f"Clinical Notes: {request.clinical_notes}") + logging.info(f"{'='*50}\n") + # Run the graph - config = {"recursion_limit": 100} + config = {"recursion_limit": 100} # Increase from default 25 to 100 result = graph.invoke(initial_state, config=config) # Clean up the result @@ -386,9 +467,26 @@ async def process_clinical_case(request: ClinicalCaseRequest): "patient_gender": result.get("patient_gender"), "icd10_code": result.get("icd10_code"), "rationale": result.get("rationale"), - "error": result.get("error") + "error": result.get("error"), + "retry_count": result.get("retry_count"), + "stopped": result.get("stopped") } + # Clean NaN values for JSON serialization + for key, value in clean_result.items(): + if pd.isna(value): + clean_result[key] = None + + # Log final result like in notebook + logging.info(f"\n{'='*50}") + logging.info("Final Result:") + logging.info(json.dumps(clean_result, indent=2)) + logging.info(f"{'='*50}\n") + + # Save result to CSV like in notebook + result_df = pd.DataFrame([clean_result]) + result_df.to_csv(os.path.join(log_dir, "result.csv"), index=False) + return clean_result except Exception as e: @@ -397,8 +495,8 @@ async def process_clinical_case(request: ClinicalCaseRequest): @app.post("/get_orders") async def get_orders(request: OrderRequest): try: - if request.result_type not in ["proc", "med"]: - raise HTTPException(status_code=400, detail="Invalid result_type. Must be 'proc' or 'med'") + if request.result_type is not None and request.result_type not in ["lab", "med", "procedure"]: + raise HTTPException(status_code=400, detail="Invalid result_type. Must be 'lab', 'med', 'procedure', or None for all types") # Prepare parameters for the BigQueryAPI params = { @@ -416,6 +514,30 @@ async def get_orders(request: OrderRequest): year=request.year ) + # Save orders to CSV if we have a log directory set up + if not results.empty: + # Check if we have a log directory set up (from a previous clinical case) + # If not, create a temporary one for this order request + try: + # Try to get the current log directory from the logging configuration + current_handlers = logging.root.handlers + log_dir = None + for handler in current_handlers: + if isinstance(handler, NonEmptyFileHandler): + log_dir = os.path.dirname(handler.filename) + break + + if log_dir is None: + # No log directory set up, create a temporary one + log_dir = f"logs/demo/orders_{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}" + os.makedirs(log_dir, exist_ok=True) + + orders_filename = f"orders_{request.result_type if request.result_type else 'all'}.csv" + results.to_csv(os.path.join(log_dir, orders_filename), index=False) + except Exception as e: + # If saving fails, just log it but don't fail the request + print(f"Warning: Could not save orders to CSV: {str(e)}") + return { "icd10_code": request.icd10_code, "result_type": request.result_type, @@ -427,6 +549,91 @@ async def get_orders(request: OrderRequest): except Exception as e: raise HTTPException(status_code=500, detail=str(e)) +@app.post("/get_orders_from_file") +async def get_orders_from_file(request: OrderFromFileRequest): + try: + # Validate result_type + if request.result_type is not None and request.result_type not in ["lab", "med", "procedure"]: + raise HTTPException(status_code=400, detail="Invalid result_type. Must be 'lab', 'med', 'procedure', or None for all types") + + # Read the result.csv file + if not os.path.exists(request.result_file_path): + raise HTTPException(status_code=404, detail=f"Result file not found: {request.result_file_path}") + + result_df = pd.read_csv(request.result_file_path) + + # Check if the file has the expected columns + expected_columns = ["patient_age", "patient_gender", "icd10_code", "rationale", "error", "retry_count", "stopped"] + missing_columns = [col for col in expected_columns if col not in result_df.columns] + if missing_columns: + raise HTTPException(status_code=400, detail=f"Invalid result file format. Missing columns: {missing_columns}") + + # Get the first row (assuming single clinical case result) + clinical_result = result_df.iloc[0].to_dict() + + # Clean NaN values for JSON serialization + for key, value in clinical_result.items(): + if pd.isna(value): + clinical_result[key] = None + + # Check if clinical processing was successful + if (pd.notna(clinical_result.get("error")) and clinical_result.get("error")) or clinical_result.get("stopped"): + raise HTTPException(status_code=400, detail=f"Clinical processing failed: {clinical_result.get('error', 'Unknown error')}") + + # Prepare parameters for the BigQueryAPI + params = { + 'patient_age': clinical_result["patient_age"], + 'patient_gender': clinical_result["patient_gender"], + 'icd10_code': clinical_result["icd10_code"] + } + + # Use the existing BigQueryAPI to get orders + results = api.get_orders( + params=params, + min_patients_for_non_rare_items=request.min_patients_for_non_rare_items, + result_type=request.result_type, + limit=request.limit, + year=request.year + ) + + # Save orders to CSV in the same directory as the result file + if not results.empty: + # Get the directory of the result file + result_dir = os.path.dirname(request.result_file_path) + + # Use custom filename if provided, otherwise use default naming + if request.custom_filename: + # Ensure the filename has .csv extension + if not request.custom_filename.endswith('.csv'): + orders_filename = f"{request.custom_filename}.csv" + else: + orders_filename = request.custom_filename + else: + orders_filename = f"orders_from_file_{request.result_type if request.result_type else 'all'}.csv" + + orders_file_path = os.path.join(result_dir, orders_filename) + results.to_csv(orders_file_path, index=False) + + # Log the save location + logging.info(f"Orders saved to: {orders_file_path}") + + return { + "result_file_path": request.result_file_path, + "clinical_result": clinical_result, + "result_type": request.result_type, + "limit": request.limit, + "min_patients_for_non_rare_items": request.min_patients_for_non_rare_items, + "year": request.year, + "custom_filename": request.custom_filename, + "orders_file_path": orders_file_path if not results.empty else None, + "data": results.to_dict(orient="records") + } + + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + if __name__ == "__main__": import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file + print("changes applied") + uvicorn.run(app, host="0.0.0.0", port=8000) + \ No newline at end of file diff --git a/scripts/eConsult/Recommender/phase_1/api/logs/clinical_workflow_20250603.log b/scripts/eConsult/Recommender/phase_1/api/logs/clinical_workflow_20250603.log deleted file mode 100644 index d5948d54..00000000 --- a/scripts/eConsult/Recommender/phase_1/api/logs/clinical_workflow_20250603.log +++ /dev/null @@ -1,1250 +0,0 @@ -2025-06-03 12:24:10,669 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-03 12:24:12,097 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:24:12,131 - INFO - LLM Response for extract_patient_info: - -Okay, so I need to extract the patient's age and gender from the given clinical notes. Let me read through the notes carefully. - -The notes start with "52-year-old female..." so that's pretty straightforward. The age is 52 and the gender is female. I should make sure there's no other information that might contradict this, but it seems clear. - -I need to return a JSON object with only 'age' and 'gender' fields. No extra text or explanations. The example provided is {"age": 55, "gender": "male"}, so I should follow that format exactly. - -I'll structure the JSON accordingly, ensuring the age is an integer and the gender is a string. Let me double-check the notes to confirm I didn't miss anything. Yep, it's definitely 52 and female. - -So, the final JSON should be {"age": 52, "gender": "female"}. That's it, nothing else needed. - - -{"age": 52, "gender": "female"} -2025-06-03 12:24:12,143 - INFO - -================================================== -2025-06-03 12:24:12,143 - INFO - Stage: extract_patient_info -2025-06-03 12:24:12,143 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:12,144 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:12,144 - INFO - ================================================== - -2025-06-03 12:24:12,183 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 12:24:15,236 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:24:15,244 - INFO - LLM Response for match_icd10_code: - -Okay, I need to figure out the correct ICD-10 code for this patient. Let's start by reading the clinical notes carefully. - -The patient is a 52-year-old female with rheumatoid arthritis on methotrexate and low-dose prednisone. She's presenting with a 6-week history of daily fevers up to 102°F, night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray didn't show anything. She doesn't have cough, dyspnea, or focal pain. Her labs show mild anemia, elevated ESR, and CRP. The CT scan shows multiple small pulmonary nodules and hepatosplenic lesions. The concern is either disseminated non-tuberculous mycobacteria or histoplasmosis. - -The clinical question is about whether this represents a disseminated mycobacterial infection or an atypical fungal process. The options for ICD-10 codes provided include a range from I10 to Z01.89, but I need to pick the most appropriate one. - -First, I recall that ICD-10 codes for infections are usually in the A and B chapters. However, I'm given a specific list, so I need to choose from that. - -Looking at the symptoms: persistent fever, night sweats, weight loss. These are classic signs of chronic infection or inflammation. The patient's immunosuppressed state due to methotrexate and prednisone makes her more susceptible to opportunistic infections. - -The differential includes disseminated NTM (non-tuberculous mycobacteria) or histoplasmosis. Both are infections that can present with systemic symptoms and organ involvement, as seen in the CT findings (pulmonary nodules and hepatosplenic lesions). - -Now, looking at the available ICD-10 codes, I don't see specific codes for NTM or histoplasmosis in the provided list. The codes given are more general, like R05.3 for fever, R69 for unspecified symptoms, or Z codes for status or encounters. - -Since the exact infection isn't confirmed yet, the most appropriate code would be for the presenting symptoms. The patient has a fever of unknown origin, given that antibiotics didn't help and the cause is still being determined. - -R05.3 is the code for unspecified fever. It fits because the fever is persistent and the cause is not yet identified as bacterial, fungal, or mycobacterial. The other symptoms like night sweats and weight loss are supporting the presence of a chronic infection but aren't specific enough for another code. - -I don't see a code for fever of unknown origin specifically, but R05.3 is the closest match. The other options like R69 (unspecified symptoms) are too vague. Z codes are for status or aftercare, which doesn't apply here. - -So, the correct ICD-10 code should be R05.3, as it accurately reflects the patient's presentation of an unspecified fever, which is the primary symptom guiding further investigation. - - -{"icd10_code": "R05.3", "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection."} -2025-06-03 12:24:15,255 - INFO - -================================================== -2025-06-03 12:24:15,255 - INFO - Stage: match_icd10_code -2025-06-03 12:24:15,255 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:15,256 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-03 12:24:15,257 - INFO - ================================================== - -2025-06-03 12:24:15,265 - INFO - -================================================== -2025-06-03 12:24:15,265 - INFO - Stage: validate_icd10_code_exists -2025-06-03 12:24:15,265 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-03 12:24:15,265 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-03 12:24:15,266 - INFO - ================================================== - -2025-06-03 12:24:15,293 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: R05.3 - Rationale: The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 12:24:18,028 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:24:18,032 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to validate whether the ICD-10 code R05.3 is appropriate for the given clinical case. Let me start by understanding the case details. - -The patient is a 52-year-old female with rheumatoid arthritis on methotrexate and low-dose prednisone. She presents with a 6-week history of daily fevers up to 102°F, drenching night sweats, and a 12-pound unintentional weight loss. Initial blood cultures and chest X-ray were negative. She denies cough, dyspnea, or focal pain. Labs show mild anemia, elevated ESR, and CRP. CT scans reveal multiple small pulmonary nodules and hepatosplenic lesions. The concern is for disseminated non-tuberculous mycobacteria versus histoplasmosis. They are seeking input on biopsy site selection and empiric therapy. - -Now, looking at the ICD-10 code provided: R05.3. I know that R05 refers to symptoms and signs concerning the circulatory and respiratory systems. Specifically, R05.3 is for "Persistent fever." - -In this case, the patient's primary symptom is persistent fever, which has been ongoing for six weeks. The fever is part of a broader clinical picture that includes night sweats and weight loss, which are concerning for an underlying infectious or inflammatory process. The fact that initial investigations like blood cultures and chest X-ray were unrevealing suggests that the cause of the fever hasn't been identified yet, which aligns with the use of R05.3 for persistent fever of unknown origin. - -The rationale provided mentions that the persistent fever is guiding further investigation into possible disseminated mycobacterial or fungal infections. This makes sense because persistent fever without a clear source often prompts a more extensive workup, including looking for infections like mycobacterial or fungal, especially in immunocompromised patients, which this patient is due to her rheumatoid arthritis treatment. - -Looking at the available ICD-10 codes, I don't see a more specific code that captures the combination of symptoms and the suspected underlying conditions better than R05.3. While there are codes for various infections and conditions, none of them specifically capture the scenario of persistent fever of unknown origin in the context of a possible disseminated infection. - -Therefore, R05.3 is appropriate because it accurately reflects the patient's primary symptom guiding the investigation. It's specific enough for the presenting symptom without overstepping into a diagnosis that hasn't been confirmed yet. - - -{"is_valid": true, "reason": "The code R05.3 accurately reflects the patient's persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection."} -2025-06-03 12:24:18,033 - INFO - Validation result: {'is_valid': True, 'reason': "The code R05.3 accurately reflects the patient's persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection."} -2025-06-03 12:24:18,045 - INFO - -================================================== -2025-06-03 12:24:18,045 - INFO - Stage: validate_icd10_clinical_match -2025-06-03 12:24:18,045 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-03 12:24:18,046 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "R05.3", - "rationale": "The patient presents with persistent fever of unknown origin, which is the primary symptom guiding further investigation into possible disseminated mycobacterial or fungal infection.", - "error": null -} -2025-06-03 12:24:18,047 - INFO - ================================================== - -2025-06-03 12:24:18,074 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'R05.3'}, type=proc, year=2024 -2025-06-03 12:24:18,074 - INFO - Executing BigQuery query... -2025-06-03 12:24:20,625 - INFO - Query completed successfully. Returned 1 rows. -2025-06-03 12:24:23,308 - INFO - LLM Prompt for extract_patient_info: - - Extract the patient's age and gender from the following clinical notes. - Return ONLY a JSON object with 'age' and 'gender' fields. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"age": 55, "gender": "male"} - - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - -2025-06-03 12:24:23,407 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 12:24:23,408 - INFO - Retrying request to /openai/v1/chat/completions in 1.000000 seconds -2025-06-03 12:24:25,464 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:24:25,465 - INFO - LLM Response for extract_patient_info: - -Okay, so I need to extract the patient's age and gender from the given clinical notes. Let me read through the notes carefully. - -The first part says "52-year-old female". That's pretty straightforward. So the age is 52 and the gender is female. I don't see any other mentions of age or gender in the notes, so that should be it. - -I should make sure to format the JSON correctly. The age is a number, so no quotes, and the gender is a string, so it needs quotes. The example provided uses "male", so I'll follow that capitalization for consistency. - -Putting it all together, the JSON should look like {"age": 52, "gender": "female"}. I think that's all that's needed here. - - -{"age": 52, "gender": "female"} -2025-06-03 12:24:25,469 - INFO - -================================================== -2025-06-03 12:24:25,469 - INFO - Stage: extract_patient_info -2025-06-03 12:24:25,469 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": null, - "patient_gender": null, - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:25,470 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:25,470 - INFO - ================================================== - -2025-06-03 12:24:25,493 - INFO - LLM Prompt for match_icd10_code: - - Match the clinical information to the most appropriate ICD-10 code from the provided list. - Return ONLY a JSON object with exactly two fields: 'icd10_code' and 'rationale'. - DO NOT include any other text, thinking process, or explanation. - The response should start with { and end with }. - - Example of expected format: - {"icd10_code": "xxx", "rationale": "xxxxx"} - - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -.. ... ... -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -[400 rows x 2 columns] - -2025-06-03 12:24:25,577 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 12:24:25,577 - INFO - Retrying request to /openai/v1/chat/completions in 5.000000 seconds -2025-06-03 12:24:33,047 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:24:33,048 - INFO - LLM Response for match_icd10_code: - -Okay, so I need to figure out the appropriate ICD-10 code for this patient. Let me start by reading the clinical information carefully. - -The patient is a 52-year-old female with rheumatoid arthritis, treated with methotrexate and low-dose prednisone. She presents with persistent fever, night sweats, and significant weight loss over six weeks. Initial tests like blood cultures and chest X-ray didn't show anything, but CT scans revealed pulmonary nodules and hepatosplenic lesions. The concern is either disseminated non-tuberculous mycobacteria or histoplasmosis. - -Looking at the ICD-10 codes provided, I need to match the most appropriate one. The available codes include I10, R69, E78.5, Z00.00, Z23, and others up to Z01.89. - -I know that I10 is for essential (primary) hypertension. That doesn't fit here. R69 is for unspecified symptoms or signs, which is too vague. E78.5 is for hyperlipidemia, which isn't relevant. Z codes are for status or other factors. - -Z00.00 is for encounter for general adult medical examination without abnormal findings. That doesn't apply since the patient has active symptoms and findings. Z23 is for persons with potential health hazards related to communicable diseases, specifically for patients who have been exposed or are carriers. Since the patient has a possible disseminated infection, Z23 might be appropriate if it's related to exposure or carrier status. - -But wait, the patient's condition is more about the active infection rather than just exposure. However, the available codes don't seem to include specific codes for non-tuberculous mycobacteria or histoplasmosis. The closest might be Z23 if considering exposure or carrier status, but I'm not entirely sure. - -Alternatively, maybe R05.3 is for fever of other and unknown origin, but that's more for when the cause isn't found. Since the patient has a likely infectious cause, perhaps Z23 is better if it's about the infection risk. - -I think Z23 is the most appropriate here because it's related to potential health hazards from communicable diseases, which fits the possible disseminated infection scenario. - - -{"icd10_code": "Z23", "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases."} -2025-06-03 12:24:33,052 - INFO - -================================================== -2025-06-03 12:24:33,052 - INFO - Stage: match_icd10_code -2025-06-03 12:24:33,053 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": null, - "rationale": null, - "error": null -} -2025-06-03 12:24:33,053 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z23", - "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases.", - "error": null -} -2025-06-03 12:24:33,054 - INFO - ================================================== - -2025-06-03 12:24:33,058 - INFO - -================================================== -2025-06-03 12:24:33,058 - INFO - Stage: validate_icd10_code_exists -2025-06-03 12:24:33,058 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z23", - "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases.", - "error": null -} -2025-06-03 12:24:33,060 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z23", - "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases.", - "error": null -} -2025-06-03 12:24:33,061 - INFO - ================================================== - -2025-06-03 12:24:33,081 - INFO - LLM Prompt for validate_icd10_clinical_match: - - Validate if the matched ICD-10 code is appropriate for the clinical case. - Return ONLY a JSON object with exactly two fields: 'is_valid' (boolean) and 'reason' (string). - DO NOT include any other text, thinking process, or explanation. - - Example of expected format: - {"is_valid": true, "reason": "The code I10 matches the patient's hypertension diagnosis"} - or - {"is_valid": false, "reason": "The code I10 is too general for this specific case"} - - Current Match: - ICD-10 Code: Z23 - Rationale: The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases. - - Clinical Question: In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated? - Clinical Notes: 52‑year‑old female with rheumatoid arthritis on methotrexate and low‑dose prednisone presents with 6‑week history of daily fevers up to 102°F, drenching night sweats, and a 12‑lb unintentional weight loss. Initial blood cultures and chest X‑ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85 mm/hr), and CRP (12 mg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non‑tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested. - Patient Age: 52 - Patient Gender: female - - Available ICD-10 Codes: - icd10 count -0 I10 7327067 -1 R69 4262540 -2 E78.5 4148577 -3 Z00.00 3931950 -4 Z23 3905347 -5 E11.9 2060742 -6 E03.9 1829892 -7 Z01.818 1723796 -8 Z11.59 1639444 -9 I25.10 1626188 -10 G47.33 1585534 -11 Z79.899 1574201 -12 Z12.31 1455560 -13 I48.91 1417672 -14 K21.9 1391967 -15 Z12.11 1258732 -16 E55.9 1174948 -17 C61 1157711 -18 R06.02 1120819 -19 Z98.890 1099905 -20 G89.29 1092607 -21 Z20.822 1075434 -22 R07.9 1046994 -23 M81.0 1026126 -24 Z00.129 1016975 -25 F41.1 995327 -26 R94.31 942705 -27 Z20.828 932628 -28 R79.89 919911 -29 E78.2 916327 -30 F41.9 905971 -31 Z01.419 896879 -32 Z94.0 894912 -33 D64.9 884217 -34 C50.919 883659 -35 R91.8 852556 -36 R10.9 813472 -37 E78.00 809757 -38 IMO0002 799591 -39 R42 794330 -40 R73.03 788943 -41 I48.0 780752 -42 R05.9 773457 -43 R00.2 772345 -44 G47.00 715638 -45 M54.2 710741 -46 Z79.01 706878 -47 R53.83 695959 -48 N18.6 683517 -49 M54.50 682570 -50 M25.561 675276 -51 Z94.2 641911 -52 C90.00 640699 -53 M25.562 636176 -54 R50.9 633379 -55 F32.A 620585 -56 Z94.81 617684 -57 Z94.4 607737 -58 K59.00 605838 -59 J06.9 600080 -60 N39.0 599275 -61 Z78.9 589957 -62 J45.909 581609 -63 E66.9 573807 -64 C79.51 573479 -65 Z96.1 571700 -66 R19.7 571473 -67 R21 568350 -68 Z51.81 568042 -69 D84.9 560378 -70 E66.01 559977 -71 J30.9 549866 -72 C50.912 541885 -73 D50.9 539679 -74 R55 530683 -75 Z85.3 525507 -76 C50.911 524766 -77 N17.9 523563 -78 Z87.891 523344 -79 Z12.4 512511 -80 I50.9 509695 -81 R11.2 502951 -82 J90 487499 -83 C73 480927 -84 Z95.0 480458 -85 E11.65 478291 -86 R10.13 468056 -87 J30.1 463780 -88 M25.511 460632 -89 R07.89 459882 -90 L30.9 457212 -91 U07.1 437891 -92 R13.10 436417 -93 J02.9 432979 -94 Z91.89 424464 -95 L57.0 420794 -96 Z17.0 417357 -97 C34.90 412135 -98 H90.3 410927 -99 H25.13 410030 -100 M25.551 407337 -101 M54.9 405806 -102 F32.9 402750 -103 D22.9 402096 -104 Z79.4 399624 -105 Z09 396402 -106 R11.0 395129 -107 R73.01 390371 -108 M25.512 382331 -109 R30.0 381329 -110 I73.9 375974 -111 R00.0 375558 -112 L82.1 374723 -113 R05 371284 -114 IMO0001 371013 -115 Z11.3 364353 -116 Z94.1 362487 -117 R10.84 362361 -118 M54.16 361865 -119 C20 361071 -120 J18.9 360789 -121 J34.89 358441 -122 R51.9 357813 -123 R35.0 355960 -124 M25.552 354976 -125 D48.5 353355 -126 C92.00 348331 -127 E04.1 346014 -128 Z95.810 345558 -129 N18.30 344859 -130 K74.60 344836 -131 Z02.89 343415 -132 K76.0 341891 -133 R53.81, R53.83 340706 -134 Z12.39 339213 -135 M85.80 337327 -136 R51 336690 -137 R63.4 334607 -138 N40.0 333732 -139 Z00.6 332755 -140 C49.9 330586 -141 I42.9 329447 -142 R92.8 329138 -143 D46.9 328779 -144 R06.00 325768 -145 R74.8 323291 -146 B18.1 323230 -147 M48.061 323086 -148 Z51.11 322844 -149 M25.569 322481 -150 R73.09 322415 -151 N20.0 317824 -152 Z71.89 317641 -153 E87.1 317637 -154 C79.31 316483 -155 C18.9 315426 -156 J44.9 313867 -157 M54.5 313269 -158 Z82.49 311873 -159 D69.6 305575 -160 C78.7 302004 -161 I51.7 301820 -162 C25.9 297448 -163 G35 297425 -164 Z92.3 296477 -165 N18.9 295965 -166 G47.30 295689 -167 N97.9 291596 -168 R14.0 290174 -169 C56.9 289123 -170 I49.3 287593 -171 I34.0 287323 -172 R10.2 284649 -173 T86.20 284436 -174 C22.0 283481 -175 R60.9 279723 -176 R91.1 278770 -177 F33.1 274292 -178 I63.9 274042 -179 G89.18 271498 -180 G62.9 271478 -181 I49.8 270711 -182 M06.9 268989 -183 C80.1 268607 -184 I35.0 268532 -185 R03.0 268179 -186 C83.30 267949 -187 Z80.3 267712 -188 I50.22 267232 -189 R60.0 264474 -190 Z95.2 263522 -191 R53.81 262231 -192 M79.18 261876 -193 G43.709 258394 -194 C91.10 256650 -195 R00.1 256112 -196 I35.9 253705 -197 L29.9 253626 -198 M79.89 251956 -199 R97.20 248353 -200 M25.559 248119 -201 Z12.83 247762 -202 M79.671 245390 -203 R52 243929 -204 Z01.810 243000 -205 R41.3 242468 -206 Z78.0 240617 -207 R29.898 239770 -208 J30.89 239613 -209 B18.2 238703 -210 M79.672 238066 -211 M54.12 237944 -212 C34.91 237363 -213 R56.9 236170 -214 M17.11 234368 -215 R73.9 234247 -216 F43.10 233294 -217 D50.0 233244 -218 J84.9 232849 -219 M10.9 232795 -220 G89.3 232677 -221 E87.6 231907 -222 C71.9 230338 -223 J32.9 230063 -224 N18.4 228846 -225 Z71.3 228628 -226 M25.50 228598 -227 E03.8 227532 -228 N52.9 225074 -229 E53.8 224969 -230 Z76.89 224476 -231 Z34.90 224449 -232 M48.062 222939 -233 I42.8 222722 -234 R06.09 221907 -235 C92.01 221419 -236 L70.0 220989 -237 L90.5 220823 -238 C67.9 220211 -239 I47.10 219631 -240 I48.92 218532 -241 L40.9 218431 -242 Z85.828 218210 -243 E89.0 217438 -244 K52.9 215905 -245 H26.9 215139 -246 F32.89 214328 -247 E66.3 214268 -248 I49.5 212754 -249 I27.20 212419 -250 Z98.84 212327 -251 C54.1 211976 -252 R53.1 211536 -253 H40.003 211396 -254 M17.12 210877 -255 M48.02 210450 -256 R33.9 210331 -257 M54.50, G89.29 210167 -258 R31.9 209906 -259 Z79.82 208129 -260 R80.9 206554 -261 Z13.220 206486 -262 Z86.73 205656 -263 I26.99 205531 -264 R09.81 205329 -265 F31.9 204844 -266 R35.1 204070 -267 F17.200 203606 -268 I47.1 202494 -269 I50.32 201583 -270 R26.9 201580 -271 M25.571 201465 -272 E83.42 201143 -273 L81.4 200922 -274 M79.609 200524 -275 Z98.1 199812 -276 J34.2 199693 -277 H04.123 199658 -278 N28.9 199595 -279 D62 199511 -280 R10.31 198414 -281 E29.1 198246 -282 R10.11 197832 -283 M19.90 197787 -284 R49.0 197492 -285 N93.9 197413 -286 G89.4 196718 -287 E06.3 196361 -288 M25.572 196344 -289 Z80.0 194409 -290 C77.0 193898 -291 M47.817 193854 -292 A41.9 193077 -293 H52.13 193056 -294 R20.2 192720 -295 Z76.0 191261 -296 E11.69 190999 -297 R20.0 190178 -298 R18.8 189931 -299 E84.9 189709 -300 I25.2 187836 -301 G43.909 186280 -302 J45.20 186061 -303 B35.1 185930 -304 E10.9 185802 -305 R76.8 185676 -306 Z95.1 185496 -307 L98.9 184657 -308 R39.15 184439 -309 Z51.5 182241 -310 E04.2 181980 -311 E05.90 181944 -312 M25.519 181363 -313 R09.02 180215 -314 N89.8 179938 -315 J98.4 179842 -316 L65.9 179708 -317 C91.00 178991 -318 Z45.2 177683 -319 Z79.52 177241 -320 D63.1 177105 -321 R59.0 176446 -322 Z11.1 176277 -323 R41.82 175484 -324 M62.81 175316 -325 R68.89 175052 -326 R10.32 174697 -327 E05.00 174359 -328 G20.A1 174046 -329 I48.19 172553 -330 C34.92 171300 -331 E11.8 170334 -332 M32.9 170280 -333 N95.1 170247 -334 E11.22 169452 -335 M17.0 167335 -336 Z99.2 166944 -337 H61.23 166420 -338 G20 165663 -339 F51.04 165362 -340 Z13.820 165328 -341 N95.2 165089 -342 N18.3 164847 -343 L21.9 164740 -344 C91.01 164457 -345 B20 164141 -346 N28.89 163912 -347 N92.6 163899 -348 F33.2 163298 -349 M51.26 162096 -350 C85.89 160450 -351 I48.20 160206 -352 C64.9 159645 -353 D70.9 159609 -354 K62.5 159365 -355 R09.89 159345 -356 F41.8 159255 -357 S09.90XA 159191 -358 D72.829 159003 -359 R11.10 158724 -360 Z02.9 158434 -361 I12.9 158273 -362 Z46.82 157865 -363 H43.813 157583 -364 N63.0 156470 -365 Z92.29 155942 -366 E86.0 155262 -367 L70.9 154639 -368 K92.2 154214 -369 G40.909 153091 -370 N40.1 152749 -371 K57.30 152006 -372 N64.4 151867 -373 R74.01 151843 -374 K92.1 151638 -375 Z98.89 151307 -376 M79.7 151160 -377 F33.9 150958 -378 D47.2 149433 -379 C43.9 149277 -380 J20.9 148142 -381 C16.9 147975 -382 I95.1 147334 -383 I49.9 146883 -384 E87.5 146487 -385 M25.531 146434 -386 R26.89 145841 -387 I95.9 145623 -388 T45.1X5A 145177 -389 D89.9 144692 -390 D50.8 144572 -391 H35.9 143644 -392 K44.9 143489 -393 M54.6 142230 -394 N30.00 141186 -395 J96.01 141119 -396 R06.83 141041 -397 R05.3 140519 -398 N39.41 140377 -399 Z01.89 139802 - -2025-06-03 12:24:33,168 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" -2025-06-03 12:24:33,169 - INFO - Retrying request to /openai/v1/chat/completions in 37.000000 seconds -2025-06-03 12:25:14,156 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" -2025-06-03 12:25:14,162 - INFO - LLM Response for validate_icd10_clinical_match: - -Okay, so I need to determine if the ICD-10 code Z23 is appropriate for the given clinical case. Let me start by understanding what Z23 stands for. From my knowledge, Z23 is the code for "Encounter for immunization." Wait, no, that's not right. Let me double-check. Oh, no, Z23 is actually " Encounter for immunization." Hmm, but wait, I think I might be mixing it up. Let me confirm: Z23 is " Encounter for immunization." Or is it something else? Wait, no, I think I was wrong. Let me look it up. Oh, no, Z23 is actually " Encounter for immunization." Wait, no, that's Z23. Or is it Z00-Z99 for factors influencing health status? Let me think. Z23 is " Encounter for immunization." No, wait, that's not correct. I think I'm confusing it with another code. Let me think again. Oh, right, Z23 is " Encounter for immunization." Wait, no, that's not right. I think Z23 is " Encounter for immunization." Or is it Z00? No, Z00 is " Encounter for general adult medical examination without abnormal findings." So Z23 must be something else. Wait, I'm getting confused. Let me recall: Z23 is " Encounter for immunization." No, that's not it. I think Z23 is actually " Encounter for immunization." Wait, no, I'm getting stuck here. Let me think of the structure. Z00-Z99 are factors influencing health status. Z20-Z29 are for exposure to communicable diseases. So Z23 would fall under that. Specifically, Z23 is " Encounter for immunization." No, wait, that's not correct. I think Z23 is " Encounter for immunization." Or is it Z00? No, Z00 is general examination. Maybe I should look up the exact code. Since I can't access external resources, I'll have to rely on my memory. I believe Z23 is " Encounter for immunization." Wait, no, that's Z23. Or is it Z00? I'm getting confused. Alternatively, maybe Z23 is " Encounter for exposure to communicable diseases." No, that's not it. Let me think again. Z20 is " Encounter for exposure to communicable disease." Z23 is a more specific code under that. Oh, right, Z23 is " Encounter for immunization." Wait, no, that doesn't make sense because immunization is a separate category. Maybe Z23 is " Encounter for exposure to other diseases." Or perhaps it's " Encounter for carrier or exposure." Wait, I think I'm mixing up the codes. Let me try to recall: Z20 is exposure to certain diseases, Z21 is asymptomatic carrier, Z22 is for occupational exposure, and Z23 is for immunization. No, that can't be right because immunization is a different category. Maybe Z23 is " Encounter for immunization." But that doesn't fit the context here. Alternatively, perhaps Z23 is " Encounter for exposure to other diseases." Wait, I'm getting stuck. Let me try to approach it differently. The rationale given is that the patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases. So Z23 is being used here because the patient might be a carrier or has been exposed to a communicable disease. Therefore, Z23 is the code for " Encounter for exposure to other communicable diseases." So in this case, the patient is showing signs of a possible disseminated infection, which could be mycobacterial or fungal. The code Z23 is appropriate because it's for exposure or carrier status of communicable diseases, which fits the scenario where the patient might be a carrier or exposed to such an infection. Therefore, the code is valid because it correctly represents the potential exposure or carrier status of a communicable disease in this patient. - - -{"is_valid": true, "reason": "The code Z23 is appropriate as it represents exposure or carrier status of communicable diseases, which aligns with the patient's potential disseminated infection."} -2025-06-03 12:25:14,163 - INFO - Validation result: {'is_valid': True, 'reason': "The code Z23 is appropriate as it represents exposure or carrier status of communicable diseases, which aligns with the patient's potential disseminated infection."} -2025-06-03 12:25:14,172 - INFO - -================================================== -2025-06-03 12:25:14,172 - INFO - Stage: validate_icd10_clinical_match -2025-06-03 12:25:14,172 - INFO - Input: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z23", - "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases.", - "error": null -} -2025-06-03 12:25:14,173 - INFO - Output: { - "clinical_question": "In a patient with persistent fever, night sweats, and weight loss despite broad-spectrum antibiotics, could this represent disseminated mycobacterial infection or an atypical fungal process, and what diagnostic workup is indicated?", - "clinical_notes": "52\u2011year\u2011old female with rheumatoid arthritis on methotrexate and low\u2011dose prednisone presents with 6\u2011week history of daily fevers up to 102\u00b0F, drenching night sweats, and a 12\u2011lb unintentional weight loss. Initial blood cultures and chest X\u2011ray were unrevealing. She denies cough, dyspnea, or focal pain. Lab results show mild anemia (Hgb 11.2), elevated ESR (85\u202fmm/hr), and CRP (12\u202fmg/dL). CT chest/abdomen reveals multiple small pulmonary nodules and hepatosplenic lesions. Concern for disseminated non\u2011tuberculous mycobacteria vs. histoplasmosis. Input on biopsy site selection and empiric therapy is requested.", - "icd10_codes": " icd10 count\n0 I10 7327067\n1 R69 4262540\n2 E78.5 4148577\n3 Z00.00 3931950\n4 Z23 3905347\n5 E11.9 2060742\n6 E03.9 1829892\n7 Z01.818 1723796\n8 Z11.59 1639444\n9 I25.10 1626188\n10 G47.33 1585534\n11 Z79.899 1574201\n12 Z12.31 1455560\n13 I48.91 1417672\n14 K21.9 1391967\n15 Z12.11 1258732\n16 E55.9 1174948\n17 C61 1157711\n18 R06.02 1120819\n19 Z98.890 1099905\n20 G89.29 1092607\n21 Z20.822 1075434\n22 R07.9 1046994\n23 M81.0 1026126\n24 Z00.129 1016975\n25 F41.1 995327\n26 R94.31 942705\n27 Z20.828 932628\n28 R79.89 919911\n29 E78.2 916327\n30 F41.9 905971\n31 Z01.419 896879\n32 Z94.0 894912\n33 D64.9 884217\n34 C50.919 883659\n35 R91.8 852556\n36 R10.9 813472\n37 E78.00 809757\n38 IMO0002 799591\n39 R42 794330\n40 R73.03 788943\n41 I48.0 780752\n42 R05.9 773457\n43 R00.2 772345\n44 G47.00 715638\n45 M54.2 710741\n46 Z79.01 706878\n47 R53.83 695959\n48 N18.6 683517\n49 M54.50 682570\n50 M25.561 675276\n51 Z94.2 641911\n52 C90.00 640699\n53 M25.562 636176\n54 R50.9 633379\n55 F32.A 620585\n56 Z94.81 617684\n57 Z94.4 607737\n58 K59.00 605838\n59 J06.9 600080\n60 N39.0 599275\n61 Z78.9 589957\n62 J45.909 581609\n63 E66.9 573807\n64 C79.51 573479\n65 Z96.1 571700\n66 R19.7 571473\n67 R21 568350\n68 Z51.81 568042\n69 D84.9 560378\n70 E66.01 559977\n71 J30.9 549866\n72 C50.912 541885\n73 D50.9 539679\n74 R55 530683\n75 Z85.3 525507\n76 C50.911 524766\n77 N17.9 523563\n78 Z87.891 523344\n79 Z12.4 512511\n80 I50.9 509695\n81 R11.2 502951\n82 J90 487499\n83 C73 480927\n84 Z95.0 480458\n85 E11.65 478291\n86 R10.13 468056\n87 J30.1 463780\n88 M25.511 460632\n89 R07.89 459882\n90 L30.9 457212\n91 U07.1 437891\n92 R13.10 436417\n93 J02.9 432979\n94 Z91.89 424464\n95 L57.0 420794\n96 Z17.0 417357\n97 C34.90 412135\n98 H90.3 410927\n99 H25.13 410030\n100 M25.551 407337\n101 M54.9 405806\n102 F32.9 402750\n103 D22.9 402096\n104 Z79.4 399624\n105 Z09 396402\n106 R11.0 395129\n107 R73.01 390371\n108 M25.512 382331\n109 R30.0 381329\n110 I73.9 375974\n111 R00.0 375558\n112 L82.1 374723\n113 R05 371284\n114 IMO0001 371013\n115 Z11.3 364353\n116 Z94.1 362487\n117 R10.84 362361\n118 M54.16 361865\n119 C20 361071\n120 J18.9 360789\n121 J34.89 358441\n122 R51.9 357813\n123 R35.0 355960\n124 M25.552 354976\n125 D48.5 353355\n126 C92.00 348331\n127 E04.1 346014\n128 Z95.810 345558\n129 N18.30 344859\n130 K74.60 344836\n131 Z02.89 343415\n132 K76.0 341891\n133 R53.81, R53.83 340706\n134 Z12.39 339213\n135 M85.80 337327\n136 R51 336690\n137 R63.4 334607\n138 N40.0 333732\n139 Z00.6 332755\n140 C49.9 330586\n141 I42.9 329447\n142 R92.8 329138\n143 D46.9 328779\n144 R06.00 325768\n145 R74.8 323291\n146 B18.1 323230\n147 M48.061 323086\n148 Z51.11 322844\n149 M25.569 322481\n150 R73.09 322415\n151 N20.0 317824\n152 Z71.89 317641\n153 E87.1 317637\n154 C79.31 316483\n155 C18.9 315426\n156 J44.9 313867\n157 M54.5 313269\n158 Z82.49 311873\n159 D69.6 305575\n160 C78.7 302004\n161 I51.7 301820\n162 C25.9 297448\n163 G35 297425\n164 Z92.3 296477\n165 N18.9 295965\n166 G47.30 295689\n167 N97.9 291596\n168 R14.0 290174\n169 C56.9 289123\n170 I49.3 287593\n171 I34.0 287323\n172 R10.2 284649\n173 T86.20 284436\n174 C22.0 283481\n175 R60.9 279723\n176 R91.1 278770\n177 F33.1 274292\n178 I63.9 274042\n179 G89.18 271498\n180 G62.9 271478\n181 I49.8 270711\n182 M06.9 268989\n183 C80.1 268607\n184 I35.0 268532\n185 R03.0 268179\n186 C83.30 267949\n187 Z80.3 267712\n188 I50.22 267232\n189 R60.0 264474\n190 Z95.2 263522\n191 R53.81 262231\n192 M79.18 261876\n193 G43.709 258394\n194 C91.10 256650\n195 R00.1 256112\n196 I35.9 253705\n197 L29.9 253626\n198 M79.89 251956\n199 R97.20 248353\n200 M25.559 248119\n201 Z12.83 247762\n202 M79.671 245390\n203 R52 243929\n204 Z01.810 243000\n205 R41.3 242468\n206 Z78.0 240617\n207 R29.898 239770\n208 J30.89 239613\n209 B18.2 238703\n210 M79.672 238066\n211 M54.12 237944\n212 C34.91 237363\n213 R56.9 236170\n214 M17.11 234368\n215 R73.9 234247\n216 F43.10 233294\n217 D50.0 233244\n218 J84.9 232849\n219 M10.9 232795\n220 G89.3 232677\n221 E87.6 231907\n222 C71.9 230338\n223 J32.9 230063\n224 N18.4 228846\n225 Z71.3 228628\n226 M25.50 228598\n227 E03.8 227532\n228 N52.9 225074\n229 E53.8 224969\n230 Z76.89 224476\n231 Z34.90 224449\n232 M48.062 222939\n233 I42.8 222722\n234 R06.09 221907\n235 C92.01 221419\n236 L70.0 220989\n237 L90.5 220823\n238 C67.9 220211\n239 I47.10 219631\n240 I48.92 218532\n241 L40.9 218431\n242 Z85.828 218210\n243 E89.0 217438\n244 K52.9 215905\n245 H26.9 215139\n246 F32.89 214328\n247 E66.3 214268\n248 I49.5 212754\n249 I27.20 212419\n250 Z98.84 212327\n251 C54.1 211976\n252 R53.1 211536\n253 H40.003 211396\n254 M17.12 210877\n255 M48.02 210450\n256 R33.9 210331\n257 M54.50, G89.29 210167\n258 R31.9 209906\n259 Z79.82 208129\n260 R80.9 206554\n261 Z13.220 206486\n262 Z86.73 205656\n263 I26.99 205531\n264 R09.81 205329\n265 F31.9 204844\n266 R35.1 204070\n267 F17.200 203606\n268 I47.1 202494\n269 I50.32 201583\n270 R26.9 201580\n271 M25.571 201465\n272 E83.42 201143\n273 L81.4 200922\n274 M79.609 200524\n275 Z98.1 199812\n276 J34.2 199693\n277 H04.123 199658\n278 N28.9 199595\n279 D62 199511\n280 R10.31 198414\n281 E29.1 198246\n282 R10.11 197832\n283 M19.90 197787\n284 R49.0 197492\n285 N93.9 197413\n286 G89.4 196718\n287 E06.3 196361\n288 M25.572 196344\n289 Z80.0 194409\n290 C77.0 193898\n291 M47.817 193854\n292 A41.9 193077\n293 H52.13 193056\n294 R20.2 192720\n295 Z76.0 191261\n296 E11.69 190999\n297 R20.0 190178\n298 R18.8 189931\n299 E84.9 189709\n300 I25.2 187836\n301 G43.909 186280\n302 J45.20 186061\n303 B35.1 185930\n304 E10.9 185802\n305 R76.8 185676\n306 Z95.1 185496\n307 L98.9 184657\n308 R39.15 184439\n309 Z51.5 182241\n310 E04.2 181980\n311 E05.90 181944\n312 M25.519 181363\n313 R09.02 180215\n314 N89.8 179938\n315 J98.4 179842\n316 L65.9 179708\n317 C91.00 178991\n318 Z45.2 177683\n319 Z79.52 177241\n320 D63.1 177105\n321 R59.0 176446\n322 Z11.1 176277\n323 R41.82 175484\n324 M62.81 175316\n325 R68.89 175052\n326 R10.32 174697\n327 E05.00 174359\n328 G20.A1 174046\n329 I48.19 172553\n330 C34.92 171300\n331 E11.8 170334\n332 M32.9 170280\n333 N95.1 170247\n334 E11.22 169452\n335 M17.0 167335\n336 Z99.2 166944\n337 H61.23 166420\n338 G20 165663\n339 F51.04 165362\n340 Z13.820 165328\n341 N95.2 165089\n342 N18.3 164847\n343 L21.9 164740\n344 C91.01 164457\n345 B20 164141\n346 N28.89 163912\n347 N92.6 163899\n348 F33.2 163298\n349 M51.26 162096\n350 C85.89 160450\n351 I48.20 160206\n352 C64.9 159645\n353 D70.9 159609\n354 K62.5 159365\n355 R09.89 159345\n356 F41.8 159255\n357 S09.90XA 159191\n358 D72.829 159003\n359 R11.10 158724\n360 Z02.9 158434\n361 I12.9 158273\n362 Z46.82 157865\n363 H43.813 157583\n364 N63.0 156470\n365 Z92.29 155942\n366 E86.0 155262\n367 L70.9 154639\n368 K92.2 154214\n369 G40.909 153091\n370 N40.1 152749\n371 K57.30 152006\n372 N64.4 151867\n373 R74.01 151843\n374 K92.1 151638\n375 Z98.89 151307\n376 M79.7 151160\n377 F33.9 150958\n378 D47.2 149433\n379 C43.9 149277\n380 J20.9 148142\n381 C16.9 147975\n382 I95.1 147334\n383 I49.9 146883\n384 E87.5 146487\n385 M25.531 146434\n386 R26.89 145841\n387 I95.9 145623\n388 T45.1X5A 145177\n389 D89.9 144692\n390 D50.8 144572\n391 H35.9 143644\n392 K44.9 143489\n393 M54.6 142230\n394 N30.00 141186\n395 J96.01 141119\n396 R06.83 141041\n397 R05.3 140519\n398 N39.41 140377\n399 Z01.89 139802", - "patient_age": 52, - "patient_gender": "female", - "icd10_code": "Z23", - "rationale": "The patient has signs of a potential disseminated infection, which aligns with Z23 for exposure or carrier status of communicable diseases.", - "error": null -} -2025-06-03 12:25:14,174 - INFO - ================================================== - -2025-06-03 12:25:14,225 - INFO - Building query for params={'patient_age': 52, 'patient_gender': 'female', 'icd10_code': 'Z23'}, type=med, year=2024 -2025-06-03 12:25:14,225 - INFO - Executing BigQuery query... -2025-06-03 12:25:20,815 - INFO - Query completed successfully. Returned 10 rows. diff --git a/scripts/eConsult/eConsult-embeddings/api/main.py b/scripts/eConsult/eConsult-embeddings/api/main.py index 0b5903b9..46135e2e 100644 --- a/scripts/eConsult/eConsult-embeddings/api/main.py +++ b/scripts/eConsult/eConsult-embeddings/api/main.py @@ -1,12 +1,14 @@ +import os + from fastapi import FastAPI, HTTPException, status from pydantic import BaseModel -from embeddings.embedding_generator import run_embedding_pipeline, load_embeddings +from embeddings.embedding_generator import run_embedding_pipeline, load_embeddings_json import logging logging.basicConfig(level=logging.DEBUG) # Prepare document embeddings before serving requests -all_embeddings, embeddings_model = load_embeddings() +all_embeddings, embeddings_model = load_embeddings_json() app = FastAPI(title="eConsult Embeddings API") @@ -20,6 +22,13 @@ async def read_root(): return {"message": "eConsult Embeddings API is running 🚀"} +def to_base_name(similarity_scores): + base_path_similarity_scores = {} + for k, v in similarity_scores.items(): + base_path_similarity_scores[os.path.basename(k)] = v + return base_path_similarity_scores + + @app.post("/select-best-template") def select_best_template(clinical_question: ClinicalQuestion): try: @@ -29,11 +38,13 @@ def select_best_template(clinical_question: ClinicalQuestion): clinical_question.question ) + template_json = open(best_template, "r") if best_template: return { "question": clinical_question.question, - "suggested_template": best_template, - "similarity_scores": similarity_scores, + "suggested_template": os.path.basename(best_template), + "suggested_template_json": template_json.read(), + "similarity_scores": to_base_name(similarity_scores), } else: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="No relevant templates found.") diff --git a/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_alcohol.json b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_alcohol.json new file mode 100644 index 00000000..91d2661e --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_alcohol.json @@ -0,0 +1,71 @@ +[ + { + "specialist": "Chemical Dependency" + }, + { + "template": "Alcohol" + }, + { + "My Clinical Question (condition: alcohol)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is your concern chronic benzodiazepines for anxiety, insomnia, or pain and a desire to help taper the patient? Or does this person have a benzodiazepine use disorder (e.g. using street xanax or taking more than you are prescribing)?": "***" + }, + { + "Is the patient pregnant or planning to become pregnant?": "***" + }, + { + "Is the patient using tobacco, is it combustible or vaped, and are they interested in cutting back or stopping?": "***" + }, + { + "Type, amount, frequency of benzodiazepine usage?": "***" + }, + { + "Suspected/known other substance use disorders? Psychiatric diagnoses?": "***" + }, + { + "Other medical comorbidities?": "***" + }, + { + "Most recent CURES report appropriate? (You may go under COMPACT MESSAGING under patient’s CURES report and message a physician of any concerns of co-prescribing)": "***" + }, + { + "Does the patient wish to taper?": "***" + }, + { + "Or are you concerned about safety, especially if it is co-prescribed with opioids?": "***" + } + ] + }, + "Diagnostics": [ + { + "UTox - recall the active metabolites of diazepam include temazepam": "***" + }, + { + "Not necessary for consult, but recommend STD Screening if not done recently: HIV, RPR/VDRL, GC, Chlamydia, HCV for all SUD patients": "***" + } + ] + }, + "Clinical Pearls": [ + "Long-term benzodiazepine exposure results in downregulation of the GABA/inhibitory response and upregulation of the excitatory neurotransmitter system. Benzodiazepine withdrawal is often painful, difficult, and tapering may take many months to years. Withdrawal can include severe, chronic paresthesias, photosensitivity, tinnitus, anxiety, and insomnia.", + "For a very helpful manual on benzodiazepines including taper schedules: Ashton Manual – https://www.benzo.org.uk/manual/", + "Helpful phrasing for counseling: “Tolerance to anxiolytic effects of benzodiazepines seems to develop more slowly, but there is little evidence that benzodiazepines retain their effectiveness after 4 months of regular treatment and clinical observations suggest that long-term benzodiazepine use over the years does little to control, and may even aggravate, anxiety states.”", + "Withdrawal from benzodiazepines is similar to alcohol withdrawal and may include seizures. Withdrawals may occur as early as 2 weeks into treatment, and severity depends on potency, half-life, and duration of use.", + "Benzodiazepines should always be tapered with care and based on the patient’s readiness.", + "Golden rule of benzo tapers: “never go back up.” Once a small dose reduction (5–10%) occurs, hold that dose for at least 4 weeks. Patients can hold for 4–6 more weeks if not ready to taper further, but never increase the dose again.", + "To reduce temptation to increase the dose, refill only 2 weeks at a time and conduct pill counts or avoid early refills.", + "Adjunctive medications such as gabapentinoids (gabapentin, pregabalin) or other anti-convulsants like carbamazepine may help manage withdrawal symptoms.", + "For smaller incremental tapers not available in standard formularies, compounding pharmacies may be used:\n- https://www.koshlandpharm.com/\n- https://www.sjcpharmacy.com/\n- https://www.pharmacarx.com/\n- https://www.marinerpharmacy.com/\n- https://www.safeway.com/pharmacy/pharmacy-services/compounding-services.html", + "Alternative strategy: Swap shorter-acting benzodiazepines (e.g. lorazepam, alprazolam, clonazepam) with longer-acting ones (e.g. chlordiazepoxide or diazepam), which self-taper via active metabolites (e.g. nor-diazepam, oxazepam).", + "Once all doses are transitioned to chlordiazepoxide or diazepam, tapering becomes relatively safe and effective due to their long-acting nature.", + "As tapering progresses, monitor and discuss use of other substances (e.g. alcohol, cannabis, opioids), and ask about any 'natural' remedies they may be using (e.g. valerian root, kratom)." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_benzodiazepines.json b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_benzodiazepines.json new file mode 100644 index 00000000..90eed2ee --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_benzodiazepines.json @@ -0,0 +1,104 @@ +[ + { + "My Clinical Question (condition: benzodiazepines)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Is your concern chronic benzodiazepines for anxiety, insomnia, or pain and a desire to help taper the patient? Or does this person have a benzodiazepine use disorder (e.g. using street xanax or taking more than you are prescribing)?": "***" + }, + { + "Is the patient pregnant or planning to become pregnant?": "***" + }, + { + "Is the patient using tobacco, is it combustible or vaped, and are they interested in cutting back or stopping?": "***" + }, + { + "Type, amount, frequency of benzodiazepine usage?": "***" + }, + { + "Suspected/known other substance use disorders? Psychiatric diagnoses?": "***" + }, + { + "Other medical comorbidities?": "***" + }, + { + "Most recent CURES report appropriate? (You may go under COMPACT MESSAGING under patient’s CURES report and message a physician of any concerns of co-prescribing)": "***" + }, + { + "Does the patient wish to taper?": "***" + }, + { + "Or are you concerned about safety, especially if it is co-prescribed with opioids?": "***" + } + ], + "Diagnostics": [ + { + "UTox - recall the active metabolites of diazepam include temazepam": "***" + }, + { + "Not necessary for consult, but recommend STD Screening if not done recently: HIV, RPR/VDRL, GC, Chlamydia, HCV for all SUD patients": "***" + } + ], + "Clinical Pearls": [ + { + "N.B: Long-term benzodiazepine exposure results in downregulation of the GABA/inhibitory response and upregulation of the excitatory neurotransmitter system, benzodiazepine withdrawal is often painful, difficult and tapering may take many months to years. Withdrawal can include severe, chronic paresthesias, photosensitivity, tinnitus, anxiety, insomnia, to name a few": "***" + }, + { + "For a very helpful manual on all things benzodiazepines including sample taper schedules: Ashton Manual: https://www.benzo.org.uk/manual/": "***" + }, + { + "Helpful phrasing for counseling patients about long term benzodiazepine use: “Tolerance to anxiolytic effects of benzodiazepines seems to develop more slowly, but there is little evidence that benzodiazepines retain their effectiveness after 4 months of regular treatment and clinical observations suggest that long-term benzodiazepine use over the years does little to control, and may even aggravate, anxiety states.” (From the Ashton Manual)": "***" + }, + { + "Withdrawal from benzodiazepines are similar to alcohol withdrawal, and may include seizures. Benzodiazepine withdrawals may occur in as rapidly as two (2) weeks of treatment, and severity depends on the potency, half-life and length of treatment": "***" + }, + { + "Benzodiazepines should always be tapered with care and driven by the patient’s readiness": "***" + }, + { + "Golden Rule of Benzo tapers: “never go back up” once a small incremental drop in dose has taken place (sometimes no more than 5-10% at a time), stay at that same dose for at least 4 weeks. A patient may hold a dose for an additional 4-6 weeks if they do not feel ready to drop the dose again, however, do not increase the dose back up": "***" + }, + { + "In order to reduce the temptation to increase the dose, refill only 2 weeks at a time and conduct pill counts or do not refill early": "***" + }, + { + "Adjunctive medications such as gapapentinoids (gabapentin, pregabalin), or other anti-convulsants such as carbamazepine may be used to help ameliorate withdrawal symptoms": "***" + }, + { + "For smaller incremental tapers that are not available in the standard formulary, compounding pharmacies may be used": [ + { + "https://www.koshlandpharm.com/": "***" + }, + { + "https://www.sjcpharmacy.com/": "***" + }, + { + "https://www.pharmacarx.com/": "***" + }, + { + "https://www.marinerpharmacy.com/": "***" + }, + { + "https://www.safeway.com/pharmacy/pharmacy-services/compounding-services.html": "***" + } + ] + }, + { + "Another method of reduction instead of tapering the original benzodiazepine that is likely shorter acting such as lorazepam, alprazolam, or clonazepam, is to swap out one of the doses taken during a BID, TID or QID dosing schedule with a longer acting benzodiazepine such as chlordiazepoxide (Librium) or diazepam (Valium) which self tapers into active metabolites such as nor-diazepam and oxazepam": [ + { + "After all doses are transitioned to chlordiazepoxide or diazepam, then this may be tapered relatively safely and effectively because it is so long acting": "***" + } + ] + }, + { + "As a patient tapers, be sure to monitor and openly discuss other substance use, which may restart or increase (e.g. alcohol, cannabis, opioids), and ask about “natural” treatments they may try (e.g. valerian root, kratom)": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_cannabis.json b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_cannabis.json new file mode 100644 index 00000000..43c3f6d6 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_cannabis.json @@ -0,0 +1,73 @@ +[ + { + "specialist": "Chemical Dependency" + }, + { + "template": "Cannabis" + }, + { + "My Clinical Question (condition: cannabis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is the patient pregnant or planning to become pregnant?": "***" + }, + { + "Is the patient using tobacco, is it combustible or vaped, and are they interested in cutting back or stopping?": "***" + }, + { + "Type, route, amount, frequency of cannabis usage?": "***" + }, + { + "Attempts to cut back or stop cannabis use?": "***" + }, + { + "Effects on occupational, academic or social functioning?": "***" + }, + { + "Is the patient psychotic? Do they have psychiatric illness?": "***" + }, + { + "Suspected/known other substance use disorders?": "***" + }, + { + "Other medical comorbidities?": "***" + }, + { + "Family history of SUD or psychotic illness?": "***" + } + ] + }, + "Diagnostics": [ + { + "UTox": "***" + }, + { + "Not required for consult but recommended: STD Screening if not done recently — HIV, RPR/VDRL, GC, Chlamydia, HCV for all SUD patients": "***" + } + ] + } + }, + { + "Clinical Pearls": [ + "Systematic review of cannabis literature: https://www.ncbi.nlm.nih.gov/books/NBK423845/", + "Objective patient education reference: *From Bud to Brain: A Psychiatrist’s View of Marijuana* by Timmen L. Cermak", + "Cannabis use disorder exists and includes tolerance and withdrawal.", + "Cannabis can be difficult to stop, especially given increased legalization and decriminalization.", + "Youth are particularly vulnerable — adult influence can be a motivator for cessation.", + "Early cannabis use (before age 18) increases the risk of long-term use disorder and may lead to irreversible cognitive changes.", + "Underlying anxiety is common in cannabis dependence; treating anxiety may support cessation.", + "There are no FDA-approved medications for cannabis use disorder.", + "Meta-analyses show SSRIs, mixed/atypical antidepressants are not effective for cannabis dependence, but may help comorbid conditions.", + "Weak evidence exists for gabapentin and N-acetyl cysteine.", + "To monitor abstinence: order THC and creatinine, then follow the THC:creatinine ratio (not absolute levels) due to adipose release.", + "Frequent follow-up and ongoing monitoring in primary care is a key step in addressing cannabis use." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_opioids.json b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_opioids.json new file mode 100644 index 00000000..a8aaab2f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_opioids.json @@ -0,0 +1,95 @@ +[ + { + "specialist": "Chemical Dependency" + }, + { + "template": "Opioids" + }, + { + "My Clinical Question (condition: opioids)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "Assessments": { + "Required": [ + { + "Is your concern chronic opioids for pain and a desire to help taper the patient? Or does this person have an opioid use disorder or heroin use disorder?": "***" + }, + { + "Are you interested in starting buprenorphine for this patient?": "***" + }, + { + "Do you already have an X-waiver to prescribe buprenorphine for an opioid use disorder? NOTE: for pain, you do not need an X-waiver to prescribe or continue buprenorphine.": "***" + }, + { + "If you are interested in buprenorphine transition using the patch form as a bridge off of their full agonist opioid, let us know and we will walk you through that process.": "***" + }, + { + "Is the patient pregnant or planning to become pregnant?": "***" + }, + { + "Is the patient using tobacco, is it combustible or vaped, and are they interested in cutting back or stopping?": "***" + }, + { + "Type, route, amount, frequency of opioid usage?": "***" + }, + { + "Total daily Morphine Equivalents: http://www.agencymeddirectors.wa.gov/Calculator/DoseCalculator.htm": "***" + }, + { + "Treatment history? History of buprenorphine treatment? How about methadone clinic history?": "***" + }, + { + "Effects on occupational, academic or social functioning?": "***" + }, + { + "Suspected/known other substance use disorders? Psychiatric diagnoses?": "***" + }, + { + "Other medical comorbidities (esp cardiopulmonary disease including OSA, CKD4 or above)?": "***" + }, + { + "Polypharmacy? Co-prescribed benzodiazepines?": "***" + }, + { + "Family history of SUD?": "***" + }, + { + "Most recent CURES report appropriate?": "***" + }, + { + "Any history of opioid overdose, either accidental or intentional?": "***" + } + ], + "Diagnostics": [ + { + "UTox": "***" + }, + { + "CMP": "***" + }, + { + "Not required for consult but recommended: STD Screening if not done recently — HIV, RPR/VDRL, GC, Chlamydia, HCV for all SUD patients": "***" + }, + { + "EKG results in past since starting methadone if on this opioid (QTc interval)": "***" + } + ] + }, + "Clinical Pearls": [ + "For help with buprenorphine inductions: https://www.chcf.org/publication/buprenorphine-overview-clinicians/", + "Chronic pain is often better managed with multimodal treatment including non-opioid medications (systemic/topical), pacing, physical activity, CBT, patient education, and tools like the Curable app.", + "For a variety of resources about risks of chronic opioid use and tapering: https://www.oregonpainguidance.org/", + "Golden rule of opioid tapers: 'never go back up.' After reducing a dose (by 5–10%), maintain for at least 4 weeks. Patients may hold the dose an additional 4–6 weeks but should not increase again.", + "Determine taper schedule by reviewing the patient's daily dosing pattern. Example: if the patient takes 8 Norco 5 mg per day, ask them which dose they are most willing to taper (e.g., reduce 3 pm dose from 2 tabs to 1.5 tabs). Then prescribe based on new total (e.g., 210 tabs for 4 weeks if daily dose becomes 7.5).", + "Prescribe in 7-day increments (max 28 days) to monitor use and avoid weekend refills.", + "To reduce the temptation to increase the dose, refill only 2 weeks at a time and conduct pill counts or avoid early refills.", + "Adjunctive medications for withdrawal: gabapentin, pregabalin, clonidine, tylenol, dicyclomine. Optimize other pain meds like duloxetine, nortriptyline.", + "For smaller incremental tapers, compounding pharmacies may be used:\n- https://www.koshlandpharm.com/\n- https://www.sjcpharmacy.com/\n- https://www.pharmacarx.com/\n- https://www.marinerpharmacy.com/\n- https://www.safeway.com/pharmacy/pharmacy-services/compounding-services.html", + "Limited evidence supports chronic opioid use in chronic pain. Review harms/benefits: https://www.acpjournals.org/doi/full/10.7326/M14-2559", + "Slow, individualized opioid tapers may maintain or improve pain/function: https://www.acpjournals.org/doi/full/10.7326/M17-0598" + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_other.json b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_other.json new file mode 100644 index 00000000..5612ba7d --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/chemical_dependency/chemical_dependency_other.json @@ -0,0 +1,55 @@ +[ + { + "specialist": "Chemical Dependency" + }, + { + "template": "Other" + }, + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "Assessments": { + "Required": [ + { + "What substance is this consult regarding? (i.e. methamphetamine, cocaine, ambien, kratom, other)": "***" + }, + { + "Is the patient pregnant or planning to become pregnant?": "***" + }, + { + "Is the patient using tobacco, is it combustible or vaped, and are they interested in cutting back or stopping?": "***" + }, + { + "Type, route, amount, frequency of substance usage?": "***" + }, + { + "Treatment history?": "***" + }, + { + "Suspected/known other substance use disorders? Psychiatric diagnoses?": "***" + }, + { + "Other medical comorbidities?": "***" + }, + { + "Family history of SUD?": "***" + } + ], + "Diagnostics": [ + { + "UTox": "***" + }, + { + "CMP, CBC": "***" + }, + { + "Not required for consultation, but recommend STD Screening if not done recently: HIV, RPR/VDRL, GC, Chlamydia, HCV for all SUD patients": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_growth_lesion.json b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_growth_lesion.json new file mode 100644 index 00000000..b60501fe --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_growth_lesion.json @@ -0,0 +1,43 @@ +[ + { + "My Clinical Question (condition: Growth/Lesion)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Photos (see clinical pearls)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Instructions for attached photo(s)": [ + { + "Upload two photos of the patient’s skin condition that are 4 inches and 12 inches away. Label the photos with brief description and location": "***" + }, + { + "Photo tips": [ + { + "Use daylight ideally or similar lighting": "***" + }, + { + "Make sure the photo is in focus—touch the lesion on the screen to focus on the lesion. Take an additional photo with a dermatoscope if available": "***" + } + ] + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_other.json new file mode 100644 index 00000000..a08ca94e --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_other.json @@ -0,0 +1,45 @@ +[ + { + "My Clinical Question (condition: Other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Instructions for attached photo(s)": [ + { + "Upload two photos of the patient’s skin condition that are 4 inches and 12 inches away. Label the photos with brief description and location": "***" + }, + { + "Photo tips": [ + { + "Set your camera phone to the highest resolution (largest file size on your device)": "***" + }, + { + "Use daylight ideally or similar lighting": "***" + }, + { + "Make sure the photo is in focus": "***" + }, + { + "Do not use zoom": "***" + } + ] + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_rash_dermatitis.json b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_rash_dermatitis.json new file mode 100644 index 00000000..4e9fc1b5 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/dermatology/dermatology_rash_dermatitis.json @@ -0,0 +1,46 @@ +[ + { + "My Clinical Question (condition: Rash/Dermatitis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Photo (see clinical pearls)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Instructions for attached photo(s)": [ + { + "Upload representative photos of the patient’s skin condition and if there are different morphologies please try to capture them. Label the photos with location": "***" + }, + { + "Photo tips": [ + { + "Use daylight ideally or similar lighting": "***" + }, + { + "Make sure the photo is in focus and touch the part of the image/skin you want to be in focus on the screen": "***" + }, + { + "Do not use zoom": "***" + } + ] + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_insufficiency.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_insufficiency.json new file mode 100644 index 00000000..8c2e30db --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_insufficiency.json @@ -0,0 +1,70 @@ +[ + {"specialist": "Endocrinology"}, + { + "template": "Adrenal Insufficiency" + }, + { + "My Clinical Question (condition: adrenal insufficiency)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Any prior glucocorticoid exposure (systemic, topical, inhaled)?": "***" + } + ], + "Optional": [ + { + "Does the patient have any of the following predisposing factors?": [ + { + "Tuberculosis": "***" + }, + { + "AIDS": "***" + }, + { + "Metastatic Disease": "***" + } + ] + }, + { + "Does the patient have goiter?": "***" + }, + { + "Does the patient have vitiligo?": "***" + }, + { + "Has the patient experienced episodes of hypotension?": "***" + }, + { + "Has the patient recently been withdrawn from long-term corticosteroid therapy?": "***" + }, + { + "Is there any abnormal tanning of the skin?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "ACTH Stimulation Test (cortisol drawn 30–60 min after cosyntropin 250 mcg)": "***" + }, + { + "8 am ACTH – baseline (before stimulation)": "***" + }, + { + "8 am Cortisol – baseline (before stimulation)": "***" + }, + { + "8 am (non-fasting) ACTH, cortisol": "***" + } + ], + "Optional": [] + } + } + } +] \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_mass.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_mass.json new file mode 100644 index 00000000..93cf6e6c --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_adrenal_mass.json @@ -0,0 +1,95 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Adrenal Mass" + }, + { + "My Clinical Question (condition: adrenal mass)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Does the patient have hypertension or hypokalemia?": "***" + }, + { + "Is the patient Cushingoid?": "***" + }, + { + "What anti-HTN medication(s) is the patient on (if any)?": "***" + } + ], + "Diagnostics": { + "Required": [ + { + "Abdominal MRI or abdominal CT results (most recent and any past results for comparison)": "***" + }, + { + "Basic Metabolic Panel (BMP)": "***" + }, + { + "1 mg overnight dexamethasone suppression test (DST) — do not perform if concern for pheochromocytoma": "***" + }, + { + "24 Hour Urine Metanephrines": "***" + }, + { + "Serum Aldosterone": "***" + }, + { + "Serum Cortisol": "***" + } + ], + "Optional": [ + { + "24 Hour Urine Fractionated Metanephrines (if unenhanced CT attenuation ≥ 10 HU and low suspicion for pheochromocytoma)": "***" + }, + { + "Plasma Fractionated Metanephrines (if unenhanced CT attenuation ≥ 10 HU and high suspicion for pheochromocytoma)": "***" + }, + { + "8 am Plasma Aldosterone (if the patient has hypertension or hypokalemia)": "***" + }, + { + "Plasma Renin Activity (if the patient has hypertension or hypokalemia)": "***" + }, + { + "24 Hour Urinary Free Cortisol (if 1 mg DST is abnormal > 1.8)": "***" + }, + { + "Serum ACTH (if 1 mg DST is abnormal)": "***" + }, + { + "Repeat 1 mg overnight DST (if 1 mg overnight DST is abnormal)": "***" + }, + { + "Late night salivary cortisol": "***" + }, + { + "Low dose dexamethasone suppression test (DST)": "***" + }, + { + "High dose dexamethasone suppression test (DST)": "***" + }, + { + "24 Hour Urine Cortisol": "***" + }, + { + "1 mg Overnight DST": "***" + }, + { + "Late night salivary cortisol": "***" + }, + { + "ACTH": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_diabetes_mellitus.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_diabetes_mellitus.json new file mode 100644 index 00000000..d8762387 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_diabetes_mellitus.json @@ -0,0 +1,69 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Diabetes Mellitus" + }, + { + "My Clinical Question (condition: diabetes mellitus)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is the patient currently taking medication to treat diabetes? If yes, please describe.": "***" + }, + { + "Is this a new diagnosis of diabetes mellitus? If not, when was the patient diagnosed with diabetes?": "***" + }, + { + "What type of diabetes mellitus does the patient have? (Type I or Type II)": "***" + }, + { + "Insulin (including pump) or non-insulin dependent": "***" + } + ], + "Optional": [ + { + "Diabetic complications (e.g., CKD, CHF, CAD)": "***" + }, + { + "Glucose logs (if available)": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Hemoglobin A1c (HbA1c)": "***" + }, + { + "Fasting Lipid Profile": "***" + }, + { + "Fasting Glucose": "***" + }, + { + "Liver Function Tests": "***" + }, + { + "Basic Metabolic Panel": "***" + } + ], + "Optional": [ + { + "GAD antibodies": "***" + }, + { + "C-peptide level": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperaldosteronism.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperaldosteronism.json new file mode 100644 index 00000000..e67f5379 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperaldosteronism.json @@ -0,0 +1,50 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Hyperaldosteronism" + }, + { + "My Clinical Question (condition: hyperaldosteronism)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is the patient on any of these medications: mineralocorticoid receptor antagonists — spironolactone, eplerenone; ACE’s/ARB’s": "***" + } + ], + "Optional": [ + { + "Does the patient have an adrenal mass and hypertension?": "***" + }, + { + "Does the patient have evidence of spontaneous hypokalemia?": "***" + }, + { + "Does the patient have resistant hypertension (requiring ≥ 3 antihypertensives)?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "8 am Plasma Aldosterone": "***" + }, + { + "8 am Plasma Renin Activity": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + } + ], + "Optional": [] + } + } + } +] \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypercalcemia.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypercalcemia.json new file mode 100644 index 00000000..67b56fd5 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypercalcemia.json @@ -0,0 +1,76 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Hypercalcemia" + }, + { + "My Clinical Question (condition: hypercalcemia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "What is the duration of hypercalcemia?": "***" + }, + { + "Does the patient take lithium? Thiazide diuretic? Calcium or vitamin D supplements?": "***" + }, + { + "Any other OTC medications or supplements?": "***" + }, + { + "Does the patient have a history of kidney stones, low bone density, fractures?": "***" + }, + { + "Does the patient have a family history of calcium disorders, parathyroid issues, osteoporosis, fractures, endocrine tumors?": "***" + }, + { + "Any known malignancy?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "25-hydroxyvitamin D": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + }, + { + "Intact Parathyroid Hormone (PTH)": "***" + }, + { + "Phosphorus (P)": "***" + } + ], + "Optional": [ + { + "1,25-dihydroxyvitamin D (if PTH is low)": "***" + }, + { + "Parathyroid Hormone Related Peptide (PTHrP, if PTH is low)": "***" + }, + { + "Serum Protein Electrophoresis (SPEP - if PTH is low)": "***" + }, + { + "Urine Protein Electrophoresis (UPEP - if PTH is low)": "***" + }, + { + "Serum Free Light Chains (if PTH is low)": "***" + }, + { + "TSH (if PTH is low)": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperparathyroidism.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperparathyroidism.json new file mode 100644 index 00000000..e12b37dc --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperparathyroidism.json @@ -0,0 +1,68 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Hyperparathyroidism" + }, + { + "My Clinical Question (condition: hyperparathyroidism)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Has the patient ever had hypercalcemia?": "***" + }, + { + "How much calcium is the patient taking?": "***" + }, + { + "How much vitamin D is the patient taking?": "***" + }, + { + "How long has the PTH been elevated?": "***" + }, + { + "Does the patient have a history of fractures, low bone density, kidney stones?": "***" + }, + { + "Does the patient have any renal or gastrointestinal issues?": "***" + }, + { + "Does the patient have weight loss or other signs of malabsorption?": "***" + }, + { + "Has the patient ever had testing for celiac disease?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "25-hydroxyvitamin D": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + }, + { + "Intact Parathyroid Hormone (PTH)": "***" + }, + { + "Phosphorus (P)": "***" + } + ], + "Optional": [ + { + "24-hour Urine Calcium and Creatinine (if 25 OH-vitamin D is normal)": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperprolactinemia.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperprolactinemia.json new file mode 100644 index 00000000..79eeb578 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperprolactinemia.json @@ -0,0 +1,59 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Hyperprolactinemia" + }, + { + "My Clinical Question (condition: hyperprolactinemia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is the patient currently taking any medications that cause hyperprolactinemia (estrogen, antipsychotics, antidepressants, antihistamines, verapamil)?": "***" + }, + { + "If female and pre-menopausal, does the patient have oligomenorrhea or amenorrhea?": "***" + }, + { + "What are the patient’s current reproductive goals?": "***" + }, + { + "Has the patient experienced headaches or visual symptoms?": "***" + }, + { + "Does the patient have galactorrhea?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Free Thyroxine (Free T4)": "***" + }, + { + "Thyroid Stimulating Hormone (TSH)": "***" + }, + { + "Fasting Prolactin ×2 (with repeat)": "***" + }, + { + "Urine or Serum Pregnancy test": "***" + } + ], + "Optional": [ + { + "Brain MRI – pituitary protocol": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperthyroidism.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperthyroidism.json new file mode 100644 index 00000000..e9017381 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hyperthyroidism.json @@ -0,0 +1,45 @@ +[ + {"specialist": "Endocrinology"}, + {"template": "Hyperthyroidism"}, + {"My Clinical Question (condition: hyperthyroidism)": "***"}, + {"My most current assessment of this problem can be found in the note dated": "{Today/***}"}, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + {"Does the patient have a history of any autoimmune disease?": "***"}, + {"Presence of symptoms (palpitations, tremor, heat intolerance, diarrhea, ophthalmopathy, etc.)": "***"}, + {"Is the patient pregnant?": "***"}, + {"Does the patient wish to conceive?": "***"}, + {"Thyroid exam (enlarged, nodular):": "***"} + ], + "Optional": [ + { + "Medication history of": [ + { + "Immunotherapy or chemo (such as pembrolizumab)": "***" + }, + { + "Amiodarone": "***" + }, + { + "Supplements": "***" + }, + { + "Thyroid medications": "***" + } + ] + } + ] + }, + "Diagnostics": { + "Required": [ + {"Thyroid Stimulating Hormone (TSH)": "***"}, + {"Free Thyroxine (Free T4)": "***"}, + {"Total T3": "***"}, + {"Thyroid stimulating immunoglobin (TSI)": "***"} + ] + } + } + } +] \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypothyroidism.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypothyroidism.json new file mode 100644 index 00000000..f36e9c26 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_hypothyroidism.json @@ -0,0 +1,73 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Hypothyroidism" + }, + { + "My Clinical Question (condition: hypothyroidism)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Is the patient symptomatic (fatigue, weight gain, constipation, cold intolerance, etc)?": "***" + }, + { + "Is the patient pregnant?": "***" + }, + { + "Is the patient trying to conceive?": "***" + }, + { + "Please list thyroid medications (types, dosing)": "***" + } + ], + "Optional": [ + { + "Has dose titration of thyroid medication been difficult in this patient?": "***" + }, + { + "Does the patient have a medication history of": [ + { + "Immunotherapy for chemo (such as pembrolizumab)": "***" + }, + { + "Amiodarone": "***" + }, + { + "Supplements": "***" + }, + { + "Thyroid medications": "***" + } + ] + }, + { + "Do you suspect central hypothyroidism?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Thyroid Stimulating Hormone (TSH)": "***" + }, + { + "Free Thyroxine (Free T4)": "***" + } + ], + "Optional": [ + { + "Thyroid peroxidase antibody (TPO)": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_osteoporosis.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_osteoporosis.json new file mode 100644 index 00000000..c16f25ad --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_osteoporosis.json @@ -0,0 +1,80 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Osteoporosis" + }, + { + "My Clinical Question (condition: osteoporosis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Has patient ever had a fracture? If yes, was it a fragility fracture?": "***" + }, + { + "If female, is the patient pre- or post-menopausal?": "***" + }, + { + "What are patient’s bone density results?": "***" + }, + { + "Is there a family history of fracture, particularly hip fracture?": "***" + }, + { + "Has the patient been treated with prednisone or other glucocorticoids?": "***" + }, + { + "Has the patient had amenorrhea? Any history of growth or development delay?": "***" + }, + { + "Does the patient have any renal or gastrointestinal issues?": "***" + }, + { + "What is the patient’s treatment history with osteoporosis?": "***" + } + ], + "Optional": [ + { + "Any history of organ transplant?": "***" + }, + { + "Any intolerance or contraindications to oral bisphosphonates? (If yes, please describe)": "***" + }, + { + "Has the patient had a fracture while taking an oral bisphosphonate?": "***" + }, + { + "Is GFR < 35?": "***" + } + ], + "Diagnostics": { + "Required": [ + { + "Vitamin D Levels": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + }, + { + "DXA Scan": "***" + }, + { + "Parathyroid Hormone (PTH)": "***" + }, + { + "Phosphorus (P)": "***" + } + ], + "Optional": [] + } + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_other.json new file mode 100644 index 00000000..133beb03 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_other.json @@ -0,0 +1,36 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Other" + }, + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Pertinent labs": "***" + }, + { + "Pertinent medications": "***" + }, + { + "Pertinent physical exam features": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_pituitary_mass.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_pituitary_mass.json new file mode 100644 index 00000000..cbb848af --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_pituitary_mass.json @@ -0,0 +1,68 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Pituitary Mass" + }, + { + "My Clinical Question (condition: pituitary mass)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Does the patient have headache?": "***" + }, + { + "Does the patient have vision abnormalities? (If yes, please describe.)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Brain MRI - pituitary protocol (not just brain MRI)": "***" + }, + { + "Prolactin": "***" + }, + { + "IGF-1": "***" + }, + { + "TSH": "***" + }, + { + "Free T4": "***" + }, + { + "LH": "***" + }, + { + "FSH": "***" + }, + { + "FSH, LH, morning testosterone for men": "***" + }, + { + "8am non fasting ACTH": "***" + }, + { + "8am non fasting Cortisol": "***" + } + ], + "Optional": [ + { + "24 hour urine free cortisol (only if suspecting Cushing's); 1 mg DST would be another option": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_thyroid_nodule.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_thyroid_nodule.json new file mode 100644 index 00000000..e6b66105 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_thyroid_nodule.json @@ -0,0 +1,54 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Thyroid Nodule" + }, + { + "My Clinical Question (condition: thyroid nodule)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Does the patient have symptoms of hyper- or hypothyroidism? If yes, please list.": "***" + }, + { + "Has the patient had any prior FNAs; if so, what were the results / when were they done": "***" + } + ], + "Optional": [ + { + "Does the patient have a history of neck irradiation?": "***" + }, + { + "Does the patient have dysphagia?": "***" + }, + { + "Does the patient have dysphonia?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Thyroid Ultrasound": "***" + }, + { + "Thyroid Stimulating Hormone (TSH)": "***" + } + ], + "Optional": [ + { + "Pathology Report (if prior FNAs)": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_vitamin_d_deficiency.json b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_vitamin_d_deficiency.json new file mode 100644 index 00000000..cbd98534 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/endocrinology/endocrinology_vitamin_d_deficiency.json @@ -0,0 +1,84 @@ +[ + { + "specialist": "Endocrinology" + }, + { + "template": "Vitamin D Deficiency" + }, + { + "My Clinical Question (condition: vitamin d deficiency)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "How much calcium and vitamin D is the patient taking?": "***" + }, + { + "Any history of stomach/intestinal surgeries?": "***" + }, + { + "Any weight loss or other signs of malabsorption? Any history of GI surgeries?": "***" + }, + { + "Does the patient have a history of hypercalcemia?": "***" + }, + { + "Does the patient have a history of kidney stones?": "***" + }, + { + "Has the patient been tested for celiac?": "***" + } + ], + "Optional": [ + { + "Is the patient is menopausal?": "***" + }, + { + "Does the patient have a history of osteoporosis/prior fractures or CKD?": "***" + }, + { + "Please include any information on any malabsorption issues or intestinal surgeries.": "***" + }, + { + "Does the patient have severe vitamin D deficiency (<10)?": "***" + }, + { + "Does the patient have hypercalcemia?": "***" + }, + { + "Does the patient had recurrent kidney stones?": "***" + }, + { + "Does the patient have sarcoidosis or other granulomatous disease?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "25-hydroxyvitamin D": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + }, + { + "Intact Parathyroid Hormone (PTH)": "***" + }, + { + "Phosphorus (P)": "***" + } + ], + "Optional": [ + { + "24 hour urine calcium and creatinine": "***" + } + ] + } + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_other.json b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_other.json new file mode 100644 index 00000000..6c92bb76 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_other.json @@ -0,0 +1,33 @@ +[ + { + "specialist": "ENT" + }, + { + "template": "Other" + }, + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + "Description of pertinent symptoms", + "Pertinent physical exam findings", + "Pertinent labs and imaging findings", + "Pertinent medications", + "Management or treatments tried, if applicable" + ] + }, + "Diagnostics": [] + } + }, + { + "Clinical Pearls": [ + "For sudden sensorineural hearing loss, call ENT for urgent eval and consider high dose steroid burst (60 mg/day prednisone)." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_sinusitis.json b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_sinusitis.json new file mode 100644 index 00000000..5e9d9776 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_sinusitis.json @@ -0,0 +1,75 @@ +[ + { + "specialist": "ENT" + }, + { + "template": "Sinusitis" + }, + { + "My Clinical Question (condition: sinusitis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Nasal stuffiness or congestion? Nasal blockage or obstruction? Which side is worse?": "***" + }, + { + "Facial pain/pressure? Decreased smell? Mucopurulent nasal drainage?": "***" + }, + { + "Are the symptoms occurring every day, all day, or they come and go?": "***" + }, + { + "Is the length of time of symptoms less than 1 month or more than 3 months?": "***" + }, + { + "History of prior surgeries?": "***" + }, + { + "History of prior imaging?": "***" + }, + { + "History of prior trauma?": "***" + }, + { + "History of allergy testing?": "***" + }, + { + "Have saline sprays been tried? Saline irrigations? How frequently?": "***" + }, + { + "Change in symptoms?": "***" + }, + { + "Nasal steroid sprays? Nasal steroid irrigations such as budesonide?": "***" + }, + { + "Antibiotics and if so which ones and for how long?": "***" + }, + { + "Other medications?": "***" + } + ] + } + }, + "Diagnostics": [ + { + "None for acute symptoms (less than 1 month)": "***" + }, + { + "For sinus symptoms that have lasted longer than 3 months, should obtain a non-contrast CT Sinus for objective confirmation.": "***" + } + ] + }, + { + "Clinical Pearls": [ + "Consider migraine headache as common mimic of chronic sinusitis especially if main symptom is pain with lack of nasal symptoms.", + "Trial of saline irrigation twice a day for at least one month and nasal steroids for at least one month prior to referral." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_tinnitus.json b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_tinnitus.json new file mode 100644 index 00000000..fbfd27f8 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/ent/ent_tinnitus.json @@ -0,0 +1,81 @@ +[ + { + "specialist": "ENT" + }, + { + "template": "Tinnitus" + }, + { + "My Clinical Question (condition: tinnitus)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Tinnitus is any sound that the patient hears that can be heard by others (objective) vs only heard by patient (subjective)": "***" + }, + { + "Which side?": "***" + }, + { + "Constant or comes and goes?": "***" + }, + { + "Pulsatile?": "***" + }, + { + "Does the pulsations correlate with patient’s heartbeat?": "***" + }, + { + "What makes the tinnitus worse or better?": "***" + }, + { + "Does it correlate with breathing?": "***" + }, + { + "Associated hearing loss?": "***" + }, + { + "Ototoxic medications?": "***" + }, + { + "Trauma?": "***" + }, + { + "Foreign body in ear?": "***" + }, + { + "Drainage?": "***" + }, + { + "Ear pain?": "***" + }, + { + "Describe pain?": "***" + }, + { + "Vertigo (illusion of motion)?": "***" + }, + { + "Hearing aids?": "***" + } + ] + }, + "Diagnostics": [ + { + "Audiogram": "***" + } + ] + } + }, + { + "Clinical Pearls": [ + "If no hearing loss, consider referral to audiology alone.", + "For sudden sensorineural hearing loss, call ENT for urgent eval and consider high dose steroid burst (60 mg/day prednisone)." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abdominal_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abdominal_pain.json new file mode 100644 index 00000000..a545936b --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abdominal_pain.json @@ -0,0 +1,29 @@ +{ + "specialty": "Gastroenterology", + "template": "Abdominal Pain", + "Required": [ + "Duration, location, characteristic of pain", + "Associated/Alleviating/Exacerbating symptoms", + "Alarm symptoms (fever, weight loss, blood in stool)", + "Previous evaluations, procedures, surgeries, malignancy, imaging" + ], + "Optional": [], + "required_diagnostics": [ + "CMP", + "CBC", + "Lipase" + ], + "optional_diagnostics": [ + "Urine pregnancy", + "Urinalysis", + "TTG level and total IgA", + "Serum Iron", + "Total Iron Binding Capacity", + "Ferritin", + "FOBT", + "US Abdomen", + "CT Abdomen", + "XR Abdomen supine-upright" + ], + "clinical_pearls": [] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_abdominal_imaging.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_abdominal_imaging.json new file mode 100644 index 00000000..ee402eb3 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_abdominal_imaging.json @@ -0,0 +1,18 @@ +{ + "specialist": "Gastroenterology", + "template": "Abnormal Abdominal Imaging", + "Required": [ + "Abnormal imaging findings (images and report available for review)", + "Initial reason for imaging study", + "Associated signs/symptoms, PMH, or Family Hx" + ], + "Optional": [], + "diagnostics_required": [], + "diagnostics_optional": [ + "CMP", + "CBC" + ], + "clinical_pearls": [ + "None" + ] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_lfts_redirect.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_lfts_redirect.json new file mode 100644 index 00000000..7b5a29b5 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_abnormal_lfts_redirect.json @@ -0,0 +1,5 @@ +{ + "specialist": "Gastroenterology", + "template": "Abnormal LFTs", + "text": "DO NOT place a GI eConsult order for 'abnormal LFTs'. This question is more appropriate for Hepatology. Please instead use the Hepatology eConsult order." +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_alcohol_redirect.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_alcohol_redirect.json new file mode 100644 index 00000000..e7557034 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_alcohol_redirect.json @@ -0,0 +1,5 @@ +{ + "specialist": "Gastroenterology", + "template": "Alcohol", + "text": "DO NOT place a GI eConsult order for 'alcohol'. This question is more appropriate for Hepatology. Please instead use the Hepatology eConsult order." +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anemia.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anemia.json new file mode 100644 index 00000000..11fa0a0e --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anemia.json @@ -0,0 +1,29 @@ +{ + "specialty": "Gastroenterology", + "template": "Anemia", + "Required": [ + "Presence/absence of significant vaginal bleeding, epistaxis, hematochezia, melena, hematemesis, recent surgeries, urinary bleeding or other blood loss", + "Presence/absence of NSAIDS/ASA, coumadin, Plavix, other antiplatelet/antithrombotic use", + "Alarm symptoms (fever, weight loss, blood in stool)", + "Previous colonoscopy, EDG (please provide dates and results)" + ], + "Optional": [], + "required_diagnostics": [ + "CBC", + "Iron panel with ferritin, Fe, TIBC", + "BUN", + "Creatinine" + ], + "optional_diagnostics": [ + "Consider electrophoresis if MCV <75", + "Consider TTG level and total IgA (celiac disease)" + ], + "clinical_pearls": [ + "Iron deficiency without anemia does not require endoscopy", + "Normocytic anemia with normal iron stores does not necessarily require endoscopy", + "Anemia of chronic disease without other factors does not require endoscopy", + "Indications for referral:", + " - Anemia with low iron stores (e.g. low ferritin, Fe, Fe sat or high TIBC)", + " - Anemia with overt GI blood loss (e.g. black stools, blood per rectum)" + ] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anormal_liver_imaging_redirect.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anormal_liver_imaging_redirect.json new file mode 100644 index 00000000..8ad591cd --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_anormal_liver_imaging_redirect.json @@ -0,0 +1,5 @@ +{ + "specialist": "Gastroenterology", + "template": "Abnormal Liver Imaging", + "text": "DO NOT place a GI eConsult order for 'abnormal liver imaging'. This question is more appropriate for Hepatology. Please instead use the Hepatology eConsult order." +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_constipation.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_constipation.json new file mode 100644 index 00000000..2ad981dd --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_constipation.json @@ -0,0 +1,29 @@ +{ + "specialty": "Gastroenterology", + "template": "Constipation", + "Required": [ + "Stool frequency", + "Current/prior treatment, response", + "Opioid use" + ], + "Optional": [ + "Bristol stool scale type" + ], + "required_diagnostics": [ + "CBC", + "CMP", + "TSH" + ], + "optional_diagnostics": [], + "clinical_pearls": [ + "Bristol Stool Chart is used to classify stool consistency and infer GI motility:", + "Type 1: Separate hard lumps – SEVERE CONSTIPATION", + "Type 2: Lumpy and sausage like – MILD CONSTIPATION", + "Type 3: A sausage shape with cracks in the surface – NORMAL", + "Type 4: Like a smooth, soft sausage or snake – NORMAL", + "Type 5: Soft blobs with clear-cut edges – LACKING FIBER", + "Type 6: Mushy consistency with ragged edges – MILD DIARRHEA", + "Type 7: Liquid consistency with no solid pieces – SEVERE DIARRHEA", + "Image reference: http://cdn.intechopen.com/pdfs-wm/46082.pdf" + ] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_diarrhea.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_diarrhea.json new file mode 100644 index 00000000..9512912d --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_diarrhea.json @@ -0,0 +1,35 @@ +{ + "specialty": "Gastroenterology", + "template": "Diarrhea", + "Required": [ + "Duration, frequency, watery? bloody? mucous? floating?", + "Abdominal pain? Fever? Vomiting?", + "Incontinence? nocturnal? weight loss?", + "Exposures: travel, antibiotic, other", + "Personal or family history of IBD" + ], + "Optional": [], + "required_diagnostics": [ + "CMP", + "CBC", + "TSH", + "TTG and total IgA", + "GI PCR", + "Fecal calprotectin", + "Fecal elastase (qualitative, if abnormal consider quantitative)" + ], + "optional_diagnostics": [ + "C Diff", + "ESR", + "CRP", + "FOBT", + "CT Abdomen", + "MRI Abdomen", + "XR Abdomen", + "Colonoscopy", + "EGD" + ], + "clinical_pearls": [ + "None" + ] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_gerd_dyspepsia.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_gerd_dyspepsia.json new file mode 100644 index 00000000..96108329 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_gerd_dyspepsia.json @@ -0,0 +1,29 @@ +{ + "specialist": "Gastroenterology", + "template": "GERD/dyspepsia", + "Required": [ + "Symptoms: Reflux? Heartburn? Odynophagia? Dysphagia? Weight loss? New onset >60 y/o?", + "Duration? Progression? h/o food impaction?", + "Use of NSAIDs, antiplatelets, anticoagulants or supplements that affect bleeding", + "Management to date: dose, duration, response, H2 blockers, PPI, others", + "Symptoms despite twice daily PPI therapy for 8 weeks?", + "Reflux symptoms > 5 years?", + "Prior EGD + pathology" + ], + "Optional": [ + "None" + ], + "diagnostics_required": [], + "diagnostics_optional": [ + "BMP (if symptoms of dyspepsia)", + "CBC (if symptoms of dyspepsia)", + "H pylori (if symptoms of dyspepsia)", + "EGD (If the patient is male and > 50 years old with reflux symptoms for > 5 years and has one or more of the following, then EGD is required: 1) Nocturnal reflux? 2) Hiatal hernia? 3) Tobacco use? 4) Central adiposity?)" + ], + "clinical_pearls": [ + "PPI trial (8 weeks), taken 30-60 minutes before a meal", + "After about 8 weeks of PPI, pt can try to stop or reduce PPI to lowest effective dose", + "Consider H2 blocker if needed", + "HBV – order HEP eConsult (Internal template only): DO NOT place a GI eConsult order for 'HBV'. This question is more appropriate for Hepatology. Please instead use the Hepatology eConsult order." + ] +} diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_ibs.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_ibs.json new file mode 100644 index 00000000..d196d748 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_ibs.json @@ -0,0 +1,27 @@ +{ + "specialty": "Gastroenterology", + "template_name": "IBS", + "Required": [ + "Symptoms (Diarrhea? Constipation? Mixed? Duration? Abdominal pain?)", + "Triggers", + "Current/previous treatment, response" + ], + "Optional": [ + "None" + ], + "diagnostics_required": [ + "CBC", + "CMP", + "TSH" + ], + "diagnostics_optional": [ + "GI PCR (diarrhea only)", + "Fecal Calprotectin (diarrhea only)", + "TTG IgA and IgA (diarrhea only)", + "CRP", + "ESR" + ], + "clinical_pearls": [ + "None" + ] +} \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_nausea_vomiting.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_nausea_vomiting.json new file mode 100644 index 00000000..52cb0700 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_nausea_vomiting.json @@ -0,0 +1,32 @@ +{ + "specialty": "Gastroenterology", + "template_name": "Nausea/Vomiting", + "Required": [], + "Optional": [ + "Duration and pattern", + "Weight loss", + "Abdominal pain", + "Fever", + "Diarrhea", + "Diabetic", + "Hematemesis", + "Surgical history", + "Marijuana", + "Chronic opioids" + ], + "diagnostics_required": [ + "CBC", + "CMP", + "H pylori" + ], + "diagnostics_optional": [ + "Lipase", + "TTG IgA and IgA", + "CT Abdomen", + "Ultrasound Abdomen", + "XR Abdomen" + ], + "clinical_pearls": [ + "None" + ] +} \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_other.json new file mode 100644 index 00000000..c1e5299f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gastroenterology/gastroenterology_other.json @@ -0,0 +1,34 @@ +{ + "specialty": "Gastroenterology", + "template_name": "Other", + "Required": [ + "Symptoms", + "Pertinent labs", + "Pertinent medications", + "Pertinent physical exam features" + ], + "Optional": [ + "None" + ], + "diagnostics_required": [ + "None" + ], + "diagnostics_optional": [ + "CBC", + "CMP", + "Lipase", + "Urine pregnancy", + "HgbA1c", + "ESR", + "C-Reactive protein", + "Serum iron", + "FOBT", + "TSH", + "TTG IgA and IgA", + "GI PCR", + "C Diff Toxin PCR" + ], + "clinical_pearls": [ + "None" + ] +} \ No newline at end of file diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_abnormal_pap_smear.json b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_abnormal_pap_smear.json new file mode 100644 index 00000000..f4d2555f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_abnormal_pap_smear.json @@ -0,0 +1,54 @@ +[ + { + "specialist": "Gynecology" + }, + { + "template": "Abnormal Pap Smear" + }, + { + "My Clinical Question (condition: abnormal pap smear)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include the following assessments and/or diagnostics": { + "Assessments": { + "Required": [ + { + "Is there any past history of abnormal pap smears or confirmed cervical dysplasia? If yes, list all pap smear, HPV, and/or biopsy results in the last 5 years.": "***" + }, + { + "Is the patient immunocompromised? If yes, why?": "***" + }, + { + "Does the patient have any history of treatment such as LEEP, cold knife cone, or cervical ablation? If yes, state when, which treatment, and pathology results if available.": "***" + } + ], + "Optional": [ + { + "Exam findings (appearance of cervix, any palpable findings, etc.)": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Most recent pap smear cytology, as applicable": "***" + }, + { + "Most recent high risk HPV results, as applicable": "***" + } + ], + "Optional": [] + } + } + }, + { + "Clinical Pearls": [ + "Below is the link to the ASCCP (American Society for Colposcopy and Cervical Pathology) guideline on abnormal pap smears", + "http://www.asccp.org/Assets/51b17a58-7af9-4667-879a-3f48472d6dc6/635912165077730000/asccp-management-guidelines-august-2014-pdf", + "Access guidelines through the ASCCP app: https://www.asccp.org/mobile-app" + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_contraceptive_issues.json b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_contraceptive_issues.json new file mode 100644 index 00000000..6247d4e8 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_contraceptive_issues.json @@ -0,0 +1,47 @@ +[ + { + "specialist": "Gynecology" + }, + { + "template": "Contraceptive Issues" + }, + { + "My Clinical Question (condition: contraceptive issues)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include the following assessments and/or diagnostics": { + "Assessments": { + "Required": [ + { + "Is the patient a smoker?": "***" + }, + { + "Does the patient have a history of hypertension, thrombophilia, estrogen-dependent tumors/cancer, migraines with aura, or seizure disorder?": "***" + }, + { + "Prior methods of birth control used": "***" + }, + { + "Prior side effects of birth control": "***" + }, + { + "Reproductive goals/plan in the next 1–5 years": "***" + } + ], + "Optional": [] + }, + "Diagnostics": [] + } + }, + { + "Clinical Pearls": [ + "Hormonal birth control options often have minimal side effects after the first 2-3 months of use.", + "Consider STI screening.", + "For providers: https://www.cdc.gov/reproductivehealth/contraception/mmwr/mec/summary.html", + "For patients: https://www.bedsider.org/" + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_other.json new file mode 100644 index 00000000..bf571860 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_other.json @@ -0,0 +1,39 @@ +[ + { + "specialist": "Gynecology" + }, + { + "template": "Other" + }, + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include the following assessments and/or diagnostics": { + "Assessments": { + "Required": [ + { + "Pertinent symptoms": "***" + }, + { + "Pertinent labs": "***" + }, + { + "Pertinent medications": "***" + }, + { + "Pertinent physical exam features": "***" + } + ], + "Optional": [] + }, + "Diagnostics_": [] + } + }, + { + "Clinical Pearls": [] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_vaginitis.json b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_vaginitis.json new file mode 100644 index 00000000..ac152dae --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/gynecology/gynecology_vaginitis.json @@ -0,0 +1,79 @@ +[ + { + "specialist": "Gynecology" + }, + { + "template": "Vaginitis" + }, + { + "My Clinical Question (condition: vaginitis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include the following assessments and/or diagnostics": { + "Assessments": { + "Required": [ + { + "What are the symptoms?": "***" + }, + { + "How long have the symptoms been present?": "***" + }, + { + "Has any treatment been used and was it effective?": "***" + }, + { + "Is the patient sexually active?": "***" + }, + { + "If yes, any new sexual partner in the past year?": "***" + }, + { + "If partner(s) has a penis, any current contraceptive method?": "***" + }, + { + "Any recent antibiotic use or hygiene changes?": "***" + }, + { + "Is this problem recurrent (>4 times/year)?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Pelvic exam": "***" + }, + { + "GC/Chlamydia (CT)": "***" + }, + { + "Urinalysis with microscopy and reflex culture": "***" + }, + { + "Urine or serum pregnancy test": "***" + }, + { + "Wet mount with pH and microscopy or equivalent (e.g. Affirm/genital culture)": "***" + } + ], + "Optional": [ + { + "Yeast culture": "***" + }, + { + "Trichomonas": "***" + } + ] + } + } + }, + { + "Clinical Pearls": [ + "Vaginal discharge without other symptoms can be physiologic." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_anemia.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_anemia.json new file mode 100644 index 00000000..38f7cdeb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_anemia.json @@ -0,0 +1,68 @@ +[ + { + "specialist": "Hematology" + }, + { + "template": "Anemia" + }, + { + "My Clinical Question (condition: anemia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Previous evaluation and treatment": "***" + }, + { + "History of gastric bypass (yes/no)": "***" + }, + { + "History of infusion/transfusion (yes/no)": "***" + }, + { + "Prior EGD/Col": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with differential": "***" + }, + { + "CMP": "***" + }, + { + "Ferritin": "***" + }, + { + "Reticulocyte count": "***" + }, + { + "Transferrin saturation": "***" + }, + { + "Vitamin B12": "***" + } + ], + "Optional": [] + } + } + }, + { + "Clinical Pearls": [ + "If the MCV is < 80, consider: Iron deficiency anemia (Ferritin < 30 ng/mL), Anemia of chronic inflammation (Ferritin > 100 ng/mL).", + "If the MCV is > 100, consider: Liver disease, Alcohol use, Medications, B12 deficiency (methylmalonic acid), Reticulocytosis, Hypothyroidism, MGUS, MDS.", + "If the MCV is normocytic, consider: Androgen deficiency, Anemia of renal disease (GFR < 60, consider EPO).", + "Copper deficiency – common in gastric bypass or enteropathies; excess zinc may worsen it.", + "Thalassemia syndromes – consider Hb Quant or alpha/beta thalassemia PCR.", + "Request auto-populated lab data when possible or collect manually if unavailable." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_elevated_ferritin.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_elevated_ferritin.json new file mode 100644 index 00000000..67f14743 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_elevated_ferritin.json @@ -0,0 +1,78 @@ +[ + { + "My Clinical Question (condition: elevated ferritin)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Family history of iron overload": "{yes/no}" + }, + { + "EtOH use": "***" + }, + { + "Documented exam for hepatosplenomegaly (otherwise an abdominal US should be considered if there is no recent cross-sectional imaging in the past year)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with differential (on two consecutive checks at least one week apart)": "***" + }, + { + "CMP": "***" + }, + { + "Ferritin (fasting and at baseline health)": "***" + }, + { + "Transferrin saturation (fasting and at baseline health)": "***" + }, + { + "ESR": "***" + }, + { + "CRP": "***" + }, + { + "HFE mutation screening": "***" + }, + { + "Comprehensive hepatitis panel": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "MRI T2* can help quantify whether or not the serum ferritin is associated with end-organ iron overload. This should be done if the ferritin > 1000 before referring to hematology. Hematology typically will only do phlebotomy if there is evidence of clinically significant iron overload, or if the patient has a true diagnosis of hereditary hemochromatosis": "***" + }, + { + "In general, the liver usually is the organ that incurs iron deposition first. Please be mindful of LFT abnormalities and other downstream end-organ complications such as arrhythmias, arthropathy, or endocrinopathies (T2DM, skin hyperpigmentation, impotence) that may make a hereditary hemochromatosis likely": "***" + }, + { + "In general, females may present later with iron overload due to menstrual bleeding. HFE is a very common gene mutation with up to 5-10% of Caucasian patients as a carrier. The vast majority of heterozygous HFE carriers will not need hematology care even for mildly elevated iron parameters. The overall clinical penetrance of hereditary hemochromatosis, even if inherited as homozygous, is low": "***" + }, + { + "Assuming TSAT was done while fasting, a TSAT > 45% could support an iron-avid state": "***" + }, + { + "If there is concern for a hemolytic anemia due to concomitant anemia or bilirubinemia, please send an LDH and haptoglobin. Ineffective erythropoietic states can lead to secondary iron overload": "***" + }, + { + "Some cases of a moderately elevated ferritin are secondary to fatty liver or other known hepatic pathology": "***" + }, + { + "The ferritin level is nonspecific as an acute phase reactant and if not reflecting overall iron body stores, further workup by primary care should attempt to identify an alternative reactive etiology (autoimmune, infectious, inflammatory, malignancy, etc.": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_erythrocytosis.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_erythrocytosis.json new file mode 100644 index 00000000..7caaf0ac --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_erythrocytosis.json @@ -0,0 +1,72 @@ +[ + { + "specialty": "Hematology" + }, + { + "template_name": "Isolated Erythrocytosis" + }, + { + "My Clinical Question (condition: erythrocytosis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "SpO2 level": "***" + }, + { + "Updated medications (e.g., testosterone, diuretics), including non-prescription supplements": "***" + }, + { + "Smoking status": "***" + }, + { + "OSA status": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with differential (on two consecutive checks at least one week apart with adequate hydration)": "***" + }, + { + "CMP": "***" + }, + { + "LDH": "***" + }, + { + "Ferritin": "***" + }, + { + "Transferrin saturation": "***" + }, + { + "Serum erythropoietin": "***" + }, + { + "Urinalysis": "***" + } + ], + "Optional": [] + } + } + }, + { + "Clinical Pearls": [ + "If the EPO level is suppressed or low, please send a JAK2 V617F and refer to hematology.", + "Definition of erythrocytosis/polycythemia is Hb > 16.5 g/dL in men, > 16.0 in women, or HCT > 49 in men, > 48 in women.", + "Consider that smoking, testosterone, or other anabolic steroids can cause a secondary polycythemia. High altitudes, COPD and sleep apnea (uncommonly) can cause a secondary erythrocytosis.", + "Optional testing includes testosterone and carboxyhemoglobin. Sleep study should be considered in the right clinical context.", + "Renal cysts, post-renal transplant, congenital heart disease, and renal artery stenosis can cause polycythemia.", + "Do not replete iron without hematology input if iron deficient and already being considered for polycythemia.", + "If early satiety is present, a splenic ultrasound can help build a case for myeloproliferative neoplasm." + ] + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukocytosis.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukocytosis.json new file mode 100644 index 00000000..b83c18cb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukocytosis.json @@ -0,0 +1,69 @@ +[ + { + "My Clinical Question (condition: Isolated Leukocytosis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Documented exam for hepatosplenomegaly (otherwise an abdominal US should be considered if there is no recent cross-sectional imaging in the past year)": "***" + }, + { + "Updated medications (e.g. steroids, lithium), including non-prescription supplements": "***" + }, + { + "Last weight/BMI": "***" + }, + { + "Smoking": "***" + }, + { + "Prior splenectomy": "{yes/no}" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with differential (on two consecutive checks at least one week apart)": "***" + }, + { + "CMP": "***" + }, + { + "LDH": "***" + }, + { + "ESR": "***" + }, + { + "CRP": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "If there is mainly a neutrophilia, that this is encountered often with a reactive process: acute or chronic infection, steroids, splenectomy, smoking. As a diagnosis of exclusion, we sometimes see a mild neutrophilic leukocytosis in patients with obesity": "***" + }, + { + "If there is a predominant lymphocytosis that remains persistent, then sending a peripheral flow cytometry to look for a monoclonal lymphocytosis is appropriate": "***" + }, + { + "For complexity, we often evaluate hypereosinophilia (AEC > 1500) consults in clinic, but that can be seen in patients with asthma and drug reactions. Please screen for Strongyloides Ab": "***" + }, + { + "If diarrhea is present, consider C. Diff testing if recently hospitalized": "***" + }, + { + "Please consider the possibility of asplenia in a patient with multiple cytoses, but if spleen is intact or enlarged, then testing for myeloproliferative disorders is more appropriate. This may include BCR/ABL screening": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukopenia.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukopenia.json new file mode 100644 index 00000000..8513082b --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_isolated_leukopenia.json @@ -0,0 +1,69 @@ +[ + { + "My Clinical Question (condition: Isolated Leukopenia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Patient nationality": "***" + }, + { + "EtOH use": "***" + }, + { + "Spleen and lymph node exam": "***" + }, + { + "Updated medications, including non-prescription supplements": "***" + }, + { + "Ultrasound spleen if no other cross-sectional imaging during documented leukopenia": "{yes/no}" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CMP": "***" + }, + { + "LDH": "***" + }, + { + "Vitamin B12": "***" + }, + { + "HIV": "***" + }, + { + "Hepatitis C antibody": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "A note about constitutional neutropenia (WBC > 2.5 K/mcL): Many individuals maintain consistently low WBC counts without evidence of increased susceptibility to infection or any other adverse effects. Please consider this diagnosis prior to consulting Hematology": "***" + }, + { + "Please screen for copper deficiency especially if there is a history of bariatric surgery or malabsorption": "***" + }, + { + "Please send an ANA and rheumatoid factor if there is concern for autoimmune disease": "***" + }, + { + "For most asymptomatic neutropenias in which the ANC > 1000 and there has been demonstrated stability over years, the patient can be monitored annually on CBC with differential without hematology referral": "***" + }, + { + "If the patient has a lymphopenia with an ALC between 500 and 1000, a quantitative immunoglobulin panel should be sent. We generally do not intervene for patients with asymptomatic lymphocytopenia without an associated illness": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_mgus_paraproteinemia.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_mgus_paraproteinemia.json new file mode 100644 index 00000000..eb5ababf --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_mgus_paraproteinemia.json @@ -0,0 +1,65 @@ +[ + { + "The following situations are generally inappropriate for MGUS/paraproteinemia eConsult [PLEASE PLACE AN IN-PERSON REFERRAL INSTEAD]": [ + "Unexplained anemia, cardiomyopathy, bone pain/fractures, hepatosplenomegaly, hypercalcemia, lytic lesions, macroglossia, nephrotic syndrome/proteinuria, renal insufficiency, neuropathy, purpura, B symptoms", + "M-protein > 1.5 g/dL", + "Isolated FLC ratio > 8", + "IgA MGUS" + ] + }, + { + "My Clinical Question (condition: MGUS/paraproteinemia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Documentation of a complete ROS and Physical Examination (see criteria inappropriate for e-consult)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with diff": "***" + }, + { + "CMP": "***" + }, + { + "SPIE": "***" + }, + { + "Serum free light chain ratio": "***" + }, + { + "UPEP (if SPIE or FLC ratio is abnormal)": "***" + }, + { + "Quantitative Immunoglobulins (if SPIE or FLC ratio is abnormal)": "***" + }, + { + "Random urine protein-creatinine ratio and microalbumin-creatinine ratio (if UPEP ordered)": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "The sensitivity of screening for paraproteinemia is up to 98% combining the serum protein electrophoresis, serum protein immunofixation, and serum free light chain assay.": "***" + }, + { + "Classical “CRAB criteria” are hypercalcemia, renal insufficiency, anemia, or bone lesions": "***" + }, + { + "If M-spike < 1.5 g/dL, IgG subtype, K/L ratio is normal, then they meet criteria for low-risk MGUS. Repeat labs in 6 months and if stable, then annual labwork for paraproteinemia is recommended for patients. Laboratory surveillance can be discontinued for patients with a life expectancy of <5 years and among those >80 years old. The risk of progression for MGUS is usually at most 1% per year to a symptomatic plasma cell proliferative disorder or lymphoproliferative disorder": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytopenia.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytopenia.json new file mode 100644 index 00000000..a23cad64 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytopenia.json @@ -0,0 +1,98 @@ +[ + { + "The following situations are generally inappropriate for thrombocytopenia eConsult [PLEASE PLACE AN IN-PERSON REFERRAL INSTEAD]": [ + "Easy bruising/bleeding", + "Thrombosis", + "Presence of uncommon cells on differential or slide review: (e.g. nucleated RBCs, blasts, atypical lymphocytes)", + "Platelets < 50K", + "Received heparin therapy in last 3 months", + "Unexplained adenopathy or constitutional/B symptoms (e.g. fever, weight loss, or drenching night sweats)", + "Pancytopenia", + "Concern for a MAHA/TMA (by accompanying hemolytic anemia or schistocytosis)", + "Malignancy", + "Post-transplant" + ] + }, + { + "My Clinical Question (condition: thrombocytopenia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "EtOH use": "***" + }, + { + "Known cirrhosis or splenomegaly": "{yes/no}" + }, + { + "Lymph node exam": "***" + }, + { + "Recent transfusion": "{yes/no}" + }, + { + "Updated medication list, including non-prescription supplements": "***" + }, + { + "Abdominal ultrasound of liver and spleen": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with diff": "***" + }, + { + "Repeat platelet count in citrated tube (if there is clumping)": "***" + }, + { + "CMP": "***" + }, + { + "Vitamin B12": "***" + }, + { + "HIV": "***" + }, + { + "Hepatitis C antibody": "***" + }, + { + "PT": "***" + }, + { + "PTT": "***" + }, + { + "Fibrinogen": "***" + }, + { + "LDH, haptoglobin, reticulocyte count (if there is anemia)": "***" + }, + { + "Pregnancy test (where appropriate)": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Asymptomatic, mild thrombocytopenia (100-150K/uL) stable for many years in an otherwise healthy patient can be consistent with ITP": "***" + }, + { + "For folks with concern of ITP, especially with reflux symptoms, please screen for H. pylori": "***" + }, + { + "In patients with long-standing thrombocytopenia without a normal baseline, a family history should be taken to screen for hereditary thrombocytopenia": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytosis.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytosis.json new file mode 100644 index 00000000..e8ab80ea --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_thrombocytosis.json @@ -0,0 +1,78 @@ +[ + { + "The following situations are generally inappropriate for thrombocytosis eConsult [PLEASE PLACE AN IN-PERSON REFERRAL INSTEAD]": [ + "Presence of uncommon cells on differential or slide review: (e.g. nucleated RBCs, blasts, atypical lymphocytes such as smudge cells or hairy cells)", + "Unexplained adenopathy or constitutional/B symptoms (e.g. fever, weight loss, or drenching night sweats)", + "Patients with active cardiovascular symptoms chest pain, stroke-like symptoms or vasomotor symptoms (headaches, visual changes, fatigue)", + "Venous or arterial thrombosis in setting of thrombocytosis", + "Platelet count > 1.0 million" + ] + }, + { + "My Clinical Question (condition: thrombocytosis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Documented exam for hepatosplenomegaly (Otherwise an abdominal US should be considered if there is no recent cross-sectional imaging in the past year)": "***" + }, + { + "Recent surgery or medical illness": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with diff (on two consecutive checks at least one week apart)": "***" + }, + { + "CMP": "***" + }, + { + "Ferritin": "***" + }, + { + "Transferrin saturation": "***" + }, + { + "ESR": "***" + }, + { + "CRP": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Patients with a suspected reactive thrombocytosis are not thought to be at greater risk for thrombosis due to the platelet count itself": "***" + }, + { + "Patients with extreme thrombocytosis, platelet count > 1.0 million (more often 1.5 million) can present with paradoxical bleeding from acquired von Willebrand disease": "***" + }, + { + "Patients with essential thrombocytosis may complain of fever, night sweats, weight loss, aquagenic pruritus, erythromelalgia, or early satiety. If early satiety is present, a splenic ultrasound can help build a case for a myeloproliferative neoplasm": "***" + }, + { + "Asplenic state can lead to chronic thrombocytosis": "***" + }, + { + "The majority of thrombocytoses are reactive and efforts should be made to evaluate for inflammatory conditions (rheumatologic, infectious, malignancy) or to associate with recent hospitalizations/surgeries": "***" + }, + { + "Iron deficiency is a common cause of reactive thrombocytosis": "***" + }, + { + "If workup is negative, we may consider searching for an essential thrombocytosis by sending off mutations associated with MPN including JAK2 V617F, CALR, and MPL": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_vte_thrombophilia.json b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_vte_thrombophilia.json new file mode 100644 index 00000000..2c4ed892 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hematology/hematology_vte_thrombophilia.json @@ -0,0 +1,92 @@ +[ + { + "The following situations are generally inappropriate for VTE/Thrombophilia eConsult [PLEASE PLACE AN IN-PERSON REFERRAL INSTEAD]": [ + "Recurrent VTE", + "Cancer-associated thrombosis", + "Pregnancy", + "Autoimmune disease", + "History of both arterial and venous thrombosis", + "Presence of an IVC Filter" + ] + }, + { + "My Clinical Question (condition: VTE/Thrombophilia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Risk factors for VTE present (make sure to document all: family history, weight, prior VTE, lower extremity exam, updated medication list, age-appropriate cancer screening)": "***" + }, + { + "Imaging or radiology report of VTE": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "CBC with diff (on two consecutive checks at least one week apart)": "***" + }, + { + "CMP": "***" + }, + { + "Ferritin": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Therapy guideline: https://depts.washington.edu/anticoag/home/": [ + { + "Superficial thrombophlebitis – prophylactic dose for 6 weeks if high-risk": "***" + }, + { + "Line-associated DVT – 3 months or until line out, whichever longer": "***" + }, + { + "Distal DVT – 3 months (unless anticoagulation-averse, asymptomatic, low-risk, then serial US)": "***" + }, + { + "Proximal DVT – 3-6 months at the minimum": "***" + } + ] + }, + { + "In most circumstances, we do not perform thrombophilia screening or specific management for patients > 45 years old": "***" + }, + { + "Avoid testing antithrombin, protein C, protein S during acute thrombosis or active anticoagulation": "***" + }, + { + "Uncommon causes of hypercoagulability (especially if presenting with splanchnic vein thrombosis or cerebral venous sinus thrombosis) include JAK2 mutation and paroxysmal nocturnal hemoglobinuria": "***" + }, + { + "Consider screening for proteinuria for nephrotic syndrome": "***" + }, + { + "Consider testing for antiphospholipid syndrome": "***" + }, + { + "We generally recommend that incidental PE or subsegmental PE be treated as a standard PE": "***" + }, + { + "For provoked VTE due to a surgical risk factor, we recommend finite anticoagulation due to low risk of recurrence": "***" + }, + { + "Unprovoked VTE are generally treated indefinitely assuming the bleeding risk is low although should be discussed with hematology further": "***" + }, + { + "The superficial femoral vein is a deep vein!": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_chemotherapy_immunotherapy_hepatotoxicity.json b/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_chemotherapy_immunotherapy_hepatotoxicity.json new file mode 100644 index 00000000..6fbe7c0f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_chemotherapy_immunotherapy_hepatotoxicity.json @@ -0,0 +1,86 @@ +[ + { + "My Clinical Question (condition: chemotherapy/immunotherapy hepatotoxicity)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Disease being treated and (suspected) offending agent": "***" + }, + { + "Was the offending agent stopped": "***" + }, + { + "Any preexisting (pretreatment) hepatic disease": "***" + }, + { + "HBV (pretreatment) screening results": [ + { + "Hepatitis B surface antigen (HbSAg)": "***" + }, + { + "Hepatitis B core antibody (anti-HBc)": "***" + }, + { + "Total immunoglobulin (Ig) or IgG": "***" + }, + { + "Antibody to hepatitis B surface antigen (anti-HBs)": "***" + } + ] + } + ], + "Diagnostics": { + "Required": [ + { + "CMP (AST, ALT, Bilirubin, Alk Phos)": "***" + }, + { + "GTT": "***" + } + ], + "Optional": [ + { + "HAV Ab": "***" + }, + { + "HBsAg": "***" + }, + { + "Anti-HBc": "***" + }, + { + "Anti-HBs": "***" + }, + { + "HCV Ab": "***" + }, + { + "CMV": "***" + }, + { + "Abdominal ultrasound": "***" + }, + { + "Abdominal CT": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Additional information on chemotherapy-induced liver injury is available from the LiverTox, a collaborative effort of the Liver Disease Research Branch of the National Institute of Diabetes, Digestive and Kidney Diseases (NIDDK) and the National Library of Medicine (NLM). LiverTox is a freely accessible website that provides continuously updated comprehensive and evidence-based information about the clinical features of liver injury from drugs, dietary supplements, and herbal products along with a complete and annotated list of references": "***" + }, + { + "Most hepatotoxic drug reactions are idiosyncratic and classified mechanistically either as immunologic (hypersensitivity) or metabolic": "***" + }, + { + "While the reaction to many chemotherapy drugs is manifested by hepatocellular injury, inflammation, and/or cholestasis, other agents cause endothelial damage or thrombosis leading to vascular complications such as hepatic veno-occlusive disease (VOD, also called hepatic sinusoidal obstruction syndrome [SOS])": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_other.json new file mode 100644 index 00000000..45dc153a --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/hepatology_oncology/hepatology_oncology_other.json @@ -0,0 +1,30 @@ +[ + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Pertinent labs": "***" + }, + { + "Pertinent medications": "***" + }, + { + "Pertinent physical exam features": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_cdi.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_cdi.json new file mode 100644 index 00000000..768366b4 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_cdi.json @@ -0,0 +1,59 @@ +[ + { + "My Clinical Question (condition: CDI)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Timeline of C. difficile diagnoses and treatments": "***" + }, + { + "Signs, symptoms, or other features of C. difficile infection (leukocytosis, abdominal pain, soft stool, watery stool)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Clostridioides difficile Toxin B Gene, Qualitative Real-Time PCR with Reflex to C. difficle toxin EIA – (Arista only has C difficile, and C difficile stool antigen test)": "***" + } + ], + "Optional": [ + { + "Basic Metabolic Panel (BMP)": "***" + }, + { + "Complete Blood Count (CBC)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Only test patients with signs or symptoms consistent with C. difficile infection, typically those with unexplained and new-onset development of at least 3 unformed stools over 24 hours": "***" + }, + { + "Do not re-test patients after treatment as a “test of cure”": "***" + }, + { + "Treatment recommendations vary by clinical scenario": [ + { + "Initial episode: vancomycin 125 mg PO 4x/day for 10 days OR fidaxomicin 200 mg PO bid for 10 days": "***" + }, + { + "First recurrence (i.e. second episode): prolonged tapered/pulsed vancomycin regimen OR fidaxomicin 200 mg PO bid for 10 days": "***" + }, + { + "Second or subsequent recurrence (i.e. third or subsequent episode): prolonged tapered/pulsed vancomycin regimen OR fidaxomicin 200 mg PO bid for 10 days OR vancomycin 125 mg PO 4x/day for 10 days followed by rifaximin 400 mg PO tid for 20 days OR fecal microbiota transplantation": "***" + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_positive_patients.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_positive_patients.json new file mode 100644 index 00000000..bf865801 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_positive_patients.json @@ -0,0 +1,56 @@ +[ + { + "My Clinical Question (condition: COVID Positive Patients)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "When did symptoms begin?": "***" + }, + { + "What are current symptoms (fever, chills, cough, dyspnea, myalgia, ageusia/loss of taste, anosmia/loss of small, vomiting, diarrhea, sore throat), and how have they changed?": "***" + }, + { + "When was the positive test result?": "***" + }, + { + "When was the last fever?": "***" + }, + { + "Does the patient report close contact or exposure to a person who is infected with COVID-19 within the last 14 days?": "***" + }, + { + "Does the patient have any co-morbidities (i.e. obesity, hypertension, diabetes, age 65 years and over, etc.)?": "***" + }, + { + "Are they immunocompromised?": "***" + }, + { + "What is the patient’s pregnancy status?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "SARS-CoV-2 Real-Time (RT-PCR) Diagnostic test (Nasopharyngeal Specimen recommended)": "***" + }, + { + "SARS-CoV-2 IgM/IgG serology test": "***" + }, + { + "Chest X-Ray (CXR) (2-View), PA and Lateral": "***" + } + ] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_vaccines_and_antibodies.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_vaccines_and_antibodies.json new file mode 100644 index 00000000..b65a88b3 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_covid_vaccines_and_antibodies.json @@ -0,0 +1,41 @@ +[ + { + "My Clinical Question (condition: COVID vaccines & antibodies)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Has the patient had COVID vaccines before? If so, which vaccine and when?": "***" + }, + { + "Does the patient have any co-morbidities (i.e. obesity, hypertension, diabetes, age 65 and over, etc.)?": "***" + }, + { + "Are they immunocompromised?": "***" + }, + { + "What are the patient’s allergies, if any?": "***" + }, + { + "Has the patient received any monoclonal antibodies or convalescent plasma, and if so, when?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "SARS-CoV-2 IgM/IgG serology test": "***" + } + ] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_herpes_simplex.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_herpes_simplex.json new file mode 100644 index 00000000..a55fc322 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_herpes_simplex.json @@ -0,0 +1,72 @@ +[ + { + "My Clinical Question (condition: herpes simplex)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Please describe current and past antiviral treatment and/or prophylaxis (including dosing, duration and response)": "***" + }, + { + "What signs or symptoms does the patient have?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "HSV 1 and HSV 2 IgG": "***" + }, + { + "HSV DNA PCR Qual (Lesion)": "***" + }, + { + "Viral Culture": "***" + } + ] + }, + "Clinical Pearls": [ + { + "If there is uncertainty as to the diagnosis of herpes simplex, diagnostic tests can be pursued for clarification": [ + { + "Ulcerative lesions can be swabbed with a polyester-, rayon- or nylon-tipped flocked swab and placed in viral transport medium. (Do not use calcium alginate swabs, cotton swabs, or wooden-shafted swabs)": "***" + }, + { + "HSV 1 and HSV 2 IgG antibodies can diagnose presence of infection if ulcerative lesions are not actively present. There is no established role for HSV IgM tests": "***" + } + ] + }, + { + "Recurrent (subsequent) episodes of herpes simplex in non-immunocompromised patients can be treated with these regimens": [ + { + "Genital herpes: valacyclovir (Valtrex) 1 g daily for 5 days or 500 mg twice daily for 3 days": "***" + }, + { + "Oral herpes: valacyclovir (Valtrex) 2 g twice daily for 1 day": "***" + }, + { + "Famciclovir and acyclovir are alternatives though regimens differ from those above": "***" + } + ] + }, + { + "Chronic suppression for those with frequent oral or genital herpes simplex episodes can be accomplished with": [ + { + "Acyclovir 400 mg twice daily": "***" + }, + { + "Valacyclovir (Valtrex) 500 mg to 1 g daily": "***" + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_hiv_prep.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_hiv_prep.json new file mode 100644 index 00000000..75407d13 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_hiv_prep.json @@ -0,0 +1,88 @@ +[ + { + "My Clinical Question (condition: HIV PrEP)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "What are the patient’s risk factors for HIV infection? (regular HIV-positive partner, recent bacterial STI, high number of sexual partners, inconsistent or no condom use, commercial sex work, injection drug use. Describe the patient’s sexual history and/or related behaviors in detail": "***" + }, + { + "Has the patient had a sexually transmitted infection before? If so, what condition and when was this diagnosed?": "***" + }, + { + "Does the patient have any co-morbidities or other relevant medical conditions?": "***" + }, + { + "What is the patient’s pregnancy status?": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "BMP": "***" + }, + { + "HIV Antigen/Antibody Screen": "***" + }, + { + "Hep C Ab IgG": "***" + }, + { + "Hepatitis B Surface Antigen (HBsAg)": "***" + }, + { + "Syphilis Treponemal Screen (RPR)": "***" + }, + { + "Chlamydia/GC NAAT (Urine, Swab)": "***" + }, + { + "GC Culture (Rectal, Oral)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Detailed information about PrEP for clinicians can be found at: https://www.cdc.gov/hiv/clinicians/prevention/prep.html for details regarding PrEP": "***" + }, + { + "Assuming PrEP is indicated for your patient and your patient is interested in pursuing this intervention after discussing risks and benefits, the following steps should be undertaken": [ + { + "Obtain a negative HIV test within the week before initiation PrEP": "***" + }, + { + "Ensure the patient does not currently have signs or symptoms that could be consistent with acute HIV infection in which case additional testing may be needed": "***" + }, + { + "Ensure stable renal function and lack of infection with HBV and HCV with chemistries, HBsAg, and HCV serologies": "***" + }, + { + "Screen for syphilis, gonorrhea, and chlamydia. MSM should be tested by collecting pharyngeal, rectal, and urine specimens": "***" + }, + { + "Educate the patient about medications, HIV risk-reduction behaviors, and contraception (if relevant)": "***" + } + ] + }, + { + "Patients on PrEP should be seen at least very 3 months for repeat HIV testing and clinical assessment for possible acute HIV infection; pregnancy tests (for women who may become pregnant); refill for a maximum of 90 days; assessment of and counseling on side effects, adherence, and HIV risk behaviors; and STI screening for asymptomatic MSM at high risk for bacterial STIs": "***" + }, + { + "Every 6 months monitor creatinine and conduct STI screening for sexually active individuals": "***" + }, + { + "Every 12 months evaluate need to continue PrEP": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_immunizations_vaccinations_non_covid.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_immunizations_vaccinations_non_covid.json new file mode 100644 index 00000000..47b5e1f7 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_immunizations_vaccinations_non_covid.json @@ -0,0 +1,70 @@ +[ + { + "My Clinical Question (condition: immunizations/vaccinations – non-COVID)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "If relevant, what prior vaccinations did the patient receive?": "***" + }, + { + "Has the patient had any adverse reactions to past vaccinations?": "***" + }, + { + "Does the patient have any co-morbidities?": "***" + }, + { + "Is the patient immunocompromised?": "***" + } + ], + "Optional": [ + { + "Relevant Serologies": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "An updated adult vaccine schedule can be found at: https://www.cdc.gov/vaccines/schedules/hcp/imz/adult.html": "***" + }, + { + "Vaccines have minimum intervals between doses (which can be found at http://www.cdc.gov/vaccines/pubs/pinkbook/downloads/appendices/a/age-interval-table.pdf) but no maximum intervals. There is no need to restart a series due to delayed administration of a vaccine in a series (except in some cases related to the oral typhoid vaccine)": "***" + }, + { + "Live-attenuated vaccines (MMR and VAR) can be given the same day but if not given the same day, they should be separated by at least 4 weeks": "***" + }, + { + "Multiple vaccines can be given at the same visit, with 2 notable exceptions": [ + { + "PCV13 and PPSV23 should not be given together and need to be spaced apart": "***" + }, + { + "PCV13 and Menactra (not on formulary at Stanford Health Care) should not be given together to asplenic patients. Menveo (on formulary at Stanford Health Care) can be given at the same visit as PCV13": "***" + } + ] + }, + { + "Vaccine contraindications and precautions can be found at http://www.cdc.gov/vaccines/hcp/acip-recs/general-recs/contraindications.html": "***" + }, + { + "Vaccines supplied in vials or syringes containing latex can be found at http://www.cdc.gov/vaccines/pubs/pinkbook/downloads/appendices/B/latex-table.pdf": "***" + }, + { + "Administration of blood products and immunoglobulins can reduce the effectiveness of MMR and VAR. Specific recommendations on this topic can be found in Table 2-04 of http://wwwnc.cdc.gov/travel/yellowbook/2018/the-pre-travel-consultation/general-recommendations-for-vaccination-immunoprophylaxis": "***" + }, + { + "In general, patient self-reporting of vaccination history should not be accepted as valid. If documentation of a vaccine is not available, the individual should be assumed to be unvaccinated for that dose. (An exception is that patient self-report can be accepted as valid for influenza and pneumococcal polysaccharide vaccines)": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_latent_tuberculosis.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_latent_tuberculosis.json new file mode 100644 index 00000000..430bae90 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_latent_tuberculosis.json @@ -0,0 +1,98 @@ +[ + { + "My Clinical Question (condition: Latent Tuberculosis (TB))": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Prior history of TB or latent TB or prior treatment with antimycobacterial medications": "***" + }, + { + "Signs or symptoms which could be consistent with pulmonary or extrapulmonary TB": [ + { + "Cough": "***" + }, + { + "Fever": "***" + }, + { + "Night sweats": "***" + }, + { + "Weight loss Anorexia": "***" + }, + { + "Other": "***" + } + ] + }, + { + "When was the last PPD? Include date, measurement in mm and reading (pos/neg)": "***" + }, + { + "Risk factors for TB reactivation (immunocompromising conditions, ESRD, low body weight, diabetes mellitus, intestinal bypass or gastrectomy, etc)": "***" + }, + { + "Risk factors for TB infection (birth in endemic country, known TB contact, etc)": "***" + }, + { + "Any abnormal imaging which could be consistent with extrapulmonary TB": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Chest imaging/results": "***" + }, + { + "Most recent HIV test": "***" + } + ], + "Optional": [ + { + "QuantiFERON (Interferon-Gamma Release Assays)(IGRAs)": "***" + }, + { + "T-SPOT. TB Test (Interferon Gamma Release Assay/IGRA)": "***" + }, + { + "PPD": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Tests for latent tuberculosis infection (LTBI) include the tuberculin skin test and the Mycobacterium tuberculosis (MTB) interferon-gamma release assay (IGRA). The MTB IGRA test used at this institution is the QuantiFERON-TB Plus test": "***" + }, + { + "Further information about LTBI testing and treatment can be found at https://www.cdc.gov/tb/publications/ltbi/default.htm": "***" + }, + { + "Like all laboratory tests, the QuantiFERON-TB Plus test is subject to false-positive results. For this reason, some experts recommend further evaluation of patients without significant epidemiologic risk factors for MTB infection with low QuantiFERON-TB Plus Ag-Nil results (for example, less than 0.7 IU/mL)": "***" + }, + { + "MTB IGRA tests cannot differentiate LTBI from active TB. Therefore, any patient with a positive MTB IGRA result needs evaluation to determine whether they may have active TB (pulmonary or extrapulmonary) before considering treatment for LTBI. This evaluation includes radiographic evaluation (a chest X-ray) and clinical evaluation (history and examination). If there are abnormalities on either chest X-ray or on history or exam that may be consistent with TB, further evaluation (such as sputum cultures) is needed. For example, a patient with a positive MTB IGRA and a chronic cough needs sputum cultures obtained to rule out active TB before considering treatment for LTBI even if this patient has a normal chest X-ray": "***" + }, + { + "Treatment regimens for LTBI can be found at https://www.cdc.gov/tb/topic/treatment/ltbi.htm. Four months of daily rifampin is a regimen preferred by many experts for patients without drug interactions or other contraindications to rifampin use": "***" + }, + { + "All patients diagnosed with LTBI or TB disease should be screened for HIV infection with an HIV test": "***" + }, + { + "Baseline liver tests or other laboratory tests are not routinely indicated, except in select individuals such as those on potentially hepatotoxic medications, those who regularly consume alcohol, or those with underlying liver disease": "***" + }, + { + "Patients undergoing treatment for LTBI should be evaluated every 1-2 months to assess adherence and evaluate for signs or symptoms of toxicity. Only select patients should undergo routine laboratory monitoring": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_lyme.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_lyme.json new file mode 100644 index 00000000..f2852a06 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_lyme.json @@ -0,0 +1,78 @@ +[ + { + "My Clinical Question (condition: Lyme Disease)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Reason patient was tested (signs, symptoms, or exam findings that prompted test, such as rash consistent with erythema migrans, arthralgia, fever, or headache)": "***" + }, + { + "Recent travel and/or tick exposure": "***" + }, + { + "Treatments": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Lyme titers": "***" + }, + { + "Lyme Western Blots (Only required if Total Lyme titer or Lyme IgG and IgM titers are positive or equivocal)": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Updated information for healthcare providers about diagnosis and treatment of Lyme disease can be found at https://www.cdc.gov/lyme/healthcare/index.html": "***" + }, + { + "Post-exposure prophylaxis with doxycycline after a tick bite is NOT recommended in California because of low incidence of Lyme disease here": "***" + }, + { + "Lyme disease is generally uncommon in California": "***" + }, + { + "Do not perform serologic testing as a “test of cure”": "***" + }, + { + "Stages of infection": [ + { + "Localized (early) stage (within 3-30 days of exposure)": [ + { + "Characterized by erythema migrans (expanding erythematous rash), flu-like symptoms, and lymphadenopathy": "***" + }, + { + "Serologies are insensitive; diagnosis is typically made clinically": "***" + }, + { + "Treatment typically involves doxycycline, cefuroxime axetil, or amoxicillin, each typically given for 14 days": "***" + } + ] + }, + { + "Disseminated stage": [ + { + "Characterized by multiple secondary annular rashes, flu-like symptoms, and lymphadenopathy": "***" + }, + { + "Other manifestations include migratory arthritis, cardiac conduction abnormalities, myocarditis or pericarditis, Bell’s palsy or cranial neuropathy, meningitis, and radiculopathy or neuropathy": "***" + } + ] + } + ] + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_other.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_other.json new file mode 100644 index 00000000..b6072277 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_other.json @@ -0,0 +1,32 @@ +[ + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "Cultures, pathology, serology, imaging, and other results, if applicable": "***" + }, + { + "Exposures and/or risk factors, if applicable": "***" + }, + { + "Treatments, if applicable": "***" + } + ] + }, + "Diagnostics": [ + { + "CBC, if applicable": "***" + } + ], + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_parasites.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_parasites.json new file mode 100644 index 00000000..27a1df0d --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_parasites.json @@ -0,0 +1,29 @@ +[ + { + "My Clinical Question (condition: parasites)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "What are the patient’s clinical signs and symptoms?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "Ova and Parasite Stool (O&P stool)": "***" + } + ] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_recurrent_skin_soft_tissue_infection_mrsa.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_recurrent_skin_soft_tissue_infection_mrsa.json new file mode 100644 index 00000000..f2914232 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_recurrent_skin_soft_tissue_infection_mrsa.json @@ -0,0 +1,48 @@ +[ + { + "My Clinical Question (condition: recurrent skin/soft tissue infection/MRSA)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Signs or symptoms (including location, presence of purulence, fever)": "***" + }, + { + "Immunocompromising conditions or other risk factors (obesity, prior trauma or surgery, peripheral vascular disease or lymphedema)": "***" + }, + { + "Antibiotic treatment (dates, antimicrobial agents, and treatment duration)": "***" + }, + { + "Picture of skin lesion/flesh infection, if available": "***" + }, + { + "Prior culture results": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Wound Culture (with gram stain)": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Uncomplicated cellulitis without purulence or significant systemic illness should generally be treated with oral penicillin VK or cephalexin since beta hemolytic streptococci like Streptococcus pyogenes predominate": "***" + }, + { + "Purulent skin and soft tissue infections (like furuncolosis) should be treated with incision and drainage. Prescribing trimethoprim/sulfamethoxazole or doxycycline should be considered and likely increases likelihood of treatment success": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_serologies.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_serologies.json new file mode 100644 index 00000000..3dc43fa4 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_serologies.json @@ -0,0 +1,35 @@ +[ + { + "My Clinical Question (condition: serologies)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Reason testing performed": "***" + }, + { + "Prior antimicrobial therapy": "***" + }, + { + "Laboratory test results and dates": "***" + } + ], + "Optional": [] + }, + "Diagnostics": [], + "Clinical Pearls": [ + { + "Presence of anti-HBc antibodies (total) without HBsAg generally indicates resolved HBV infection and is generally of no clinical significance except in the setting of iatrogenic immunosuppression in which case HBV can sometimes reactivate": "***" + }, + { + "Infectious mononucleosis due to EBV does not recur. EBV serologies (heterophile antibodies or EBV-specific serologies) can be used to diagnose EBV-associated infectious mononucleosis in the setting of a compatible clinical syndrome. Nearly all adults have chronic EBV infection, which is of no clinical significance except to the extent that it can be associated with lymphoma and other lymphoproliferative disorders": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_simple_cystitis_uti_recurrent_uti.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_simple_cystitis_uti_recurrent_uti.json new file mode 100644 index 00000000..2735d084 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_simple_cystitis_uti_recurrent_uti.json @@ -0,0 +1,102 @@ +[ + { + "My Clinical Question (condition: simple cystitis/UTI/recurrent UTI)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Signs or symptoms (dysuria, frequency, fever, leukocytosis, flank pain, nausea, emesis, urinary incontinence)": "***" + }, + { + "Potential risk factors (chronic catheterization, anatomic abnormalities, implanted devices/stents in the urinary tract)": "***" + }, + { + "Antibiotic treatment (dates, antimicrobial agents, and treatment duration)": "***" + }, + { + "Does the patient have any allergies (i.e. sulfa drugs, penicillin, other antibiotics, etc)?": "***" + }, + { + "What medications is the patient on (i.e. ACE inhibitors, ARBs, etc.)?": "***" + }, + { + "Does the patient have co-morbidities (i.e. impaired kidney function, urinary tract surgeries, etc.)?": "***" + }, + { + "Is the patient immunocompromised?": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "Urinalysis with Microscopy": "***" + }, + { + "Urine Culture": "***" + } + ], + "Optional": [ + { + "CBC": "***" + }, + { + "Basic Metabolic Panel": "***" + }, + { + "Comprehensive Metabolic Panel": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Before diagnosing a patient with recurrent UTIs, ensure the patient is not having asymptomatic bacteriuria (bacteriuria with or without pyuria absent signs or symptoms of a UTI)": "***" + }, + { + "Additional investigations for recurrent uncomplicated UTIs in women (such as imaging, cystoscopy, or urodynamics) should be considered for select patients in whom there exists suspicion of complicating factors": "***" + }, + { + "Management options for recurrent uncomplicated UTIs in women include": [ + { + "Episodic antibiotic treatment": "***" + }, + { + "Post-coital antibiotics or low-dose antibiotic prophylaxis (typically for 3-12 months), typically with one of these agents": [ + { + "Nitrofurantoin": "***" + }, + { + "Trimethoprim/sulfamethoxazole": "***" + }, + { + "Trimethoprim": "***" + }, + { + "Cephalexin": "***" + }, + { + "Cefaclor": "***" + }, + { + "Fosfomycin": "***" + } + ] + }, + { + "Vaginal estrogen in post-menopausal women": "***" + } + ] + }, + { + "Several approaches to prophylaxis have limited or conflicting evidence and are therefore controversial, though some providers recommend them as they are generally benign; these interventions include cranberry formulations, probiotics, D-mannose, methenamine, and behavioral counseling (increasing fluid intake, wiping from front to back, and others)": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_syphilis.json b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_syphilis.json new file mode 100644 index 00000000..758711bb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/infectious_disease/infectious_disease_syphilis.json @@ -0,0 +1,48 @@ +[ + { + "My Clinical Question (condition: syphilis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Signs or symptoms potentially consistent with syphilis and/or neurosyphilis": "***" + }, + { + "Sexual exposure history/risk": "***" + }, + { + "Please describe past and current treatment": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "RPR titer history": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Treponemal tests (Treponemal EIA/ELISA, TP-PA, and FTA-ABS) are specific for syphilis (and more rarely endemic trepanematoses). They generally remain positive for life after initial infection, even with successful treatment, and therefore cannot be used to track treatment response": "***" + }, + { + "Non-treponemal tests (RPR and VDRL) are not specific for syphilis and are occasionally false-positives. They are useful to track serologic response to syphilis treatment": "***" + }, + { + "Labs today typically utilize a “reverse” screening algorithm starting with automated treponemal tests and reflexing to a manual RPR if positive. This testing approach occasionally identifies individuals with confirmed positive treponemal tests with a negative RPR. These individuals, assuming they are asymptomatic, have late latent syphilis and, assuming they have not previously received treatment, should be treated as such": "***" + }, + { + "Appropriate serological response to syphilis treatment is at least a four-fold decline in RPR (that is, a two-fold decrease in dilutions). For example, an appropriate serologic response to treatment would be a decrease in RPR from 1:128 to 1:32. RPR often eventually decreases to the point of seroreversion but a “serofast” state sometimes exists where an RPR stays positive at low levels. Particularly when RPR titers are low at diagnosis (1:1, 1:2, or 1:4), titers may not decline, which does not necessarily reflect treatment failure": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pneumonitis_drug_induced.json b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pneumonitis_drug_induced.json new file mode 100644 index 00000000..da9e0813 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pneumonitis_drug_induced.json @@ -0,0 +1,80 @@ +[ + { + "My Clinical Question (condition: pneumonitis)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "SPECIAL NOTE": [ + { + "i. Is this consult for a patient with suspected drug induced pneumonitis with an abnormal CT Chest?": "***" + }, + { + "ii. Is the patient symptomatic with new/worsening shortness of breath or cough?": "***" + }, + { + "iii. Is the patient requiring new/increasing amounts of home oxygen?": "***" + }, + { + "Based on the above 3 questions, can the e-consult page do the following": [ + { + "If they answer yes to i and no to ii and iii: allow them to continue the e-consult": "***" + }, + { + "If they answer yes to i and ii but no to iii: You stated this patient has an abnormal CT Chest with symptoms but no new/increasing oxygen need. Please close this e-consult and send a formal referral to IP clinic for \"drug induced pneumonitis\" instead": "***" + }, + { + "If they answer yes to i, ii, and iii: You stated this patient has an abnormal CT Chest with symptoms and new/increasing oxygen need. Please close this e-consult and consider admitting patient to hospital for expedited workup instead": "***" + } + ] + } + ] + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Symptoms and duration (cough, dyspnea, etc)": "***" + }, + { + "Disease being treated and (suspected) offending agent": "***" + }, + { + "Has the offending drug been stopped? Have concomitant DMARDs been stopped?": "***" + }, + { + "Glucocorticoids or other immunosuppressive medications to treat pneumonitis started? If so, when and what dose?": "***" + }, + { + "Any prior history of drug-induced pneumonitis": "***" + }, + { + "Does patient have a history of Interstitial lung disease or autoimmune disease?": "***" + }, + { + "Describe current inhaler regimen, home oxygen regimen and if any recent changes to this regimen": "***" + }, + { + "Please include most recent Echo and PFT information (if available)": "***" + } + ], + "Diagnostics": { + "Required": [ + { + "Chest CT (without contrast) in the past 6 weeks": "***" + } + ], + "Optional": [ + { + "PFT’s": "***" + }, + { + "TTE": "***" + } + ] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pulmonary_nodule.json b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pulmonary_nodule.json new file mode 100644 index 00000000..77cbcfea --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_pulmonary_nodule.json @@ -0,0 +1,44 @@ +[ + { + "My Clinical Question (condition: pulmonary nodule)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Smoking history": "***" + }, + { + "Personal history of malignancy": "***" + }, + { + "Family history of malignancy": "***" + }, + { + "Known duration of nodule": "***" + }, + { + "Any outside studies": "***" + } + ], + "Diagnostics": { + "Required": [ + { + "CT chest (CT without contrast sufficient)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "PCP can follow incidental nodules < 6 mm as per Fleischner criteria and refer with growth": "***" + }, + { + "Refer any nodule >= 6 mm, multiple nodules, high degree of suspicion for malignancy, or high-risk comorbidities": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_unspecified.json b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_unspecified.json new file mode 100644 index 00000000..ad6f1306 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/interventional_pulmonology/interventional_pulmonology_unspecified.json @@ -0,0 +1,40 @@ +[ + { + "My Clinical Question (condition: unspecified)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Smoking history": "***" + }, + { + "Personal history of malignancy": "***" + }, + { + "Family history of malignancy": "***" + }, + { + "Description of pertinent symptoms": "***" + }, + { + "Pertinent physical exam features": "***" + }, + { + "Pertinent labs and imaging findings": "***" + }, + { + "Pertinent medications": "***" + } + ], + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_gender_health.json b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_gender_health.json new file mode 100644 index 00000000..1668c545 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_gender_health.json @@ -0,0 +1,51 @@ +[ + { + "My Clinical Question (condition: gender health)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "Patient’s lived name/pronouns/gender identity": "***" + }, + { + "Does pt have a history of hypertension, thrombophilia, estrogen dependent tumors/cancer or testosterone-sensitive tumors, polycythemia, or severe liver dysfunction": "***" + }, + { + "Has the pt undergone any gender-affirming hormone therapy? If so, please provide medications and duration": "***" + }, + { + "Has the pt undergone any gender-affirming surgeries? If so, please provide surgeries, surgeons, and approximate dates": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "CMP": "***" + }, + { + "Testosterone": "***" + }, + { + "Estradiol": "***" + }, + { + "CBC": "***" + } + ] + }, + "Clinical Pearls": [ + { + "https://prevention.ucsf.edu/transhealth/resources": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_other.json b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_other.json new file mode 100644 index 00000000..17de87a3 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_other.json @@ -0,0 +1,45 @@ +[ + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "Cultures, pathology, serology, imaging, and other results, if applicable": "***" + }, + { + "Exposures and/or risk factors, if applicable": "***" + }, + { + "Treatments, if applicable": "***" + } + ] + }, + "Diagnostics": [ + { + "CBC, if applicable": "***" + } + ], + "Clinical Pearls": [ + { + "Detailed information about PrEP for clinicians can be found at https://www.cdc.gov/hiv/clinicians/prevention/prep.html for details regarding PrEP": "***" + }, + { + "Patients on PrEP should have HIV testing every 3 months to screen for breakthrough cases of HIV": "***" + }, + { + "Patients on PrEP with FTC-TDF (Truvada) should have a BMP/Cystatin-C every 3 months to monitor renal function": "***" + }, + { + "Consider STI testing for syphilis, gonorrhea, and chlamydia every 3 months for patients who state that they are at risk. Remember that gonorrhea and chlamydia must be tested by site": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_sexual_health.json b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_sexual_health.json new file mode 100644 index 00000000..17e833eb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/lgbtqplus/lgbtqplus_sexual_health.json @@ -0,0 +1,56 @@ +[ + { + "My Clinical Question (condition: sexual health)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "CMP": "***" + }, + { + "HIV Antigen/Antibody Screen": "***" + }, + { + "HIV RNA Quant (viral load)": "***" + }, + { + "Hep C Ab IgG": "***" + }, + { + "Hepatitis B Surface Antigen (HBsAg)": "***" + }, + { + "Syphilis Treponemal Screen (STSS)": "***" + }, + { + "Chlamydia/GC NAAT (Urine, Oropharyngeal Swab, Rectal Swab)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Detailed information about PrEP for clinicians can be found at https://www.cdc.gov/hiv/clinicians/prevention/prep.html for details regarding PrEP": "***" + }, + { + "Patients on PrEP should have HIV testing every 3 months to screen for breakthrough cases of HIV": "***" + }, + { + "Patients on PrEP with FTC-TDF (Truvada) should have a BMP/Cystatin-C every 3 months to monitor renal function": "***" + }, + { + "Consider STI testing for syphilis, gonorrhea, and chlamydia every 3 months for patients who state that they are at risk. Remember that gonorrhea and chlamydia must be tested by site": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_ckd.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_ckd.json new file mode 100644 index 00000000..4515cddb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_ckd.json @@ -0,0 +1,83 @@ +[ + { + "My Clinical Question (condition: CKD)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Baseline creatinine/GFR": "***" + }, + { + "Medications, including over-the-counter (NSAIDS?)": "***" + }, + { + "Pertinent co-morbidities": "***" + } + ], + "Optional": [ + { + "If known, please provide the patient's stage of chronic kidney disease (CKD Stage I, II, III, IV, V - specify which)": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Basic Metabolic Panel (BMP)": "***" + }, + { + "UA with microscopy": "***" + }, + { + "Urine random albumin/creatinine or protein/creatinine": "***" + }, + { + "CBC w diff": "***" + }, + { + "Renal ultrasound (can defer if the patient already had CT abdomen or other abdominal imaging in the prior year)": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Please refer instead of ordering an eConsult for CKD, if they have any of the following": [ + { + "eGFR <30 mL/min/1.73 m2": "***" + }, + { + "eGFR <60 mL/min/1.73 m2 with refractory complications (hypertension, electrolyte abnormalities)": "***" + }, + { + "Persistent proteinuria (UACR >300 mg/g or UPCR >0.5 g/g on two occasions) at any eGFR": "***" + }, + { + "Rapid CKD progression (eGFR decline of >5 mL/min/1.73 m2 per year)": "***" + }, + { + "Multiple bilateral kidney cysts suggestive of polycystic kidney disease": "***" + }, + { + "Any new creatinine rise in the setting of hematuria and/or proteinuria": "***" + }, + { + "Known or newly diagnosed myeloma/gammopathy with proteinuria or elevated creatinine": "***" + }, + { + "Known or newly diagnosed autoimmune disease with proteinuria or elevated creatinine": "***" + } + ] + }, + { + "If symptoms are recurrent, consider PT for vestibular rehab": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_creatinine_rise.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_creatinine_rise.json new file mode 100644 index 00000000..3caf04cc --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_creatinine_rise.json @@ -0,0 +1,80 @@ +[ + { + "My Clinical Question (condition: creatinine rise)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Baseline creatinine": "***" + }, + { + "Medications, including over-the-counter": "***" + }, + { + "Pertinent co-morbidities": "***" + } + ], + "Optional": [ + { + "Do you suspect overdiuresis?": "***" + }, + { + "Do you suspect urinary obstruction?": "***" + }, + { + "Does the patient have proteinuria?": "***" + }, + { + "Is the patient currently taking NSAIDS?": "***" + }, + { + "Is the patient taking any medications that could be harmful to the kidneys? If yes, please state which medications and whether they have been discontinued": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Repeat BMP": "***" + }, + { + "UA with microscopy": "***" + }, + { + "Renal ultrasound (kidney ultrasound)": "***" + } + ], + "Optional": [ + { + "Serum Protein Electrophoresis (SPEP)": "***" + }, + { + "Urine Albumin (If patient has proteinuria)": "***" + }, + { + "Urine Protein Electrophoresis (UPEP) (Within 3 months)": "***" + }, + { + "Urine Creatinine (If patient has proteinuria)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "With rapidly changing creatinine or electrolytes, volume overload, or symptoms – consider ER evaluation": "***" + }, + { + "Consider med effects: hold ACE/ARBs, NSAIDS, Bactrim; possible over diuresis?": "***" + }, + { + "When starting ACE/ARB, tolerate ACE-related decrease in GFR if <30% decrease and if potassium <5.5": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hematuria.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hematuria.json new file mode 100644 index 00000000..1712f8cf --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hematuria.json @@ -0,0 +1,58 @@ +[ + { + "My Clinical Question (condition: hematuria)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Gross versus microscopic hematuria?": "***" + }, + { + "Clinical context (urinary symptoms, flank pain, recent URI, UTI or other infection)": "***" + }, + { + "Medication use (antibiotics, NSAIDS/COX2-inhibitors)": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "BMP": "***" + }, + { + "CBC": "***" + }, + { + "UA with microscopy": "***" + } + ], + "Optional": [ + { + "Renal/bladder ultrasound, if some abdominal/pelvic imaging not recently done": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Referral to Urology is recommended for gross hematuria (any age) or microscopic hematuria with GU malignancy risk factors (age >35, history of smoking, occupational exposures)": "***" + }, + { + "Confirms heme positive dipstick with automated urine microscopy (significant is >=3 rbcs/hpf)": "***" + }, + { + "If new hematuria is accompanied by rising creatinine, confirm recent renal imaging and refer to nephrology": "***" + }, + { + "For microscopic (not GROSS) hematuria with stable creatinine and potential transient causes (UTI, menses, vigorous exercise) – repeat UA in 4-6 weeks. If resolved hematuria, then no further workup required": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hyponatremia.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hyponatremia.json new file mode 100644 index 00000000..7e93b554 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_hyponatremia.json @@ -0,0 +1,63 @@ +[ + { + "My Clinical Question (condition: hyponatremia)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "History of prior episodes of hyponatremia": "***" + }, + { + "History of fluid loss (e.g. diarrhea, vomiting, diuretic therapy) or signs of dehydration": "***" + }, + { + "Signs of peripheral edema and/or ascites": "***" + }, + { + "My assessment of the patient’s volume status is": "***" + }, + { + "Confirm accurate medication list, including over-the-counter meds": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [ + { + "BMP": "***" + }, + { + "Serum osmolality": "***" + }, + { + "Urine osmolality": "***" + }, + { + "Urine electrolytes including creatinine": "***" + } + ], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Remember to correct for high blood sugars (sodium decreases 2meq/100 mg glucose above normal – 100 mg/dl)": "***" + }, + { + "STOP thiazide and recheck; consider different class for BP control": "***" + }, + { + "Consider ER for sodium < 125, especially if rapidity of development unknown": "***" + }, + { + "Consider ER referral if any symptoms (such as headache or nausea) associated with hyponatremia": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_kidney_cysts.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_kidney_cysts.json new file mode 100644 index 00000000..aaaaec00 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_kidney_cysts.json @@ -0,0 +1,35 @@ +[ + { + "My Clinical Question (condition: kidney cysts)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "No additional imaging necessary if simple cyst. If the lesion appears to be other than a simple cyst, rec CT w contrast": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Further evaluation of < 2 cm small, benign-appearing cysts (Bosniak category 1-2) is not required. Masses or Bosniak category 3-4 cysts should be referred to Urology": "***" + }, + { + "Large kidneys with multiple cysts consistent with PCKD should be referred to Nephrology": "***" + }, + { + "With questionable ultrasound findings, consider a radiology consult": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_other.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_other.json new file mode 100644 index 00000000..af4151ab --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_other.json @@ -0,0 +1,35 @@ +[ + { + "My Clinical Question (condition: other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "Pertinent labs": "***" + }, + { + "Pertinent medications/supplements/OTC": "***" + }, + { + "Pertinent physical exam features": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Please do not send eConsults for questions regarding HTN or kidney stones. Those subspecialty clinics do not offer eConsults, and so you can place a referral directly to either of these clinics instead": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_proteinuria.json b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_proteinuria.json new file mode 100644 index 00000000..a11838a6 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/nephrology/nephrology_proteinuria.json @@ -0,0 +1,85 @@ +[ + { + "My Clinical Question (condition: proteinuria)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [], + "Optional": [ + { + "Does the patient exercise heavily?": "***" + }, + { + "Does the patient have any edema? If yes, where is the edema?": "***" + }, + { + "Does the patient have any known/previously diagnosed kidney disease?": "***" + }, + { + "Does the patient have any of the following chronic conditions: Hypertension, Diabetes mellitus, Hyperlipidemia, Chronic inflammatory condition (such as SLE or RA)": "***" + }, + { + "Has the patient had a recent febrile illness?": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Basic Metabolic Panel (BMP)": "***" + }, + { + "Kidney Ultrasound (Renal Ultrasound)": "***" + }, + { + "Urine Albumin": "***" + }, + { + "Urinalysis with Microscopy": "***" + }, + { + "Spot prot/creat ratio (or 24-hour urine protein and creatinine)": "***" + }, + { + "Complete Blood Count (CBC)": "***" + } + ], + "Optional": [ + { + "HBV": "***" + }, + { + "HCV": "***" + }, + { + "Hemoglobin A1c (HbA1c)": "***" + }, + { + "HIV": "***" + }, + { + "SPEP (If patient is at risk of monoclonal gammopathy)": "***" + }, + { + "UPEP (If patient is at risk of monoclonal gammopathy)": "***" + }, + { + "Serum free light chain ratio (If patient is at risk of monoclonal gammopathy)": "***" + } + ] + }, + "Clinical Pearls": [ + { + "If new proteinuria in the setting increased creatinine, refer to Nephrology": "***" + }, + { + "Quantify persistent proteinuria with spot (random) urine protein to creatinine ratio eConsult appropriate for < 500 mg/day": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_imaging_study.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_imaging_study.json new file mode 100644 index 00000000..392d3a56 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_imaging_study.json @@ -0,0 +1,54 @@ +[ + { + "My Clinical Question (condition: Abnormal Imaging Study)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Description of the abnormal finding": "***" + }, + { + "Films and imaging report available for review (if done outside of Stanford)": "***" + }, + { + "Relevant details related to the initial reason for the study": "***" + }, + { + "Previous imaging for comparison": "***" + }, + { + "Neurologic symptoms": "***" + }, + { + "Examination of cranial nerves, strength, reflexes, sensation, and gait": "***" + } + ], + "Optional": [ + { + "Prior neurological evaluations": "***" + } + ] + }, + "Diagnostics": [], + "Clinical Pearls": [ + { + "In the setting of a normal neurologic exam, nonspecific white matter disease on MRI brain, with one spot per decade of life, can be normal": "***" + }, + { + "Patients with migraine tend to have more “nonspecific white matter changes” on MRI brain": "***" + }, + { + "On MRI spine, mild to moderate neural foraminal narrowing or central canal narrowing may not necessarily cause symptoms. Mild to moderate degenerative changes become more common with age, and can be asymptomatic": "***" + }, + { + "Multiple sclerosis, or other demyelinating conditions, cannot be diagnosed based on MRI findings alone. Clinical symptoms and exam findings must correlate to imaging": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_movements_tremor.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_movements_tremor.json new file mode 100644 index 00000000..6851e4fc --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_abnormal_movements_tremor.json @@ -0,0 +1,61 @@ +[ + { + "My Clinical Question (condition: Abnormal Movements/Tremor)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Description of movement (please include whether occurs at rest, with action or both)": "***" + }, + { + "Location of movement": "***" + }, + { + "Onset": "***" + }, + { + "Exacerbating and relieving factors": "***" + }, + { + "Whether there is associated pain": "***" + }, + { + "Whether there is a change in ADLs": "***" + }, + { + "Examination of strength, reflexes, and sensation": "***" + }, + { + "Prior neurological evaluations": "***" + } + ], + "Optional": [ + ] + }, + "Diagnostics": [], + "Clinical Pearls": [ + { + "Consider the following common, benign movement disorders that may not require neurology consultation (depending on duration, severity, accompanying symptoms)": [ + { + "Physiologic Myoclonus (a brief involuntary twitching of muscles often increased by sleep deprivation, stress, narcotics)": "***" + }, + { + "Eyelid twitching": "***" + } + ] + }, + { + "Common medications that cause tremor: lithium, valproic acid, stimulants, SSRI’s, SNRI’s. Check the prescribing information as many medications cause tremor": "***" + }, + { + "For bilateral action tremor without other neurologic signs or symptoms, consider diagnosis of essential tremor. Consider trial of propranolol or gabapentin": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_cognitive_impairment_memory_loss.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_cognitive_impairment_memory_loss.json new file mode 100644 index 00000000..97bf0791 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_cognitive_impairment_memory_loss.json @@ -0,0 +1,89 @@ +[ + { + "My Clinical Question (condition: cognitive impairment/memory loss)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Onset of symptoms, duration, and whether progression is noted": "***" + }, + { + "Impairment of any IADL’s (such as keeping track of appointments, adherence with medications, managing finances, driving)": "***" + }, + { + "Objective evidence for cognitive decline and/or personality change (such as family history, difficulties at work)?": "***" + }, + { + "Past medical history (please summarize)": "***" + }, + { + "Psychiatric history": "***" + }, + { + "Any available collateral information": "***" + } + ], + "Optional": [ + { + "History of stroke?": "***" + }, + { + "List all current medications": "***" + }, + { + "MMSE or MoCA": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "B12": "***" + }, + { + "TSH": "***" + }, + { + "Folate": "***" + }, + { + "CBC": "***" + }, + { + "CMP": "***" + } + ], + "Optional": [ + { + "Thiamine (if history of excessive alcohol intake)": "***" + }, + { + "HgbA1c": "***" + }, + { + "CT head": "***" + }, + { + "MRI Brain w/wo contrast": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Complete a Montreal Cognitive Assessment (MOCA) for objective assessment of function": "***" + }, + { + "Review medications for possible contributors to memory loss: benzodiazepines, anticholinergics, and sedative hypnotics": "***" + }, + { + "Screen for depression, anxiety, and poor sleep- all can cause memory loss": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_headache.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_headache.json new file mode 100644 index 00000000..ba339739 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_headache.json @@ -0,0 +1,120 @@ +[ + { + "My Clinical Question (condition: headache)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "Red Flags: Consider urgent/inpatient evaluation": [ + { + "Systemic symptoms/signs/disease: Fever, chills, rash myalgia, night sweats, weight loss, comorbid systemic disease, pregnancy or postpartum": "***" + }, + { + "Neurologic symptoms/signs: Change in mental status or level of consciousness, diplopia, abnormal cranial nerve function, pulsatile tinnitus, loss of sensation, weakness, ataxia, history of seizure/collapse/loss of consciousness": "***" + }, + { + "Onset sudden: Onset sudden or first ever, severe or “worst” headache of life, thunderclap headache (pain reaches maximal intensity instantly after onset)": "***" + }, + { + "Older Onset: Onset after 50 years of age": "***" + }, + { + "Pattern change: Progressive headache, precipitated by Valsalva maneuver, postural aggravation, papilledema": "***" + } + ] + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Onset of headache (days/weeks/months/years ago), frequency, duration, location, type of pain and severity": "***" + }, + { + "Medications or other strategies tried abortively and/or preventively": "***" + }, + { + "Exacerbating and alleviating factors (including presence of thunderclap, association with orgasm or autonomic signs – such as sweating/tearing/conjunctival injection)": "***" + }, + { + "Other associated symptoms (photophobia, nausea, etc)": "***" + }, + { + "Is the headache disabling i.e. interfering with work or daily life": "***" + }, + { + "Full neurologic exam": "***" + }, + { + "What is your working diagnosis for this patient's headache?": [ + { + "Migraine (Severe, recurrent, disabling, nauseating)": "***" + }, + { + "Suspected migrainous neurological accompaniments (History of migraine or other migrainous accompaniments including photo/phonophobia and nausea, PLUS vision or sensory changes, vertigo and/or weakness)": "***" + }, + { + "Vestibular migraine (episodic vertigo with history of migraine)": "***" + }, + { + "Tension-type headache (non-descript, non-nauseating)": "***" + }, + { + "Cluster headache (severe, unilateral, generally periorbital, brief < 2 hours, with automatic features – unilateral eye redness, tearing, etc)": "***" + }, + { + "Medication overuse headache": "***" + }, + { + "Other": "***" + } + ] + } + ], + "Optional": [ + { + "Imaging (if available)": "***" + }, + { + "Previous neurology evaluation (if available)": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "CT Head w/o contrast": "***" + }, + { + "MRI Brain w/w/o contrast": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Good sleep, hydration, exercise, and avoidance of problematic habits are crucial for chronic headache management": "***" + }, + { + "Reassuring signs that suggest no need for imaging are: intense form of typical headache, normal neurologic exam, typical triggers, and response to appropriate therapy": "***" + }, + { + "Patients with stable, episodic disabling headache (without alarm signs) may be considered to have migraine and given a trial of appropriate medication": "***" + }, + { + "Consider use of amitriptyline (age < 65) or nortriptyline, topiramate, or vascular agents (e.g. amlodipine, nadolol, losartan) as first line for migraine prophylaxis, and assess effectiveness at 6-8 weeks": "***" + }, + { + "75% of Medication Overuse Headache (abortive medication used more than 3 days per week) will improve within 2 months after taper/cessation of offending medications": "***" + }, + { + "Avoid frequent use (more than 3x/wk) of abortive agents-- Excedrin, ibuprofen, and triptans. Avoid high risk medications like narcotics altogether": "***" + }, + { + "If patient is requiring abortive medications more than 3x per week, consider preventive medications": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_known_epilepsy.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_known_epilepsy.json new file mode 100644 index 00000000..5994a743 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_known_epilepsy.json @@ -0,0 +1,39 @@ +[ + { + "My Clinical Question (condition: known epilepsy)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Current seizure frequency and description of events, including date of last event": "***" + }, + { + "Previous diagnosis, EEG, most recent brain imaging (if available)": "***" + }, + { + "Is the patient currently taking medication to treat/prevent seizures? If yes, please describe medications and doses": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "Drug levels": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Breakthrough seizures with alteration of consciousness (does not have to be full LOC) require a report to the DMV and temporary driving cessation after each event. For additional information, please refer to the DMV regulations: https://www.dmv.ca.gov/portal/dmv/detail/dl/driversafety/lapes": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_neuropathic_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_neuropathic_pain.json new file mode 100644 index 00000000..4d5a993f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_neuropathic_pain.json @@ -0,0 +1,123 @@ +[ + { + "My Clinical Question (condition: neuropathic pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Characteristics of pain": "***" + }, + { + "Distribution": "***" + }, + { + "Onset": "***" + }, + { + "Exacerbating and relieving factors": "***" + }, + { + "Other medical history including diabetes and alcohol history": "***" + }, + { + "Examination of strength, reflexes, sensation, and gait": "***" + }, + { + "Prior neurological evaluations": "***" + } + ], + "Optional": [ + { + "Current and previous medications for neuropathic pain": "***" + }, + { + "Abnormalities in kidney or liver function": "***" + }, + { + "Has the patient had an EMG/NCS test? If so, please provide results": "***" + }, + { + "Does the patient take vitamins or supplements?": "***" + }, + { + "Has the patient had a trial of any of the following medications for painful polyneuropathy? If yes, please describe dose, when the trial was and if patient is currently taking the medication": [ + { + "Gabapentin": "***" + }, + { + "Nortriptyline": "***" + }, + { + "Ultram": "***" + }, + { + "Lyrica": "***" + }, + { + "Cymbalta": "***" + }, + { + "Valproic acid": "***" + }, + { + "Lidocaine patch": "***" + }, + { + "Capsaicin cream": "***" + } + ] + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "BMP": "***" + }, + { + "B12": "***" + }, + { + "HgbA1c": "***" + }, + { + "Fasting glucose": "***" + }, + { + "Oral glucose tolerance test (OGTT)": "***" + }, + { + "SPEP": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Pain without any focal neurologic features is rarely secondary to a well-defined neurologic condition and neurologic consultation rarely will be helpful. Pain consultation may be more appropriate": "***" + }, + { + "Neurology Consultation is most likely helpful for": [ + { + "Pain with neuropathic features (burning, tingling, foreign body sensation, very short attacks/paroxysmal), or when other neurologic symptoms/signs are present. If this is the case, and depending on the severity of symptoms, treatment for neuropathic pain (e.g. gabapentin, pregabalin, duloxetine, amitriptyline, nortriptyline) should be started by the PCP team. Full consultation may not be needed if the etiology is clear (e.g. diabetes, postherpetic)": "***" + } + ] + }, + { + "Radicular pain originates in the neck or back and radiates in a dermatomal distribution into the limbs. Weakness is an additional clue. If weakness is present, consider spinal imaging. New onset weakness should be referred for consultation": "***" + }, + { + "Procedural treatment of radicular pain is done by PM&R (through ortho or neurosurgery) or Pain Clinic rather than neurology": "***" + }, + { + "EMG/NCS testing is not necessary in all cases": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_other_sensory_symptoms.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_other_sensory_symptoms.json new file mode 100644 index 00000000..8ef2bbda --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_other_sensory_symptoms.json @@ -0,0 +1,75 @@ +[ + { + "My Clinical Question (condition: other sensory symptoms)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Characteristics of symptoms": "***" + }, + { + "Distribution": "***" + }, + { + "Onset": "***" + }, + { + "Exacerbating and relieving factors": "***" + }, + { + "Examination of strength, reflexes, sensation, and gait": "***" + }, + { + "Prior neurological evaluations": "***" + }, + { + "Whether a specific mononeuropathy is suspected": "***" + } + ], + "Optional": [] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "B12": "***" + }, + { + "HgbA1c": "***" + }, + { + "Fasting glucose": "***" + }, + { + "Oral glucose tolerance test (OGTT)": "***" + }, + { + "SPEP": "***" + }, + { + "CBC": "***" + }, + { + "CMP": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Patients with carpal tunnel syndrome (median neuropathy) or ulnar neuropathy often endorse numbness or paresthesias of the “whole hand.” On careful questioning, symptoms are usually limited to a few fingers": "***" + }, + { + "In carpal tunnel syndrome, sensory symptoms are present in the thumb, index, middle, and half of the ring finger. In ulnar neuropathy, sensory symptoms are present in the little finger and half of the ring finger": "***" + }, + { + "EMG/NCS testing is not necessary in all cases": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_peripheral_neuropathy_distal_numbness.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_peripheral_neuropathy_distal_numbness.json new file mode 100644 index 00000000..28a4a78a --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_peripheral_neuropathy_distal_numbness.json @@ -0,0 +1,108 @@ +[ + { + "My Clinical Question (condition: peripheral neuropathy or distal numbness)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Distribution": "***" + }, + { + "Onset (Gradual? Rapidly progressive?)": "***" + }, + { + "Exacerbating and relieving factors": "***" + }, + { + "Other medical history including diabetes and alcohol history": "***" + }, + { + "Does the patient have any of the following symptoms: Numbness, Paresthesias, Pain, Weakness, Muscle wasting?": "***" + }, + { + "Examination of strength, reflexes, sensation, and gait": "***" + }, + { + "Prior neurological evaluations": "***" + } + ], + "Optional": [ + { + "Does the patient take vitamins or supplements?": "***" + }, + { + "Has the patient had a trial of any of the following medications for painful polyneuropathy? If yes, please describe dose, when the trial was and if patient is currently taking the medication": [ + { + "Gabapentin": "***" + }, + { + "Nortriptyline": "***" + }, + { + "Ultram": "***" + }, + { + "Lyrica": "***" + }, + { + "Cymbalta": "***" + }, + { + "Valproic acid": "***" + }, + { + "Lidocaine patch": "***" + }, + { + "Capsaicin cream": "***" + } + ] + } + ] + }, + "Diagnostics": { + "Required": [ + { + "B12": "***" + }, + { + "A1c": "***" + }, + { + "Fasting glucose": "***" + }, + { + "Oral glucose tolerance test (OGTT)": "***" + } + ], + "Optional": [ + { + "Serum Protein Immunoelectrophoresis (SPIE - if above are negative and neuropathy is suspected)": "***" + }, + { + "Serum Free Light Chains (FLC - if above are negative and neuropathy is suspected)": "***" + }, + { + "Methylmalonic Acid (MMA)": "***" + }, + { + "Has the patient had an EMG/NCS test? If so, please provide results": "***" + } + ] + }, + "Clinical Pearls": [ + { + "Mild distal, symmetric polyneuropathy (DSPN) often presents as slowly progressive toe and foot numbness without weakness. DSPN is often related to impaired glucose tolerance or diabetes, alcohol use, B12 deficiency, or monoclonal gammopathy. Many cases are idiopathic. See AAN Practice Parameters for workup (PubMed ID 19056666)": "***" + }, + { + "EMG/NCS testing is not necessary in all cases": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_seizure_spell.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_seizure_spell.json new file mode 100644 index 00000000..475e18cb --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_seizure_spell.json @@ -0,0 +1,88 @@ +[ + { + "My Clinical Question (condition: seizure/spell)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "Description of event (including duration, semiology, associated symptoms such as tongue biting, bowel/bladder incontinence, postictal confusion)": "***" + }, + { + "New medications? Substance or alcohol use? Recent head trauma?": "***" + }, + { + "Most recent EEG and conclusion (if available)": "***" + }, + { + "Most recent brain imaging (if available)": "***" + } + ], + "Optional": [ + { + "Does the patient have a history of alcohol abuse?": "***" + }, + { + "Does the patient have a history of recent infectious symptoms/illness? If yes, please describe": "***" + } + ] + }, + "Diagnostics": { + "Required": [], + "Optional": [ + { + "Brain Imaging (CT or MRI)": "***" + }, + { + "Calcium (Ca)": "***" + }, + { + "Complete Blood Count (CBC)": "***" + }, + { + "Comprehensive Metabolic Panel (CMP)": "***" + }, + { + "Electroencephalogram (EEG)": "***" + }, + { + "Magnesium (Mg)": "***" + }, + { + "Thyroid Stimulating Hormone (TSH)": "***" + }, + { + "Drug screen, Urine (if appropriate)": "***" + }, + { + "Alcohol & Drug Toxicology screen (if appropriate)": "***" + }, + { + "EKG": "***" + }, + { + "Holter Monitor (if cardiac arrhythmia is suspected)": "***" + }, + { + "Orthostatic vital signs": "***" + } + ] + }, + "Clinical Pearls": [ + { + "American Academy of Neurology (AAN) guideline on Evaluation of First seizure": "***" + }, + { + "Events of alteration or loss of consciousness are required to be reported to the DMV by CA law, regardless of whether they are neurologic in nature or not. For additional information on DMV regulations, please refer to the information on their website: https://www.dmv.ca.gov/portal/dmv/detail/dl/driversafety/lapes": "***" + }, + { + "Reporting form can be found here: https://www.sccgov.org/sites/phd-p/report/Documents/morb-110c.pdf": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_stroke_cva.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_stroke_cva.json new file mode 100644 index 00000000..38eca099 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_stroke_cva.json @@ -0,0 +1,49 @@ +[ + { + "My Clinical Question (condition: stroke/CVA)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": { + "Required": [ + { + "How was the diagnosis made?": "***" + }, + { + "What category of stroke(s) has the patient experienced? (Ischemic, Hemorrhagic, Both?)": "***" + }, + { + "Complete neurologic exam. Significant deficits on neurologic exam?": "***" + }, + { + "Imaging and prior evaluation": "***" + } + ], + "Optional": [ + { + "Does the patient have a history of atrial fibrillation?": "***" + }, + { + "Does the patient take blood thinning or anti-platelet medications? If yes, please describe medications and doses": "***" + } + ] + }, + "Diagnostics": { + "Required": [ + { + "Brain imaging": "***" + } + ], + "Optional": [ + { + "Carotid ultrasound": "***" + } + ] + }, + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_vertigo_dizziness.json b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_vertigo_dizziness.json new file mode 100644 index 00000000..0070fd20 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/neurology/neurology_vertigo_dizziness.json @@ -0,0 +1,41 @@ +[ + { + "My Clinical Question (condition: vertigo/dizziness)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "Red Flags – Do NOT place eConsult and consider urgent/inpatient evaluation if vertigo is accompanied by focal neurologic findings (weakness, sensory changes, facial droop), strongly consider an expedited workup for stroke/TIA": "***" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Time course (single episode/recurrent, duration)": "***" + }, + { + "Associated symptoms (nausea/vomiting, vision changes, headache, etc)": "***" + }, + { + "Please include whether there is vertigo (spinning/swaying/moving sensation or lightheadedness (feeling like going to pass out)": "***" + }, + { + "Neurologic exam findings": "***" + } + ], + "Diagnostics": { + "Required": [], + "Optional": [] + }, + "Clinical Pearls": [ + { + "Consider ENT consultation for brief (less than a minute), well-defined attacks of isolated dizziness, and/or if other ear symptoms (e.g. tinnitus, ear fullness) are present": "***" + }, + { + "If symptoms are recurrent, consider PT for vestibular rehab": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/oncology/oncology_trial_eligibility.json b/scripts/eConsult/eConsult-embeddings/data/json/oncology/oncology_trial_eligibility.json new file mode 100644 index 00000000..4dacc2e7 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/oncology/oncology_trial_eligibility.json @@ -0,0 +1,37 @@ +[ + { + "Cancer Type Requesting Eligibility for": "***" + }, + { + "My most current assessment of this problem (including prior therapies) can be found in the note dated": "{Today/***}" + }, + { + "Please include the following either, in the note or here": { + "Assessments": [ + { + "Stage at diagnosis": "***" + }, + { + "Date of diagnosis": "***" + }, + { + "Date of disease recurrence, if applicable": "***" + }, + { + "Histologic type, biomarkers": "***" + }, + { + "Current sites of disease": "***" + }, + { + "Prior systemic therapies": "***" + }, + { + "Reason for referral": "***" + } + ], + "Diagnostics": [], + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_back_hip_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_back_hip_pain.json new file mode 100644 index 00000000..0f6f947d --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_back_hip_pain.json @@ -0,0 +1,64 @@ +[ + { + "My Clinical Question (condition: Back/Hip pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Precipitating injury": "***" + }, + { + "Duration of symptoms": "***" + }, + { + "Location of pain (midline, laterality, radiation)": "***" + }, + { + "Change in function": "***" + }, + { + "Weakness on exam": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + }, + { + "Most recent BMI": "***" + } + ], + "Diagnostics": [ + { + "Clinicians should not routinely obtain imaging in patients with nonspecific, atraumatic back pain, instead, reserve imaging for patients with severe or progressive neurologic deficits or when serious underlying conditions are suspected on the basis of history and physical examination": "***" + } + ], + "Clinical Pearls": [ + { + "Red Flag symptoms, which, if present or suspected, represent an indication for earlier imaging include": [ + { + "Neurologic deficits – **immediate MRI and urgent in-person referral for concerns of spinal cord or cauda equina compression and/or severe neurologic deficits**": "***" + }, + { + "Infection": "***" + }, + { + "Cancer (patients with cancer or risk factors)": "***" + }, + { + "Compression fracture": "***" + } + ] + }, + { + "Stable radiculopathy attributable to a single nerve root level or with stable symptoms due to spinal stenosis so not need immediate imaging unless there is a risk of metastatic cancer or moderate to high risk of infection": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_hand_wrist_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_hand_wrist_pain.json new file mode 100644 index 00000000..7a803cfe --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_hand_wrist_pain.json @@ -0,0 +1,56 @@ +[ + { + "My Clinical Question (condition: Hand/Wrist pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Hand dominance": "***" + }, + { + "Precipitating injury/trauma, occupational activities, change in function": "***" + }, + { + "Localization and timing of pain": "***" + }, + { + "Joint swelling/effusion": "***" + }, + { + "Neurovascular assessment": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + } + ], + "Diagnostics": [ + { + "X-ray of the hand is generally indicated in patient with joint pain and inflammation, a history of trauma, or the presence of a deformity": [ + { + "X-ray Hand": "***" + } + ] + }, + { + "Standard plain radiographs of the wrist is often necessary to make a definitive diagnosis": [ + { + "X-ray Wrist": "***" + } + ] + } + ], + "Clinical Pearls": [ + { + "If pain is associated with any systemic symptoms (eg fever, nightsweats) or occurs in both hands/wrists or in other joints in addition, consider systemic illness and more urgent evaluation": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_knee_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_knee_pain.json new file mode 100644 index 00000000..707a90d2 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_knee_pain.json @@ -0,0 +1,64 @@ +[ + { + "My Clinical Question (condition: Knee pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Precipitating injury": "***" + }, + { + "Duration of symptoms": "***" + }, + { + "Location of pain (anterior, medial, lateral, posterior)": "***" + }, + { + "Change in function": "***" + }, + { + "Effusion": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + }, + { + "Most recent BMI": "***" + } + ], + "Diagnostics": [ + { + "If the patient is greater than 50 years of age with knee pain, consider obtaining the following X-rays": [ + { + "X-ray Knee 3 Views (When placing these orders, in the comments field, ass the following to ensure the correct views are obtained: “AP bilateral standing (weightbearing), Lateral and Sunrise”)": "***" + }, + { + "If X-rays demonstrate signs of arthritis (significant joint space narrowing), an MRI is typically not helpful for initial evaluation": "***" + } + ] + }, + { + "If arthritis is NOT suspected (the patient is less than 45 years of age ) and the patient has an acute injury": [ + { + "X-rays are NOT required": "***" + }, + { + "An MRI may be helpful: MRI Knee w/o Contrast": "***" + } + ] + }, + { + "Acute pain and symptoms including locking, catching/mechanical symptoms, effusion, and instability benefit from an MRI": "***" + } + ], + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_neck_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_neck_pain.json new file mode 100644 index 00000000..cca53608 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_neck_pain.json @@ -0,0 +1,61 @@ +[ + { + "My Clinical Question (condition: Neck pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Precipitating injury": "***" + }, + { + "Duration of symptoms": "***" + }, + { + "Location of pain (midline, laterality)": "***" + }, + { + "Change in function": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + } + ], + "Diagnostics": [ + { + "Clinicians should not routinely obtain imaging in patients with nonspecific, atraumatic neck or back pain, instead, reserve imaging for patients with severe or progressive neurologic deficits or when serious underlying conditions are suspected on the basis of history and physical examination": "***" + }, + { + "Consider cervical spine X-rays for persistent (>6 weeks), moderate to severe neck pain without red flags and affecting sleep or ability to perform daily activities and/or occupation": "***" + } + ], + "Clinical Pearls": [ + { + "Red Flag symptoms, which, if present or suspected, represent an indication for earlier imaging include": [ + { + "Neurologic deficits – **immediate MRI and urgent in-person referral for concerns of spinal cord or cauda equina compression and/or severe neurologic deficits**": "***" + }, + { + "Infection": "***" + }, + { + "Cancer (patients with cancer or risk factors)": "***" + }, + { + "Compression fracture": "***" + } + ] + }, + { + "Stable radiculopathy attributable to a single nerve root level or with stable symptoms due to spinal stenosis so not need immediate imaging unless there is a risk of metastatic cancer or moderate to high risk of infection": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_other.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_other.json new file mode 100644 index 00000000..4211686f --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_other.json @@ -0,0 +1,40 @@ +[ + { + "My Clinical Question (condition: Other)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Precipitating injury": "***" + }, + { + "Duration of symptoms": "***" + }, + { + "Location of pain": "***" + }, + { + "Change in function": "***" + }, + { + "Effusion": "***" + }, + { + "Weakness on exam": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + } + ], + "Diagnostics": [], + "Clinical Pearls": [] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_shoulder_pain.json b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_shoulder_pain.json new file mode 100644 index 00000000..11dcc852 --- /dev/null +++ b/scripts/eConsult/eConsult-embeddings/data/json/orthopedics/orthopedics_shoulder_pain.json @@ -0,0 +1,55 @@ +[ + { + "My Clinical Question (condition: Shoulder pain)": "***" + }, + { + "My most current assessment of this problem can be found in the note dated": "{Today/***}" + }, + { + "In your clinical question, or current note, please include information on": { + "Assessments": [ + { + "Precipitating injury": "***" + }, + { + "Duration of symptoms": "***" + }, + { + "Location of pain": "***" + }, + { + "Loss of passive range of motion": "***" + }, + { + "Change in function": "***" + }, + { + "Weakness on exam": "***" + }, + { + "Previous treatment (PT, injection, bracing, etc.)": "***" + }, + { + "Imaging studies": "***" + } + ], + "Diagnostics": [ + { + "If arthritis is suspected, the patient is greater than 50 years of age, and has deep pain and/or stiffness, consider obtaining": [ + { + "X-ray shoulder >= 2 Views (When placing these orders, add the following in the comments field to ensure the correct views are obtained: “True PA, AP and Internal Rotation, Axillary, Scapular Y”)": "***" + } + ] + } + ], + "Clinical Pearls": [ + { + "Frozen Shoulder is defined as: Loss of passive range of motion, and in the early phase, there is associated rest pain. If the patient is greater than 60 years of age, consider obtaining x-rays (“True Neer AP & Westpoint Axillary”). If the patient has frozen shoulder, do not obtain an MRI": "***" + }, + { + "For on online video of a shoulder exam, please visit the following web address: https://www.fammed.wisc.edu/faculty/videos/": "***" + } + ] + } + } +] diff --git a/scripts/eConsult/eConsult-embeddings/embeddings/embedding_generator.py b/scripts/eConsult/eConsult-embeddings/embeddings/embedding_generator.py index 457b42b9..573000c2 100644 --- a/scripts/eConsult/eConsult-embeddings/embeddings/embedding_generator.py +++ b/scripts/eConsult/eConsult-embeddings/embeddings/embedding_generator.py @@ -8,7 +8,7 @@ import numpy as np import marshal -DATA_DIR = os.environ.get("DATA_DIR", "data") +DATA_DIR = os.environ.get("DATA_DIR", "data/json") def load_template_text(file_path): @@ -92,3 +92,37 @@ def load_embeddings(): print(traceback.format_exc()) raise return all_embeddings, embeddings_model + + +def load_embeddings_json(): + try: + # ✅ Load extracted .txt files + json_files = [os.path.join(root, f) for root, _, files in os.walk(DATA_DIR) for f in files if f.endswith(".json")] + all_template_data = {} + + for json_file in json_files: + template_text = load_template_text(json_file) + split_texts = split_text(template_text) + all_template_data[json_file] = split_texts + print(f"✅ Loaded text from {json_file}") + + # ✅ Create embeddings for each template + embeddings_model = create_embeddings() + all_embeddings = {} + for json_file, texts in all_template_data.items(): + try: + embeddings_file = open(json_file + "_embedding.bin", "rb") + except FileNotFoundError: + embeddings = embeddings_model.embed_documents(texts) + with open(json_file + "_embedding.bin", "wb") as embeddings_file: + marshal.dump(embeddings, embeddings_file) + else: + with embeddings_file: + embeddings = marshal.load(embeddings_file) + all_embeddings[json_file] = (texts, embeddings) + print(f"✅ Embeddings created for {json_file}") + except Exception as e: + print(f"Failed to load model or curves: {str(e)}") + print(traceback.format_exc()) + raise + return all_embeddings, embeddings_model