From 021bbfaeddaa781988c38a27fcb4e47f35f52931 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Tue, 12 Aug 2025 19:30:06 +0100 Subject: [PATCH 01/18] Update cookbook docs --- cookbook/notereader_clinical_coding_fhir.py | 173 ++++++++++++ docs/assets/images/medplum_client.png | Bin 0 -> 116010 bytes docs/cookbook/cds_sandbox.md | 203 -------------- docs/cookbook/clinical_coding.md | 259 ++++++++++++++++++ docs/cookbook/discharge_summarizer.md | 226 +++++++++++++++ docs/cookbook/index.md | 4 +- docs/cookbook/notereader_sandbox.md | 75 ----- .../prebuilt_pipelines/summarization.md | 2 +- mkdocs.yml | 4 +- 9 files changed, 663 insertions(+), 283 deletions(-) create mode 100644 cookbook/notereader_clinical_coding_fhir.py create mode 100644 docs/assets/images/medplum_client.png delete mode 100644 docs/cookbook/cds_sandbox.md create mode 100644 docs/cookbook/clinical_coding.md create mode 100644 docs/cookbook/discharge_summarizer.md delete mode 100644 docs/cookbook/notereader_sandbox.md diff --git a/cookbook/notereader_clinical_coding_fhir.py b/cookbook/notereader_clinical_coding_fhir.py new file mode 100644 index 00000000..34570a6c --- /dev/null +++ b/cookbook/notereader_clinical_coding_fhir.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +""" +HealthChain Clinical Documentation Improvement Service +===================================================== + +A complete CDI service that processes clinical notes and extracts billing codes. +Demonstrates FHIR-native pipelines, legacy system integration, and multi-source data handling. + +Requirements: +- pip install healthchain +- pip install scispacy +- pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.4/en_core_sci_sm-0.5.4.tar.gz +- pip install python-dotenv + +Run: +- python notereader_clinical_coding_fhir.py # Demo and start server +""" + +import os +import uvicorn +from datetime import datetime, timezone + +import healthchain as hc +from fhir.resources.documentreference import DocumentReference +from fhir.resources.meta import Meta +from spacy.tokens import Span +from dotenv import load_dotenv + +from healthchain.fhir import create_document_reference +from healthchain.gateway.api import HealthChainAPI +from healthchain.gateway.fhir import FHIRGateway +from healthchain.gateway.soap import NoteReaderService +from healthchain.io import CdaAdapter, Document +from healthchain.models import CdaRequest +from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline +from healthchain.sandbox.use_cases import ClinicalDocumentation + + +load_dotenv() + + +BILLING_URL = ( + f"fhir://api.medplum.com/fhir/R4/" + f"?client_id={os.environ.get('MEDPLUM_CLIENT_ID')}" + f"&client_secret={os.environ.get('MEDPLUM_CLIENT_SECRET')}" + f"&token_url={os.environ.get('MEDPLUM_TOKEN_URL', 'https://api.medplum.com/oauth2/token')}" + f"&scope={os.environ.get('MEDPLUM_SCOPE', 'openid')}" +) + + +def create_pipeline(): + """Build FHIR-native ML pipeline with automatic problem extraction.""" + pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") + + # Add custom entity linking + @pipeline.add_node(position="after", reference="SpacyNLP") + def link_entities(doc: Document) -> Document: + """Add CUI codes to medical entities for problem extraction""" + if not Span.has_extension("cui"): + Span.set_extension("cui", default=None) + + spacy_doc = doc.nlp.get_spacy_doc() + + # Simple dummy linker for demo purposes + dummy_linker = { + "pneumonia": "233604007", + "type 2 diabetes mellitus": "44054006", + "congestive heart failure": "42343007", + "chronic kidney disease": "431855005", + "hypertension": "38341003", + "community acquired pneumonia": "385093006", + "ventilator associated pneumonia": "233717007", + "anaphylaxis": "39579001", + "delirium": "2776000", + "depression": "35489007", + "asthma": "195967001", + "copd": "13645005", + } + + for ent in spacy_doc.ents: + if ent.text.lower() in dummy_linker: + ent._.cui = dummy_linker[ent.text.lower()] + + return doc + + return pipeline + + +def create_app(): + """Create production healthcare API.""" + pipeline = create_pipeline() + cda_adapter = CdaAdapter() + + # Modern FHIR sources + fhir_gateway = FHIRGateway() + fhir_gateway.add_source("billing", BILLING_URL) + + # Legacy CDA processing + note_service = NoteReaderService() + + @note_service.method("ProcessDocument") + def ai_coding_workflow(request: CdaRequest): + doc = cda_adapter.parse(request) + doc = pipeline(doc) + + for condition in doc.fhir.problem_list: + # Add basic provenance tracking + condition.meta = Meta( + source="urn:healthchain:pipeline:cdi", + lastUpdated=datetime.now(timezone.utc).isoformat(), + ) + fhir_gateway.create(condition, source="billing") + + cda_response = cda_adapter.format(doc) + + return cda_response + + # Register services + app = HealthChainAPI(title="Epic CDI Service with FHIR integration") + app.register_gateway(fhir_gateway, path="/fhir") + app.register_service(note_service, path="/notereader") + + return app + + +def create_sandbox(): + @hc.sandbox(base_url="http://localhost:8000/") + class NotereaderSandbox(ClinicalDocumentation): + """Sandbox for testing clinical documentation workflows""" + + def __init__(self): + super().__init__() + self.data_path = "./resources/uclh_cda.xml" + + @hc.ehr(workflow="sign-note-inpatient") + def load_clinical_document(self) -> DocumentReference: + """Load a sample CDA document for processing""" + with open(self.data_path, "r") as file: + xml_content = file.read() + + return create_document_reference( + data=xml_content, + content_type="text/xml", + description="Sample CDA document from sandbox", + ) + + return NotereaderSandbox() + + +# Create the app +app = create_app() + + +if __name__ == "__main__": + import threading + from time import sleep + + # Start server + def run_server(): + uvicorn.run(app, port=8000, log_level="warning") + + server_thread = threading.Thread(target=run_server, daemon=True) + server_thread.start() + sleep(2) # Wait for startup + + # Test sandbox + sandbox = create_sandbox() + sandbox.start_sandbox() + + try: + server_thread.join() + except KeyboardInterrupt: + pass diff --git a/docs/assets/images/medplum_client.png b/docs/assets/images/medplum_client.png new file mode 100644 index 0000000000000000000000000000000000000000..db9aa32c806166ae33c95e07fdcd907646ec2b70 GIT binary patch literal 116010 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 xe-FBC`V5;s!=}%$=`;M}CjIk+?CoOjtu)Pt CDSResponse: - result = self.pipeline.process_request(request) - return result -``` - -## Add a data generator - -Now that we have our service function defined, we'll need to generate some test data for the sandbox to send to our service. We can use the `CdsDataGenerator` to generate synthetic FHIR data for testing. - -By default, the generator generates a random single patient with structured FHIR resources. To pass in free-text discharge notes for our `SummarizationPipeline`, we can set the `free_text_path` and `column_name` parameters. - -```python -from healthchain.data_generators import CdsDataGenerator - -data_generator = CdsDataGenerator() -data = data_generator.generate( - free_text_path="data/discharge_notes.csv", column_name="text" -) -print(data.model_dump()) -# { -# "prefetch": { -# "entry": [ -# { -# "resource": { -# "resourceType": "Bundle", -# ... -# } -# } -# ] -# } -``` - -The data generator returns a `Prefetch` object, which ensures that the data is parsed correctly inside the sandbox. - -## Define client workflow - -To finish our sandbox, we'll define a client function that loads the data generator into the sandbox. We'll use the `@hc.ehr` decorator and pass in the CDS hook workflow that we want to use - in this case, `encounter-discharge`. This will automatically send the generated test data to our service method when a request is made, using the workflow format that we specified. - -```python -import healthchain as hc - -from healthchain.sandbox.use_cases import ClinicalDecisionSupport -from healthchain.models import CDSRequest, CDSResponse, Prefetch - -@hc.sandbox -class DischargeNoteSummarizer(ClinicalDecisionSupport): - def __init__(self): - self.pipeline = pipeline - self.data_generator = data_generator - - @hc.api - def my_service(self, request: CDSRequest) -> CDSResponse: - result = self.pipeline.process_request(request) - return result - - @hc.ehr(workflow="encounter-discharge") - def load_data_in_client(self) -> Prefetch: - data = self.data_generator.generate_prefetch() - return data -``` - -## Run the sandbox - -Start the sandbox by running the `start_sandbox()` method on your class instance. - -```python -summarizer = DischargeNoteSummarizer() -summarizer.start_sandbox() -``` - -Then run the sandbox using the HealthChain CLI: - -```bash -healthchain run discharge_summarizer.py -``` - -The sandbox will: - -- Start a FastAPI server with your service method mounted to CDS endpoints at `http://localhost:8000/` -- Generate synthetic data and send it to your service method -- Save the processed request and response to the `output/requests` and `output/responses` folders of your current working directory - -An example response containing CDS cards might look like this: - -```json -{ - "cards": [ - { - "summary": "Action Item 1", - "indicator": "info", - "source": { - "label": "Card Generated by HealthChain" - }, - "detail": "- Transport arranged for 11:00 HRs, requires bariatric ambulance and 2 crew members (confirmed)." - }, - { - "summary": "Action Item 2", - "indicator": "info", - "source": { - "label": "Card Generated by HealthChain" - }, - "detail": "- Medication reconciliation completed, discharge medications prepared (Apixaban 5mg, Baclofen 20mg MR, new anticoagulation card) for collection by daughter" - } - ] -} -``` diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md new file mode 100644 index 00000000..5cb2a7c8 --- /dev/null +++ b/docs/cookbook/clinical_coding.md @@ -0,0 +1,259 @@ +# Build a NoteReader Service with FHIR Integration + +This tutorial shows you how to build a NoteReader clinical coding service that connects legacy CDA systems with modern FHIR servers. We'll process clinical notes, extract billing codes, and handle both old and new healthcare data formats. We'll use [Epic NoteReader](https://www.leidos.com/products/epic-note-reader) as the legacy system and [Medplum](https://www.medplum.com/) as the FHIR server. + +Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/notereader_clinical_coding_fhir.py)! + +## Setup + +We'll use [scispacy](https://allenai.github.io/scispacy/) for medical entity extraction in this example. Make sure to install the required dependencies: + +```bash +pip install healthchain +pip install scispacy python-dotenv +pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.4/en_core_sci_sm-0.5.4.tar.gz +``` + +If you'd like to test the FHIR integration with Medplum, make sure you have the following environment variables set. To setup Medplum, register an account on [Medplum](https://www.medplum.com/docs/tutorials/register) and obtain your [Client Credentials](https://www.medplum.com/docs/auth/methods/client-credentials). + +![Medplum Client Application](../assets/images/medplum_client.png) + +```bash +# .env file +MEDPLUM_CLIENT_ID=your_client_id +MEDPLUM_CLIENT_SECRET=your_client_secret +``` + +## Initialize the pipeline + +First, we'll create a [medical coding pipeline](../reference/pipeline/pipeline.md) with a custom entity linking node for extracting conditions from clinical text. + +The example below just uses a dummy mapping of medical concepts to [SNOMED CT](https://www.snomed.org/), but you can do more fancy stuff with it if you want. + +```python +from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline +from healthchain.io import Document +from spacy.tokens import Span + +def create_pipeline(): + """Build FHIR-native ML pipeline with automatic problem extraction.""" + pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") + + # Add custom entity linking + @pipeline.add_node(position="after", reference="SpacyNLP") + def link_entities(doc: Document) -> Document: + """Add CUI codes to medical entities for problem extraction""" + if not Span.has_extension("cui"): + Span.set_extension("cui", default=None) + + spacy_doc = doc.nlp.get_spacy_doc() + + # Dummy medical concept mapping to SNOMED CT codes + medical_concepts = { + "pneumonia": "233604007", + "type 2 diabetes mellitus": "44054006", + "congestive heart failure": "42343007", + "chronic kidney disease": "431855005", + "hypertension": "38341003", + # Add more mappings as needed + } + + for ent in spacy_doc.ents: + if ent.text.lower() in medical_concepts: + ent._.cui = medical_concepts[ent.text.lower()] + + return doc + + return pipeline +``` + +The `MedicalCodingPipeline` automatically: + +- Extracts medical entities using the `scispacy` model +- Converts entities to FHIR [Condition](https://www.hl7.org/fhir/condition.html) resources +- Populates the document's `problem_list` for downstream processing + +## Add the CDA Adapter + +The [CdaAdapter](../reference/pipeline/adapters/cdaadapter.md) converts CDA documents to HealthChain's [Document](../reference/pipeline/data_container.md) format using an instance of the [InteropEngine](../reference/interop/engine.md). This lets you work with legacy clinical documents without having to leave FHIR. + +```python +from healthchain.io import CdaAdapter +from healthchain.engine import create_interop + +# Create an interop engine with default configuration +interop_engine = create_interop() +cda_adapter = CdaAdapter(engine=interop_engine) + +# Parse the CDA document to a Document object +doc = cda_adapter.parse(request) + +# Access the FHIR resources in the Document object +doc.fhir.problem_list + +# Format the Document object back to a CDA document +response = cda_adapter.format(doc) +``` + +What it does: + +- Parses CDA XML documents +- Extracts clinical text and coded data from the CDA document +- Stores the CDA XML as a [DocumentReference](https://www.hl7.org/fhir/documentreference.html) object in the `fhir` attribute of the `Document` object +- Stores the extracted problems from the CDA document in the `problem_list` attribute of the `Document` object + +## Set up FHIR Gateway + +[FHIR gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers. You can add multiple FHIR sources to the gateway via connection strings with the `add_source` method. The gateway will handle authentication and connections for you. + +```python +import os +from healthchain.gateway.fhir import FHIRGateway +from dotenv import load_dotenv + +load_dotenv() + +# Configure FHIR connection with OAuth2 authentication +BILLING_URL = ( + f"fhir://api.medplum.com/fhir/R4/" + f"?client_id={os.environ.get('MEDPLUM_CLIENT_ID')}" + f"&client_secret={os.environ.get('MEDPLUM_CLIENT_SECRET')}" + f"&token_url=https://api.medplum.com/oauth2/token" + f"&scope=openid" +) + +# Initialize FHIR gateway and register external systems +fhir_gateway = FHIRGateway() +fhir_gateway.add_source("billing", BILLING_URL) + +# You can add multiple FHIR sources: +# fhir_gateway.add_source("ehr", "fhir://epic.example.com/fhir/R4/") +# fhir_gateway.add_source("registry", "fhir://registry.example.com/fhir/R4/") +``` + +## Set up the NoteReader Service + +Now let's set up the [NoteReader Service](../reference/gateway/soap_cda.md). This is an Epic specific module that allows third party services to interact with Epic's CDI service via CDA. It's somewhat niche but it be like that sometimes. + +The good thing about NoteReader is that it's already integrated in existing EHR workflows. The bad thing is it's legacy stuff and relatively rigid. + +We can make it more exciting by routing the extracted conditions to a FHIR server using the FHIR gateway inside the NoteReader service method, so you can do other cool stuff to it. + +```python +from healthchain.gateway.soap import NoteReaderService + +# Create the NoteReader service +note_service = NoteReaderService() + +@note_service.method("ProcessDocument") +def ai_coding_workflow(request: CdaRequest): + # Parse CDA document from legacy system + doc = cda_adapter.parse(request) + + # Process through ML pipeline to extract medical entities + doc = pipeline(doc) + + # Access the extracted FHIR resources + for condition in doc.fhir.problem_list: + # Add metadata for audit and provenance tracking + condition.meta = Meta( + source="urn:healthchain:pipeline:cdi", + lastUpdated=datetime.now(timezone.utc).isoformat(), + ) + # Send to external FHIR server via gateway + fhir_gateway.create(condition, source="billing") + + # Return processed CDA response to the legacy system + cda_response = cda_adapter.format(doc) + + return cda_response +``` + +## Build the service + +Time to put it all together! Using [HealthChainAPI](../reference/gateway/api.md), we can create a service with both FHIR and NoteReader endpoints. + +```python +from healthchain.gateway.api import HealthChainAPI + +# Register services with the API gateway +app = HealthChainAPI(title="Healthcare Integration Gateway") + +app.register_gateway(fhir_gateway, path="/fhir") +app.register_service(note_service, path="/notereader") +``` + +## Test with sample documents + +You can test the service with sample clinical documents using the [sandbox utility](../reference/utilities/sandbox.md) so you don't have to go out there and source a real EHR for our neat little demo. Woohoo. + +```python +import healthchain as hc +from healthchain.sandbox.use_cases import ClinicalDocumentation +from healthchain.fhir import create_document_reference +from fhir.resources.documentreference import DocumentReference + +def create_sandbox(): + @hc.sandbox(base_url="http://localhost:8000/") + class NotereaderSandbox(ClinicalDocumentation): + """Sandbox for testing clinical documentation workflows""" + def __init__(self): + super().__init__() + self.data_path = "./resources/uclh_cda.xml" + + @hc.ehr(workflow="sign-note-inpatient") + def load_clinical_document(self) -> DocumentReference: + """Load a sample CDA document for processing""" + with open(self.data_path, "r") as file: + xml_content = file.read() + + return create_document_reference( + data=xml_content, + content_type="text/xml", + description="Sample CDA document from sandbox", + ) + + return NotereaderSandbox() +``` + +## Run the complete example + +Run `HealthChainAPI` with `uvicorn` and start the sandbox to test the service. + +```python +import uvicorn + +uvicorn.run(app) + +sandbox = create_sandbox() +sandbox.start_sandbox() +``` + +## What happens when you run this + +Here's the workflow: + +=== "1. Server Startup" + - **URL:** `http://localhost:8000/` + - **Endpoints:** + - FHIR API: `/fhir/*` + - SOAP API: `/notereader` + - Documentation: `/docs` + +=== "2. Sandbox" + - Loads a sample CDA document from the `resources/` directory. + - Sends a SOAP request to the notereader service at `http://localhost:8000/notereader/ProcessDocument`. + - Receives the processed CDA document in response. + - Saves both the original and processed CDA documents to the `output/` directory. + +=== "3. Pipeline" + - Converts the CDA document to FHIR resources. + - Processes the text data from the CDA document using the pipeline. + - Creates FHIR `Condition` resources from extracted conditions. + - Converts the new FHIR resources back into an updated CDA document. + +=== "4. Output" + - Stores the `Condition` resources in the Medplum FHIR server. + - Returns the processed CDA document to the sandbox/EHR workflow. + +That's it! You can now test the service with sample documents and see the FHIR resources being created in Medplum. ๐ŸŽ‰ diff --git a/docs/cookbook/discharge_summarizer.md b/docs/cookbook/discharge_summarizer.md new file mode 100644 index 00000000..e6125f52 --- /dev/null +++ b/docs/cookbook/discharge_summarizer.md @@ -0,0 +1,226 @@ +# Build a CDS Hooks Service for Discharge Summarization + +This tutorial shows you how to build a CDS service that integrates with EHR systems. We'll automatically summarize discharge notes and return actionable recommendations using the [CDS Hooks standard](https://cds-hooks.org/). + +Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/cds_discharge_summarizer_hf_chat.py)! + +## Setup + +Make sure you have a [Hugging Face API token](https://huggingface.co/docs/hub/security-tokens) and set it as the `HUGGINGFACEHUB_API_TOKEN` environment variable. + +```python +import getpass +import os + +if not os.getenv("HUGGINGFACEHUB_API_TOKEN"): + os.environ["HUGGINGFACEHUB_API_TOKEN"] = getpass.getpass( + "Enter your token: " + ) +``` + +If you are using a chat model, make sure you have the necessary `langchain` packages installed. + +```bash +pip install langchain langchain-huggingface +``` + +## Initialize the pipeline + +First, we'll create a [summarization pipeline](../reference/pipeline/pipeline.md) with domain-specific prompting for discharge workflows. You can choose between: + +- **Transformer models** fine-tuned for clinical summarization (like `google/pegasus-xsum`) +- **Large Language Models** with custom clinical prompting (like `zephyr-7b-beta`) + +For LLM approaches, we'll use [LangChain](https://python.langchain.com/docs/integrations/chat/huggingface/) for better prompting. + +=== "Non-chat model" + ```python + from healthchain.pipeline import SummarizationPipeline + + pipeline = SummarizationPipeline.from_model_id( + "google/pegasus-xsum", source="huggingface", task="summarization" + ) + ``` + + +=== "Chat model" + ```python + from healthchain.pipeline import SummarizationPipeline + + from langchain_huggingface.llms import HuggingFaceEndpoint + from langchain_huggingface import ChatHuggingFace + from langchain_core.prompts import PromptTemplate + from langchain_core.output_parsers import StrOutputParser + + hf = HuggingFaceEndpoint( + repo_id="HuggingFaceH4/zephyr-7b-beta", + task="text-generation", + max_new_tokens=512, + do_sample=False, + repetition_penalty=1.03, + ) + + model = ChatHuggingFace(llm=hf) + + template = """ + You are a discharge planning assistant for hospital operations. + Provide a concise, objective summary focusing on actionable items + for care coordination, including appointments, medications, and + follow-up instructions. Format as bullet points.\n'''{text}''' + """ + prompt = PromptTemplate.from_template(template) + + chain = prompt | model | StrOutputParser() + + pipeline = SummarizationPipeline.load(chain, source="langchain") + ``` + +The `SummarizationPipeline` automatically: + +- Parses FHIR resources from CDS Hooks requests +- Extracts clinical text from discharge documents +- Formats outputs as CDS cards according to the CDS Hooks specification + +## Add the CDS FHIR Adapter + +The [CdsFhirAdapter](../reference/pipeline/adapters/cdsfhiradapter.md) converts between CDS Hooks requests and HealthChain's [Document](../reference/pipeline/data_container.md) format. This makes it easy to work with FHIR data in CDS workflows. + +```python +from healthchain.io import CdsFhirAdapter + +cds_adapter = CdsFhirAdapter() + +# Parse the CDS request to a Document object +cds_adapter.parse(request) + +# Format the Document object back to a CDS response +cds_adapter.format(doc) +``` + +What it does: + +- Parses FHIR resources from CDS requests +- Extracts text from [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resources +- Formats responses as CDS cards + +## Set up the CDS service + +Now let's create the CDS service. [HealthChainAPI](../reference/gateway/api.md) gives you discovery endpoints, validation, and docs automatically. + +```python +from healthchain.gateway import HealthChainAPI, CDSHooksService +from healthchain.models import CDSRequest, CDSResponse +from healthchain.io import CdsFhirAdapter + +def create_pipeline(): + """Build the discharge summarization pipeline""" + # Configure your pipeline (using previous examples) + return pipeline + +def create_app(): + """Create the CDS Hooks application""" + pipeline = create_pipeline() + adapter = CdsFhirAdapter() + + # Initialize the CDS service + cds_service = CDSHooksService() + + # Define the CDS service function + @cds_service.hook("encounter-discharge", id="discharge-summary") + def handle_discharge_summary(request: CDSRequest) -> CDSResponse: + """Process discharge summaries with AI""" + # Parse CDS request to internal Document format + doc = adapter.parse(request) + + # Process through AI pipeline + processed_doc = pipeline(doc) + + # Format response with CDS cards + response = adapter.format(processed_doc) + return response + + # Register the service with the API gateway + app = HealthChainAPI(title="Discharge Summary CDS Service") + app.register_service(cds_service) + + return app +``` + + +## Test with sample clinical data + +Let's test the service with some sample discharge notes using the [sandbox utility](../reference/utilities/sandbox.md) and the [CdsDataGenerator](../reference/utilities/data_generator.md): + +```python +from healthchain.data_generators import CdsDataGenerator + +data_generator = CdsDataGenerator() +data = data_generator.generate( + free_text_path="data/discharge_notes.csv", column_name="text" +) +print(data.model_dump()) +# { +# "prefetch": { +# "entry": [ +# { +# "resource": { +# "resourceType": "Bundle", +# ... +# } +# } +# ] +# } +``` + +The data generator returns a `Prefetch` object, which ensures that the data is parsed correctly by the CDS service. + +## Run the complete example + +Run the service with `uvicorn`: + +```python +import uvicorn + +app = create_app() + +uvicorn.run(app) +``` + +## What happens when you run this + +## Workflow Overview + +=== "1. Service Startup" + - **URL:** [http://localhost:8000/](http://localhost:8000/) + - **Service discovery:** `/cds-services` + - **CDS endpoint:** `/cds-services/discharge-summary` + - **API docs:** `/docs` + +=== "2. Request Processing" + - Receives CDS Hooks requests from EHR systems + - Summarizes discharge notes using AI + - Returns CDS cards with clinical recommendations + +=== "3. Example CDS Response" + ```json + { + "cards": [ + { + "summary": "Discharge Transportation", + "indicator": "info", + "source": { + "label": "HealthChain Discharge Assistant" + }, + "detail": "โ€ข Transport arranged for 11:00 HRs\nโ€ข Requires bariatric ambulance and 2 crew members\nโ€ข Confirmation number: TR-2024-001" + }, + { + "summary": "Medication Management", + "indicator": "warning", + "source": { + "label": "HealthChain Discharge Assistant" + }, + "detail": "โ€ข Discharge medications: Apixaban 5mg, Baclofen 20mg MR\nโ€ข New anticoagulation card prepared\nโ€ข Collection by daughter scheduled" + } + ] + } + ``` diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md index 94811ffb..ed71d616 100644 --- a/docs/cookbook/index.md +++ b/docs/cookbook/index.md @@ -2,5 +2,5 @@ The best way to learn is by example! Here are some to get you started: -- [Build a CDS sandbox](./cds_sandbox.md): Build a clinical decision support (CDS) system that uses *encounter-discharge* to summarize discharge notes. -- [Build a Clinical Documentation sandbox](./notereader_sandbox.md): Build a NoteReader system which extracts problem, medication, and allergy concepts from free-text clinical notes. +- [Summarize Discharge Notes with CDS Hooks](./discharge_summarizer.md): Implement a CDS Hooks service that listens for `encounter-discharge` events, automatically generates concise summaries of discharge notes, and delivers clinical recommendations directly into EHR workflows. +- [Automate Clinical Coding and FHIR Integration](./clinical_coding.md): Build a system that extracts medical conditions from clinical documentation, maps them to SNOMED CT codes, and synchronizes structured Condition resources with external FHIR servers (Medplum) for billing and analytics. diff --git a/docs/cookbook/notereader_sandbox.md b/docs/cookbook/notereader_sandbox.md deleted file mode 100644 index 1e6cdcc8..00000000 --- a/docs/cookbook/notereader_sandbox.md +++ /dev/null @@ -1,75 +0,0 @@ -# NoteReader Sandbox - -A sandbox example of NoteReader clinical documentation improvement which extracts problems, medications, and allergies entries from the progress note section of a pre-configured CDA document using [scispacy](https://github.com/allenai/scispacy) with a custom entity linker component. - -Full example coming soon! - -```python -import healthchain as hc - -from healthchain.io import Document -from healthchain.models.requests import CdaRequest -from healthchain.models.responses import CdaResponse -from healthchain.pipeline import MedicalCodingPipeline -from healthchain.sandbox.use_cases import ClinicalDocumentation -from healthchain.fhir import create_document_reference - -from spacy.tokens import Span - -from fhir.resources.documentreference import DocumentReference - -pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") - -@pipeline.add_node(position="after", reference="SpacyNLP") -def link_entities(doc: Document) -> Document: - # Register the extension if it doesn't exist already - if not Span.has_extension("cui"): - Span.set_extension("cui", default=None) - spacy_doc = doc.nlp.get_spacy_doc() - - dummy_linker = {"fever": "C0006477", - "cough": "C0006477", - "cold": "C0006477", - "flu": "C0006477", - "headache": "C0006477", - "sore throat": "C0006477", - } - - for ent in spacy_doc.ents: - if ent.text in dummy_linker: - ent._.cui = dummy_linker[ent.text] - - doc.update_problem_list_from_nlp() - - return doc - - -@hc.sandbox -class NotereaderSandbox(ClinicalDocumentation): - def __init__(self): - self.pipeline = pipeline - - @hc.ehr(workflow="sign-note-inpatient") - def load_data_in_client(self) -> DocumentReference: - with open("./resources/uclh_cda.xml", "r") as file: - xml_string = file.read() - - cda_document_reference = create_document_reference( - data=xml_string, - content_type="text/xml", - description="Original CDA Document loaded from my sandbox", - ) - - return cda_document_reference - - @hc.api - def my_service(self, request: CdaRequest) -> CdaResponse: - result = self.pipeline.process_request(request) - - return result - - -if __name__ == "__main__": - clindoc = NotereaderSandbox() - clindoc.start_sandbox() -``` diff --git a/docs/reference/pipeline/prebuilt_pipelines/summarization.md b/docs/reference/pipeline/prebuilt_pipelines/summarization.md index 0182cc91..ebba8ec3 100644 --- a/docs/reference/pipeline/prebuilt_pipelines/summarization.md +++ b/docs/reference/pipeline/prebuilt_pipelines/summarization.md @@ -1,3 +1,3 @@ # SummarizationPipeline -Full documentation coming soon! Check out this [cookbook example](../../../cookbook/cds_sandbox.md) for now. +Full documentation coming soon! Check out this [cookbook example](../../../cookbook/discharge_summarizer.md) for now. diff --git a/mkdocs.yml b/mkdocs.yml index 90c13394..2002192e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,8 +14,8 @@ nav: - Licence: distribution.md - Cookbook: - cookbook/index.md - - CDS Sandbox: cookbook/cds_sandbox.md - - NoteReader Sandbox: cookbook/notereader_sandbox.md + - Discharge Summarizer: cookbook/discharge_summarizer.md + - Clinical Coding: cookbook/clinical_coding.md - Docs: - Welcome: reference/index.md - Gateway: From 32c54c47b9b38cf1a6991f52680964706f0e3999 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Wed, 13 Aug 2025 18:27:25 +0100 Subject: [PATCH 02/18] Update cookbooks --- README.md | 2 +- cookbook/cds_discharge_summarizer_hf_chat.py | 70 ++++++++++++++------ cookbook/cds_discharge_summarizer_hf_trf.py | 49 +++++++++++--- cookbook/notereader_clinical_coding_fhir.py | 5 +- docs/cookbook/clinical_coding.md | 31 ++++++--- docs/cookbook/discharge_summarizer.md | 2 +- 6 files changed, 113 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 0cc76743..f4b8bfd8 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ First time here? Check out our [Docs](https://dotimplement.github.io/HealthChain ## Why use HealthChain? - **EHR integrations are manual and time-consuming** - **HealthChainAPI** abstracts away complexities so you can focus on AI development, not learning FHIR APIs, CDS Hooks, and authentication schemes. - **Healthcare data is fragmented and complex** - **InteropEngine** handles the conversion between FHIR, CDA, and HL7v2 so you don't have to become an expert in healthcare data standards. -- [**Most healthcare data is unstructured**](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6372467/) - HealthChain **Pipelines** are optimized for real-time AI and NLP applications that deal with realistic healthcare data. +- [**Most healthcare data is unstructured**](https://pmc.ncbi.nlm.nih.gov/articles/PMC10566734/) - HealthChain **Pipelines** are optimized for real-time AI and NLP applications that deal with realistic healthcare data. - **Built by health tech developers, for health tech developers** - HealthChain is tech stack agnostic, modular, and easily extensible with built-in compliance and audit features. ## HealthChainAPI diff --git a/cookbook/cds_discharge_summarizer_hf_chat.py b/cookbook/cds_discharge_summarizer_hf_chat.py index 259a1341..72df60d3 100644 --- a/cookbook/cds_discharge_summarizer_hf_chat.py +++ b/cookbook/cds_discharge_summarizer_hf_chat.py @@ -1,13 +1,12 @@ import healthchain as hc - +from healthchain.gateway import HealthChainAPI, CDSHooksService from healthchain.pipeline import SummarizationPipeline -from healthchain.models import CDSRequest, CDSResponse, Prefetch -from healthchain.data_generators import CdsDataGenerator from healthchain.sandbox.use_cases import ClinicalDecisionSupport +from healthchain.models import Prefetch, CDSRequest, CDSResponse +from healthchain.data_generators import CdsDataGenerator from langchain_huggingface.llms import HuggingFaceEndpoint from langchain_huggingface import ChatHuggingFace - from langchain_core.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser @@ -21,47 +20,76 @@ def create_summarization_chain(): hf = HuggingFaceEndpoint( - repo_id="HuggingFaceH4/zephyr-7b-beta", + repo_id="deepseek-ai/DeepSeek-R1-0528", task="text-generation", max_new_tokens=512, do_sample=False, repetition_penalty=1.03, ) + model = ChatHuggingFace(llm=hf) + template = """ - You are a bed planner for a hospital. Provide a concise, objective summary of the input text in short bullet points separated by new lines, - focusing on key actions such as appointments and medication dispense instructions, without using second or third person pronouns.\n'''{text}''' + You are a discharge planning assistant for hospital operations. + Provide a concise, objective summary focusing on actionable items + for care coordination, including appointments, medications, and + follow-up instructions. Format as bullet points with no preamble.\n'''{text}''' """ prompt = PromptTemplate.from_template(template) + return prompt | model | StrOutputParser() -@hc.sandbox +# Create the healthcare application +app = HealthChainAPI( + title="Discharge Note Summarizer", + description="AI-powered discharge note summarization service", +) + +chain = create_summarization_chain() +pipeline = SummarizationPipeline.load( + chain, source="langchain", template_path="templates/cds_card_template.json" +) + +# Create CDS Hooks service +cds = CDSHooksService() + + +@cds.hook("encounter-discharge", id="discharge-summarizer") +def discharge_summarizer(request: CDSRequest) -> CDSResponse: + result = pipeline.process_request(request) + return result + + +# Register the CDS service +app.register_service(cds, path="/cds") + + +@hc.sandbox(api="http://localhost:8000") class DischargeNoteSummarizer(ClinicalDecisionSupport): def __init__(self): - # Initialize pipeline and data generator - chain = create_summarization_chain() - self.pipeline = SummarizationPipeline.load( - chain, source="langchain", template_path="templates/cds_card_template.json" - ) + super().__init__(path="/cds/cds-services/discharge-summarizer") self.data_generator = CdsDataGenerator() @hc.ehr(workflow="encounter-discharge") def load_data_in_client(self) -> Prefetch: - # Generate synthetic FHIR data for testing data = self.data_generator.generate_prefetch( free_text_path="data/discharge_notes.csv", column_name="text" ) return data - @hc.api - def my_service(self, request: CDSRequest) -> CDSResponse: - # Process the request through our pipeline - result = self.pipeline.process_request(request) - return result - if __name__ == "__main__": - # Start the sandbox server + import uvicorn + import threading + + # Start the API server in a separate thread + def start_api(): + uvicorn.run(app, port=8000) + + api_thread = threading.Thread(target=start_api, daemon=True) + api_thread.start() + + # Start the sandbox summarizer = DischargeNoteSummarizer() summarizer.start_sandbox() diff --git a/cookbook/cds_discharge_summarizer_hf_trf.py b/cookbook/cds_discharge_summarizer_hf_trf.py index 36ee119f..e65e9916 100644 --- a/cookbook/cds_discharge_summarizer_hf_trf.py +++ b/cookbook/cds_discharge_summarizer_hf_trf.py @@ -1,5 +1,5 @@ import healthchain as hc - +from healthchain.gateway import HealthChainAPI, CDSHooksService from healthchain.pipeline import SummarizationPipeline from healthchain.sandbox.use_cases import ClinicalDecisionSupport from healthchain.models import Prefetch, CDSRequest, CDSResponse @@ -13,12 +13,35 @@ os.environ["HUGGINGFACEHUB_API_TOKEN"] = getpass.getpass("Enter your token: ") -@hc.sandbox +# Create the healthcare application +app = HealthChainAPI( + title="Discharge Note Summarizer", + description="AI-powered discharge note summarization service", +) + +# Initialize pipeline +pipeline = SummarizationPipeline.from_model_id( + "google/pegasus-xsum", source="huggingface", task="summarization" +) + +# Create CDS Hooks service +cds = CDSHooksService() + + +@cds.hook("encounter-discharge", id="discharge-summarizer") +def discharge_summarizer(request: CDSRequest) -> CDSResponse: + result = pipeline.process_request(request) + return result + + +# Register the CDS service +app.register_service(cds, path="/cds") + + +@hc.sandbox(api="http://localhost:8000") class DischargeNoteSummarizer(ClinicalDecisionSupport): def __init__(self): - self.pipeline = SummarizationPipeline.from_model_id( - "google/pegasus-xsum", source="huggingface", task="summarization" - ) + super().__init__(path="/cds/cds-services/discharge-summarizer") self.data_generator = CdsDataGenerator() @hc.ehr(workflow="encounter-discharge") @@ -28,12 +51,18 @@ def load_data_in_client(self) -> Prefetch: ) return data - @hc.api - def my_service(self, request: CDSRequest) -> CDSResponse: - result = self.pipeline.process_request(request) - return result - if __name__ == "__main__": + import uvicorn + import threading + + # Start the API server in a separate thread + def start_api(): + uvicorn.run(app, port=8000) + + api_thread = threading.Thread(target=start_api, daemon=True) + api_thread.start() + + # Start the sandbox summarizer = DischargeNoteSummarizer() summarizer.start_sandbox() diff --git a/cookbook/notereader_clinical_coding_fhir.py b/cookbook/notereader_clinical_coding_fhir.py index 34570a6c..45af7f0a 100644 --- a/cookbook/notereader_clinical_coding_fhir.py +++ b/cookbook/notereader_clinical_coding_fhir.py @@ -1,8 +1,5 @@ #!/usr/bin/env python3 """ -HealthChain Clinical Documentation Improvement Service -===================================================== - A complete CDI service that processes clinical notes and extracts billing codes. Demonstrates FHIR-native pipelines, legacy system integration, and multi-source data handling. @@ -124,7 +121,7 @@ def ai_coding_workflow(request: CdaRequest): def create_sandbox(): - @hc.sandbox(base_url="http://localhost:8000/") + @hc.sandbox(api="http://localhost:8000/") class NotereaderSandbox(ClinicalDocumentation): """Sandbox for testing clinical documentation workflows""" diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md index 5cb2a7c8..36537a91 100644 --- a/docs/cookbook/clinical_coding.md +++ b/docs/cookbook/clinical_coding.md @@ -1,6 +1,6 @@ # Build a NoteReader Service with FHIR Integration -This tutorial shows you how to build a NoteReader clinical coding service that connects legacy CDA systems with modern FHIR servers. We'll process clinical notes, extract billing codes, and handle both old and new healthcare data formats. We'll use [Epic NoteReader](https://www.leidos.com/products/epic-note-reader) as the legacy system and [Medplum](https://www.medplum.com/) as the FHIR server. +This tutorial shows you how to build a clinical coding service that connects legacy [CDA](https://hl7.org/cda/) systems with modern [FHIR servers](https://build.fhir.org/http.html). We'll process clinical notes, extract billing codes, and handle both old and new healthcare data formats. We'll use [Epic NoteReader](https://discovery.hgdata.com/product/epic-notereader-cdi) as the legacy system and [Medplum](https://www.medplum.com/) as the FHIR server. Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/notereader_clinical_coding_fhir.py)! @@ -9,8 +9,7 @@ Check out the full working example [here](https://github.com/dotimplement/Health We'll use [scispacy](https://allenai.github.io/scispacy/) for medical entity extraction in this example. Make sure to install the required dependencies: ```bash -pip install healthchain -pip install scispacy python-dotenv +pip install healthchain scispacy python-dotenv pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.4/en_core_sci_sm-0.5.4.tar.gz ``` @@ -28,7 +27,7 @@ MEDPLUM_CLIENT_SECRET=your_client_secret First, we'll create a [medical coding pipeline](../reference/pipeline/pipeline.md) with a custom entity linking node for extracting conditions from clinical text. -The example below just uses a dummy mapping of medical concepts to [SNOMED CT](https://www.snomed.org/), but you can do more fancy stuff with it if you want. +The example below just uses a dictionary lookup of medical concepts to a [SNOMED CT](https://www.snomed.org/) code for demo purposes, but you can obviously do more fancy stuff with it if you want. ```python from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline @@ -71,7 +70,20 @@ The `MedicalCodingPipeline` automatically: - Extracts medical entities using the `scispacy` model - Converts entities to FHIR [Condition](https://www.hl7.org/fhir/condition.html) resources -- Populates the document's `problem_list` for downstream processing +- Populates the Document's `fhir.problem_list` for downstream processing + +It is equivalent to building a pipeline with the following components: + +```python +from healthchain.pipeline import Pipeline +from healthchain.pipeline.components import SpacyNLP, FHIRProblemListExtractor +from healthchain.io.containers import Document + +pipeline = Pipeline[Document]() + +pipeline.add_node(SpacyNLP.from_model_id("en_core_sci_sm")) +pipeline.add_node(FHIRProblemListExtractor()) +``` ## Add the CDA Adapter @@ -99,8 +111,9 @@ What it does: - Parses CDA XML documents - Extracts clinical text and coded data from the CDA document -- Stores the CDA XML as a [DocumentReference](https://www.hl7.org/fhir/documentreference.html) object in the `fhir` attribute of the `Document` object -- Stores the extracted problems from the CDA document in the `problem_list` attribute of the `Document` object +- Stores the text data in `doc.text` +- Stores the CDA XML as a [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resource in `doc.fhir.bundle` +- Stores the extracted [Condition](https://www.hl7.org/fhir/condition.html) resources from the CDA document in `doc.fhir.problem_list` ## Set up FHIR Gateway @@ -137,7 +150,7 @@ Now let's set up the [NoteReader Service](../reference/gateway/soap_cda.md). Thi The good thing about NoteReader is that it's already integrated in existing EHR workflows. The bad thing is it's legacy stuff and relatively rigid. -We can make it more exciting by routing the extracted conditions to a FHIR server using the FHIR gateway inside the NoteReader service method, so you can do other cool stuff to it. +We can make it more exciting by routing the extracted conditions to a FHIR server inside the NoteReader service method, so you can do other cool modern stuff to it. ```python from healthchain.gateway.soap import NoteReaderService @@ -194,7 +207,7 @@ from healthchain.fhir import create_document_reference from fhir.resources.documentreference import DocumentReference def create_sandbox(): - @hc.sandbox(base_url="http://localhost:8000/") + @hc.sandbox(api="http://localhost:8000/") class NotereaderSandbox(ClinicalDocumentation): """Sandbox for testing clinical documentation workflows""" def __init__(self): diff --git a/docs/cookbook/discharge_summarizer.md b/docs/cookbook/discharge_summarizer.md index e6125f52..22ab33b6 100644 --- a/docs/cookbook/discharge_summarizer.md +++ b/docs/cookbook/discharge_summarizer.md @@ -53,7 +53,7 @@ For LLM approaches, we'll use [LangChain](https://python.langchain.com/docs/inte from langchain_core.output_parsers import StrOutputParser hf = HuggingFaceEndpoint( - repo_id="HuggingFaceH4/zephyr-7b-beta", + repo_id="deepseek-ai/DeepSeek-R1-0528", task="text-generation", max_new_tokens=512, do_sample=False, From 797abffc64852429e8c85ba2907fca6d73e66fb1 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Wed, 13 Aug 2025 18:27:49 +0100 Subject: [PATCH 03/18] Minor docstring and error message fix --- healthchain/pipeline/medicalcodingpipeline.py | 28 +++++-------------- healthchain/pipeline/summarizationpipeline.py | 7 +++-- healthchain/sandbox/clients/ehr.py | 9 ++++-- healthchain/sandbox/environment.py | 1 + 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/healthchain/pipeline/medicalcodingpipeline.py b/healthchain/pipeline/medicalcodingpipeline.py index 0ea3758f..fc1aac5f 100644 --- a/healthchain/pipeline/medicalcodingpipeline.py +++ b/healthchain/pipeline/medicalcodingpipeline.py @@ -1,41 +1,27 @@ from healthchain.pipeline.base import BasePipeline, ModelConfig from healthchain.pipeline.mixins import ModelRoutingMixin -from healthchain.pipeline.components.fhirproblemextractor import ( - FHIRProblemListExtractor, -) +from healthchain.pipeline.components import FHIRProblemListExtractor class MedicalCodingPipeline(BasePipeline, ModelRoutingMixin): """ Pipeline for extracting and coding medical concepts from clinical documents using NLP models. + Only extracts conditions to problems list for now. Stages: 1. NER+L: Extracts and links medical concepts from document text. 2. Problem Extraction (last): Converts medical entities to FHIR problem list. + Attributes: + extract_problems: Whether to automatically extract FHIR problem list (default: True) + patient_ref: Patient reference for created conditions (default: "Patient/123") + code_attribute: Name of the spaCy extension attribute containing medical codes (default: "cui") + Usage Examples: - # Basic usage - extracts CUI codes to SNOMED conditions >>> pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") - # Custom patient reference - >>> pipeline = MedicalCodingPipeline.from_model_id( - ... "en_core_sci_sm", source="spacy", patient_ref="Patient/demo-123" - ... ) - - # Different code attribute (e.g., for models that output SNOMED IDs) - >>> pipeline = MedicalCodingPipeline.from_model_id( - ... "en_core_sci_sm", source="spacy", code_attribute="snomed_id" - ... ) - - # Skip automatic problem extraction - >>> pipeline = MedicalCodingPipeline.from_model_id( - ... "en_core_sci_sm", source="spacy", extract_problems=False - ... ) - - # With Hugging Face >>> pipeline = MedicalCodingPipeline.from_model_id("bert-base-uncased", task="ner") - # With LangChain >>> chain = ChatPromptTemplate.from_template("Extract medical codes: {text}") | ChatOpenAI() >>> pipeline = MedicalCodingPipeline.load(chain) """ diff --git a/healthchain/pipeline/summarizationpipeline.py b/healthchain/pipeline/summarizationpipeline.py index 4aa3a7ea..f04b857f 100644 --- a/healthchain/pipeline/summarizationpipeline.py +++ b/healthchain/pipeline/summarizationpipeline.py @@ -12,11 +12,14 @@ class SummarizationPipeline(BasePipeline, ModelRoutingMixin): 1. Summarization: Generates summaries from document text. 2. Card Creation: Formats summaries into CDS Hooks cards. + Attributes: + output_template: Template for the output summary (default: "{text}") + output_template_path: Path to the output template file (default: None) + delimiter: Delimiter for the output summary (default: "\n") + Usage Examples: - # With Hugging Face >>> pipeline = SummarizationPipeline.from_model_id("facebook/bart-large-cnn", source="huggingface") - # With LangChain >>> chain = ChatPromptTemplate.from_template("Summarize: {text}") | ChatOpenAI() >>> pipeline = SummarizationPipeline.load(chain) """ diff --git a/healthchain/sandbox/clients/ehr.py b/healthchain/sandbox/clients/ehr.py index 30c2cfe9..4cadaf71 100644 --- a/healthchain/sandbox/clients/ehr.py +++ b/healthchain/sandbox/clients/ehr.py @@ -68,7 +68,7 @@ async def send_request(self, url: str) -> List[Dict]: Notes: This method logs errors rather than raising them, to avoid interrupting the batch processing of requests. """ - async with httpx.AsyncClient() as client: + async with httpx.AsyncClient(follow_redirects=True) as client: responses: List[Dict] = [] timeout = httpx.Timeout(self.timeout, read=None) for request in self.request_data: @@ -86,6 +86,7 @@ async def send_request(self, url: str) -> List[Dict]: responses.append(response_model.model_dump_xml()) else: # TODO: use model_dump_json() once Pydantic V2 timezone serialization issue is resolved + log.debug(f"Making POST request to: {url}") response = await client.post( url=url, json=request.model_dump(exclude_none=True), @@ -100,8 +101,12 @@ async def send_request(self, url: str) -> List[Dict]: # Fallback to raw response if parsing fails responses.append(response_data) except httpx.HTTPStatusError as exc: + try: + error_content = exc.response.json() + except Exception: + error_content = exc.response.text log.error( - f"Error response {exc.response.status_code} while requesting {exc.request.url!r}: {exc.response.json()}" + f"Error response {exc.response.status_code} while requesting {exc.request.url!r}: {error_content}" ) responses.append({}) except httpx.TimeoutException as exc: diff --git a/healthchain/sandbox/environment.py b/healthchain/sandbox/environment.py index 2a852eb3..09af3d5e 100644 --- a/healthchain/sandbox/environment.py +++ b/healthchain/sandbox/environment.py @@ -83,6 +83,7 @@ def start_sandbox( log.info( f"Sending {len(self._client.request_data)} requests generated by {self._client.__class__.__name__} to {endpoint}" ) + log.debug(f"API: {self.api}, Path: {self.path}, Endpoint: {endpoint}") try: self.responses = asyncio.run(self._client.send_request(url=endpoint)) From 905937d66c9ac81a9085669bedd9e0871c3b3392 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Wed, 13 Aug 2025 18:28:02 +0100 Subject: [PATCH 04/18] poetry.lock --- poetry.lock | 805 ++++++++++++++++++++++++++-------------------------- 1 file changed, 403 insertions(+), 402 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3047e90a..031c5edd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,13 +13,13 @@ files = [ [[package]] name = "anyio" -version = "4.9.0" -description = "High level compatibility layer for multiple asynchronous event loop implementations" +version = "4.10.0" +description = "High-level concurrency and networking framework on top of asyncio or Trio" optional = false python-versions = ">=3.9" files = [ - {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, - {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, + {file = "anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1"}, + {file = "anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6"}, ] [package.dependencies] @@ -29,8 +29,6 @@ sniffio = ">=1.1" typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] -test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] trio = ["trio (>=0.26.1)"] [[package]] @@ -145,13 +143,13 @@ files = [ [[package]] name = "certifi" -version = "2025.7.14" +version = "2025.8.3" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" files = [ - {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, - {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, + {file = "certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5"}, + {file = "certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407"}, ] [[package]] @@ -246,103 +244,90 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.4.2" +version = "3.4.3" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" files = [ - {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, - {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, - {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f"}, + {file = "charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849"}, + {file = "charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37"}, + {file = "charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce"}, + {file = "charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce"}, + {file = "charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-win32.whl", hash = "sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557"}, + {file = "charset_normalizer-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-win32.whl", hash = "sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432"}, + {file = "charset_normalizer-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca"}, + {file = "charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a"}, + {file = "charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14"}, ] [[package]] @@ -515,37 +500,37 @@ files = [ [[package]] name = "debugpy" -version = "1.8.15" +version = "1.8.16" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.15-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:e9a8125c85172e3ec30985012e7a81ea5e70bbb836637f8a4104f454f9b06c97"}, - {file = "debugpy-1.8.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fd0b6b5eccaa745c214fd240ea82f46049d99ef74b185a3517dad3ea1ec55d9"}, - {file = "debugpy-1.8.15-cp310-cp310-win32.whl", hash = "sha256:8181cce4d344010f6bfe94a531c351a46a96b0f7987750932b2908e7a1e14a55"}, - {file = "debugpy-1.8.15-cp310-cp310-win_amd64.whl", hash = "sha256:af2dcae4e4cd6e8b35f982ccab29fe65f7e8766e10720a717bc80c464584ee21"}, - {file = "debugpy-1.8.15-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:babc4fb1962dd6a37e94d611280e3d0d11a1f5e6c72ac9b3d87a08212c4b6dd3"}, - {file = "debugpy-1.8.15-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f778e68f2986a58479d0ac4f643e0b8c82fdd97c2e200d4d61e7c2d13838eb53"}, - {file = "debugpy-1.8.15-cp311-cp311-win32.whl", hash = "sha256:f9d1b5abd75cd965e2deabb1a06b0e93a1546f31f9f621d2705e78104377c702"}, - {file = "debugpy-1.8.15-cp311-cp311-win_amd64.whl", hash = "sha256:62954fb904bec463e2b5a415777f6d1926c97febb08ef1694da0e5d1463c5c3b"}, - {file = "debugpy-1.8.15-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:3dcc7225cb317469721ab5136cda9ff9c8b6e6fb43e87c9e15d5b108b99d01ba"}, - {file = "debugpy-1.8.15-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:047a493ca93c85ccede1dbbaf4e66816794bdc214213dde41a9a61e42d27f8fc"}, - {file = "debugpy-1.8.15-cp312-cp312-win32.whl", hash = "sha256:b08e9b0bc260cf324c890626961dad4ffd973f7568fbf57feb3c3a65ab6b6327"}, - {file = "debugpy-1.8.15-cp312-cp312-win_amd64.whl", hash = "sha256:e2a4fe357c92334272eb2845fcfcdbec3ef9f22c16cf613c388ac0887aed15fa"}, - {file = "debugpy-1.8.15-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:f5e01291ad7d6649aed5773256c5bba7a1a556196300232de1474c3c372592bf"}, - {file = "debugpy-1.8.15-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94dc0f0d00e528d915e0ce1c78e771475b2335b376c49afcc7382ee0b146bab6"}, - {file = "debugpy-1.8.15-cp313-cp313-win32.whl", hash = "sha256:fcf0748d4f6e25f89dc5e013d1129ca6f26ad4da405e0723a4f704583896a709"}, - {file = "debugpy-1.8.15-cp313-cp313-win_amd64.whl", hash = "sha256:73c943776cb83e36baf95e8f7f8da765896fd94b05991e7bc162456d25500683"}, - {file = "debugpy-1.8.15-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:054cd4935bd2e4964dfe1aeee4d6bca89d0c833366776fc35387f8a2f517dd00"}, - {file = "debugpy-1.8.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21c4288e662997df3176c4b9d93ee1393913fbaf320732be332d538000c53208"}, - {file = "debugpy-1.8.15-cp38-cp38-win32.whl", hash = "sha256:aaa8ce6a37d764f93fe583d7c6ca58eb7550b36941387483db113125f122bb0d"}, - {file = "debugpy-1.8.15-cp38-cp38-win_amd64.whl", hash = "sha256:71cdf7f676af78e70f005c7fad2ef9da0edc2a24befbf3ab146a51f0d58048c2"}, - {file = "debugpy-1.8.15-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:085b6d0adb3eb457c2823ac497a0690b10a99eff8b01c01a041e84579f114b56"}, - {file = "debugpy-1.8.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd546a405381d17527814852642df0a74b7da8acc20ae5f3cfad0b7c86419511"}, - {file = "debugpy-1.8.15-cp39-cp39-win32.whl", hash = "sha256:ae0d445fe11ff4351428e6c2389e904e1cdcb4a47785da5a5ec4af6c5b95fce5"}, - {file = "debugpy-1.8.15-cp39-cp39-win_amd64.whl", hash = "sha256:de7db80189ca97ab4b10a87e4039cfe4dd7ddfccc8f33b5ae40fcd33792fc67a"}, - {file = "debugpy-1.8.15-py2.py3-none-any.whl", hash = "sha256:bce2e6c5ff4f2e00b98d45e7e01a49c7b489ff6df5f12d881c67d2f1ac635f3d"}, - {file = "debugpy-1.8.15.tar.gz", hash = "sha256:58d7a20b7773ab5ee6bdfb2e6cf622fdf1e40c9d5aef2857d85391526719ac00"}, + {file = "debugpy-1.8.16-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2a3958fb9c2f40ed8ea48a0d34895b461de57a1f9862e7478716c35d76f56c65"}, + {file = "debugpy-1.8.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5ca7314042e8a614cc2574cd71f6ccd7e13a9708ce3c6d8436959eae56f2378"}, + {file = "debugpy-1.8.16-cp310-cp310-win32.whl", hash = "sha256:8624a6111dc312ed8c363347a0b59c5acc6210d897e41a7c069de3c53235c9a6"}, + {file = "debugpy-1.8.16-cp310-cp310-win_amd64.whl", hash = "sha256:fee6db83ea5c978baf042440cfe29695e1a5d48a30147abf4c3be87513609817"}, + {file = "debugpy-1.8.16-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:67371b28b79a6a12bcc027d94a06158f2fde223e35b5c4e0783b6f9d3b39274a"}, + {file = "debugpy-1.8.16-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2abae6dd02523bec2dee16bd6b0781cccb53fd4995e5c71cc659b5f45581898"}, + {file = "debugpy-1.8.16-cp311-cp311-win32.whl", hash = "sha256:f8340a3ac2ed4f5da59e064aa92e39edd52729a88fbde7bbaa54e08249a04493"}, + {file = "debugpy-1.8.16-cp311-cp311-win_amd64.whl", hash = "sha256:70f5fcd6d4d0c150a878d2aa37391c52de788c3dc680b97bdb5e529cb80df87a"}, + {file = "debugpy-1.8.16-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:b202e2843e32e80b3b584bcebfe0e65e0392920dc70df11b2bfe1afcb7a085e4"}, + {file = "debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64473c4a306ba11a99fe0bb14622ba4fbd943eb004847d9b69b107bde45aa9ea"}, + {file = "debugpy-1.8.16-cp312-cp312-win32.whl", hash = "sha256:833a61ed446426e38b0dd8be3e9d45ae285d424f5bf6cd5b2b559c8f12305508"}, + {file = "debugpy-1.8.16-cp312-cp312-win_amd64.whl", hash = "sha256:75f204684581e9ef3dc2f67687c3c8c183fde2d6675ab131d94084baf8084121"}, + {file = "debugpy-1.8.16-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:85df3adb1de5258dca910ae0bb185e48c98801ec15018a263a92bb06be1c8787"}, + {file = "debugpy-1.8.16-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bee89e948bc236a5c43c4214ac62d28b29388453f5fd328d739035e205365f0b"}, + {file = "debugpy-1.8.16-cp313-cp313-win32.whl", hash = "sha256:cf358066650439847ec5ff3dae1da98b5461ea5da0173d93d5e10f477c94609a"}, + {file = "debugpy-1.8.16-cp313-cp313-win_amd64.whl", hash = "sha256:b5aea1083f6f50023e8509399d7dc6535a351cc9f2e8827d1e093175e4d9fa4c"}, + {file = "debugpy-1.8.16-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:2801329c38f77c47976d341d18040a9ac09d0c71bf2c8b484ad27c74f83dc36f"}, + {file = "debugpy-1.8.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687c7ab47948697c03b8f81424aa6dc3f923e6ebab1294732df1ca9773cc67bc"}, + {file = "debugpy-1.8.16-cp38-cp38-win32.whl", hash = "sha256:a2ba6fc5d7c4bc84bcae6c5f8edf5988146e55ae654b1bb36fecee9e5e77e9e2"}, + {file = "debugpy-1.8.16-cp38-cp38-win_amd64.whl", hash = "sha256:d58c48d8dbbbf48a3a3a638714a2d16de537b0dace1e3432b8e92c57d43707f8"}, + {file = "debugpy-1.8.16-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:135ccd2b1161bade72a7a099c9208811c137a150839e970aeaf121c2467debe8"}, + {file = "debugpy-1.8.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:211238306331a9089e253fd997213bc4a4c65f949271057d6695953254095376"}, + {file = "debugpy-1.8.16-cp39-cp39-win32.whl", hash = "sha256:88eb9ffdfb59bf63835d146c183d6dba1f722b3ae2a5f4b9fc03e925b3358922"}, + {file = "debugpy-1.8.16-cp39-cp39-win_amd64.whl", hash = "sha256:c2c47c2e52b40449552843b913786499efcc3dbc21d6c49287d939cd0dbc49fd"}, + {file = "debugpy-1.8.16-py2.py3-none-any.whl", hash = "sha256:19c9521962475b87da6f673514f7fd610328757ec993bf7ec0d8c96f9a325f9e"}, + {file = "debugpy-1.8.16.tar.gz", hash = "sha256:31e69a1feb1cf6b51efbed3f6c9b0ef03bc46ff050679c4be7ea6d2e23540870"}, ] [[package]] @@ -739,13 +724,13 @@ dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "griffe" -version = "1.9.0" +version = "1.11.1" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false python-versions = ">=3.9" files = [ - {file = "griffe-1.9.0-py3-none-any.whl", hash = "sha256:bcf90ee3ad42bbae70a2a490c782fc8e443de9b84aa089d857c278a4e23215fc"}, - {file = "griffe-1.9.0.tar.gz", hash = "sha256:b5531cf45e9b73f0842c2121cc4d4bcbb98a55475e191fc9830e7aef87a920a0"}, + {file = "griffe-1.11.1-py3-none-any.whl", hash = "sha256:5799cf7c513e4b928cfc6107ee6c4bc4a92e001f07022d97fd8dee2f612b6064"}, + {file = "griffe-1.11.1.tar.gz", hash = "sha256:d54ffad1ec4da9658901eb5521e9cddcdb7a496604f67d8ae71077f03f549b7e"}, ] [package.dependencies] @@ -810,13 +795,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "identify" -version = "2.6.12" +version = "2.6.13" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"}, - {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}, + {file = "identify-2.6.13-py2.py3-none-any.whl", hash = "sha256:60381139b3ae39447482ecc406944190f690d4a2997f2584062089848361b33b"}, + {file = "identify-2.6.13.tar.gz", hash = "sha256:da8d6c828e773620e13bfa86ea601c5a5310ba4bcd65edf378198b56a1f9fb32"}, ] [package.extras] @@ -894,13 +879,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.30.0" +version = "6.30.1" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.9" files = [ - {file = "ipykernel-6.30.0-py3-none-any.whl", hash = "sha256:fd2936e55c4a1c2ee8b1e5fa6a372b8eecc0ab1338750dee76f48fa5cca1301e"}, - {file = "ipykernel-6.30.0.tar.gz", hash = "sha256:b7b808ddb2d261aae2df3a26ff3ff810046e6de3dfbc6f7de8c98ea0a6cb632c"}, + {file = "ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4"}, + {file = "ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b"}, ] [package.dependencies] @@ -2420,90 +2405,103 @@ pyyaml = "*" [[package]] name = "pyzmq" -version = "27.0.0" +version = "27.0.1" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.8" files = [ - {file = "pyzmq-27.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:b973ee650e8f442ce482c1d99ca7ab537c69098d53a3d046676a484fd710c87a"}, - {file = "pyzmq-27.0.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:661942bc7cd0223d569d808f2e5696d9cc120acc73bf3e88a1f1be7ab648a7e4"}, - {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50360fb2a056ffd16e5f4177eee67f1dd1017332ea53fb095fe7b5bf29c70246"}, - {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf209a6dc4b420ed32a7093642843cbf8703ed0a7d86c16c0b98af46762ebefb"}, - {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2dace4a7041cca2fba5357a2d7c97c5effdf52f63a1ef252cfa496875a3762d"}, - {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:63af72b2955fc77caf0a77444baa2431fcabb4370219da38e1a9f8d12aaebe28"}, - {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e8c4adce8e37e75c4215297d7745551b8dcfa5f728f23ce09bf4e678a9399413"}, - {file = "pyzmq-27.0.0-cp310-cp310-win32.whl", hash = "sha256:5d5ef4718ecab24f785794e0e7536436698b459bfbc19a1650ef55280119d93b"}, - {file = "pyzmq-27.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:e40609380480b3d12c30f841323f42451c755b8fece84235236f5fe5ffca8c1c"}, - {file = "pyzmq-27.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6b0397b0be277b46762956f576e04dc06ced265759e8c2ff41a0ee1aa0064198"}, - {file = "pyzmq-27.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:21457825249b2a53834fa969c69713f8b5a79583689387a5e7aed880963ac564"}, - {file = "pyzmq-27.0.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1958947983fef513e6e98eff9cb487b60bf14f588dc0e6bf35fa13751d2c8251"}, - {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0dc628b5493f9a8cd9844b8bee9732ef587ab00002157c9329e4fc0ef4d3afa"}, - {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7bbe9e1ed2c8d3da736a15694d87c12493e54cc9dc9790796f0321794bbc91f"}, - {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc1091f59143b471d19eb64f54bae4f54bcf2a466ffb66fe45d94d8d734eb495"}, - {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7011ade88c8e535cf140f8d1a59428676fbbce7c6e54fefce58bf117aefb6667"}, - {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c386339d7e3f064213aede5d03d054b237937fbca6dd2197ac8cf3b25a6b14e"}, - {file = "pyzmq-27.0.0-cp311-cp311-win32.whl", hash = "sha256:0546a720c1f407b2172cb04b6b094a78773491497e3644863cf5c96c42df8cff"}, - {file = "pyzmq-27.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f39d50bd6c9091c67315ceb878a4f531957b121d2a05ebd077eb35ddc5efed"}, - {file = "pyzmq-27.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c5817641eebb391a2268c27fecd4162448e03538387093cdbd8bf3510c316b38"}, - {file = "pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52"}, - {file = "pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3"}, - {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152"}, - {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22"}, - {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371"}, - {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d"}, - {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be"}, - {file = "pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4"}, - {file = "pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371"}, - {file = "pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e"}, - {file = "pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688"}, - {file = "pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38"}, - {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a"}, - {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9"}, - {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d"}, - {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44"}, - {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef"}, - {file = "pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad"}, - {file = "pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f"}, - {file = "pyzmq-27.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:f4162dbbd9c5c84fb930a36f290b08c93e35fce020d768a16fc8891a2f72bab8"}, - {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e7d0a8d460fba526cc047333bdcbf172a159b8bd6be8c3eb63a416ff9ba1477"}, - {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:29f44e3c26b9783816ba9ce274110435d8f5b19bbd82f7a6c7612bb1452a3597"}, - {file = "pyzmq-27.0.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e435540fa1da54667f0026cf1e8407fe6d8a11f1010b7f06b0b17214ebfcf5e"}, - {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:51f5726de3532b8222e569990c8aa34664faa97038304644679a51d906e60c6e"}, - {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:42c7555123679637c99205b1aa9e8f7d90fe29d4c243c719e347d4852545216c"}, - {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a979b7cf9e33d86c4949df527a3018767e5f53bc3b02adf14d4d8db1db63ccc0"}, - {file = "pyzmq-27.0.0-cp38-cp38-win32.whl", hash = "sha256:26b72c5ae20bf59061c3570db835edb81d1e0706ff141747055591c4b41193f8"}, - {file = "pyzmq-27.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:55a0155b148fe0428285a30922f7213539aa84329a5ad828bca4bbbc665c70a4"}, - {file = "pyzmq-27.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:100f6e5052ba42b2533011d34a018a5ace34f8cac67cb03cfa37c8bdae0ca617"}, - {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bf6c6b061efd00404b9750e2cfbd9507492c8d4b3721ded76cb03786131be2ed"}, - {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee05728c0b0b2484a9fc20466fa776fffb65d95f7317a3419985b8c908563861"}, - {file = "pyzmq-27.0.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cdf07fe0a557b131366f80727ec8ccc4b70d89f1e3f920d94a594d598d754f0"}, - {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90252fa2ff3a104219db1f5ced7032a7b5fc82d7c8d2fec2b9a3e6fd4e25576b"}, - {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ea6d441c513bf18c578c73c323acf7b4184507fc244762193aa3a871333c9045"}, - {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ae2b34bcfaae20c064948a4113bf8709eee89fd08317eb293ae4ebd69b4d9740"}, - {file = "pyzmq-27.0.0-cp39-cp39-win32.whl", hash = "sha256:5b10bd6f008937705cf6e7bf8b6ece5ca055991e3eb130bca8023e20b86aa9a3"}, - {file = "pyzmq-27.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:00387d12a8af4b24883895f7e6b9495dc20a66027b696536edac35cb988c38f3"}, - {file = "pyzmq-27.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:4c19d39c04c29a6619adfeb19e3735c421b3bfee082f320662f52e59c47202ba"}, - {file = "pyzmq-27.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:656c1866505a5735d0660b7da6d7147174bbf59d4975fc2b7f09f43c9bc25745"}, - {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74175b9e12779382432dd1d1f5960ebe7465d36649b98a06c6b26be24d173fab"}, - {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c6de908465697a8708e4d6843a1e884f567962fc61eb1706856545141d0cbb"}, - {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c644aaacc01d0df5c7072826df45e67301f191c55f68d7b2916d83a9ddc1b551"}, - {file = "pyzmq-27.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:10f70c1d9a446a85013a36871a296007f6fe4232b530aa254baf9da3f8328bc0"}, - {file = "pyzmq-27.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd1dc59763effd1576f8368047c9c31468fce0af89d76b5067641137506792ae"}, - {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:60e8cc82d968174650c1860d7b716366caab9973787a1c060cf8043130f7d0f7"}, - {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14fe7aaac86e4e93ea779a821967360c781d7ac5115b3f1a171ced77065a0174"}, - {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ad0562d4e6abb785be3e4dd68599c41be821b521da38c402bc9ab2a8e7ebc7e"}, - {file = "pyzmq-27.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9df43a2459cd3a3563404c1456b2c4c69564daa7dbaf15724c09821a3329ce46"}, - {file = "pyzmq-27.0.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c86ea8fe85e2eb0ffa00b53192c401477d5252f6dd1db2e2ed21c1c30d17e5e"}, - {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c45fee3968834cd291a13da5fac128b696c9592a9493a0f7ce0b47fa03cc574d"}, - {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cae73bb6898c4e045fbed5024cb587e4110fddb66f6163bcab5f81f9d4b9c496"}, - {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:26d542258c7a1f35a9cff3d887687d3235006134b0ac1c62a6fe1ad3ac10440e"}, - {file = "pyzmq-27.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:04cd50ef3b28e35ced65740fb9956a5b3f77a6ff32fcd887e3210433f437dd0f"}, - {file = "pyzmq-27.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:39ddd3ba0a641f01d8f13a3cfd4c4924eb58e660d8afe87e9061d6e8ca6f7ac3"}, - {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:8ca7e6a0388dd9e1180b14728051068f4efe83e0d2de058b5ff92c63f399a73f"}, - {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2524c40891be6a3106885a3935d58452dd83eb7a5742a33cc780a1ad4c49dec0"}, - {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a56e3e5bd2d62a01744fd2f1ce21d760c7c65f030e9522738d75932a14ab62a"}, - {file = "pyzmq-27.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:096af9e133fec3a72108ddefba1e42985cb3639e9de52cfd336b6fc23aa083e9"}, - {file = "pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf"}, + {file = "pyzmq-27.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:90a4da42aa322de8a3522461e3b5fe999935763b27f69a02fced40f4e3cf9682"}, + {file = "pyzmq-27.0.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e648dca28178fc879c814cf285048dd22fd1f03e1104101106505ec0eea50a4d"}, + {file = "pyzmq-27.0.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bca8abc31799a6f3652d13f47e0b0e1cab76f9125f2283d085a3754f669b607"}, + {file = "pyzmq-27.0.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:092f4011b26d6b0201002f439bd74b38f23f3aefcb358621bdc3b230afc9b2d5"}, + {file = "pyzmq-27.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f02f30a4a6b3efe665ab13a3dd47109d80326c8fd286311d1ba9f397dc5f247"}, + {file = "pyzmq-27.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f293a1419266e3bf3557d1f8778f9e1ffe7e6b2c8df5c9dca191caf60831eb74"}, + {file = "pyzmq-27.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ce181dd1a7c6c012d0efa8ab603c34b5ee9d86e570c03415bbb1b8772eeb381c"}, + {file = "pyzmq-27.0.1-cp310-cp310-win32.whl", hash = "sha256:f65741cc06630652e82aa68ddef4986a3ab9073dd46d59f94ce5f005fa72037c"}, + {file = "pyzmq-27.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:44909aa3ed2234d69fe81e1dade7be336bcfeab106e16bdaa3318dcde4262b93"}, + {file = "pyzmq-27.0.1-cp310-cp310-win_arm64.whl", hash = "sha256:4401649bfa0a38f0f8777f8faba7cd7eb7b5b8ae2abc7542b830dd09ad4aed0d"}, + {file = "pyzmq-27.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:9729190bd770314f5fbba42476abf6abe79a746eeda11d1d68fd56dd70e5c296"}, + {file = "pyzmq-27.0.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:696900ef6bc20bef6a242973943574f96c3f97d2183c1bd3da5eea4f559631b1"}, + {file = "pyzmq-27.0.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f96a63aecec22d3f7fdea3c6c98df9e42973f5856bb6812c3d8d78c262fee808"}, + {file = "pyzmq-27.0.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c512824360ea7490390566ce00bee880e19b526b312b25cc0bc30a0fe95cb67f"}, + {file = "pyzmq-27.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dfb2bb5e0f7198eaacfb6796fb0330afd28f36d985a770745fba554a5903595a"}, + {file = "pyzmq-27.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4f6886c59ba93ffde09b957d3e857e7950c8fe818bd5494d9b4287bc6d5bc7f1"}, + {file = "pyzmq-27.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b99ea9d330e86ce1ff7f2456b33f1bf81c43862a5590faf4ef4ed3a63504bdab"}, + {file = "pyzmq-27.0.1-cp311-cp311-win32.whl", hash = "sha256:571f762aed89025ba8cdcbe355fea56889715ec06d0264fd8b6a3f3fa38154ed"}, + {file = "pyzmq-27.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:ee16906c8025fa464bea1e48128c048d02359fb40bebe5333103228528506530"}, + {file = "pyzmq-27.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:ba068f28028849da725ff9185c24f832ccf9207a40f9b28ac46ab7c04994bd41"}, + {file = "pyzmq-27.0.1-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:af7ebce2a1e7caf30c0bb64a845f63a69e76a2fadbc1cac47178f7bb6e657bdd"}, + {file = "pyzmq-27.0.1-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:8f617f60a8b609a13099b313e7e525e67f84ef4524b6acad396d9ff153f6e4cd"}, + {file = "pyzmq-27.0.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d59dad4173dc2a111f03e59315c7bd6e73da1a9d20a84a25cf08325b0582b1a"}, + {file = "pyzmq-27.0.1-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f5b6133c8d313bde8bd0d123c169d22525300ff164c2189f849de495e1344577"}, + {file = "pyzmq-27.0.1-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:58cca552567423f04d06a075f4b473e78ab5bdb906febe56bf4797633f54aa4e"}, + {file = "pyzmq-27.0.1-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:4b9d8e26fb600d0d69cc9933e20af08552e97cc868a183d38a5c0d661e40dfbb"}, + {file = "pyzmq-27.0.1-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2329f0c87f0466dce45bba32b63f47018dda5ca40a0085cc5c8558fea7d9fc55"}, + {file = "pyzmq-27.0.1-cp312-abi3-win32.whl", hash = "sha256:57bb92abdb48467b89c2d21da1ab01a07d0745e536d62afd2e30d5acbd0092eb"}, + {file = "pyzmq-27.0.1-cp312-abi3-win_amd64.whl", hash = "sha256:ff3f8757570e45da7a5bedaa140489846510014f7a9d5ee9301c61f3f1b8a686"}, + {file = "pyzmq-27.0.1-cp312-abi3-win_arm64.whl", hash = "sha256:df2c55c958d3766bdb3e9d858b911288acec09a9aab15883f384fc7180df5bed"}, + {file = "pyzmq-27.0.1-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:497bd8af534ae55dc4ef67eebd1c149ff2a0b0f1e146db73c8b5a53d83c1a5f5"}, + {file = "pyzmq-27.0.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:a066ea6ad6218b4c233906adf0ae67830f451ed238419c0db609310dd781fbe7"}, + {file = "pyzmq-27.0.1-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:72d235d6365ca73d8ce92f7425065d70f5c1e19baa458eb3f0d570e425b73a96"}, + {file = "pyzmq-27.0.1-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:313a7b374e3dc64848644ca348a51004b41726f768b02e17e689f1322366a4d9"}, + {file = "pyzmq-27.0.1-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:119ce8590409702394f959c159d048002cbed2f3c0645ec9d6a88087fc70f0f1"}, + {file = "pyzmq-27.0.1-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:45c3e00ce16896ace2cd770ab9057a7cf97d4613ea5f2a13f815141d8b6894b9"}, + {file = "pyzmq-27.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:678e50ec112bdc6df5a83ac259a55a4ba97a8b314c325ab26b3b5b071151bc61"}, + {file = "pyzmq-27.0.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d0b96c30be9f9387b18b18b6133c75a7b1b0065da64e150fe1feb5ebf31ece1c"}, + {file = "pyzmq-27.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88dc92d9eb5ea4968123e74db146d770b0c8d48f0e2bfb1dbc6c50a8edb12d64"}, + {file = "pyzmq-27.0.1-cp313-cp313t-win32.whl", hash = "sha256:6dcbcb34f5c9b0cefdfc71ff745459241b7d3cda5b27c7ad69d45afc0821d1e1"}, + {file = "pyzmq-27.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9fd0fda730461f510cfd9a40fafa5355d65f5e3dbdd8d6dfa342b5b3f5d1949"}, + {file = "pyzmq-27.0.1-cp313-cp313t-win_arm64.whl", hash = "sha256:56a3b1853f3954ec1f0e91085f1350cc57d18f11205e4ab6e83e4b7c414120e0"}, + {file = "pyzmq-27.0.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f98f6b7787bd2beb1f0dde03f23a0621a0c978edf673b7d8f5e7bc039cbe1b60"}, + {file = "pyzmq-27.0.1-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:351bf5d8ca0788ca85327fda45843b6927593ff4c807faee368cc5aaf9f809c2"}, + {file = "pyzmq-27.0.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5268a5a9177afff53dc6d70dffe63114ba2a6e7b20d9411cc3adeba09eeda403"}, + {file = "pyzmq-27.0.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a4aca06ba295aa78bec9b33ec028d1ca08744c36294338c41432b7171060c808"}, + {file = "pyzmq-27.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1c363c6dc66352331d5ad64bb838765c6692766334a6a02fdb05e76bd408ae18"}, + {file = "pyzmq-27.0.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:87aebf4acd7249bdff8d3df03aed4f09e67078e6762cfe0aecf8d0748ff94cde"}, + {file = "pyzmq-27.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e4f22d67756518d71901edf73b38dc0eb4765cce22c8fe122cc81748d425262b"}, + {file = "pyzmq-27.0.1-cp314-cp314t-win32.whl", hash = "sha256:8c62297bc7aea2147b472ca5ca2b4389377ad82898c87cabab2a94aedd75e337"}, + {file = "pyzmq-27.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:bee5248d5ec9223545f8cc4f368c2d571477ae828c99409125c3911511d98245"}, + {file = "pyzmq-27.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:0fc24bf45e4a454e55ef99d7f5c8b8712539200ce98533af25a5bfa954b6b390"}, + {file = "pyzmq-27.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:9d16fdfd7d70a6b0ca45d36eb19f7702fa77ef6256652f17594fc9ce534c9da6"}, + {file = "pyzmq-27.0.1-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d0356a21e58c3e99248930ff73cc05b1d302ff50f41a8a47371aefb04327378a"}, + {file = "pyzmq-27.0.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a27fa11ebaccc099cac4309c799aa33919671a7660e29b3e465b7893bc64ec81"}, + {file = "pyzmq-27.0.1-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b25e72e115399a4441aad322258fa8267b873850dc7c276e3f874042728c2b45"}, + {file = "pyzmq-27.0.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f8c3b74f1cd577a5a9253eae7ed363f88cbb345a990ca3027e9038301d47c7f4"}, + {file = "pyzmq-27.0.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:19dce6c93656f9c469540350d29b128cd8ba55b80b332b431b9a1e9ff74cfd01"}, + {file = "pyzmq-27.0.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:da81512b83032ed6cdf85ca62e020b4c23dda87f1b6c26b932131222ccfdbd27"}, + {file = "pyzmq-27.0.1-cp38-cp38-win32.whl", hash = "sha256:7418fb5736d0d39b3ecc6bec4ff549777988feb260f5381636d8bd321b653038"}, + {file = "pyzmq-27.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:af2ee67b3688b067e20fea3fe36b823a362609a1966e7e7a21883ae6da248804"}, + {file = "pyzmq-27.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:05a94233fdde585eb70924a6e4929202a747eea6ed308a6171c4f1c715bbe39e"}, + {file = "pyzmq-27.0.1-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c96702e1082eab62ae583d64c4e19c9b848359196697e536a0c57ae9bd165bd5"}, + {file = "pyzmq-27.0.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c9180d1f5b4b73e28b64e63cc6c4c097690f102aa14935a62d5dd7426a4e5b5a"}, + {file = "pyzmq-27.0.1-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e971d8680003d0af6020713e52f92109b46fedb463916e988814e04c8133578a"}, + {file = "pyzmq-27.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fe632fa4501154d58dfbe1764a0495734d55f84eaf1feda4549a1f1ca76659e9"}, + {file = "pyzmq-27.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4c3874344fd5fa6d58bb51919708048ac4cab21099f40a227173cddb76b4c20b"}, + {file = "pyzmq-27.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ec09073ed67ae236785d543df3b322282acc0bdf6d1b748c3e81f3043b21cb5"}, + {file = "pyzmq-27.0.1-cp39-cp39-win32.whl", hash = "sha256:f44e7ea288d022d4bf93b9e79dafcb4a7aea45a3cbeae2116792904931cefccf"}, + {file = "pyzmq-27.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:ffe6b809a97ac6dea524b3b837d5b28743d8c2f121141056d168ff0ba8f614ef"}, + {file = "pyzmq-27.0.1-cp39-cp39-win_arm64.whl", hash = "sha256:fde26267416c8478c95432c81489b53f57b0b5d24cd5c8bfaebf5bbaac4dc90c"}, + {file = "pyzmq-27.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:544b995a6a1976fad5d7ff01409b4588f7608ccc41be72147700af91fd44875d"}, + {file = "pyzmq-27.0.1-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0f772eea55cccce7f45d6ecdd1d5049c12a77ec22404f6b892fae687faa87bee"}, + {file = "pyzmq-27.0.1-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9d63d66059114a6756d09169c9209ffceabacb65b9cb0f66e6fc344b20b73e6"}, + {file = "pyzmq-27.0.1-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1da8e645c655d86f0305fb4c65a0d848f461cd90ee07d21f254667287b5dbe50"}, + {file = "pyzmq-27.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1843fd0daebcf843fe6d4da53b8bdd3fc906ad3e97d25f51c3fed44436d82a49"}, + {file = "pyzmq-27.0.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7fb0ee35845bef1e8c4a152d766242164e138c239e3182f558ae15cb4a891f94"}, + {file = "pyzmq-27.0.1-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f379f11e138dfd56c3f24a04164f871a08281194dd9ddf656a278d7d080c8ad0"}, + {file = "pyzmq-27.0.1-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b978c0678cffbe8860ec9edc91200e895c29ae1ac8a7085f947f8e8864c489fb"}, + {file = "pyzmq-27.0.1-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ebccf0d760bc92a4a7c751aeb2fef6626144aace76ee8f5a63abeb100cae87f"}, + {file = "pyzmq-27.0.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:77fed80e30fa65708546c4119840a46691290efc231f6bfb2ac2a39b52e15811"}, + {file = "pyzmq-27.0.1-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9d7b6b90da7285642f480b48c9efd1d25302fd628237d8f6f6ee39ba6b2d2d34"}, + {file = "pyzmq-27.0.1-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d2976b7079f09f48d59dc123293ed6282fca6ef96a270f4ea0364e4e54c8e855"}, + {file = "pyzmq-27.0.1-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2852f67371918705cc18b321695f75c5d653d5d8c4a9b946c1eec4dab2bd6fdf"}, + {file = "pyzmq-27.0.1-pp38-pypy38_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be45a895f98877271e8a0b6cf40925e0369121ce423421c20fa6d7958dc753c2"}, + {file = "pyzmq-27.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:64ca3c7c614aefcdd5e358ecdd41d1237c35fe1417d01ec0160e7cdb0a380edc"}, + {file = "pyzmq-27.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d97b59cbd8a6c8b23524a8ce237ff9504d987dc07156258aa68ae06d2dd5f34d"}, + {file = "pyzmq-27.0.1-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:27a78bdd384dbbe7b357af95f72efe8c494306b5ec0a03c31e2d53d6763e5307"}, + {file = "pyzmq-27.0.1-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b007e5dcba684e888fbc90554cb12a2f4e492927c8c2761a80b7590209821743"}, + {file = "pyzmq-27.0.1-pp39-pypy39_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:95594b2ceeaa94934e3e94dd7bf5f3c3659cf1a26b1fb3edcf6e42dad7e0eaf2"}, + {file = "pyzmq-27.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:70b719a130b81dd130a57ac0ff636dc2c0127c5b35ca5467d1b67057e3c7a4d2"}, + {file = "pyzmq-27.0.1.tar.gz", hash = "sha256:45c549204bc20e7484ffd2555f6cf02e572440ecf2f3bdd60d4404b20fddf64b"}, ] [package.dependencies] @@ -2511,98 +2509,98 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "regex" -version = "2025.7.31" +version = "2025.7.34" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.9" files = [ - {file = "regex-2025.7.31-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b40a8f8064c3b8032babb2049b7ab40812cbb394179556deb7c40c1e3b28630f"}, - {file = "regex-2025.7.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f6aef1895f27875421e6d8047747702d6e512793c6d95614c56479a375541edb"}, - {file = "regex-2025.7.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f124ff95b4cbedfd762897d4bd9da2b20b7574df1d60d498f16a42d398d524e9"}, - {file = "regex-2025.7.31-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea5b162c50745694606f50170cc7cc84c14193ac5fd6ecb26126e826a7c12bd6"}, - {file = "regex-2025.7.31-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f970a3e058f587988a18ed4ddff6a6363fa72a41dfb29077d0efe8dc4df00da"}, - {file = "regex-2025.7.31-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2dadf5788af5b10a78b996d24263e352e5f99dbfce9db4c48e9c875a9a7d051c"}, - {file = "regex-2025.7.31-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f67f9f8216a8e645c568daf104abc52cd5387127af8e8b17c7bc11b014d88fcb"}, - {file = "regex-2025.7.31-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:407da7504642830d4211d39dc23b8a9d400913b3f2d242774b8d17ead3487e00"}, - {file = "regex-2025.7.31-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff7753bd717a9f2286d2171d758eebf11b3bfb21e6520b201e01169ec9cd5ec0"}, - {file = "regex-2025.7.31-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:de088fe37d4c58a42401bf4ce2328b00a760c7d85473ccf6e489094e13452510"}, - {file = "regex-2025.7.31-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:67d708f8bfb89dcd57c3190cb5c343c7f40d3c81319a00c8188982a08c64b977"}, - {file = "regex-2025.7.31-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3fe81cd00ef1eaef1ef00d61200bacb55b1a130570cd9be2e793b98981c6cd9c"}, - {file = "regex-2025.7.31-cp310-cp310-win32.whl", hash = "sha256:8542ee1fd8c8be4db1c58902956a220bdbe7c38362decec989f57ace0e37f14c"}, - {file = "regex-2025.7.31-cp310-cp310-win_amd64.whl", hash = "sha256:77be56e167e2685828ab0abc1bdf38db3ab385e624c3ea2694b0d4ea70a2b7bc"}, - {file = "regex-2025.7.31-cp310-cp310-win_arm64.whl", hash = "sha256:7ddc7ab76d917cb680a3b0fa53fc2971d40cc17415539007e15fa31c829dcf2b"}, - {file = "regex-2025.7.31-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:55dc9f4094656d273562718d68cd8363f688e0b813d62696aad346bcd7b1c7d4"}, - {file = "regex-2025.7.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c8ff37cac0e1c7ba943bf46f6431b0c86cbe42d42ae862ff7b152b4ccc232bdd"}, - {file = "regex-2025.7.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:622aa4ca90d7cf38433d425a4f00543b08d3b109cca379df8f31827cf5e2ecb3"}, - {file = "regex-2025.7.31-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cbd4ee61dddfcff625f8642e940ba61121b28e98d0eca24d79114209e3e8ce1b"}, - {file = "regex-2025.7.31-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca7c9af8f33540b51f1b76092e732b62211092af947239e5db471323ae39ead4"}, - {file = "regex-2025.7.31-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:beda88db2cae5dc82a64cba465f7e8686392d96116f87e664af46c4dfcdd9cbc"}, - {file = "regex-2025.7.31-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055baef91bb31474bd919fd245cf154db00cbac449596952d3e6bc1e1b226808"}, - {file = "regex-2025.7.31-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:02e660c2d02854eed41b13f0e2c98d24efce4fb439aa316742f8d32aeda2803b"}, - {file = "regex-2025.7.31-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4372ca5c43d0e255e68a9aa6812d9be3447c4ce7ba7cb1429c7b96d2c63ee9b1"}, - {file = "regex-2025.7.31-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:481f069facacb4f40bf37a51748a88952f5dd5707dd849f216d53bf5522c8add"}, - {file = "regex-2025.7.31-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e8b4896ec5a9d0ae73d04e260ff6e1f366985b46505b2fa36d91501e4a7a98f0"}, - {file = "regex-2025.7.31-cp311-cp311-win32.whl", hash = "sha256:47ceaa1e5eb243595306dfd5e5e294e251900aa94a0e2e1037fce125f432d2fb"}, - {file = "regex-2025.7.31-cp311-cp311-win_amd64.whl", hash = "sha256:c4f6b34f509bb26507509b6f9ba85debcc6ca512d2d4a6fd5e96b9de2c187c83"}, - {file = "regex-2025.7.31-cp311-cp311-win_arm64.whl", hash = "sha256:75f74892df1593036e83b48ba50d1e1951af650b6fabbfcf7531e7082e3561d4"}, - {file = "regex-2025.7.31-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1af64eed343f19e1f09da9e9e8cfb82570050c4ed9fec400f9f118aab383da4b"}, - {file = "regex-2025.7.31-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:eab98712c0a6d053fb67b021fae43422f7eab8fa2aaa25034f5ef01585112cc7"}, - {file = "regex-2025.7.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34dcb7c4d89b83e7e3cb5a2679595f6f97d253815ed9402edbdfc56780668b89"}, - {file = "regex-2025.7.31-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52f1925d123338835e5b13e5ef8e6a744c02aef8e538e661ad5c76185e6ad87a"}, - {file = "regex-2025.7.31-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:569c2b6812d223ae82a2a13c36362ca5933b88011ba869111eba8fb769ccf492"}, - {file = "regex-2025.7.31-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:27f17ade67d06ce4abff48f2ee99c6419f73e70882fe7ca51960916c75844e1f"}, - {file = "regex-2025.7.31-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:45622fab3a90590a41a541afea739a732bf110dd081c15c84538b115cf5f59f5"}, - {file = "regex-2025.7.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:defab878ce91944baf2ade775895a097ad7eeeab3618d87b4c29753aad98a5c4"}, - {file = "regex-2025.7.31-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8ae02caf994a0a0d958b9b0fc5aebbdb48fa93491a582dd00db3733d258a6ac4"}, - {file = "regex-2025.7.31-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a7c40ab21112711363d7612f35781c8b2d2d59c27e0a057a6486eea60ee01e54"}, - {file = "regex-2025.7.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4723c01dd28c1b1de5f463bba8672e3d0dc3d94d5db056e4bbc3cbc84bf23c1c"}, - {file = "regex-2025.7.31-cp312-cp312-win32.whl", hash = "sha256:3ebf32b2b2f60aecd6f8d375ff310849251946cf953aac69b8b5b10e3ccebaf9"}, - {file = "regex-2025.7.31-cp312-cp312-win_amd64.whl", hash = "sha256:12f9ab65b4cc771dd6d8af806ded7425ca50d2a188d2fc3a5aba3dc49f5684b7"}, - {file = "regex-2025.7.31-cp312-cp312-win_arm64.whl", hash = "sha256:fd454ed1fe245f983c2376b6f01948d6ec4a1e5869a8c883e320e1739cc63e57"}, - {file = "regex-2025.7.31-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ead2cf9d92f90d2fd7c5eb84b383a82154298742011b8f892fdee2f724f76106"}, - {file = "regex-2025.7.31-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:81d865d195f9c94b7e7f043c973a7ee1003b29f6e75caa9125aa5a92cf6b334d"}, - {file = "regex-2025.7.31-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3e58b95f62df0300496a2244ac5818312a80a5f786c9727125d62b49deede1b9"}, - {file = "regex-2025.7.31-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc2939e3e1837822803afebe38f42aab739e1135ea63ba0fdfe499672b21fc39"}, - {file = "regex-2025.7.31-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:51211fd9bfe544f7ad543a683bd2546636ce5b55ab65752e8f8ebe477378dfa2"}, - {file = "regex-2025.7.31-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff1359141a378d8fa1ade7ca8a7a94988c830e5e588d232eded0e5900fa953cf"}, - {file = "regex-2025.7.31-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a57aacb1974bd04a5ace8f93c9ab7fa49b868091032b38afd79b2c1ac70da35a"}, - {file = "regex-2025.7.31-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2784d4afa58a87f5f522037d10cf96c05d3a91ab82b2152a66e8ccea55e703f6"}, - {file = "regex-2025.7.31-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:339d1c579cea1d525ef2b2fefdc1f108596b8252acca6ef012a51206d3f01ac4"}, - {file = "regex-2025.7.31-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3bb9bf5a0c1c1c353bc5da6cb58db8a12b1ec76a9e8dc8a23ce56d63ee867392"}, - {file = "regex-2025.7.31-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1a7bedc5b499bd0a5cc05b3407ab0aa09f224fb9cd13c52253ecb1619957a6b4"}, - {file = "regex-2025.7.31-cp313-cp313-win32.whl", hash = "sha256:c8ae328524e7bb67ae12a9e314d935e7bb67eb5135e57196b0faa4ecab3f2999"}, - {file = "regex-2025.7.31-cp313-cp313-win_amd64.whl", hash = "sha256:8ab2d9cd1c13e7127194b5cb36ecfb323fec0b80845195842d8e8ac9fb581e1b"}, - {file = "regex-2025.7.31-cp313-cp313-win_arm64.whl", hash = "sha256:5560b6c9fb428281b472b665e4d046eaaaf37523135cb1ee3dc699f3e82dae7a"}, - {file = "regex-2025.7.31-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:45fd783fd91ec849c64ebd5c0498ded966e829b8d2ea44daba2a2c35b6b5f4a8"}, - {file = "regex-2025.7.31-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:81a193e6138b61976903357fc7a67dd9e256cf98f73bbfb2758abf3b8d396c35"}, - {file = "regex-2025.7.31-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fccac19e5f1053e4da34ae5a651b938dba12e5f54f04def1cd349b24fd5f28cf"}, - {file = "regex-2025.7.31-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f6755afaed9948dd4dda4d093663fe60e9a8784993b733697551bf6b0921d7c"}, - {file = "regex-2025.7.31-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c7eea6eb0f4c1ff7eee051a6780acc40717be9736bf67873c3c932b7ac5743a2"}, - {file = "regex-2025.7.31-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:89358d48fbc33614185c18b3a397b870e388f13d882f379b9a33c970a4945dcc"}, - {file = "regex-2025.7.31-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8b284b8042d97f4eb9caf4d9423307ee1c9ff9c2abd14c781d44aef070ac7cc9"}, - {file = "regex-2025.7.31-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2348cedab6adee1a7649e2a157d219196044588a58024509def2b8b30c0f63f8"}, - {file = "regex-2025.7.31-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:833292f5ebfbe4f104e02718f0e2d05d51ac43cdc023a217672119989c4a0be6"}, - {file = "regex-2025.7.31-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:74f348e26ff09bb2684c67535f516cec362624566127d9f4158cd7ab5038c1fe"}, - {file = "regex-2025.7.31-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b2d5523c236594c055e5752e088406dfe3214c4e986abeceaea24967371ad890"}, - {file = "regex-2025.7.31-cp314-cp314-win32.whl", hash = "sha256:144d7550d13770ab994ef6616cff552ed01c892499eb1df74b6775e9b6f6a571"}, - {file = "regex-2025.7.31-cp314-cp314-win_amd64.whl", hash = "sha256:5792ff4bb2836ca2b041321eada3a1918f8ba05bceac4f6e9f06f0fefa1b8e44"}, - {file = "regex-2025.7.31-cp314-cp314-win_arm64.whl", hash = "sha256:59b94c02b435d7d5a9621381bf338a36c7efa6d9025a888cc39aa256b2869299"}, - {file = "regex-2025.7.31-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ac97385aadafe3a2f7cb9c48c5ca3cabb91c1f89e47fdf5a55945c61b186254f"}, - {file = "regex-2025.7.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1b600ff5e80d2b4cf2cabc451dab5b9a3ed7e1e5aa845dd5cf41eabefb957179"}, - {file = "regex-2025.7.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1282de93a20d143180bd3500488877d888185a5e78ef02f7cd410140299f0941"}, - {file = "regex-2025.7.31-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b1329dcb4cd688ebabd2560d5a82567e1e3d05885169f6bece40ca9e7dcfe3d"}, - {file = "regex-2025.7.31-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56508bf5da86c96b7f87da70ee28019a1bdd4c0ec31adfcd62300c4a08e927e4"}, - {file = "regex-2025.7.31-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1778b27e2d4e07cf1e3350f1e74dae5d0511d1ca2b001f4d985b0739182ba2a8"}, - {file = "regex-2025.7.31-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60162442fd631ead1ca58c16f6f9d6b1aa32d2a2f749b51a7b4262fc294105e1"}, - {file = "regex-2025.7.31-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc9eb820140126219ac9d6b488176cfdde2f5e8891b0fbf2cbd2526c0d441d37"}, - {file = "regex-2025.7.31-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b2b0f700237b73ec0df2e13e2b1c10d36b8ea45c7a3c7eb6d99843c39feaa0e6"}, - {file = "regex-2025.7.31-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:46572b60e9cc5c09e17d5ecb648dc9fb1c44c12274ae791921350f0f6d0eebea"}, - {file = "regex-2025.7.31-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:019ad36e4ea89af6abd2915ffc06b4e109234655148a45f8f32b42ea9b503514"}, - {file = "regex-2025.7.31-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:261f9a6dcb1fd9dc204cc587fceac2e071720a15fc4fa36156651c886e574ad0"}, - {file = "regex-2025.7.31-cp39-cp39-win32.whl", hash = "sha256:f7858175abee523c5b04cc1de5d3d03168aed4805aad747641752c027aaa6335"}, - {file = "regex-2025.7.31-cp39-cp39-win_amd64.whl", hash = "sha256:097c2adaedf5fba5819df298750cd3966da94fdd549e2d9e5040d7e315de97dd"}, - {file = "regex-2025.7.31-cp39-cp39-win_arm64.whl", hash = "sha256:c28c00fbe30dd5e99162b88765c8d014d06581927ceab8fa851267041e48820c"}, - {file = "regex-2025.7.31.tar.gz", hash = "sha256:80a1af156ea8670ae63184e5c112b481326ece1879e09447f6fbb49d1b49330b"}, + {file = "regex-2025.7.34-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d856164d25e2b3b07b779bfed813eb4b6b6ce73c2fd818d46f47c1eb5cd79bd6"}, + {file = "regex-2025.7.34-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d15a9da5fad793e35fb7be74eec450d968e05d2e294f3e0e77ab03fa7234a83"}, + {file = "regex-2025.7.34-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:95b4639c77d414efa93c8de14ce3f7965a94d007e068a94f9d4997bb9bd9c81f"}, + {file = "regex-2025.7.34-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7de1ceed5a5f84f342ba4a9f4ae589524adf9744b2ee61b5da884b5b659834"}, + {file = "regex-2025.7.34-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:02e5860a250cd350c4933cf376c3bc9cb28948e2c96a8bc042aee7b985cfa26f"}, + {file = "regex-2025.7.34-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a5966220b9a1a88691282b7e4350e9599cf65780ca60d914a798cb791aa1177"}, + {file = "regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48fb045bbd4aab2418dc1ba2088a5e32de4bfe64e1457b948bb328a8dc2f1c2e"}, + {file = "regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:20ff8433fa45e131f7316594efe24d4679c5449c0ca69d91c2f9d21846fdf064"}, + {file = "regex-2025.7.34-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c436fd1e95c04c19039668cfb548450a37c13f051e8659f40aed426e36b3765f"}, + {file = "regex-2025.7.34-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0b85241d3cfb9f8a13cefdfbd58a2843f208f2ed2c88181bf84e22e0c7fc066d"}, + {file = "regex-2025.7.34-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:075641c94126b064c65ab86e7e71fc3d63e7ff1bea1fb794f0773c97cdad3a03"}, + {file = "regex-2025.7.34-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:70645cad3407d103d1dbcb4841839d2946f7d36cf38acbd40120fee1682151e5"}, + {file = "regex-2025.7.34-cp310-cp310-win32.whl", hash = "sha256:3b836eb4a95526b263c2a3359308600bd95ce7848ebd3c29af0c37c4f9627cd3"}, + {file = "regex-2025.7.34-cp310-cp310-win_amd64.whl", hash = "sha256:cbfaa401d77334613cf434f723c7e8ba585df162be76474bccc53ae4e5520b3a"}, + {file = "regex-2025.7.34-cp310-cp310-win_arm64.whl", hash = "sha256:bca11d3c38a47c621769433c47f364b44e8043e0de8e482c5968b20ab90a3986"}, + {file = "regex-2025.7.34-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:da304313761b8500b8e175eb2040c4394a875837d5635f6256d6fa0377ad32c8"}, + {file = "regex-2025.7.34-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:35e43ebf5b18cd751ea81455b19acfdec402e82fe0dc6143edfae4c5c4b3909a"}, + {file = "regex-2025.7.34-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96bbae4c616726f4661fe7bcad5952e10d25d3c51ddc388189d8864fbc1b3c68"}, + {file = "regex-2025.7.34-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9feab78a1ffa4f2b1e27b1bcdaad36f48c2fed4870264ce32f52a393db093c78"}, + {file = "regex-2025.7.34-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f14b36e6d4d07f1a5060f28ef3b3561c5d95eb0651741474ce4c0a4c56ba8719"}, + {file = "regex-2025.7.34-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85c3a958ef8b3d5079c763477e1f09e89d13ad22198a37e9d7b26b4b17438b33"}, + {file = "regex-2025.7.34-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:37555e4ae0b93358fa7c2d240a4291d4a4227cc7c607d8f85596cdb08ec0a083"}, + {file = "regex-2025.7.34-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee38926f31f1aa61b0232a3a11b83461f7807661c062df9eb88769d86e6195c3"}, + {file = "regex-2025.7.34-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a664291c31cae9c4a30589bd8bc2ebb56ef880c9c6264cb7643633831e606a4d"}, + {file = "regex-2025.7.34-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f3e5c1e0925e77ec46ddc736b756a6da50d4df4ee3f69536ffb2373460e2dafd"}, + {file = "regex-2025.7.34-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d428fc7731dcbb4e2ffe43aeb8f90775ad155e7db4347a639768bc6cd2df881a"}, + {file = "regex-2025.7.34-cp311-cp311-win32.whl", hash = "sha256:e154a7ee7fa18333ad90b20e16ef84daaeac61877c8ef942ec8dfa50dc38b7a1"}, + {file = "regex-2025.7.34-cp311-cp311-win_amd64.whl", hash = "sha256:24257953d5c1d6d3c129ab03414c07fc1a47833c9165d49b954190b2b7f21a1a"}, + {file = "regex-2025.7.34-cp311-cp311-win_arm64.whl", hash = "sha256:3157aa512b9e606586900888cd469a444f9b898ecb7f8931996cb715f77477f0"}, + {file = "regex-2025.7.34-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7f7211a746aced993bef487de69307a38c5ddd79257d7be83f7b202cb59ddb50"}, + {file = "regex-2025.7.34-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fb31080f2bd0681484b275461b202b5ad182f52c9ec606052020fe13eb13a72f"}, + {file = "regex-2025.7.34-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0200a5150c4cf61e407038f4b4d5cdad13e86345dac29ff9dab3d75d905cf130"}, + {file = "regex-2025.7.34-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:739a74970e736df0773788377969c9fea3876c2fc13d0563f98e5503e5185f46"}, + {file = "regex-2025.7.34-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4fef81b2f7ea6a2029161ed6dea9ae13834c28eb5a95b8771828194a026621e4"}, + {file = "regex-2025.7.34-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ea74cf81fe61a7e9d77989050d0089a927ab758c29dac4e8e1b6c06fccf3ebf0"}, + {file = "regex-2025.7.34-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4636a7f3b65a5f340ed9ddf53585c42e3ff37101d383ed321bfe5660481744b"}, + {file = "regex-2025.7.34-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cef962d7834437fe8d3da6f9bfc6f93f20f218266dcefec0560ed7765f5fe01"}, + {file = "regex-2025.7.34-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:cbe1698e5b80298dbce8df4d8d1182279fbdaf1044e864cbc9d53c20e4a2be77"}, + {file = "regex-2025.7.34-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:32b9f9bcf0f605eb094b08e8da72e44badabb63dde6b83bd530580b488d1c6da"}, + {file = "regex-2025.7.34-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:524c868ba527eab4e8744a9287809579f54ae8c62fbf07d62aacd89f6026b282"}, + {file = "regex-2025.7.34-cp312-cp312-win32.whl", hash = "sha256:d600e58ee6d036081c89696d2bdd55d507498a7180df2e19945c6642fac59588"}, + {file = "regex-2025.7.34-cp312-cp312-win_amd64.whl", hash = "sha256:9a9ab52a466a9b4b91564437b36417b76033e8778e5af8f36be835d8cb370d62"}, + {file = "regex-2025.7.34-cp312-cp312-win_arm64.whl", hash = "sha256:c83aec91af9c6fbf7c743274fd952272403ad9a9db05fe9bfc9df8d12b45f176"}, + {file = "regex-2025.7.34-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c3c9740a77aeef3f5e3aaab92403946a8d34437db930a0280e7e81ddcada61f5"}, + {file = "regex-2025.7.34-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:69ed3bc611540f2ea70a4080f853741ec698be556b1df404599f8724690edbcd"}, + {file = "regex-2025.7.34-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d03c6f9dcd562c56527c42b8530aad93193e0b3254a588be1f2ed378cdfdea1b"}, + {file = "regex-2025.7.34-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6164b1d99dee1dfad33f301f174d8139d4368a9fb50bf0a3603b2eaf579963ad"}, + {file = "regex-2025.7.34-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1e4f4f62599b8142362f164ce776f19d79bdd21273e86920a7b604a4275b4f59"}, + {file = "regex-2025.7.34-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:72a26dcc6a59c057b292f39d41465d8233a10fd69121fa24f8f43ec6294e5415"}, + {file = "regex-2025.7.34-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5273fddf7a3e602695c92716c420c377599ed3c853ea669c1fe26218867002f"}, + {file = "regex-2025.7.34-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c1844be23cd40135b3a5a4dd298e1e0c0cb36757364dd6cdc6025770363e06c1"}, + {file = "regex-2025.7.34-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dde35e2afbbe2272f8abee3b9fe6772d9b5a07d82607b5788e8508974059925c"}, + {file = "regex-2025.7.34-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f6e8e7af516a7549412ce57613e859c3be27d55341a894aacaa11703a4c31a"}, + {file = "regex-2025.7.34-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:469142fb94a869beb25b5f18ea87646d21def10fbacb0bcb749224f3509476f0"}, + {file = "regex-2025.7.34-cp313-cp313-win32.whl", hash = "sha256:da7507d083ee33ccea1310447410c27ca11fb9ef18c95899ca57ff60a7e4d8f1"}, + {file = "regex-2025.7.34-cp313-cp313-win_amd64.whl", hash = "sha256:9d644de5520441e5f7e2db63aec2748948cc39ed4d7a87fd5db578ea4043d997"}, + {file = "regex-2025.7.34-cp313-cp313-win_arm64.whl", hash = "sha256:7bf1c5503a9f2cbd2f52d7e260acb3131b07b6273c470abb78568174fe6bde3f"}, + {file = "regex-2025.7.34-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:8283afe7042d8270cecf27cca558873168e771183d4d593e3c5fe5f12402212a"}, + {file = "regex-2025.7.34-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6c053f9647e3421dd2f5dff8172eb7b4eec129df9d1d2f7133a4386319b47435"}, + {file = "regex-2025.7.34-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a16dd56bbcb7d10e62861c3cd000290ddff28ea142ffb5eb3470f183628011ac"}, + {file = "regex-2025.7.34-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69c593ff5a24c0d5c1112b0df9b09eae42b33c014bdca7022d6523b210b69f72"}, + {file = "regex-2025.7.34-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98d0ce170fcde1a03b5df19c5650db22ab58af375aaa6ff07978a85c9f250f0e"}, + {file = "regex-2025.7.34-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d72765a4bff8c43711d5b0f5b452991a9947853dfa471972169b3cc0ba1d0751"}, + {file = "regex-2025.7.34-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4494f8fd95a77eb434039ad8460e64d57baa0434f1395b7da44015bef650d0e4"}, + {file = "regex-2025.7.34-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4f42b522259c66e918a0121a12429b2abcf696c6f967fa37bdc7b72e61469f98"}, + {file = "regex-2025.7.34-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:aaef1f056d96a0a5d53ad47d019d5b4c66fe4be2da87016e0d43b7242599ffc7"}, + {file = "regex-2025.7.34-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:656433e5b7dccc9bc0da6312da8eb897b81f5e560321ec413500e5367fcd5d47"}, + {file = "regex-2025.7.34-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e91eb2c62c39705e17b4d42d4b86c4e86c884c0d15d9c5a47d0835f8387add8e"}, + {file = "regex-2025.7.34-cp314-cp314-win32.whl", hash = "sha256:f978ddfb6216028c8f1d6b0f7ef779949498b64117fc35a939022f67f810bdcb"}, + {file = "regex-2025.7.34-cp314-cp314-win_amd64.whl", hash = "sha256:4b7dc33b9b48fb37ead12ffc7bdb846ac72f99a80373c4da48f64b373a7abeae"}, + {file = "regex-2025.7.34-cp314-cp314-win_arm64.whl", hash = "sha256:4b8c4d39f451e64809912c82392933d80fe2e4a87eeef8859fcc5380d0173c64"}, + {file = "regex-2025.7.34-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fd5edc3f453de727af267c7909d083e19f6426fc9dd149e332b6034f2a5611e6"}, + {file = "regex-2025.7.34-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa1cdfb8db96ef20137de5587954c812821966c3e8b48ffc871e22d7ec0a4938"}, + {file = "regex-2025.7.34-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:89c9504fc96268e8e74b0283e548f53a80c421182a2007e3365805b74ceef936"}, + {file = "regex-2025.7.34-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33be70d75fa05a904ee0dc43b650844e067d14c849df7e82ad673541cd465b5f"}, + {file = "regex-2025.7.34-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:57d25b6732ea93eeb1d090e8399b6235ca84a651b52d52d272ed37d3d2efa0f1"}, + {file = "regex-2025.7.34-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:baf2fe122a3db1c0b9f161aa44463d8f7e33eeeda47bb0309923deb743a18276"}, + {file = "regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a764a83128af9c1a54be81485b34dca488cbcacefe1e1d543ef11fbace191e1"}, + {file = "regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7f663ccc4093877f55b51477522abd7299a14c5bb7626c5238599db6a0cb95d"}, + {file = "regex-2025.7.34-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4913f52fbc7a744aaebf53acd8d3dc1b519e46ba481d4d7596de3c862e011ada"}, + {file = "regex-2025.7.34-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:efac4db9e044d47fd3b6b0d40b6708f4dfa2d8131a5ac1d604064147c0f552fd"}, + {file = "regex-2025.7.34-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:7373afae7cfb716e3b8e15d0184510d518f9d21471f2d62918dbece85f2c588f"}, + {file = "regex-2025.7.34-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9960d162f3fecf6af252534a1ae337e9c2e20d74469fed782903b24e2cc9d3d7"}, + {file = "regex-2025.7.34-cp39-cp39-win32.whl", hash = "sha256:95d538b10eb4621350a54bf14600cc80b514211d91a019dc74b8e23d2159ace5"}, + {file = "regex-2025.7.34-cp39-cp39-win_amd64.whl", hash = "sha256:f7f3071b5faa605b0ea51ec4bb3ea7257277446b053f4fd3ad02b1dcb4e64353"}, + {file = "regex-2025.7.34-cp39-cp39-win_arm64.whl", hash = "sha256:716a47515ba1d03f8e8a61c5013041c8c90f2e21f055203498105d7571b44531"}, + {file = "regex-2025.7.34.tar.gz", hash = "sha256:9ead9765217afd04a86822dfcd4ed2747dfe426e887da413b15ff0ac2457e21a"}, ] [[package]] @@ -3088,23 +3086,23 @@ files = [ [[package]] name = "tornado" -version = "6.5.1" +version = "6.5.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.9" files = [ - {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7"}, - {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6"}, - {file = "tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888"}, - {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331"}, - {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e"}, - {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401"}, - {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692"}, - {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a"}, - {file = "tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365"}, - {file = "tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b"}, - {file = "tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7"}, - {file = "tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c"}, + {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6"}, + {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef"}, + {file = "tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e"}, + {file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882"}, + {file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108"}, + {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c"}, + {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4"}, + {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04"}, + {file = "tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0"}, + {file = "tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f"}, + {file = "tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af"}, + {file = "tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0"}, ] [[package]] @@ -3220,19 +3218,20 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", [[package]] name = "virtualenv" -version = "20.32.0" +version = "20.34.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.32.0-py3-none-any.whl", hash = "sha256:2c310aecb62e5aa1b06103ed7c2977b81e042695de2697d01017ff0f1034af56"}, - {file = "virtualenv-20.32.0.tar.gz", hash = "sha256:886bf75cadfdc964674e6e33eb74d787dff31ca314ceace03ca5810620f4ecf0"}, + {file = "virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026"}, + {file = "virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" platformdirs = ">=3.9.1,<5" +typing-extensions = {version = ">=4.13.2", markers = "python_version < \"3.11\""} [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] @@ -3329,90 +3328,92 @@ wasabi = ">=0.9.1,<1.2.0" [[package]] name = "wrapt" -version = "1.17.2" +version = "1.17.3" description = "Module for decorators, wrappers and monkey patching." optional = false python-versions = ">=3.8" files = [ - {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, - {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, - {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, - {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, - {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, - {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, - {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, - {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, - {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, - {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, - {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, - {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, - {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, - {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, - {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, - {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, - {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, - {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, - {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, - {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, - {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, - {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, - {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, - {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, - {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, - {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, - {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, - {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, - {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, - {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, - {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, - {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, - {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, - {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, - {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, - {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, - {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, - {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, - {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, - {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, - {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, - {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, - {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, - {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, - {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, - {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, - {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, - {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, - {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, - {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, - {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, - {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, - {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, - {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, - {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, - {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, - {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, - {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, - {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, - {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, - {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, - {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, - {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, - {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, - {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, - {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, - {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, - {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, - {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, - {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, - {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, - {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, - {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, - {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, - {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, - {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, - {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, - {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, - {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, + {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04"}, + {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2"}, + {file = "wrapt-1.17.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c"}, + {file = "wrapt-1.17.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775"}, + {file = "wrapt-1.17.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd"}, + {file = "wrapt-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05"}, + {file = "wrapt-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418"}, + {file = "wrapt-1.17.3-cp310-cp310-win32.whl", hash = "sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390"}, + {file = "wrapt-1.17.3-cp310-cp310-win_amd64.whl", hash = "sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6"}, + {file = "wrapt-1.17.3-cp310-cp310-win_arm64.whl", hash = "sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18"}, + {file = "wrapt-1.17.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7"}, + {file = "wrapt-1.17.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85"}, + {file = "wrapt-1.17.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f"}, + {file = "wrapt-1.17.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311"}, + {file = "wrapt-1.17.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1"}, + {file = "wrapt-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5"}, + {file = "wrapt-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2"}, + {file = "wrapt-1.17.3-cp311-cp311-win32.whl", hash = "sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89"}, + {file = "wrapt-1.17.3-cp311-cp311-win_amd64.whl", hash = "sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77"}, + {file = "wrapt-1.17.3-cp311-cp311-win_arm64.whl", hash = "sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a"}, + {file = "wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0"}, + {file = "wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba"}, + {file = "wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd"}, + {file = "wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828"}, + {file = "wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9"}, + {file = "wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396"}, + {file = "wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc"}, + {file = "wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe"}, + {file = "wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c"}, + {file = "wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6"}, + {file = "wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0"}, + {file = "wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77"}, + {file = "wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7"}, + {file = "wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277"}, + {file = "wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d"}, + {file = "wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa"}, + {file = "wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050"}, + {file = "wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8"}, + {file = "wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb"}, + {file = "wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16"}, + {file = "wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39"}, + {file = "wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235"}, + {file = "wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c"}, + {file = "wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b"}, + {file = "wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa"}, + {file = "wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7"}, + {file = "wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4"}, + {file = "wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10"}, + {file = "wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6"}, + {file = "wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58"}, + {file = "wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a"}, + {file = "wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067"}, + {file = "wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454"}, + {file = "wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e"}, + {file = "wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f"}, + {file = "wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056"}, + {file = "wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804"}, + {file = "wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977"}, + {file = "wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116"}, + {file = "wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6"}, + {file = "wrapt-1.17.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:70d86fa5197b8947a2fa70260b48e400bf2ccacdcab97bb7de47e3d1e6312225"}, + {file = "wrapt-1.17.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:df7d30371a2accfe4013e90445f6388c570f103d61019b6b7c57e0265250072a"}, + {file = "wrapt-1.17.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:caea3e9c79d5f0d2c6d9ab96111601797ea5da8e6d0723f77eabb0d4068d2b2f"}, + {file = "wrapt-1.17.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:758895b01d546812d1f42204bd443b8c433c44d090248bf22689df673ccafe00"}, + {file = "wrapt-1.17.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56"}, + {file = "wrapt-1.17.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:656873859b3b50eeebe6db8b1455e99d90c26ab058db8e427046dbc35c3140a5"}, + {file = "wrapt-1.17.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a9a2203361a6e6404f80b99234fe7fb37d1fc73487b5a78dc1aa5b97201e0f22"}, + {file = "wrapt-1.17.3-cp38-cp38-win32.whl", hash = "sha256:55cbbc356c2842f39bcc553cf695932e8b30e30e797f961860afb308e6b1bb7c"}, + {file = "wrapt-1.17.3-cp38-cp38-win_amd64.whl", hash = "sha256:ad85e269fe54d506b240d2d7b9f5f2057c2aa9a2ea5b32c66f8902f768117ed2"}, + {file = "wrapt-1.17.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30ce38e66630599e1193798285706903110d4f057aab3168a34b7fdc85569afc"}, + {file = "wrapt-1.17.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:65d1d00fbfb3ea5f20add88bbc0f815150dbbde3b026e6c24759466c8b5a9ef9"}, + {file = "wrapt-1.17.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7c06742645f914f26c7f1fa47b8bc4c91d222f76ee20116c43d5ef0912bba2d"}, + {file = "wrapt-1.17.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7e18f01b0c3e4a07fe6dfdb00e29049ba17eadbc5e7609a2a3a4af83ab7d710a"}, + {file = "wrapt-1.17.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f5f51a6466667a5a356e6381d362d259125b57f059103dd9fdc8c0cf1d14139"}, + {file = "wrapt-1.17.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:59923aa12d0157f6b82d686c3fd8e1166fa8cdfb3e17b42ce3b6147ff81528df"}, + {file = "wrapt-1.17.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:46acc57b331e0b3bcb3e1ca3b421d65637915cfcd65eb783cb2f78a511193f9b"}, + {file = "wrapt-1.17.3-cp39-cp39-win32.whl", hash = "sha256:3e62d15d3cfa26e3d0788094de7b64efa75f3a53875cdbccdf78547aed547a81"}, + {file = "wrapt-1.17.3-cp39-cp39-win_amd64.whl", hash = "sha256:1f23fa283f51c890eda8e34e4937079114c74b4c81d2b2f1f1d94948f5cc3d7f"}, + {file = "wrapt-1.17.3-cp39-cp39-win_arm64.whl", hash = "sha256:24c2ed34dc222ed754247a2702b1e1e89fdbaa4016f324b4b8f1a802d4ffe87f"}, + {file = "wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22"}, + {file = "wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0"}, ] [[package]] From 6f8e752b2acd8d1435798f3df28f0af4aa2b0507 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Thu, 9 Oct 2025 10:41:11 +0100 Subject: [PATCH 05/18] docstring --- healthchain/gateway/fhir/base.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/healthchain/gateway/fhir/base.py b/healthchain/gateway/fhir/base.py index ff397e63..8af3b2e4 100644 --- a/healthchain/gateway/fhir/base.py +++ b/healthchain/gateway/fhir/base.py @@ -451,14 +451,14 @@ def add_source(self, name: str, connection_string: str) -> None: def aggregate(self, resource_type: Type[Resource]): """ - Decorator for custom aggregation functions. + Decorator for custom aggregation functions. Can return the same resource type or a bundle of resources. Args: resource_type: The FHIR resource type class that this handler aggregates Example: @fhir_gateway.aggregate(Patient) - def aggregate_patients(id: str = None, sources: List[str] = None) -> List[Patient]: + def aggregate_patients(id: str = None, sources: List[str] = None) -> Patient | Bundle: # Handler implementation pass """ @@ -471,7 +471,7 @@ def decorator(handler: Callable): def transform(self, resource_type: Type[Resource]): """ - Decorator for custom transformation functions. + Decorator for custom transformation functions. Must return the same resource type. Args: resource_type: The FHIR resource type class that this handler transforms From f3b975a17dddbce9cb2e93462e5a1ca722b0cafa Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Thu, 9 Oct 2025 13:17:43 +0100 Subject: [PATCH 06/18] Added provenance and bundle merge fhir helper, tidied up naming conventions --- healthchain/fhir/__init__.py | 13 ++- healthchain/fhir/bundle_helpers.py | 127 +++++++++++++++++--- healthchain/fhir/helpers.py | 160 ++++++++++++++++++++++---- healthchain/io/adapters/cdaadapter.py | 4 +- tests/fhir/test_bundle_helpers.py | 95 +++++++++++++++ tests/fhir/test_helpers.py | 45 +++++++- tests/pipeline/test_cdaadapter.py | 8 +- 7 files changed, 401 insertions(+), 51 deletions(-) diff --git a/healthchain/fhir/__init__.py b/healthchain/fhir/__init__.py index 82e68a2e..96a85f40 100644 --- a/healthchain/fhir/__init__.py +++ b/healthchain/fhir/__init__.py @@ -6,11 +6,13 @@ create_allergy_intolerance, create_single_codeable_concept, create_single_reaction, - set_problem_list_item_category, + set_condition_category, read_content_attachment, create_document_reference, create_single_attachment, create_resource_from_dict, + add_provenance_metadata, + add_coding_to_codeable_concept, ) from healthchain.fhir.bundle_helpers import ( @@ -18,6 +20,8 @@ add_resource, get_resources, set_resources, + merge_bundles, + extract_resources, ) __all__ = [ @@ -27,14 +31,19 @@ "create_allergy_intolerance", "create_single_codeable_concept", "create_single_reaction", - "set_problem_list_item_category", + "set_condition_category", "read_content_attachment", "create_document_reference", "create_single_attachment", "create_resource_from_dict", + # Resource modification + "add_provenance_metadata", + "add_coding_to_codeable_concept", # Bundle operations "create_bundle", "add_resource", "get_resources", "set_resources", + "merge_bundles", + "extract_resources", ] diff --git a/healthchain/fhir/bundle_helpers.py b/healthchain/fhir/bundle_helpers.py index 8e0f9e34..14ac08e4 100644 --- a/healthchain/fhir/bundle_helpers.py +++ b/healthchain/fhir/bundle_helpers.py @@ -1,22 +1,11 @@ """Helper functions for working with FHIR Bundles. - -Example usage: - >>> from healthchain.fhir import create_bundle, get_resources, set_resources - >>> - >>> # Create a bundle - >>> bundle = create_bundle() - >>> - >>> # Add and retrieve conditions - >>> conditions = get_resources(bundle, "Condition") - >>> set_resources(bundle, [new_condition], "Condition") - >>> - >>> # Add and retrieve medications - >>> medications = get_resources(bundle, "MedicationStatement") - >>> set_resources(bundle, [new_medication], "MedicationStatement") - >>> - >>> # Add and retrieve allergies - >>> allergies = get_resources(bundle, "AllergyIntolerance") - >>> set_resources(bundle, [new_allergy], "AllergyIntolerance") +Patterns: +- create_*(): create a new FHIR bundle +- add_*(): add a resource to a bundle +- get_*(): get resources from a bundle +- set_*(): set resources in a bundle +- merge_*(): merge multiple bundles into a single bundle +- extract_*(): extract resources from a bundle """ from typing import List, Type, TypeVar, Optional, Union @@ -165,3 +154,105 @@ def set_resources( f"got {type(resource).__name__}" ) add_resource(bundle, resource) + + +def merge_bundles( + bundles: List[Bundle], + bundle_type: str = "collection", + deduplicate: bool = False, + dedupe_key: str = "id", +) -> Bundle: + """Merge multiple FHIR bundles into a single bundle. + + Combines entries from multiple bundles while preserving resource metadata. + Useful for aggregating search results from multiple FHIR sources. + + Args: + bundles: List of bundles to merge + bundle_type: Type for the merged bundle (default: "collection") + deduplicate: If True, remove duplicate resources based on dedupe_key + dedupe_key: Resource attribute to use for deduplication (default: "id") + + Returns: + A new bundle containing all entries from input bundles + + Example: + >>> # Merge search results from multiple sources + >>> epic_bundle = gateway.search(Condition, {"patient": "123"}, "epic") + >>> cerner_bundle = gateway.search(Condition, {"patient": "123"}, "cerner") + >>> merged = merge_bundles([epic_bundle, cerner_bundle], deduplicate=True) + >>> + >>> # Use in Document workflow + >>> doc = Document(data=merged) + >>> doc.fhir.bundle # Contains all conditions from both sources + """ + merged = create_bundle(bundle_type=bundle_type) + + if deduplicate: + # Track seen resources by dedupe_key to avoid duplicates + seen_keys = set() + + for bundle in bundles: + if not bundle or not bundle.entry: + continue + + for entry in bundle.entry: + if not entry.resource: + continue + + # Get the deduplication key value + key_value = getattr(entry.resource, dedupe_key, None) + + # Skip if we've seen this key before + if key_value and key_value in seen_keys: + continue + + # Add to merged bundle and track the key + add_resource(merged, entry.resource, entry.fullUrl) + if key_value: + seen_keys.add(key_value) + else: + # No deduplication - just merge all entries + for bundle in bundles: + if not bundle or not bundle.entry: + continue + + for entry in bundle.entry: + if entry.resource: + add_resource(merged, entry.resource, entry.fullUrl) + + return merged + + +def extract_resources( + bundle: Bundle, resource_type: Union[str, Type[Resource]] +) -> List[Resource]: + """Remove resources of a given type from a bundle and return them. + + Useful for extracting and separating specific resource types (e.g., OperationOutcome) + from a FHIR Bundle, modifying the bundle in place. + + Args: + bundle: The FHIR Bundle to process (modified in place) + resource_type: The FHIR resource class or string name to extract (e.g., OperationOutcome or "OperationOutcome") + + Returns: + List[Resource]: All resources of the specified type that were in the bundle + """ + if not bundle or not bundle.entry: + return [] + + type_class = get_resource_type(resource_type) + + extracted: List[Resource] = [] + remaining_entries: List[BundleEntry] = [] + + for entry in bundle.entry: + resource = entry.resource + if isinstance(resource, type_class): + extracted.append(resource) + continue + remaining_entries.append(entry) + + bundle.entry = remaining_entries + return extracted diff --git a/healthchain/fhir/helpers.py b/healthchain/fhir/helpers.py index 444a6ea5..20f8c106 100644 --- a/healthchain/fhir/helpers.py +++ b/healthchain/fhir/helpers.py @@ -1,4 +1,10 @@ -"""Convenience functions for creating minimal FHIR resources.""" +"""Convenience functions for creating minimal FHIR resources. +Patterns: +- create_*(): create a new FHIR resource with sensible defaults - useful for dev, use with caution +- add_*(): add data to resources with list fields safely (e.g. coding) +- set_*(): set the field of specific resources with soft validation (e.g. category) +- read_*(): return a human readable format of the data in a resource (e.g. attachments) +""" import logging import base64 @@ -17,6 +23,8 @@ from fhir.resources.attachment import Attachment from fhir.resources.resource import Resource from fhir.resources.reference import Reference +from fhir.resources.meta import Meta + logger = logging.getLogger(__name__) @@ -145,29 +153,6 @@ def create_single_attachment( ) -def set_problem_list_item_category(condition: Condition) -> Condition: - """Set the category of a FHIR Condition to problem-list-item. - - Sets the category field of a FHIR Condition resource to indicate it is a problem list item. - This is commonly used to distinguish conditions that are part of the patient's active - problem list from other types of conditions (e.g. encounter-diagnosis). - - Args: - condition: The FHIR Condition resource to modify - - Returns: - Condition: The modified FHIR Condition resource with problem-list-item category set - """ - condition.category = [ - create_single_codeable_concept( - code="problem-list-item", - display="Problem List Item", - system="http://terminology.hl7.org/CodeSystem/condition-category", - ) - ] - return condition - - def create_condition( subject: str, clinical_status: str = "active", @@ -327,6 +312,133 @@ def create_document_reference( return document_reference +def set_condition_category(condition: Condition, category: str) -> Condition: + """ + Set the category of a FHIR Condition to either 'problem-list-item' or 'encounter-diagnosis'. + + Args: + condition: The FHIR Condition resource to modify + category: The category to set. Must be 'problem-list-item' or 'encounter-diagnosis'. + + Returns: + Condition: The modified FHIR Condition resource with the specified category set + + Raises: + ValueError: If the category is not one of the allowed values. + """ + allowed_categories = { + "problem-list-item": { + "code": "problem-list-item", + "display": "Problem List Item", + }, + "encounter-diagnosis": { + "code": "encounter-diagnosis", + "display": "Encounter Diagnosis", + }, + } + if category not in allowed_categories: + raise ValueError( + f"Invalid category '{category}'. Must be one of: {list(allowed_categories.keys())}" + ) + + cat_info = allowed_categories[category] + condition.category = [ + create_single_codeable_concept( + code=cat_info["code"], + display=cat_info["display"], + system="http://terminology.hl7.org/CodeSystem/condition-category", + ) + ] + return condition + + +def add_provenance_metadata( + resource: Resource, + source: str, + tag_code: Optional[str] = None, + tag_display: Optional[str] = None, +) -> Resource: + """Add provenance metadata to a FHIR resource. + + Adds source system identifier, timestamp, and optional processing tags to track + data lineage and transformations for audit trails. + + Args: + resource: The FHIR resource to annotate + source: Name of the source system (e.g., "epic", "cerner") + tag_code: Optional tag code for processing operations (e.g., "aggregated", "deduplicated") + tag_display: Optional display text for the tag + + Returns: + Resource: The resource with added provenance metadata + + Example: + >>> condition = create_condition(subject="Patient/123", code="E11.9") + >>> condition = add_provenance_metadata(condition, "epic", "aggregated", "Aggregated from source") + """ + if not resource.meta: + resource.meta = Meta() + + # Add source system identifier + resource.meta.source = f"urn:healthchain:source:{source}" + + # Update timestamp + resource.meta.lastUpdated = datetime.datetime.now(datetime.timezone.utc).isoformat() + + # Add processing tag if provided + if tag_code: + if not resource.meta.tag: + resource.meta.tag = [] + + resource.meta.tag.append( + Coding( + system="https://dotimplement.github.io/HealthChain/fhir/tags", + code=tag_code, + display=tag_display or tag_code, + ) + ) + + return resource + + +def add_coding_to_codeable_concept( + codeable_concept: CodeableConcept, + code: str, + system: str, + display: Optional[str] = None, +) -> CodeableConcept: + """Add a coding to an existing CodeableConcept. + + Useful for adding standardized codes (e.g., SNOMED CT) to resources that already + have codes from other systems (e.g., ICD-10). + + Args: + codeable_concept: The CodeableConcept to add coding to + code: The code value from the code system + system: The code system URI + display: Optional display text for the code + + Returns: + CodeableConcept: The updated CodeableConcept with the new coding added + + Example: + >>> # Add SNOMED CT code to a condition that has ICD-10 + >>> condition_code = condition.code + >>> condition_code = add_coding_to_codeable_concept( + ... condition_code, + ... code="44054006", + ... system="http://snomed.info/sct", + ... display="Type 2 diabetes mellitus" + ... ) + """ + if not codeable_concept.coding: + codeable_concept.coding = [] + + codeable_concept.coding.append(Coding(system=system, code=code, display=display)) + + return codeable_concept + + def read_content_attachment( document_reference: DocumentReference, include_data: bool = True, diff --git a/healthchain/io/adapters/cdaadapter.py b/healthchain/io/adapters/cdaadapter.py index cb56e5af..8271f52e 100644 --- a/healthchain/io/adapters/cdaadapter.py +++ b/healthchain/io/adapters/cdaadapter.py @@ -8,7 +8,7 @@ from healthchain.models.responses.cdaresponse import CdaResponse from healthchain.fhir import ( create_bundle, - set_problem_list_item_category, + set_condition_category, create_document_reference, read_content_attachment, ) @@ -111,7 +111,7 @@ def parse(self, cda_request: CdaRequest) -> Document: for resource in fhir_resources: if isinstance(resource, Condition): problem_list.append(resource) - set_problem_list_item_category(resource) + set_condition_category(resource, "problem-list-item") elif isinstance(resource, MedicationStatement): medication_list.append(resource) elif isinstance(resource, AllergyIntolerance): diff --git a/tests/fhir/test_bundle_helpers.py b/tests/fhir/test_bundle_helpers.py index 6dd8ee65..d82ba692 100644 --- a/tests/fhir/test_bundle_helpers.py +++ b/tests/fhir/test_bundle_helpers.py @@ -13,7 +13,9 @@ get_resources, set_resources, get_resource_type, + extract_resources, ) +from healthchain.fhir import merge_bundles, create_condition def test_create_bundle(): @@ -120,3 +122,96 @@ def test_set_resources_type_validation(empty_bundle, test_condition): ValueError, match="Resource must be of type MedicationStatement" ): set_resources(empty_bundle, [test_condition], "MedicationStatement") + + +def test_merge_bundles_basic_and_type(): + """Merging combines entries and sets bundle type to collection by default.""" + b1 = create_bundle("searchset") + add_resource(b1, create_condition(subject="Patient/123", code="E11.9")) + add_resource(b1, create_condition(subject="Patient/123", code="I10")) + + b2 = create_bundle("searchset") + add_resource(b2, create_condition(subject="Patient/123", code="J44.9")) + + merged = merge_bundles([b1, b2]) + assert merged.entry is not None and len(merged.entry) == 3 + assert merged.type == "collection" + + +def test_merge_bundles_deduplication_toggle(): + """Deduplication removes dups when True, keeps when False.""" + c1 = create_condition(subject="Patient/123", code="E11.9") + c1.id = "cond-1" + c1_dup = create_condition(subject="Patient/123", code="E11.9") + c1_dup.id = "cond-1" + + b1 = create_bundle("searchset") + add_resource(b1, c1) + b2 = create_bundle("searchset") + add_resource(b2, c1_dup) + + merged_dedupe = merge_bundles([b1, b2], deduplicate=True) + assert merged_dedupe.entry is not None and len(merged_dedupe.entry) == 1 + + merged_all = merge_bundles([b1, b2], deduplicate=False) + assert merged_all.entry is not None and len(merged_all.entry) == 2 + + +def test_merge_bundles_preserves_full_url_and_handles_empty_none(): + """Preserves fullUrl and handles empty/None bundles.""" + b1 = create_bundle("searchset") + cond = create_condition(subject="Patient/123", code="E11.9") + add_resource(b1, cond, full_url="http://example.com/Condition/123") + + b2 = create_bundle("searchset") # empty + + merged = merge_bundles([b1, b2, None]) + assert merged.entry is not None and len(merged.entry) == 1 + assert merged.entry[0].fullUrl == "http://example.com/Condition/123" + + +def test_merge_bundles_customizations(): + """Supports custom bundle_type and custom dedupe_key semantics.""" + # custom bundle_type + b = create_bundle("searchset") + add_resource(b, create_condition(subject="Patient/123", code="E11.9")) + merged_txn = merge_bundles([b], bundle_type="transaction") + assert merged_txn.type == "transaction" + + # custom dedupe_key (keep both because ids differ) + c1 = create_condition(subject="Patient/123", code="E11.9") + c1.id = "id-1" + c2 = create_condition(subject="Patient/123", code="E11.9") + c2.id = "id-2" + b1 = create_bundle("searchset") + add_resource(b1, c1) + b2 = create_bundle("searchset") + add_resource(b2, c2) + merged_custom_key = merge_bundles([b1, b2], deduplicate=True, dedupe_key="id") + assert merged_custom_key.entry is not None and len(merged_custom_key.entry) == 2 + + +def test_extract_resources_removes_and_returns(): + """extract_resources removes resources of a type and returns them.""" + b = create_bundle() + c1 = create_condition(subject="Patient/1", code="E11.9") + c2 = create_condition(subject="Patient/1", code="I10") + add_resource(b, c1) + add_resource(b, c2) + extracted = extract_resources(b, "Condition") + assert len(extracted) == 2 + assert b.entry == [] + + +def test_merge_bundles_dedupe_missing_key_keeps_all(): + """Resources missing dedupe_key should not be collapsed when deduplicate=True.""" + b1 = create_bundle("searchset") + b2 = create_bundle("searchset") + c1 = create_condition(subject="Patient/1", code="E11.9") + c1.id = None + c2 = create_condition(subject="Patient/1", code="E11.9") + c2.id = None + add_resource(b1, c1) + add_resource(b2, c2) + merged = merge_bundles([b1, b2], deduplicate=True, dedupe_key="id") + assert merged.entry is not None and len(merged.entry) == 2 diff --git a/tests/fhir/test_helpers.py b/tests/fhir/test_helpers.py index da0fb684..5da02ae1 100644 --- a/tests/fhir/test_helpers.py +++ b/tests/fhir/test_helpers.py @@ -9,16 +9,20 @@ from healthchain.fhir.helpers import ( + create_resource_from_dict, create_single_codeable_concept, create_single_reaction, create_condition, create_medication_statement, create_allergy_intolerance, - set_problem_list_item_category, + set_condition_category, create_single_attachment, create_document_reference, read_content_attachment, + add_provenance_metadata, + add_coding_to_codeable_concept, ) +import pytest def test_create_single_codeable_concept(): @@ -75,7 +79,7 @@ def test_create_condition(): assert condition.code.coding[0].display == "Test Condition" assert condition.code.coding[0].system == "http://test.system" - set_problem_list_item_category(condition) + set_condition_category(condition, "problem-list-item") assert condition.category[0].coding[0].code == "problem-list-item" @@ -245,3 +249,40 @@ def test_read_attachment_with_url(): assert attachments[0]["metadata"]["content_type"] == "application/pdf" assert attachments[0]["metadata"]["title"] == "Test URL Doc" assert attachments[0]["metadata"]["creation"] is not None + + +def test_create_resource_from_dict_success_and_failure(): + cond_dict = { + "id": "x", + "clinicalStatus": {"coding": [{"code": "active"}]}, + "subject": {"reference": "Patient/1"}, + } + ok = create_resource_from_dict(cond_dict, "Condition") + assert ok is not None + bad = create_resource_from_dict({}, "NotAType") + assert bad is None + + +def test_add_provenance_metadata_sets_source_and_tag(): + cond = create_condition(subject="Patient/1", code="E11.9") + updated = add_provenance_metadata(cond, "epic", "aggregated", "Aggregated") + assert updated.meta.source.endswith(":epic") + assert updated.meta.lastUpdated is not None + assert any(t.code == "aggregated" for t in (updated.meta.tag or [])) + + +def test_add_coding_to_codeable_concept_appends(): + cc = create_single_codeable_concept("123", "X") + updated = add_coding_to_codeable_concept(cc, "456", "http://sys", "Y") + assert any(c.code == "456" and c.system == "http://sys" for c in updated.coding) + + +def test_set_condition_category_invalid_raises(): + cond = create_condition(subject="Patient/1", code="E11.9") + with pytest.raises(ValueError): + set_condition_category(cond, "not-valid") + + +def test_create_condition_without_code_is_none(): + cond = create_condition(subject="Patient/1") + assert cond.code is None diff --git a/tests/pipeline/test_cdaadapter.py b/tests/pipeline/test_cdaadapter.py index d9fdaf5d..9f33b67d 100644 --- a/tests/pipeline/test_cdaadapter.py +++ b/tests/pipeline/test_cdaadapter.py @@ -16,11 +16,11 @@ def cda_adapter(): @patch("healthchain.io.adapters.cdaadapter.create_interop") @patch("healthchain.io.adapters.cdaadapter.create_document_reference") @patch("healthchain.io.adapters.cdaadapter.read_content_attachment") -@patch("healthchain.io.adapters.cdaadapter.set_problem_list_item_category") +@patch("healthchain.io.adapters.cdaadapter.set_condition_category") @patch("healthchain.io.adapters.cdaadapter.Document", autospec=True) def test_parse( mock_document_class, - mock_set_problem_category, + mock_set_condition_category, mock_read_content, mock_create_doc_ref, mock_create_interop, @@ -104,7 +104,9 @@ def test_parse( assert mock_doc.fhir.allergy_list == [test_allergy] # 6. Verify problem list items were categorized - mock_set_problem_category.assert_called_once_with(test_condition) + mock_set_condition_category.assert_called_once_with( + test_condition, "problem-list-item" + ) # 7. Verify document reference content was read mock_read_content.assert_called_once_with(note_doc_ref) From 1b57e4190f33188537805b291f54c2282ea2375d Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Fri, 10 Oct 2025 10:03:58 +0100 Subject: [PATCH 07/18] Make auth optional for public endpoints in fhirgateway --- healthchain/gateway/clients/fhir/base.py | 94 +++++++++------ .../gateway/clients/fhir/sync/client.py | 30 ++++- healthchain/gateway/fhir/aio.py | 30 ++++- healthchain/gateway/fhir/sync.py | 28 +++++ tests/gateway/test_auth.py | 108 +++++++++++++++++- tests/gateway/test_base_auth.py | 8 +- tests/gateway/test_fhir_gateway.py | 87 +++++++++++++- 7 files changed, 336 insertions(+), 49 deletions(-) diff --git a/healthchain/gateway/clients/fhir/base.py b/healthchain/gateway/clients/fhir/base.py index 45bd6c2f..99fadea5 100644 --- a/healthchain/gateway/clients/fhir/base.py +++ b/healthchain/gateway/clients/fhir/base.py @@ -32,27 +32,48 @@ def __init__( class FHIRAuthConfig(BaseModel): """Configuration for FHIR server authentication.""" - # OAuth2 settings - client_id: str + # Connection settings + base_url: str + timeout: int = 30 + verify_ssl: bool = True + + # OAuth2 settings (optional - for authenticated endpoints) + client_id: Optional[str] = None client_secret: Optional[str] = None # Client secret string for standard flow client_secret_path: Optional[str] = ( None # Path to private key file for JWT assertion ) - token_url: str + token_url: Optional[str] = None scope: Optional[str] = "system/*.read system/*.write" audience: Optional[str] = None use_jwt_assertion: bool = False # Use JWT client assertion (Epic/SMART style) - # Connection settings - base_url: str - timeout: int = 30 - verify_ssl: bool = True + @property + def requires_auth(self) -> bool: + """ + Auto-detect if authentication is needed based on parameters. + + Returns: + True if any auth parameters are present, False for public endpoints + """ + return bool(self.client_id or self.token_url) def model_post_init(self, __context) -> None: - """Validate that exactly one of client_secret or client_secret_path is provided.""" + """Validate auth configuration if auth parameters are present.""" + # If no auth params, this is a public endpoint - skip validation + if not self.requires_auth: + return + + # If auth is required, validate configuration + if not self.client_id: + raise ValueError("client_id is required when using authentication") + + if not self.token_url: + raise ValueError("token_url is required when using authentication") + if not self.client_secret and not self.client_secret_path: raise ValueError( - "Either client_secret or client_secret_path must be provided" + "Either client_secret or client_secret_path must be provided for authentication" ) if self.client_secret and self.client_secret_path: @@ -328,17 +349,29 @@ def parse_fhir_auth_connection_string(connection_string: str) -> FHIRAuthConfig: """ Parse a FHIR connection string into authentication configuration. - Format: fhir://hostname:port/path?client_id=xxx&client_secret=xxx&token_url=xxx&scope=xxx - Or for JWT: fhir://hostname:port/path?client_id=xxx&client_secret_path=xxx&token_url=xxx&use_jwt_assertion=true + Supports both authenticated and unauthenticated (public) endpoints: + - Authenticated: fhir://hostname/path?client_id=xxx&client_secret=xxx&token_url=xxx + - Public: fhir://hostname/path (no auth parameters) Args: - connection_string: FHIR connection string with OAuth2 credentials + connection_string: FHIR connection string with optional OAuth2 credentials Returns: FHIRAuthConfig with parsed settings Raises: - ValueError: If connection string is invalid or missing required parameters + ValueError: If connection string is invalid + + Examples: + # Authenticated endpoint + config = parse_fhir_auth_connection_string( + "fhir://epic.com/api/FHIR/R4?client_id=app&client_secret=secret&token_url=https://epic.com/token" + ) + + # Public endpoint (no auth) + config = parse_fhir_auth_connection_string( + "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" + ) """ import urllib.parse @@ -348,35 +381,30 @@ def parse_fhir_auth_connection_string(connection_string: str) -> FHIRAuthConfig: parsed = urllib.parse.urlparse(connection_string) params = dict(urllib.parse.parse_qsl(parsed.query)) - # Validate required parameters - required_params = ["client_id", "token_url"] - missing_params = [param for param in required_params if param not in params] - - if missing_params: - raise ValueError(f"Missing required parameters: {missing_params}") + # Build base URL + base_url = f"https://{parsed.netloc}{parsed.path}" - # Check that exactly one of client_secret or client_secret_path is provided + # Auto-detect if auth is needed based on parameter presence + has_client_id = "client_id" in params + has_token_url = "token_url" in params has_secret = "client_secret" in params has_secret_path = "client_secret_path" in params - if not has_secret and not has_secret_path: - raise ValueError( - "Either 'client_secret' or 'client_secret_path' parameter must be provided" - ) - - if has_secret and has_secret_path: - raise ValueError( - "Cannot provide both 'client_secret' and 'client_secret_path' parameters" + # If no auth params at all, this is a public endpoint + if not any([has_client_id, has_token_url, has_secret, has_secret_path]): + return FHIRAuthConfig( + base_url=base_url, + timeout=int(params.get("timeout", 30)), + verify_ssl=params.get("verify_ssl", "true").lower() == "true", ) - # Build base URL - base_url = f"https://{parsed.netloc}{parsed.path}" - + # If any auth param is present, validate complete auth config + # FHIRAuthConfig.model_post_init will handle validation return FHIRAuthConfig( - client_id=params["client_id"], + client_id=params.get("client_id"), client_secret=params.get("client_secret"), client_secret_path=params.get("client_secret_path"), - token_url=params["token_url"], + token_url=params.get("token_url"), scope=params.get("scope", "system/*.read system/*.write"), audience=params.get("audience"), base_url=base_url, diff --git a/healthchain/gateway/clients/fhir/sync/client.py b/healthchain/gateway/clients/fhir/sync/client.py index 6b0ff16d..5d92d41c 100644 --- a/healthchain/gateway/clients/fhir/sync/client.py +++ b/healthchain/gateway/clients/fhir/sync/client.py @@ -30,15 +30,24 @@ def __init__( **kwargs, ): """ - Initialize the FHIR client with OAuth2.0 authentication. + Initialize the FHIR client with optional OAuth2.0 authentication. + + Supports both authenticated and public FHIR endpoints. + Authentication is auto-detected based on auth_config.requires_auth. Args: - auth_config: OAuth2.0 authentication configuration + auth_config: Authentication configuration (auth optional for public endpoints) limits: httpx connection limits for pooling **kwargs: Additional parameters passed to httpx.Client """ super().__init__(auth_config) - self.token_manager = OAuth2TokenManager(auth_config.to_oauth2_config()) + + # Only create token manager if authentication is required + self.token_manager = ( + OAuth2TokenManager(auth_config.to_oauth2_config()) + if auth_config.requires_auth + else None + ) # Create httpx client with connection pooling and additional kwargs client_kwargs = {"timeout": self.timeout, "verify": self.verify_ssl} @@ -63,10 +72,19 @@ def close(self): self.client.close() def _get_headers(self) -> Dict[str, str]: - """Get headers with fresh OAuth2.0 token.""" + """ + Get headers with optional OAuth2.0 token. + + For authenticated endpoints, includes Authorization header. + For public endpoints, returns base headers only. + """ headers = self.base_headers.copy() - token = self.token_manager.get_access_token() - headers["Authorization"] = f"Bearer {token}" + + # Only add authorization header if authentication is required + if self.token_manager is not None: + token = self.token_manager.get_access_token() + headers["Authorization"] = f"Bearer {token}" + return headers def capabilities(self) -> CapabilityStatement: diff --git a/healthchain/gateway/fhir/aio.py b/healthchain/gateway/fhir/aio.py index ef150688..6122ff7e 100644 --- a/healthchain/gateway/fhir/aio.py +++ b/healthchain/gateway/fhir/aio.py @@ -12,6 +12,7 @@ from healthchain.gateway.fhir.errors import FHIRErrorHandler from healthchain.gateway.fhir.base import BaseFHIRGateway from healthchain.gateway.events.fhir import create_fhir_event +from healthchain.fhir import add_provenance_metadata logger = logging.getLogger(__name__) @@ -170,6 +171,8 @@ async def search( resource_type: Type[Resource], params: Dict[str, Any] = None, source: str = None, + add_provenance: bool = False, + provenance_tag: str = None, ) -> Bundle: """ Search for FHIR resources. @@ -178,6 +181,8 @@ async def search( resource_type: The FHIR resource type class params: Search parameters (e.g., {"name": "Smith", "active": "true"}) source: Source name to search in (uses first available if None) + add_provenance: If True, automatically add provenance metadata to resources + provenance_tag: Optional tag code for provenance (e.g., "aggregated", "transformed") Returns: Bundle containing search results @@ -187,11 +192,17 @@ async def search( FHIRConnectionError: If connection fails Example: - # Search for patients by name + # Basic search bundle = await fhir_gateway.search(Patient, {"name": "Smith"}, "epic") - for entry in bundle.entry or []: - patient = entry.resource - print(f"Found patient: {patient.name[0].family}") + + # Search with automatic provenance + bundle = await fhir_gateway.search( + Condition, + {"patient": "123"}, + "epic", + add_provenance=True, + provenance_tag="aggregated" + ) """ bundle = await self._execute_with_client( "search", @@ -201,6 +212,17 @@ async def search( client_kwargs={"params": params}, ) + if add_provenance and bundle.entry: + source_name = source or next(iter(self.connection_manager.sources.keys())) + for entry in bundle.entry: + if entry.resource: + entry.resource = add_provenance_metadata( + entry.resource, + source_name, + provenance_tag, + provenance_tag.capitalize() if provenance_tag else None, + ) + # Emit search event with result count type_name = resource_type.__resource_type__ event_data = { diff --git a/healthchain/gateway/fhir/sync.py b/healthchain/gateway/fhir/sync.py index 0c01d9d5..ade5753d 100644 --- a/healthchain/gateway/fhir/sync.py +++ b/healthchain/gateway/fhir/sync.py @@ -10,6 +10,7 @@ from healthchain.gateway.clients.fhir.sync.connection import FHIRConnectionManager from healthchain.gateway.fhir.base import BaseFHIRGateway from healthchain.gateway.fhir.errors import FHIRErrorHandler +from healthchain.fhir import add_provenance_metadata logger = logging.getLogger(__name__) @@ -232,6 +233,8 @@ def search( resource_type: Type[Resource], params: Dict[str, Any] = None, source: str = None, + add_provenance: bool = False, + provenance_tag: str = None, ) -> Bundle: """ Search for FHIR resources (sync version). @@ -240,12 +243,24 @@ def search( resource_type: The FHIR resource type class params: Search parameters (e.g., {"name": "Smith", "active": "true"}) source: Source name to search in (uses first available if None) + add_provenance: If True, automatically add provenance metadata to resources + provenance_tag: Optional tag code for provenance (e.g., "aggregated", "transformed") Returns: Bundle containing search results Example: + # Basic search bundle = gateway.search(Patient, {"name": "Smith"}, "epic") + + # Search with automatic provenance + bundle = gateway.search( + Condition, + {"patient": "123"}, + "epic", + add_provenance=True, + provenance_tag="aggregated" + ) """ bundle = self._execute_with_client( @@ -254,6 +269,19 @@ def search( resource_type=resource_type, client_args=(resource_type, params), ) + + # Add provenance metadata if requested + if add_provenance and bundle.entry: + source_name = source or next(iter(self.connection_manager.sources.keys())) + for entry in bundle.entry: + if entry.resource: + entry.resource = add_provenance_metadata( + entry.resource, + source_name, + provenance_tag, + provenance_tag.capitalize() if provenance_tag else None, + ) + type_name = resource_type.__resource_type__ result_count = len(bundle.entry) if bundle.entry else 0 logger.info( diff --git a/tests/gateway/test_auth.py b/tests/gateway/test_auth.py index 280efe89..0624b454 100644 --- a/tests/gateway/test_auth.py +++ b/tests/gateway/test_auth.py @@ -15,6 +15,11 @@ TokenInfo, OAuth2TokenManager, ) +from healthchain.gateway.clients.fhir.base import ( + FHIRAuthConfig, + parse_fhir_auth_connection_string, +) +from healthchain.gateway.clients.fhir.sync.client import FHIRClient @pytest.fixture @@ -231,7 +236,6 @@ def test_oauth2_token_manager_thread_safety(): # Mock the token refresh to track calls refresh_calls = [] - token_manager._refresh_token def tracked_refresh(): refresh_calls.append(time.time()) @@ -347,3 +351,105 @@ def test_sync_vs_async_token_manager_distinction(): # Method signatures should be different assert not inspect.iscoroutinefunction(sync_manager.get_access_token) assert inspect.iscoroutinefunction(async_manager.get_access_token) + + +def test_public_endpoint_mode_behaviors(): + """Public endpoint: parse config, no auth required, no token, no Authorization header.""" + connection_string = ( + "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" + ) + + config = parse_fhir_auth_connection_string(connection_string) + + assert ( + config.base_url + == "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" + ) + assert config.requires_auth is False + + client = FHIRClient(auth_config=config) + assert client.token_manager is None + + headers = client._get_headers() + assert "Authorization" not in headers + assert headers["Accept"] == "application/fhir+json" + assert headers["Content-Type"] == "application/fhir+json" + + +def test_parse_connection_string_with_auth(): + """Connection string with auth params creates authenticated config.""" + connection_string = ( + "fhir://epic.com/api/FHIR/R4" + "?client_id=test_app" + "&client_secret=test_secret" + "&token_url=https://epic.com/oauth2/token" + ) + + config = parse_fhir_auth_connection_string(connection_string) + + assert config.base_url == "https://epic.com/api/FHIR/R4" + assert config.requires_auth is True + assert config.client_id == "test_app" + assert config.client_secret == "test_secret" + assert config.token_url == "https://epic.com/oauth2/token" + + +@pytest.mark.parametrize( + "config_kwargs,error", + [ + ( + {"base_url": "https://epic.com/api/FHIR/R4", "client_id": "test_app"}, + "token_url is required", + ), + ( + { + "base_url": "https://epic.com/api/FHIR/R4", + "client_id": "test_app", + "token_url": "https://epic.com/token", + }, + "Either client_secret or client_secret_path", + ), + ( + { + "base_url": "https://epic.com/api/FHIR/R4", + "client_id": "test_app", + "client_secret": "secret", + "token_url": "https://epic.com/token", + "use_jwt_assertion": True, + }, + "requires client_secret_path", + ), + ], +) +def test_fhir_auth_config_validation_rules(config_kwargs, error): + """FHIRAuthConfig enforces validation rules for authenticated configs.""" + with pytest.raises(ValueError, match=error): + FHIRAuthConfig(**config_kwargs) + + +def test_to_connection_string_roundtrip(): + """FHIRAuthConfig serializes to and parses from connection string consistently.""" + cfg = FHIRAuthConfig( + base_url="https://epic.com/api/FHIR/R4", + client_id="app", + client_secret="secret", + token_url="https://epic.com/token", + scope="system/*.read", + timeout=45, + verify_ssl=False, + ) + conn = cfg.to_connection_string() + parsed = parse_fhir_auth_connection_string(conn) + assert parsed.base_url == cfg.base_url + assert parsed.client_id == cfg.client_id + assert parsed.token_url == cfg.token_url + assert parsed.timeout == 45 + assert parsed.verify_ssl is False + + +def test_from_env_missing_vars_raises(monkeypatch): + """from_env raises when required env vars are missing.""" + for key in ["EPIC_CLIENT_ID", "EPIC_TOKEN_URL", "EPIC_BASE_URL"]: + monkeypatch.delenv(key, raising=False) + with pytest.raises(ValueError, match="Missing required environment variables"): + FHIRAuthConfig.from_env("EPIC") diff --git a/tests/gateway/test_base_auth.py b/tests/gateway/test_base_auth.py index 4d883a85..62bc3a2c 100644 --- a/tests/gateway/test_base_auth.py +++ b/tests/gateway/test_base_auth.py @@ -223,23 +223,23 @@ def test_fhir_auth_config_to_oauth2_config_conversion(): # Missing required params ( "fhir://example.com/fhir/R4?client_id=test_client", - "Missing required parameters", + "token_url is required", ), # Missing secrets ( "fhir://example.com/fhir/R4?client_id=test&token_url=https://example.com/token", - "Either 'client_secret' or 'client_secret_path' parameter must be provided", + "Either client_secret or client_secret_path must be provided", ), # Both secrets ( "fhir://example.com/fhir/R4?client_id=test&client_secret=secret&client_secret_path=/path&token_url=https://example.com/token", - "Cannot provide both 'client_secret' and 'client_secret_path' parameters", + "Cannot provide both client_secret and client_secret_path", ), ], ) def test_connection_string_parsing_validation(connection_string, expected_error): """Connection string parsing enforces validation rules.""" - with pytest.raises(ValueError, match=expected_error): + with pytest.raises(Exception, match=expected_error): parse_fhir_auth_connection_string(connection_string) diff --git a/tests/gateway/test_fhir_gateway.py b/tests/gateway/test_fhir_gateway.py index cef091cf..a009b3cb 100644 --- a/tests/gateway/test_fhir_gateway.py +++ b/tests/gateway/test_fhir_gateway.py @@ -3,10 +3,12 @@ from typing import Dict, Any from fhir.resources.patient import Patient -from fhir.resources.bundle import Bundle +from fhir.resources.bundle import Bundle, BundleEntry +from fhir.resources.condition import Condition from healthchain.gateway.fhir import FHIRGateway from healthchain.gateway.fhir.errors import FHIRConnectionError +from healthchain.fhir import create_condition class MockConnectionManager: @@ -199,3 +201,86 @@ def perform_read(): # Verify concurrent access was tracked assert client_usage_count == 5 + + +def test_search_with_auto_provenance(): + """Gateway.search automatically adds provenance metadata when requested.""" + gateway = FHIRGateway() + gateway.add_source("test_source", "fhir://test.example.com/fhir") + + condition1 = create_condition( + subject="Patient/123", code="E11.9", display="Type 2 diabetes" + ) + condition2 = create_condition( + subject="Patient/123", code="I10", display="Hypertension" + ) + + mock_bundle = Bundle( + type="searchset", + entry=[ + BundleEntry(resource=condition1), + BundleEntry(resource=condition2), + ], + ) + + mock_client = Mock() + mock_client.search.return_value = mock_bundle + + with patch.object(gateway, "get_client", return_value=mock_client): + result = gateway.search( + Condition, + {"patient": "Patient/123"}, + "test_source", + add_provenance=True, + provenance_tag="aggregated", + ) + + assert result.entry is not None + assert len(result.entry) == 2 + first_condition = result.entry[0].resource + assert first_condition.meta is not None + assert first_condition.meta.source == "urn:healthchain:source:test_source" + assert first_condition.meta.lastUpdated is not None + assert first_condition.meta.tag[0].code == "aggregated" + assert first_condition.meta.tag[0].display == "Aggregated" + + +def test_search_without_auto_provenance(): + """Gateway.search without auto-provenance leaves resources unchanged.""" + gateway = FHIRGateway() + gateway.add_source("test_source", "fhir://test.example.com/fhir") + + condition = create_condition(subject="Patient/123", code="E11.9") + condition.meta = None + + mock_bundle = Bundle(type="searchset", entry=[BundleEntry(resource=condition)]) + mock_client = Mock() + mock_client.search.return_value = mock_bundle + + with patch.object(gateway, "get_client", return_value=mock_client): + result = gateway.search( + Condition, {"patient": "Patient/123"}, "test_source", add_provenance=False + ) + assert result.entry is not None + assert len(result.entry) == 1 + assert result.entry[0].resource.meta is None + + +def test_search_with_empty_bundle(): + """Gateway.search with auto-provenance handles empty bundles gracefully.""" + gateway = FHIRGateway() + gateway.add_source("test_source", "fhir://test.example.com/fhir") + + mock_bundle = Bundle(type="searchset", entry=None) + mock_client = Mock() + mock_client.search.return_value = mock_bundle + + with patch.object(gateway, "get_client", return_value=mock_client): + result = gateway.search( + Condition, + {"patient": "Patient/123"}, + "test_source", + add_provenance=True, + provenance_tag="aggregated", + ) + assert result.entry is None From f3c2a7e2b21b5195ceeb88cac8bf5f7c4084440f Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Fri, 10 Oct 2025 11:29:37 +0100 Subject: [PATCH 08/18] Add convenience extractor and accessors for metadata and patient resources to Document --- docs/reference/pipeline/data_container.md | 14 ++ healthchain/io/containers/document.py | 176 +++++++++++++++----- tests/containers/test_document.py | 192 ++++++++++++++++++++++ 3 files changed, 345 insertions(+), 37 deletions(-) diff --git a/docs/reference/pipeline/data_container.md b/docs/reference/pipeline/data_container.md index be4c2f77..437ccb03 100644 --- a/docs/reference/pipeline/data_container.md +++ b/docs/reference/pipeline/data_container.md @@ -41,6 +41,7 @@ The FHIR component serves as a comprehensive manager for FHIR resources, providi - Automatic `Bundle` creation and management - Resource type validation - Convenient access to common clinical data lists + - Automatic extraction of `OperationOutcome` and `Provenance` resources into `doc.fhir.operation_outcomes` and `doc.fhir.provenances` (removed from bundle) **Clinical Data Lists:** @@ -48,6 +49,13 @@ The FHIR component serves as a comprehensive manager for FHIR resources, providi - `medication_list`: List of `MedicationStatement` resources - `allergy_list`: List of `AllergyIntolerance` resources +**Convenience Accessors:** + +- `patient`: First Patient resource in the bundle, or `None` +- `patients`: List of Patient resources (patients remain in the bundle) +- `operation_outcomes`: List of OperationOutcome resources (extracted) +- `provenances`: List of Provenance resources (extracted) + **Document Reference Management:** - Document relationship tracking (parent/child/sibling) @@ -110,6 +118,12 @@ prefetch = { doc.fhir.prefetch_resources = prefetch conditions = doc.fhir.get_prefetch_resources("Condition") +# Access extracted and convenience data +doc.fhir.operation_outcomes # extracted +doc.fhir.provenances # extracted +doc.fhir.patient # convenience accessor, remains in bundle +doc.fhir.patients # convenience accessor, remains in bundle + ``` **Technical Notes:** diff --git a/healthchain/io/containers/document.py b/healthchain/io/containers/document.py index 9bbf2690..c28d5ce0 100644 --- a/healthchain/io/containers/document.py +++ b/healthchain/io/containers/document.py @@ -1,4 +1,5 @@ import logging + from dataclasses import dataclass, field from typing import Any, Dict, Iterator, List, Optional, Union from uuid import uuid4 @@ -13,17 +14,22 @@ from fhir.resources.resource import Resource from fhir.resources.reference import Reference from fhir.resources.documentreference import DocumentReferenceRelatesTo +from fhir.resources.operationoutcome import OperationOutcome +from fhir.resources.provenance import Provenance +from fhir.resources.patient import Patient from healthchain.io.containers.base import BaseDocument from healthchain.models.responses import Action, Card from healthchain.fhir import ( create_bundle, + add_resource, get_resources, set_resources, + extract_resources, create_single_codeable_concept, read_content_attachment, create_condition, - set_problem_list_item_category, + set_condition_category, ) logger = logging.getLogger(__name__) @@ -216,6 +222,8 @@ class FhirData: such as a problem list, medication list, and allergy list. These collections are accessible as properties of the class instance. + TODO: make problem, meds, allergy lists configurable + Properties: bundle: The FHIR bundle containing resources prefetch_resources: Dictionary of CDS Hooks prefetch resources @@ -237,6 +245,8 @@ class FhirData: _prefetch_resources: Optional[Dict[str, Resource]] = None _bundle: Optional[Bundle] = None + _operation_outcomes: List[OperationOutcome] = field(default_factory=list) + _provenances: List[Provenance] = field(default_factory=list) @property def bundle(self) -> Optional[Bundle]: @@ -261,6 +271,44 @@ def prefetch_resources(self, resources: Dict[str, Resource]): """Sets the prefetch FHIR resources from CDS service requests.""" self._prefetch_resources = resources + @property + def operation_outcomes(self) -> List[OperationOutcome]: + """Get extracted OperationOutcome resources separated from the bundle.""" + return self._operation_outcomes + + @operation_outcomes.setter + def operation_outcomes(self, outcomes: List[OperationOutcome]) -> None: + self._operation_outcomes = outcomes or [] + + @property + def provenances(self) -> List[Provenance]: + """Get extracted Provenance resources separated from the bundle.""" + return self._provenances + + @provenances.setter + def provenances(self, provenances: List[Provenance]) -> None: + self._provenances = provenances or [] + + @property + def patient(self) -> Optional[Patient]: + """Get the first Patient resource from the bundle (convenience accessor). + + Returns None if no Patient resources are present in the bundle. + For bundles with multiple patients, use the patients property instead. + """ + patients = self.get_resources("Patient") + return patients[0] if patients else None + + @property + def patients(self) -> List[Patient]: + """Get all Patient resources from the bundle. + + Most bundles contain a single patient, but some queries (e.g., family history, + population queries) may return multiple patients. This property provides access + to all Patient resources without removing them from the bundle. + """ + return self.get_resources("Patient") + @property def problem_list(self) -> List[Condition]: """Get problem list from the bundle. @@ -574,40 +622,40 @@ def actions(self, actions: Union[List[Action], List[Dict[str, Any]]]) -> None: @dataclass class Document(BaseDocument): """ - A document container that extends BaseDocument with rich annotation capabilities. + Main document container for processing textual and clinical data in HealthChain. - This class extends BaseDocument to handle textual document data and annotations from - various sources. It serves as the main data structure passed through processing pipelines, - accumulating annotations and analysis results at each step. + The Document class is the primary structure used throughout annotation and analytics + pipelines, accumulating transformations, extractions, and results from each stage. It + seamlessly integrates raw text, NLP annotations, FHIR resources, clinical decision + support (CDS) results, and ML model outputs in one object. - The Document class provides a comprehensive representation that can include: - - Raw text and basic tokenization - - NLP annotations (tokens, entities, embeddings, spaCy docs) - - FHIR resources through the fhir property (problem list, medication list, allergy list) - - Clinical decision support results through the cds property (cards, actions) - - ML model outputs (Hugging Face, LangChain) + Features: + - Accepts text, FHIR Bundles/resources, or lists of FHIR resources as input. + - Provides basic tokenization and supports integration with NLP models (spaCy, transformers). + - Stores and manipulates clinical FHIR data via the .fhir property (access to bundles, problem lists, meds, allergies, etc.). + - Encapsulates CDS Hooks-style decision support cards and suggested actions via the .cds property. + - Stores outputs from external ML/LLM models: HuggingFace, LangChain, etc. Attributes: - nlp (NlpAnnotations): Container for NLP-related annotations like tokens and entities - fhir (FhirData): Container for FHIR resources and CDS context - cds (CdsAnnotations): Container for clinical decision support results - models (ModelOutputs): Container for ML model outputs - - Example: + nlp (NlpAnnotations): NLP output (tokens, entities, embeddings, spaCy doc) + fhir (FhirData): FHIR resources and context (problem list, medication, allergy, etc.) + cds (CdsAnnotations): Clinical decision support (cards and actions) + models (ModelOutputs): Results from ML/LLM models (HuggingFace, LangChain, etc.) + text (str): The text content of the document (if available). + data: The original input supplied (raw text, Bundle, resource, or list of resources) + + Usage example: >>> doc = Document(data="Patient has hypertension") - >>> # Add set continuity of care lists + >>> doc.nlp._tokens + ['Patient', 'has', 'hypertension'] >>> doc.fhir.problem_list = [Condition(...)] - >>> doc.fhir.medication_list = [MedicationStatement(...)] - >>> # Add FHIR resources - >>> doc.fhir.add_resources([Patient(...)], "Patient") - >>> # Add a document with a parent - >>> parent_id = doc.fhir.add_document(DocumentReference(...), parent_id="123") - >>> # Add CDS results >>> doc.cds.cards = [Card(...)] - >>> doc.cds.actions = [Action(...)] + >>> doc.models.huggingface_results = ... + >>> for token in doc: + ... print(token) Inherits from: - BaseDocument: Provides base document functionality and raw text storage + BaseDocument """ _nlp: NlpAnnotations = field(default_factory=NlpAnnotations) @@ -632,15 +680,54 @@ def models(self) -> ModelOutputs: return self._models def __post_init__(self): - """Initialize the document with basic tokenization if needed.""" + """ + Post-initialization setup to process textual or FHIR data. + + - If input data is a FHIR Bundle, stores it and extracts OperationOutcome and Provenance resources. + - If input data is a list of FHIR resources, wraps them in a Bundle. + - For text input, sets .text field accordingly. + - Performs basic whitespace tokenization if necessary. + """ super().__post_init__() - self.text = self.data - if not self._nlp._tokens: + + # Handle FHIR Bundle data + if isinstance(self.data, Bundle): + self._fhir._bundle = self.data + + # Extract OperationOutcome resources (operation results/errors) + outcomes = extract_resources(self._fhir._bundle, "OperationOutcome") + if outcomes: + self._fhir._operation_outcomes = outcomes + + # Extract Provenance resources (data lineage/origin) + provenances = extract_resources(self._fhir._bundle, "Provenance") + if provenances: + self._fhir._provenances = provenances + + self.text = "" # No text content for bundle-only documents + # Handle list of FHIR resources + elif ( + isinstance(self.data, list) + and self.data + and isinstance(self.data[0], Resource) + ): + self._fhir._bundle = create_bundle() + for resource in self.data: + add_resource(self._fhir._bundle, resource) + self.text = "" # No text content for resource-only documents + else: + # Handle text data + self.text = self.data if isinstance(self.data, str) else str(self.data) + + if not self._nlp._tokens and self.text: self._nlp._tokens = self.text.split() # Basic tokenization if not provided def word_count(self) -> int: """ - Get the word count from the document's text. + Return the number of word tokens in the document. + + Returns: + int: The count of tokenized words in the document. """ return len(self._nlp._tokens) @@ -651,7 +738,7 @@ def update_problem_list_from_nlp( code_attribute: str = "cui", ): """ - Updates the document's problem list by extracting medical entities from NLP annotations. + Populate or update the problem list using entities extracted via NLP. This method looks for entities with associated medical codes and creates FHIR Condition resources from them. It supports a two-step process: @@ -663,15 +750,18 @@ def update_problem_list_from_nlp( 1. spaCy entities with extension attributes (e.g., ent._.cui) 2. Generic entities in the NLP annotations container (framework-agnostic) + TODO: make this more generic and support other resource types + Args: patient_ref: FHIR reference to the patient (default: "Patient/123") coding_system: Coding system URI for the conditions (default: SNOMED CT) code_attribute: Name of the attribute containing the medical code (default: "cui") - Note: - - Preserves any existing conditions in the problem list - - For non-spaCy entities, codes should be stored as keys in entity dictionaries - - Different code attributes: "cui", "snomed_id", "icd10", etc. + Notes: + - Preserves any existing problem list Conditions. + - Supports framework-agnostic extraction (spaCy and dict entities). + - For spaCy, looks for entity extension attribute (e.g. ent._.cui). + - For non-spaCy, expects codes as dict keys (ent["cui"], etc.). """ # Start with existing conditions to preserve them existing_conditions = self.fhir.problem_list.copy() @@ -699,7 +789,7 @@ def update_problem_list_from_nlp( display=ent.text, system=coding_system, ) - set_problem_list_item_category(condition) + set_condition_category(condition, "problem-list-item") logger.debug(f"Adding condition from spaCy: {condition.model_dump()}") new_conditions.append(condition) @@ -723,7 +813,7 @@ def update_problem_list_from_nlp( display=entity_text, system=coding_system, ) - set_problem_list_item_category(condition) + set_condition_category(condition, "problem-list-item") logger.debug( f"Adding condition from entities: {condition.model_dump()}" ) @@ -735,7 +825,19 @@ def update_problem_list_from_nlp( self.fhir.add_resources(all_conditions, "Condition", replace=True) def __iter__(self) -> Iterator[str]: + """ + Iterate through the document's tokens. + + Returns: + Iterator[str]: Iterator over the document tokens. + """ return iter(self._nlp._tokens) def __len__(self) -> int: + """ + Return the length of the document's text. + + Returns: + int: Character length of the document text. + """ return len(self.text) diff --git a/tests/containers/test_document.py b/tests/containers/test_document.py index 1051e8c0..9faa038f 100644 --- a/tests/containers/test_document.py +++ b/tests/containers/test_document.py @@ -1,5 +1,9 @@ +import pytest + from healthchain.io.containers.document import Document from unittest.mock import patch, MagicMock +from fhir.resources.bundle import Bundle +from healthchain.fhir import create_bundle, add_resource, create_condition def test_document_initialization(sample_document): @@ -68,6 +72,194 @@ def test_empty_document(): assert doc.word_count() == 0 +@pytest.mark.parametrize( + "data_builder, expect_bundle, expected_entries, expected_text", + [ + # bundle with two conditions + ( + lambda: ( + lambda b: ( + add_resource( + b, create_condition(subject="Patient/123", code="E11.9") + ), + add_resource( + b, create_condition(subject="Patient/123", code="I10") + ), + ) + and b + )(create_bundle("collection")), + True, + 2, + "", + ), + # resource list + ( + lambda: [ + create_condition(subject="Patient/123", code="E11.9"), + create_condition(subject="Patient/123", code="I10"), + ], + True, + 2, + "", + ), + # text only + (lambda: "Patient has hypertension", False, 0, "Patient has hypertension"), + # empty list + (lambda: [], None, 0, ""), + ], +) +def test_document_handles_various_data_inputs( + data_builder, expect_bundle, expected_entries, expected_text +): + """Document handles bundle, resource list, text-only, and empty list inputs.""" + data = data_builder() + doc = Document(data=data) + + if expect_bundle is True: + assert isinstance(doc.fhir.bundle, Bundle) + assert len(doc.fhir.bundle.entry) == expected_entries + assert doc.text == expected_text + elif expect_bundle is False: + assert doc.fhir.bundle is None + assert doc.text == expected_text + assert len(doc.nlp._tokens) > 0 + else: + # empty list case: either no bundle or empty bundle + assert doc.fhir.bundle is None or len(doc.fhir.bundle.entry) == 0 + + +def test_document_bundle_accessible_via_problem_list(): + """Document's problem_list accessor works with auto-set bundle.""" + bundle = create_bundle("collection") + add_resource(bundle, create_condition(subject="Patient/123", code="E11.9")) + + doc = Document(data=bundle) + + conditions = doc.fhir.problem_list + assert len(conditions) == 1 + assert conditions[0].code.coding[0].code == "E11.9" + + assert conditions[0].code.coding[0].code == "E11.9" + + +@pytest.mark.parametrize( + "num_outcomes, expected_outcome_count, expected_remaining_entries", + [ + (0, 0, 2), # no OperationOutcomes + (2, 2, 2), # outcomes extracted, conditions remain + ], +) +def test_document_operation_outcome_extraction( + num_outcomes, expected_outcome_count, expected_remaining_entries +): + from fhir.resources.operationoutcome import OperationOutcome, OperationOutcomeIssue + + bundle = create_bundle("collection") + add_resource(bundle, create_condition(subject="Patient/123", code="E11.9")) + add_resource(bundle, create_condition(subject="Patient/123", code="I10")) + + for i in range(num_outcomes): + add_resource( + bundle, + OperationOutcome( + issue=[ + OperationOutcomeIssue( + severity="information" if i == 0 else "warning", + code="informational" if i == 0 else "processing", + diagnostics=( + "Data retrieved from source A" + if i == 0 + else "Source B temporarily unavailable" + ), + ) + ] + ), + ) + + doc = Document(data=bundle) + + assert len(doc.fhir.operation_outcomes) == expected_outcome_count + assert len(doc.fhir.bundle.entry) == expected_remaining_entries + + +@pytest.mark.parametrize( + "num_provenances, expected_provenance_count, expected_remaining_entries", + [ + (0, 0, 2), # no Provenances + (2, 2, 2), # provenances extracted, conditions remain + ], +) +def test_document_provenance_extraction( + num_provenances, expected_provenance_count, expected_remaining_entries +): + """Document automatically extracts Provenance resources during initialization.""" + from fhir.resources.provenance import Provenance, ProvenanceAgent + from fhir.resources.reference import Reference + + bundle = create_bundle("collection") + add_resource(bundle, create_condition(subject="Patient/123", code="E11.9")) + add_resource(bundle, create_condition(subject="Patient/123", code="I10")) + + for i in range(num_provenances): + add_resource( + bundle, + Provenance( + target=[Reference(reference=f"Condition/{i}")], + recorded="2024-01-01T00:00:00Z", + agent=[ + ProvenanceAgent(who=Reference(reference=f"Organization/source-{i}")) + ], + ), + ) + + doc = Document(data=bundle) + + assert len(doc.fhir.provenances) == expected_provenance_count + assert len(doc.fhir.bundle.entry) == expected_remaining_entries + + +@pytest.mark.parametrize("num_patients", [0, 1, 2]) +def test_document_patient_convenience_properties_param(num_patients): + """Patient convenience accessors behave for 0, 1, 2 patients without extraction.""" + from fhir.resources.patient import Patient + from fhir.resources.humanname import HumanName + + bundle = create_bundle("collection") + + # Add patients + patients = [] + for i in range(num_patients): + patient = Patient( + id=f"patient-{i+1}", name=[HumanName(given=["John"], family=f"Fam{i+1}")] + ) + patients.append(patient) + add_resource(bundle, patient) + + # Add a condition referencing first patient if present + subject_ref = f"Patient/{patients[0].id}" if patients else "Patient/123" + add_resource(bundle, create_condition(subject=subject_ref, code="E11.9")) + + doc = Document(data=bundle) + + # Singular accessor + if num_patients >= 1: + assert doc.fhir.patient is not None + assert doc.fhir.patient.id == "patient-1" + else: + assert doc.fhir.patient is None + + # Plural accessor + assert len(doc.fhir.patients) == num_patients + + # Patients remain in bundle (no extraction) + bundle_patients = [ + e.resource + for e in doc.fhir.bundle.entry + if type(e.resource).__name__ == "Patient" + ] + assert len(bundle_patients) == num_patients + + @patch("healthchain.io.containers.document.Span") def test_update_problem_list_from_nlp(mock_span_class, test_empty_document): """Test updating problem list from NLP entities""" From 3ed3e4e5a16e728fe99cc0471ee3b45276ab4b32 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Fri, 10 Oct 2025 21:15:30 +0100 Subject: [PATCH 09/18] Update cookbook examples --- cookbook/data_aggregation.py | 114 +++++ cookbook/notereader_clinical_coding_fhir.py | 13 +- docs/assets/images/epicsandbox1.png | Bin 0 -> 170496 bytes docs/assets/images/epicsandbox2.png | Bin 0 -> 359878 bytes docs/assets/images/epicsandbox3.png | Bin 0 -> 43882 bytes docs/assets/images/epicsandbox4.png | Bin 0 -> 197328 bytes docs/assets/images/epicsandboxlogin.png | Bin 0 -> 272025 bytes docs/cookbook/clinical_coding.md | 22 +- docs/cookbook/data_aggregation.md | 480 ++++++++++++++++++++ docs/cookbook/index.md | 9 +- docs/cookbook/setup_fhir_sandboxes.md | 216 +++++++++ mkdocs.yml | 1 + 12 files changed, 833 insertions(+), 22 deletions(-) create mode 100644 cookbook/data_aggregation.py create mode 100644 docs/assets/images/epicsandbox1.png create mode 100644 docs/assets/images/epicsandbox2.png create mode 100644 docs/assets/images/epicsandbox3.png create mode 100644 docs/assets/images/epicsandbox4.png create mode 100644 docs/assets/images/epicsandboxlogin.png create mode 100644 docs/cookbook/data_aggregation.md create mode 100644 docs/cookbook/setup_fhir_sandboxes.md diff --git a/cookbook/data_aggregation.py b/cookbook/data_aggregation.py new file mode 100644 index 00000000..4dbe20e6 --- /dev/null +++ b/cookbook/data_aggregation.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +""" +Multi-Source FHIR Data Aggregation + +Demonstrates aggregating patient data from multiple FHIR sources with +simple pipeline processing and provenance tracking. + +Requirements: +- pip install healthchain + +Run: +- python data_aggregation.py +""" + +from typing import List + +from dotenv import load_dotenv + +from fhir.resources.bundle import Bundle +from fhir.resources.condition import Condition +from fhir.resources.annotation import Annotation + +from healthchain.gateway import FHIRGateway, HealthChainAPI +from healthchain.gateway.clients.fhir.base import FHIRAuthConfig +from healthchain.pipeline import Pipeline +from healthchain.io.containers import Document +from healthchain.fhir import merge_bundles + + +load_dotenv() + + +# Epic FHIR Sandbox - configure via environment, then build connection string +config = FHIRAuthConfig.from_env("EPIC") +EPIC_URL = config.to_connection_string() + +# Cerner Open Sandbox +CERNER_URL = "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" + + +def create_pipeline() -> Pipeline[Document]: + """Build simple pipeline for demo purposes.""" + pipeline = Pipeline[Document]() + + @pipeline.add_node + def deduplicate(doc: Document) -> Document: + """Remove duplicate conditions by resource ID.""" + conditions = doc.fhir.get_resources("Condition") + unique = list({c.id: c for c in conditions if c.id}.values()) + doc.fhir.add_resources(unique, "Condition", replace=True) + print(f"Deduplicated {len(unique)} conditions") + return doc + + @pipeline.add_node + def add_annotation(doc: Document) -> Document: + """Add a note to each Condition indicating pipeline processing.""" + conditions = doc.fhir.get_resources("Condition") + for condition in conditions: + note_text = "This resource has been processed by healthchain pipeline" + annotation = Annotation(text=note_text) + condition.note = (condition.note or []) + [annotation] + print(f"Added annotation to {len(conditions)} conditions") + return doc + + return pipeline + + +def create_app(): + # Initialize gateway and add sources + gateway = FHIRGateway() + gateway.add_source("epic", EPIC_URL) + gateway.add_source("cerner", CERNER_URL) + + pipeline = create_pipeline() + + @gateway.aggregate(Condition) + def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: + """Aggregate conditions for a patient from multiple sources""" + bundles = [] + for source in sources: + try: + bundle = gateway.search( + Condition, + {"patient": patient_id}, + source, + add_provenance=True, + provenance_tag="aggregated", + ) + bundles.append(bundle) + except Exception as e: + print(f"Error from {source}: {e}") + + # Merge bundles - OperationOutcome resources are automatically extracted + merged_bundle = merge_bundles(bundles, deduplicate=True) + + doc = Document(data=merged_bundle) + doc = pipeline(doc) + + # print([outcome.model_dump() for outcome in doc.fhir.operation_outcomes]) + + return doc.fhir.bundle + + app = HealthChainAPI() + app.register_gateway(gateway) + + return app + + +if __name__ == "__main__": + import uvicorn + + app = create_app() + uvicorn.run(app) + # Default: http://127.0.0.1:8000/ diff --git a/cookbook/notereader_clinical_coding_fhir.py b/cookbook/notereader_clinical_coding_fhir.py index 45af7f0a..c45ff2b5 100644 --- a/cookbook/notereader_clinical_coding_fhir.py +++ b/cookbook/notereader_clinical_coding_fhir.py @@ -13,7 +13,6 @@ - python notereader_clinical_coding_fhir.py # Demo and start server """ -import os import uvicorn from datetime import datetime, timezone @@ -26,6 +25,7 @@ from healthchain.fhir import create_document_reference from healthchain.gateway.api import HealthChainAPI from healthchain.gateway.fhir import FHIRGateway +from healthchain.gateway.clients.fhir.base import FHIRAuthConfig from healthchain.gateway.soap import NoteReaderService from healthchain.io import CdaAdapter, Document from healthchain.models import CdaRequest @@ -35,14 +35,9 @@ load_dotenv() - -BILLING_URL = ( - f"fhir://api.medplum.com/fhir/R4/" - f"?client_id={os.environ.get('MEDPLUM_CLIENT_ID')}" - f"&client_secret={os.environ.get('MEDPLUM_CLIENT_SECRET')}" - f"&token_url={os.environ.get('MEDPLUM_TOKEN_URL', 'https://api.medplum.com/oauth2/token')}" - f"&scope={os.environ.get('MEDPLUM_SCOPE', 'openid')}" -) +# Load configuration from environment variables +config = FHIRAuthConfig.from_env("MEDPLUM") +BILLING_URL = config.to_connection_string() def create_pipeline(): diff --git a/docs/assets/images/epicsandbox1.png b/docs/assets/images/epicsandbox1.png new file mode 100644 index 0000000000000000000000000000000000000000..66ea25f6e6fd1abf95d7bf96dc94903e2bbf2184 GIT binary patch literal 170496 zcmb5V1z23mwl0dh6C^kU53a#II0UxicySux)^Ezv3)ARuDFaVpTN3Imww8uG*tFv9#2`_d>s(D)@_Xs;uPsEJ`wB*I_? zdLn4b*B3<~hC<5a-z~xQ>k4T)7|0!a05Y>nLyvS-R{cSmjz6xYoTYHRz3dJ1?WJm28Cka zwjfY+GxqwXUgJ;F2m(TivuU68H46G75@fv$tcZpXB>UavZuMoJL<^EG{(F0rO&qdO z#SLXL8I_GtKeh|N*C0Yre&xL@gCr2+Yk_nnqJDo)du&?kXqXE4XBb97*CA+4V)8={(JT~5Pfw?S8=0XYl^~kpZDBb7=ywiqsUV60yDeuS_tGdr z6es|3_xtGO{&V7#Yy_LANvK`qGL*fmP2yR
wPVYpQsbSbD@+-J22?-Q82`F4h& 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´+e_hf1J_q2c$ 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៘%Uzj$ZaOOhXaD{4 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�^}#7={J+D_PDTCd+TemPi=+$SL9;tLKU4Gmxc=K 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 VgsTYbHX#52002ovPDHLkV1o0y!)O2i literal 0 HcmV?d00001 diff --git a/docs/assets/images/epicsandbox2.png b/docs/assets/images/epicsandbox2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea7443f54ef7203372c0d46ae75c9613c04ae19c GIT binary patch literal 359878 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 hu+RuT$nLrg_{Psu3A#f*F4&a~Ml4 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%0AI(X?Me)XNf{r>;4|nIJ zAdx?ZSp6da4!1QAhmE%&s(I#(nGCT%GL>fyX@$d~lKfi<N%stwxdMo)&m5G{cm9B&8X;C@yb{ z{`zDZ(fn5<%ppcN+|9{>BzSa{sfVJGAv?OHyTZL}7Uxf8!@YP-2ei|#n+I5o8QKe+ zM!gR1?q@7DJsZ(aG?R6fpUwpqXN}XsitI*NiY*+}a1pFRSDao-a!#nqTf7d7Id$95 zXFS&MiXGYUtxFCZX13dqo@>?eEmpXNbu)NW=*JkW!x7w%oT-PdGTVTxYUk6{P(U5qwe z_Z7Vl^>hGuYBD#yA{WQs!=b?NyVN_EsdH6x0aye>0V_2ubahYA!GQRf{_hD9)?NQ)x z!t?oh4#=x~u4H-tXB+D)C}05A*#L_I{}vg74~x}taooTr^!&+>SWCl2LDHP+%u1zj z@pwVCHX%;2Z?x9RUc{d#Y^GSIy8*p&t;c|o`dV&5+Le22s3>5xc4E?LY20iKsx zip@Xr>->OrJT1ZXXlD;GNcOKK>Fkw^#0YCdAeo}%wBVGAgl;%C;pfmQ78cy~OdyTY zT%*fmglxG;2KzM30^8V^_@2(`I&9C3F_3sQVu^NP!Q_*l(2=v`ZVpX#iL&lqt!2DT znQ9pwW0R#5^Al0Bs95jq-&Ac|XK4x%JSXAFtNl;u*zvm*j*qUq#<|N9yWfi$csPct z4~lDdd%&P@b=7X_;xURLTKsS|WWLuzz{{dLC%L2u^I@r*j!}hHt-2N=&FqHfs2kGo zuVQpO!&2+&X2bS8k<=F!QKqST8I6_n(&?2l59rzijy62(1^R|p$JK7%e}w}V?^L)X zkZ85Xm|`oTpiLcCk6ai!)>lOzEi=*mP^0A zv_q&}&M|V*Ruq(4M9Y&f!#WhUZ|G+R@(g}i&(>53eDr_=qdj>1(D zz~hM3C~RA_GyKJzvyCk926tLFt+L`)=#OdHX>vjpbP10jwpV>!=y;8IT9Z>0`v1IM z$W)$PEnUKHOqK8~K zvlPMEiP?S^q|@So_geoN>sfnGI06!P#HFilQA9KRizo~P7BAYeLT6R7_bLuZio2TO z8oEWyCtCq3*I%)~@mjjN!>nfYV?)lQ7lRjuT$D*hEAdvzdTRNdM#kis23P15a|}t%yHP}!luRZKkbOzs zwD=J##%|&|n?&eV8U0=5uZ07`ry0{crjSZ;cahGYn09;An-`u~Q8qSu#zv=#)YYUo zd@DXZXS%L(4Uv1spx&aiBvw&OZ&q;+TJG{3pIUrj7tKF`Jb%@tiApXV zAy54H2++#3ug%3+(n=sd`X_OfnO0* zTlM@3?@60Hk4C<#ipEdGPbSoh)RFm0*xNV9Dd-E~#`Nj?kFO~XtFn@1G`vt^y6Nly ziPpO)uCR}8Ak?{9)O=2C0ImM-X$6A!1S}p;yAZuuS-+JUFKUx_TMbnm#{FvL`t!KZ zJulWMAFv{*K6+H>KPj^_&rg>i;~W!U>pAw1%clyf3sYu3q_DA+a3$E;Y$(&l{|i$M zw82pfIk{TU&qKF;Qg^mg2RB!S2jsf^M{WtlOS%A(i~Ui?DSDWA=|=bQ#Q) zz9>Vc+rkOaX93eI2fm#?VI=E+<`O3=4B|t12-A_v=3On}L;5rLg0X}M# zX!aGrhflIk@2CdQayz&&urC&jwb-rl?RX+a=X{Y#zv}MRDp3t}) z5LucWgDi&pF{PP7R*!vtYqRM*D=M^TH-Os|<1+6^?y4|VDTQ~gHuhgJrc-{AHeufg z3=PZRh@vR7obm98UB+iNO10~~MiKX9Ya#IgIlUZYK$)Hf-ILe9paqjYz-j%X1+ew~ z^Wz@#W2|abUH62qf4@(_!IM%$Cnb7F({x^@m6i+thNNfhA+yGy^b8kj@c!Y-2S!}3N;zY=KSf{bt2L+Gq zfzZ5f37W{@{aO6|(McW=|KD`pCIvZmDuiV9lgOpf>WmD(g8Pnbsxq#n`MwOZ~ zvC&Sz-y>-LE~gvFUx5Ynw6MR|3mXj|_bewj@+H1b7`7 z=G4Z2=9PI*Y%pO{PXjRjp4{>OTprG=1F~7ZlW92JK3G*Pb&SLu?)*%HHg*%<@wO;@ z)n_xEJ$b%gDhGT*yEZKOpYq=SQQsYMBe$drfW|)J^IDL5)1Oaid89UtCMi>MOxPFj zQ!YILjqhF&#uf@;`~KU7pO(SzhSH#iY?}KlMVT4D5?rm>u+38g2NjL31OmB{58Seh zs1NF|LP@wgW~YtQW8y`_j$v@X3575T8i@ zX$1mYb$VJ@$X5&;s1#VK(g+<_h#ec8WfuU(eF_LnU6yW2|yDu%s?-o!N|Yai$BnST8IGmO;nr`umzLX#4!^Eh_EYU7 z9)p8hsCSQbVCs*`{_VW(=&x=bV_7LJ^lnH%u1ysmqZ6@ZED2NubE?Oaan&Ue1Gdgm z%RTBdv???0m}ZlezLo|^D|9Fco8*s|1wQ)DWoo;eHTkRW8UObP7H+x4ao37ei8-fv ztMwvDIXwzq7Z$Ya&z_8}B<%zS{%t3xzEGEYtqVnL z-=Gob?L0Z`%jD5_?Mq)Oq8un36B=q1sR(KLy`wN2XNYb|zGA28sofG5Boc~gRo!6} zupOwlZm|AS-v=@WZ6XBoYr(8a-CY;I3wRI%Z zRvtp<7!#lzDn)LZHsvqUVRu0VRt3w~9?!y`duVB_7QHc)C7BYY$nIv9e4{@#V$6|I zntTa&Gkhl*a!oF&SZ#)2&u+?5&CA*@Fl=pgH;@?sGGILXK) zeD%6I8p~w|y{>#)^LW}X^D{+O_FzDozySU-iHwZlspxsS;cb`j*Z)rRyama_D&|-< z&kxVwE~9!%2U%F4IEd;5AV!a_55!QO zd%lrFrGk3RQ&v{yN{Ee*{|%KV8G+N|-P~euTDe&K`f%WgO#L#qa(UakgM1VBeEn5E zqSvo&=GG_eWlqyLAs`yrz1?m(OmfxV z*NZVnB-<6_7bDHhe{oNV_9l9bjH5GQr4SSK0m#0`3)QB8Lz-8+_wVkI#>Pes4GjR@ zt_uLUqe#U73X^Ek*2zk<-u%g0yPO@s1hj|x14-T`1i(zw696^}N|eEe`}_ORegKj_ zFmyOqzO6DdGqXjG7SiwFbTl88(Db?QNA5E<3j!$$W!op=F93`AO^O*+44!}o*O(07 zI{>;uO-Dz^$as2ml*9I6IOSq%0DU(aV9_ItSXr8x^;ehbG{;9%(b5iu@p?Y68Rs;= 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

#$>}F=#zNb5wr4I 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/epicsandbox3.png b/docs/assets/images/epicsandbox3.png new file mode 100644 index 0000000000000000000000000000000000000000..c99face931aafd64dd0e712767f15b8133a3a3b4 GIT binary patch literal 43882 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 >* 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 z

eUeKWFUQ3R2&U|GA=;zC0bf7HM=s_6UAZC^gVvvl$1W@^?1I;e*K_A`R&yn%ID zyJJ4bReM)T&l9I7ADZr2RHKOYSD{Rm&Lil3%#3scEN;J0A&Qsy^Mh{_QPv~@M8xOC zFFhxSfPT(9Xe|A zwR_Y%uXmpMsiQ9<74KE-78{|GM$fn~XvojU%-@z~HkybK^_V-eb)H;HeUjRncnp5P zrJy}l_C{@>BayFUgPUPHd~uSK07YL^;61w}y#NN(CD!a5G_A z52=^pFTlU3`p{dk4`u$g4YY9_mMH*sDr|- zAvP_~BZI=oxV$}4EcNG9nb0zI>&vZ`KHpI?mZ$bwOT|h=MZoF@;W@*(qZxeeP6FpUde?7+Y0nuQ|8`<5Q_TX2d|W~FUy{GJP=<;#MV%jDHWYC zOD#}YqFrn_i(wQtR-$IC9+VWA$IcPFn3iXk`Xv@qx}>Yv^M*VMrZ+5hFbgq(&zZit z>miFyOVAlB);|gk7|*LVgxFj6<9#MHwbM7CIi8^P!v58hRf3jAV-=+5#vW>6Y6BOs zrstn2ON|Xv>x+eXNQu}Rq){KWD@6wtKuOzzq0^8h)Ux|Bbhn~!F&)|G!FMmkfvo9c z&7Nl!+g#kKYsBN7wDU>sb^KnG(AakyedQRG`f~Y0I0UQN&}h;0_2^qKx&`n2Ja?Wk z>|YGsz;fz0^tAT4QRS_>;v#&{dvrDn?SFJ?3cE&u_I$#a=U6QCXEB(MCup#I_o1(I zJL*sbwZ018U2mz(Yv8P~xSi`Z32A&EBk&TA%Bbh-3h^eg80?59RCcD}MU4&`J}~T@ zlS~YsEah8hlZ6;q3uuvY<-a$tdCaxhb+JUAZk38gv0%@XqmY|Dw`_bKE~iqoHP?Mw zHpqj-!`8s)Vbbi-8KDiAx3{W0)zey6Y1N`hTJXA@j`H2C5J6*dh}T>Ufo?Z`mT3ns zLFz2Q8I_r1u5!*FHoWu+lIMCMKTH(sZLWlVl6MkZZRMd--FjJ9dd}8>@YUI$`PO>s z>5xV1#W3F_YW`<~GvGEC#_`#tl6OBeEaDK2IGANmC<(1S=?I@17TWK96*dNuLosGx9f-p=5S2nXwla!CF8FAPUhWL;!rAoyO(VP0 zvw}FcFf~Qu+_tL??=#&MynHdP-rERwG+gBB?HOm<1_kuiBo#EB!^5a2{9xQ2w<4@7 zAHy@Ta_rcA5_PxKalG?&3OqH8Vt%gnJxrL!*C&n3I&* zZ&Kv=C+0EX;?;wK#J1W5#MV{`3n6`XnYj9H=WFtrH}#^rDdFyube!Vf!eXK6bQ1li zxs`>syuKD5Z5cEdw$Eh~HT{U#_ZZ|IF9&7gcoTI8_Uwb8UcaJ9OM{}ULn}(Vg}F%)9jT&Wl)VwoAV(0? zUnTcqA7PLg@WRj7W}M4}sn4|VYWUqh+kM%OL-KoIT}0Tq1}t%-B3aw?QfrkD6TD*j z836xB<1}(rPhBllJzgM4Soql?1}ifc_3NMay-;Yw?k&JVz^HQ2(*frnwXgXk(D~;q z05?_Er6k(g^aa;qS#y55SnBGnwqB2OvZvG9LYLQM#+RRdT}yI-Nn~A}GSl)Y%oe@m zMUPIte*}r%VIWa9pE;V|->dK3oVy{sS?az}+pJ21pd}vITz|n~6Y64S*!+gzGFCa5 z@N@<%PmI=@b9JYy|69i`+?i1RnA5>$5J_@;^+CaMEfc&oa&x_L?_Jnl5XclS)JwOa zwj(MV2!)Zp90$!LFIKu6q_B>|P_qi;&r<8abCKPBffGStS5%-=TB{TDHL;i)mm+=T z#UD?97XGxzvLH6uw2Psh`iQsmD?jVNb^S#Nv?W;3xJk(rEX-fUwsD8OpM|!eFBT$Z zQ>6F#S#xyIUTHz}V!8z4lktz(x~F1Gtc$XzeZ;RS-alG6r-!%;W1*m}X_6Sw&5GqQ zrR;v{1=*(}zU;jdHX~V6JvaW0Trh?aVFJ5H12rGk4T{kz@qIcnR@OzRGfpR3a=_Mg z%5$=U;nHN+!&QX_tR@AkM_~!Vc^igvDnb-FIYu1UP;T;Z_j6O+*{m-EBN4P-btWCr zG*wG*&-LpfisMIS)~m%)9(B*6FxB3+A-#VA9&w?n+5=-T zd7*+A0G)L>)}iB^IjuckbVa1URP%Q2olHjh00G{zFZ>Xe9cvjgn_Y6nD1$~xt7MH8 z`o6=mudzlJ6U(}r5XUl+6YqhCP>9(1Z+syKc}3?rq$fU$uB&k_aLHahsP240yiXrN zb^J|aG)I_<1~SIAwh5>5*b5;cBJB2I@}8KOHX1q(L{l6WJWv{My`~g|p~*W~2#Qi6 zRB41`Id$p|3m&ZTWZxxXf9>O_w5p}3#>5k9C%jXy8~}uK=V@rTm|Z!@(WDSbSu$*y zU(uF0mUH5Vv}NcyxecHXS%2_Se}*;klb8L>^Db}kFpkj;Yc47+_47j!Arx|)a$GB1 zrk;gDt3~j1JK)BPuEJ}3OBo8C-M;U%$!D|>svM*T#ol#IL!#y~NVvrPta(~X+3mb9 zEit(|UDltiZTER0lve|DZJeVmKwRlN{Em{}dM4Y*H3gmcxcF9nyobc6Ops@!Uvj7{ zmeqb*-a7E*Hqp4Q%8SdqZWMINPdi!2NP8lBOJ_@v7uuu+s=E28_c!MvOM9h5>?FRl zdc-)K3bKvX=71OMoD6(!+Ep>zaybd@x7vGU`(^9e0k297T{qK>MX2QY;%lV4bFYbI zNg%~Mv+hqLY`a|TUq<<>SK2kdKH?4`BXyr5Hg7A4JTq80~0!`p&L(e}TsBba8wp0z6%(TC8cN|^n~eyGfsH=YRK6UyRh+#Sc|lZPa2Cnffz?bqK5Am+fx#g zL!0+b!?rwi{nNL4s8AVGTJ{q+jIG7OU=~|Diga{WujCk+>?PBhteEMLSdR_ zmEE^gnEIOrRTXHLn5cKo?Pd9*u%kUJsASAUFQ;_KpeFd)f?7m3>inF;RfgQkADW}x z46E38h>1?ug10{>wOTdE5H!bH7-okxWIderZ+bhu4VUI^3y@hs5<)eL$6gL01!Y3UNBYxPChJn_YF_ zT}lRj#Z6hcZ3_tBQqw;&EYL{gucrZbY@m!Bj0 zX-pN)q=9Cc4SVoB6Hl6+dKSzgBur=5E=GyU29k`x=}_7pO<_CLo!pq#Grq{nQI*O6 z@N?Xz(`yQ&;x@c(x$HNa(q8tVsbK)kiuOvkN`+v{r?9E?IEdAm$VHCzIWB+htJR?1 zcUicGZ`5RfSZ+|X?_FO@*F#B^)S(W#iYhG!l=tC;&Z!3MEs36&zue&{NPdiX>vS~z zrXLfJ%j>5=U8oaZ)+#yDwm;(Eu5m~4PxYCPkA95xs@vaRJxV{ip0blly^pY1))M$G z@m3LjArcGyxp7HG@T*Vfq0XU8h~$UB=fy-d`fj-S3+LfQ6)sH7#b=_Gdj@7c0s`Lvx$?gTkx z>|aU}JtFVazmF&tS0?;26zVxiTUxlb)}5NX0m!ysub3{VoQ`!gH04aL?ib0(!F;dE z)_*We&G-4JInpzF94j6Fsz;R5K0MlXLJr-P66qe%SnqS1Gj%=eF*unXC}6W@wjQXl zs480dH>dfx-%{Ln@o2+h_gzk3eQqC5BF5FxNPJ4_aNh z{j%rP7ehGe5nytXAu{dhrGmc_+JMI_j&?mhYDEypo}5wrQ=Q!3W-`YA`RjGD@Ff%+ROhbzvRh6JG|mm01iD=01)^7i1U#x zGPe$oh3&&Jp1t{AhJ)SP^_nrdDZz#^f~KKc_%6$DI00VK?q7}lmq_PjvkR$r3}yJj zYokb<%~$zs_I_TJcdhK78~lHt3sSP{k)q}9k1Tj~szGDa6mv{cUZvy@dmK6a&fQ$l zz8CyTyiaV$%@dZTwkmIBolpG4cu3UZ3uXmsJNqrL9622sH(~G6d?68-sJ=`NEdDgj zCMz51@Gavnu(JDXPh*!~dnit^{A01>Ua5W=U9XX%)pf31yauCmKa@|TaUhihKTCDcV@DYn|PT^y8qtTB6?Znr%&zbhr)7RUsa|8tS8qh z7Bq8{HtKi!Jg3$B@Xr$DjKlDwPx11Ft1@HGGru7^;F%Z-{|Wq%(lK~WjJ#mkxtRVt zR5(bC*H17swO-0=V{)rlc^C7{BSy3f28L+kbuw6dOT2F_Xo${7aTW0qFI#!;_7g}( z*$d1g>jp}(9RM&HXgq0|1)7GP<~q$oaBf&ZxVbIgYqfH>uVWBewi?4^qNwh)P1cS%e0{}(KR*)&#jYAR z$v-9;wG6=R0$AiX{Zr01iY#>fH(KW9HA)@)I9iikFzB8SKZ5Ccs&k_cbRdNNj+pY& zVIoij{Dwl|)w6ZQzL;;uVw_TV5#~ER{J`MaV%dx{xINHVKDt+Xyxk4I?Sb%+lR<-y zYxg!#)?BP2*az=Ed`9BX0RadM-%&73nBP#DcGpknQr+1{W z>pxG>Kl9*K*B^Nt}6!P;K z)f86M1gV1R+I_&Z*jL43`Qk|4i};6@kZEpxIzSHqp;5q^JdrjDL6^bVkx`O;OxhPw z;pez)4ax`&&lEP{AL953#tkF!G=?#GCv0N9$}j0?)R6^qjBmV=PUA5Nd7xLP3l`nN zYrGjoua-BacSxuh3R{OrAHTl9prOLSSEu2sSmT5P6O^@qpybIofTieK=kOA=AWz!? zRJUrpNZwWa0AD%^7#L`oSKWyDhy+jg=)zgudJOJK8ZM*6S;pK|EasDiltdrKJkO*#Du%By}lxJ{+ptH`2xB; z&D|tp*sk$zLBUFo7_&8)yxd{eg;(0`g14Y#x$0rZ3mp28C2MOSjAO~i3mhKdMXb7{?AC3gatk`%SfS z09R3NSiM^!m=J)s4LXKA*-4jct)?#6T_iaq=eDJiFyL+;0US%G#HZKc1>{ERmR+A# zXQ{dtg+F-y3o;&f{%CCMUANNyWL(DfoBTI2AAzU(O~f~*ydKf)aKdQrZa5Bcrs-&IxpTIzSz@~EZNOTaKri@ zmF4j~W8|k}Fx_=-7cbTpw&B1(q?HeVrm|e0kL-zLeEJC{dy378E=KUgT!KIIhqkdy8?4TIKPhb??(jeR#0v8&)-QMWG?7;; z{=KhCJW&QM;{zg?nR`hUYk0&43tZD3Vm-MH$jY!0u^N8%cPktDB>wk$*N~12#dT!w z;%7!r;3b4+UDoHW`x6zh)9jVn;I)qC+f1`rGv#7n=73w7l)CWM0rle?jyA5*sfRhy zUC;)srGU5&zaH)wk3RZH=2YmHRE<9-BVWTSgx)#3P+GNgtDc3wR=#E#c!+Rdr+{EQcAn9qF;*9Yf+Vz|iMt_G(k+t1h6thO{76;&5C1vjQ0Z+0z`CijzyD zG)@J4Z(~o`1Fzm(j_?8|^r^oMuXZ6bsDve5qXMNBgh__X&85KjBVCK_*O%ow zrNeP(kC@IztHnM{5Ul0XOW5FH0wp35d)T$LAXm;-oH|J*Cx%R2AgjsEh7tMpS+6eC z1EtWX+ttc&crxlO5=K9|2-%Um6kK<{xXmTI|He|YbhIp#sr`N36{LsdoN`CmeHVAY z?_B?FoZ@Wr=`LJcV;|;aZ4LUV|J38ck6oA(JnXZeq+Gm!#|^qaCBd3;&(sikC~3tj z33&0~b%mP!k^Zf(Jrh-bi$U?>Y0?_e)hbX;Y5}w-@JozF$_-_^#o^RVC@>xDcFZx> z@&}EWH9-)|+-Z)_;9)D#VETDkZe~$l>QL|aw7{f@?=KW+EcoFKL`LI^V65(`w?Q5= zI~n`**1MZ+lwv5u4Y1<3uz)2q4>fLws9zx5Fm$weE@RmXHDW?|#^RI6Aky*hOEK>*zm4O?5w)awZk63_KL*rItcICdL=KwsMQgkd zF#+`=8O5nmcHEnwh)ti9kIw#u6!M%;d76itW<9_NjCjmL%jy&3vp2SN8Zy05!@Dz9 z(FNK8c=)cnERc$z4-aJ&G<4MN;z!39DAGolFDS9^UMps!uyUoK`N5o~n#Du0;B6qw z%@P#EP!zy?3JM5GbK(MOf-5T2GcIe#{1=E{Y- z)qP9Fan-ec=XD0S$4+RApd2HqZ+tUu~ap}KdhX> ztR?2?()`J!de_?CF7lRTkz=XlOjv~6wL?|$|135Kr@rpIsAd8(RGLG@k z#}kC&()!c1)YPA;hp2;SF44$PXCCr!mWwtWZ+AqKUS+pp(*{cr6uPOuB!v`es4_LDB$90W zCU-R&jxZ%^cPq*$tJ0)iocq~)no2mKMHp^FE!5)HuT)KH32D0=TN6HUiue>>2OPD1 zw+qI-%}vXLrPJo2pr-Dl5wuaEc}PPWupO6KiPPh`#dEp2Qj+s>*_1`&n=uBvhu0ud zeUJy5u3Ou+h=$@jSM2-JY`9{XBC^6y1+9co_ip7T55kDq2&6!n7qh3FxYNPg*HtPf@+r`gp(q%?M$Xbm>sFsHP6##h~Qj zCVYg+j5sh}|{?Y5hA|6ifovg^s zh%XW6MQyH!S{V5o@>zVPBuMaUXJ+rAF(U(AZky-Hn<%P{tu63Q~ubuUXt9Aa!A9eR#&IWGbphDvw4fq}@$z&3?eO$?-@$0~HV2ZX}gNYfu7|C(Q0XMJWoglr`kZe!!Ztzh9}xxKKO`gVZlv`-g6Xf z*An!jFoa%O#u=WYX!NMdsdbn3WVj4Ps zC6zoH@sElIWrSq5o<@mFR95)O6i@^q0JialS6CiWuIL-Y$h{}glm2uHHCxEqMT=P4 z=ZNeyjooGeXh}Y-K@FQ^QnOWtld<#yX#dsF_r8&>zn#1t_*<{Rb)Q$Iu{r+@D}>Bb zq}v%4d0(AMd0kw~ildnyQn>7fA~p67?RpYfu|p$Bd{hUIq@WeIPJR-th1+zCl&ZTU z=Yu650BE`Wgnb?J4H6pFF8)#?ZhZ>#yxFIU@a$Y#SSW;k*@8Jv8x`*vxRhk#wj@ zzZXI+dh70>!~=M`MylER>MjHEnxW326vJO z@JapI-+l`lb#y2tg<4K&pHJpR*+^>rFp}0`cbX-PyHUaX7NNd@ot{$4ouu5{-SJ>K zk+_q(Urmw%_Ub!J-yxJLZD4qZDGV^6< z#-TVFXZsZk-a>7vqz<*L>2W!V*r^vuyeroe$$Q5muIF=AEVGI}|j=HQ(7Au^(Q+6&NP^&hn=*Ig>t z<=@c%d)f6S<^9|^ivKoll1pj3PMAypNw)mFT=WTo6p>r5L_tv(V<9b$;gVARTtVMc zy#HSKcAf20>_Ao7tR2tEJp32}qcV-^J~KSjiKN^jlc5kLhRy5zM}QH9j%>WDBjN7J zjh;zbw5{fgMiwb(mpQ!Qw+{yT-ihh&CdQ`(O8Y^Cct%c3J&(@)%;?S?0KbcSQBMRP zBs?H8O;l$ib<`3)^8mPa8*0(3$ z1rBwOQpkA1Ix_?n&JV4`=@c8osCVz`-)y7Duj)uMh57{}NxcHzX#D`;QxPl(F}w|! zv6v+C-Xl+c(thh$w(9-tLJ$G@cU%I^KB+#!R)k5USVdiVbNe&umqzKN=whD&f{Po? zTQ%iN+;@E`4TvrtWs&uD?l7OHD?(6|mPM=$K|3Ru6%ec#s9|^l{yg>u6AnT_>VjzL zt9inJv-+dt<(gm{qWZ%|7ubH1FYS$Z{`i<1gWv@g6I zvBf#bb4q#JY~^^DS$k{FEA-@hX2fGgr(ZDY0OhLUCV_W_o?hg+cIfpJxB^o6KPJ%Z z^_U3pEs>vVu$cpCX*^cR@6T75m|Vlc?qs~q3dei=^}FWkEF(s({|C&lFbcUC;}(C4 zR!qf@!;+TF-&mQM@$r8oFZ%i{Ble$(oSRQiOjUN`)JNAp!S?wttXl+#Kmkd$t0Q3eJFI4A><`1@s|cy;vRY?7N%|Y0*P?OEHTrUbxD2g zj{@kVOX)JQlrfjRlDv|`hN6f!4R;n~Vs#nsOINg)FLk#Wyk%IVTNFdzXB^BD-T1Z; zGHijoeQ{#>FpJGhs@d3%1rOY2{Z92{1>XwgRBFx0&PtR&Ul5S74%?0A%FA0WNXj%j z1dHS}-Iu=qP48);V933Q)0btcyb?7?MlV4Uk-h_}WKujv)!!k`6%xjxx2^ix$QUn7 zxaMUFIshHx8skvr3~AfLg@=334DiCAX%^mZky}N4rlivr;I4|u*d5=XL#$+kTQB$@ zUfw__5YoIjJbS-_?_{}H^aPtu^a!ovNwhtb2z)lE%T4Qa8oacva2PuJtY`1H!20%& zt1M!z>rsB3{hO-XPQ8DdsQu%wbM(!K4-O#mLF@*g#7V};B$vR`(%~_OY~5(u$28nD=;u2F2OzZ2+Q2~txWvNesF9+Z zi^Oh1PsG6d#|cV5xf((_T45`v?azpQ0nv%;v0q*?ux*g3_mtV^(#3j{(b;aZL{j^0 zGZAr@A&1$M*=m7e-&S&Ma4Bv;ZeT?@UyI+K7@L9kPnAbe^G<&!A=p zs3Li%nDyU;_uvS=b=-BL1wvhFZ~@8EGn%e4HqSyU{-qKZu#-erj=`J$@GZ^*@P5i^ zYy-z2`hfbFd0vKQYJo*>8t4gMMt1Q0*P#FV9Vn2R9e3MI#W`A!#yJxB)l~02bc+Rn zoA6-l7IMcG-F%+>Uf0)&Yg}>L33gCXb7_Gay6u`(88uEaqY7ORCbi1~V^^J0RZ_2d zpN1zN*r}ku-vjRMJ6udDsEHkinrmUi(RbDVbHD%nqyGvLeasGSwl&_)%D`oAPv3&!7_uC{oKe+iVD|&ce$6%NH z?=0t!;hb-5{`Z{v`)6P5TL1d9cXK^yg7pq;^RbQoZZfWl zJz!5XYe(O}F(mc>{5Jo(uH-t&cPsZ674*ZKN9e0u9Jf`0J_sgrdndYJ4uRsr zfa@9L>2v()hcaPnhe)bKPgJk-%9ABcFTE4mr06p%?688O`72>Gg#(M(AcRfQOo2_q z3$i~B+e?|Rx=4}l8v_^IC95iqMGJ}|$xaAj7uR)@Lt`qI8(>s`#q)U!Aq-4*oFWG~pQ z=KI#-rn4E3|6R^FE+syAgZR|()p4%K%x(lfK({x*))+x3Stf&drq0ujv)aY4Pq!$B ze@!9*cQ1aRPPl2j6)~1}wW@~10z}L0cm%6k!b2c8JLq1Bgfcmi=z#C1Ty?HD03PjN z2awwtl^3*?7G(%9&HE8Eq^DJ{{S^3`J;j(j7XBm|Ys^{9WjgiDvxRQ`4mUAy29~r} z&|UMToL?<(Y2OJvwdiZn^GxHfiTiKCwNVMz@4d?QV>!r2{}S%XRYE&E++Vuri@w@# zq^iv$EYbZU{rJfW{bFF1%cDwi*(0t(4;Agb9zH@^{_SZ`-t@oO7`Z93<^+HRYi8Gg`2Ra z+n#Gp36&HMNQ434FCu4qK}zdDin~^c(&q8cTbpK6t_H|`v%Brc9L7t_<2!4{TOq3A zLMqq4M)Z27p3<)0Uw+7tIpv*m=y5X-A2-QTX| z5j)Lf%%%q_Ui^lD!d1!1HJO+Bkeb)9e0XZ?g~i2|o0W;DlHta44p)#(<*JQE4Th8VC zgL5_hu5zWG)pF1}HqGM62WOz7)y;P=2M*+Qe@rM5MBWaXd6T~Xr=gA=H}sCr32wGxrO=?KID+dst@T z?@?MgT8E}wo)+Vm2eBGC?F|QP{o$?@ki@HQgR}Cp~`11 zf-qR_O-@#O!-ZLc>v*#cPIx-Bt2FL#X5VdcF2NtSYBx?g$_n2XHqizi6+SW-$4a!; zuBmfvn2qWZ5C`leq3%bGqut4EhJ6FamOOEK6Q$tE0V7eT0$mAd1JS+2{;cZC>9tFp z{*C56x$q&tL&P4FcHAJ@cSJtUsK4r4sv3=-cYkfW*g4y-?cM^chT8rWoJ!Ln;e2Ld z!sK8jvphy_;d5~p4)gwPT`j5vg@jOJ?@S-KjgNY_=$Xlp?^SeKkx&ReH7aK4RL@54 zg|0?IO7->00-`S=uUnb3%F?@YUJEqyOg&qE0X``F8pK_C*eaym8_iSqaB3G-c_!SH z(B9fhK+aKvkFzA?zW0t~pBi5@vBi+u#^i`$7T*cC%zmOky&@-se}XD2^1SuUQ5?zs z7ojfiz;me{aLY_{qjJS<*ICu`1MoUij=^1x$6wcmvexgnjXp{Ac_}$G# zn=WS-Q*ap5uOl-i5LtiMs%&Y5_L>jy=&acn6G`tz(XK5CQ}aZt0%v2!dW+N4&B-ds zzVqZhJhme`K(C+f-$M|T15-f7K51FhB|EhU>D`j`#{vyW${?lfWoXDO+=$TdP8IfU`x>W~G`4O*QY*_sk&^g9~ZsQKWAV`~JQKUG4b-nzv5)Po|c=Ted|aLK%xyrD@Fw(%VRK(pA6{bZxclmJ=b{0=%~ffmR&O25eX$z(Ic5pyv$W9=aAay`PUb9t)@! z7%rwQyE^-bZef;2gWkszrZJneLnYv)?F{AX5z*xpQz)=7)3HpBmao*aBYIH&!T8Ed zHMPIr1&?ylTb9&Sg0t-{mdJyr=v?3H@5b3S$u!Ef544(YegXN-gbs&!~Tt z`Kp-5i(2xDKDiSAB z?RcJbierMh=un6$M5jd)SF_lqwlw|4qewIOXK(i1{xhRoak z%xrb~g)Mu3g7Z7WS>*jFd76)rMcl6}@@H)CP!{lLiH0xfl!wKt1~{TE=^xR?b8>2V z1b@7JW_Us*lEnq-IjF1_I8VQJZgwx=YRl#7xfpS+Xge_QgrxT?S@iCeM?rZ#)wdan zN)C=J@_q9u%FDY#rP{1B%PYJeac+~Vjhpw~XPHu{^P-w5N_6OG5}yHqpSdp0TqUJd zs7PZ^4EM|w*tUeMdo-a0L40CxXn(Z{(8eI@IpJR%MZpn1b7`m3c9x~G$pFNq+Gn_p zPaELzQ^+oOcD_%KB3JRD=eU~B>srw^?io_8?lW;9P~1=OTfNWH55C+9LFPAHa!r{y zg^3q{+c)H6c`AOm@QJ9!3sglS8k5`(27R_Cnn8vN+m!~j!n6e*hi%sc6-21y?Xgqc zis^w{XR!@><4gVf;8RM8b6e>5nhH5Ag$Zr{CmjWyq&ymb+bQ@_QDGic84MmQm28M= zTDjeXj@lAXv8ayGIBQyQv;Era)l(&6jxM2aLx_*}pUQhViT_#))Sc`I4S+ry>QEeyRSBTi!G6FxJ_zzuP4d|kup%h!ol0~? z=S3H3&^{L%Sd&{C7wE6v-L^WIIC|dlX+YbO=J%jJh=3`>4TR~`3a^EpVXWsbXn*{s zF5=wHh2)m6kZhDH618FFN;0Co?-+zyR_w0K{H+kWyx`t(m(#7-YQx+yK-s&Qe|I&y zq)uNl6-#jI{Zx5H5E6|aqoaR5&W|orLwmQ-u4QfAFN0eNNH-qS3YSqnPmcr>>IGg^ zO?7Mv$)8B0zOGj7_xsw(z6=`vFzLP4E}@!yzX@-wQ&VRq)X`LCf>&!0wUo>uw?H%> z{)~B(nic^5Fvgw{(XA|xwG3~2wSyn(+bv*jj5SIUP-TQ&-7o26w`yD&EU)ib`c3yG zjWB{b&b2Bk`7^}w{Cp|E>Jyb7?fzG4BR&f%7D?urb^JxD9C?y5d*<7Tc?rz;kc|f$ zXc} z+~qRY=88wR&&nK!ATq5^D^#j zkXsCCeBGk}2cNuO5+=04wBw^PATaHot+8a=Zkz1b#nIi7faqzE>)1o1srzre$wO93 z4%xa4^&TbJN3lu@6dbX`k7AN&MXs$IhzX!oniB zCF{`4n{|E1Xtw06oz9A}vmEBMvvk!p-bH6{d{|gG8!ZI4r!^lF3SPQ)x;_b+SpfUY zoQwV@@x(IBfTb?mMzf;oHt4$Vp|{GW1!vRL3-6*POUfB)7w~NKZ8dxHGw%<;G1S$@ zPSR~!-4Lf+S`fNjbJam8U&RYMq{i;?#LJd2!slDvwvtR(@~{^&8~T2PdkHoS-va)g zmGiv7woaOM7&>a18^t}N{f$aea!4PZ&Z$H$#@$|{!=$@@e}}jDjfClBEU5mYj#x7m zDfWXT7bm-`TpOiK!gee=Z3|K7%mUhGtf%9}T7FL!z`Y&pKqrR#OIe%f_e`zaqaCh_U~GSUEz?nEto+n( zj(4=~M%{rcsk9JJq8>4&EMU1DCx9IA0x_%hX0_wML(5ZFpGV}~YZGcCqNYi97WVK7 zE?QhCf6&jVl+@c0=4CUKoG$rz_a~1LIm~J^cSxf^&&bI9Y(i$G-cXa1SZdoFE)g(E zcAXKwj(g_eKC|;R00~%JX|wcZMmP-eGM?7x*^H7CRZCy0%g9BQ!IgX?o+8Ej?+dLS zsX<@WY~Oss`vK#?0kDU>-cU9hV&8jd9okjK*m*9a}%yBDM(gEexoEjy+ph%DL&OC zihH|)7B|uJ9pV|~_Q?ciP zmOr@jvDco(Q;rJB1{X5R;U1t_pg8M&pOlC7>0!qm?eBPj^ED%AGZqGjc301r4pQ_B z@cF=`ZEbP^BOikt8Ctw8bhRni=-oh1YAlOT$*xrBJ#T&oEeegE%0&ZY1hF;c?_Sg! z*Lve!GGDH`xHkTd8kVx~b^i~#e$*tT6zQAEOgN!4P5g@kXK5ZS>61^ebC~tblG)8J zad!hK#m8MrmDlaZ3w;uEeAabV)dBmrT4)u{+6vfVh0CMmr?>8~I}Pjw(v3HENQ8!oIPG)lC{Ui;x~F8yMPdul%`q%-rl%Gc#VUR} z&Zt&R4#0czgnjL?@=J+~S5s<<>`#)}56iCB<42$JkJsBaH4ix^^nd(8#v0lg+TKuC zaHa6Rd&#Xn!uc$(?mH$5Fq3cOCS*yTsn6VcuXeceJyF=t ztDO$do~@wB(P?>NI!3oi!6o`h%k?Kv*$ zEdnRoH=n_GXz*zjORuinDhm)6e0O|vQvmdMX19dI%s@{`n5oLW56UYa^ROZx4FtV>GNvbDqgITR$KWcfm8Pc z?e0(~eF=GjT6yJ{!BLprXT;x?n&mtllAlMb%-GhJdL)S{1PCb6WQ=`sfY8GcQr|57 zAMhmTA>Xpel@O-~w8QpK{Nxvd;^4UVUB5AF#-Nb`f&)uqmD69`%ju2io_JoJ##X<- ztb3Mm@=0TW6m)BRsn?CLcVhwrIH6!purO4HSc6)Zc2cZ}dc=9RN-)P-*Cz!a$F`=aPCX@Ge-JT8;vBylA=W1v_p;qBhm^fq z(euE6N*;+ z=#cx|mS3pw$M?f~%4Af8pSIDAhz)>72k?lH`1%SQT^yGe)(wPHUZs1E2@`ZQrrr@d zMni;~o42qDjch5=JyPx~T{2@AaP*9nwi!A-Hd{cDk1lLUC+%QsqpG`*7lSpU`$S`zNoI=5hEXL9jpC`}-85y)qN!eA zzgP$xeWY()5j?oktt3vk`7oMLg%7mGY2&6vE$3J#EcUDH(0t0>gvQb}3YXf7&ucmU z+~%ZP#RfV&?RnbHlwJ~P9dUh-8y>dnp!ofj{TQc8sRkOC#;Ofh2FsVs*3jH6Ct*rM zQ7@En<6eI$EX+b#1Zsg?;q2CV`;;*(YjgOr%!)VDDkNBXEtW zbgElcwfw*ri>_Z(BCopd&te&R*~Ucn8kM^F!IE<~Sj;VXq^)-cn|gcdceRfk2ZGe2 zndcdvVA4a;^jp_<0YEN@P472>xF)8d=iKyo>|O!1H$llCEF zRoa%vW1UBX^X5T^iQC3IO(xBu?z8s5dn}fTm5zPg%iyzPNEPc%{ZZg#qhqNp(uurdq&WIY% zl+Pwp+D?LMmttYpMLPQS^=@W}PW?A2rMm%EoS@gNe~;#MC!{-6UtmAs)jpkCI@9u& znO~KwsyF!&skHqAzqg2ONaG60)Krh(Ubt&Sf8uvyExmRMkNz@74G=0}MAj#1Qi0`o}+q5E^+sk|fc!$Cjvr1uUarC#V4<`kpSf~wuRC3)+) ztkhd`Ss_MDS@-W-HrmMbiM(FRh3VU`?DlZZi?sCjtn^K?6mfSM@&Yp)r)+CQV&3q4 z&_Kgl6;Mwn7DY#Ad?y{ZmSxN*eAkmz52SYXWUA`lM{|n@-i^OjI%e?9Z>U!l58WW? zK&F10_32RD-pJeWS|NPYO>4HOS9Xh$KZE)i#aI`A!YX4Rap#l?Bi=%QS4XhR9_9W<8rL@19s8&63y8CKSw(E3b|xtKcTd3N?BUcLK3Wf)S>ut#xy z0`W@VZFZ#X-L}>4OH}hZiQVn7uS=|d6xVe|w(Cs|zP-;i6gbgS1!PkXb1ik{>F1s? zR)F_qqg6$ExA_A3+O*=`TUPYX6}J#0DncEruRABP*0N15lPr>scVTzd=JcuTK`{m8 zhh5#lW-5up&3WuPwpCf~DaaK<=SsnQGTq{iu(1`V~9t7#`S^!M~LR2f&Z1y3x&-1_3RuWfp%a&?sK7t`^#U#acMB_w^lX z9U1H$vsE*lRMw&3c_^7{Y=C8`VByS$c5v@9UVlw*R%gy~-I(k0zQA5(;ydBy04uzT zm#2#NlDx-uLV27avpYsF;9|;Yi^z(^u_zF->p?xeyvic1gei`4Jf~UJT#cfj3d7t$ zU?$#6G$PV=?`tH;ou&HsNFnIUK}Xq`f_RFh3E~L39S#$1x3iDC`_;B>`ZcXi8Jm52 z%t^+Tj0_>UXu@-=gF)FgF2*k=qNuz8Xcu-f9b{K;v;6F$imMjX)k=4ZCjYeh~Q=irHog38Vav8wWbm%j3$euhAeGmPYv$^WraeZ z?o*_%jS2>iKsl7TC3gf^g7#}w%~90pHXsXOPS}!843+m=`$++9g|0TU7=wPZo)5|W ztB>vS6%tygEsuf2j!ON+!)B(9RThxT{yO8T2$Jfsi|39_sf~{DI%*aM)<1>#WwfdU zQ^C67J$_Ji$|)p`o|4vO!k6k_(+T6Fpu@Iz62n@BTP3_#ZHAv}5+iYv=}+I+2#fzH zToIS2FT)qPv}0gL=On0^+2|v7)v94jo*F3HE;FvGmg)P{5O%k=fLBY8`NklO^-kL0G%R}_3D*s1|s0J==4=+X8Q<`5v}fpk-7ga3s@!l?##OVPFe#^ z`rtFMRvbR#S8I7DQk*dvZ?RoLmfrQ}e80ib>;|qHdyC!QmkSjdC6{EfoV9IPe@pl$ z@?gC$;+7hfo%YfqarD3x7?S)Rf*8iLX>(~7-}fuFWjI5uoZa`le9@-=>RO6n5r4%t zb@ealc4WaF@mp+-*TESv2DB8TkasO3HWoJ=ad&;_I z{?>Ipdr*4+vVV2Nsow*urKGSud3UWTl1-R$lC01isDx9OpNPd5b$i?VX{1-sz6hDA zE-KOQXg!QS$^Ml&pZD8}h?lCFj?^we-3gtMv|Sw&bdd*oE@ST9_Vs4nYsv@ZVrgR$t-w&rkNm6WCin6&hltE<;Dj<7A07#&oO z`O=$zyE&;|(;iol&%JreB+p!CKZi5973j!A?Nn>TSs4DsbIrM^uUo zKl^*J;XiYBph1WT6P@4@EtMef^!BEoISTs?`xedm)J#wEU4996wX?*|HXm1D!#H76 zdGBh5i2BF-CCb zVcdhe8L~2yOm}cgWI@EA?kz1{CO%BPgYn02%Z@3fUg=cOb4O&Vee#Yky{(Ia%JyvK zlz`q2$+3cIZR1V{1?Jy#r@v2zf!EmnNp{OLgPT5?MZG^i(*Jy0>7k6Q)ovKuUo!Y* z;5fBC=yE|>k0~?zk7CW=$BzV4Ebv3=07aNEHB2wNjB}&h+qERsH;Ap{`+Jkt)@nza zq&ExHzS-rQ3(Wm2-o$#aus?l4zj%JkKIw^X&Dt8ex0)i~RkqhQG#gg3AOgtkx6R9| z7eu#T2mL+x{B!6eZAcwJ<3t|sYL*l(CrssHH@7U26PZr~o1Z%@G9>IOxL5u2DCEDn z%sL6)&ze-5NtYtzR+9Rc7j+W{@V&Vu=dw8n&Z}ob+|$iwND-_E)&Hh<@n4Nsf6a%l zzwrbEHZRI4={%(|z3*QI(y(}C0Gx;QsCNO+Q`DGZ(O{o(%kF-Uz)m9HH6 zd?@39zG(a4G#znZH}gQyak+!9X|BIEkyZFlBaFd3@Bn+y*15QW?2R-OnK9du=>q)c z|L1UYln!S5EFk!@+*q@p8g+{Z?pqq3WTTd~$ZT6AUth77|GJOJ+@#|6Y`aL>;cDr#2wQ=zI+|&Pr0K>7f9lcm zV~}Rjw4OY9MX_w@f}Y=GZ4L$dVHG;e)9a}XJk?K{#`yHdL0Q4T4%1xE*l}G_d6wc{ zZq*c}pwwdElD$gb_{XQ&k3sS#u$Nin+PFUdImdaa3Ps=FEgG3>Dk$T(g@zOWb<^#R zDJ+f52Y;HNvuv;rd;_kHFh+}kQK0{N;jzzr>H+-eqETLLfKC&C)n3t|Uhyh@wZRae zF8kBfzT%SL;n0A6-eSQvL5SYNou4*F4l~S-`Yw4iGo(67v~wk^2r`;f{C_@j{|cXf zy(8I8stF{rUrY)KF5#%Bb2&66QR@%0DUU*7(Hbwd#tHxB0-x`BY!;8XGFZ`}XP%|p(idQb&8eJ*D%QvJ`5 z@BtKCw`C&1-rc&7lV)ZU0(BxKossaA8(nktr&Y1*)+(MtG($40W`vw0cQVeuauDqz zk`@8`Pc_CX;A|Lx#&2_J0`h7k;LeeDLskvu5(W^yo z?M)SlM>_8`;huZ&1%g)x8{_`IA~9kAXP}VWmT#meFZd{>L{&2q>Y6l79Z~l_Ry9iJ z#foG9OR*-YccnRQ*`)N5#1a<{H$EIlQU$swU~nX|06Pz%g34*=jfI3FptvbbK2P8^ z^0x_12Y9&pjetr&c^bf7R<7&ifordVao9Yu)kQ}q~|kNh5}XtDbs+7LhjY2 zQ%hbR?49`km_F#2;9=8m!s#FT*g`clw~`v(za9jh?%yNPu@!ZkiPpRKntlBpr*gn) z(`=DIlb7)I#Xb^1MZIuijw(LBL{-+0jMqPq3X=e6KB{NN4}xYsQS*_3n%w|4^Z~&8 z;J@*<^?5}yX_4lUlRo3V0MnlaD1g7Sc+3^J5eGx}T7^E|_%S#GJf5o6m~xahr=IJW zSsIuKw)R2S=W^X3y-#SFu2L;R{_GfVZ0MMV90PVOj)bSY_%i3G%;{GLxi=i9wJHF) z#O(vqv8y(NuKmcJEb9W~@A0Z)hr_Lh={{$x^@+Eh_RBW|jymKVSH+w}ABocbkj6;5 zk$xW<>{Dt{Iq%1_p8Wd#l);QmluhH83;A>$lP%OjZ*(*E&dk7yx{ISh(fTV!h>Bq1{D}LX|Ydkn4JeVkXW&k*?>oQ2Y_W!7ry;GbG=N`j|ITW zBbuXK-$SwD6W)4Q_$n#(YnlQ#ai|dVV5JP;J?4aS*K{m^#w{~j+j(SoComr|G%GwE z6UD=)U9){Wu=FZZKD!dJ2_fbBd)Ld~)`aS+bWQeRgWl+Ac8ub1fI4r}jZ7 z@H7%NNuKgm2yC56Ciw1dQAI@skt4QpGN`wu*yR$y3}x!kl*P5sDc0ic%T_0_HRaza z0qjU>k|p@xw6}gFM*^XH+tgXym&F$m=_G$&d({$R5_Y@ya1{GwI9L4l_%aZo6R57g z5qp1^5eTQ`S|g#v0I;L}6G94{sf@B`RP{TzD-Y?d{*)rsgx#_&Lk|1A{+5UTKB*>R zJ)^GL3-%9+)c`41n zAz9$NQ-JSj!&uRiW0OO~-(3uzrq;4ZbrC&H5pohXB`6W^Dfa?A7+jD~fB zDs7#)3)>k~vvpoJ+nTICWdizol$6Uq5PJ9m_^T|px&`_x=AK^gOr0IW?LTCCNpfG? z)HGIC@_jvG`}9fS6k%}JVA4Xe7Ipv8kH!Rd>Jzq&&U`UXW-8}F6IIhOM3~U4i_>!U z-NDY?h4#NfGJRPMv)ACF9qXb(Q73(g!(6kVO7C#-FG`&g1*Tl(#Mj;JxP0ANzSmdN zM>nheBc;VsE5AqN*nDiCcXit<;|z zr<{ZErBp(L-lXX_xvDAvka`>82!LhF(&H27L-QJc)x;SV2X zDb92nTj<3GK^&q4_BqnN&feM$r@L9(Zw!^<^<1@Z3s&V_0MnwU`fWFf0-zi>B9vem^nR5E_xs|`vGg{#vZ5r&fUVAwa03A61o47FFRBD5goXcH_~|P zsgPV&O=_7=(0PXf_$-gs!|rrT5}LLs6#vv^U& zK6pp{PaR7D8=)!#-2ZV&4wQ5w`2dqoiEAr3=`ongv6&kQ^fv!X*!F~o(kqd4v|E~{RMy?bnRWv zjNV`BRicHIMJ2OYQH?bQRGel#k51v8c4#3acoRS3_lQh6Me;2%qj+7>C$H9_Y^Btb z_MXnsVw2RxzT75V0+&b{fyXy_)Tw1V78f*hM+H1p7Gul7=MqG}2Ln$F65i+iDwBBU z-wr_kBW?e$7tXi+Y=~w=2sh9ig#52PKU8Bimp7jsuO{OpZ8`Z8tlMu?>MW+6js?7X z0{-Gzt#t;klJ{8vf1%y0?N!_au>drScD9~A=GyoKU&rLA>3EF|dAIDQE|$L~jQ{-X zuXuho0SBP>o*#Hb2B3Qt3Z8jr#w%T7g2NrWIKJb#~r_m22%&vgMMw z(oK!hRXww|RQ6mIt)F%BQJ#Un)EC4e=_lD#|917H3#T>foo26hLM#LTn9WwC@@u$Y?5GuE4L)GA{| zONBWJfzonqUA@RS0ydc($4_kq&vEKw9`r0mi{K_*1mI@@DO>oU%=OV z5hCLu@u5A8n$$#8b1K#Ogyr=mi>K)1p&jUWLmLt z5^55-F>Sy904Zxyg?G=l^Dk>q?fuj+Q8W2k$@H~YvwFWUZr9mzRkB^id&#*_pKX-Wnf1$_0WZ<#op8{na#5FLxmaV5ZOg{TrL|W z+I(3F&qgPTQs;s>e#Y>T2Eq&2o+;mKv4`NbTjNE0z;=ZVz)I?^W&&Eama-Q`P?DFv zaE3|sJQ7VkJj=d9?nU*&wzM`$dnrkiVjnfU__L~qZ~tv0&SQoR7xUWYFEU8yAK_$G>9ErH_;Jp zo8#HjDAdT)%<);E1DfeybtY2KaGCm8Q?FyF{8&KsXY$_ew-JdE5nR<_*MP#6v*SVZ>+cI;kJ8=ovV!3 zCki1ueK@A=GKjhx%qpTk?upiGo*Ionl?2|V_PZuE%3FwI{RYYu2B4KHT zF`Pd?D}*csU{S8#@Kcij>i3jK$K>J}G{8AW?VX&b&eP>|uf0y!Dzy~BVkH%eUWwl^ zZ$#}&1qEKjbCoK=ewsh7Ay!TopIYXy(NP@qelo8S3#dFVn!rgK>fWgZxfCWmIvfi- zK7wuBVl{?o?>2bz%{V4%pd=ULGLD)YXx{xwXqW+Mk5s=|$b7 zP^-YjjHdF{#13N&wt>ZS;+NADcuaUwXS=h2COlt3mqX$TXWm}(+7m%fV-t}}QT3#9 zIiV3d-VqELFB8DUwy{zxB)7SD-}?VXmYpvOw{QRv_*LJblZc=kL_DVIvaZV{8g7hC zZXMlV$BdWW7-)w;lL_sW6u-777;T5GOO3Q7MT%sN3o0Exzo60nn1sI|EQ=%Zj0dU%`Z!f4RyU@h$hKZ==U4N@j2BR{(O?=f3n}6Nf|nKa&7U83;&5XbmIYW?iPYt_ z7Jxw_NRGU$D6a3=#@n9XG~^W&Psk zCqmkJ2mJttmiE}`#&vNBG-3N@zw!*5?CQp7(imw9IHIcFZ0?crw2-&jgeGCmH%UAa zht~FGQUzz!BvrLn5M&S9owB1o!N@>trn~Dd@G9Au9s7pd9q`5;Y4-SL}YYX)Y$T9!V ziI1cw_Q`sIF|xKWk9$;QvL~S%*crc5PoV0Fe+Rq!9#>mXaUhr>vsmr zgK2AY9cDiAaoeVrF84(D{Jc|BckU)9kblaDkGy-op!fhVVd7hW16))(Y0*wb3|q=D zYT44}d#$&bPA-$qFp%BcVgHYOZBd`bTSV%{?FKkooOborF7CWry*}au@DRn-Cb*6R z+XcdfA@ZZ?;>r}>Usq|WgO893=;V%rVt+tFNrgRJTZ|HtnRpRSO?u<<<(l;BG&OSPQ?e`c1|_Q-u2LZHAm@jb@(&Jl%*DLg$kixZN>*TB&?Yj5Hus6-b6~M`zSffZ(GPv@__4uyFN?O^f%%i2`ZR06C z#^i%#QqQp~tq46*#3&rT{Uv8K@BIjFDLY`~@^>Z78FcqIy$QH)T(1w{zLY=-{7%30 z?~z7hWEuQSD=H3s4Fla%jV;p$FhSU=-A17f!$VpFK7jD?%pE;Pu+Dm>KRQ#bzn{x}#bW%V)N__CP73sGtd?z9q^nYBsj6F2i`4eNVaUpLT^G z{DBHoyD~cA4(n){{dn5Ojz{^_71DTPdgjRgd8NMJq-f~OWt?En@CuRvbKysBjVZPk z!6NWLZ!+O1L~ViO=IL>j)4{4|s-Yod~3aL^WgnMZ9rhm5~Tzy78 z?e^X0GpT@co`}KsoW6UU_lXPXT%@SC!Bq@E>anZdSO0A`>4&dYN!{-Fdfav3I&iIOIEs*i>*8JBRv3hm z&_xa+=-I^Hq_I3r#0r0SaEIl6nbG6I(Fu&;gk%_P@TB(pDE^>YW);QX- z_ou8h#$tRJHU8HgvQBu>)e*E$gO!Y({VOv;9gTa{t8#j3E3}jLkC@KCTYZdw>KX-YxmrUcCW)n%B zRA8baNm>}vIA2e{p#I#d0iAtISaGGp?dxaB zn?uJr6s_U%>bvf}M}npfK2DEHEih1bre$to@)d`qK%bt@?E($Hg=b_OpoF!)>ZrLE zO3zb6eRRM~<+fa*(f}sZQ5$J`ha!IT(pqi^`hDY@y0Un$4hK>rbzSZ{rRzGG4*(dJ z4aLDO^%~nrnuYF`JSFfH;>J-YAlG9#L4^Yx?4h}m{kgIIj}<8$NnHijrYJYksWB%b zd5TH|2mhZAao=&!+9lO(AT9C&+}J`p4J&&SV-Bt$E;uI-9QLfkS0*)2JEw`T<$|P3 zGSDp%5lv^k9WEm5_VV-k#xHWu$prv{u6VdDsB&M^FUA~WS_V%Q@XSuK&cFxu1`TuN zpdmr;U;%1$XNXFPmcPEVkhX z(S=6=pi8_r7VSr7m@JtP8{bnu=2jx6#K#!Z??JMIv2owTsL`L%P9{mpy}=LP?Q6MJ%NjI!WTCh%B$0%EntH1}Nci;~eJ4LralIWxF)mZy| z^be-(@tTi_(WY=PKkLro717NDHJSsAPrNsze219g*Ly9vE{nJV4RvOH+LU3}M*`qS zqQ3$jlA4O+mnfm-_?vXRvgwTkrMz_b$;;z*LG5eb@vsBP!)^Ks7PgiW8D)7}XJZ!^ zi1`lbwM!l8M~x)TrSCt)>GfK5tV4u|lp&WANEAV@i!3|&8%eu8(&homH!lO2)~3`{ z^1NplgI@(MGK9`d7`F%SW3ykge*V4I7o$q}RD^T8amG`-K}8(IOFxE$f_X9V#)aG2BIX45KPymvL$bl9#kr4> z_mcBGqv_UmIgy2RGEMWzpoEyKzRLOQi?exBP?5vHQhf{ja|0IXRetLOCv)-we9=67 zgsll@0&KaeVIPJ2vEm^|NBHGDEv#LRbIZ+H*H{9Bv1Y)@b+-OmCRTRE2YSvQT^|%qLG&%fA|jt1}E2aKb33J9>r-!OIk6 z7Z+XQ);|2=xyW6GnJ$JqN*#hCW^(;=|)D#{IP z!;X7+%dAe@fKh>h-S-_rV=k_%bQ`xyfu-jH{ub!Q;V{3vqUtZVrJn02Z#v)c5O({b zpHtTf2&9r=jbhT%6uR$hCEfp7cO2nSZ-NOP7E2MuGvW5dT=OP9PV*e&QLGXswNK^eP~KMg_t?Ow~f@8iQ6wn~b}w-Z|U?|Zi- zK9|nhpDKT@?VMC;1r=io-=AWBg6-DcVSc-!NXo_Ys*%E=h)q!=AD)7Y$|`U7A$Wq_ zc+d891Ry@2$K^=*hE$4*gi|f|*etUpkezw-ohUiWf4iVS5gs(G3GH?fZ(U2G*vDzc zuc_;{h=#iw(=X&QDn4L)@viLtBO0aBp5F(c8w({D&*Os0c>4*TRb>}5wq-FSa_`5; zDZ*MT%oS_%W-jrh&w-l2;EkCDSN+*IZp4lIk0Dn>1h3XW>6TW;g@?;{Ah+o(|KML{ zdG{cL}NmETp|S+^&~01MbVfd#l1XE5!WFUvLyUAIZDWs%(b zoh?t7wI|n+NbaXXv+WZ0F;(AcTu*O+UExY$a(ddMAtJ5k;aR1&VN@2;D}k>ts*&TG zj>*Y3=89PZk>OK3hj+eyhsR(uJpRbHXFhVLZm_21NJ{-h*|jmbN#N2;g5f8LMBx+?RrDu(k)s(Cv+xWVQ+^*@xI2P zcRnIB2dS7~{sJI;?`(RrdoD_~dM6$GtmYh`c$8r;G{p`*<)gPt8+`}hHYsB~C8l95l8ym)m#>rR|Q zzZuagz^Ew}v0rSB_^9rs@|%+0>VT!03+?cyW>?6NBD3BSos2>o!7- zd{<|va^gat#lxQ49=D>!q3N5~Z9f^QaUe+y)-G1+^rx|Y38geHvcM+gwbhwxkRpW< zBYwS2&>WEIh-0Z8h@__z(AQ_aBAB56bFmtR$4)e@QUgmriTq`~hQytSIO0e|d>EI6 zNF>-{9JF%PwWNL@prwR^1uqNl`^!DEE-?rt;KcV>X8?oo-IMae2638ktm{6?RO6}n z?f|td?w$G5Dt(ttKlXRjM}t;fa*Ctzg&DjT#l_$DL}3*=7*}_5+Cp)^KEMn#GZG3! zm$kE%9E_7jq>FV4IOQ;SYC_9DK@FLo2ZysyJh`7OwTz=9Fr8i3cSlKqa@8S;g7sS)cq@ZXUHKUw@ZW$2Ej$_-xH(Eat~}q^O-5_XSlrXNL}+ zO419n56PP@&rGaSw$IDILjhX#(+uIS+Vz@v&54+K(U-vbR~+8vv^KHu(p=u&O`CxY zh78KP3PX5wk|eP+`R5hb$AP_=E`x3AlkJa&q%NFF_y*UnXQKCqr;d}XnQ8}ObuWT) zyt)gN?f;zv`izHh-$1Zv4BpID10%G*CMET?!zws6%#WQK_zGU?NWMIgNd2}z&}kR@ zjozhoDYsRnxrHhxH(o8xM}ARIQx$-!N$V?yTr}EWO9^YiECdd;I4ZDd?zNCh!ab5P zvC{94px+kF=jy3>l4+D&f3~f1wh}em8US#dOQ+}4( zO7K6K{B;e=lI;|x+@`)*ci84MiX=|lO7jllySL3q0Qgu%twm4J3iXst?XhVs8984(R0hujx!G(bX;i*u7!5o z*WZepTBza-y1mORNHVzLzaALHamc0a?R|wid?l8q-5wcH>nx&9Ioz?njYI<~vf-V& z!jv^Lp`vO9k%#fIY*ZpYXz9hi)b(Z==HIQ|4z>P1;HH{%))&Cvlz?vM8!BleKr!si zfo|B&M@Lhr%E@|K^pcKtC6aRI9S{1TsQ=)Pfm@dyE#-t~iD_-UkdB9n7ABO=lZNH| zmb}*OfG{aCLHni zto!k&FO?+7`U~4#{Y^>!(pAy^Ql1BlgfL4-D(jW==2;Vp76cpVX51qT_oJbdx*(Xv zIA`xGzq1G9EhWXNY#GtlYQaL&1f=J)0_()cdwClkIkJ%PQLFrl8TR- z%jiBZU78f_0O5S$dpMpZ*?jeQLAdqd%d4?5VWXDEWD5;9ExU8u1lBGmuw-EEd~fqX zglc;^@m_Fgi954Rz{|B-f>A#{idCLO{5X05Q@|F-|LP*KixV}NrfOWA=LW=fuqyIy zUK;35E4?mLyP;-n_aX$17+D)k>kA|bqFBl1ffT`|kT=&M?+=DDi7BY?@Th~j`OT^lj;U<_Idr^l#t9ocZ!qRtnT4+8 znIXQnNIh_#_ie3bqiTFRc#h0_3l9%Hr;$HPo9e+`NW=N!Cvqa7Y;FOQJQG@|_$6|v z@m9NZ!NOO}WMqCycx}lGFW!Q%!-w;#wF61bTw?mRda~D-yj_8JS;J%S^`dwhsKfn$;1butNvNE`$q!4?AC;I6wMkx>eXbK zRs|jW?SqO8@7={oal?F%u?C|ocrddGdLw=sOd(KVW=osO%N2dLXAUgkBV4Zt$g1(4 zf*cQ8288_GX5+a7lEF7tfv2TN$U#!;6`az$Tv_6kjbL-nOrr9DI#gx1( zkEzKues@_djuQ(q@FVtssm4cSTfQSAc^Nuv&DsQc8@;B!)hYTT#=)=YyOB!E18Xms z*?Q5>$rpC9kSzNP{45?=ziY68UW zmk9f?iAe8E#s$4DVWkr=4l8H6PI;b!9XnXXR@1;`C0CK6mRf1WY<9sh-!6%IH$1{S zJ7eVYxkxQoqI=_8*(2i3exnwxfkczucdIO3_lV}a&d9P6^R%W*e%xuCUJ}FgLOZbV z^a~Hqf{yY*f5|I}sXy0;>*Db29+JxMdiK9p*RXnNMOziCKKIDfCb&F)8_9V%dr$p4 zTK#NPeXRDk6{6bS(MFkBGxVEyFPX81*3La1_fogOHWo{uGMVV!xx!m#!M=RY(Bjd- z_eX()1YgEi0Y#V9bnd8k1?KUAD6y7T{x7mbKOheCViQ?v8MZ*GGwSd7Jjx=je=pFK zCH^GNf5YWG_}SK^HU^!3d*roQ!iz7(3(^h25&;-9%7o!9^|t$n`AgKZ%skEyGn+~T%dWsGT0fmWkpr|&|cpdZYEU7 zU<#ZWgvR-LJMJ&27Y2hS^E6BAu4bhU$v9w0HdC9f@#3uH4tVo(H?4IpyR$=m8>FvGu zLO>aY# z-KC^2oB!j=d7AlL5Axki^vVJa0Jk1Xiguf8p4s&Ch{Etzg*7TkQLK=*q*d4a+6p}{ zXt;*(cKJ-~4}^3FA#FwTfD}HuHhSzu^9JjddI%r$s*%FB$8I-j^@Q0G-=&#-CJmxbHp`cf9r~R zy7)>RikNF<)Uh1#U z574*#hZZ7Vyphq0tLo~^~XA3M`9r9XR?K4xuzJ|^c z(fuDPJ|L|)D1JW)COJ~utx-FVQ$?hM>Eh+re=18hPv~EVpAv`~kbUbjOV(V1QLR9$MzzA|Q~_(;G0iDQ+h`@&4K@WjSBjef zEdri%`7d*8O_}wp1`Btp6TwJFrMa$|jczq1f5M)a%x4q&sYv&mi;-l&VKu?)<|_B+ zDneU+rp|2xfvRH=IyoCCjFD6T&hW#tH`kS>P9h%X855nBSo!TaIa};gi~EtRl_ECpE=J0`>TboD!9g16DaanA0NDstC`Eo_BtOqY77t_ z-T73bB|1e8QZWO^8N;UILU+5|O>dFVWBYAy{-Z;b`o5O;=hC4MLSo!d$M(Fw(n+YRoa&i`yF1d4>=6TD+3mc_rsw*)_RdKf`{*0 z4p!&f!CD7LBiJL+FFprDmbXiLB3v&@EMwU8l2+%g8b(hp4>QjaU>@xlH&Xq4**VL< zkLP*oi*w3!Wqdi@3T!sEr;_^-$#uyEAVO0EiNz*G&)3)pP-)q96MD9%b$~WUDT8FDHz(7;Te!2O04U4ClmLc~)+0f}v)ZiQV(<$!#6Pu%7U{8^ivx@4mQGHF4Hd+83 zTFE^j5IhDiLCoLFPZ-!jR-2R7x13lG=VWJ@Vi9pUXv+SlGV$fRMonuFM1VneAy?^| zzRql9rr)O+sn3+(9i<-89F5A^_#~AuxKpt1NuXaEhcBa+Q)_py%+>Z4DIdZ|4=YE{ zt@lCCey5zB)kUmR)IGhB5Zlv~rja0{oK$Py%Om-`K%=J2URh4 zGOj%C^0KI5F$1T*V#H@VcmulD|Hg^7>$3WDj`fcT&6*vpU$s%6Y^3i@)~h|sg*)lZ z*S&9VIQ23+7CKu}LpyL`Ark3hFAc?wp(7Rkdy)^qHI~ySTl$LkI)d$Q1Zk^~!k2av zdT(3Kx^{0GKiF#s3cCa9R&LubX!0GkC-WkG*Aop^Lx;$EfjRT#^9Gk$j=AfY$|_6$ zt}O4s>TerBUro)$paeWc%YU=Wg!V_!aBuCJ9`B)Od}xwWjAf9pW)C9XSp>Qgy|K>* z?K(`)k7{d8Md_Z3?fOKAQZbH>vbRKPE^SVx^Gb#(FRM^c~T(Nm>GKMlWN1k}MZQoon z2<^kbu3n!Bp^%&64oGda89OWfE$^9nV)r!e?6Ju&%Z-ESn=ew7C;XIvoJZhk(`jeo z0|T8A`Z9)%01Na}Md6#v>4#FZg6p+Xfa-w@HLeZE-HiX~YPk58*Ismf&=aBa8zOE& zwshH~2>r!#Von<9ecu@XKg)}Rr8={@E{As_nv#u-?N1d1GLKJYONrDAlTD2yf_vpx zUpg(mHk-O5LAroOKVm~keY{Cu2VxO*7tuz2k)nDbm(zQ-yR*a5z063O7_85;Z+3Z7 z8N%e?GIe=Yuf|@#!Fg^9u#xp#j-))9WBZ%l=f;Z|epX)n9x4b$GWQU($lf*#2`g^2Oi$~ul#eZi>~ozp2MtpIW|Wn% z8V-A9p6h#xtL&?;MpxYhBiwke87!_U6WJ<|{(q34%gIM{i?fPxip@GaT9Rb*vhy_U zp=HO{fRdmhL`oAlv~ph_e6eI--OVEdAN>Tl&veFqz%wgmZ6i%$MH1@mgD zQNhQXF9A%bq^i&fvKwXA+C1d^y{WS#P$YS&{biqoJ|}Wjo%=j7o~mxD?2JKp0oAMq zpK3pr`TMTH)$;iux-fA)zh`4(H6JwB_Vj{eY3E0!a-*}Iye-rBWb0>4`(t~1kyd>1 zg5%=q@W*pTScONJv^Yx(tTT@&FX_oYNt0GwomfiIvbK{usX(@a^rZ&?!_O%b&+A?` z&v5#98w56vK<^07j2Rh&DRr_Q`{4ru9RAL^V##&TX@N`ThU7!+8Mieq1HeSmQcC;s z{G_J`gEsry@cZlOGt2dH?d(29{w^6cO4jiHvc#hx*ylJ@_{{ zN;|pzTeMWon<_qlCk7%lJKm?3bw4|%s#btZauvB6P=eof_5?S!b7B4YjB z4ts`IDXpoe7$(5X)x7E_6FKeIU%fM~rA?pgDVboIFm^QbX5>=;XmrG~i9j)GQHHE( zOOK2!>&W1swMKC00p6ZHP36`1D+zj_-M!uGg%}X31wJJ-Rp+vF`;vy zkwb@8J04w{Rwsow&zSRv-dv{jT_-AN*;0|;lbQ_F44XTn-6Xmcnyj7aSg$=y}>=IX-_KgDfuY(ScoehL~=1$M%U8euu1! z7`-L6yieaeEtXu|E^JKp#pZDBjEp-d70M%|Vk2UCZ-7Ue7g^pH0PwNtR{JD(q528? z7xNP@;ML%x@_h`N3OH=z7;!|epGZR(t`;iro_P?x#buJl#?m;ep)Y^x<}#b0{oRtt zUMrU>+-aIjYmFTc6rETX^byl~Jj;!m0O@}K<*ob~@Z6g455RLJc4)lUMQ$j%BKTy! z$)0J3#6-Bk0435cSCJ=hf)MB{tz^+yD?vlzHPY%`Xt8C0bV?XqE9cZ#|A1e2cf40h z^}H%+b9$34LRE3mlVR48Ix*d8H zNY9f4yHfrsLQPB17*ey9ynA$9I(5b|J&tc8hD7Xm|GC=q&z&*9_h-%#)oX}f@eI?| zu?<83>mes3$7MaWefh6fWviG z-}V9pn)$DAMq0h&U-$X^MArrXz&u-)!FYD&0L(K0lDezR*vT)ccBsXwRcKL1Q^@6Y zv(R$o5&UF6NwJuphL!jA$Mlq7uJlM}(-G#^&xyQEf}P9yQX;eT-Q}m7K@KiibH|%> z+hdZ$IAxIVYUe%&+e>%Ss|x5aySuCIpE%E-9RJOECT&P7{wL>oSrjCS5VZD1OK>J5 zVf1%C`WNT9#r+?g=a1(0KFnVK<~%dtjAGqYm@fn`-z`bAG03y9KI{ulx4(nw53+Tx zr1?F`D$YsiJ!t4-Fe-fU#&E^E`VUC+NZsr?j>n{lC=*Wlqh5bdi3}+_#1VT}=j494 zJOwB7jvcKjb>dJb3L9;NBp?cLwkEm&wgnu2S}Tp9XqnlXlSshRLl{fP&en(IwDGqD=az~}YYJ1+vd+Q$3fV{y!Gqy% zd~t-*N(JB@^}6R|+iO$Kuj!{gzaovC{QXYPlnl!-%f!ro`JhvQyu>LIn`KiH7}DtW zZ%X^=wd&8AB_%*h7{QZoUM6nMOwStK^K;`{o!fQJUtYW3$JM9h0YJue-)OR+d_&S5 zYr&0wjAJhAo>ha2WCh5~q@RJYE$**+775bvDGjLrtz;1Y_nn~p^DwuQajYdL+7W)! zISC&A^Pi(GzZ<1LIyB)B@M37q_ezZ0_s+L!-^nL+!J=|!Hf%QHY_ZH+2m~3lQY;nU zbcXvar8aVeXXHn_L%rn^{z+pLxv_Y%B`FWX8w6j872pd_)tm zZ5+)9ws89}UEb2esABz!ahEkcO`hv&FVh=J3m0sj5LZs~D4VFg6Y}P>{0d4TW7+#; z({LP1E|G`9q|yG9aJ1Sj`@;R;|7~mr-tj22c3Vn#tvg=9`?S2nT!#TpQ}cx6AllZC zqwtirjI_b%tlKd+^zej7v{kg^dpYmgs@HjLmBqA}Y}!!8T{8w$%s25M= zO9Nb`eeo#8hcGh9zs^zD1r88E!m~M9waRbV&7Yp%h4q=uP`GVXPo0R}XYP(u=*q(F z+X#Sxb_FcLq{OIcgB}Z*d@kqYI-_Q$wrq0Bv5fYa;Rn0=WcN@JO-itS3biB+5RLiF zogAm`J+}v!#F_Uyu<56C} zYHA2dL_dS_Fl(7hHmQTyF`i?*Li0)I+^h0s)z2>RZHu@8IW*PqZfX?$ldAtE0mMg%h#TV--c#!Jr}735eG&Yz7@g9!%Di7?Y{qFG9^p5Wb43>O8?Yar zUw7b#(q}m+x{bNbNZh?~=P=YGA%<=vq$1bv|TP2k}Tb zLh-8ln3893O-KG?9KMiBPlt}JvwldA@C3tdy?fvLzT8N?hFmNJDfc9F$~;Jrw}vQL zyR@O{*@@fvcPN%P?uVnW5B+w~pqyx~$$1U)6Y4_Bj_I>pqz`{;;#tFp`VOVdk!InR zZlo7e;@nO7T2kTG-Ew695xWjlm(#53Gu)$JR66_D1qW)LN|HaMDL*8{^>6+T3q)+S1y^gBYn4^Cdvvtu)+$Nc|)aBB*fLYmC_MWp~R-1l7wJX zpIN65oP^j|>AQ`q$IqPs-pJ9k^7;ew!{oDPqn6F@gB zko};HbSIHaOBaN%U~cYkr{@8D&qe)Az2vxjn|D$oIPE}ZKB?Xv*aR$?r8I26)_1j6 zUdkxKD3@XF4(Ym=UUaVPai;bb3`@18F<1_nsC=~iIZ9hcTwRk!fmscDjgU67Zi7$x z2CPyt3z<#O?JF(d9rXp4^tp5x25`^H?};71t2f_0rTCpQ2GIQOZce*eT_tOS(BQu zLlOoMmw|a*Q1yivs2qdH?uXr*>8;KI)k;t*VCi~Ht(0aKwF#xHIMN$EBcD*-i9%L@ zD_(ZV=MNxbx0|BsmDn{R+$Sd7i|}~Por6D?4)m_E)pSzPk2~z)I_HgwOhVlPs;8qj zb%Xlzr{;f4o`iiwJHT2Mobcg*_PoP=tt}JnZi?Y$oZl<3el@dP>RIGv&eTykunNif zB=3a0fh;L&*XUdC%8y;RZ?PrK9qk%(i$so`g-QG)to{{YdpGwgV53{hn=xPWof%WR zGYAA@(322ZQmO**LnrTJX~tKr_9r6jLwm`Xnh4GkGCs)hvF8=8t?ZVmA^DL=dt@(7 zZdJx3>yO7G>)bbo(aoP7wezNr#?HA?eR~4wlbAd{>r6)9##D!Z)mE{D@o(M@~_8)0ERHaoGw%xogs7-{yBEytCv8{#>4SC&OZtCzqu7`wzK zw+*GHD~E)tQ|!Yd>y)e@sa(^H)>PZ2jiFGN$1Yr*D%iF9{YEniapk5X?wmp-vILm} zJbvASYbnFS!7Z-tZ`9eiFUazsc$rs`-;-~GfAWIiJaGNR%5ovmp{b3#A#W#QS^UqJ z6T*1pY@WzKZJCmk;fFtyz2uR#$0c~oT5s5I@-d-m*vHp}LWND6=RCpnbLl9Wz^})` zxY~w;+ZvBd)0bR>FSZxNXs~+5KqALG2G+t)nUliAAIX<-Q$01ynKEBBy6}iR)L76O zo|n6J@G4r$X_$iMfS+*J#xz|&Jl_3G`SH~WJVIQr{9F^@zG{36-yy&?k*)H`Q z4iPvDPq@;~X?Rh+#KedK8<$=*oHU@ny3iK8X@6-+vmC#gqCU)vU&ik8;xf1rr(Ovo z8r!=5jPq14_^*>5^#}RJ=nc=vI;>Z17%xnpRmty!D1fa|knLDJ+ZLk;*#a%6lyhZw z@`agS@KPB`c5Mrq_jDj()zGp*A<1R-aOGtdlK|oH};ywjOK{SJ=``FiP63lY~AzECrSlZq2$^~KYry*ti zOtqvfNKQ1z*_GBmqV_o23iHuo+B=dCn~L~A@>=(=L1*TvOTl#a=fL(!<#C#&boPdu zO#!}ZfXAGmB~oDr^`XKp;Y8U2?`ojRmkrYZAFR*5b|gd}hFbxKFBO>Yrytj^L&x2} zJG_@c3no$@;geQ@a%0`3eRwRfa^~xYfrph`*h<&dp(-7s)ui2_rlX80TC;nEX9hG& ztgTgbU2Jx^Dz0fKGMSa$2V=I#P$%v8lf+12ZLk#YVbl<(3g39(?kwnYf}1m(uO*M| z+s%vHJSO0|>hO0jW9RJMHH@BTEK40x4ou@K4g!qm-X_KOfHX8Q zl`qo_<+bC5yG|o7dyZ0AtY~iA&{jO(^^@AUTl8_qsMRtRQoX8T!6YP2Blg!BT7v*h zCSH$QQDN8WU2T*|oa0_xlvJC}vG=%!>{9nt4g->Vcm|t=ylXKLY~Msjp}qKnD4rCI zV+OCNyxI5K9#w8hw=O)U!QVCmn(-`MU(62^y;eDW5LkJh>iPo80{P_!nKami3(^0) z&l(7l#n1n?nvi0r}^ z>c(e9frzuhDTXKMQ}vc19tA~IT6_D2pOBieLDe}rWhm~+iCRL%H!onZZmQ@%i#!$;lVLte z*+i_D2i%p#pB$bKzP~#G-K|CFflHf^?!Ls^G=XogC1rNiOWi+m4C?b3D%y9J|NM2W z=cvb+&ln5rd(YdOBShx5gM_S_q{g-aYc_N~rcgf4VZH0z!P&5@D{-dn!b(3Ye43-E zdi~IGuGWG>6^ri!+wVpLFQ1Lej|C{zevP>Sh>Z;zTzKu*$MZZ{w{b?P4IKwRVe4j3 z*_rA2aNz*!ku2xbEx7xe3+8e22;s!TkXh$Bmwiuu0l|Ydw)2Ju{KOR2fFrqI{R6Ja zD}5&ucgzRN6 zDHMBET2axdoa8cET=rK`@9Yq%y~Pc5DMtsvggKA~n>^nU>gZeec3wtPO@(U;eb?a|K)R$I&7OhKM5jr1_P>joRi_)x`Cj z%#A`X*U$~0&}sPv&;q5u+kk$s#@(~JqgOT9;1@N0{Q2#?uPoN5Z0CWkOX#{`T*S5R zi~k%RlsxJR;K(j@G?WG|2c-xZcB^$5DP$ zx(!`5P)S;$Gy36nc}m2|*`}kgb5;i|3Hz@qA&Bw|Y_(n8lGcD_Kbtnr7zt&CT8|3@ zhYd5OI6U3j)?i4^L_K8AI)v?5ox{p-{?Y@2yZn{t<`PZIG8pMc>0T(1tysvM5OW?? z**nrN#~j541ev6kLm}z{3nw| zL43B>#6)=%xey?nX@ZZuv*Ws4rqVMbou?T=0Pjp#UZBb%L^Ab(mAZ}*Zrewx^&A(L z8t@Ap+26lnwd#3o%qjHO)@U%a1U*|Cn)n%Lk=LFxaFJ0u^K3+-eIjVsv3Tf+(n(`7 zos}$6ai@NFc$U8~r7dWwIzCc0XX+~Tgv_b{?6uCR_QeZ65Rz6$EWzhosH+EEAeI z*I@Y`uH!`j6W&6!Tnp7- zg-JAXVO5tp_3>^WEWP~O?%2Yw@m&X;+tKN%cYZ85m;MTemoa(yCj2r= z)z1^EUfYU0w>2eOu5@+T)I_{EhBW!n7rIMJw?(Wi>NSFg4=USG2+8T@dGW3qUx zFaYn96_4DtC~akx_Rb^(rMyEjMp*MsKi+GUeAPWcq7HGqin4ZAbe@zbkj$ab;gZT2 z_%e-d1nZ}rF93&d$+65Q@^o#IH!RE>BuC<-Sl#m#hTZumFMhdcyM<0W&1Y^63MsqK zmwmd)zS8bHw)=H*SJiVKc#~&W51C?lX4%)r`bXF6M_aPWUT!6j7d{DUD#)CgZ{#Gh zeRny+YoWGwnb0@C>ESciP=2@$P9OTm+@RreMW(WQJ;C?*<~&s#3zm2`2XC?pX*GbzAP; zuQtMA*!QW~P0$JfujF;EG^h={PN}Hcrx3r`C;UzXAhBHQ77V&+H-Efl~*|_?QM{8e9m3d zd;d;6{Og4HrysK5z1uaIWmBuLV>(uGjbbSt6G^F5dt-ct}D^-kxtYunIHP1UAsLAJWAUdP6c z;N+h_^Vbd5=f*v}ujh`VIdenF6p}0JM+L~zIK=8sg`Ujxa1S?oYHmkHifgW9hy5$f z_jdSyPR{)Ox(p^U=$`S{z%%tbegLkQfi^iJ{P0Xi>nA;*i0-zHfg+ov8CoZUR!qyN|xolcqZDc7l$@>zqi^)IGM zPhgmlihcRZ{rv4q%OXWpGSHuHdPC&jgM)O^g@X)@HY=CGa>(BmZxDnGmAFc^C^LQt zj{>*Tk7VdWp8tA}Cr?Q1Tysq#9J5q%w-vx$qeKPT)+(DFNr-QA6pGY*l^HJD3bxkj zATT&gHs#m^XP4wcprY;B|M3c>s2N9cSK~)!hzf&0R>0UJE4t>CC?*(H$PtfLZIW#l zPo5yOpYgG?Zf@=fK+XQ^4L`<{e&q@JwrSEvE*{Y3KFc4GQi9k{N;B zQy$|gwYsQ#Itq5lxx}UW(VyJezD)gZ-}LYI{hS)gul&QoZ8TpE1lWw8xWUg4FRhv- z%&zS3;)iSEfF0b`j~tlP+TBWd{`(ufzOs+7LdVPXrc#zWW|;O zgbJsV9m3;|AOZdcK%(P&cDNRBi-OsSE3gW&E~utw)+&2R4p4L!fF4hY(}UOsa-b=F z^A^wi%UeP6fPerIJr1!>o>sp-%rG3QHbZv7HS|WVvlTc7UTEw+ee8n zGGnBkcr>91(Mc-9A`)L)|9upY5GD!!b88S@Ri-~aHn zwyu6^OHjh3fb=YE_as|x0V!{wl1q|RDHlekrk)MwW@OMxFDp2$$b@+Tq~I@a_px~< zsc#{f3%6X^)D1xW-V6|fs3<-5n!4iw;a9_Bp!q0nqOk5jc2{I8ue2Fp{SW|1#V4Ks zk0t>9{}FcHQB8GeqgTXN5d@_w)k2XjBE2aVq)SJtfPj<`S_mCc0qIKb2uOz@EdfFR zK|s3n5)zu!kc8gLJ z8N#|N^rUycgpz!+1H{D4hCNpc!*Dr{!qoE#mD{|6ZvE(LCp0~MH@aj}h|xIT^7CU` zM9TabO-Sh6xa8D$k(FdR6zlbH=J{_n&Kdx+4E{Y^><{ls6o#JlT^`7duM9X?&Tr8( zFrD8%Ps!+ciU7DyYrxRMt>4tknb^#uS7XpAzZQ0%)vFp(^KombQ%BrKOG*kws{usR zZmBH|))>0Z;(BBV6N&!^bt) z7V!7)k;Ddcm*XGS%umh?NRu`)8$VI4Iv!IFx~WQs$n`H?pmr*p^~;McHZ3;G^RM>F zX>+)+-8yO*a+uub%Y8I`L1Arh(jtVd*?8(epXn1&g!zpza|CWpekg+Ea{Y~j7JBP& zsw#}SKMAZXzR&{zxHENzw`R*!+V-X`-`e|jfn(K*IlT+ORWkt4A6Jgsqr1Qq;&u9V zw5NOR3IrF_ynuPtYppTBbl~t$Sx82Ffso)gO1I04A^C_!zV^`vYT#m@ zSF}MAp*CQ|J0^iugyXbOAli&@1`+7AppUevh?M!J=e|FA$-xd7j!nz-!WLqtgw^o> z0FaH@<){CZzShP9rgHt5>9vr|(D07%{S0a6UFJeIkd;F(H@&7Y;7(;3Q?1$pkJ8rt z4l3Tm#9zbekAicZhQ7r3Sm}0)-QZhHvB0YtJC+A!)>zu|3v>Xu1?JzRa?D9Ln*sD;;jeSqayE7bJkGXbdS>>9t=h@K&d#U7n}c2mCQAWu4q(F<(u&#iwT8jnFVFS3Je z7PH;F>t%pZU?qSu&V~YEA+-{=mI^SX^(gCcWS;hAXY)&V`G1 zCVFaM2Wqwz6Xf7fq0T!qyb5qR1C1vhFFBK80 zL-2TgL33z{feb44cDaJtJqR22LGsZ_u}MH6{I0Z`>^+R|6)4 zLBge?$$f4jsNu4U+#}{;F12$S4Amy*OhlrEz|~6m2>c8lJFDSb`(61DUv?&N=Eiid z6D4TYD^JtMomR#Wm4t0wT7#SM{-XVAdO4b5v{G*fw%tCiEJRJ zE6)`GQwQU>?`U11)VBmBTjD3+v%biCus{(;mF`m5j*SRPT~T;zeChRp(=OyL2T7#| zQlcBu^^xz|ci=y7pNk^e=R<|^5OL1v7Bi8B(85`vL}TooJVY?k8zyq;qQ)Q7f~w3n zWvaZ#69K>W;2dTAd5BK?>pv0U4HLPO6UlSvVdwNjh^N~~#)`a#U!i&Br@wFEzon2Z z4{j_E!L<0vLj8wcE0aNwwAArI&)I;INHU-NN7aXYh|!_S4zc&-|4i!sQ#fAp1TM|O zujiT?PhZ`yD_!ca^7aWYDo1&#fg?As@ph_njXo~&5dbeQjy%_$2LCy#Jtn^d-}{n= z5jl7k;OdoHZDim-Gv@_7tqEiz278deA%P^amk z&_wNNd$#n-1oLG0+&o%I!SUPfw(hdy<_Cpq3Q9ptV-Dib=v&!nsM^^=oK!_XMS;ROe{+kZatrxT3UIrmIes4=Bd0uPe*A z)~g)}dRZogiie_K@%vEDBxRb3q>T=3O!f&Ivum7g&s)s#>NKAq3G{j3ySejz*T>SD zIthfYzlP^~tA?~LVpJ1@)8S)Z_BFOhmj(u6r z#M&l3;TI2Ls0ZOP0>V!g;gRB6Xn$)=f>TEEBHC^4zKV+1q-v0sx^Vpj8{_U)2o0;p zvumT{VnvG^MzVV~FxXv;nMzrS;q{ZlJan^}F^E0NYtXE$wQD|wl-LD|C^j+R6|Fj0)N*=ivj>VMq0D@#uA@|YPOw^CpZ zm`9^9?A7X(A@ev+SiGP*`DhvFOUR-t18%r<7+qN!9N}&>fT8o4a+0z1jK05@GFPhL zVp+4CB_&p>d-Fe)`TvP`iPTx%er{vqu>A*eZCg7Y3Tmr}B&_x~kaAacvrpshs^a(^)7KsR2rH z*AvQz>K4UXmY!&b1!mKIG&CzT<{GhLXPYkXk9RLzX^4jB#IpPNKOF1(?me(Xn`E86 zE1ueW4HG-PM9L>LImA2|Dgl91j^hLoo;)IngXm6f_rr;JEK#whDB;q=miVz`>sC~+ zQ{k`m+|uZ-m7>;$p(5p{;)4FxUe`v4#VRh$zlKn3?L=Z*qU(4b-zH_=*HUgw8&!4v z)UWXU%nsN-OquR+n8N^=-`x8hy^9WtrFAPoCF5pMMBh$VijwT%tWPxCx|M6w0l7xw zboK#T)gN^C9GP}rYU|dHf2Kl|&JE)8HMx6o^+Q+XCi6bvcn+&&%@a!qsEo32`xX48 z9`E-af4&)*)wU(1LflEZV=dK?`(DY^_XY=21m(gcQBSk(%C^Jukk_&F z$_V?Q%+4!gN-(V)dIQuxh9xY*TW^Y*BO0aZeOFE*z{p5xe$~0b_fA@i0__FEOH{5yF zO2bAV?M6|Iv~+C_GmLJhZoh>eKdz@cY9)xfWvoPT#omU^Z?4vn#J5t31};sHJp5wH z(+-s_Xy58}81p+0TL#tD@Xlm(O_h4*Ss@vP5Qqa)g=jiuWsU;dFt1fh%0Gq(EP=mP z&BP=O5F>eU-GZTLdgmu11B5#Gu&9VEiKi+Z%j5I@!l~=V3VCl1I}^$m zAm|rSVBy1S%vUHL${k z}c@{3ywjtCt@4=VUtA4&@`dk9xs=#<%AP2$)UEBoN>o}?@v+w z8j|}hhwm|nRIIzaG--LSAE9`BEFF#!L`}qj%wsDaX@IwjdJZaoaGeuDmGVd-a)X)F z)}lm^rK_EY+PdKxKV}C7eFJ$TJCG~W)b3cb^GFa>oW6dODzScmt-*!RWAQC!et$v4 zlzXT<$=^p(iiG%%=&=dIwq2Tk zg)F>6oqXb^XWyi!;@-Xi4b3T02dpvZ?GI)7zEwm~NV;rrZIIj~5-wWO)3eORu=;#S z?+2~j2)8$nwaF+w7oi}|0p|n;N27pJc+mZP7F7>#Rab>-K*vICG1HAOW-T)tn1lt znD}B^W=@eu4WGYq_cheW)}Iz92FZs%d_+3=`wFA|_!k>wWx_-QY*17>RkhM^^85~j zN)p9z$|;4ALp%|%!fd&WnyO#y+Zr8X$7#uMuuVGTAPsL?Xq>eB6_bPebq>qH<2QYm zewec6eJ7j`H+avK2xDcdVPzl{rM+pocH_q7IzsgFFyQ~UcT@)nKqTlfKx+cTwDX|z zr{&ar!x{2SQ6K+53t+qWi;If9e6a&-A%yIZ2=^KTq3s%4Ks5498nSaMYq@StRGPAf zF$gxFpVStyg>*)l&JhtN=tn&fS0mE?A|+&BFP$|gF0JO4u&bjTlo>3X-x0DqrGIdH zAuriBfe==SrpfjYe&to7YQa;jF%7Ad*!p(ND8F!cddviME6!?RSMWWiJ3M?BGTJjC zDT{RW!o}XBCB15ggg3gclgk`7eSv6V>X$vG*R2bPDsbVik?b0t9Xj-FuHm8;?C0ZI zGnb(s;L)d07X#ancPnDO{Q6t^pHWBl(A>%7$in+2=Yy(6hPsX3#OwU~asK}#EKSmy z54<6HhNHjsldxLFBQ@FW8y-QEx~{FV{n0P#tk_Mb`)5jbei-aO2pFm9%>iF-O3Syr zMi)B8;kyX4*m&Q2*KLkshDbA2d+%G?zOa7hpNg_w$#g;xM2864I$punPKnQ~ zp%9mHsmmFEU2&>kEL__YRaN@L7ec~I0|DIKgo{6xK?jAWPuawV=GAv9K@Y>Q;1f{**RZ!j1aawDEfq4@FKCb)chu?=}jkR`#1ch=R}Cvl#z z7u8EJ%7+#qvk4bo4e|wg^$AjD${(*dH)R+HyU@d@7&C(5R(Fq~~4zyOsr^2s7H6_(YRK@o(sDXS64Zugt^4VQT3N;uEt$RrOsZ-qId| zrBuV|+M?G9GnX$&u0*jX4cZ(sAd%dh!IB5V(e6)frKCMrTo z)6N8zE8Q5(!gL7sPYgRKj}W%l3)*)q?-;+1UFG}oA(fHP>Df7~i^*6?NbQo@v8Ib~ z<_4Ua8i$Pi?$_-+9AbND>$624TVBX6YsDkuMeBPcTs2_dttu_HU6!$7 z9F#GS#&e0a&h&pX1-uvHefwk>Z6_$haCg0sKmcc&^?ZqFBB0f26r`6yS$)lIRs0lQ z{b}1)Vx>J@|pk}Dx<`+IPHY>v~FljA5Qc30+^0qr?_YtOz3EUv8(`c?bCLvIUV-StT zGn*vD-x4}M>4yI9olvZqKF}qH&<-gLeets{Nnc3mTmmgBE4diRGInBc&VCC@$SZ>p6Xx!`I0D2Dj~k7r;R`^KBl4!)$_22d-RhcurFN z`mh^b)QAGQ{`%8m4e9srH28sTHr~+HHT6Dz9R+zkm^c4hYCdswjJi4)xEB60>vN4C zw!3ZVl#7)wW|)(IQW+aN;`KXOTm+vzLt^bO4KK#2uO@^TlR?ItLB@B$0d}#`%lJpD zRD2rX>u}7nVD%&)ER?^`44eJX&ZM(aocNOTnGaCXz_&F=cyq(s28#pecx`^%O}@NjcCdJQI)mNOvD3GwGk+u{;I^M zqumHKI*C1o6(aWej8X}29bjP4jhz4S8UL9OzbxgPHiDRk$=*tzFy?%5!69;6ty|x` z@cDhg`bP5^%_4I~^7@ym7M&eQE%zb;qc#FzNp7*=#bvpJ%zxV-D$kcaWwHML?r2ugJITuhRfe*>0s_BWp|{IJ%ihRU*xxI4j2qE)M#*zv0_-ZJ$6?vDe5l zQ8Xz)Y~6R6pWk5F?>jkBN9~nULc`iFcBr^M(OSwD@l?>y)j0iPVo+;W3-kmh zJhSN`M~mX{TWP)Pw(@>BB|M$zoii z1RuMTP%uCx4B5!eiPYylRYiDIBEXhvMBQk=+-s-bUpcW9?oFCOtxc@y+A9-ZxyHv^ z8jo;@ZHkJMR`a#m4UEs{GsM zG!F{bv%;~Ck1~};w^LczDH2UiUweAYY`~*U(`B&NT#55sx@M5lf^fw~!b}Z$ZZ@%BulOfS_X@J4kehE@ImX4=wgtgaqX)X5T*Qpo)HJSlm8 z({zQR#zv3`(J1pMoQOcXdegiflmC9pC&?Sv=~>?58Xv2jF|XYtX3;x{pA+jf9+r?U z#4098V23j1M z3XHuCdl`2zk6#9D0LLCX?=ML$W+R(Zp;NM~<;0PhMFZJuCmTQA{7qWVHxkQ(^cL^# zF6Yj4ESl}W^O;bzum*^e=MTk_->E}A-n;>7D!JJRrU^;%MD;nPrrteq-os5kiI;-a zg3OjGoyCY=I9ziVzqc%T*G9ZtR(`&M?Al)T+BrJ7Em&O2clv{Ab9F#6hrb`DrGdD? z;AgRU9T!4(;?%bmpir-wBCk3~{E4STQdbKll7!f}p>BynBn>Bs@y7 zddq=gM1hub{?{&r(79#k`~-4D^hn)N<3nTK!W5EoB9SBSn^eLZ>VTjCTG z7n07DZEb82oQE?rFY>UWY{#r|g(n*xsZd`7-pT#7O^Xw^u4eA>h6bH?>N(FvF9#1& zkqU($d=?`c$ma5}O{tP;KxITP%l$Oxdp)lzXj6C%%LvPPc~iqEbeRo6yF@OVs=fkZ z?q*p!I~ufY@mhDYwZ&8T*sS`lJU)9DNHKy@W)eBKJQsHZmg5;_a;-5IW$*G9Q_e0=1jQ5ROqh1<3W#Bd>SCCGuHyTYzu!==`>E^OH-zDHHX4p2Ko+nZg%uSr+eN8U6&xAIPm zxg;bt+{NALEwqTBm?$)#s9jNUaU3BE=2R9!n9Mg5y(~D4tJdj=*lJfrsQiYaBQyzEA4j;}RNAbejz3sc|p5Bi|?x8MlEVcVK zGZy;Vf8(Edw6K&=lRgmFF=x8fuuR}-@kctXQ0kpbH_JF$bO;Kyo3QqhQ900 zOhvI^kjn2n5lq)Co(jGuv_F?)mtxT&k;&e-*{mQ-zcb+y>)e9bY+<93122vn)f2sW zwnuA)gQYZucdl?X)~!6`aQz%QUIx2%F;E-a7}-7JzncRTQ;AIVhX#$&ha)Vif9Te^ zdi&+AYOgAWi0|9>eGq4dRp9~=2Z@I!%)4&}(H;V0XQHFEt0rfCnbh_?W+r*MrBGZ& z$U3Jv&a!CjPGmT^VbM+@9A##}7HdpxANpf-j4V;%wDZ#pOo{P*my_?LxlDHoZJt_` zOGWi2Pc&9A&3EVWjBR6W-(t)~EaA%)F5d4QLdNQs!Q&2HYvIN08>2WxvOT4)2KBoq z57zUqK{V8wkFB^pGuQA6oTCuj{aSYwrXIEb4}Yp{Dtj;z4XJ)4~o!iE?Bgx$_|M z5g2T~gy#=26LfzKI;ntM_9-bvPt^HzS>(>QXZYylY+fJPp~*bvmNyO0idBxNiQl|Vx>%Rtp$T_m>{KA(=XZ+%W-;<u-!Z@gx|~6yBH%owWDobZX%%9`j9s@9PJLKd8;k-f-3GB?UT!w zB4?Fr%aRIZ#Unf69yhzRq$sFY$TzZV9*``1JopSESNr0@W>iZ#(h2hL+2#qVYjK>` z7uwzJS_bjeP)xHQe1GCvth%j_OaXmm@OxwHQc!JuEU$8WJJXpdTGlPv>xPk0P^TZJ3%9M%zf?;k$T7Rx(~%5y<8 z$BE=2ww#Tdv@zVlsw+|Rx(Get_yK~QNkh+tuP)T=U@=$Kv$m&W-`5wSa8j1F#`hPu4BLc9>HM~J_N-SEW@G1>;+f#i@^^(ldZR- z>SxYUhz(x3%tlI!no_Q;72M8y%nyAi(tHA{ZJaAisAmC z)FCsX<6~cG`V4pXtYS||3s^pp`oD`};0)(WOZP2TB_3$&I%bOHpnD!4Rvjc+t|u5f zXk1idGPzShP$_Y0eW<+MU>0BR6co5qq`w{E2&DKG^{H%;&qaHdeqQ+RUw#(28ac4w zMXHftJCwkcRrk6M-YOcp0%4q!311crl9j3{6?ifkT>I21{6&!_D#NS89tK-9HrS0b z2vC@8E$)M1d}!_SFpraINWGFPfdx-gn*c~bneAJT##?b)d@7;56Tl$KRW+a$Qm>oL zX}RB{ zRqI>lSu&|`xdj+6(L&u-?;vypq3+M*b~hMbRvqr)Q-@NW7A!x(7|wO9fAnEog|tuxLI) zrtwe!j;KYImT^9uZ1y((2$rhfw)&=ClJhdbxwd9dm9C&fw@h#+VwDlP{$s<*=!G%!@dMPLvM1gQTi+2GPu&L6)txroF8j31+ZFZTY@LE8-8Z z%l~F!Us2pyd8S)rB>*l~o`(MddLwaf5yRd-iv8)>5xY+s+3(QIlgl76s5|;;EnFlT z!n=$$x7&VryAC*n&aO#ik9aPszW$Sfv}~Up1q!ax{6GVzdNF+Gi$$Wz8DS#<;+Oc{ zEzTa<1@0uJ9$EWkY2nc!kkXU{&J?q0-8lLeppo_BSS1)43E8lUdQ-L3{RwFKj*sWh zQ+D^Zg*a&Ylt1rg#WD|0CDtNxQjM9Iwq4@?($4L<#22j(sG`v?1395A8+~gT;s zpVVYw(zNkQVL9k@47aoGC6C;xl~&iR+ip&&+-7uL#`$wFLds?*qEPn#Rw~W6YkGV#Bp#PP>J3UO@htYJy2l$Y|YSmy-k( zH`)*Xi9$?A^}RI7<+77WfsAIWq-t2&w%~*q8Ps9di(j$7W;F{D&V!cOc5;klOlnr$UD;Yrf91g^x44a2NrSz+-0X9$J0(Y5B7#HVvV zSw)pzb`*EDh>PaU8{HvY{017&ct;butJ&DF14UNG*10NWs%W7LgFi$U;Y6|L`bci& zV=O+>zLKMLW5?U0$?^14xA@d+m6~Pj1*MITti{xU%PeXXV2od)wA_8t)m}p#GT5__ zx0XK0J8U?Ykvm519@W4R*bDDM-uT$K^pzFWLV-dPw->gx!hc=S^t+u*Jgoz@WG9+k z;`gaj+W5-Kuk>J5l`ZHiMlB61B|uNYa-Inkzxwen!3&7{cB6Ty1cR?!dNf1DY1o1C z3uelq(V&SUP317}T(QbeKJ9lLHN2+!Elg}j@31C63Tp~5_p$P{n<0DoFH-ZjkJs4A z=1)`vh?aTkK+jig5;nO)kOA4bEGXzZZ9P$=R}YJ9Zn;EX^X| z2?z4%A6cYovw@Jv2V4n=<;nAIeyY_PF3MqA-(W+-W-;v8B`(iG&H1=535mG{iQ$EI zLvEpEm3bgm?kEl>@59cScm{sOLPM&#x{H1TFbP}irto_i_GG%Ycg-9}c#{G>7{<-rk9}lde^YoR= zyj^Rc(G%Q3Tw{wBHLX+L(F=*SpM4SL;)PYG09C_(FiYLd|cM zP_;U*Y6@w#bCMof1I$%bBmha^V3by`CESaw8zl398l8#J2uGC~bgY=>g(d=^1aW7| z6D^<0+|@FQ2(OhiAOfO0|`(fMXHt|1z6>?c$cP05MD(m@2i|&PLXWYMC(aH+5C5n;cmRc@mW*n+SgkU{&IqXD zbc3Ylu4ELKBp&?lM_BxUM&{6=eDyKvNYdX=3R;}y9 zK&|^`pg#&$)7`7i`B0Ordn*G%8n~CVh1)D{@nNo@kdqU&tE1P#JuOvDypfOHwhy@z z^Ro|hGTZ(zvqFAa1or+>$(U`Aj9odtpjXjY@vdK+?LWom2X5|QY( z*TMh7SD(Qn)>A_=!TZ-x^Knhj4_Gw$3HX=7~_AOk65_>a3a9UOdw?se*$9Z zA9V0L24>hSTpgIg7k1!AMNIUK-=DV2^Q(yLYA_9e94Be=5#@hcJ)j~VodmDSbg9Sf zc!%7_(HB0xRkJ+4qob|n6fnO0I;g7x2pN(ve)@1f-NYe0|H~qCtKm$1u^H)d8L&g2 zkIA#S1(l!x@AHc)@(gVIPHFZJEfaB+Kv@g-UP5@YLVC zi!(?(c=iX$JQHYf3(!Ej5!&KogREz|)sbQBDV!sKaE8yswEG-ZMN&I;`CR~ibuH^y zI*u6_wn%1>>su*rWBil7`DsQ**!EDLAh$bCQ143kTB_10RUe+`TWp`IP1{1r{o3}d znh8!QNmdAAa_lm=i03<$*Y3mLkVKvT@TW@Zk%`;oW>Yd-YL_dmUb;P5wg zgE1vs&u|i5Is7vAV?i3mUn+7q^AWti{9v(NShn_O{k^P{^XxjEl@*yz_I*{(Y1o!+ z?t8+2(A39d+-gW}Q0-}(NxUm#;bZ(gHzvwsIc3&puYBH_*6x11OGAz)&=KO~94~rX zQiJ#*P4Ew2M|B}^0!aTbJyUQk?Ibz|(8Dgvh#ru4&3hN0!uGDP=mFdE27dgD#uagu z!$SI9t>i!L&lLc6^Mp@CZ{q$keV5FFeHfX?IOA7ct+$Z!S!}{3?65VpQ^%aq{D5si z4U#`UnPTz#7VJtE$@C3S)0Srsu!K4hlw1?yMXma(P!}FF0dL)ci+;N1#0U4#MLAli z|Ju-3IW}7lHVo4smNX7XNe4-}Exi9dmzxIMYB=LFb!Y}$VdKxF4>OUH=BW%;Lan#4 zwEQ06cdDIF5KAkRLkb(i1y-v^%`8rjcWG1;g)UE>p6nhUB?z0d5AhIyVRpPdhuWb% zbx*bQax0TL)#*CN>D3IsopC)6B7r~++@9w04}`-%XaK+vtA1M=FkSA?mT2OtoEu3- zY6tF$Q~Z{PfpKs*KZIhO7A5#LR0cIaAv9K$aL?s1J27m&RNUd2u&I431FYgeCskUB zHytwa!UBnhQ)ZrQ<+lI>(2VlCwS7S?Gzzk-z$kr=`%?#xu|#u!DcO^~IS0;(DgQ(K zju}I95R+Mr4Ud&iruRzWOs@>l-NO5Ldz3~PwH1?T-iWzPo7Q@KwAp8lpEGg(c3!?6 zxVn1UZK+;UcKv(8f^oU!lRaQ^pX~%#xX98sC3)pF`JFMVW5`0XZSe1lODzx>56WGv zPZ`Z&V!%FABX~$iB$K4DMCg&dpaMU+^NA0{Y}svn(z_yLmb!*Pv!r9KA%+O0r=K3c z46!eK>7o9{soG(&*+sh!(ItHsBGwlAl{hYE?swZZ1M}4!z}=^W8#i~7Z8Ionn~?&# zU3D2p$42Ka(jpr-(~0D@*-#8*RL^F@eNer{Zx_SV0H8QZ21e~$3>r2VGOb2RUX&7M z=YIV(1EaQ&CRgyD^YI43T|&rij`zlR`NB#}?zJ`I$D)USPd~1!UHsC;x2E0fQM=&*6BVzxZz`1;I?i$p(K4 zkSA)F4tk*tgMG@g8`)37hvt=|z@Z%>?B1^>0a0m@+ntQ9lTBnXakB0?ra4`sVQ+iH z)+e`{7IH%ifLUxR9LqLrQ#r#R0xYV_(0mM9v;R#<}IPKh|>ZSFEPDG2SLx zZs#JCsrx6HLx)4%#CImkzsJ*$8=n8ThKiP^LG7y0PH=gi9yXr(c&?VW*GB?8vj1*0 z?*2vbtRTUr)Pxz*sizD{hgUOo1w|FSL0-bLq@(%TKVpleYfCi?Edo~AKj9;;iyldi znz*TZZVww2NAWU!jrrbf>M_oh=Gw_iAW!^ywBHvXe?&YzDGSG(?to7jvA}&owKb(8 zw6Vef4kFs>II;1lbrX1ncUS>Z$P6%IU)m>ScnaKC$#lQ08Fq9q+DQGI8L|gZUX~PL z+|La^0vL{QTr7{KNBJS8`JQ6@*OMq{eaqtWRY!^%+QwKn}tvKGQpw*V0^we{Zn2s5U+;Z(Prx7Kuy zX7AiZImeGGcE6E8VHZxCG-L|&2bQPnY)r@-Ka&cveHhmdvQBn&@ zYk3l=LNh3Eos-gJdIsU#Wm?hP-;@JbeRgcEwolTv1r04o<>q94duFwHmPXN&YW%A^DrdkjmTa%O167))N z;f~ge+1-5k?ZV(=0J-zNudt_fF$1@rH~%5Qv*Zawz)odm&}Oep-`q3vfa7f;xI+oK zWu)rc5=-^2Px2Pc+2#_Bl@49mZE|o_!o5zm>HHye`>#z+zCD zpB{{2OiTCYIY(=}+jRp#-m{@R^~*nQN0;E4t4_MiPX;i{v;11-mNl~x;aQAJy7iE1 zeAS?ao?B@2wI5ec-T^n`6oCsEq?Vy$79m9#cOeykg-}w3`}V$h?v7e`lq$)whc@Ow zfnaDq86?$zi5ZdroS?lxro#`yUtFYjbK;MJM)c!B|7cL|x<4;-VxvJEQ!u*N7R^Bv zva03qxSNabeS?F0THK`#oU&{#eU59IiiZS^zj6!j*)V zd=Gba8&6RoEgx^do?mliS7il_WKNEy7+NSDsej!7m^j4jN|U)%0O8EB+jxR&oO}Tb z`;M!>c$BeQ-+msvjYsWbJCBU!VGS!q#m!0z2U=4~c%zs1f^K|rt248oPuf4`Z07HQ zhfq9HH+rBA;Et3n03$({90p9NAA@5#&)&n=(&iApLblh_(3%@!FnMBZ_~U#J|Ha# z+-D`2QU}rJSDW8dqM27E91?XwWC$4)kPgxQi07-7`Q7kiaL%%j767n)W93&4XRx-rd% zHm_2a7-MYWr<13)ezPMqy^SYOVmp5)j%GXQHx7k(FrX@&%llM-hyb&d*bThR`+Y(6 z@cll8)B4fv&zza`gjZdHh;9ijl84)E7XuZQc%|#PSn39iUvTRhD8_Qm)H&izcXoB( zJJ;6p3x|&j4kAV?!*wu0Zq~r`W%wONv6pc%jB!KFAF6q4s~H9!MJ@4{)mL``YH3AFmh`yQ|)3D+!2CU%Ah@zWwGLwQ~rfIq%MIp96VnAkhI5nlbJDRWIp_ zuO2;k&{~l20T%b(IX=W&Ey!5Q8-O6maTG?vgafd}J|;nB{n=l5pVlpC{b1?I#J1c= zFplZULP@4-fCHizoc(}O>k&syxcao3s1HM`6Fa%jASIm?YlhZc$H@{39E)m)E#)eq z#q2}iQP5u-SER#UI1>BMy8PxS#cIlrTiH5jsRs4#0WhvB{(uMdz7suOX&a)WDL2gY zNjGgd;2=L> zW_!{1K3@DhHlyML_|KO}@5W}t?=WL#F!RKHujzvPw3{EnEpxM#pX&?19rkzVd`C7^ zFouj7hC96wdq&Zjxgoz?LyT|T|bY$c8M&gs9`%akB!yr8iW zO2;#Dy}#bBHH_h5mX!F!>)SM5+A>C?0!mfQSzlW3hPZaC3e|G5`fc?;d|S&pc02i( z#;8>OHC(Zequ|Lt;9B1&i`q)(AIVxa0^1o3xD}b-0nxtD-*0>QpHQ&r+D+&F^^g!D zUiuu;N2WeH4u z({BuMd$XHV(J*je;ISKQpKzEtsqhs)hZ=<4JUfqD=Iz(>4~ zoQl6E@r2E=nN9-`MD3z>)gI}d_0>6$PSm+}c8cBtLGp&vW1`QU_}fvE*|gMof^^Xv zoVMwZ1WIgJS=6*#C-|=r5@!w%M9KUB?-;2iX+2t*qYsih2f^ug6Tew`8?bfP&x}Wz z@!f$*ELW>N$a-l8h}TaHh7E`yPE%@!=Asp_kKk(Q(%WKg>LwRS#NB4G~7q~+mX4VxTooLd#u^JA>ut;`T39Lqya_D7^ zbzD+&g&d{qXu|}5f7`+5${TOakX`(bA5EQ1cUEi#`Njwy^o}@D@L27I*W%KHKl-eMy#J3>6!D zeI3GFZ41l5nk|F0JgJ%mg`>mS{R_GJaHU@0JKiFDy*>lff025wv*b^CUP>W0mR^?W z_M1ja_4lI1c2&Sgr0#My19GeO(n|3oksWn?Y48c*EuNkz@N~iK)!|eY<3@-VgunmH*>+O&`chsyklx zIUyZ0+R1%h!rmYYZC?bd@Om_cAQbW{6b#5=Pq~-p#;+~9gjY){Q}{?*@`gYI)^gkc zQtD;fzKN5QP2nW5zF1qgNldCl$fi)kee-N~nzS@3mR?B!60$WX?o=mY0$*M@*j$Jo z9O1aGVH)6`5ghM7xqt9tGB>kh%{9uO@xqdAOd{~RJEu_-P%O|kdc;EP=8X7HNdX?a zg!-&Qbvj=;DjzXFuD_0tpX4pvx#T=`RfRZ#d7a02r#1wd9_=#>&A1%pL6h3<0vTK5 zCHXS-vzlHO(;n`5WzekzdaXBQX6CR@V}9b@6*cARN|`(j3TqI`{a>u`+V|mlcnn<2 zjm1{l8&Z6?bh}dFXx>_@GalQ*fbQC`sNp5!H@sosud|GL8}Q8c{(q5!K&kWcUOUMa zYFRsm*A6-I8j^lhE@8f+O z=ReQF-UtVX!R)*PW;16IUdSWW7c?$Tj_5l7K^=v>nm;&M%@}L}#hl=++3wkTjhaUl zr{?8eEosWW<>cc@ia5oYerSquY^++c8xgu#IeyM)Ce2~d4!D|J91*CZuC8XADX>;p z&?$RNR*KKE$Azt4)2saT3xX+P)o6#Cp54%3f=&l*nlL7xkcmL{;TG@KxRbrm1In z*lq+KFT5jG@goI~-iU;@Eq)F;eNMZG^KxO)S9xn=bqgD8KnA>w8&YV+^q$0=syri7 zG{xXBFwOM5uA38s76%Gd<*N!o9HSBwZ`>nFF3W!xWs7LPZHI)BeR&z}8rHYs7Q7=Gfy zZ!TWbCD~V^!C0YCe}=FiU^LSzss4#u`FK{L944+@(iv`We5+ z=njN@P+iTj{?Jr1ZL!2Y9Mt6I1(DSh4cPkYNEka>yhUHZnHi=mxRJXNfz-?&aTHaF zSNHOU*$Q5uaujkZCEXLGK0)L0FmJYWx8K6vi0nBzP+jRVyi|6o!af0>Z9W83Hqf94 zcxcGyB*5F+pHzTyM;nxR0n*Nvg&gjOUj;ZtAiz1TBzEjeba*rrw-VeR z#m5(mO9k=SSgp}3=h0LXjI$?{wDh3)HW4BoRg<50@I~P@=3qXE!@jkcmk})COZAx# z`tWr$7SZx-%Pnx6-|_6p)Mci1#9Mr9NfUgQhE`xy`;bI$$H5<{f~kcC*EJd4i53@s zXlOaa?%yhKZSLgwYYm6Xtw;$((^7h-Eo8vo+Uhl$Eq6{bM*5Dh2p(GU3L5vEDwp8r z&K;f)R6D^3W&QgnXGnY_;IX%|deV`I8(4!#zkKm#dpJ?C5-ftXCleEaa9yDp`IUV7 zQjsD-NF)1`UB>zWTd^%)Zrj0ckq{8mrjbm^m~^V_5l(>CWb z9y7dWXep`^?78Ojmv<{=?5(Y)QWWbJBdZE~U{8rK401;fZhI4Saen(MX)FYkxTSUc7SnZH z@2!uLeTOrz?8!F`K#PdAFA{=qN8g+IKNVo=@2#1!Czl}*)C(7T<0z-iEX!|Yavq80 zZyoZFzg8qHW=2qnjJV<7FDkDUB2q$Ju=HXSMYx8L4cEARA+_lR^H7$%NpwX}pATO8 zvU=4q>;!68fyTBFOAB($OR<-HLe%RWFDw)fNsB`zB`lEXX!t9PMiYKu2BR~@HY-7& zFvHL@mRK?$s3E8AX(=&fGvdTCOH97XO6kbUu7owz;J&b)Q=3k*mOKBRuai9Tc@ULG zxB`K(n*`=!??SFiBZHcrB!!1lgo~UXrrZF0MuFgbyO7}j<}-@2*GR_{edm$h)}Z0d z4yB?q;(ujRO|s6C1g4jpu|~d2tX?N^%99LpM0TJ}NzPzQONM2@;voZ5r>k2nWTmvN zB}*inqE2Ve*>q`6a(*>As>YZoEd%5 z9nrwrA0l}s{Qv#${|&Pq$#<9|Z`kR_{zZ~?w{{v~9Rm}RB_2Um={gAPz2R`158bo? zm(x{tX{qs&S6#*l0rApR$6CVPy=(D?Fe2;n4g#3Bhxcu{j-LZs*Evn0mc}h^KxZ0M zKxg!NjwY+`EmG=dKeWy0^hrhj?WvdD9pq@A`xB>75EjsIrb?;h*@asU@mwF%9Tv&I z)hg!GL1CYw8a77>;Qh3Xv&g7B6soU0uOc4_cCZew09a1^yXD7r(D07X^=rE!4tTnGsm zNZlHcYW-j~*z<|#VR1?y6=0BpJY-?t&zepoT&ZB0CC-SouR+Y{!OG+bhwHknaI^RCPLTf5)D*|C|B@$Dqni zq$5sN7WN&q_2G~qUOdehd8yGJoJz-h1Vy`u)<1a+gWLny5|fpk(i1|&!wxmpQe#uu z3%|&&9tci**d#0kA-oK+NBiwpuUb^0CFIk}-C&?o=0Qjs#(V$)9RFBs*0}HQElHQn zqz`31lXp6=P!HEJTys$+pB=vsAAx;5J9*u%BSo=_D^Br$W**p7LV=kAP;;x5By{R7 zxZ3qMeoi2}dpRVjDeq#MLzk939~gb+Br4S0zsM1C%6h@j*Aw^0yz zKYXxVP4>~-VUf0JqH__AdN=q)pXUOn-?3j3dwH2yyrOA!Mi-@Zg7rVZnc znF?!V6w3SGU<{xikq!c61}sK=$iFAkLG^?8YUfZa=#OGy!DTz^aP5m)=lOh?D~F0b zh%btvKU5$k1;j}i>+HB2Ct|&yq)4d|*PVhi1;>&CuX$!jcgZ??F{GeEK(O2@C}l`~ zJ6Hbdi3+Z3SSva2U8Kz4u1K>EvPCAmC(=}o7>5OQw3UYje9FdFZ5`N@@*dsqu70w) z46UvvJ@d>--6PFb-=vXnOY$v+DbK02csIXve|bM$to$Uxz?mYWhgxcfM8($uHtr6xTVbLc_{iXU+i^8IJ;kT8zO2@oxHKZ9vJo+IkneWP8SYR@ zE<_^4?sYep0>*C1InaW+q!Kk>fypeKDrDU@fMSe3w|sW?U@R_YN&Dj|T{nJ7g1!;? za#q7$waA^-!?Ji;Fh!1Mwa!YQEeHhS`3!xgi8-nD+zb;fXC6e_jmXJtZSlUe!Sn+(Qa!+rsK zzwY}cM^^1s89H3%9;%heUefFr&E&8wM(t>6arU2~B&6Na0!CH7B%LJdM*Chx!T%Zb zF&i7bH9oika65pHTVnk}R~m1tE_vuf%!lnN%)gOm!tVt&yX2;fHCH?Tq>B%l8w<_2 z@CfKmT=#bZX43l(#0zbeB%^{-RiSwekB`5l#3cV-Y_sVCXl->ZH9qEhWmfC$F_SPX zR58iTz4Mz?d2Rkrh`0ZRd%YGN==XH&2S}Oz3fx7gqMPzXv^3=8(u#kOW?O^{g5=dm zYk7FzGpcU-0C0l&@$k##{JdkkfW!@|N3}f`Z}Z+ik5rho^g$o=7q_Ka4J++TAn?Y! zNw}K$$-U-Ch)Aq8w<36$QoxV@`In`gH3^Hoi98IQVY^xF$68!mc3P=W#(YO2ATC%$ ziW&V##VjVr)_1RN{vFGQmeLifwA=+8B{h0c@mGx1AG@p$rJQ#cD}Yiud{4)@Hnqt$ zm$q2^D6LRgx_Bpop&&#&r@(1uyzcZyPG@pB(Ok_lMb1mQ%Lhd8-qaa* zEMRA*?trdNduI26s9NZKl8g!MO&}l~Gh91d^jo_)#ns^0!n`Y{yCG20;pl&N>c}fE zior=1CH_SjPM!{jA`@hynoyM9&c7{Gm?kBa*`w0~P`cql_)aHQfCiXg`Q1TK>m(mD z*gSlTH3XdwOKT(T+cPT0F~30;(=+v%_e{YAG&6G551H>tXZ?on=?wFawMjQLZhE)& zHa?^&fjX@5U2mvKYKuhyxO76|@Se2A>KhIf-p%Jd3_hEGLJ#8#sxNqtrZ%WXyDGC6 z3ai}$NADANW4;{Z{hc~VuX*mro*Lid?FQT8|i3bS&dsD^I%kS_(;G-+yDKbS(+-Ui^FD$eEhkd~#7;fkR26DN>I`qUWtXm7mJRmxNJb!HQ zF|VQR;6aegzM;c>j(^~20?HkqAHFCRGGX4fhA~;kTe3I{g=Qn@?NKEayky7}lu#4g zGG|_p0LLSaakG^thycPf2m~=M{pt0U6MA@kBpvot536~p{QeBB(7pGW1CmY~8P^db zBIF?wb^wv1D?hoDp94iHygomD*h=xoEyX~F?x1jud{UY#7!S>z9f^~1aW9-4GKZjz z4tZn~YEVZ*v+2aLA7Fyo2k&Yvkrtm_w)0Ow^;~Ukkw{I2;23k`NBGE~T5a?&^0Qk8 z==D%shqaF!pW{7jV&7lZ6@tB}Pf$L;{11gSWoOk3sjRJ*tycS^Qrfr512hkAGsqH3sG97Z{4;AX(;rCRzmD1z zY(%QKqNWMX9-g3Q*rtrYp>x0`EsQKj0zS3Xi8`9SIp-5w9deuog z$OtEP={^QU#;}?~QUWNzyEEueQhdljCGAEnEq5lyel?kS9KN>Tmt0RR!v8+V`F7$2 zw=uPHw%M@=KZ_%Iju^>HAGAjfuHqxTzX+_rC!Sk=&>U6tRp+xy+jhj?KAr%lo*N=g z=33win)^q-O!oYEN2DwgYKD;hTvWg_&PJ~$%wZBmNq|g?8k_A$r|+aD8q>?b&0YbK4+x z56>~MJx2X}zs+v~q>3wDU2~rDhY&sDlqvuvzjPT^2N@Ia<}|zR&&&SwFA2z_VRk2b zpJHoA80Pi^hXqHqohg%YkRM0HUVdM;uIYR6QnAH|Xt^v!)Ha21cz5Qno3q&w$jW2Tw z`ks+{ZSp@<&en1npY7#q=047?w}+??u4c$`qhUh`$Uk{9U-K*87gm3M>J}*80pcqx zQlpGIGx~)Bjm-7mpY&M)-_u5lF%%;GNPxEbCV7f|W`RD9B?MfC^4=H(>3OOt6$6Lq z8bhl6gLnW*`{SY9AueO4cV&HuJ0*Cxb*${ZYq1UO_|`o}hh? z^}CirZOyxoA$D$G3^friL%)z!5cIK=1nYd@=5VWyUYThJ6f0Ssl-D?@++3ritkg+B zM+)@*E*~5TwJSYm8_Z1^`5J*gzBX!{dX!BJ%r54f!97(&1sE=mH|AqBQui910C{``;!a;dOa*&LSBjC`+1;AJdg3Irk; zW$@sQcDq0VX9nd74=N9|-xNF>eL`%t!VP zDiX%ltEX`T`U$tphmCzt_`^~Kkc>g*7>~eZBrnMcQIT}KXRp>tetQQztGjUEK^_+F zmhVB`E8kUhC$hQ1R}Nk<%wD;o%NgXN6R;A}mbrQGs`yvQo_p9%)>>gWRc*7OHCBdb zejn7uODkZo;7OuVB#^@x)c-KzmnBK)eC%3OsxEFjkqeI`->YPRs3X0xkSLc?|8GC1 zI)D&`8(UA$yiUmWOSW7;WJtGNohUU@;~D|PC5ych-M2o+n0s-^zm{E@(IA8Hnt+FR z=>>dG6AFLFYL1d_Dh=9c6#P zoh{<9R|-}IZG)A~Be8;{t&a=Euo9~Y`e}chokRLU+n>2tBQcXz(H2Yo498ORIfq6z z$pCGXS4d1cgmB7Qx^s6RO%Roc5|&-A*Bwz*)6_l|SXXnm)(*Z`8^P-ES|oGAXPEf= z5txw{{x!2Y--D+fpMM}yc^~+-4~|sC|6%@!dTmbAati$D)BQaxjnz9!vhY*31 z5&_i3E|cUQstWwjlS@dFTHUk?_0RCjJyrb3kREDF#l$~g%Re5NDC|4YYX zW{^1A>TeWhCi1;`gN#$I8`H(+79@21JUOtblJ4o=b0}nYLT1g-fshK9TJc)Nmh}_E z+xbN!P4}?wz)$&J)%zD`)m7sBFQLWsS2H^9mo)~I%8~tTHG5;q{AN_o!q*E>mDOH0x-m%3pjpU4;w=OQi>I47lKTUe zli>vApo!Jw27(y4^udt#2H0PuNQ?cg*fS`ogYh|>e z>@KC#lrzeERg#=hNWdGi+m1pFsz2&Y+Q{~AT*O*;lcm(ihyN=a$7~Nfmyz?03sGoDMB^rkA=%v=#u{sHt6ubkN}WV{<7X}8+J^msem}3xln&`uT zqm7D2&$QgW*lk<|a=~4@T~WE$ei%v%(8OqCp)2OhZq;89H8)NT@BQl`0lGBDfMI{y zq}(I?{RCfcYT-*mT4D|(fm)`yZ#f3Lrn7vMK0qXpn zB+9QS*T2I?E^D-RS-pG}@zECdgHQ!6(72GB1<|vff^Mrc_v2c;0vOk(Aj%)1d(Xu1 z0hIrMwc_m}|1XtV&bhywy@?>XU+j#(%1f@OU#gF(RqD_+dYk^^Hvjf<%fdWJvy`unw`Vp zwnj5r9fdA7XGjmrh63f-ikP3Pqef~gR8UZDaQ)SHNaeq1>v}S~nJco?@C5wS@EoNq z)xh5{1Cr1O^*+6t-7n5c6u1FoSLVudTw zWms_u$g*o7Mv(06UP0LZVmC4;^RX9X_8P56h1CXMI1ykVpf(r`TmETTLo0hH3O=>Q zRjc*9s%oe56)PKl6@~=%)IU5F&mxUnu(StJzuE_V3mXv|T6m_;De=bC$);?)_i6!i z!eiDaarHpvS_VJQU*Qw>b^o_JG}RkocxB_BRJRth2gGc^OVZRXWGV|6E3a8t9)$Th zDN4LRcA}*zT@ce(B@V)2*o%|4H9P`ohHkk&9Q{xB>>5OS(g_=U=q?>l%YB&;?(8tP z_H$;bUW`FHrscO%an}Gs_pp)x~UHz1q_KDZr5&nc*d>lovdxBjY+usrhn~Ztu5@` zG1PW;?jGS&?Gi!u=_Q3+?Frq8r$s{n29=W-T)kqnhR1MDCDHu1;J)o*v?a%W7do++ zWCPf$GqA4>+4lY|oZv2!y+3f-;e1ms&Y`%^enebPMxwBGhJt|D2M*86vjSx-q(1yH zi)|{r>qAWmPN)#3(U^_nXS~;!yJN98tknu@Wo>4WLyN-=Ba{dkQCtB;N)$Ed+xFrC zu1#7y@RT8zbaw*`-^;dMa2o1jLqy`qA`!JOSjGZ(arJwn#z zy*S%ra)c0;sqWcc!}iE2-*&A=(a@>y@(mnu774BqR7-7LsbYiz5GGs8GIvodX)t3Q z<-gvb5$dL~zWuXKj5aNmjA2%F-3rkzt2EVal1C+(%q04atRNXOy~GWZ&s!wq?Kh9B zef>s0x09NAzOvFz-4D{v$wvqiz$c3iJy-lVQ*J(zqEJoW_9%SPo{df`PWK8QjrS(0 z(==PHp6w{CU8EGd+&hV1?a$~=20f!lJQj z;N1oGg*|so(&pzn-Bce}sC|zTY}oMX$Q;QdF@7WmX|4}%Z;;)Xm8#$18E=e+u|k8X zkOrZRr2`v-FfH2h++ud>0Z;DtNnq_DxwYjIy%}F+)&{*Vb-#T&`wYe^b#YNGM1HMB zybOZ2+E^G0A}cmjm(0&S5?~H3|J07qL8%>Kn>^>GFgJd-S73EG@Arf*^s4oWFUqd0 zHqM3T7v*zE&71s;HfgRAxWWS2OVTcx&zq}Nv$t-i`|_Ih-VcAmiN4EyH|@NkUE^cD z+}MikZR&5HVa4pI&0*fVRlCt4Ql9}S-~{gqohvb3eE{3wCA9Cx(x{w1hh;Z{a?x7q zDx*Pr5g)UKNJiq6uCmF(JQO|^{q-;v)!Z;my33Q`A4D|Vhv+^I7as}AScXI5k zXQC|JzTcG_wUajcq&QPtIS!gw>3o%q*7l)!viC4pbO?--p**KGS;xbVk{#!Fph{hGVVQ%_j86-J)2>0~XdTsY$p1-krB@1#P(x+~ zHc++eNtREauu*&9(2%oMr+5xpzIT^@7H!}yuZOOcGM~2RVJpK2i$EiXiwMGcc0N+aHh+c!#t;=T&8JIJ+4_l37N<(QxqY-HKhr zC&((pZBce`!&$6bHnmf`ZI6;fK&t?F-JinoYq4`o`}wzXkubZ7p(VPCwl$|qC02rK`Kh*c zN~&hP%`)XEyN6oE{TxvrZVBtu{!NoXvaBcR^X#m5s|N97Si;25ye^yi+(Goohdfmw z+Mh<6+fYNDGO?DPGk4=9ys)X=`-N?leJdVn=8TdgL>kc0rxoCm6q)8m$6k&~18I}D zdWLHYZNVsv1N@Gv*dygRPnxXAs`4$yo^09RN{3+xcI~4me&a9mZkN38+S8AM8(5b2c8P#JA*s`?D(Yu!)7c6ZVLW+i@JUTrf?b2RkoM3M|NOeP4TDD&S4)0dpW|_M zGm$gN(-OZI*@j-PwD^5(cmd!FBvtXV*EgauJlUE9Izt;X0AVuLePJ+Ol3oU%qA_Cx z>xWh;(2>6d$r1sirFNcL5t`|)Y!I@<+~@$h;1zGNed(=Q)YQ~PSiL=nIZlf1hYig! zH)y6Z!=z^_4#*7HkQXs>#6=JPt#K?>%B&+_kDHc{{JgF(!g;7gX8RC>eMwHPTam3HNe>m>Mw z?ehCnjYb_eky@2%Mk7E&t-CLe83*+u?~zKdgWQAK6G|0|M;MX8c!dt31UO-#TVoDG z@8iwM4B1UH+p>@$X0;33WtqsSk~yC2SEhTsooM_xKB8 z!lf+H9P*oI7`oHDh>dxNuE!Pr*0(Nx zn+6^7%~Vbp^1+4vIkr-*@C5o^pYXTRpURyY#A_AYO=_3akFMn~d4D4YEX>ofT!PSewY?AYO`-LD`WPl4}j8|hE{?NVAx=F_2_jX{NdgSc3&aMl%d+!Z zs?*7*ShPXqCGyP7CA|m_bAkH+-WFa=%yM@hWGEV}W4yawg|x?YR^PoLCO{a^I{c87 z*e7(i&;kZ?Kk_#Jqm=zQ?SL<{OW`tV+=8n67KG4`GII}#x+B zBI6=tLKTh`>lN6exC&+1X_!7?WP9y$FCy5>1-%{QJ&iiwtnpoLCQ_JgoR$N`&7pARh=X?6R35eyr1;?<+&afA@AUr`=uU=OP7*vuwVA0~0W zWnR5fo{tOvCeUtHS9Uf0q56p*Z}R+9c3aGo%LP1jNfzJifUN1RgR%LbD)FiXpjg~z zrNF`n!=yi5SnAY54h%adksiK}Z&4-B!tGC|as1%x-?ZE3g=7y?=0=_G=k`B2qP^a# zSno1D0Zrp90^R?E2N)vSA*{$ik|U6TSgT1TYOal&-sSkY3t_(Wkjq;Y>STjPcf%G- zHe_%@`AIcb>DE3D4D_ueXC2c}%K}-9Ig(k^RgJcZ8aMUX1fY}AK4X-joS?@+n zEo~2K^j6<rg~KB*T%%Hy#XK>vvv%WRNU<@d!79S$abZ(R1GFRYF<+#q-OpXmFQ~)s#1c?B)2xJTY`WPpW>u(Ck5g z=~o~86k%jDQKihZNQH^G8TaT&)q1t=rJNim$a2jtTZ;{q*KwPfL;GdA9FqEGt|pRf zD0x~$2h$!xg+$2}?iWd!ak21nrZZhj^#l9u+^CM|9++j^d{eEr?lK`}ojEt{93#w~ zEpZR9qMOwOc5%$1>t+FTZ#~$I1O&RlMq?vFE2pGFQgqk@1{<%>PJnCZS8yBGBxg2w z)nhUL0I&dNla{o--{45dbVA{a;HDw()zf#Wk%#?dtC^G$ee*XPt<;*M_Ws>zpJjel z^|j5^-!H_ge)u%JktjLKq}rFBUIz!bA|BDMX^S-RP1zsS^$L)tY2=~8$3y;VX37<6 zcN~~mOPZ1UD|fb(K!lg^JvUX%G=An)2P10|-NH%dQZyB`ajn;^F9-2 zDhBG;VYZ0(qte{wHs&yD;TvnYBD}D-*i*+b5$8~To%17Q!gmai&vWAa#>PZ6JPWx4 z7>D4cmM7-A4)7-Mh%i}A1y^V-6*7`-oJ)dPO{~lEW@j3-L&rdfpX0Aa9L%Iq390Yp z=P=GnhyH~MzV)d-YZ0HOULmuk=huQ8R<}DJUMo{k|6S8KjT_-NXjxeM-Jk0;#N8`@ zj2is4Wm!^@m%3x+Il3v~^ru>CnBJ&gVGNfJ;;kp!AG9wwE>IX+Ef|1|ZlL$oZgaZD1o&5hD`7 zU(wm9!;~E6m#s2OqvQUkOL8=xb-6zGg_hFI;Wq@y&6o;%kM)c)1=tK!cW}(TyA!v^ z&fJG{FG~lBIQj6<+nI9-X=o_D&|V^G=IQ%r`=i;Hw7Dl7LOfGftx-INSV(ufCcI&w zeL=V-GzpxufQpbYG50fu-eB)icCXfID*ZV&dAUc;x`-w_6BZ{;zK`{D@1`Qj7||sO zx#S*7M#j2YyQ$p6mZNnlUbN|BAh?bBC^DxBUiel5kxjKTGjg1ur=CkBp%_ z*K-ONpBFlRu39>U6*ABwWuilWtLCId=;TUh_dW@N^p%du1g*^%w-75nuf8Ca>MGxr zxgGitd3=fjVwSe1j+OB|+L!R0)X*@8(T3XjHY(zD8y`9yC|=$a)LMzZ&|sCZYq}p@ zD1KD@AvSiz)!g|=<3%FE*F*DSBP5U2RuYhrdq^`pneAw>w9>nCql~T(<9fDO(u0Ys zC+OP?roUe6+|GFk&Y*Jt*o6Om#S$llfX01{e>>6hE>jCfS9K>{lNSNQ6E3+wCZJ|Y z^9%15-BFTYsEq%f>_1o>6V4D>lKy%>I19K2HN+A{gHQ5nvI(PKzjCfZS-tsI>mT@f zQXjOIKtx!KSmpkN#5H0vACw<*aF3ac%X{o>?5eoY>ls=W7gm)@1<@b5Sl_a%os;?5 zvaqcRXf?bJ5U1h`PllcORyCZ%LYST{89mK^ik@pIyvSM8cy)nbMng|hJ}VG<^8Pf_ zZ}3%t;Rtf$PX;ip(0Ok!y}=*95@H_czh?{+$)(4{JtE19)PXJt6Dq8pFs%mAK}duR zN}M3*?0|lnP2!|jjI=q-izPEetm7pi!E<^ zOZ!N>$$1%BrKxj)_{Vl~jgwlv+_57q3nA-Y6L$Vr`Kq|m>vY$c9J(`c@Y!ej_L(xB*K5i*3taIs+!@qzCdKcM@q>^2(^3sWUiCHTDg zN0qsk2!!H(>;YH`+FqW3i6EyLzNv&^MZ~U;hop{F!Nz~lkNifY8;moJ#L9JJavUO? z`Wl>Ra%4L}iZr1hiKIY)79jnzt1JG%dVlw>wa`3{RsW@gbM7yjFu1vO05n5Pzo5dzl`-IV^b*X1 zt~|fXpo#97&$HOcpap1Hm6d zo`u4uX?E?VOor7e^hkB)ga-POs+Xk&zeWCCrP;A9CeyqfoMlK{a7%Xo4(QTM+FPt> z=skl{X{SV))*f1C+etHSFgonwn#Ov(elu6fia!CpX@QOx15nYvRMi!U(HX+cyE^E}&A0=AC$U$ z+Ky!ZUkYV=cI7ma1emtpQ#j+ouvEqNGX>1Z^@~v@mwq<{#|bb$AOIb3SQYGW66c}{ zaYe>JOXjS4)i`JT*{*^co8C8O{HmQ_!;zx^;RrGy6OiKu*#H8%jCd%AbtYM(t+|@+ zVqh=(flAlO5X~)U-TjLo5q11F3n2rc>N7)pr2BxTIDGj_+=ExN4A$a&rPgJvu||_7 z%;u>|z1-H@_FSACf4g1u(_&CS_Y(cWaz+qwI53&QggI@%kf22Th;0njl7 z_&JlDyDI-_rH|^G#lI17zPj-BPk~x^2ZB*-bOLeEtO5>?ipG{}%1xTzYFory#M)E* z4GG#q_gtHBsxW(^l#kjDi`-4oJxi#miJxBN_5rAMIU=yVrwgJxxD*1qwP;0y_K*RA zZXbbQT7lhbzXHCf@F#~}GsNCn%D&mkF`~~nX3(C;>V+=i3ox2lv9_=3;vP#L1g$)n z0h%uQBAUvFcK)i?Yq>3&1R;=Sa%Xo+DWNBwq=`X z9sBffRk;(*_B%AULK#@><>HMCQ&;2lKhwiv*(N&}fh$iRGnKn+D(Dv53OjrkEG*v}Eb)Ww0@6okhegKbSDnvpywC5e zo(;3=u-o&p!zBQDSV}Cdqm<}r@VP5LTS6XFIE;Jn^7I;}lNrVfBp8xB9QiYL|3vaP zJMifwC-?SjXD29jx*eK*o_=pnL7W?;%0I~5)XlZiG!*9U*IC{sFM;52`eyu$VYrLG z@~0ES;^Y^(Trhqtc-5Egaj`oW@*Wdkde}iSrZ{%+k2%+HO1Ru;^Y!ekg*#FVZPmI$G#rweCe{&d@C;z^YkRB(@piwadWV zAQW2!8M)=QOzfcd3KZ z_nca*$MDnaYj^xc@oDr-M0&qC`j0_TgQkI_zxt5B-{vr)cl#kM4ap`6Z`1c91M{Kq zsYXr6ykGNIv`b`>jY45e@60o|8)6mZH!~ZQmf0kId~g8K0WSZmKb~!i~_MNxSDsB@QH_J-N9_53KuL$^BAQa2am`y-i=0Y<2C2X54FD*S4 zz3B@=*iMWjt**Bj=4j9_7a*5J5BfaHrj z=fNNu+1THU z`Q=0ZJW~p<^OD0-yZxQP<(+xuB22S%3PrdMdS?p#k!0$fIb8J^GVkAUdzc<CgWL3J%2K)X#0l&F8(#Af#F*27mKeG#q3L6F;_WQ76C=yq%d!iy zCS`6xLu-HSw=r%4diRAO#2ZGM=lb02_Iu8>RBj@-^OO|GiDJa2Od71MsCAm(ndlLw zP%*)|8}&R&L->jCFYKdr{B<+GcOR973zmPn$?Qeeo^#k zY&D|z7d>~U1o8K=XAU2nw(W!7sX)(Yi+lyq`$@O~6XZM0V`x!-Z?fMxSEDagGPc%6 zGqeQn`=R9`z-Ta;twCIr^3S3<_HkUQ6~qGlm2FA)&xv&<9RLK_OBlIP_r8^>oLO60axRkF5IL&jqXPY8KcCWr+ey&m6kU{ zxm}63jhXcqm_KJ8Jb`xWDj0NJaw{YNW50opW0f{Z>u=`m>SL_%V~yu_&CYFVuI54o zfotmj!|yE6bp&o|FokCLXeY)2+X!8 z_msf5NM;5pCU?RAEnX23$n)~w+w3iHje(f*ss0k1~GIQ7w$!iAQE1wmvJr;NEPi86oHGRF`rc}S$u5R_ zl46Yo3mU3{D9ua?0!A2(`471c_5HD+3BV_B5hlOA``0t27gq{cm`@t_x=-g?{GCEA z(+j8MjWPVh1K?&Hbo-}2@f)S>Q+^chWaCTiK;D`F-J;a@4{+!fC{rZNd?DuJ>Gn^6 z5iBY?MUr`J3BjSG=*OhwkEf1sIz(?)RZZ61Bl%`xEuwlWrMIFLf!C{>5^QwdDGhie z6S^NG;MR@?S4GDSCncaB!hr}wFrL;cke$f@PBgN zuzH`VQbTcaRUzpQ50{>J_v}3+z19}Dma*JKkhvF9qtH0MDNG->fya;)34W2iRwB@LAS=C8Wz#Blz z7vo*k0c!LA)>ntRncs=aG_(O%`#vW46~X8ovH+hgcBp8&HxU@`5V)rtt@k2)Xx%K1%({i`ZU?~()MGv8#KH-+)p+axL>5ggS6l-RvBCl&_l?Js4gEV zph~3%>AYN7oB0z2EvklUzxYMl*A3;L$?pqQtPKlVBK@Wv54hv$kNQi#5R*@>L|?6J zG(qm9O1$Q_m6NlHQ`;(;-JT%Vz<7Xiz53s098?K>b=*mwncOr^=vzeGmph994^x$m z)tjgq1x=30JVdr)F&tuiL6gjo?sP_}&&}n(xAdEQi#m;%@n?TtF!eU~Wm3_2jgvjz z1%RsbB7Wvs|{RRDbLUQhhjr3n; z&!x>`Qck$$Pe zu|{xWTCt%`Orqh<3d=y!7X>_Y{!YG;q7WzDQ{=1Ptq)C42V>0480uBh_oWsdkZ=+R zwXwTfkE}X=)+tQ?vtOowhj9+j+?w_`XrenFYI$yvy+)jDb#ltS?Gbnlq$Jems!H5# zKL9-k9|XotVQOVAiRky{H_NzHX|_~Jwb`Sjd@Xlayx+`=W`!D?_$gASM9S}Lj$_uz zY2_bmqNqJKoO3d6$hFtERYxVF>Yzttz_O|Lk;cJhzlb0 zwoEe!GqM8pl1nW)HJI+R`GG#I%&{LH+Rg{J{QJ{qNX!YtV$e(R0KU|88OUXmrtx4B zfb~Vpk@-sa(sZahH2n&`a5;JHVdJ zQ=S*W{e@I}2GrqVuU{W&5ietTW@qY_GxZ$(L;#sb{7ncj5=c6KEgI&{GO9Tj+Y{e} zZ;!O}DH@R5Ipp8z#bjul# zcskcAMYbB2{D0ubFaS|&BmI8*y z|LzAmq?dv+WwC(pVg%^v=}T2B`T)q#y{1<)7B3dC#@hPYN6+vKpC$OR$}V5geuoF1 z-B^Kl*DPWR6Ttl2p{$ezcqq#17hg8(R;yvGtz_%HX&U;WCQD-;q_A7X#(8@jWhK9< z4%BX;KTO`xEZ7p!c)$b}Ijm?u3OfagJ`4+YT9hSJO`m2ltfe{2)jt)b(nvGmlpkgf zVDE)f@^(qnp^A&1@Js$8viHq)X=SXGV^Vof zK`vSXTe(afTcNlWMX?~!tNecC6JzRm9KYjLvoS8=zkm zBfcJ(drI{6aOnqjwRgYs!D%XZL>+GZ68$PwcXy?756g6EP;^$MsuZ|BLiY2~tzPFh zfs8|Q_J6*}3^pS{jdKjqlJce)Qx8Zv>y#eWyWd|jKXu!N4?E{A zqXtZ{8YRulfB{W604+>^c_Qg`DB|CFU!B{5#LDT2eA?K8_5b1%Ez+*swbNgVp%f@$ zgCjJtMl=4R;efDNGEQ>$Rh28*T9qrqmN!OA=qtoDe7OCw95oKlQ1% z`8ZCY$fR@eT6f1Co`~>cxBm72_PwL|8OxmrBy)Ra3NIHaw zxS_PB`Yq2nxALv;P*LYxsk&Le(R-}=)-0nEs%{oVDd{9NxXp|K!<=-mQizlz!OsMy_D`Jo4rB6Z>_qa!vqK9VY3~D8zdNQVkenkQN9($>1o0vF+^* zMW|%i`~OmO6~_u_#v)EvR7w8-P3MY4jv@gq3aKEP>wLzV2e_9X1|8D)1Dw%0NooHQ zz4Rxt#o7OQ-biod4YA5{$|-**J#Y=sDmvOkLfXzlf0eDcZ8I)V&c?q`ul3)*!E)E9y(T}m_1`+XuZ7PlBV^W+L3)e0>wo>aBA?$GfK42oCaSJD>E<|L zR>CA?a75AJx%%BD{hTMjHPDs1d=T{0X4g;H-uzSXqiXLTFI>5CzG)rL3;re~CO`L; z5Ao^~RDgbsQ<+ENB3ftt*=*|Gen`1f=yZ0$9p6Ji&PDm!fKoThrMm{k=E_@!T76DY z50{V2Fj(8ayE4M=f=I2HyDmP#3RQgs*lT4n9%%RRDZ?)!*HK96N9QX#S$?=(pz>t&BbvcRs+ z1yrxTKvzz{S9SX0!kolt$eUuG2TK)XZ#O~Z5ZK84|1Dbowv#_Pr{AqSHH2zj!=5$| zdr-Zdz-2>!Og?Zo?P#-qCbW?_U12CH$8CBi4Q}DWzxFq#vpuVuqa0g(uP#fkLk1G3 zR<+tR0{`xi4Hc^9h+%lSf{T*XPl`Z!0S>K9*N|%(gCA-B`f1TG8infSxMRpWL0_jQ z<4;k&?3Jdy@oRn;7qCf5y5wr`&DgWvQ<+5iSiyVT3rkDJfBmfCbNZd=iuK8ICuVm8 z+ECQ!kjaiANf{ynuX>#S1Za}OwG(czh(XtWQbdM#z*IB;wrGL5^a=37#7S17uL*(E z*1bV4s;b^ch|33lm(D+P{PL~#`AO%*83aw7z4YJtm{-YO>R!vWTJsy{cRmU0+U0gkuH!Pj^aGMYTj=az}34QcE@>SsD9vb_5l9F zi>$7{S=;y+@}5}t`@G6tGw5DGm5o9Q*c1~+^x}S?+UW#FNjJsx+npSaUA->UWF}9% z03`(VD+Wsbb2mBCM_u0Q3Yr+ri zHFm0R1`Y~T0OeHrTxK!v5t&eiY` zh2-7SilPJ6P>kS3;`J$=6{OS1&KB0yamou^XZ}hVFwKSeA0C!Lz@7n?{$z%}8E~=y z2rKd5D-b?$P(GNC$F?%*(vZPp1G1`XrX5OTQW7?d!vGex_9u6VHRZo`No&3WR zVRI&O#{x%-(`MJqH(?pg$V|f5QfEuY2mVtX+yP2Qt0gCIf0MJC)5w$#33>TiUezT5 zmEo+Dl`QA6>=S|Lnm_0gN?WM3I-1R*^1Ede+r}q%*8QuXOXK#aW{A&{IY!0!*-u`# zxM5|+X)#~G&gZd^Z*eLL>16sJcFG+|Yn$o4`2N)V)e%n*NuJfM2gYjH*ymjG0z%wv zI4?4@pXl++pco;X?y~%5Ul*_BdCRY`NTr+Ez!Zx*nH4|bEi{2T7aXI8!b<#b4%s7v zr_Y=JR0T+`rZ8Mh0lXoUSfr}|gPQqz;yxDWKf!~gM|wXVxBtrQzfjV^ z;(wS+7(4y=ER4Egr)5)7m86Fa&O%*{RdSJQXiqLdNW<3i{8|Da$Q5js7~l z4?rm8BsHFHd(H3A1R9Dg5bb1!PI1$XLvlBFY`K^*TR->V7ge*00B*-$>Eqe7u}?7a%mA#3cYc0=b)z@)$B*_bg4wi>vYq$4v`@}wtZRw;yUB? z@)fr#N=})FC-GDNCHN&Of%ie7yd&pcsHk0da8KdfacwE{SKC9Eb)I)tm)v#03aKF53GPoL65ro2LT z(MetD8i1UP^B zMt15~aowtrBAM0{yct;&5yK%TMwJeBJ#gyLSKHcxoxYnwD{)KwR zym8qb)q_smAga346B4Q<;Mf6jv~}}-CmCPJ-c?WLeT7KCE(1W?1 z)6F*wodu=>wrJ$(VbC7#mGu%Aff2I4kYA04o;aTR5X?vfgb6CI>3F@~K-Ds)*NHG$ zUx8~a;Hsv5NL!gzw+SO9IZXJSLLm9&WwWV~L%7YSc)3{Dt%3US{ePt0JnOG*seuhYGXgZ_Qu7 zwX2I-57j1AWnqA=j7XW{HEcLHmje55km&i3DSgcMH?b|@9L+NAo{JjckBZUYxtQ#o zkjjW*Y1=*;Z=DPUnO0z~*hlURw%?%5Jd>rY0RLY(hRXLFZKk8d5#ysKK;>_~L^LQ1 zO@@@#KKLbey8KY}a*$kx1R3J$P1PN=j2<1e!6Qh{4D~B)UxRIz`?LRN?<57%FicMe zoF0D|bAqC6LKLyS-W0)gu~cGAXBip(^x6Nw@awLBwH#^x)AAs;GI`%eIvfc~_W?7p z_6hm^AO%RT-kLLSUzoDLuo9$?apuhQeo)n+Vr~pF!95PxiUQCqMHq;dl`&prT;E)6 zcfVGme;;x8*CGaj=M2%hudY;226>K`p4zICj5O{&1h*ILRSxM=uWixTGBl9+et-!E zVZh0Da&WT9rOn|7Y#qYaktRy-v^gVeFjw z237`mHuD#OG7MUxIrmny*I_*b1G91enFA26k9*xoW+YM82CS+$TTa5kQ>k&>x(%F! z{k{_uN~9~SfpKzYqU4ldxjB!(O(7|&c8DJlA zBXcQ(n0l|-ri|s832XgNl)}4r5erWQIOz|x)x)db0c5zp`T1FN+-j`Mz;fvZKl*I$9j=hYL8b1oHxu-3Q zY8-M`gz-J)86B}SL7=J4GEvP5{K?+ioQ;mEZduWnNn_Jb+0xyQne+|Prub=NI%{<^ zD(nOYI3!cno(QDbp`4*bXty;{S?jKZnx8XQOE&J>*=x1R{6NgKaTXbrn7hitJR6(I z4CQC~%Ijk#053rEUVl^YcqWIRhM#08oi`1wY{a; z5!uUbwHzJXldXRt{pT&@#<>Fivv*diZPr|lN9JzT=PYr9`svE6vLp{Zmr^jrCf}kf zc(mrEz|EJlB&_}Vt{S)*csxGHmYSurqVfSZs_gVgH<=`PYIEsb#FkgfZaLd>9SGV*vCYcU0BrcNa_@<^SMJzSU-)5?u~DM&*2kDI6k2r(ReVf(>a`RPob)8Z zEyHnTAI-qSV)@FSCRpfm2O2kzf$*Exr zH!Q-dMwmU}MOLn}fss)-K8Og1SX}7t(VGVvsMI2l*NAI z+2ncDK=uTT#Eq*Tl4GObWDw&1!io&_=AGhV3Pg}jQ3Z~pGFB&zGPP^bK@Wae@4CI;9dtq6$ zqtL!V$(hK&P3l?W-Z?7{fbP&wPy8%Upx>xz`lY6+wNa_O)kUh#41bz0QXxU(A>Y8W zLUSX_Mf{DF$jc-OFKwmj$m!$Aq9iabxBFve?nYyJ{|(n?!-i0{&9a2HJ08uyq2fI9 zuFYft)GNjL8IA3YKGeB!V~3(wm0XKa3z=y=JP#T2!)e&BY+EVrNkQor$aem!xX|av z#2be3CW9eG!dm3_5$?+V~Y^O^yel*1lF&O+2BpZ(Qd9P=VD~M*5|Fcj_|WQogA)dHJt$`J6X8B zF#x^f`w}=|l7WvS`)GGa7fSXKZzcquy(C_@{M8ZBir4%y4<?W@#*LKKT)8pE}zF`A%Q>*cVTxiHoE!k;C%qi$l_^U9L))(QXG!_*tdNmvr_WA2Z2r6tNTH8$(Jp+B59nN(*TPx41wcF3JvN_g7we~wog=z?)2L`hpImpo=nOwOT+_(7?a_IOKm7x|K zCwFCojdNn^9w|XKs4vcZmyR^VO2&c@Q&x`ei2uoLCi~K**BD*IfvwAhxuCmMtz(M5 zwjpaZISN!LPcDTo79WMN&SFuN*6AgsyoFDS0Oi-A;Z}tqB@}db8=V`Dy+~_-Q{(Mr zD$I9r8=C8#_x#u>p7XxTBA?Y{c=5b!wa?9933+^9safpCwb^6ZU9wvju6BbF{x}>P z_!Q>coL!n3cwUmAyjEBd#J^64Bp;V@xr#fJ$=GwvN&p~iOH=mf(g9E9!?P#k5Rxj` z;tCNwM!vOftGzQ=Eo@4jZcE<_uX4OBO~{H3>HvT)pKh#wxL8{*bp&Kp9%Y>;(TY_At}hUTpgIra%t zyFU>^R0T38ICS`}-A$8$=;tcj^SA1VmAP*dO?Rc$Bf5@*65h&J|5BMo(Hikd^ETY3 zQ)w>(5=kHYb-Rh7*$UoPaJ*iDq_dPm)v%J|8ATgKc8UfubJ+O*9Mf3vsn`7F(%hnU z2Ix%h@@aY0!dNK>)YcOf>tRcl!I{ANQ?69k^j-kw6rGH84NE(19c*qz+!l4>99{43 zMSOfmPiYnacw85QiZc?@J{|&!R&4~A2bErq@Z!^q{zW&OY(g-qunFCy3$c4d9ReOA zN2YQSm6SC)+Ei$~V?>ip;$9G_aW zb}9{2VOx5qk}(Hg;!0R+O}psvUczv`oNdp&FI`^q;e$e}2n=AqnKkH448JVPh2<%$ z`GW9T`!2H_6=aGe-*sWGxW25%@wX>r#!RiI_`&5Jbjj)mR}?~hFVbGCd^xqPPO^hj zMchMPF+}@!Ly}_M{xg^`G(Yc*KGoA-qsyt{8mVc|l@aS5si6?hTJ1S}8}}qATrMy! ze&ATBpzv#TvS+2(_N!ty(&_6|``H6dWmvM7biPUgQ)|7z4D-2nXEKls(g*X>vplTj zhlf6M@kj=mr;&pT-#dFb$~Y_*laVQvWkx6H+xY+=d%?Z%8?td;%jcld+bc2! z^R(m0d{3g#{MO+CG63O|@uAP=2g8i^nTs#Xn4?p+r2ZWKk=rB?es3TJvk%pzq`bhu!^7R2jV;TpK;_@)LU*}@H zdJlU#=#hs{Gz%Spgr+klel<^$n}kdqA6;t{MLKBE&8vf`9GhY zL?6foCqG(D%Qn~lZnfu|^Nt=4mAKZSv_wvvQQXFpi%;*%(u<)xMY;4L5l!We0L&z&2(22zc^I-OTifB+kR?r_$5hYnRCaGH^KJm zuGV36dgjf3=$}HQe~X($D9?f2p(K8=N4+8Eu49t)njv@fNS!oD<|}A-s`x$!Xh5;P z=Y4CMB40v<;6!GsSopT^)4%MZe~i3eR~oYvBUdsa#+FASTA@zHZ~D=l56_IpQffzS&`6$d@%x=svy@miYqwBKlT z|3nRZrvNY!g7+(Vh^#+2CgN(3=}RxnwTtSJ?{QQmeyQN{l}N~i*UE#2E}NNi6&fsG zDts55Xt~=3ZE(V)T{PknzUQv7ht48CpFkTX6dO*e$m?mAE?_|D2;GSTQ>($s^||a zXKM?YG1@-s&IwgXu@2B(?%spC*BV_Rciv zqZ=AT{nv_IVo|4aDh|FRCzGSaG-aQ@2uEsjFvfTZDK0$yINAK|5WcoUWxHR4$IpN$ z?)hPKqC&%a`HWF&wUVKD_kj{IRNSyZ6k18!ry5}71t=yZSXRD10v7-rimZh+HoS=* z$|k#qYqA^t8ZnSqNQ|KD>Sl}6G567po|1?XIr2FlrU56*QGI$M+tju&nXTcJrnn*C zvrLC)=;Bu|*$X(eT^kV81X-xp zHXTwt<1 zW7h5Y_jjvTjo0$t-f{4v2mY#L;Is}jGHZ|+{4ugmu$ktX{krd^n*jDN@eh*ARmGA$ zuNh^+&jQC^=8&?kYveOvj0D$&u@w=_a-32vB@17YCw3Hn}xx zaV*HoFU$59)y(pE@yK`?W=jqovBr&ejCZ2hJ7tK^I1Fo-I^V&;D$u?R4#Jw96YbDy zAVo{%RLSaD3de+~g>hc`<3MHyYAQe)At-e^;h5jO+1k z-wi3_snjfH%#7?8pk?9@Io^DmOJTe1IW}=h80VYUHK~x8dqAhRowc(+M<9s%Gfpxo zTzqfzL)vuCio4xh@CX$u+1Of@|nj9x> z;^c=O6(9Fn1>e}CYxZhqfgk?t_1+fbSh0M5ocEkSKn8G~mzQM~dYF;x;I%R2d}!6v zPW3~w<$;8{gckh327;cuK(Dy}8r9sEjo<)Yzb~b5#m(s*H7*2mgSIgIFxRsw=tiID zZh6x+EP*pXdZstwLsDPv)zkLJzzGt@^+leJXZZ8F>u6Af@qinH9wt zqd7kYHuF$+4j&L#@AbLaW0Zpa{6|L3TK#1hsW$I1_`LwQoZFRXG&T+OTu`bl8QVHM z!r%kAG21iR^hu0mk))~By*$&X3=;||uGzN9a|-E)g$oSh(MU6iO3{h*Q9MlZ~5A+RscS)0041XlkxG$YoJhu zb=HrWuZ=C73+Cg2e9qCWu!Z+J_~7CF`i-tIfTF^V5X3v&E;ZYj3VBsMcb}ftTWeEx zla@83<=z!UasTlX)Gt4klL7!Or)@~Jku(#AFSEmvwXrsQNS2t-Ux5?j$;Z^rx~(nI z$Zp0~t|I)LK2qa?VJ&AkwkMEbJ4-P^xAAukH@CYjl&$0%(Hv9#Vx!)69Fxn2(7SO^ z_*{V}_8bSU!*07TaSVnNuxXntWFYxXR<3V&+;F2QKA6!BP$=YHcA|6YZA5#S{4640 ztcPHGxWTubw!9}a4OAmEerEj7tWO|4TVS*U znAgD!JFGmHOWw4;gk2>8E3_Hnq1$IADA!@`JVn&6iPS zurwuS@!&UviPtSNMqKA}9lPG-5H&fB0jvcq^{m84#MO4oT1KR0`sAp*yVE4VxoWTB z)Gux094H>*;=I)S+Oxsmg8RPD`FYE-cqj<};yj>m5bm<1bQDo^kcvDH)Y<0rY-O}C z5hs3VedZZ+D&|RDA=CpWg!hK(Sy0%pM9CO&_$ZXKy)I%-;cy_K? z0l|w}ihJQ{T#nd>Nr z9=6-EBPIMndvzN!%G045WRSFH$rK{^Vkqtaac#1Exq0=l;wf!g_W3IhN_XR6fZN)Ry4MOO>*mU+fn@ou6i&_Cq zJ2^lo0e6ZSGaO&}JAYhd{0c3g$lw4fz4o~O9d-EPI_b@-TlRF&l+|0K|8TzUomUY!FQtNx1e&)G zab(w(w@=T4jujm3cI5WWHg7w5Zmw&xgIG6jZaijaf6h~6RTiGQys-65$zmKcc}3PH zWS9POe0jIggd+P)jM}Quri;jHnT{2Q&Y) zg$XwK-HUi{7tsJ_Uy?4y#)|Fsxmx%lKyMfbft!p89A_)Wz2|bMja3;~Lc zh72bhw-Jo-MyI%HVL@;_Tba@|a;9Bq;Ly3ux|-AB7tKY}W&a-=47|54V zTgO$MDvN$ZLuD@FD&6_LJh)uMZR?_oex82PDKy3_H8PN>BQc?qg}cXwKTSiclV{l; z;MIwC@}A%O%c{)(ZH!&0V>kHcT>$?)>CnG@Rtc``^0<8{Ex%*etGD!9-9>K{pHAgL z+Avo)inGq>_ITve$;e=^HU8|VY(TX)jSFj|UjcQ_GMZUrc+}+9mNUwf;r6%9ww_fh zxMm55&PARg{9+pDpp~lQU5txst^e+_1b4%#l;z{Z1~0%bs`$W;o0d3DF*Z=g;H;)e zj%mp3qdJYG`E-`*3?F-jA$0}rXH(Grm0@FBT_VVU+8f*5&Y`Iw(^>O1C4X*FB zapP`Y3BQ-Ly_e)he z^{kwwLiU5rGad1DDWQQPW?=t=aVrhj@d1JxGx8CHsD8(A9k|ayr+2!W%YZpg|N5e& z@9jAwtzXm|*=#z3#QiF+APT&rf-|`L93zMBqFb~Yf7ui%bHPhNrrr)EA3!MDf$*EL zx>X2zHn{aw1xJA-?lacC#-u_G-Jq-{i~dEcW3}3g7`h}F|A;-2fv<4r^B{FuZ&!{7 zkYru;;`+{l$$H)V(-O}= zhlH@&V$-nGP6J@;nPDfuMCJGcMpmssl)-~@Xn~=7#L>10YvoY@M3;lB(Bd9)w=4a? ze65&cbjFNR<4)_%!j?sqBbUv-=(QnrI@bcqTBtxt4bgQ#In4Q2PH&II3_!(IM$XK% z7_>!K;K?J3d%zisOZ0!4R{d>*m9>h1MLA%u!U?IEj$;Uv5z z^6s%m(zCu#U$coq&RVuH;ltno}GHji@JAS!P?G#^8MQ-jBOBJEBq=9SllQo{v~2%+mglIeqLM_vI%FCKX@3+zoyPV;(yoY&BWMH#IYau^c)OX^sfHnUJs=cw4#V9X=a53u??( zAUpdwz3bWodVBRLBg;o~oxL~QBD7kUZ>6hGMhGhRSk)u26g|B=rSu2U{S;s^3M3`)G&aOFaCC-aS?! zUqMRx;=xP3+jqyow&5wwV&i(ZEtj3wo3UYH{^4_(ixwu^V7V&}9FS?sq!4Ke;FX^| zPE=+tuSsjHCv1w+|0@FWydaxw_AgG`i)&l0b^t>8rSaRJM(H(Ib7v zQiY>(M@NnA8%?V-cQx<|BDiUGQF-s>I9{3CkU`f^{lWZX`8I#nhQyQPZ~T3V834oq zR_ybv=TVnyN2t%e<0VWgxKIA+tq!X_Z&v5poZ-|1Or(0o=L0+`IK`~b+da#Ln?XPP ztY%qp=F&T@sU11kTqq<_jmnm!{C@fIIJ4!@QbBz!e=EoJG~0_legkdG<{Mk)d7|&A zf&L#<_ac!FxtU45pL{|Xm(m02+26z;Cd!65Z-_Rp(2xd`htl5n4dsW_Xy@^6$SH6w zr!<3^EWM5LNuHbLkg&B!W?27#A!Tf>__w`n9mynn_t)xa*J8X_%hFO-@dr2RJYK`x z7ZS74s|_RiJnUN|M!JgWvX&`BO^thiyZ$ik!xdz+YeX8NP(QDiSM?&x4|Fd23$6dc z_xSSgCaX-HP9x$8nyS8{QSk!#oO>F7a{C-H?@velDv!=@Vl->$ zbUN8}fl2Xf7y+yb_pT#%^5E$$Nw|r!KPbLn2A6r`h^Q@7{9*3eh7aiBoF(#0qPCj0 z?dM;sJ%#47hu@jZYOY@kaZu;K&*9&AHj)T1EgK$At^J}v=mK2$2qZ`4J7@RAsPh>b zHh=QL9-(I2)Ew1anrC0Xx8T`nJLBJ4<2PV6zcJJ7zR~!ZLisvX^Y~K$$#~qVkiM=u z;fKO421}?1c3p-Q&WQLXIc_4U0e-&~w)MoUBlMF?te6;MU!Vj7Teg-g2nlZXhph%r ze@t>=9M?=Xy)wuXA};gjJLEh)8U#o?LQRL!t6Oc}FUg}JZHIn2Rkvx>N$LO}Sgm8q zE_5+!$lV9d2y!V{_aXx_(ZNM?7I&!l13$!liNFdf-efZ8Eqvt1lQ&CySeVRAN};xG zjkCFTui5o=2zI>Rd!fR50onV0%mc*sqk9Owa}p6X^wj8QCRQG~m(vo~$4O)1RSD5v zx|W$k6LN^4U+v<*<~ml}9#SOeiJ{6LW-kU!wm^lKI%iU?On3d(nyFjPgeFi(asqMo zT-R)yC&<}iYP$W;3IXadzfXC?NNzz{8fDe*+^^%Car-@u`BTyZVBx@hq{nTZ=%MWU z<0)))p&k)q4u{I^X9_h4kM3{R1mv&OWrB8kQnPnNbI`vuge31dUoX5MBh z=`{Jiio>*l5pz}wU)G@!&hB&pcV>w*#;56BMpuwi3Vndx-U3V94tkc?;wc9=fM8z%bRgKrbFY6{!wYxjxsoKG{>TqFEc!88^hB8I z!T_e9;r@~i_F9*~O-VoY^}Z1e<{U>cf~W z#eQ^oQgC^N_*WyEsON<}5wSFf?6qY9@znaS5Mta}zTTdp0Y0Z2Qcspf&}2{Tl^vIU zrSLHAKFgf|iZehbGFWP_vX*F+zay4X0$lF$u7=oN<%y2Cz+D0?gVmQ8Ju_*P+`4R2 z+T%-f)=9g*BQ|Pd zz4p1mD8XcUB5TKSYnn{d<+y=SJeWMRyly3*)Ug}9Z-P*|E1>%y>9;`Ur!%9+s@7GB z%qJ_Q*T(1_Or3wa;=Wv@1OkdV?*1AxFidn9XQrh#+dUazn{5&VdF6O(qA(F?QSNgCkT!D#PVL_@Ko{S=n%J=^4exLg9@#!B4%Gc| zC2)iB!!lagf70aNqJ)1$2CpZmrpiyb)P{@QKXPo<*L7XMcirDF_S&ki{yF%Tl16G# z*qEcJ{M$q#5c86FU#qas%G);9Y+!KNy*RdF9Z)-@C8hljk3s)N-~}#<3<;5tmmeel zEpPe%YCjuSb>7`YC!Rd+*tId+5AUaaCrf|S>8mXsw}PH6t5Xhn9D&Bgzppz{(T!#T zOb=^q&+PTGb`I*XSpQ>=2q!gOR6WAJSN;5wJ`>by*lP*y8B4$c$ zNJj~_b)wl&y!i}0+C`P{J%(%Q)yU}ch2S3-tf$~GR;J0DWjb6Kgpf!_%;)!iw8Fo> zY;@x#r(k}1L>SHjEV`r|jOd2Ehy>@#*y`K#z)#QHdaW|PypR9F%XE6P3zeY+*YLS= z@bE9%{jW8o`{TX#WJNIep)TZZ7lzpaOZ5~3hj$lT1Sy@MG~7q@^$fL({{nG(~_ zRm42DxyI6*Os3d@l@qJ}a76yE&hyQ?G}Dc1dMcHP(L#II^ZJ0r2MYbFs>F@oBr+!! zhu0^AM&0WzEWB7gJ(_$z8oT4_-O2Kz>krQ4znk}q?WHdd!&5MCIIO_+Z#j2YYp&-a zMu!fml2pFl(m~;(SoaMev#l9ItXvqwjXOpK!2g&~|NAJ?Q0098kLN|fDx6ke+oa^y z-9E5C>9Fg)3Pt&?{AD}pK2%dYBvKJHyMpU>eU)wl8jk+ER+F1gPP^}WQ0fASi?Nb$ z4Kkw{c{dRYNI!hx$r}fG{P~(vCiJ1EYpv4rp7=pY?&LXNLvy-NgQS0T$e;iDaQm55 z4%7i_A@U>#@vTGF)d5%$OVA%{WQx*DN{Q=sRS^@IL16x$wTbRsD*V}@;Vgh(ZL?lhdS=DC3YuNnHJ@8M>4EMEj zi893xq4i8&5Qt`O?4-;P9r47x{Q6X-yOn3h!Xpte+uS$L4Cc~;k2vG)h5n+T=AVyK z*12IfB;&~gSY$fg7`_Ac4>F-h4!fBHwPp3Ip1Z@vBi4~G z1Gx@VF|3M95&WzAs{dQC5xAiC<);wX$HYC#$i$?pMbYP7ZVsaAn)t@8%&ENDJnVo} zH-h*3Q(Z+RDzK3Cl!o4adBNq!=Qz1WzkfqNz%#TcE?{G9aF|I8r6)Q5{cmB=gVNHQ zbWh6D3%7u}&#;#)weSq>^=m=2)3~^XbiAtBzh2V{kw^E-C5PxdD z_GE@xaD^WA(!uOrA$Tdpg=JI5 z3v%(<#j@XB7s~2I!W)pNujtu6O1FPR91EL zFA$G$zyJqUQx~-+99d6R@;vs{$X5y2&!m$21tAZAvaBeD({uRw=z2_0p>$xT9laZh z)llxv9S@a$DUpH9k7GTl(#aNhYt#iUg$JU1AIosPD#QU=kXqybJM8~4^LJZA=cZl-M76_|8gYW zQTaZi^0*^w{3BfMQe9=#uvYSY(Z`E}-HDtdRZo?mW><7yZaotI_Nih}wDm!!R?FpG z_u0I{`(y!3wcl^?t7Y$q0l^$BcSt0k)AnxfK^kT4}#~6#4 zDO)k>{d(bY=k`+O>F&yqsMpbgvv8H^+iAYoyUk*V{n-~2h5fh!%hV+PcfQ22ZKcd@ z9jbqJ*U~9@*fpiT9xXJg{%Hz1QSrvZiIUh)7EnFZf-Kr*T<@UZdZ97;ZCTGqDS?G(JnK0g;4H? zLRIm=N-w0vo6xK;bOQgjo%B1MVy~U>f0v`z>2{P3MbK8thZr>3N3H1dTP2#lN&XsoT!5t#(2T(6{Bc zVppe@5Bw0hHy5X>;#g1C1K}dcxm}0i+S^LMw$AMQk2a53iwwnqQ+Hm6-|G#gHJ^>x z8CaIs@6`3b!m_1VQdCqW?!Ogf!Co>%zF9!di`+oN)01Px1xV+uwsHNqoo#jzgC_YMdC4`Xi`7S-GJ4NJ)=F@q@0PzoZgdl&^=)38V1>7pc$#{%JL7$1)O%oUgJ?G*5pF=T&MK- zJ_@?Qf6@KC)zQ?P+VPI8Zq7efvgkVVJo~K~bj<6x+Vy(G66>2_$ZXr`oulwl^%liR z`!%sLnLSu_3B*)A4BNvd1bC+gUt2lzd^)aq4ALTz`|tG%SwjxzQb}C{uPFop(n|;T z?HRD41oH+gr3GN&&a%@ibh};j5xT9#@KMk~>+Hzr+_vkUoep^dqjk^L!L7=t7oVYeu$q2BlP)jP!-aiZg$ioa(CRKFv zg@~(I@>h&5fIQgwoIT%3q^<1f-3GdHbO~q0P{80OGy&Y2Qq?LEMo7>b$b9f@V+Ebm zYE))?z~a#i(AA~GV15JpWu1hXvC@secv~}+chhU>TL1hAcUNp(>301}P3H245b%!T zmKI^JMMPMqCqUKV>Chb|*&+_KDy^@fVp^(>Lo2Wvt}A=>w|HBQ@ZTT*tMu{IOyp2t z7G=yTJGdkQ`aN&0OWfstx46>ccY8L)wlI9cN95O-x5wkrwlcSL$6MKc>CZg@o-Oh| zV6!za)!x60+|v1)^`t-OEM%6=_s_#y>5t#h88l{Je3$b_j=0almX7CZB3qfiZ6W!h z`6vYrgP=3F6d0 zxH&8Jqi!nqpxvNL3bTqHWhMi6g}Ve}?!+QR2ZK21sj@HpTLAWYXjnhMsM?B28M?aQ zR2I0PWy}OrYs79=0zTprLx&-}oWoJLB2Wz?^kp8w$d3!oTVM%%xgL=kigXBGj_7NL zoy2g339y6L$+#vwMCrZpz#ri@ND8+SWc;wiQ+nR4%W!sGEa(j<)Oe?AnJxy`1se+r z%5@jq3T%@SZu$~sA(CTj3`ftexmtLHMvbXwH4ZTTIohnK+z~=h7ajgy+Qp5oiV=2~ zo-Qpw)1n{IKsWhj(B72Ib5qf-Yy{45TM-@W>mb{r&XOwmEj4Yuz45Df+{<9I$v3VG zxlm+kErBqwWZWm(1>_eVnu+3Xc^*`b2(Ji>axXVHmae~onSydVgSZBF=9ei90jlz( z8l3|q$$T)CD7XY*ABr@^K=xi3pZ*mX=yL0_k>px*`%GvUJhx1-A-gUOLZX}--ld#F?u>VOq>NGiIQfS6wVxIGBR|HlFijtbKGC2B!zO5OPrVK$TgdMK(B{*;14NTP}$^dH$3>VVm z5%s|FgG=}#BDv>fvX}jqpk2$-<3qmwPq9V7ZVNL;LO;jk5aa|UozDA_1#(ia+?3G! zo?Q1d%k%*cIpmHV^uVd*f*{v95Eii<r!3=fT;Ow zew8ZwESYci6u@{L4ef1pr?-a{5*Z^W7=0e6+t+U-J1pLm{5cL2sj8mR7tCPk{b|7^ zf{pT?5_Zq-qrQJrP)TD;Z!6I83T|0s6<1Ps6ItfPMdBiUA}EF6^F@i=?xO#3TTbFcKz^rSVGnY8LRpv6LtKEMuwIvSkcTv1pnn7vHRDH?q zdB6j=Z4PLKPFAXEdZ{4i`b&?=FUs}JCt0hW?wDV2{-*-FfB+01LFB0$+juqUAHsL% zADH)&i%X@SZJGS$nN;18uWL2lrZBEx|Go({=L5wuri#%|Oq-pe!$eupVg(t$IPXzs z{VdGPLX4j*hl-*B4H1?-I*-2gFw@DoW9_~+w>-3Of}=n-AF5<>*Hmqb;*mZ6%w$@FsT@UM8*o;t8B8sdvR!1a0Hwxe`fW8j4((G zLEXOlmt{Q}mC-~*xf~u(Jwy9-6OW}chyxR=M}iW1P&@Cb0GVQD2nA7&;KaGY__KiW zt{6?uHAbYy3Ef=rFSMH%v3Y({y?D4(;p#5fzo`PXAJO&ucyM#jSnNA0ONs6!E^a7^ zixD~&*MWOgD0v}ic#VrjaEuxp$vaY`XAeca)&kazvQ{-TG#a-qgmX-Z|D36NZ6PUb zrnSHk&d2$@h}*c?0Y9Os0{FEiX%}vzJK`4+YB}U*r$@p#b6o`ABSc*{;;Rg{c>KC8 zj^yLuN6}t^0JjoyUwWu|o2ws-!?-(9MVK5rbKa$X02Bn0LwxFO=%2%Pc|DrYUfuh> z=sN+%CZIuO&WpE8mB|;b8$KWI$_0iQ85dt(NMnj~fcHUf)|G@fGz!eCkQ>Njt5@4DCPINi(zs|qp=8FvZj7N0s3=@SH(vSj z?U1dbQT8K=*2*sqdbi=r?jMG2N(|^a6Vn?a#ss7( zC9Z>~1X|M&r^XrR?7P!KPJ{iT=_S0&^EE!)BS+YMEBCsoaa(rkb%YMeU7L#pkjJ7C zKi?l%BGTHQ-nyyB{p#1$-7_ZzZUDu8&9a`a%@En@Ut-ZMayt5LjMjuJw|Gi7Qn6*q zl)FVWsO|I7Z)#dn%&ohCNEZ#o@GTtBF4sSKB6^l`ZwijDA#>h$hj}K+OLvwbyKm+f zGk3s*Gn12gl`07K`i-$?wleM~6D|KUw4%kN(Z&2a9=*T%-sR%m>PqJM>A6zL8+Q#C zE!WHPD|Me zQJsy;s(%y{8Xg;_UWI{$+cmRH)QNe0e7rc`(}~+7@pQ2c9})36Dn2lEAjm@?6!)>w zYeZXY&3LRJ4hFm1TUy~w;wF3Dcp2)$5-|X}`UZ>-vmb;EgePQ(8qnN$8(ZKL%TK}&h2r2?DR&+y;ZCSqE>H`us zYA90)i$&x`_gN&h@P6fi+gxZvBtMi*-{g=W+LMexg{MD?&WYi5Z!M28#cY_GG|)H1 z^wRsl^}oSBaoCf^Ibz^&s7OA+CWAeej)OL9I7!;GdMbv7OlUGIyR>vW_ozP-!z2Q$ z(!24FeSCM}`EO zsXCQb(iF7r&mMT^&`uXV9!a$?_A5WkFMU(IH(%L(ICr5F(Cb0R@RSq{rLGS*m}uT+ z8_*#HIaDo$&m5bUZI@IXWN?JyTJFQc7pJULe`KHz`W^8y?GLX`kCqD3f05`w{J%}9 z=2=iRI%GBis*`P_A~s0-dk#&0*UNa(D8^V}lC1 zQ|vw26X2W0ZkiD|n!ZeER8e79XIi@@Jvwv2W%4snC4pfAcq+xd3 z_ars8V!)DmtdmDBv)-tU#iH)R(p38v&z?E{v0omKt!w3PrMqq(Dlu5!`9}6EIaOhF zv)<|T*lTjn5=O_eb8gupl%Q<@$N~U_+QA(X)RSGgv@K$?Z8;mi0tE>n@65aoc2P zp@I9)tPrV3-v<_(n6qTWd(A0nBG|dQS;gSI>6=5dmL^u=uk@^j;nXh0d29yJ799Z& zt+eqgnzbSo^v$ z!XMk+SX5o*m}KL}r|ldHbX@QDw+853t2o*g|2j$7_YmIdjIdbUh-G3j0v|s%r#{2w zijJiyp`*8ce1TVeP=DF`a@B{%uh4|zaER>7i;@9N@c7iXQAcM#bz|R<67Bh{tdq%y zB!XGaf9@L!6v!R*dbc=j707XrDi|nVe;Q^PcK&hE7|)b%hRq&H9Uji%2*4D-g zm9Gcgqqkq=?%xnER4!kln1#Rs9+FcF%*Qnu1zjlhYU~?6uTs%9_(@#XMi{^-OG3Db}ptQ(%iDpPjlwf8TjL zmG0xVh)|-ODCEU|mzLg}oSRrX-Bb0 z%XhPKu<^{H+znmH$h{)jZi8pJ4|&(q7_BuI-A{#AjD)5je#aCqOoOr8yzXOwOP4Pq zJV<8a&QwKToXYr>`=D$Y4qvRU9NxX-$x?vVL45r+V~9$Q$)54P7YGGG)>3*-!~GCN z8^T&W2leBrcG|;n6~xvbr{kJJW2R&Bg(B9F&q=|?g;{RzK|TrRB$0p_9h77yOw$LY zeQLg{+h~kpWYQn7K5z&RLt9l|9<^9j`-CD`4~bgl-#agQerK6sOL9ZrFdtTDBGS8K zQ1A?S<0rfhr-Vi|=uaj$iwdh%!M)!6!EwkAP;J?JfosTJPR+eXdqy(Qt=cz;3tvD=cEx_P317FpK8&# zsuQ|XR;MvuFqAJ;aKU_js?%BDvlN+X;3>~^?*N~x`e#%vX@7NAljeAD^cm|S<&Nzj zsdX(`D-O#krRw)ZXXPrBn;&U42zy`zcfg_}WI@Z#nO&!w!P@dIC?#@+(wASC*$zr7 zs>~ldF6EYxdNrD9IH^4Tm0#fKH671dd~A>XXjMXZ8`=%Xs+vQ-BHG%$Vgl+PhFE_7 z+{Lj$=l}X1{$S_czPL_A>=?*OeO(uk*-1}V12GKO%-9}v&blQe9i;Amd| z#hFS1w#1(dLG}yiyMYw;!)lf4#W5Vii6r_+G1hjAN(ncjkapu{tlTu6Z)n$#qAFF!bmXb!GalrBs9h2myp6V>o!NSz9_BE4Ch%;d;1xk8-MA1VwN>!j8+d^@loXm zu?@(#W2b{iB}zXPS$$P)GlEx(6+5L}W%N&K4Bu~sb(O3G9PfVWB`~I^?$qM1Wyh|> z_JNx702aPKt17l(CU<1K#DpPEr+H%@9j;IJ@f}@S&#OyAhSP!3_RFTpIGLAI{;*Cs zor)8iXLu!ny;{ewym92{aC4iFSTA0A?RY5vz}bf9OH0z#`_kUt!HoB}7_#`dv{AoP zT=eTv<(kNlbkxiL@e)$M?&~la)vL*c2IKQ{J=5h0LT4PmIEU*a)a(za@;l6E?CdwyE}9% z4gVvCls$?c|CKtaGM@7M4`(TNpB_kR&b5h8WyKS7J%*emT05W5SXh9Sn6Rk5TxLg= z8TM&q$LkaSCQ;+NDI)SlrzLZ|j88eSM3}hd_}l}yQCMGBxfGkXh?h8DO#V$CgbeZh zfQv!S)!KM#$-0P(#?%+eV>8CRLknDyK@)tlWcRH$TKai>{jBybhPL=VOrt>gO|FvL zOtZY_t;>OU9VK1c28(aM`>?rr&)!>=ac(7Uge`bz+KAMQMRZfXbty*O$JIY`j1E(~ zt`I`crd*>j9apW;2&_;-l0$|=F5h(d^3R#MiJ`4iWNSe$x9+H=EePP-6OnWR{Q}uQ zYN38tif3JP&;C$rCCc9g5@RE)aG}5sg=VBHbDI0k%@B(xLZx8&3c-SnOW-^AFvLmz zXk@8G*WzxNz4v_9oNdl$zf4(E&%j@cc*0w88(%+M0otQA8e?yOX*MUB( zt?k4}XZ|kMCiHZz$T}+1HL(6IMu2XmoTDU7J1ZeXlCXT=EB-Ppk#Qm6H+^W(bx~rt zJM&U0HeS2E{Ot$2GWx8O#7nI@JNUm;^*EkQh)w_V|&+(^zrGLywICVvK|^gOg?F)d;3d1(HcAb}kHKT>W4Wddzrm z4uClY`}wQGr}*!^fvI2v0o_F!J&J*R5T{ zH{F#fc^ul;v}gTXP8~ORG1A#GVFamP^1YF!Y~E9y$s4&{;h#G{F8Yz(i-tDH(ZA&# z%rG5UJdUyX6iav%zl+hiMvzPfK9iwN`WU3lP(oVT!=P-8aF9ZB7x#J7<(=G9;Kvo7 zP{)o#sEn42Dc3kF9@3SFl-8N#FPkLc|Pf0xeF^YTrx8v-?)rsCw zvMLp>tQVPH`TTUEqa~7bnD%-lPi%Egw?{O)`Z(Nm%1x4uV-T`}o_|N{?I#dfpj)Aa zweu_gSL;!~VM?x=to-nPLpP))sycv9b+>4=TBd0ePS(absp6{%`L!I1=yo;Yghii+ zIVfq_r9n33^*YN;Hd&TjcsdAL>eRKfs%|CQjvUFax_f`z^ClxfdWLj-Y z`j=`Ia2V_Z6DgZt8qw;RzTb1BptR<@&x)E}C61Y`jVyX%_y9MTUyiF{? z)MHOxIFC(ZCfDhsB-FMhd{+WY z3dzr&0Z;Eu@m6`(hC+7Z;SI-i9W+jz@vBjsqaQX0bU&8{ zGI`(sW5_RQSk3f$#Ud5q$>7C-Je4jsXYM&Iaj`gz{Qj;e)p668+V=S>zZd!(WA!^6 z8v`{IGr20xaJR&EKs~wp(xZ~eRL8lfbbyub(ulC(uH_9TD|7;}g^XWJnhrrcB}T>L zV%_y|OhNEwNICXP_BEC7x=MOFV{oIkeKd!Cxd@=V`1e6k;$S8&+Z<*^5>_n;?8(D? z=Bliz+EOv`{R)W=>#NEf~`G zYl>mB^DJ+8Gb%yp)5Uk^$E|g7)3`Y>gPDg(3`?FT((^Q2#*&5nd0e*NU`pD{qCU}R zJs=BEY}^|M*iDwm5)LzDRz5L@!Ocw8y2f`_N3XxZu4D_?SQ) z<@Ft+pl1md^|ppB)+&o#(1Kxx(2cv2GL_R0!?xMee6@<*hz~7AlS$XS28&Gz*w$qE zr9}1@%LfYKY%u0uZ;Ne5-2KW4rRR^3St?tahu-CDo15((sv_UKc6cNC!XS!7_tyAn zFZ;V%oHqv_Tyt1Qug{?P*^j99y&+pVU6Nig~Va zWU{DusT1kIIFGV2ueW{UNwaCB|KlaEyHTz!r?J0n z!{og=-&?x3JJh`Yl$-*TcLH?Impb3Wx%D&u$Z743?|y%1;D-C`4`unRNVTxR!Jf6Q z!jF^k(+*kbo6B%%I|9^?+!0aDo|)WX5q7J_3yQmzL4;=_EBmX~7uxl7qD}*YSX~ul z;PHIy4zr&rJ`mden6%U*vhY{HA?k4Lw|!TTpLcRMq#-I|flEbll5Fl($v`GOZ2jTt z4)@>q`Zzu(3_=|o4AmIQTi6$5vGZj_{l=|fc${K_e6#CqHBg^bPfv^{`XZ&G#ccFL zBeQ_DeoJ#$V1q?aTv&fCc!9ZBexXw6=eLZL_=0IJg>q^CVW!2xIK8h2Y!*u{!h>6z zZz3%Y?=DM(tSogNE(q?c7u)u;sdHu3Z!lZbv!HETZXj5w2Z0E&af~O;X5-f+)^n%@ zgW@RY`i^%4%wWH+-s1_Z)TLqG?K!Z(9_&;J31!dSox0pzo-j6{LuZc>@!zoH{ zjO`=VHxrL$w+fi66mhLulz*wQKD@mRF^n;cn?kf)>3yZzITLa%b*qLxv967@&E4Oa zxEA+g+NybDMKVZgoS9xym>fp%wRXg|w#Lu%h0F%SKhQ2^Fi2a9V0Iy2gBt+Gg@yK> zlsL4f^Zb50H3y?0soy?OUOsGISgdP;muQs^-4NWlR5NJx&cxNjEDhvPiUEY~eL6k%|aYqJViixTX6R=*TRVUs2*WO9QPl9RISln5`oHlVv~tzT9ql zGrRgP60e${G&A@=B9!wU%(Zz@pBBT z{AZMT5d((H`#7l&0zB}>v693MLekbB-x;;tWDeYD5*fRIJz(T8){SPSqMQyi|HKyh zE6*xH21ljqxL^2oh-6s7*uyJydp!;QAc3AZ;7yk3t$#v0@w>&*qMLj*jQJT7^eTJC=YDi{AD){}RoxnBJ^ARQ z@>(@SKMUcc37MZ0YAt^lmtt&#p7`nZ$2_!@(@g(A->?53gbOL$djLatT5wx|*AB*H zzyJ7BGF%8L?(Go2#a_9u`~P{H0*nxn!qFXohTZ z=l_eR;Q2{(a$L}q%DYJ@79fn!CA&KTOak*@n{|8A=7n&8K_u@k(>Whc-?eYdSzsWrN=N9+x67w<3A%$l}~q;*M`)z%yoLbr^;@#iQ4lto1+$^NVR0VM!Odh=L&y!3DIQ-k`w-K zEr9%@E$HOaVv}Z$FmU>+qO=lI{Xfyd|7T{1VtanN=jqy#x)`At<947k2cLNG_Q0rd zNFqf;!+gRqrN8KkQ1-DiravF?7A5#7`u%XzQDN#LMs~}8jG_PfmE>1|s(2GubC7;a z%|VBICp~)d{3~P2$F5UzXweZRyh*k1N4H5%RsC@$@_1O;M}1nE!ow3w?Eju-Wf>qz z75jBdZmTNWKf`_F2+wO9uP9e;zR&})Q}Zf?B4h%a^?PDXJDRhK+z4#DuN&>ng0IZp zmZQ{uk2oSN(#D=s(ZG{?BU<&}Rz^6VKc?7Vu``A=vvV#fXCi^rG~IcH<$D?hiRqseOKZo?C0c<$zSI7neEHY6{qsT;iiz-) zQG$7T7QVf-sh~b+sHiA$KR)fTnxi0X$VPY-rY_L2Kb&(o9Og&JoWZrz3bEh)Cn3^* z@g_v?c{G?R+IzPK`Rc7$?RlD+xYgEPfl{)>qE}*E76sVl=?hp2+`+ocW_153BmVd2 z|L4ZO{&4S;s|OHVUx3jZAyWAhMKLCa{fPg@@=&H)FL4t5!mW}w?WeLrvciM^dzeao z9>D%m$mhh}@mKAh90+j#7&pBLYj>}ry>+%BIad26@X_J&3AIo&b7-jv4@tocM{Jc- z@q*M9fP?IVdLOqRr}5gptDyztzTat~C)8EUrjkC19y2G^u+05TeAxm>S1TNx z4+|az+eVSFy?Z|wX4IW--(ux=J+~B%$_6mne{3gWIw8NQ*da!4DG ziz8Io4{mGt{QX)}%Jx=%ZDP|*7;w}&_^7V@AiK)nU#tI0fxSL&|Afxi`!tt^AUo@^ zy0x|S0f36FG>H}H0b0X&Ht>eb^hRB?=UIQrAI_m006Sdy*Tcqq=#v>68ym0h4I-V- zUSISWn3z(4$1kI~^YU|z-&E_^H~(e_^wwWDY3Y}EFnb}pNo@g>ACJV1m;LEq+vH&+ zHA}u;*8s#*o3=aBp!r3zRk!+uAr;r;iZ@#KO89W6Qf{mH`$P)gBBB#8FKIS|{RV*K zOfHj$&FDp5xBY3eeiNyqE}p{XOhI?MTEg2RgWG-piP);_kpUpJ-GDii>$}<}Qhul( zO$LC>zmrkjZU=`+%I3u=x_{nEerE9LXCf1&tFbmKP2#-w3AMACL(~RrHJo7|z$wQ@ zwX6DHCEQ&zHmbhTV~juY+%i`y78+J+geQ;N8aA*et7j`DF=e`ctD0s1M@k*9(7)cH zZ~=If2;WBim@xN@x9(N$TGy)u%gxlr9@jlj3;6nZUwG&OWJnMAAkg=J=PD}EHv@?P z#%7^12eE)wdH+Xd66_;A`1M~)CBdD%#E#uofD*uK)PdcI?4k6L9P3X#mEidsx(Bba zFQd-@W3JDm*J3z)s_H7gKYkB@#J_iJ25H2e`pl1SC~xTvr#}+%xyc#? zbDia<=vVx;p>qRV@UjN4uo5&|2orIkh_?6dZ|ozUSOQqn?6aM5rtmp{BhoK_;N91o zNA;K`NQad)vv%O!VQN@G5jem_Por7Or=)0D@*faJIZU4F$;Hhz)%z)SQ^j+7l_hP3 zbA@7^gz|0``+G%#B!eeP5o>O*J3GC!>U-q>O**4%!1j%-sg&p^jqk;ZGTpNlfRCc{=1mf{*M2#G2u~;1Zv^0B zwJSbwo9VJ;0_9H_Sog_Fmka=+1)a*Tzc4TbYCphl%I#t$Y>t3$-teymcQIgjlEWHC z;_mOvf=?cpRoD1|2D|lpEJ#1#N)f37AQ<$Rh8;cY9{@5YE4) z#5?o!W9{p(zJEA`S@+v{9wj{nVMuV~gwf~l5ovsC4v73hbACVa>+@aQaDQ6*>|c_! zRkCvaqO{HNHQySU=l0xv-4}h*d^~LV(tU>yyc0fI;2eN5a${lr&9|Hm%Wc%FCvPzV87Bc#xuZT zzZtq2{mPRoS$Z}uy79)m2kX|i%^%~X&y`Cd^=0OfckgeH?a`bPs_6j0IF~nO=JctexNyzs2U*I^kSRa4$Y9z}#0OEFV+$ow!;*y*jXSW;yHV#!^ zU@vK?#R7On^nARs@%RiU?;72HWH|LRmoyU!?sL{!O4IlP>ic;G1=4>B3t@8E!all} zD;z!dC>jg1JinvvC;oN5!z8)9ygaEc^-(HN&fL8MF;b;ceq}*neAtJPJD=+G%mYp| z%e#&MBD^=#ps(mh-P2vv=>nq8LCC1x1-usJ*fz)NO9gCBb9TbUcZOnd$PQg+U`G*D z>rnoFTF|ZaCgxw0%h;WOw1k;)TcR*3Kyoc5Azpv=CZn+_q{%-aNT?Bo+02| z5G9|^)sq&K<+;l|MS7e5%$EwEg1fKV4EmYo`l>{?UTr(&)r91I6qY?XveADO{Fhx6 zhKH&nby()ZGQwZ*}-$l+rhS!E~SN0}Pvl z0S1|!9adb~(>?T{(8r(lY$yi%Le7%EZhw4CsA~xk>D0B00~qkOg)f|+ZX(K#r`q9d z(_J6$+sbC|%+=c0dCHBX`CTY2vvFP#dvGmrg#r8!5qB$(plIPC_-ZdNM#L(l2QHER zl8K8iWUE-xB*wSP&CONW5v*gJI&oW^6?LtkbglEHC#kKvWr_Rs?;tB(mcpU(wV#^?obVpUx0OhWW1-(+JZIWYipz`h|#du z8yI9Axb=rud-FseC{~dG50FHkI#esPN-Q_B!Q;!K)Fg-gpI}1?#LyGL>3BuRHBvEO z)L7J9)L3Ga#&uowFaQq@ff{;1aRi$@7Oo0l8W90Npj;US>G`qloIHnDs`3M;N4HyxKN$E(u z>mrubCSl-|={OVfbZTameeK@&jsp^ZA@=d9yo_#tq(!gL8=d&%ntQ}?Jm67el`frD zy)R5wPSi!8}ga_RMM9MyxWWlUt8 za*4}le~^q;Z(<5>E!6E{I)0#JxBYybqwpuemmDf-FS|3< zNqnlUr%DKeB%NDZ&rO{L$<_3~Tna#;gGnt-wy)DD{FA zaw$J~w4-S_l)6RH9=n7&Yd>9PWT*PbPnebBm9jQM{KGBb)!ye@+K_L2w%c1bvcJ`! zH}KUt|9b2LjYZzT3>jrOQc_cd#H#ZHE8#6g;A8p}mqG1l?Wbc}CIPfi#+{GkJwJY! zh|FY=u?sFu=DquHRzBUZcKFrn zv#AgL43#Xkw}IkBwmYN!2_F|WK88dag!6yDd;y8dZ<+4gPwtmeX0EhO_>@bKB>4thM&s6F>$^KsY!w7jEiPyB2dXncIRMg0tcge|cX;SI7Rr z$MUac#i+*Mr|FS7mk;al9sQ3DqYFs8o?-KKbn;@eoQu+x(1r_@?*R;Gal8iybfuSg z^`X*aUC*CB3V!&>3`7xXnFDa7teKq_po3Tz^h)O8G!A04>7!LX7YSk1`Vc6nixd1h zKF0E!k((*N)Et{S=BQtPB=hwV>B}fw%|7dFs2_HW67~-c=$%Jd$bJ~>W;^MR7s0Tn z^bNYf+%1-TC(@Q2eW?IFu1CmQB2rY8){<_l0Ain-7V)H%9L$Bqb^kE_gC)0<4}_o8 zz`I=G{!hH}NNKGvF6EbD3p-U(@Zzn(v^5Y;HmOfsgXnW{VfuL4c5!t64A z4`h7?Uwody9}6mYHq{})jQI_5wNohgYrs0c!M~4m4MgBrnnSRIAx6aL+ljmt$fJEX zd`cdCLigk%cu$fnk6~>bEhVd7^%G#9>dQzIS@gxz*%klNB$tS0cJOxyccn( zj+1)-QO$-r(Y}J+MkC$lm{bWfl@@}(D87I`JWn|0_4gADtbc@3kB>kv`L!xwYX3}? zf)njf$+Z|?JAC+R2Q{R@@tsPo+{v}%cm-x)HUFH3*W$ZqrYQQoe7o}tjcI);hgEY; zV=2cJu1CK;wlibkB$Km+oLq$SH3xTpy>C_Fj!xB^24}yD`h_hT`(Z=h^V!|OC@8oj z1V^DH!GrAQaDOte0cj!daQ#4rt^5OZpBHyPCe+29jJgO)Ow5EOb#CWdIAoaP3CSJo z=7`fuJN&cl<$l)YonmFFRco-1iGV5qspaq&dWiwK8Sd%lr|{`fA%2vScWd zGFJPV^&Z3FH{)kOGCFp)-m(rlfHz3R)E5RW;QXEya5&#_dSXgSic_rO{9Bu>JEW?Xq!jszP*{Hd^|rRlqQRgbWNa_4{MA$|ZB8Aja>e)Vo48diEB7B&o-8KXC`pyYn_Lj1g^m7JQkF|B%GOCJ*6d z325L0fj>d|;bo}roM3gMb~`3a@?n-#P=Nq~EQmIE;^Ewrkojc{%mW$@OI~rckm_^~ ztqnTJkWDadz9}YohXhI2t95!zWbE=zBhV4PttUE&zuunfA?7GD7#N&A(ZkDGxPq0-#9=fXP(+9|& zbaawn-v=+BV)QXpl{Jmp>F17KUouPu2#{1&HhumbC+hj@yy<0(9Qo?SR9s>{>at6) z;C&S5WGV#1dJuB_dMCs;>a*(Jb>>u6sEfRm{^t-7V-_b9N6&rRy(Rj#5xmqBFzZHIj2Neu2)F4ZU z)hrc?P=rQXkhG@0qP3uXciZt0Irn0Pj|1U+&j^Ddb8r7wwL%p?i8iF~oxzf&;rdfO z-SDjMN1=`nQi76s*XBm>R?3bAZaeU9`&)(DjLGt1nVNhuVufGQoS209^K={qkvio4 zsg%X^=>K9^yvdx$cV?E;N4zN9Eb@iCU!34JkYHhxc|&u}A2P zuq_J}k}#y9E@xrzR=8Z4awL23%i-o7mJ{nJMDgt^lU3RtGe=rpM~6We&Cz;yo#~-b zdB+Iu&wfMwwONm%u#+b3$0Vk=_I4GgKRdpr{82I)bZ)*wGyc|6NVab<+KIi@a5k<} z$Tod5HhRAlw_66cXSKHek%=^H?(WFK`u=< zzs@A^ppCPZ(460RIXD<;inQJxc?f>?r&z%WrC$8e&fyZ_!3hj9Fk-Sgy4_KSKzx~3 zt-0OAk}W@&iJf>@v(`b^IX>Yec~dr2a75X-Ll-_?VDoDbK8YIbE`L~;QWCqa^hMJT zTQQN90IH_W)w%n&jan!7)Ltfyw#Z)O%rvgW;4V%6>|;@pZ;X~Ou*4bPLQqq&sR=LL z9=b2A$~^xhm_HKslNgS|JJHi>y1C_dA~J4KGkUDx^nnT`VL39C%GF845zo;?E#4Z= zgxr110riDy#!`D^BKs9W6}+z5H>gTcw9})>te|{`a%Wpai2~E@a1Rp2Z|~Q&+M&D0 zqo6Hny#IOVaA>qFew~zR^>eYst z`9*E_R69pT{=03ti6e67<*`Yrm~%s-x#VvSNQ$deM`VGnY-c(gxo9JoWB^+cd^P#& zr-*)rXL&HS7pKE=*+R(A+eiP!5ZZ3kHVpX{^R3l!}h)Fnp!tKwE8MFtChX5q>?ACG@&$ z3-v?F+H)Hsx}j`(&=*ZT>^z$*Sz)D|TtPjMn&7_%lg-bokWB@T@-V@p@pP6o9*NH^ zZ}Jro7tzg=jIL|#5F|x!u*ahmT=1WG*-Kj@S*q~x(#4D4mbkLXP__VdZUGPI`5 zDK(-G?@rJ{7QEoRU6m7G_5bFl(1Ct)bcCWMEG{a~N2TWaYg+p)M8SItEk zQI^3|6p90x8q{f*JxN37o<^KH2f1=pWj?c`9B< z3|<@RcSyyU-extC6Yq1ZEZNYClx_0y!Y7gF4-fHZIA#)RH7(<&yREWALmrUyc(4rO zp>b>^`zd8x79Rah;NIy%dN?ccOnxw0MOj&=3F|ePz?|uUZ0L8eU+>lB=h(b9B@0<| z8n%CF|DwE%N*_Oh&)^Gnwhg>zGlue&&FN1B9?!Q!v%2237+w*Y1e!DX-*#QrrB5mS zZrD+j5mh)QtF`|-Ox0>qrtg|6Jt_^`eJNRQu5rW+lBo&)t-vOf#HN?7S@}wt{^iqR z*~0N}Zvo0B@&G~gxZwgmBhOvz*0z;{&)A1w-Ss}-?$2NO*YiD)R7;IVxuV_;!4-|X zo+!~n0Tny8r;5kEtHjw3@8sa#$Dcz#BOmMx744-mx3A;ytyvO@zdU}B=*zB3VK6;K z{RON)&3OmRnbvI7jTMq``Spv?!9&2vV{4GUjL3{tJNY{q$U7XgpLXI9cc4@T!ZR1+ z91o;c>+@Qz{FYD3T}5|LHgok?%tgo)7_od4uKPXKS^{RYlxLWZ>KW?X8Ez7%W(V0i zh06`9idKxGyN5);4HUm(T(p~w<=v&yNeVacxXj~uo&b*fG5ka7FYwq){|8!;AqR>ZR5wMUR zjt=$1S?rZ_iJmfe)J<^x%HY+J=(GtIMMcWFamz6_b5v@y;0;&z+J%Oa9b0qn7oxEnJ%9{nYn|D#^UO#cZg`?Ar1|l_j$^gC2JCLImY~1=Vpw1Xy05F66v;&m;N}9NCwLGMyT4T0!8pV_1#GDHXqNXHFK^$aE2bp>WsPH z_STZxpIqQj`7+T#E^Q-{Tvmg}^C+x;aw0FQsui=@7r8P8h&C`BazuKG7r*Bk9DDt| z6@OtwLvZrN*3!#2I~7c>UjE@d{OY2Ks~fT5PA!FdUUB?kSHGust?x@yDPt(F4(p-`_iaooPfbj zco#d(eEhop^}trzet69b@R>dXwG-B(=epqV=dyxvl!y?X3NG}Dfl7fdMB)yEr^e=F zQ!ESzqqMy@h)PlzEQPG)t=7c7 zrN5^aKC}{Ft;q~PmGsKG7-5uaA*3(9(nOJZgSLYF zy}q~^1%&xZWm|Azs`I7y^VQ=}r)afqGZ@)w9gQT!bd25$p4bc$4bCM{S;}XRr#J;) zk!^vdFI&RWg_rrLqka(Q(buHRq<$EBOGIMOfyX)gYLjI?#pksS*B751zW7spS}C~P z%I!@8K=6-hg9mc@aoPv(bY=V5aW?VfFJV>=$y|Y$)cRD{%`!qOYoS*Au z@M%cD7o`y1zCoSieA&iY`Rom7+>Q>C49rCkGOnDKbg)( zM}Yl&s)I-Lp2RxWq9s!g#aY2E-TCPH=Gs=dLmI2`Mg34K5fPz^OBRqVAKA0~zFf}C z2@nZv2kWCAY z|A(=+jEZa9wuO`6A$Wk`B)Gd48r*}s1$TD}La-3rT@sway`b>mu7$h1yL`3pch5a% zpLg4P=jUpxwI$QWoV}0HdvWFI1tfZuZL#4Ad}6WYnE^8{?eeOMA;z1}=20Y92HWHP zN%gtS!4lHKpXlmbBqX9CCKW1FEbbv(t4jG}|9w7*-DD7>nNNv}rrI%jMmSt0%ukB^ z>VpV!!k_?=D z3Jh8q>%tHg*aC|3lKCH30OlSutslE>PG+pU|EdxwpH`Uz2`Z# znutc^EV2+YkK)|ilFPhTc)6l@csCE}d`s7jh0Xa`Qr3n{dOvo${fqH&Op1_G^rIy? zZ>O=)(FkdOwlg{USBLZQn60%uraak3q33zF@z*F=c*t*S=PTBp&6p_ z=rF{M1ej^pkuL~rV7e>B!GF|J`}QjQCP@(@uzr>7dA5GX=6@D~?xN-CBHQ!IBuWq; z0z7c^zGrqb6X+QkwnQ-W-pjXF<|0uQTl0PLss^vX!hr3`rb8) zn*EzKe)bU7@%9hsCfi}Ro*My|fIx}H$LlN(%`qiU2AbGB9GVPn*tski#jCDv$noxM zWMeoiW+JBDa^@ak+0*K5!vnqsXU!>rw)}<$ZOb`&!{6Um>o&zw;JgPjoNFrHhwD8? z=T>1;GD6ypi0p9lwZfBLB@qMIVn%!59{f@fPuFKGy5`jjJ8c zr{O{yxn-fqf8VzVz(2chf#V7xmhN_So4cg(bJ_%P>BWRgZzZBgT@v6&```DgFgc+8 ztlNuJym1H6Do!qdO*mV|AMHz%&4(+gTu#^>;!66x`aU0Urk-N<(r8GdeynDoB48U7 zTOX0;hoY|$$o&W%++1US{6>JjfU~2g`U#D8e=>>NhNbmLCRtHe0#&YD1<9}vXJLEdmZU&PaG0bE~za#et&l6j)3^%*@jFt>w4kji8kj?n*JWRGr*g0&#i)k zUcC;Q)W5n==x<%v&vNY%*g)tx`4M+b!LJ_=VLcI=#97=!5l(xCXW|Qn?K6D^{PWs+ zZE`*RgoZ~*RU@lh=bI@`0vfYCft`jHx;)z!jjq(f$WKT5^-sa z9bah4)KH2XH#Hg@E)L(*>UX5!FJ`1k{_0ma-MiXb`Fe_1q>S`mc?dd6-*b1~Oy40W z0Bzr!XrR8aR{AkK>htF6sYafgy?YV5OwXv*okoTV<(h7h=Pl19`X?9k|1(4FLLuK& z#+zh_i5n=IIMhHy!5@0{n{%C^#36`~NV#Dd;QTz5^JSe1w z(u%UYfTql;E!qaL#Hnq=g_+y5JDy&}MAh2Zx}~R21BdTtEzD!LuKZ#}p#0x~ za@duT2l*F(SKl#h&j2g@wH*Ap1=9jc#US&*KYC_%1ca{Eq@2Xqi9* zPFuDbX2!1sPh|`IZxRli-FLSYMSyi&_hxBkc9j3~E&l?}|Kke+qNH-bRG-CN+6z4X zkX&8cqe(94vR8_gq!00-IV|3v8M1CIAFbPCoLl_i{&$4`9}oH4sf3^SwdbBZRY|4> zPcMnBH$!M-Th9hy@@zw!kfGsAS?aERGT|y`tNypFz47M2%Jw6!4#4AEMzOzb+Wz*$ zf4+wN`zr`%+OlG5x{3JYf)f{g zIz-3z1D9?A{qJbe|9&MBO0g=R6k`(<7d3wx)fD*2$(+ZI0iTXpIZ3bhaGiOg+ADtY z5M8A!D);F~+qo7(k+#f?p(p7JpgkP?M@RiP{V^+sJiG1dgY3!RULo1e4O{}H_tIPZ zV|djP1ehyHNJYWUX-RUw?T1y0tus;ycE3ZRd_J@U*6*k&bcKWXnE_*a+eACp(Wnu( zyB&Z2?G69Kv;4Dp+A(JlklQ5z>C2lW)q5no6pMBDfQIVXR3_P29;l{_oJsEF&Im1Y zB3|9u(TDS*5D#_*hvZ}+!N1R|e$7spU5H%ZYzY|s55Cw)iTqnZ1CIY`+LE#dWn+;DSIgBR(3&AX zzqmiME5u@Rt2u@|<3t)#RB^Lr`Sl;|_b;UIKj!8COx8m}__0g(bqp+zDcvUyXVgoE z-qg=1wM|v<fZ~hX3Ok|I72oVv*ZF_txwk-CA!| zFR^jVR;XO2px{JJ;~<}J4>;F_P7pUbpC{aoI6n&s{2=;+L9akBME$=Hw7)m6NH4`| zqYYId3C=Lv*U5#d$z@^PyFjBla}qe|R;K$NegGGkNo z&6_Shy{lJQja0CnOh0!~&jnN%{q+xlwNn~TfaVctiih895>9w;Up!CE6nPbgMpoXm92c9Id)-_^DF(MTpu10$ z@X^89FO?wnblV$^MyR-t(`Zt^+~*eLJ^oo62z4-B@Hw%b{*Jobr9LnG6N;OlxIrV` zc3>aViA8Y}ZBq^UXBP#u;05gOThlQx#Q*#`tkVm3m&Gh5E88Rs%a+NjbZoZkbS1QZ z9#C*z5MGY+z)Q}@Sz7<_<^kai62=LI;r%WpfnbhqdbtJgir>quTTZ3kEm2Ui9)&O5 z7Wt3VE2<%(%!k2oxah>J;FfhM*;Shjw%4rNcF3;eZvY&UfJ(xn5&A5JlXqOBN1QGF zb)vZ71DomEu<98i|I2 z3TdrX+Jvs5L*9{^g=ZseJE`uP^%U3|EC!Sp4viYsR{`W4N*;Thdtczw4)*hu$wZ`H z?wKiC0q?a3hyJ;)bs~#+jy@P=z5Bo`;(dKcfX+`o3av0?VbCm1U^D5h{nTnhgE99y z`cZo@gDmK#*Y7&Wbg%qM8;k(>!+{}Y#t(%Y-ScSYM>Y^^6BQ{o*qQlU{*-Ktv_pANbi3u@D0my^urR-s`u?;aa?XG zFbjJgJYa2cKtn?#cmDIItK5KqvYUN>$uhmRbqD-}uAMi-#Zl|jFP@(LDU20*e&xH< zh(&?^A&qUlmfSU=tZ>LqtH#SURMPY0^R2eDk*M*Ne%n%TzShh?XO&|P#kY_KtmOrt z*MEdPzsWVhzzD46z29bM*EH~2o4-yt5GQasA(5ww_)Osz$a&GP!lfgadbFCpZm{X+ zF=lLIUyT)K^xUk6QSe>3s&F|LmW4 zuPy$%uj>JST2xeId6fDmSO#bERPjv=!VwgC>}KKX3{pIG!CH%<2TF6J;Ez`(;cQ9e zv!3$!bg)l%efP$WB$q^We`My?QE%hoG1M$EpaewpHJD=RgJ9Cpz4qsNY_s-EkR>To>yfP1zn0@oj06 zq_4~YYL9$q4}W-O?m=O{MPi9uYZg&QbsP|qt6%Z45`;O6->Wa44R{-7l27D{A=_w^ zD8E#rf@0UJft0qa5NSQQVB^G~t@!iJ5-SY@z^HecTPM8cf@IeXNsnK9E)az_<$nne z{}X=x``#fx{2OZ@pJ&!dCTmzGUR_Hp9&nJ7LU@#IMsZTt<3r55Lyu-*WT!~Xx|K3I zqoFHIwkMJ>2@RisB%W#3|6rpv%YyYS*gaj<*$ozd?XzVU-RgV+Bm5LfH>E>UEeJYk z(@7q~Ga|XVSM$^BVW#ihP;9*zfXlV{0+oAZD9Sz_@0uQ{K|hcR|C1Q?AowPHuzmnA zIB52~&lE*Rx>OM^Ppn2y@!-Bp1x2TcRB$K^L<=qZ!{ej&`CD@f{aU4*>~v-sp8PqL zu62F!QariPVWUak_zSf%FmwKny6hgLixB|m(+}@7N!ANBv;Kcaf=c|4U(}(rZQjmV zk2co>8g<^=nbRYJb}IgNi?vlM35A<3NOF4V%Q_*sg}PI5GA{8YfuPSG_OYhi3{{bS z4bBV4fLuANRTZ?;q%>;}QZ%Tvkii!Vz5nR{Io@C{YcAalpa*%}re%BDB!-JEMkRT2 zx6pO5O_fwG>46pWMN4f{932J$H94~qolIBOs0bkfgjq1Qs7vAh7McJ1-nAk8vFAFR zwyN?Gb7dZ_W~=A67N4)UQt{-|CyODbctc@9!+oN3ed2XL;C&D}99$G(`m*(q_$aXt zi56p6V}`$KZY?KmVOiSpoMO1{M*ZgI&&|zd)8VFKGZ&I(14+*IL^>J(W0nz|fMYRI zEBs+#Tx=$l;7BuT5!gU$qh7XHw^glV8(1k-UNA~i5!crAUWQS`4HqzAY+ z!^6YpFcJ2_&S2F1>S`54bYfaqYDMFFT->AB!Dd))zuDdS);UZP-zPd@CF`?N=B!c_ z>7;6P4TsrPf%WvJ_Qye}W*rU4y>Krfn*y34pmLvp*H?3r&|h;>j$+G8-GBBYR?u{@ z9UDJaJ6n6k0TgesY_LTNiKDd9{F3}#?`}a;DaOZwG3mijXJT6bokWKon!zb6S#mTu zO$6FHH*A^O7Feg6)wjDjLZumiISUU;`9Egpc|AIUA7_ov$H@d~)UQY?#&J*hZ`|AD zmuPH!N5dv^iwZe;xCRU6BiS7$kyKXH8gxMhI%5jd*Stac&6`gOE@pP>+5_jkt^nzu z)u{RqN%ijwdYT^x8yMwM%LTC{lOp2io}%MkbT3nE%gZcX@JyN_-FWf0-}lFzOPrsV z;4frI@roux%GrM(An#01O)xI(Gnn1Ym`%*;kww+3?$EqTp>F|PB_avmUMOziqiNmRS<*g7599lq#u4Of^E%^7C(28rO^ziG8s~5ufg!*85Jgo5gXQm9*eZxCR|o^ zyc6cNb&*%{t6Dwjh$OTdoVgj36>qwiL{;s*P@>^=Y!?-5Q~y?H(SRJHM7#p!3!nae z?WKx1STMj3c93**5Z8O;AL!wE&&l1QYt%*p`0EH_4AOOdwlALWVg*R4P3pdII-8ec zFKges6onc0a9jo$18mAIZfzj%>TV*@PQM-X1YQ7@*inDx?Oa}X6nVNRM3&y(DdnBF zcz7Tm&_*BcWYM&+w5lcfZh%y3Op6EW7y1ijpPK3b65be3%NY4ayR2R>6UeD6%DDBu z|2petkuYglSdw9-7wQIHTex&gOo{93U$v{g27~Tk2q_~>i+Sltv&wv!P`lQ0+@7VO z1!3837)yCw%i(3|>7`o=Ef(Z|@$)pN29T$9BrNn?S8N@{CZH@us!W!GIKb5= z_uTFqj9r0)c(5(;5qx&&rrtc;UPr42 zSDPT$EzP+Do8BYO>mz^oCQ&aWm-fTd%(UMONuQ2Sn@^cHr0+}Wluz~JNwbI4llzs- z%DSKPeI-Z!uVT^tG;1@R{yBEgAzEt9^HH7z*~|?^Ts*ktSiIb!B)M()1vJI!&X}5( zop~}a5J|^kg+LJyV<~klENM+-W41MuC_CbyNTWT$3zsO8KI@|b;_V%9I-f5|Jr7_e zbPamHg)b-S-l1rwo}x;d9MST5+3+O`qQO16#Z`SEO`ylFmSk(-+a9~zTr+yC))kCx z$oFhLr_-iRs(acH<8Uy^xb)*BV$DKUiOM0CT0dxDKY=Q@IXdxv^eC3b_sI6 zJKka{9lfsMBt5B|$3xJ&Y)-jT(m{ES4PUzguMiDzN&i}7y#JEFB$;zFE2UrU?Z?Er@~(qZ{^mk(5r=^yw47A zpM5!MsdIFR9P=1J0V|YG)nhFC+Zsy!M)&`P9ETMC@(E+2KgKm(Bwg+r%z6YmaQBjzxWcN4Y{tWa%*gT@RAagdoO570sxZy1? zE#s})PdNSFPlPMhh26zWc7-A_f`FsNzj0qv=Q@4ulc6%Yg*)N7VSHB@u*KWmXN0)HQ*TF&yP5NJi zBlC}SdU^fYQD6isaR@#aM&=CarL;Cja{ zEp$h)$fYiAbN0WsDP`8T(+}o+H)ke3{d-6-=XcP6E=x>LfmNa?fHT| zqJDV(Mr(L1@pI5c(tg=-%G%dS%m9DbYV`zX`03ByxM^)Pin#w$n!3t$?~2^?cMQ{2 zi#FQ8R_9#C$4-l-#LJdrL^{5Et^U6L*ra=J?T1sb>b>k}xg9zw>6ZgxiqyM1W&;=f z%+i;K71Isj=i^1~UUDXR6m<|x92`!#q7K5(OQU#rl4}R{%%je zs#=XjkKFA5Dt9xflx(*0oHWH~xV^r0MMmD$`XV-W>K`qa+=ZSD2?(U5U>Gd>JXK~u zHTb-PM|D^z(^0v`nH14-|QHfSjiuKZ9_Ij!P+*H8^( zL<14~K^3j^{xFk(Etow;@?V}4)iA0CeAwyTijnyqPVp1g;)rbRjnB2o;HQ1o50Nho*0R&u&{C zQQ|FX@ZErf#Z~CE2p~*xbAq9oY$sD?5{_t0{_Y8zEb%+^SIps)XW(H%Ui)UCL<h z-8vodcS8OBp=-dw;85NpEBTrsUG0yCYK-9RY=78iPZx`jX4idY7V<8F)VSvQ-i&(y zm5*na>zhxyyP2Pa?bGN7d2Hi_^ilI2tbVDfO%E=;Xw$y7~ zY%}9#Yuyd-A@wVltaX3yn*T`%Ub}foL|d@V?0LRn$)uDjYEhcUKD2+>c{o4e18qHz zlF(3f^EuD47&!CRRGuZXkka5%n~e+;0`w8V)@|iM4fcgwBlsGOU*h3W7w=-9 zqTC6AmO&JCkzDL1-4{P?;xpJcT~lk0?NV!uo4K#MO;}uXhA>CEriuGvpWdjnXdA8= zRM`a!v>mSKj6|WS6wc2{#|j;&B97ii4tF%VzqaxfJ#U3rheYght2CADVX%bl$Hpfz z;75YRWnT1p32ym?8V(7PIfWSv6*Y&aCm!ubjt=1NLfr+-jXM9_(}^i1+gmr0&%E!u zCB@mw$$Gs9d@c&tH@F#XkvbJ_y!ps4>5`#w_*((>_k3j`x}aDUtqR(l7yB=$INgE< zHA}hgvf%`}RIRn9?b8=L%f~9gp8j@4IJ3re%=BJ428+I_k2Hg?&_;*)Ty@SkG+RH( z)iXMKT{G`9sUl_5Th=w~wxcvm8v_fFsdbLi9||q+ETVZeeH3aQZN@i796X`Q=dpgO zdfunv&9yaYpGC%QNtF3z>!%#txAm#7gyc!HUcOEGg;omttxj3OkeQkO$?)uio+QNA z;Uix93FJ^V!zpMYe$RkeYqVco-RK0VQTuv`LoOi+3-S|lCO3bs8kn)-el&zfvFDee*bZnhDm4{;=Gr{G~2wK~2?>c$Cw z*;_vi=0m%e%nG5f)S%hFfS^^vOx*dm+}+8Rf2N2#M5VlX#hE1|E~-|y?WUcxt;`B^ z-L7;o-Acm9_fHPcF(_9n3j3v5D_l{5ejNM5WgupfcwA9CNVsm(&>kxip-MF*i(XI- zH52@9QUTQs!ln^p)ivt$1XR9zBQ@qR%z%Zr`r)9zN3NQ`Ibz`~QIRO_X#6QEF+d*) zd|-UGn;lMObMbwimLz)3DaHOlxOMl$dF035`TTxrb(Oo=K>eCR77k+O`=gqnv&Xl8 zMiP&{f%IjXJO<)*SyDHT6X~y>&$1oLZ8e4VDA%8H;`OuEw;5N98aSqmJqkAWKwL3k z!YZ(JdhITpC@TR7NtGR^COw0sw`r-M;X!}8!qY>5a!JYz)QY}PRME42`Oe_uUSXd5 z9*U~j!h%D8n$JlrBJkC|%Uy4t6`{Y4lRLZ9~-ykoi%|Dqzchc@vLH%M9G;O}wO z<$vyiAN|Pv^gtk$f^XGyUuVV)vF`AlJKs)M;quQiJz!`Aw|Mv0^BAgPw}^Nbp}c1i z9L+p_tZ#iz!#)AaYK^MDd1Ra8K2Qk2By*kQ$@4z@WL1K$q1qR()Yat1{@5$*5_Hp3 zn4M6EvB*LI2D9H1t++~MxBZQzorPkh6rw)$SrsA-AgmqqPX)i|wIIzmxq*mXhS;1h zhIs}xThDQ&3|yjY=c*-OC2#t7FncdX)k4KYmr+5@W0)lkZS2!-Zu9_C!{YjnTp|Yu zEU7$Z^{NEZX<0alI~3-EWdXngzd=Wa1E!0X#+2AkvoTxS5 zIlSmI2YTZT9+3$P)Fba?odu*ls>YKglW?dVKMb+4>v842+`uBRnW+bOZED?2cw7efOwhHoJWu>c(A%OeFM;DXAyljx;PJ+j(YKPQaO z|H|CU?3urAe4e(!@Cs{BC5D1!udZTIi)sTgaX=pmzv*d6^}Bd*r!Z2zTD%{jTTo+u z!9CC$zW%s*?@ia{uca%5RmKJs_1L6~Ee;IlZlktG&1~LItaAsJ70S_;hLFNPv-G^a z%hQ@E(1YI+*>P{cTff7YN1~b2DSK%NT8(YW=FJU{Y8M@pL5iDH;@2R9y9^b&fc+ zoxcQeep=J_%6f}f#ZYrnSs<6)ZDl^|MxulT;}YjOip8nkhq?kmEo z+?HD3DhiHhGT-0UyVs6T=bp+M5;k=Wuw;@3qZOAs|CXz@8Dgk2v1saKs;b?~#}Z?I z2nBC4LjkD1EWut@yuA3`ZICRL$kLUA0dsdOgf%SSE`BmZ5p{x&`?B94xMgc7cBj!7 z95o^v^p$%aaT1%62qOL&Sphmm`77l0e{O;^CO``;( z{GkzIp^m~Ul4XydmlNISJtry0NPHaB5upm!$GQH=&(={E!3Rhwq~}jOcsD}bz)Wb| zPopzRZiu3cx$U}%ETwXGZ=SRviRvXv52g4+EL@b6_SXJ~cKFG$iM48lorJA3NLFu&}X>&6nNRXp>MqD$&4mxydWINj!_ zK67va)LPF+32oTQcrNFb{Vl`mazp984tx@Pdwe+b_(>rrf|pr8(U}pvOfJdQGTn8z z7oF_w(6FZf&lrl+m@T6}M@XlF&0i?xLC1IODaCHGLp1l;>2G={cmuFIO7vJ{#+5av z;9F|qW7;>s*Z(AeLoKa%W1rRV>&a+$Ph{8r(7(V!)NP+1D~Y(~(tZT`|=ePYl; z=p?Ffyyuv6Z>-(04WJ+--+$$7VQ)5`9OxMX^#VS~uBEWWfqDn#YVr&YGKEcxN?R|I zneEOz%cMrLs<*RV63+{tw;l--^2kp2MrF_b1ST5!Q|N?b{wvsA$wE=-Y?h-w0c#QL zehGa2&F`~^*m2FJrSg8T(}i3hJ+r51d~@Nl@JELd?AO;FO0c5AJD73@4XilaBW*oM zA)R|Tc2`OGskT&ABCzfGs$wLB*Vxhz<{h)-yrICezGwlj`e{-P$J_Em@f?-Pczjo1 zuU_5W@6=Aa8LUIaEoZN7ocE@Y|YKI&bBtn z!jv?cRX*^kL=f0b!os&6f7z1wzWdljz}V(j9j>~HPR7Cho8rg99ek@ybWQfw=Ev>S zyR$fnCn2YGWIByEce7P3FiR93)%*3-jXYVhAtCpjLFVHwj^zFq;1gvk|F7uB`#mpb z@C-&kW#~I0&o4X#vlQe^N`xz;`V~C!Dmn>;R)tNsH+$wu$+V);M;C=F+FKK!zYF8e z@AgYfRh*abPtO|A8S*`l-(7^uZPiH-Z8qbRtyeZ(tu;(jZ_kq}Q9Xnf&v>1b2OJq* zM%dqW$rpN^T)ZXoC^!;Y#I#juay_c2JOB+q?tchgyB^s}9kzxbsrzUG6SJ}+5z(YPmyuW+|d3MYI=yT7QqHs%L{ z`|@l#d8@R;1s#4A#jCs2$UMzyam0$W%I|Z{S#iY+!*@1g9l3B0$4_stoU9yF2Q&7F zBj@>$Ej2os3?oXdiZOcI*_WTOQX$9Q%#2|5t%sGAJ#EkP!0Wd3E!eC$_nzW&JM?3u zw{U0(?R+1@lsNW3A>HC}#nz^Bo(@v#*P?P+Ve}aeb|O(?d={4a!xs&2C?V@PP7Mb@ zOIj=G2$#H1>)Uo-6R_+8(fAEuE&FHQ;3w;bt#bmW5K1zE3AW|Mj;Q$@nk~fL4?~YG zc^0CNV3vA*)qB!42x*#!zuHDZeNYoYY0y6Xk>-p3MM*eEzEY)hh>2`=ZpKOkMz#yl z#@g*}(S^EAYx)6d<2Zk-|8YyX((eHOxkiR9a(&D>q9bwD6}5?FAvs|)<(+O^4pXO1 zy9h;uCh{0_BD52jJ-|neL6<=|15436U$ArMw7nCZFpU=LU3BZ->fzeKC3|?&umW7!B)AV#Wx3bkBeP>H8!JUzvG{p47NJ+H**x7eKxzQ=9o<0(CGOf9`iE4zqn z*aJHLQ54z;zKcZo?YXg)9say_E~{oSAV*nMe~Z&CxBasF7@C_W=;Gm_-#AY|074~| z=093#$$3DRpt4Sn-qk7`Z7l`Pw24m9wW-bn-9x|6@3JZ5Z<$cB0OWXT-rbL6Y~faQ zV6zOP$Ih?D65u31Cgbl0JQAFAQ5Q8>bWd%%NKAf|=&19=a%7qP-k4T8O>_Q1*wlBdFD zX`@{ld z2^;0aF2DYCZTC+;>EZPo35ftaEO>W3^VM}^${U!B398pI_#5S!a%Y~01u%Y84ny6D z9F55I9DKVT4vYa{LmgDSmfWBcUF0n=-^FVgz&d7UC^}PO&Gb}%hgegwR~++sUvjkO z=Ua&-$0|`j_bub^J&Lb20i|+<_7SRd7k{F#--VToZ27K_-Y=Y8@qQ zK71OTpKvc_r;%Uf`Q)XB)!>rk5z!4px-@wkDXmuA6L=;mbsJ5DnUYXc>>w}g`S5OG z!CmO7e%{-k9>jw5e=j2S z$JHg4llXuLa5rskhLik(V)$e|H;GKvvfKWoSvZl+ELkF^PhQ6_1IW_?q$=z~Sn^`7 zfgOIC4*-A8Z-wYW!&aBU6)d_tWewAeZ}P_SvO?e18-L6p_h6Gz&LRAkg4NF5fX~VE zv3>)^oPCV=79I*Dp73eL#`7|I3n!x6|f{7JNxMZ5KfS9k*1H8uR;8UPA$)KpEo<6$m2#Oqfon zioN_tOcjb6jx@>$WKVP8jgI?nw1%YM%Ytj|2ao1cE5|`WZHre-ZSDhK%I5G|W;ggb znA?(lPX#kV8;=B%V5fgnDY8Lie1=anE?s8t`t$w4r=eE*qobPq;MZV??L{27p*KF) zo!CmJfUKup92V^N>~wZH%UJk!op0QGRgREOB!{x{=p)>vv}$E3_b%@cr;%@}na*d# zp%9hnXAHm562k8iO6zJ+5JBFjqCI&!rgze_sFH^3@y&Pez3qyD87nZtX`EH@k$8N7 zV^f;Tz;{aAO;OT&<>HtO=dXTGzxNaxAI8Z63S~M(59v94OL`zU0|)Gw z`#KwhPyCErgGmEpFL&jeR|hP%A=*M42z51OIv)+6(!!IpF=Hkob-zQ!yR1|*9c~|T zqb`q~Mx-)j-mg2T5v>Qyw%)Yt$4}&8D5vNYXFZg^dz{dm;*@1o?%hsT|1kBMgO-bo z*#Q@F6$#Y^4;%k;VF+n&jd;afA8R(4)c*m9!<^-N9-r;HoWe>V=v_OMC8%o;^EmWW z&NQq)?*DGo34ivd$wj=?+6JzAb>5~zy=>-)5~Bkl_MyY^5xC}iJ>krCffbXGf&*5o zOBu~(*Fsme)3a3>^=y;RN@!xWWR(_Evfonv?89tyU&WXn6@%v|6Zb&W628XXJCBQG;(yy=Voqwu(MVe}h}fo8+0*B4sF*WUSyPxMNEfAAi-DL}T; ztu^+KfD6RK3Hv9itjM=Q&Q2*yc6j6RSMa;$7c6>jGB7*nQ(P9DkG$?B;X8>?QK#MA zv{;R6Rq$;+8Q$Pf&h{P`%tN}Sw=Y)k1&E^vZ!)@>^ODovr8ZYxk)jKU>OKfOv8M)g zX|sx@_;;ep+_E*0yTx{6??`VjOnZhUOEfB;b+%+1wx8J_%eYHsn75jLGjDzVUdI5s z+ajxNelkIQx6w`BE+{uZ*s)vF=AHI35TyNHQp;tmteiL3Urm7+W$kEy8i#9aJ@-GydwLw45T z0Q$6Y3C)z)h{aWERzf^JtND8MeT`B_!fhsRF|8WYD(iLVZcnOI(+39sE4gA{pL#%{ zAf%R)3rs|DQf|;Bp3^la?h<92msBV`k$D3QLhB%}+g9tna0+srbyk3a7T1 znt+C>@XP1cnSZ$$M_pYRe}|uV(9BL*hdkfvF$z+>+w^kgXDk)OYW>z5DhA*Tc@^(LJ#G@i?qyurN{|gz zSywXlM)46|*Kd#8@lt(-$KLAow6O-i-TPm-UA!3HBzya69Hme+2%SegdKimv-!2^H zo4uCdsrS#BmVwL`bTjr3%jy_DuT$%|^H?YnzUL#QT==uICzqQ^D}gC=-=W3tt|RvlM;gcn^0D=IEhc z%RIq*%gW%gM3=i&?mv1negmf9u3;lt=c(G9^U~GNr)ZhGjPx?DvX*YeVgs|O4ZjXD zbGrLXP$*7pE=(?vY=?4>&FwpW=xZ3Z${I!}a31Q?9%3b;<%NTS$?LCs8bgsYj%N{H z@45-beMt)c$?Rq>&gyZVG>@XB5$!TvigbSaUFxc&LAY?em)aAVNa!p28__~e#+sRy zJ?Rr1q|8HzMFo(9IOCEy9xH_kMXq?BJcRMw4hvn*J&NQj@}OGv$FJVME7Ba!-e^ag zKP25VS$pVZueo(eBP&UdX`Kae9}Rp(S`X2H=l@}S-bGzQb7kpJTN_&m(*^k9Ys``9 z%qA8<_aQHPK2DNbqEBsS7Nc!`-Xe7OH@eo<7!NDA8j_2@r#zKSZsfFRdUYSC1@NGo z_WWDMCK{qp?V2kWTcEz}2mzV)uZE9b)4u|z`5P?RqGR+dvtYusr8b4|ou{XTs^NXPn`$%e^L+#_fE80Ac3(jcg02Kd0m5&)XHqL<2Wcu2M?y)M;o5F- z=N?xy^DpyM-?z#Cl_{HdldmaVfyz9A#+>aQP6h*m{}YJTiBz{9{IB)Xvrx=kki$N3Up3pgzV>7NsPKz#VQQrQvGC&>#yO1Q zoYJ4T7!_vuOBIjHW~MLGV>xxk>~{wc=3L(wh#^GVu;SO8;nYJ=Eq-JCu_E2RsekL` zFOk&lRG26sqgJH|srT-$qNkJEw{xhU6oh@hO-4zIJzNE+n>NN}Sb$QoH&3hw?_h~e z`N`Nx$;5(x?)1GLkv%RAQ8gUgw&`Y5ViY1Ez@6ro8j&cKqn-2-5|;Rogn^n8w4ijP z->R(-4%q_UdX3)U@*ni*{TtV4?*a>sO6NOg>w9WZ>a*Lf$DPh|{f8oZlw8jPdzW#3 z?6b+X`>ESm3g546jUe6y8uBmC6_``>yP%WNKFNh|!kEt{TOlsDg!elZgJC%L{0oaI zJOQ37YT7hnQ!{r;<-BUk%07wspy2~8FRx`Ci{H7TE5Cv3W#nzMyl0EE3@<V09EaFgMeHuE-mOqs{9;x0Fn zk*la%GSGGF%A^7lh=>qDcWpN8Wo;{TV34ddSxFx4e)y@0Rb)ZWanndUZ`)XFv3;oD ztjY285&%n}x-T)Ep10{jS1nVtoo7}V9=%dOaDy8NX!^B8E@i|t4IO98WUCw$Au!;R zZ368@jxW`-BsnQNRQM0ZE@SH3`tBk;lv_r?K$fpwhFr1Z1+WuBt-bWD8Pc$_L9fG? zvQuC6F95T?J=ugd8n~ZG^!-U&(yOpkFIVo6Wc#_SHWr%e+u2U3t+=XWfD4UfHZ=%o z`?c)lNuQq-DCyFhV8sPOao6v1wk=_g(_hu3Ok>Jq%DH1~j3cm*KHgmHo=Y*?wbnm^ zZ?CiJ*yYZpvz_Y`p>fV9mE@qG#W<%JEGj;U&d8j>xv8dI^#fK$dcEghNK!jfiO>;E$KUs)f z!qQq(%L+|mGE-F0?(b7!@ z=jzYx&=EZ>Nnr?R+!xjJxgeM;NEQ|FyFWzR^YskdK+rzVN|)hm5CSHr2ri^Act#wq z@We~buv?#_1eCZ&e6{0!$O;@*N*yoo?0)hk&UORHk||6Yq>M+4@KNE7`D`|&Chh%~ zf68bsPjrj;X)2OJ~rSBLA9odda-eBHT8O|PMaN{&8_L*pwCcitx2`-YDs$C&H*um0mC0r(cYU@5=29JFP6WeGpx^H+l>7n)Jz!c*awy5P#6fKxwOz+} zZ#o{OOKr2xAeRq+xIQez*ASn~yF(91s1(vP`I{ zZ0Qlc`WoWYCWc<^eWFp?-4U9~9%h{5jf)KP%QqLcS6jcIEJV;5w*-n|hHlZpL=8fs zUM7YKTSOM0cTZ0GVWuY1JWRx^LP3e@e;OEkC!cDzqIrm!;M5)n;y?C*P-pswF(6bJ zzR#X~F6Sb}Y8)Rtgt$h7?^tdk)=6S12$!S%?MmVn0;e=C7j!Ccb)MU4&j$1_!>!A= zVp9h*QIcb2cl{nZ#fUr5*GRy_NxG!oa(-UZ?+g2*xB--&r2^MIp;4E9W(GM$*hE=< zPtQMxokvl_w+3)R29rkw`Xss_gUKgALFG7-N00iWuUyAZZh>@O*f+EYaYu-x}RkNpQT{qI_NwmhIDbiKQuk;pb>^i6LYte=FvF8a%( zfoEAf3GjBY6)$E=6fUhS+}*`x}bFS`j`DruU{Fgx0J<(^O)1`BMPRy#Y@&9MWd>6&wJc? zK^bOnP2yJ~stUpp3>&Ub{aGTv6-fM+&*LxWAG;vne{yzyM>)i zS%+hW=Z*udmv%`I6(tAJ*H4%eEX+!6WObpO_cs$XTNzk8eBUwSFasjQoAC*>`E>5B zGRGDR(a1sLmlAjhqw%oRRpsUr;3AUh2jh6k)w%qfDLb7#g~`g4@gj3wp)cRveWOvF z|UcKHEGN=PNZ{JRRH6+#midBO72R5sT1Xt~6ppEOk!E zkyNQ0=a9=*IX`4?&<2fL&$FZTrLB8vk*1@U+fFH9b%NB8(Kz=IoxXE3zulvxzBJvem+MTDnt%|(*XG=%UestBG zU5{*F019;&e^mk1^jV;|Y6_UlvoN$&Qjs(H7pO)=79OUmP8Cn%;9n`1N-hIGlq#ZP zl18a{vH`JOYMQo_ohwu#>z^F%U7(-6S`%7bC`9U|MlTH^!DZWH2Gh+jP*(kKsi zC7Go4`H|aBzve6bbY-5k6wHUpF)=4gl*#2YWJ7V^p4u6U1&ysP^4tI`%|E9g9Qrq_JK zT>vtgTqNHRKZ(oe=7U=2vkIwkxl8y$SY-&)F;1M4X|2-A2vZIy3W&aL97X^P1jndP z^6Lk|%zdd^{Ubwe={`vyY7Yq7Ix~S!@T4USfD`VfRv3)j3(b-coQ{w(A`>hVC&4V% zIwJPyKcTl_fbuIWJ0@9{CvST|E7=?9tYG?R@;01w%7mlvZ`V>}b_n-3|#J6hVS=Si-!9tNk?LQbAgw6T8aHk%o4O#j|3!q$vBlUl{y^AZdvl$LQ?1m7zK9W$F- z`tX45#Rj!YNwF2Lt{WJ3YU@`vyB@2IRl%oWi3KIHO9|ENGl2YN^YQgOr%uy`XlXw6 z3!zg*0O7xs@>UvBe2YBtoB+F6tW6pOh@2E|Z>`G|DrN?awlZ(2msmAX3Sl8BKlQAW zgq6Bhcs(T%Qb|lw3_?rFY=oLWCzXf$V+c8@e|^Y|Sv_G4e|d#r3>=zWR`h8R4Ep~X zIq#?@mOYLGg221d6a^`wG$|sYTv|kmVyGe|C>=qOUPJFF0ThxaRS1zTAX23WAzl5ffB%S}-#=UV(D|<8u$~=hKt!I;W+0 z^5kspp7OK2&=xL!cISJdx z(L8HVPuzldXOyr^hj9-hwCW06$4L5)@+jTF(AAts}s8 zg4w*=c3nu{#O#bR1=DKCg@b+zuw@Sm4(^3HmE9}P@8IW1v*yT4IZR582LQ2La~D}} z)@&{BQ;T zMI=EsFaeoDpZsK00B&-_aKBo2BOBktl;gk^iCH}Zg-O|i&LU|e5opVYVrMP@3|l7A z$rl^SU_h%>%Oq3FA!y0WmrQ=N?pAfd5Xm&;?n&(b5W&6Nbu&F8a_}<@F>m z>Sv2rql!NWuCJyTs9=-8ygtTC2A*5ikuHJx{Nzu?(1yX!cw9Oz%PJ{j_oj@$qkli{ z2_n?5)s2@~^7*x_zz%}#FW(p+pvI*K-szGB&5r$aT{NT)X=o_^F(> zA$@#rX&Rx{}_%}qRw40OCbXC)TN ztB!MKfu3V!2x63=ivvE8Zb#wEllj>^cTT0Malr9lzm|1E zoXhW4o}5%jVJL^*H#EDI>LT(gzzC!scu!Ud`J*F&`~kSpX+ja=xm8t99F3)!lRQFy zmeP@aNkvEK;Io7;*Lco7tRFr}H)=4v^JXBnAk5&~@|ACe%~9kP0frOiV{ksz{Mdd^ zi&5YlRR`#l9%)^`g6bmn!n_lywBpgp5uE9!>@!Bnq6XFdc}!amQdmf=y|WzY;WK>WX}kMQpdQ)WD$V0O zfbY&OvE+A!w<-}#{`PG!vw_ZV)1#;;wZHGYm+zr#Vh#j^T5nH*evrw8nX_5-OLGx<3J>#%1(Kh$oP2LiV*2#{jW|1~)GK2@~% zU_Q{3R3@a#5s}l@;*ke)4`$|W3u{KT;cUzX8gv=skRc`ckf5kweR zFzW$bsL-}HKZPXg#+S-*^PEslk`QqtfL!EbIDbtD?{TSzAkQ4=7!*`a>>*H_H{zFi z92_6Q)M0uaC%6NflcWXbd40b4;7K0}S)GH&Va5R^_tZBPe#IR^sty zEfkqI1LqZk9pBe|F7^*FD>{sg1I^8|Ku%=kFAARO$acGtj&u?4kMOaugWUO3Y(MG@~jiWJQ+X&3Y7BlF2! z2WpgX3O0$><5i~aW2dru=zA7rM3r@D!`G zq(X+!xi*+A_Ihm%jhwbb{%)z`qDCU@{I?QEDS~Fr@6#0S}MCw)IkXR7VcJgz`c$@8u!*!-7Yza@L%QOV_7@L&hl&UNW zg7g|{pmQfGC!evyF`fc&xhb3p^&ACmHnops4EjJ6;2+@+mNSF>ZH`d6b~48b>Z@+c zoKn-MYAa}Je86bzs{EM?FDhT${?ifUc(MCSU*rZKHm(JJcT(~)KKrSNZN>3lm7^$<@d# zb?xPTkVMXKX%#hTcNZSPJ2`Qel!?a>X7N;0>Xx;VcUzlt;LIc6UlJw2)hma)rk*nA z>>PokT8v4!+@z*8^4%##0{EPy7cQv&cHY-Ar1{unMY)Y)t=l2u&M+A>SI5d^M8{++ zT>ohB>rOx)oCfWRM1@Cg*PWzi7f`ndAL3*43&)fVJ#l3ZwwgM_$ijJ2J(7-|VeiR^ z3`2YlZDpjRTpDh(IzA~f;2$%zj?Mxtm(P?emp=#flF>qxkm`Ac`SL$s4Z}uVhy94- zE~MTOYo;gKnEu9!^1cHjnbhG7)YTD_6Y_;Yx)nQ}GeraYwlZwW7W1n&g+1KRfOF6|(4cb12gXJ#o?|UlFMNCZ=g-OTm2A zqkpM~018@LIj=tzN;<#Ph+R`TN=CZ(`}VI;pwml7le=7*CznF2){x;k2(f)q0toWI v^3WPO5>hSUaNp1VN*A%?SdYhM$Wfut-Yw(b#Toyg0}dUnYgfuO?V|q!P7wv( literal 0 HcmV?d00001 diff --git a/docs/assets/images/epicsandboxlogin.png b/docs/assets/images/epicsandboxlogin.png new file mode 100644 index 0000000000000000000000000000000000000000..e032a1906211c53ad462f0d6a47b85f681fd58c9 GIT binary patch literal 272025 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 rGdlhv+q(M|1t9%2 Bundle: + """Aggregate conditions from multiple FHIR sources with provenance tracking.""" + bundles = [] + for source in sources: + try: + bundle = gateway.search( + Condition, + {"patient": patient_id}, + source, + add_provenance=True, # Track which EHR the data came from + provenance_tag="aggregated", + ) + bundles.append(bundle) + except Exception as e: + print(f"Error from {source}: {e}") + # Continue with partial data rather than fail completely + + # Deduplicate identical conditions across sources (e.g., both Epic and Cerner report "hypertension") + merged_bundle = merge_bundles(bundles, deduplicate=True) + return merged_bundle +``` + +**What it does:** + +- Queries each configured FHIR source for patient conditions +- Adds `Meta` tags to track data provenance (which source each condition came from, preserves existing metadata) +- Handles errors gracefully - partial data is better than no data +- Deduplicates identical conditions across sources + +> **Expected Error Handling** +> +> When querying a patient that doesn't exist in Cerner, you'll see: +> ``` +> Error from cerner: [FHIR request failed: 400 - Unknown error] +> search failed: +> Resource could not be parsed or failed basic FHIR validation rules +> ``` +> This is **expected behavior** - the service continues with data from Epic. The try/except block catches the error, allowing partial results rather than complete failure. + +

+Example Meta Data + +```json +{ + "resourceType": "Condition", + "id": "eOAZNRZkdPPPE9DUuPBBBgA3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", + "source": "urn:healthchain:source:epic", + "tag": [ + { + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + } + ] + } + ... +} +``` + +
+ +## Build the Service + +Register the gateway with [HealthChainAPI](../reference/gateway/api.md) to create REST endpoints. + +```python +import uvicorn +from healthchain.gateway import HealthChainAPI + +app = HealthChainAPI() +app.register_gateway(gateway, path="/fhir") + +uvicorn.run(app) +``` + +The service automatically provides: +- `/fhir/*` - Standard FHIR operations (read, search, create, update) +- `/fhir/metadata` - CapabilityStatement describing supported resources and operations +- `/fhir/status` - Operational status and metadata for gateway +- `/docs` - OpenAPI docs page + +## Add Processing Pipeline (Optional) + +For additional processing like terminology mapping or quality checks, create a Document [pipeline](../reference/pipeline/pipeline.md). + +Document pipelines are optimized for text and structured data processing, such as FHIR resources. When you initialize a `Document` with FHIR Bundle data, it automatically extracts and separates metadata resources from the clinical resources for easier inspection and error handling: + +```python +# Initialize Document with a Bundle +doc = Document(data=merged_bundle) + +# OperationOutcomes are automatically extracted and available +doc.fhir.operation_outcomes # List of OperationOutcome resources + +# Clinical resources remain in the bundle +doc.fhir.bundle # Bundle with clinical resources +doc.fhir.problem_list # List of Condition resources +doc.fhir.medication_list # List of MedicationStatement resources +``` + +Add processing nodes using decorators: + +```python +from healthchain.pipeline import Pipeline +from healthchain.io.containers import Document + +pipeline = Pipeline[Document]() + +@pipeline.add_node +def deduplicate(doc: Document) -> Document: + ... + +@pipeline.add_node +def add_annotation(doc: Document) -> Document: + ... + +# Apply the pipeline +doc = Document(data=merged_bundle) +doc = pipeline(doc) +``` + +Common pipeline uses: terminology mapping (ICD-10 โ†” SNOMED CT), data enrichment (risk scores, clinical decision support), quality checks (validate completeness, flag inconsistencies), consent filtering (apply patient consent rules). + +## What Happens When You Run This + +The service aggregates patient conditions from configured FHIR sources with automatic provenance tracking. Here's example output when querying Linda Ross (Epic patient `eIXesllypH3M9tAA5WdJftQ3`): + +``` +โœ“ Patient: Ross, Linda Jane +โœ“ Conditions retrieved: 2 + +Sample conditions: + โ€ข Moderate persistent asthma + Codes: ICD10-CM:J45.40, SNOMED:427295004, ICD9:493.90 + Source: urn:healthchain:source:epic + Severity: Medium + Onset: 1999-03-08 + + โ€ข Bronchitis with asthma, acute + Codes: ICD10-CM:J20.9/J45.909, SNOMED:405944004, ICD9:466.0 + Source: urn:healthchain:source:epic + Severity: High + Onset: 2019-05-24 +``` + +### Test the Service + +=== "cURL" + Query the aggregation endpoint: + ```bash + curl -X GET "http://localhost:8000/fhir/aggregate/Condition/eIXesllypH3M9tAA5WdJftQ3?sources=epic,cerner" + ``` + + Check the CapabilityStatement: + ```bash + curl -X GET "http://localhost:8000/fhir/metadata" + ``` + +=== "Python" + Query the aggregation endpoint: + ```python + import requests + + response = requests.get( + "http://localhost:8000/fhir/aggregate/Condition/eIXesllypH3M9tAA5WdJftQ3", + params={"sources": ["epic", "cerner"]} + ) + bundle = response.json() + ``` + + Check the CapabilityStatement: + ```python + import requests + + response = requests.get("http://localhost:8000/fhir/metadata") + capability_statement = response.json() + ``` + +### Expected Outputs + +
+Conditions from Epic (Linda Ross - eIXesllypH3M9tAA5WdJftQ3) + +```json +{ + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "eOCME6XUbCLYmFlVf2l1G0w3", + "clinicalStatus": { "text": "Active" }, + "category": [{ "text": "Problem List Item" }], + "severity": { "text": "Medium" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J45.40", + "display": "Moderate persistent asthma, uncomplicated" + }, + { + "system": "http://snomed.info/sct", + "code": "427295004", + "display": "Moderate Persistent Asthma" + }, + { + "system": "http://hl7.org/fhir/sid/icd-9-cm", + "code": "493.90" + } + ], + "text": "Moderate persistent asthma" + }, + "subject": { + "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", + "display": "Ross, Linda Jane" + }, + "onsetDateTime": "1999-03-08" + } + }, + { + "resource": { + "resourceType": "Condition", + "id": "etZVq9vWdHQ4q0Y6INaFhig3", + "severity": { "text": "High" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J20.9", + "display": "Acute bronchitis, unspecified" + }, + { + "system": "http://snomed.info/sct", + "code": "405944004", + "display": "Asthmatic Bronchitis" + } + ], + "text": "Bronchitis with asthma, acute" + }, + "onsetDateTime": "2019-05-24" + } + } + ] +} +``` + +
+ +
+OperationOutcome: Authorization warnings + +You'll see this if you haven't authorized access to the correct FHIR resources when you set up your FHIR sandbox. + +```python +doc.fhir.operation_outcomes +``` + +```json +{ + "resourceType": "OperationOutcome", + "meta": { + "source": "urn:healthchain:source:epic" + }, + "issue": [ + { + "severity": "warning", + "code": "suppressed", + "details": { + "coding": [{ + "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369", + "code": "59204" + }] + }, + "diagnostics": "Client not authorized for Condition - Encounter Diagnosis" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Health Concerns" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Medical History" + } + ] +} +``` + +
+ +
+Aggregated Result: With provenance tags and pipeline processing + +```json +{ + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "eOCME6XUbCLYmFlVf2l1G0w3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", + "source": "urn:healthchain:source:epic", + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + }] + }, + "clinicalStatus": { "text": "Active" }, + "severity": { "text": "Medium" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J45.40", + "display": "Moderate persistent asthma, uncomplicated" + }, + { + "system": "http://snomed.info/sct", + "code": "427295004", + "display": "Moderate Persistent Asthma" + }, + { + "system": "http://hl7.org/fhir/sid/icd-9-cm", + "code": "493.90" + } + ], + "text": "Moderate persistent asthma" + }, + "subject": { + "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", + "display": "Ross, Linda Jane" + }, + "onsetDateTime": "1999-03-08", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] + } + }, + { + "resource": { + "resourceType": "Condition", + "id": "etZVq9vWdHQ4q0Y6INaFhig3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.168175Z", + "source": "urn:healthchain:source:epic", + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated" + }] + }, + "severity": { "text": "High" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J20.9", + "display": "Acute bronchitis, unspecified" + }, + { + "system": "http://snomed.info/sct", + "code": "405944004", + "display": "Asthmatic Bronchitis" + } + ], + "text": "Bronchitis with asthma, acute" + }, + "onsetDateTime": "2019-05-24", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] + } + } + ] +} +``` + +
+ +## What You've Built + +A production-ready data aggregation service with: + +- **Multi-vendor support** - Query Epic, Cerner, and other FHIR sources simultaneously +- **Automatic provenance tracking** - `meta.source` field shows which EHR each resource came from +- **Error resilience** - Handles missing patients, network failures, auth issues gracefully +- **Deduplication** - Merges identical conditions across sources +- **Pipeline extensibility** - Add custom processing for terminology mapping, NLP, or quality checks + +## Use Cases + +**Training Data for AI Models:** +Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). + +**RAG Systems:** +Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. + +**Data Harmonization:** +Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. + +## Next Steps + +- **Try Medplum**: Set up [Medplum](./setup_fhir_sandboxes.md#medplum-sandbox) where you can upload the same test patients to multiple instances for true multi-source aggregation +- **Expand resource types**: Change `Condition` to `MedicationStatement`, `Observation`, or `Procedure` to aggregate different data +- **Add processing**: Extend the pipeline with terminology mapping, entity extraction, or quality checks +- **Build on it**: Use aggregated data in the [Clinical Coding tutorial](./clinical_coding.md) or feed it to your LLM application + +> **Note:** Epic and Cerner sandboxes contain different test patients. In production, you'd map master patient identifiers across systems or use sources that share patient cohorts. diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md index ed71d616..a319386d 100644 --- a/docs/cookbook/index.md +++ b/docs/cookbook/index.md @@ -2,5 +2,12 @@ The best way to learn is by example! Here are some to get you started: -- [Summarize Discharge Notes with CDS Hooks](./discharge_summarizer.md): Implement a CDS Hooks service that listens for `encounter-discharge` events, automatically generates concise summaries of discharge notes, and delivers clinical recommendations directly into EHR workflows. +## Getting Started + +- [Working with FHIR Sandboxes](./setup_fhir_sandboxes.md): Set up access to Epic, Medplum, and other FHIR sandboxes for testing and development. Essential prerequisite for the tutorials below. + +## Tutorials + +- [Multi-Source Patient Data Aggregation](./data_aggregation.md): Aggregate patient data from multiple FHIR sources (Epic, Cerner), deduplicate conditions, track data provenance, and build production-ready error handling for cross-vendor healthcare AI applications. - [Automate Clinical Coding and FHIR Integration](./clinical_coding.md): Build a system that extracts medical conditions from clinical documentation, maps them to SNOMED CT codes, and synchronizes structured Condition resources with external FHIR servers (Medplum) for billing and analytics. +- [Summarize Discharge Notes with CDS Hooks](./discharge_summarizer.md): Implement a CDS Hooks service that listens for `encounter-discharge` events, automatically generates concise summaries of discharge notes, and delivers clinical recommendations directly into EHR workflows. diff --git a/docs/cookbook/setup_fhir_sandboxes.md b/docs/cookbook/setup_fhir_sandboxes.md new file mode 100644 index 00000000..68994f8f --- /dev/null +++ b/docs/cookbook/setup_fhir_sandboxes.md @@ -0,0 +1,216 @@ +# Working with FHIR Sandboxes + +This guide covers setting up access to public FHIR sandboxes for testing and development. These sandboxes provide free access to test data and realistic FHIR APIs without requiring production EHR credentials. + +## Epic on FHIR Sandbox + +Epic provides a public [testing sandbox](https://open.epic.com/MyApps/Endpoints) with [sample patients](https://fhir.epic.com/Documentation?docId=testpatients) for developing against their FHIR Server. This is useful for understanding the Epic FHIR API specs and testing your code without waiting for production environment access. + +### Prerequisites + +- Free Epic on FHIR developer account: [https://fhir.epic.com/](https://fhir.epic.com/) +- No existing Epic customer account required +- Registration takes about 1 minute + +### Step 1: Create an App + +1. Log in to [https://fhir.epic.com/](https://fhir.epic.com/) + +![Epic Sandbox Login](../assets/images/epicsandboxlogin.png) + +2. Navigate to "Build Apps" โ†’ "Create" + +![Epic Sandbox App Configuration](../assets/images/epicsandbox1.png) + +3. Fill out the application form: + - **Application Name**: Choose any descriptive name + - **Application Type**: Check "Backend Systems" + - **FHIR APIs**: Select the APIs you need (note the versions) + +![Epic Sandbox API Selection](../assets/images/epicsandbox2.png) + +### Step 2: Configure OAuth2 with JWT Authentication + +Epic uses [OAuth2 with JWT assertion for authentication](https://fhir.epic.com/Documentation?docId=oauth2§ion=BackendOAuth2Guide). + +#### Generate Key Pair + +Follow Epic's instructions to [create a Public Private key pair for JWT signature](https://fhir.epic.com/Documentation?docId=oauth2§ion=Creating-Key-Pair): + +```bash +# Generate private key - make sure the key length is at least 2048 bits. +openssl genrsa -out privatekey.pem 2048 + +# Export public key as base64 encoded X.509 certificate +openssl req -new -x509 -key privatekey.pem -out publickey509.pem -subj '/CN=myapp' +``` + +Where `/CN=myapp` is the subject name (e.g., your app name). The subject name doesn't have functional impact but is required for creating an X.509 certificate. + +#### Upload Public Key + +1. In your Epic app configuration, upload the `publickey509.pem` file +2. Click **Save** +3. Note down your **Non-Production Client ID** + +![Epic Sandbox Client ID](../assets/images/epicsandbox3.png) + +### Step 3: Complete App Setup + +1. Fill out remaining required fields (description, etc.) +2. Check to confirm terms of use +3. Click **Save & Ready for Sandbox** + +![Epic Sandbox Final Setup](../assets/images/epicsandbox4.png) + +### Step 4: Configure Environment Variables + +Create a `.env` file with your credentials: + +```bash +# .env file +EPIC_BASE_URL=https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4 +EPIC_CLIENT_ID=your_non_production_client_id +EPIC_CLIENT_SECRET_PATH=path/to/privatekey.pem +EPIC_TOKEN_URL=https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token +EPIC_USE_JWT_ASSERTION=true +``` + +### Using Epic Sandbox in Code + +```python +from healthchain.gateway.clients.fhir.base import FHIRAuthConfig + +# Load configuration from environment variables +config = FHIRAuthConfig.from_env("EPIC") +EPIC_URL = config.to_connection_string() + +# Add to FHIR gateway +from healthchain.gateway import FHIRGateway + +gateway = FHIRGateway() +gateway.add_source("epic", EPIC_URL) +``` + +### Available Test Patients + +Epic provides [sample test patients](https://fhir.epic.com/Documentation?docId=testpatients) including: +- **Derrick Lin** - Patient ID: `eq081-VQEgP8drUUqCWzHfw3` +- **Linda Ross** - Patient ID: `eIXesllypH3M9tAA5WdJftQ3` +- Many others with various clinical scenarios + +## Cerner Sandbox + +Cerner (now Oracle Health) provides both open and secure public sandboxes for the [FHIR R4 APIs for Oracle Health Millennium Platform](https://docs.oracle.com/en/industries/health/millennium-platform-apis/mfrap/srv_root_url.html). + +The Open Sandbox is read-only. It does not require authentication and is handy for quick proof of concepts: + +```bash +https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/:resource[?:parameters] +``` +You can get an idea of patients available in the open sandbox by querying some common last names: + +```bash +curl -i -H "Accept: application/json+fhir" "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Patient?family=smith" +``` + +Documentation on Secure Sandbox coming soon. + + +## Medplum + +[Medplum](https://www.medplum.com/) is an open-source healthcare platform that provides a compliant FHIR server. It's useful for testing with controlled data where you can upload your own test patients. Medplum uses [standard OAuth2/OpenID authentication](https://www.medplum.com/docs/auth/client-credentials). + +### Prerequisites + +- Medplum account: [Register here](https://www.medplum.com/docs/tutorials/register) +- Free tier available + +### Step 1: Create a Client Application + +1. Log in to your Medplum account +2. Navigate to [ClientApplication](https://app.medplum.com/ClientApplication) +3. Create a new Client and configure Access Policy if needed. + + +### Step 2: Get Credentials + +After creating the client: +1. Note your **Client ID** +2. Copy your **Client Secret** + +![Medplum Client Application](../assets/images/medplum_client.png) + + +### Step 3: Configure Environment Variables + +Create a `.env` file with your credentials: + +```bash +# .env file +MEDPLUM_BASE_URL=https://api.medplum.com/fhir/R4 +MEDPLUM_CLIENT_ID=your_client_id +MEDPLUM_CLIENT_SECRET=your_client_secret +MEDPLUM_TOKEN_URL=https://api.medplum.com/oauth2/token +MEDPLUM_SCOPE=openid +``` + +### Using Medplum in Code + +```python +from healthchain.gateway import FHIRGateway +from healthchain.gateway.clients.fhir.base import FHIRAuthConfig +from dotenv import load_dotenv + +load_dotenv() + +# Load configuration from environment variables +config = FHIRAuthConfig.from_env("MEDPLUM") +MEDPLUM_URL = config.to_connection_string() + +# Add to FHIR gateway +gateway = FHIRGateway() +gateway.add_source("medplum", MEDPLUM_URL) +``` + +### Benefits of Medplum + +- **Full control**: Upload your own test data +- **FHIR R4 compliant**: Complete FHIR API implementation +- **Multi-source testing**: Create multiple projects for different data sources +- **Web interface**: Browse and manage resources via UI + + +## Tips for Multi-Source Testing + +### Different Test Data + +Public sandboxes (Epic, Cerner) contain different test patients. When testing multi-source aggregation: + +- **Expected behavior**: Queries for patients not in a source should fail gracefully +- **Production use**: Map patient identifiers across systems or use sources sharing patient cohorts +- **Controlled testing**: Use Medplum where you can upload the same test patients to multiple instances + +### Error Handling + +Your code should handle: +- Network issues or downtime +- Patient not found in specific sources +- Rate limiting +- Authorization failures + +### Authentication + +| Sandbox | Auth Mechanism | +|-----------|------------------------------------| +| **Epic** | OAuth2 with JWT assertion (backend) | +| **Medplum** | OAuth2 client credentials (Client Credentials Flow) | + + +HealthChain's [FHIRGateway](../reference/gateway/fhir_gateway.md) handles these automatically via connection strings. + +## Next Steps + +- Return to your tutorial to continue with the specific use case +- See [FHIR Gateway documentation](../reference/gateway/fhir_gateway.md) for advanced configuration +- Check [FHIR Resources documentation](https://www.hl7.org/fhir/) for working with different resource types diff --git a/mkdocs.yml b/mkdocs.yml index 2002192e..23a89f83 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,6 +16,7 @@ nav: - cookbook/index.md - Discharge Summarizer: cookbook/discharge_summarizer.md - Clinical Coding: cookbook/clinical_coding.md + - Multi-Source Data Integration: data_aggregation.md - Docs: - Welcome: reference/index.md - Gateway: From f6f5886ec7b3aa057b45190a87086fcc09860412 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Mon, 13 Oct 2025 10:31:30 +0100 Subject: [PATCH 10/18] resolve merge conflict --- docs/cookbook/clinical_coding.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md index 2b746358..ee751c2d 100644 --- a/docs/cookbook/clinical_coding.md +++ b/docs/cookbook/clinical_coding.md @@ -13,7 +13,6 @@ pip install healthchain scispacy python-dotenv pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.4/en_core_sci_sm-0.5.4.tar.gz ``` -<<<<<<< HEAD To test the FHIR integration with Medplum, you'll need to set up a Medplum account and obtain client credentials. See the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#medplum-sandbox) for detailed instructions. Once you have your Medplum credentials, configure them in a `.env` file: @@ -25,16 +24,6 @@ MEDPLUM_CLIENT_ID=your_client_id MEDPLUM_CLIENT_SECRET=your_client_secret MEDPLUM_TOKEN_URL=https://api.medplum.com/oauth2/token MEDPLUM_SCOPE=openid -======= -If you'd like to test the FHIR integration with Medplum, make sure you have the following environment variables set. To setup Medplum, register an account on [Medplum](https://www.medplum.com/docs/tutorials/register) and obtain your [Client Credentials](https://www.medplum.com/docs/auth/methods/client-credentials). - -![Medplum Client Application](../assets/images/medplum_client.png) - -```bash -# .env file -MEDPLUM_CLIENT_ID=your_client_id -MEDPLUM_CLIENT_SECRET=your_client_secret ->>>>>>> 2f114b2ed4e5f052098bc8deb7514ea2fea34a84 ``` ## Initialize the pipeline From 11c3c537a6db912b6728ea209701a545c0a682b7 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Mon, 13 Oct 2025 13:53:29 +0100 Subject: [PATCH 11/18] Fix test --- healthchain/io/containers/document.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/healthchain/io/containers/document.py b/healthchain/io/containers/document.py index 740b977d..8ee1dfd5 100644 --- a/healthchain/io/containers/document.py +++ b/healthchain/io/containers/document.py @@ -789,7 +789,7 @@ def update_problem_list_from_nlp( display=ent.text, system=coding_system, ) - set_condition_category(condition) + set_condition_category(condition, "problem-list-item") logger.debug( f"Adding condition from spaCy: {condition.model_dump(exclude_none=True)}" ) From 0093a6f3f209ac28758b622d7b5ab82e6c461856 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Mon, 13 Oct 2025 15:27:56 +0100 Subject: [PATCH 12/18] Safer logging --- healthchain/gateway/fhir/aio.py | 6 +++--- healthchain/gateway/fhir/sync.py | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/healthchain/gateway/fhir/aio.py b/healthchain/gateway/fhir/aio.py index c3cff7bd..5a941832 100644 --- a/healthchain/gateway/fhir/aio.py +++ b/healthchain/gateway/fhir/aio.py @@ -226,12 +226,12 @@ async def search( # Emit search event with result count type_name = resource_type.__resource_type__ event_data = { - "params": params, "result_count": len(bundle.entry) if bundle.entry else 0, } + # Do not include full params. self._emit_fhir_event("search", type_name, None, event_data) - logger.debug( - f"Searched {type_name} with params {params}, found {len(bundle.entry) if bundle.entry else 0} results" + logger.info( + f"FHIR operation: search on {type_name}, found {event_data['result_count']} results" ) return bundle diff --git a/healthchain/gateway/fhir/sync.py b/healthchain/gateway/fhir/sync.py index ade5753d..96a7b7d4 100644 --- a/healthchain/gateway/fhir/sync.py +++ b/healthchain/gateway/fhir/sync.py @@ -283,9 +283,8 @@ def search( ) type_name = resource_type.__resource_type__ - result_count = len(bundle.entry) if bundle.entry else 0 logger.info( - f"FHIR operation: search on {type_name} with params {params}, found {result_count} results" + f"FHIR operation: search on {type_name}, found {len(bundle.entry) if bundle.entry else 0} results" ) return bundle From 6038d79f2179f01e332c3c357c6146a77c7f793c Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Mon, 13 Oct 2025 18:19:19 +0100 Subject: [PATCH 13/18] Update cookbook examples --- cookbook/data/notereader_cda.xml | 2151 +++++++++++++++++++ cookbook/data_aggregation.py | 8 +- cookbook/notereader_clinical_coding_fhir.py | 14 +- docs/cookbook/clinical_coding.md | 161 +- docs/cookbook/data_aggregation.md | 510 ++--- docs/cookbook/discharge_summarizer.md | 165 +- docs/cookbook/index.md | 31 +- docs/cookbook/setup_fhir_sandboxes.md | 11 +- mkdocs.yml | 3 +- 9 files changed, 2587 insertions(+), 467 deletions(-) create mode 100644 cookbook/data/notereader_cda.xml diff --git a/cookbook/data/notereader_cda.xml b/cookbook/data/notereader_cda.xml new file mode 100644 index 00000000..d3b5e18d --- /dev/null +++ b/cookbook/data/notereader_cda.xml @@ -0,0 +1,2151 @@ + + + + + + + + + + + + + + CDA for NoteReader (NLP integration) + + + + + + + + 250 Euston Road + London + NW1 2BG + England + + + + + + + + + Edwin + Mars + + + + + + + Edwin + Mars + + + + + + + Adam + Horatio + Mars + + + + + + + Edwin + Horatio + Mars + + + + + + + + + + + + + + + + + + + UCLH - University College London Hospitals - OLDTST + + + NW1 2BU + England + + + + + + + + + + + UCLH - University College London Hospitals - OLDTST + + + NW1 2BU + England + + + + + + + + + + + + + + + + + + + + + + + Primary Care Provider + + + + + + + + + + + UCLH - University College London Hospitals - OLDTST + + + NW1 2BU + England + + + + + + + + + + + Hospital Encounter + + + + + + + + + + + + + Sarah + LOGAN + + + + UCLH - University College London Hospitals - OLDTST + + + + + + + + + + + + + + + + + + + UNIVERSITY COLLEGE HOSPITAL CAMPUS + + + + UCLH - University College London Hospitals - OLDTST + + + + + + + + + + + +
+ + + + + + Allergies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Active AllergyReactionsSeverityNoted DateComments
Eggs + Swelling + High25/09/2020 + Swollen toe after eating boiled egg +
Ibuprofen + Gastrointestinal bleeding + Low25/09/2020 +
Loratadine + Rash, itching or hives, Swelling + High09/11/2022 + 09/11/2022 Leilei: I entered this for testing purpose. +
Methotrexate + Diarrhoea + Medium25/09/2020 +
Paracetamol + Diarrhoea + Low25/09/2020 +
Penicillins + Anaphylaxis + High14/11/2022 + 14/11/2022: Leilei: testing purpose. +
Shellfish + Shortness of breath + High14/11/2022 +
+ documented as of this encounter (statuses as of 29/11/2022) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EGGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IBUPROFEN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LORATADINE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOTREXATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PARACETAMOL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PENICILLINS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SHELLFISH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + Medication + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MedicationInstructionsDispensedRefillsStart DateEnd DateStatus
+ LANSOPRAZOLE ORAL + Take 30 mg by mouth ONCE only . + 0 + 20/10/2022Discontinued (No longer prescribed / taking) +
+ documented as of this encounter (statuses as of 29/11/2022) +
+ + + + + + + + + + + + + + + + + + Oral + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + Problems + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Active ProblemsNoted Date
Hepatic failure29/09/2022
Community acquired pneumonia16/02/2022
+ Overview: + + Formatting of this note might be different from the original. +
+Bad Chest XR
+Not responding to Antibiotics
+
+
Hypertension17/05/2019
+ + + + + + + + + + + + + + + + + + + + +
Resolved ProblemsNoted DateResolved Date
Gallstone16/02/202216/02/2022
+ documented as of this encounter (statuses as of 29/11/2022) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + Progress Notes + + Summary: Test note +
+
+ Annotation test
+
+This 37 year old gentleman presented with a fever, cough and sore throat. He was diagnosed with a community acquired pneumonia, and started on co-amoxiclav. Unfortunately he developed anaphylaxis and was treated with resuscitation fluids and adrenaline but not hydrocortisone. He had refractory anaphylaxis and so was transferred to intensive care for intubation and ventilation. He then developed a "ventilation associated pneumonia", requiring meropenem. Once treated for his CAP and VAP he was stepped down to the ward. He was treated with haloperidol for a presumed 'delirium'. He improved medically, but deteriorated in terms of his psychiatric health, with depression, anxiety and paranoid schizophrenia. He was self-medicating with his own supply of Librium.
+
+He has a past medical history of asthma and COPD but not cirrhosis.
+
+He regularly takes penicillin, Ventolin and tiotropium inhalers, as well as an ACE inhibitor, beta blocker and calcium channel blocker.
+
+He is allergic to all opiates, including morphine.
+
+He has previously had a cholecystectomy and appendicectomy.
+
+Plan:
+- Discharge planning
+
+I reviewed the Resident's note and agree with the documented findings and plan of care. The reason the patient is critically ill and the nature of the treatment and management provided by the teaching physician (me) to manage the critically ill patient is: as aove
+The patient was critically ill during the time that I saw the patient. The Critical Care Time excluding procedures was 6 minutes.
+
+Electronically signed by Georgina DEAN at 29/11/2022 09:50 GMT +
+
+
+
+
+
+
diff --git a/cookbook/data_aggregation.py b/cookbook/data_aggregation.py index 4dbe20e6..fc6bf272 100644 --- a/cookbook/data_aggregation.py +++ b/cookbook/data_aggregation.py @@ -6,7 +6,7 @@ simple pipeline processing and provenance tracking. Requirements: -- pip install healthchain +- pip install healthchain python-dotenv Run: - python data_aggregation.py @@ -98,7 +98,7 @@ def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: # print([outcome.model_dump() for outcome in doc.fhir.operation_outcomes]) - return doc.fhir.bundle + return doc.fhir.bundle.model_dump() app = HealthChainAPI() app.register_gateway(gateway) @@ -110,5 +110,5 @@ def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: import uvicorn app = create_app() - uvicorn.run(app) - # Default: http://127.0.0.1:8000/ + uvicorn.run(app, port=8888) + # Runs at: http://127.0.0.1:8888/ diff --git a/cookbook/notereader_clinical_coding_fhir.py b/cookbook/notereader_clinical_coding_fhir.py index c45ff2b5..638a55a4 100644 --- a/cookbook/notereader_clinical_coding_fhir.py +++ b/cookbook/notereader_clinical_coding_fhir.py @@ -14,15 +14,13 @@ """ import uvicorn -from datetime import datetime, timezone - import healthchain as hc + from fhir.resources.documentreference import DocumentReference -from fhir.resources.meta import Meta from spacy.tokens import Span from dotenv import load_dotenv -from healthchain.fhir import create_document_reference +from healthchain.fhir import create_document_reference, add_provenance_metadata from healthchain.gateway.api import HealthChainAPI from healthchain.gateway.fhir import FHIRGateway from healthchain.gateway.clients.fhir.base import FHIRAuthConfig @@ -79,7 +77,6 @@ def link_entities(doc: Document) -> Document: def create_app(): - """Create production healthcare API.""" pipeline = create_pipeline() cda_adapter = CdaAdapter() @@ -97,9 +94,8 @@ def ai_coding_workflow(request: CdaRequest): for condition in doc.fhir.problem_list: # Add basic provenance tracking - condition.meta = Meta( - source="urn:healthchain:pipeline:cdi", - lastUpdated=datetime.now(timezone.utc).isoformat(), + condition = add_provenance_metadata( + condition, source="epic-notereader", tag_code="cdi" ) fhir_gateway.create(condition, source="billing") @@ -122,7 +118,7 @@ class NotereaderSandbox(ClinicalDocumentation): def __init__(self): super().__init__() - self.data_path = "./resources/uclh_cda.xml" + self.data_path = "./data/notereader_cda.xml" @hc.ehr(workflow="sign-note-inpatient") def load_clinical_document(self) -> DocumentReference: diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md index ee751c2d..2a331480 100644 --- a/docs/cookbook/clinical_coding.md +++ b/docs/cookbook/clinical_coding.md @@ -26,61 +26,58 @@ MEDPLUM_TOKEN_URL=https://api.medplum.com/oauth2/token MEDPLUM_SCOPE=openid ``` -## Initialize the pipeline +## Initialize the Pipeline -First, we'll create a [medical coding pipeline](../reference/pipeline/pipeline.md) with a custom entity linking node for extracting conditions from clinical text. - -The example below just uses a dictionary lookup of medical concepts to a [SNOMED CT](https://www.snomed.org/) code for demo purposes, but you can obviously do more fancy stuff with it if you want. +First, we'll build a [medical coding pipeline](../reference/pipeline/pipeline.md) with a custom entity linking node that maps extracted entities (e.g., "chronic kidney disease") to standard codes (e.g., SNOMED CT). For this demo, we'll use a simple dictionary for SNOMED CT mapping. ```python from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline from healthchain.io import Document from spacy.tokens import Span -def create_pipeline(): - """Build FHIR-native ML pipeline with automatic problem extraction.""" - pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") - - # Add custom entity linking - @pipeline.add_node(position="after", reference="SpacyNLP") - def link_entities(doc: Document) -> Document: - """Add CUI codes to medical entities for problem extraction""" - if not Span.has_extension("cui"): - Span.set_extension("cui", default=None) - - spacy_doc = doc.nlp.get_spacy_doc() - - # Dummy medical concept mapping to SNOMED CT codes - medical_concepts = { - "pneumonia": "233604007", - "type 2 diabetes mellitus": "44054006", - "congestive heart failure": "42343007", - "chronic kidney disease": "431855005", - "hypertension": "38341003", - # Add more mappings as needed - } - - for ent in spacy_doc.ents: - if ent.text.lower() in medical_concepts: - ent._.cui = medical_concepts[ent.text.lower()] - - return doc - - return pipeline +# Build FHIR-native ML pipeline with automatic problem extraction. +pipeline = MedicalCodingPipeline.from_model_id("en_core_sci_sm", source="spacy") + +# Add custom entity linking +@pipeline.add_node(position="after", reference="SpacyNLP") +def link_entities(doc: Document) -> Document: + """ + Add CUI codes to medical entities for problem extraction. + """ + if not Span.has_extension("cui"): + Span.set_extension("cui", default=None) + + spacy_doc = doc.nlp.get_spacy_doc() + + # Dummy medical concept mapping to SNOMED CT codes + medical_concepts = { + "pneumonia": "233604007", + "type 2 diabetes mellitus": "44054006", + "congestive heart failure": "42343007", + "chronic kidney disease": "431855005", + "hypertension": "38341003", + # Add more mappings as needed + } + + for ent in spacy_doc.ents: + if ent.text.lower() in medical_concepts: + ent._.cui = medical_concepts[ent.text.lower()] + + return doc ``` The `MedicalCodingPipeline` automatically: - Extracts medical entities using the `scispacy` model - Converts entities to FHIR [Condition](https://www.hl7.org/fhir/condition.html) resources -- Populates the Document's `fhir.problem_list` for downstream processing +- Automatically populates the Document's `fhir.problem_list` for downstream processing It is equivalent to building a pipeline with the following components: ```python from healthchain.pipeline import Pipeline from healthchain.pipeline.components import SpacyNLP, FHIRProblemListExtractor -from healthchain.io.containers import Document +from healthchain.io import Document pipeline = Pipeline[Document]() @@ -90,7 +87,8 @@ pipeline.add_node(FHIRProblemListExtractor()) ## Add the CDA Adapter -The [CdaAdapter](../reference/pipeline/adapters/cdaadapter.md) converts CDA documents to HealthChain's [Document](../reference/pipeline/data_container.md) format using an instance of the [InteropEngine](../reference/interop/engine.md). This lets you work with legacy clinical documents without having to leave FHIR. +The [CdaAdapter](../reference/pipeline/adapters/cdaadapter.md) parses CDA XML into a [Document](../reference/pipeline/data_container.md), extracts both clinical text and coded data (e.g., conditions), and enables round-trip conversion between CDA, FHIR, and Document formats using the [InteropEngine](../reference/interop/engine.md) for seamless legacy-to-modern data integration. + ```python from healthchain.io import CdaAdapter @@ -110,17 +108,16 @@ doc.fhir.problem_list response = cda_adapter.format(doc) ``` -What it does: +!!! info "What this adapter does" -- Parses CDA XML documents -- Extracts clinical text and coded data from the CDA document -- Stores the text data in `doc.text` -- Stores the CDA XML as a [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resource in `doc.fhir.bundle` -- Stores the extracted [Condition](https://www.hl7.org/fhir/condition.html) resources from the CDA document in `doc.fhir.problem_list` + - Parses CDA XML documents and extracts clinical text and coded data + - Stores text data in `doc.text` + - Stores CDA XML as a [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resource in `doc.fhir.bundle` + - Stores extracted [Condition](https://www.hl7.org/fhir/condition.html) resources in `doc.fhir.problem_list` ## Set up FHIR Gateway -[FHIR gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers. You can add multiple FHIR sources to the gateway via connection strings with the `add_source` method. The gateway will handle authentication and connections for you. +[FHIR gateways](../reference/gateway/fhir_gateway.md) enable your app to connect to one or more external FHIR servers (like EHRs, registries, billing systems). Use `add_source` to register each FHIR endpoint with its connection string; the gateway manages authentication, routing, and merging data across sources, allowing unified access to patient data. ```python from healthchain.gateway import FHIRGateway @@ -142,16 +139,16 @@ fhir_gateway.add_source("billing", BILLING_URL) # fhir_gateway.add_source("registry", "fhir://registry.example.com/fhir/R4/") ``` -## Set up the NoteReader Service +## Set Up the NoteReader Service -Now let's set up the [NoteReader Service](../reference/gateway/soap_cda.md). This is an Epic specific module that allows third party services to interact with Epic's CDI service via CDA. It's somewhat niche but it be like that sometimes. +Now let's set up the handler for [NoteReader Service](../reference/gateway/soap_cda.md). -The good thing about NoteReader is that it's already integrated in existing EHR workflows. The bad thing is it's legacy stuff and relatively rigid. +!!! note "About NoteReader" -We can make it more exciting by routing the extracted conditions to a FHIR server inside the NoteReader service method, so you can do other cool modern stuff to it. + Epic NoteReader is a legacy SOAP/CDA interface for clinical documentation improvement (CDI) workflows. While it's rigid and dated, it's already integrated into existing EHR workflows. We can modernize it by routing extracted conditions to FHIR servers for additional processing. ```python -from healthchain.gateway.soap import NoteReaderService +from healthchain.gateway import NoteReaderService # Create the NoteReader service note_service = NoteReaderService() @@ -167,9 +164,8 @@ def ai_coding_workflow(request: CdaRequest): # Access the extracted FHIR resources for condition in doc.fhir.problem_list: # Add metadata for audit and provenance tracking - condition.meta = Meta( - source="urn:healthchain:pipeline:cdi", - lastUpdated=datetime.now(timezone.utc).isoformat(), + condition = add_provenance_metadata( + condition, source="epic-notereader", tag_code="cdi" ) # Send to external FHIR server via gateway fhir_gateway.create(condition, source="billing") @@ -180,12 +176,12 @@ def ai_coding_workflow(request: CdaRequest): return cda_response ``` -## Build the service +## Build the Service Time to put it all together! Using [HealthChainAPI](../reference/gateway/api.md), we can create a service with both FHIR and NoteReader endpoints. ```python -from healthchain.gateway.api import HealthChainAPI +from healthchain.gateway import HealthChainAPI # Register services with the API gateway app = HealthChainAPI(title="Healthcare Integration Gateway") @@ -194,14 +190,20 @@ app.register_gateway(fhir_gateway, path="/fhir") app.register_service(note_service, path="/notereader") ``` -## Test with sample documents +## Test with Sample Documents + +Use the [sandbox utility](../reference/utilities/sandbox.md) to test with sample clinical documents: -You can test the service with sample clinical documents using the [sandbox utility](../reference/utilities/sandbox.md) so you don't have to go out there and source a real EHR for our neat little demo. Woohoo. +!!! note "Download Sample Data" + + Download sample CDA files from [cookbook/data](https://github.com/dotimplement/HealthChain/tree/main/cookbook/data) and place them in a `data/` folder in your project root. ```python import healthchain as hc + from healthchain.sandbox.use_cases import ClinicalDocumentation from healthchain.fhir import create_document_reference + from fhir.resources.documentreference import DocumentReference def create_sandbox(): @@ -210,7 +212,7 @@ def create_sandbox(): """Sandbox for testing clinical documentation workflows""" def __init__(self): super().__init__() - self.data_path = "./resources/uclh_cda.xml" + self.data_path = "./data/notereader_cda.xml" @hc.ehr(workflow="sign-note-inpatient") def load_clinical_document(self) -> DocumentReference: @@ -227,7 +229,7 @@ def create_sandbox(): return NotereaderSandbox() ``` -## Run the complete example +## Run the Complete Example Run `HealthChainAPI` with `uvicorn` and start the sandbox to test the service. @@ -240,31 +242,30 @@ sandbox = create_sandbox() sandbox.start_sandbox() ``` -## What happens when you run this +## What You've Built + +A clinical coding service that bridges legacy CDA systems with modern FHIR infrastructure: + +- **Legacy system integration** - Processes CDA documents from Epic NoteReader workflows +- **AI-powered extraction** - Uses NLP to extract medical entities and map to SNOMED CT codes +- **FHIR interoperability** - Converts extracted conditions to FHIR resources and syncs with external servers +- **Audit trail** - Tracks provenance metadata for compliance and debugging +- **Dual interface** - Maintains CDA compatibility while enabling modern FHIR operations -Here's the workflow: +!!! info "Use Cases" -=== "1. Server Startup" - - **URL:** `http://localhost:8000/` - - **Endpoints:** - - FHIR API: `/fhir/*` - - SOAP API: `/notereader` - - Documentation: `/docs` + - **Clinical Documentation Improvement (CDI)** + Automatically extract billable conditions from clinical notes and populate problem lists in real-time during clinician workflows. -=== "2. Sandbox" - - Loads a sample CDA document from the `resources/` directory. - - Sends a SOAP request to the notereader service at `http://localhost:8000/notereader/ProcessDocument`. - - Receives the processed CDA document in response. - - Saves both the original and processed CDA documents to the `output/` directory. + - **Terminology Harmonization** + Bridge legacy ICD-9 systems with modern SNOMED CT standards by processing historical CDA documents and creating FHIR-compliant problem lists. -=== "3. Pipeline" - - Converts the CDA document to FHIR resources. - - Processes the text data from the CDA document using the pipeline. - - Creates FHIR `Condition` resources from extracted conditions. - - Converts the new FHIR resources back into an updated CDA document. + - **Research Data Extraction** + Extract structured condition data from unstructured clinical notes for cohort building and retrospective studies. -=== "4. Output" - - Stores the `Condition` resources in the Medplum FHIR server. - - Returns the processed CDA document to the sandbox/EHR workflow. +!!! tip "Next Steps" -That's it! You can now test the service with sample documents and see the FHIR resources being created in Medplum. ๐ŸŽ‰ + - **Enhance entity linking**: Replace the dictionary lookup with terminology servers or entity linking models for comprehensive medical terminology coverage. + - **Add validation**: Implement FHIR resource validation before sending to external servers. + - **Expand to other workflows**: Adapt the pattern for lab results, medications, or radiology reports. + - **Build on it**: Use the extracted conditions in the [Data Aggregation tutorial](./data_aggregation.md) to combine with other FHIR sources. diff --git a/docs/cookbook/data_aggregation.md b/docs/cookbook/data_aggregation.md index 65c57c3b..4e0c74aa 100644 --- a/docs/cookbook/data_aggregation.md +++ b/docs/cookbook/data_aggregation.md @@ -7,7 +7,7 @@ Check out the full working example [here](https://github.com/dotimplement/Health ## Setup ```bash -pip install healthchain +pip install healthchain python-dotenv ``` We'll use Epic's public FHIR sandbox. If you haven't set up Epic sandbox access yet, see the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#epic-sandbox) for detailed instructions. @@ -23,10 +23,10 @@ EPIC_TOKEN_URL=https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token EPIC_USE_JWT_ASSERTION=true ``` -Load the configuration into a connection string: +Load your Epic credentials from the `.env` file and create a connection string compatible with the FHIR gateway: ```python -from healthchain.gateway.clients.fhir.base import FHIRAuthConfig +from healthchain.gateway.clients import FHIRAuthConfig config = FHIRAuthConfig.from_env("EPIC") EPIC_URL = config.to_connection_string() @@ -34,7 +34,7 @@ EPIC_URL = config.to_connection_string() ## Set Up FHIR Gateway -[FHIR gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers. Add the Epic sandbox as a source. +[FHIR Gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers and handles authentication, connection pooling, and token refresh automatically. Add the Epic sandbox as a source: ```python from healthchain.gateway import FHIRGateway @@ -47,12 +47,15 @@ CERNER_URL = "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583 gateway.add_source("cerner", CERNER_URL) # You can add more sources: -# gateway.add_source("medplum", medplum_url) +# gateway.add_source("other source", fhir://url) ``` -Handles authentication, connection pooling, and token refresh automatically. +!!! note + + Cerner's public sandbox patient cohort differs from Epic's. For demo/testing with sandboxes, expect incomplete aggregation if patient cohorts don't overlap - this is normal for the public test data. + + In production, you must perform your own patient identity matching (MPI/crosswalk) before aggregation. -**Note:** Cerner's public sandbox requires no authentication but contains different test patients than Epic. This demonstrates multi-vendor aggregation and production-ready error handling when patients don't exist in all sources. ## Create Aggregation Handler @@ -79,51 +82,39 @@ def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: print(f"Error from {source}: {e}") # Continue with partial data rather than fail completely - # Deduplicate identical conditions across sources (e.g., both Epic and Cerner report "hypertension") + # Combine conditions across sources merged_bundle = merge_bundles(bundles, deduplicate=True) return merged_bundle ``` -**What it does:** - -- Queries each configured FHIR source for patient conditions -- Adds `Meta` tags to track data provenance (which source each condition came from, preserves existing metadata) -- Handles errors gracefully - partial data is better than no data -- Deduplicates identical conditions across sources - -> **Expected Error Handling** -> -> When querying a patient that doesn't exist in Cerner, you'll see: -> ``` -> Error from cerner: [FHIR request failed: 400 - Unknown error] -> search failed: -> Resource could not be parsed or failed basic FHIR validation rules -> ``` -> This is **expected behavior** - the service continues with data from Epic. The try/except block catches the error, allowing partial results rather than complete failure. - -
-Example Meta Data - -```json -{ - "resourceType": "Condition", - "id": "eOAZNRZkdPPPE9DUuPBBBgA3", - "meta": { - "lastUpdated": "2025-10-10T15:23:50.167941Z", - "source": "urn:healthchain:source:epic", - "tag": [ - { - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated", - "display": "Aggregated" - } - ] - } - ... -} -``` +!!! info "What this handler does" + + - Queries each configured FHIR source for patient conditions + - Adds [Meta](https://hl7.org/fhir/resource.html#Meta) tags to track data provenance (which source each condition came from, preserves existing metadata) + - Handles errors gracefully โ€“ partial data is better than no data + - Deduplicates identical conditions across sources -
+ +??? example "Example FHIR Metadata" + + ```json + { + "resourceType": "Condition", + "id": ..., + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated timestamp + "source": "urn:healthchain:source:epic", // Adds source + "tag": [ + { + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + } // Appends a custom HealthChain tag + ] + } + ... + } + ``` ## Build the Service @@ -139,17 +130,17 @@ app.register_gateway(gateway, path="/fhir") uvicorn.run(app) ``` -The service automatically provides: -- `/fhir/*` - Standard FHIR operations (read, search, create, update) -- `/fhir/metadata` - CapabilityStatement describing supported resources and operations -- `/fhir/status` - Operational status and metadata for gateway -- `/docs` - OpenAPI docs page +!!! tip "FHIR Endpoints Provided by the Service" + + - `/fhir/*` - Standard FHIR operations (`read`, `search`, `create`, `update`) + - `/fhir/metadata` - [CapabilityStatement](https://hl7.org/fhir/capabilitystatement.html) describing supported resources and operations + - `/fhir/status` - Operational status and metadata for gateway ## Add Processing Pipeline (Optional) -For additional processing like terminology mapping or quality checks, create a Document [pipeline](../reference/pipeline/pipeline.md). +For additional processing like terminology mapping or quality checks, create a Document [Pipeline](../reference/pipeline/pipeline.md). -Document pipelines are optimized for text and structured data processing, such as FHIR resources. When you initialize a `Document` with FHIR Bundle data, it automatically extracts and separates metadata resources from the clinical resources for easier inspection and error handling: +Document pipelines are optimized for text and structured data processing, such as FHIR resources. When you initialize a [Document](../reference/pipeline/data_container.md) with FHIR [Bundle](https://www.hl7.org/fhir/condition.html) data, it automatically extracts and separates metadata resources from the clinical resources for easier inspection and error handling: ```python # Initialize Document with a Bundle @@ -185,11 +176,48 @@ doc = Document(data=merged_bundle) doc = pipeline(doc) ``` -Common pipeline uses: terminology mapping (ICD-10 โ†” SNOMED CT), data enrichment (risk scores, clinical decision support), quality checks (validate completeness, flag inconsistencies), consent filtering (apply patient consent rules). +!!! tip "Common Pipeline Uses" + + - **Terminology mapping** (ICD-10 โ†” SNOMED CT) + - **Data enrichment** (risk scores, clinical decision support) + - **Quality checks** (validate completeness, flag inconsistencies) + - **Consent filtering** (apply patient consent rules) + -## What Happens When You Run This +## Test the Service -The service aggregates patient conditions from configured FHIR sources with automatic provenance tracking. Here's example output when querying Linda Ross (Epic patient `eIXesllypH3M9tAA5WdJftQ3`): +To test aggregation, request `/fhir/aggregate/Condition/{patientId}` with the `sources` parameter (e.g., `epic,cerner`). + +Example uses Epic patient `eIXesllypH3M9tAA5WdJftQ3`; see [Epic sandbox](https://fhir.epic.com/Documentation?docId=testpatients) for more test patients. + + +=== "cURL" + ```bash + curl -X 'GET' \ + 'http://127.0.0.1:8888/fhir/aggregate/Condition?id=eIXesllypH3M9tAA5WdJftQ3&sources=epic&sources=cerner' \ + -H 'accept: application/fhir+json' + ``` + +=== "Python" + ```python + import requests + + url = "http://127.0.0.1:8888/fhir/aggregate/Condition" + params = { + "id": "eIXesllypH3M9tAA5WdJftQ3", + "sources": ["epic", "cerner"] + } + headers = { + "accept": "application/fhir+json" + } + response = requests.get(url, headers=headers, params=params) + print(response.json) + ``` + + +### Expected Outputs + +Example output when querying Linda Ross (Epic patient `eIXesllypH3M9tAA5WdJftQ3`): ``` โœ“ Patient: Ross, Linda Jane @@ -209,245 +237,147 @@ Sample conditions: Onset: 2019-05-24 ``` -### Test the Service - -=== "cURL" - Query the aggregation endpoint: - ```bash - curl -X GET "http://localhost:8000/fhir/aggregate/Condition/eIXesllypH3M9tAA5WdJftQ3?sources=epic,cerner" - ``` - - Check the CapabilityStatement: - ```bash - curl -X GET "http://localhost:8000/fhir/metadata" - ``` - -=== "Python" - Query the aggregation endpoint: - ```python - import requests - - response = requests.get( - "http://localhost:8000/fhir/aggregate/Condition/eIXesllypH3M9tAA5WdJftQ3", - params={"sources": ["epic", "cerner"]} - ) - bundle = response.json() - ``` - - Check the CapabilityStatement: - ```python - import requests - - response = requests.get("http://localhost:8000/fhir/metadata") - capability_statement = response.json() - ``` - -### Expected Outputs +???+ example "Aggregated Result: With provenance tags and pipeline processing" -
-Conditions from Epic (Linda Ross - eIXesllypH3M9tAA5WdJftQ3) + Sample Bundle with deduplicated Conditions aggregated from Epic and Cerner. Each includes source details (`meta.source`, `meta.tag`) and a pipeline-added `note`. -```json -{ - "resourceType": "Bundle", - "type": "collection", - "entry": [ + ```json { - "resource": { - "resourceType": "Condition", - "id": "eOCME6XUbCLYmFlVf2l1G0w3", - "clinicalStatus": { "text": "Active" }, - "category": [{ "text": "Problem List Item" }], - "severity": { "text": "Medium" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J45.40", - "display": "Moderate persistent asthma, uncomplicated" + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "eOCME6XUbCLYmFlVf2l1G0w3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated by HealthChain Gateway + "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + }] // Added by HealthChain Gateway }, - { - "system": "http://snomed.info/sct", - "code": "427295004", - "display": "Moderate Persistent Asthma" + "clinicalStatus": { "text": "Active" }, + "severity": { "text": "Medium" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J45.40", + "display": "Moderate persistent asthma, uncomplicated" + }, + { + "system": "http://snomed.info/sct", + "code": "427295004", + "display": "Moderate Persistent Asthma" + }, + { + "system": "http://hl7.org/fhir/sid/icd-9-cm", + "code": "493.90" + } + ], + "text": "Moderate persistent asthma" }, - { - "system": "http://hl7.org/fhir/sid/icd-9-cm", - "code": "493.90" - } - ], - "text": "Moderate persistent asthma" - }, - "subject": { - "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", - "display": "Ross, Linda Jane" - }, - "onsetDateTime": "1999-03-08" - } - }, - { - "resource": { - "resourceType": "Condition", - "id": "etZVq9vWdHQ4q0Y6INaFhig3", - "severity": { "text": "High" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J20.9", - "display": "Acute bronchitis, unspecified" + "subject": { + "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", + "display": "Ross, Linda Jane" }, - { - "system": "http://snomed.info/sct", - "code": "405944004", - "display": "Asthmatic Bronchitis" - } - ], - "text": "Bronchitis with asthma, acute" + "onsetDateTime": "1999-03-08", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] // Added by HealthChain Pipeline + } }, - "onsetDateTime": "2019-05-24" - } + { + "resource": { + "resourceType": "Condition", + "id": "etZVq9vWdHQ4q0Y6INaFhig3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.168175Z", // Updated by HealthChain Gateway + "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated" + }] // Added by HealthChain Gateway + }, + "severity": { "text": "High" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J20.9", + "display": "Acute bronchitis, unspecified" + }, + { + "system": "http://snomed.info/sct", + "code": "405944004", + "display": "Asthmatic Bronchitis" + } + ], + "text": "Bronchitis with asthma, acute" + }, + "onsetDateTime": "2019-05-24", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] // Added by HealthChain Pipeline + } + } + ] } - ] -} -``` - -
+ ``` -
-OperationOutcome: Authorization warnings +??? warning "OperationOutcome: Authorization warnings" -You'll see this if you haven't authorized access to the correct FHIR resources when you set up your FHIR sandbox. + You'll see this if you haven't authorized access to the correct FHIR resources when you set up your FHIR sandbox. -```python -doc.fhir.operation_outcomes -``` + ```python + print([outcome.model_dump() for outcome in doc.fhir.operation_outcomes]) + ``` -```json -{ - "resourceType": "OperationOutcome", - "meta": { - "source": "urn:healthchain:source:epic" - }, - "issue": [ + ```json { - "severity": "warning", - "code": "suppressed", - "details": { - "coding": [{ - "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369", - "code": "59204" - }] + "resourceType": "OperationOutcome", + "meta": { + "source": "urn:healthchain:source:epic" }, - "diagnostics": "Client not authorized for Condition - Encounter Diagnosis" - }, - { - "severity": "warning", - "code": "suppressed", - "diagnostics": "Client not authorized for Condition - Health Concerns" - }, - { - "severity": "warning", - "code": "suppressed", - "diagnostics": "Client not authorized for Condition - Medical History" + "issue": [ + { + "severity": "warning", + "code": "suppressed", + "details": { + "coding": [{ + "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369", + "code": "59204" + }] + }, + "diagnostics": "Client not authorized for Condition - Encounter Diagnosis" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Health Concerns" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Medical History" + } + ] } - ] -} -``` + ``` -
+??? warning "Expected Error Handling" -
-Aggregated Result: With provenance tags and pipeline processing + You'll see this when querying a patient that doesn't exist in a source: -```json -{ - "resourceType": "Bundle", - "type": "collection", - "entry": [ - { - "resource": { - "resourceType": "Condition", - "id": "eOCME6XUbCLYmFlVf2l1G0w3", - "meta": { - "lastUpdated": "2025-10-10T15:23:50.167941Z", - "source": "urn:healthchain:source:epic", - "tag": [{ - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated", - "display": "Aggregated" - }] - }, - "clinicalStatus": { "text": "Active" }, - "severity": { "text": "Medium" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J45.40", - "display": "Moderate persistent asthma, uncomplicated" - }, - { - "system": "http://snomed.info/sct", - "code": "427295004", - "display": "Moderate Persistent Asthma" - }, - { - "system": "http://hl7.org/fhir/sid/icd-9-cm", - "code": "493.90" - } - ], - "text": "Moderate persistent asthma" - }, - "subject": { - "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", - "display": "Ross, Linda Jane" - }, - "onsetDateTime": "1999-03-08", - "note": [{ - "text": "This resource has been processed by healthchain pipeline" - }] - } - }, - { - "resource": { - "resourceType": "Condition", - "id": "etZVq9vWdHQ4q0Y6INaFhig3", - "meta": { - "lastUpdated": "2025-10-10T15:23:50.168175Z", - "source": "urn:healthchain:source:epic", - "tag": [{ - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated" - }] - }, - "severity": { "text": "High" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J20.9", - "display": "Acute bronchitis, unspecified" - }, - { - "system": "http://snomed.info/sct", - "code": "405944004", - "display": "Asthmatic Bronchitis" - } - ], - "text": "Bronchitis with asthma, acute" - }, - "onsetDateTime": "2019-05-24", - "note": [{ - "text": "This resource has been processed by healthchain pipeline" - }] - } - } - ] -} -``` + ``` + Error from cerner: [FHIR request failed: 400 - Unknown error] + search failed: + Resource could not be parsed or failed basic FHIR validation rules + ``` -
## What You've Built @@ -459,22 +389,20 @@ A production-ready data aggregation service with: - **Deduplication** - Merges identical conditions across sources - **Pipeline extensibility** - Add custom processing for terminology mapping, NLP, or quality checks -## Use Cases - -**Training Data for AI Models:** -Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). +!!! info "Use Cases" -**RAG Systems:** -Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. + - **RAG Systems** + Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. -**Data Harmonization:** -Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. + - **Data Harmonization** + Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. -## Next Steps + - **Training Data for AI Models** + Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). -- **Try Medplum**: Set up [Medplum](./setup_fhir_sandboxes.md#medplum-sandbox) where you can upload the same test patients to multiple instances for true multi-source aggregation -- **Expand resource types**: Change `Condition` to `MedicationStatement`, `Observation`, or `Procedure` to aggregate different data -- **Add processing**: Extend the pipeline with terminology mapping, entity extraction, or quality checks -- **Build on it**: Use aggregated data in the [Clinical Coding tutorial](./clinical_coding.md) or feed it to your LLM application +!!! tip "Next Steps" -> **Note:** Epic and Cerner sandboxes contain different test patients. In production, you'd map master patient identifiers across systems or use sources that share patient cohorts. + - **Try another FHIR server**: Set up a different [FHIR server](./setup_fhir_sandboxes.md) where you can upload the same test patients to multiple instances for true multi-source aggregation. + - **Expand resource types**: Change `Condition` to `MedicationStatement`, `Observation`, or `Procedure` to aggregate different data. + - **Add processing**: Extend the pipeline with terminology mapping, entity extraction, or quality checks. + - **Build on it**: Use aggregated data in the [Clinical Coding tutorial](./clinical_coding.md) or feed it to your LLM application. diff --git a/docs/cookbook/discharge_summarizer.md b/docs/cookbook/discharge_summarizer.md index 22ab33b6..806fcc44 100644 --- a/docs/cookbook/discharge_summarizer.md +++ b/docs/cookbook/discharge_summarizer.md @@ -6,6 +6,10 @@ Check out the full working example [here](https://github.com/dotimplement/Health ## Setup +```bash +pip install healthchain +``` + Make sure you have a [Hugging Face API token](https://huggingface.co/docs/hub/security-tokens) and set it as the `HUGGINGFACEHUB_API_TOKEN` environment variable. ```python @@ -97,111 +101,106 @@ cds_adapter.parse(request) cds_adapter.format(doc) ``` -What it does: +!!! info "What this adapter does" -- Parses FHIR resources from CDS requests -- Extracts text from [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resources -- Formats responses as CDS cards + - Parses FHIR resources from CDS Hooks requests + - Extracts text from [DocumentReference](https://www.hl7.org/fhir/documentreference.html) resources + - Formats responses as CDS cards according to the CDS Hooks specification -## Set up the CDS service +## Set Up the CDS Hook Handler -Now let's create the CDS service. [HealthChainAPI](../reference/gateway/api.md) gives you discovery endpoints, validation, and docs automatically. +Create the [CDS Hooks handler](../reference/gateway/cdshooks.md) to receive discharge note requests, run the AI summarization pipeline, and return results as CDS cards. ```python -from healthchain.gateway import HealthChainAPI, CDSHooksService +from healthchain.gateway import CDSHooksService from healthchain.models import CDSRequest, CDSResponse -from healthchain.io import CdsFhirAdapter -def create_pipeline(): - """Build the discharge summarization pipeline""" - # Configure your pipeline (using previous examples) - return pipeline +# Initialize the CDS service +cds_service = CDSHooksService() -def create_app(): - """Create the CDS Hooks application""" - pipeline = create_pipeline() - adapter = CdsFhirAdapter() +# Define the CDS service function +@cds_service.hook("encounter-discharge", id="discharge-summary") +def handle_discharge_summary(request: CDSRequest) -> CDSResponse: + """Process discharge summaries with AI""" + # Parse CDS request to internal Document format + doc = cds_adapter.parse(request) - # Initialize the CDS service - cds_service = CDSHooksService() + # Process through AI pipeline + processed_doc = pipeline(doc) - # Define the CDS service function - @cds_service.hook("encounter-discharge", id="discharge-summary") - def handle_discharge_summary(request: CDSRequest) -> CDSResponse: - """Process discharge summaries with AI""" - # Parse CDS request to internal Document format - doc = adapter.parse(request) + # Format response with CDS cards + response = cds_adapter.format(processed_doc) + return response +``` - # Process through AI pipeline - processed_doc = pipeline(doc) +## Build the Service - # Format response with CDS cards - response = adapter.format(processed_doc) - return response +Register the CDS service with [HealthChainAPI](../reference/gateway/api.md) to create REST endpoints: - # Register the service with the API gateway - app = HealthChainAPI(title="Discharge Summary CDS Service") - app.register_service(cds_service) +```python +from healthchain.gateway import HealthChainAPI - return app +app = HealthChainAPI(title="Discharge Summary CDS Service") +app.register_service(cds_service) ``` +## Test with Sandbox + +Use the [sandbox utility](../reference/utilities/sandbox.md) to test the service with sample data: -## Test with sample clinical data +!!! note "Download Sample Data" -Let's test the service with some sample discharge notes using the [sandbox utility](../reference/utilities/sandbox.md) and the [CdsDataGenerator](../reference/utilities/data_generator.md): + Download sample discharge note files from [cookbook/data](https://github.com/dotimplement/HealthChain/tree/main/cookbook/data) and place them in a `data/` folder in your project root. ```python +import healthchain as hc +from healthchain.sandbox.use_cases import ClinicalDecisionSupport +from healthchain.models import Prefetch from healthchain.data_generators import CdsDataGenerator -data_generator = CdsDataGenerator() -data = data_generator.generate( - free_text_path="data/discharge_notes.csv", column_name="text" -) -print(data.model_dump()) -# { -# "prefetch": { -# "entry": [ -# { -# "resource": { -# "resourceType": "Bundle", -# ... -# } -# } -# ] -# } +@hc.sandbox(api="http://localhost:8000") +class DischargeNoteSummarizer(ClinicalDecisionSupport): + def __init__(self): + super().__init__(path="/cds-services/discharge-summary") + self.data_generator = CdsDataGenerator() + + @hc.ehr(workflow="encounter-discharge") + def load_data_in_client(self) -> Prefetch: + data = self.data_generator.generate( + free_text_path="data/discharge_notes.csv", column_name="text" + ) + return data ``` -The data generator returns a `Prefetch` object, which ensures that the data is parsed correctly by the CDS service. +## Run the Complete Example -## Run the complete example - -Run the service with `uvicorn`: +Put it all together and run both the service and sandbox: ```python import uvicorn +import threading + +# Start the API server in a separate thread +def start_api(): + uvicorn.run(app, port=8000) -app = create_app() +api_thread = threading.Thread(target=start_api, daemon=True) +api_thread.start() -uvicorn.run(app) +# Start the sandbox +summarizer = DischargeNoteSummarizer() +summarizer.start_sandbox() ``` -## What happens when you run this +!!! tip "Service Endpoints" -## Workflow Overview + Once running, your service will be available at: -=== "1. Service Startup" - - **URL:** [http://localhost:8000/](http://localhost:8000/) - - **Service discovery:** `/cds-services` - - **CDS endpoint:** `/cds-services/discharge-summary` - - **API docs:** `/docs` + - **Service discovery**: `http://localhost:8000/cds-services` + - **Discharge summary endpoint**: `http://localhost:8000/cds-services/discharge-summary` -=== "2. Request Processing" - - Receives CDS Hooks requests from EHR systems - - Summarizes discharge notes using AI - - Returns CDS cards with clinical recommendations +??? example "Example CDS Response" -=== "3. Example CDS Response" ```json { "cards": [ @@ -224,3 +223,31 @@ uvicorn.run(app) ] } ``` + +## What You've Built + +A CDS Hooks service for discharge workflows that integrates seamlessly with EHR systems: + +- **Standards-compliant** - Implements the CDS Hooks specification for EHR interoperability +- **AI-powered summarization** - Processes discharge notes using transformer models or LLMs +- **Actionable recommendations** - Returns structured cards with discharge planning tasks +- **Flexible pipeline** - Supports both fine-tuned models and prompt-engineered LLMs +- **Auto-discovery** - Provides service discovery endpoint for EHR registration + +!!! info "Use Cases" + + - **Discharge Planning Coordination** + Automatically extract and highlight critical discharge tasks (appointments, medications, equipment needs) to reduce care coordination errors and readmissions. + + - **Clinical Decision Support** + Provide real-time recommendations during discharge workflows, surfacing potential issues like medication interactions or missing follow-up appointments. + + - **Documentation Efficiency** + Generate concise discharge summaries from lengthy clinical notes, saving clinicians time while ensuring all critical information is captured. + +!!! tip "Next Steps" + + - **Enhance prompts**: Tune your clinical prompts to extract specific discharge criteria or care plan elements. + - **Add validation**: Implement checks for required discharge elements (medications, follow-ups, equipment). + - **Multi-card support**: Expand to generate separate cards for different discharge aspects (medication reconciliation, transportation, follow-up scheduling). + - **Integrate with workflows**: Deploy to Epic App Orchard or Cerner Code Console for production EHR integration. diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md index a319386d..d2875abb 100644 --- a/docs/cookbook/index.md +++ b/docs/cookbook/index.md @@ -1,13 +1,28 @@ -# Examples +# ๐Ÿณ Cookbook: Hands-On Examples -The best way to learn is by example! Here are some to get you started: +Dive into real-world, production-ready examples to learn how to build interoperable healthcare AI apps with **HealthChain**. -## Getting Started +--- -- [Working with FHIR Sandboxes](./setup_fhir_sandboxes.md): Set up access to Epic, Medplum, and other FHIR sandboxes for testing and development. Essential prerequisite for the tutorials below. +## ๐Ÿšฆ Getting Started -## Tutorials +- [**Working with FHIR Sandboxes**](./setup_fhir_sandboxes.md) + *Spin up and access free Epic, Medplum, and other FHIR sandboxes for safe experimentation. This is the recommended first step before doing the detailed tutorials below.* -- [Multi-Source Patient Data Aggregation](./data_aggregation.md): Aggregate patient data from multiple FHIR sources (Epic, Cerner), deduplicate conditions, track data provenance, and build production-ready error handling for cross-vendor healthcare AI applications. -- [Automate Clinical Coding and FHIR Integration](./clinical_coding.md): Build a system that extracts medical conditions from clinical documentation, maps them to SNOMED CT codes, and synchronizes structured Condition resources with external FHIR servers (Medplum) for billing and analytics. -- [Summarize Discharge Notes with CDS Hooks](./discharge_summarizer.md): Implement a CDS Hooks service that listens for `encounter-discharge` events, automatically generates concise summaries of discharge notes, and delivers clinical recommendations directly into EHR workflows. +--- + +## ๐Ÿ“š How-To Guides + +- ๐Ÿšฆ **[Multi-Source Patient Data Aggregation](./data_aggregation.md)** + *Merge patient data from multiple FHIR sources (Epic, Cerner, etc.), deduplicate conditions, prove provenance, and robustly handle cross-vendor errors. Foundation for retrieval-augmented generation (RAG) and analytics workflows.* + +- ๐Ÿงพ **[Automate Clinical Coding & FHIR Integration](./clinical_coding.md)** + *Extract medical conditions from clinical documentation using AI, map to SNOMED CT codes, and sync as FHIR Condition resources to systems like Medplumโ€”enabling downstream billing, analytics, and interoperability.* + +- ๐Ÿ“ **[Summarize Discharge Notes with CDS Hooks](./discharge_summarizer.md)** + *Deploy a CDS Hooks-compliant service that listens for discharge events, auto-generates concise plain-language summaries, and delivers actionable clinical cards directly into the EHR workflow.* + +--- + +!!! info "What next?" + See the source code for each recipe, experiment with the sandboxes, and adapt the patterns for your projects! diff --git a/docs/cookbook/setup_fhir_sandboxes.md b/docs/cookbook/setup_fhir_sandboxes.md index 68994f8f..ebd93f7e 100644 --- a/docs/cookbook/setup_fhir_sandboxes.md +++ b/docs/cookbook/setup_fhir_sandboxes.md @@ -4,13 +4,12 @@ This guide covers setting up access to public FHIR sandboxes for testing and dev ## Epic on FHIR Sandbox -Epic provides a public [testing sandbox](https://open.epic.com/MyApps/Endpoints) with [sample patients](https://fhir.epic.com/Documentation?docId=testpatients) for developing against their FHIR Server. This is useful for understanding the Epic FHIR API specs and testing your code without waiting for production environment access. +Epic provides a public [testing sandbox](https://open.epic.com/MyApps/Endpoints) with [sample patients](https://fhir.epic.com/Documentation?docId=testpatients) and [resource specifications available](https://fhir.epic.com/Specifications) for developing against their FHIR Server. ### Prerequisites - Free Epic on FHIR developer account: [https://fhir.epic.com/](https://fhir.epic.com/) -- No existing Epic customer account required -- Registration takes about 1 minute +- No existing Epic customer account required (it only takes a minute) ### Step 1: Create an App @@ -95,10 +94,12 @@ gateway.add_source("epic", EPIC_URL) ### Available Test Patients Epic provides [sample test patients](https://fhir.epic.com/Documentation?docId=testpatients) including: + - **Derrick Lin** - Patient ID: `eq081-VQEgP8drUUqCWzHfw3` - **Linda Ross** - Patient ID: `eIXesllypH3M9tAA5WdJftQ3` - Many others with various clinical scenarios +--- ## Cerner Sandbox Cerner (now Oracle Health) provides both open and secure public sandboxes for the [FHIR R4 APIs for Oracle Health Millennium Platform](https://docs.oracle.com/en/industries/health/millennium-platform-apis/mfrap/srv_root_url.html). @@ -116,7 +117,7 @@ curl -i -H "Accept: application/json+fhir" "https://fhir-open.cerner.com/r4/ec24 Documentation on Secure Sandbox coming soon. - +--- ## Medplum [Medplum](https://www.medplum.com/) is an open-source healthcare platform that provides a compliant FHIR server. It's useful for testing with controlled data where you can upload your own test patients. Medplum uses [standard OAuth2/OpenID authentication](https://www.medplum.com/docs/auth/client-credentials). @@ -180,7 +181,7 @@ gateway.add_source("medplum", MEDPLUM_URL) - **Multi-source testing**: Create multiple projects for different data sources - **Web interface**: Browse and manage resources via UI - +--- ## Tips for Multi-Source Testing ### Different Test Data diff --git a/mkdocs.yml b/mkdocs.yml index 23a89f83..ceaf1d3b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -108,7 +108,8 @@ markdown_extensions: - tables - def_list - attr_list - - md_in_html + - md_in_html: + - pymdownx.details - pymdownx.highlight: anchor_linenums: true line_spans: __span From 7b6b33acf6c025be347fb6d578ca95abd0c262ff Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Mon, 13 Oct 2025 18:44:42 +0100 Subject: [PATCH 14/18] Fix links in docs, add images, add tutorial tab --- ...ation.py => multi_ehr_data_aggregation.py} | 0 docs/cookbook/clinical_coding.md | 4 +- docs/cookbook/data_aggregation.md | 408 ----------------- docs/cookbook/discharge_summarizer.md | 2 + docs/cookbook/index.md | 2 +- docs/cookbook/multi_ehr_aggregation.md | 429 ++++++++++++++++-- docs/reference/interop/experimental.md | 2 + .../interop/basic_conversion.md | 0 mkdocs.yml | 6 +- 9 files changed, 403 insertions(+), 450 deletions(-) rename cookbook/{data_aggregation.py => multi_ehr_data_aggregation.py} (100%) delete mode 100644 docs/cookbook/data_aggregation.md rename docs/{cookbook => tutorials}/interop/basic_conversion.md (100%) diff --git a/cookbook/data_aggregation.py b/cookbook/multi_ehr_data_aggregation.py similarity index 100% rename from cookbook/data_aggregation.py rename to cookbook/multi_ehr_data_aggregation.py diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md index 2a331480..e05a46a1 100644 --- a/docs/cookbook/clinical_coding.md +++ b/docs/cookbook/clinical_coding.md @@ -13,7 +13,7 @@ pip install healthchain scispacy python-dotenv pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.4/en_core_sci_sm-0.5.4.tar.gz ``` -To test the FHIR integration with Medplum, you'll need to set up a Medplum account and obtain client credentials. See the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#medplum-sandbox) for detailed instructions. +To test the FHIR integration with Medplum, you'll need to set up a Medplum account and obtain client credentials. See the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#medplum) for detailed instructions. Once you have your Medplum credentials, configure them in a `.env` file: @@ -268,4 +268,4 @@ A clinical coding service that bridges legacy CDA systems with modern FHIR infra - **Enhance entity linking**: Replace the dictionary lookup with terminology servers or entity linking models for comprehensive medical terminology coverage. - **Add validation**: Implement FHIR resource validation before sending to external servers. - **Expand to other workflows**: Adapt the pattern for lab results, medications, or radiology reports. - - **Build on it**: Use the extracted conditions in the [Data Aggregation tutorial](./data_aggregation.md) to combine with other FHIR sources. + - **Build on it**: Use the extracted conditions in the [Data Aggregation example](./multi_ehr_aggregation.md) to combine with other FHIR sources. diff --git a/docs/cookbook/data_aggregation.md b/docs/cookbook/data_aggregation.md deleted file mode 100644 index 4e0c74aa..00000000 --- a/docs/cookbook/data_aggregation.md +++ /dev/null @@ -1,408 +0,0 @@ -# Multi-Source Patient Data Aggregation - -This tutorial shows you how to aggregate patient data from multiple FHIR sources and track data provenance - essential for building AI applications that train on diverse data or query multiple EHR vendors in RAG systems. - -Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/data_aggregation.py)! - -## Setup - -```bash -pip install healthchain python-dotenv -``` - -We'll use Epic's public FHIR sandbox. If you haven't set up Epic sandbox access yet, see the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#epic-sandbox) for detailed instructions. - -Once you have your Epic credentials, configure them in a `.env` file: - -```bash -# .env file -EPIC_BASE_URL=https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4 -EPIC_CLIENT_ID=your_non_production_client_id -EPIC_CLIENT_SECRET_PATH=path/to/privatekey.pem -EPIC_TOKEN_URL=https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token -EPIC_USE_JWT_ASSERTION=true -``` - -Load your Epic credentials from the `.env` file and create a connection string compatible with the FHIR gateway: - -```python -from healthchain.gateway.clients import FHIRAuthConfig - -config = FHIRAuthConfig.from_env("EPIC") -EPIC_URL = config.to_connection_string() -``` - -## Set Up FHIR Gateway - -[FHIR Gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers and handles authentication, connection pooling, and token refresh automatically. Add the Epic sandbox as a source: - -```python -from healthchain.gateway import FHIRGateway - -gateway = FHIRGateway() -gateway.add_source("epic", EPIC_URL) - -# Optional: Add Cerner's public sandbox (no auth required) -CERNER_URL = "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" -gateway.add_source("cerner", CERNER_URL) - -# You can add more sources: -# gateway.add_source("other source", fhir://url) -``` - -!!! note - - Cerner's public sandbox patient cohort differs from Epic's. For demo/testing with sandboxes, expect incomplete aggregation if patient cohorts don't overlap - this is normal for the public test data. - - In production, you must perform your own patient identity matching (MPI/crosswalk) before aggregation. - - -## Create Aggregation Handler - -Define an aggregation handler that queries multiple FHIR sources for [Condition](https://www.hl7.org/fhir/condition.html) resources. - -```python -from healthchain.fhir import merge_bundles - -@gateway.aggregate(Condition) -def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: - """Aggregate conditions from multiple FHIR sources with provenance tracking.""" - bundles = [] - for source in sources: - try: - bundle = gateway.search( - Condition, - {"patient": patient_id}, - source, - add_provenance=True, # Track which EHR the data came from - provenance_tag="aggregated", - ) - bundles.append(bundle) - except Exception as e: - print(f"Error from {source}: {e}") - # Continue with partial data rather than fail completely - - # Combine conditions across sources - merged_bundle = merge_bundles(bundles, deduplicate=True) - return merged_bundle -``` - -!!! info "What this handler does" - - - Queries each configured FHIR source for patient conditions - - Adds [Meta](https://hl7.org/fhir/resource.html#Meta) tags to track data provenance (which source each condition came from, preserves existing metadata) - - Handles errors gracefully โ€“ partial data is better than no data - - Deduplicates identical conditions across sources - - -??? example "Example FHIR Metadata" - - ```json - { - "resourceType": "Condition", - "id": ..., - "meta": { - "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated timestamp - "source": "urn:healthchain:source:epic", // Adds source - "tag": [ - { - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated", - "display": "Aggregated" - } // Appends a custom HealthChain tag - ] - } - ... - } - ``` - -## Build the Service - -Register the gateway with [HealthChainAPI](../reference/gateway/api.md) to create REST endpoints. - -```python -import uvicorn -from healthchain.gateway import HealthChainAPI - -app = HealthChainAPI() -app.register_gateway(gateway, path="/fhir") - -uvicorn.run(app) -``` - -!!! tip "FHIR Endpoints Provided by the Service" - - - `/fhir/*` - Standard FHIR operations (`read`, `search`, `create`, `update`) - - `/fhir/metadata` - [CapabilityStatement](https://hl7.org/fhir/capabilitystatement.html) describing supported resources and operations - - `/fhir/status` - Operational status and metadata for gateway - -## Add Processing Pipeline (Optional) - -For additional processing like terminology mapping or quality checks, create a Document [Pipeline](../reference/pipeline/pipeline.md). - -Document pipelines are optimized for text and structured data processing, such as FHIR resources. When you initialize a [Document](../reference/pipeline/data_container.md) with FHIR [Bundle](https://www.hl7.org/fhir/condition.html) data, it automatically extracts and separates metadata resources from the clinical resources for easier inspection and error handling: - -```python -# Initialize Document with a Bundle -doc = Document(data=merged_bundle) - -# OperationOutcomes are automatically extracted and available -doc.fhir.operation_outcomes # List of OperationOutcome resources - -# Clinical resources remain in the bundle -doc.fhir.bundle # Bundle with clinical resources -doc.fhir.problem_list # List of Condition resources -doc.fhir.medication_list # List of MedicationStatement resources -``` - -Add processing nodes using decorators: - -```python -from healthchain.pipeline import Pipeline -from healthchain.io.containers import Document - -pipeline = Pipeline[Document]() - -@pipeline.add_node -def deduplicate(doc: Document) -> Document: - ... - -@pipeline.add_node -def add_annotation(doc: Document) -> Document: - ... - -# Apply the pipeline -doc = Document(data=merged_bundle) -doc = pipeline(doc) -``` - -!!! tip "Common Pipeline Uses" - - - **Terminology mapping** (ICD-10 โ†” SNOMED CT) - - **Data enrichment** (risk scores, clinical decision support) - - **Quality checks** (validate completeness, flag inconsistencies) - - **Consent filtering** (apply patient consent rules) - - -## Test the Service - -To test aggregation, request `/fhir/aggregate/Condition/{patientId}` with the `sources` parameter (e.g., `epic,cerner`). - -Example uses Epic patient `eIXesllypH3M9tAA5WdJftQ3`; see [Epic sandbox](https://fhir.epic.com/Documentation?docId=testpatients) for more test patients. - - -=== "cURL" - ```bash - curl -X 'GET' \ - 'http://127.0.0.1:8888/fhir/aggregate/Condition?id=eIXesllypH3M9tAA5WdJftQ3&sources=epic&sources=cerner' \ - -H 'accept: application/fhir+json' - ``` - -=== "Python" - ```python - import requests - - url = "http://127.0.0.1:8888/fhir/aggregate/Condition" - params = { - "id": "eIXesllypH3M9tAA5WdJftQ3", - "sources": ["epic", "cerner"] - } - headers = { - "accept": "application/fhir+json" - } - response = requests.get(url, headers=headers, params=params) - print(response.json) - ``` - - -### Expected Outputs - -Example output when querying Linda Ross (Epic patient `eIXesllypH3M9tAA5WdJftQ3`): - -``` -โœ“ Patient: Ross, Linda Jane -โœ“ Conditions retrieved: 2 - -Sample conditions: - โ€ข Moderate persistent asthma - Codes: ICD10-CM:J45.40, SNOMED:427295004, ICD9:493.90 - Source: urn:healthchain:source:epic - Severity: Medium - Onset: 1999-03-08 - - โ€ข Bronchitis with asthma, acute - Codes: ICD10-CM:J20.9/J45.909, SNOMED:405944004, ICD9:466.0 - Source: urn:healthchain:source:epic - Severity: High - Onset: 2019-05-24 -``` - -???+ example "Aggregated Result: With provenance tags and pipeline processing" - - Sample Bundle with deduplicated Conditions aggregated from Epic and Cerner. Each includes source details (`meta.source`, `meta.tag`) and a pipeline-added `note`. - - ```json - { - "resourceType": "Bundle", - "type": "collection", - "entry": [ - { - "resource": { - "resourceType": "Condition", - "id": "eOCME6XUbCLYmFlVf2l1G0w3", - "meta": { - "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated by HealthChain Gateway - "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway - "tag": [{ - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated", - "display": "Aggregated" - }] // Added by HealthChain Gateway - }, - "clinicalStatus": { "text": "Active" }, - "severity": { "text": "Medium" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J45.40", - "display": "Moderate persistent asthma, uncomplicated" - }, - { - "system": "http://snomed.info/sct", - "code": "427295004", - "display": "Moderate Persistent Asthma" - }, - { - "system": "http://hl7.org/fhir/sid/icd-9-cm", - "code": "493.90" - } - ], - "text": "Moderate persistent asthma" - }, - "subject": { - "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", - "display": "Ross, Linda Jane" - }, - "onsetDateTime": "1999-03-08", - "note": [{ - "text": "This resource has been processed by healthchain pipeline" - }] // Added by HealthChain Pipeline - } - }, - { - "resource": { - "resourceType": "Condition", - "id": "etZVq9vWdHQ4q0Y6INaFhig3", - "meta": { - "lastUpdated": "2025-10-10T15:23:50.168175Z", // Updated by HealthChain Gateway - "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway - "tag": [{ - "system": "https://dotimplement.github.io/HealthChain/fhir/tags", - "code": "aggregated" - }] // Added by HealthChain Gateway - }, - "severity": { "text": "High" }, - "code": { - "coding": [ - { - "system": "http://hl7.org/fhir/sid/icd-10-cm", - "code": "J20.9", - "display": "Acute bronchitis, unspecified" - }, - { - "system": "http://snomed.info/sct", - "code": "405944004", - "display": "Asthmatic Bronchitis" - } - ], - "text": "Bronchitis with asthma, acute" - }, - "onsetDateTime": "2019-05-24", - "note": [{ - "text": "This resource has been processed by healthchain pipeline" - }] // Added by HealthChain Pipeline - } - } - ] - } - ``` - -??? warning "OperationOutcome: Authorization warnings" - - You'll see this if you haven't authorized access to the correct FHIR resources when you set up your FHIR sandbox. - - ```python - print([outcome.model_dump() for outcome in doc.fhir.operation_outcomes]) - ``` - - ```json - { - "resourceType": "OperationOutcome", - "meta": { - "source": "urn:healthchain:source:epic" - }, - "issue": [ - { - "severity": "warning", - "code": "suppressed", - "details": { - "coding": [{ - "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369", - "code": "59204" - }] - }, - "diagnostics": "Client not authorized for Condition - Encounter Diagnosis" - }, - { - "severity": "warning", - "code": "suppressed", - "diagnostics": "Client not authorized for Condition - Health Concerns" - }, - { - "severity": "warning", - "code": "suppressed", - "diagnostics": "Client not authorized for Condition - Medical History" - } - ] - } - ``` - -??? warning "Expected Error Handling" - - You'll see this when querying a patient that doesn't exist in a source: - - ``` - Error from cerner: [FHIR request failed: 400 - Unknown error] - search failed: - Resource could not be parsed or failed basic FHIR validation rules - ``` - - -## What You've Built - -A production-ready data aggregation service with: - -- **Multi-vendor support** - Query Epic, Cerner, and other FHIR sources simultaneously -- **Automatic provenance tracking** - `meta.source` field shows which EHR each resource came from -- **Error resilience** - Handles missing patients, network failures, auth issues gracefully -- **Deduplication** - Merges identical conditions across sources -- **Pipeline extensibility** - Add custom processing for terminology mapping, NLP, or quality checks - -!!! info "Use Cases" - - - **RAG Systems** - Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. - - - **Data Harmonization** - Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. - - - **Training Data for AI Models** - Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). - -!!! tip "Next Steps" - - - **Try another FHIR server**: Set up a different [FHIR server](./setup_fhir_sandboxes.md) where you can upload the same test patients to multiple instances for true multi-source aggregation. - - **Expand resource types**: Change `Condition` to `MedicationStatement`, `Observation`, or `Procedure` to aggregate different data. - - **Add processing**: Extend the pipeline with terminology mapping, entity extraction, or quality checks. - - **Build on it**: Use aggregated data in the [Clinical Coding tutorial](./clinical_coding.md) or feed it to your LLM application. diff --git a/docs/cookbook/discharge_summarizer.md b/docs/cookbook/discharge_summarizer.md index 806fcc44..aefe67d8 100644 --- a/docs/cookbook/discharge_summarizer.md +++ b/docs/cookbook/discharge_summarizer.md @@ -4,6 +4,8 @@ This tutorial shows you how to build a CDS service that integrates with EHR syst Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/cds_discharge_summarizer_hf_chat.py)! +![](../assets/images/hc-use-cases-clinical-integration.png) *Illustrative Architecture - actual implementation may vary.* + ## Setup ```bash diff --git a/docs/cookbook/index.md b/docs/cookbook/index.md index d2875abb..e64b6d3c 100644 --- a/docs/cookbook/index.md +++ b/docs/cookbook/index.md @@ -13,7 +13,7 @@ Dive into real-world, production-ready examples to learn how to build interopera ## ๐Ÿ“š How-To Guides -- ๐Ÿšฆ **[Multi-Source Patient Data Aggregation](./data_aggregation.md)** +- ๐Ÿšฆ **[Multi-Source Patient Data Aggregation](./multi_ehr_aggregation.md)** *Merge patient data from multiple FHIR sources (Epic, Cerner, etc.), deduplicate conditions, prove provenance, and robustly handle cross-vendor errors. Foundation for retrieval-augmented generation (RAG) and analytics workflows.* - ๐Ÿงพ **[Automate Clinical Coding & FHIR Integration](./clinical_coding.md)** diff --git a/docs/cookbook/multi_ehr_aggregation.md b/docs/cookbook/multi_ehr_aggregation.md index 7d6c3e46..0fe909e4 100644 --- a/docs/cookbook/multi_ehr_aggregation.md +++ b/docs/cookbook/multi_ehr_aggregation.md @@ -1,55 +1,410 @@ -# Multi-EHR Data Aggregation Guide +# Multi-Source Patient Data Aggregation -*This example is coming soon! ๐Ÿšง* +This tutorial shows you how to aggregate patient data from multiple FHIR sources and track data provenance - essential for building AI applications that train on diverse data or query multiple EHR vendors in RAG systems. -
- Multi-EHR Data Aggregation Architecture -
+Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/multi_ehr_data_aggregation.py)! -## Overview +![](../assets/images/hc-use-cases-genai-aggregate.png) *Illustrative Architecture - actual implementation may vary.* -This comprehensive tutorial will show you how to build a patient data aggregation system that connects to multiple EHR systems, combines patient records, and enriches them with AI-powered insights. +## Setup -## What You'll Learn +```bash +pip install healthchain python-dotenv +``` -- **Multi-source FHIR connectivity** - Connect to Epic, Cerner, and other FHIR servers simultaneously -- **Patient record matching** - Identify and link patient records across different systems -- **Data deduplication** - Handle overlapping and duplicate information intelligently -- **NLP enrichment** - Extract insights from clinical notes and add structured data -- **Unified patient timelines** - Create comprehensive patient views across all systems -- **Real-time synchronization** - Keep data updated across multiple sources +We'll use Epic's public FHIR sandbox. If you haven't set up Epic sandbox access yet, see the [FHIR Sandbox Setup Guide](./setup_fhir_sandboxes.md#epic-on-fhir-sandbox) for detailed instructions. -## Architecture +Once you have your Epic credentials, configure them in a `.env` file: -The example will demonstrate: +```bash +# .env file +EPIC_BASE_URL=https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4 +EPIC_CLIENT_ID=your_non_production_client_id +EPIC_CLIENT_SECRET_PATH=path/to/privatekey.pem +EPIC_TOKEN_URL=https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token +EPIC_USE_JWT_ASSERTION=true +``` -1. **FHIR Gateway Setup** - Configure connections to multiple healthcare systems -2. **Patient Matching Algorithm** - Match patients across systems using demographics and identifiers -3. **Data Aggregation Pipeline** - Combine and normalize patient data from different sources -4. **NLP Processing** - Extract medical entities and conditions from clinical notes -5. **Conflict Resolution** - Handle discrepancies between different data sources -6. **Export & Analytics** - Generate unified datasets for research and analytics +Load your Epic credentials from the `.env` file and create a connection string compatible with the FHIR gateway: -## Use Cases +```python +from healthchain.gateway.clients import FHIRAuthConfig -Perfect for: -- **Healthcare Analytics** - Create comprehensive datasets for population health studies -- **Clinical Research** - Aggregate patient cohorts from multiple institutions -- **AI/ML Training** - Build rich, multi-source datasets for model training -- **Patient Care Coordination** - Provide clinicians with complete patient views +config = FHIRAuthConfig.from_env("EPIC") +EPIC_URL = config.to_connection_string() +``` -## Prerequisites +## Set Up FHIR Gateway -- Multiple FHIR server connections (we'll show how to set up test environments) -- Basic understanding of FHIR resources (Patient, Observation, Condition) -- Python environment with HealthChain installed +[FHIR Gateways](../reference/gateway/fhir_gateway.md) connect to external FHIR servers and handles authentication, connection pooling, and token refresh automatically. Add the Epic sandbox as a source: -## Coming Soon +```python +from healthchain.gateway import FHIRGateway -We're actively developing this example and it will be available soon! +gateway = FHIRGateway() +gateway.add_source("epic", EPIC_URL) -In the meantime, check out our [Gateway documentation](../reference/gateway/fhir_gateway.md) to understand the fundamentals of multi-source FHIR connectivity. +# Optional: Add Cerner's public sandbox (no auth required) +CERNER_URL = "fhir://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" +gateway.add_source("cerner", CERNER_URL) ---- +# You can add more sources: +# gateway.add_source("other source", fhir://url) +``` -**Want to be notified when this example is ready?** Join our [Discord community](https://discord.gg/UQC6uAepUz) for updates! +!!! note + + Cerner's public sandbox patient cohort differs from Epic's. For demo/testing with sandboxes, expect incomplete aggregation if patient cohorts don't overlap - this is normal for the public test data. + + In production, you must perform your own patient identity matching (MPI/crosswalk) before aggregation. + + +## Create Aggregation Handler + +Define an aggregation handler that queries multiple FHIR sources for [Condition](https://www.hl7.org/fhir/condition.html) resources. + +```python +from healthchain.fhir import merge_bundles + +@gateway.aggregate(Condition) +def get_unified_patient(patient_id: str, sources: List[str]) -> Bundle: + """Aggregate conditions from multiple FHIR sources with provenance tracking.""" + bundles = [] + for source in sources: + try: + bundle = gateway.search( + Condition, + {"patient": patient_id}, + source, + add_provenance=True, # Track which EHR the data came from + provenance_tag="aggregated", + ) + bundles.append(bundle) + except Exception as e: + print(f"Error from {source}: {e}") + # Continue with partial data rather than fail completely + + # Combine conditions across sources + merged_bundle = merge_bundles(bundles, deduplicate=True) + return merged_bundle +``` + +!!! info "What this handler does" + + - Queries each configured FHIR source for patient conditions + - Adds [Meta](https://hl7.org/fhir/resource.html#Meta) tags to track data provenance (which source each condition came from, preserves existing metadata) + - Handles errors gracefully โ€“ partial data is better than no data + - Deduplicates identical conditions across sources + + +??? example "Example FHIR Metadata" + + ```json + { + "resourceType": "Condition", + "id": ..., + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated timestamp + "source": "urn:healthchain:source:epic", // Adds source + "tag": [ + { + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + } // Appends a custom HealthChain tag + ] + } + ... + } + ``` + +## Build the Service + +Register the gateway with [HealthChainAPI](../reference/gateway/api.md) to create REST endpoints. + +```python +import uvicorn +from healthchain.gateway import HealthChainAPI + +app = HealthChainAPI() +app.register_gateway(gateway, path="/fhir") + +uvicorn.run(app) +``` + +!!! tip "FHIR Endpoints Provided by the Service" + + - `/fhir/*` - Standard FHIR operations (`read`, `search`, `create`, `update`) + - `/fhir/metadata` - [CapabilityStatement](https://hl7.org/fhir/capabilitystatement.html) describing supported resources and operations + - `/fhir/status` - Operational status and metadata for gateway + +## Add Processing Pipeline (Optional) + +For additional processing like terminology mapping or quality checks, create a Document [Pipeline](../reference/pipeline/pipeline.md). + +Document pipelines are optimized for text and structured data processing, such as FHIR resources. When you initialize a [Document](../reference/pipeline/data_container.md) with FHIR [Bundle](https://www.hl7.org/fhir/condition.html) data, it automatically extracts and separates metadata resources from the clinical resources for easier inspection and error handling: + +```python +# Initialize Document with a Bundle +doc = Document(data=merged_bundle) + +# OperationOutcomes are automatically extracted and available +doc.fhir.operation_outcomes # List of OperationOutcome resources + +# Clinical resources remain in the bundle +doc.fhir.bundle # Bundle with clinical resources +doc.fhir.problem_list # List of Condition resources +doc.fhir.medication_list # List of MedicationStatement resources +``` + +Add processing nodes using decorators: + +```python +from healthchain.pipeline import Pipeline +from healthchain.io.containers import Document + +pipeline = Pipeline[Document]() + +@pipeline.add_node +def deduplicate(doc: Document) -> Document: + ... + +@pipeline.add_node +def add_annotation(doc: Document) -> Document: + ... + +# Apply the pipeline +doc = Document(data=merged_bundle) +doc = pipeline(doc) +``` + +!!! tip "Common Pipeline Uses" + + - **Terminology mapping** (ICD-10 โ†” SNOMED CT) + - **Data enrichment** (risk scores, clinical decision support) + - **Quality checks** (validate completeness, flag inconsistencies) + - **Consent filtering** (apply patient consent rules) + + +## Test the Service + +To test aggregation, request `/fhir/aggregate/Condition/{patientId}` with the `sources` parameter (e.g., `epic,cerner`). + +Example uses Epic patient `eIXesllypH3M9tAA5WdJftQ3`; see [Epic sandbox](https://fhir.epic.com/Documentation?docId=testpatients) for more test patients. + + +=== "cURL" + ```bash + curl -X 'GET' \ + 'http://127.0.0.1:8888/fhir/aggregate/Condition?id=eIXesllypH3M9tAA5WdJftQ3&sources=epic&sources=cerner' \ + -H 'accept: application/fhir+json' + ``` + +=== "Python" + ```python + import requests + + url = "http://127.0.0.1:8888/fhir/aggregate/Condition" + params = { + "id": "eIXesllypH3M9tAA5WdJftQ3", + "sources": ["epic", "cerner"] + } + headers = { + "accept": "application/fhir+json" + } + response = requests.get(url, headers=headers, params=params) + print(response.json) + ``` + + +### Expected Outputs + +Example output when querying Linda Ross (Epic patient `eIXesllypH3M9tAA5WdJftQ3`): + +``` +โœ“ Patient: Ross, Linda Jane +โœ“ Conditions retrieved: 2 + +Sample conditions: + โ€ข Moderate persistent asthma + Codes: ICD10-CM:J45.40, SNOMED:427295004, ICD9:493.90 + Source: urn:healthchain:source:epic + Severity: Medium + Onset: 1999-03-08 + + โ€ข Bronchitis with asthma, acute + Codes: ICD10-CM:J20.9/J45.909, SNOMED:405944004, ICD9:466.0 + Source: urn:healthchain:source:epic + Severity: High + Onset: 2019-05-24 +``` + +???+ example "Aggregated Result: With provenance tags and pipeline processing" + + Sample Bundle with deduplicated Conditions aggregated from Epic and Cerner. Each includes source details (`meta.source`, `meta.tag`) and a pipeline-added `note`. + + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "eOCME6XUbCLYmFlVf2l1G0w3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.167941Z", // Updated by HealthChain Gateway + "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated", + "display": "Aggregated" + }] // Added by HealthChain Gateway + }, + "clinicalStatus": { "text": "Active" }, + "severity": { "text": "Medium" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J45.40", + "display": "Moderate persistent asthma, uncomplicated" + }, + { + "system": "http://snomed.info/sct", + "code": "427295004", + "display": "Moderate Persistent Asthma" + }, + { + "system": "http://hl7.org/fhir/sid/icd-9-cm", + "code": "493.90" + } + ], + "text": "Moderate persistent asthma" + }, + "subject": { + "reference": "Patient/eIXesllypH3M9tAA5WdJftQ3", + "display": "Ross, Linda Jane" + }, + "onsetDateTime": "1999-03-08", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] // Added by HealthChain Pipeline + } + }, + { + "resource": { + "resourceType": "Condition", + "id": "etZVq9vWdHQ4q0Y6INaFhig3", + "meta": { + "lastUpdated": "2025-10-10T15:23:50.168175Z", // Updated by HealthChain Gateway + "source": "urn:healthchain:source:epic", // Added by HealthChain Gateway + "tag": [{ + "system": "https://dotimplement.github.io/HealthChain/fhir/tags", + "code": "aggregated" + }] // Added by HealthChain Gateway + }, + "severity": { "text": "High" }, + "code": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/icd-10-cm", + "code": "J20.9", + "display": "Acute bronchitis, unspecified" + }, + { + "system": "http://snomed.info/sct", + "code": "405944004", + "display": "Asthmatic Bronchitis" + } + ], + "text": "Bronchitis with asthma, acute" + }, + "onsetDateTime": "2019-05-24", + "note": [{ + "text": "This resource has been processed by healthchain pipeline" + }] // Added by HealthChain Pipeline + } + } + ] + } + ``` + +??? warning "OperationOutcome: Authorization warnings" + + You'll see this if you haven't authorized access to the correct FHIR resources when you set up your FHIR sandbox. + + ```python + print([outcome.model_dump() for outcome in doc.fhir.operation_outcomes]) + ``` + + ```json + { + "resourceType": "OperationOutcome", + "meta": { + "source": "urn:healthchain:source:epic" + }, + "issue": [ + { + "severity": "warning", + "code": "suppressed", + "details": { + "coding": [{ + "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369", + "code": "59204" + }] + }, + "diagnostics": "Client not authorized for Condition - Encounter Diagnosis" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Health Concerns" + }, + { + "severity": "warning", + "code": "suppressed", + "diagnostics": "Client not authorized for Condition - Medical History" + } + ] + } + ``` + +??? warning "Expected Error Handling" + + You'll see this when querying a patient that doesn't exist in a source: + + ``` + Error from cerner: [FHIR request failed: 400 - Unknown error] + search failed: + Resource could not be parsed or failed basic FHIR validation rules + ``` + + +## What You've Built + +A production-ready data aggregation service with: + +- **Multi-vendor support** - Query Epic, Cerner, and other FHIR sources simultaneously +- **Automatic provenance tracking** - `meta.source` field shows which EHR each resource came from +- **Error resilience** - Handles missing patients, network failures, auth issues gracefully +- **Deduplication** - Merges identical conditions across sources +- **Pipeline extensibility** - Add custom processing for terminology mapping, NLP, or quality checks + +!!! info "Use Cases" + + - **RAG Systems** + Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. + + - **Data Harmonization** + Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. + + - **Training Data for AI Models** + Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). + +!!! tip "Next Steps" + + - **Try another FHIR server**: Set up a different [FHIR server](./setup_fhir_sandboxes.md) where you can upload the same test patients to multiple instances for true multi-source aggregation. + - **Expand resource types**: Change `Condition` to `MedicationStatement`, `Observation`, or `Procedure` to aggregate different data. + - **Add processing**: Extend the pipeline with terminology mapping, entity extraction, or quality checks. + - **Build on it**: Use aggregated data in the [Clinical Coding tutorial](./clinical_coding.md) or feed it to your LLM application. diff --git a/docs/reference/interop/experimental.md b/docs/reference/interop/experimental.md index aa42180e..baa15677 100644 --- a/docs/reference/interop/experimental.md +++ b/docs/reference/interop/experimental.md @@ -25,6 +25,7 @@ This page tracks templates that are under development or have known issues. Use **Location:** `dev-templates/allergies/` **Usage:** + 1. Copy experimental files to your custom config: ```bash # After running: healthchain init-configs my_configs @@ -70,6 +71,7 @@ We welcome contributions to improve experimental templates! ## Roadmap **Next Priorities:** + 1. ๐ŸŽฏ **Allergies stabilization** - Fix clinical status parsing and round-trip issues 2. ๐Ÿ”ฎ **Future sections** - Procedures, Vital Signs, Lab Results 3. ๐Ÿ”ง **Template tooling** - Better validation and testing framework diff --git a/docs/cookbook/interop/basic_conversion.md b/docs/tutorials/interop/basic_conversion.md similarity index 100% rename from docs/cookbook/interop/basic_conversion.md rename to docs/tutorials/interop/basic_conversion.md diff --git a/mkdocs.yml b/mkdocs.yml index ceaf1d3b..a200274f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,9 +14,10 @@ nav: - Licence: distribution.md - Cookbook: - cookbook/index.md + - Setup FHIR Sandbox: cookbook/setup_fhir_sandboxes.md + - Multi-Source Data Integration: cookbook/multi_ehr_aggregation.md + - Automated Clinical Coding: cookbook/clinical_coding.md - Discharge Summarizer: cookbook/discharge_summarizer.md - - Clinical Coding: cookbook/clinical_coding.md - - Multi-Source Data Integration: data_aggregation.md - Docs: - Welcome: reference/index.md - Gateway: @@ -52,6 +53,7 @@ nav: - Parsers: reference/interop/parsers.md - Generators: reference/interop/generators.md - Working with xmltodict: reference/interop/xmltodict.md + - In Development: reference/interop/experimental.md - Utilities: - FHIR Helpers: reference/utilities/fhir_helpers.md - Sandbox: reference/utilities/sandbox.md From d790a45d6c2a7312c9ed13d530813b5117865fda Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Tue, 14 Oct 2025 12:38:16 +0100 Subject: [PATCH 15/18] Edit docs --- docs/cookbook/clinical_coding.md | 8 ++++---- docs/cookbook/discharge_summarizer.md | 2 +- docs/cookbook/multi_ehr_aggregation.md | 11 ++++------- docs/cookbook/setup_fhir_sandboxes.md | 6 ++++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/cookbook/clinical_coding.md b/docs/cookbook/clinical_coding.md index e05a46a1..e55a8963 100644 --- a/docs/cookbook/clinical_coding.md +++ b/docs/cookbook/clinical_coding.md @@ -1,6 +1,6 @@ # Build a NoteReader Service with FHIR Integration -This tutorial shows you how to build a clinical coding service that connects legacy [CDA](https://hl7.org/cda/) systems with modern [FHIR servers](https://build.fhir.org/http.html). We'll process clinical notes, extract billing codes, and handle both old and new healthcare data formats. We'll use [Epic NoteReader](https://discovery.hgdata.com/product/epic-notereader-cdi) as the legacy system and [Medplum](https://www.medplum.com/) as the FHIR server. +This example shows you how to build a clinical coding service that connects legacy [CDA](https://hl7.org/cda/) systems with modern [FHIR servers](https://build.fhir.org/http.html). We'll process clinical notes, extract billing codes, and handle both old and new healthcare data formats. We'll use [Epic NoteReader](https://discovery.hgdata.com/product/epic-notereader-cdi) as the legacy system and [Medplum](https://www.medplum.com/) as the FHIR server. Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/notereader_clinical_coding_fhir.py)! @@ -254,13 +254,13 @@ A clinical coding service that bridges legacy CDA systems with modern FHIR infra !!! info "Use Cases" - - **Clinical Documentation Improvement (CDI)** + - **Clinical Documentation Improvement (CDI)**: Automatically extract billable conditions from clinical notes and populate problem lists in real-time during clinician workflows. - - **Terminology Harmonization** + - **Terminology Harmonization**: Bridge legacy ICD-9 systems with modern SNOMED CT standards by processing historical CDA documents and creating FHIR-compliant problem lists. - - **Research Data Extraction** + - **Research Data Extraction**: Extract structured condition data from unstructured clinical notes for cohort building and retrospective studies. !!! tip "Next Steps" diff --git a/docs/cookbook/discharge_summarizer.md b/docs/cookbook/discharge_summarizer.md index aefe67d8..94bb2d19 100644 --- a/docs/cookbook/discharge_summarizer.md +++ b/docs/cookbook/discharge_summarizer.md @@ -1,6 +1,6 @@ # Build a CDS Hooks Service for Discharge Summarization -This tutorial shows you how to build a CDS service that integrates with EHR systems. We'll automatically summarize discharge notes and return actionable recommendations using the [CDS Hooks standard](https://cds-hooks.org/). +This example shows you how to build a CDS service that integrates with EHR systems. We'll automatically summarize discharge notes and return actionable recommendations using the [CDS Hooks standard](https://cds-hooks.org/). Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/cds_discharge_summarizer_hf_chat.py)! diff --git a/docs/cookbook/multi_ehr_aggregation.md b/docs/cookbook/multi_ehr_aggregation.md index 0fe909e4..d0f3d6ce 100644 --- a/docs/cookbook/multi_ehr_aggregation.md +++ b/docs/cookbook/multi_ehr_aggregation.md @@ -1,6 +1,6 @@ # Multi-Source Patient Data Aggregation -This tutorial shows you how to aggregate patient data from multiple FHIR sources and track data provenance - essential for building AI applications that train on diverse data or query multiple EHR vendors in RAG systems. +This example shows you how to aggregate patient data from multiple FHIR sources and track data provenance: essential for building AI applications that train on diverse data, query multiple EHR vendors in RAG systems, or construct unified patient timelines from fragmented health records. Check out the full working example [here](https://github.com/dotimplement/HealthChain/tree/main/cookbook/multi_ehr_data_aggregation.py)! @@ -393,14 +393,11 @@ A production-ready data aggregation service with: !!! info "Use Cases" - - **RAG Systems** - Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. + - **Data Harmonization**: Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. Combine with clinical NLP engines to extract and aggregate data from unstructured clinical notes alongside structured FHIR resources. - - **Data Harmonization** - Use pipelines to normalize terminology (ICD-10 โ†” SNOMED CT), validate completeness, and flag inconsistencies across sources. + - **RAG Systems**: Build retrieval systems that search across multiple health systems. The aggregator provides the unified patient context LLMs need for clinical reasoning. - - **Training Data for AI Models** - Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). + - **Training Data for AI Models**: Aggregate diverse patient data across EHR vendors for model training. Provenance tags enable stratified analysis (e.g., "how does model performance vary by data source?"). !!! tip "Next Steps" diff --git a/docs/cookbook/setup_fhir_sandboxes.md b/docs/cookbook/setup_fhir_sandboxes.md index ebd93f7e..ca5b54b9 100644 --- a/docs/cookbook/setup_fhir_sandboxes.md +++ b/docs/cookbook/setup_fhir_sandboxes.md @@ -78,7 +78,7 @@ EPIC_USE_JWT_ASSERTION=true ### Using Epic Sandbox in Code ```python -from healthchain.gateway.clients.fhir.base import FHIRAuthConfig +from healthchain.gateway.clients import FHIRAuthConfig # Load configuration from environment variables config = FHIRAuthConfig.from_env("EPIC") @@ -137,6 +137,7 @@ Documentation on Secure Sandbox coming soon. ### Step 2: Get Credentials After creating the client: + 1. Note your **Client ID** 2. Copy your **Client Secret** @@ -160,7 +161,7 @@ MEDPLUM_SCOPE=openid ```python from healthchain.gateway import FHIRGateway -from healthchain.gateway.clients.fhir.base import FHIRAuthConfig +from healthchain.gateway.clients import FHIRAuthConfig from dotenv import load_dotenv load_dotenv() @@ -195,6 +196,7 @@ Public sandboxes (Epic, Cerner) contain different test patients. When testing mu ### Error Handling Your code should handle: + - Network issues or downtime - Patient not found in specific sources - Rate limiting From 5015dba485f2f99d9a6ae5e6c768fb447ce7257a Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Tue, 14 Oct 2025 14:57:11 +0100 Subject: [PATCH 16/18] Add integration tests --- tests/integration_tests/conftest.py | 132 ++++++++++++++++++ .../test_event_system_integration.py | 108 ++++++++++++++ .../test_healthchain_api_e2e.py | 73 ++++++++++ .../test_healthchain_api_endpoints.py | 128 +++++++++++++++++ 4 files changed, 441 insertions(+) create mode 100644 tests/integration_tests/conftest.py create mode 100644 tests/integration_tests/test_event_system_integration.py create mode 100644 tests/integration_tests/test_healthchain_api_e2e.py create mode 100644 tests/integration_tests/test_healthchain_api_endpoints.py diff --git a/tests/integration_tests/conftest.py b/tests/integration_tests/conftest.py new file mode 100644 index 00000000..311da567 --- /dev/null +++ b/tests/integration_tests/conftest.py @@ -0,0 +1,132 @@ +"""Shared fixtures for integration tests.""" + +import pytest +from unittest.mock import MagicMock +from datetime import datetime + +from healthchain.gateway import NoteReaderService +from healthchain.gateway.cds import CDSHooksService +from healthchain.gateway.fhir import FHIRGateway +from healthchain.gateway.events.dispatcher import EventDispatcher +from healthchain.gateway import HealthChainAPI +from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline +from healthchain.pipeline.summarizationpipeline import SummarizationPipeline +from healthchain.fhir import create_document_reference +from fhir.resources.documentreference import DocumentReference +from fhir.resources.patient import Patient +from fhir.resources.meta import Meta + + +@pytest.fixture +def mock_coding_pipeline(test_cda_response): + """Mock medical coding pipeline that returns test CDA response.""" + pipeline = MagicMock(spec=MedicalCodingPipeline) + pipeline.process_request.return_value = test_cda_response + return pipeline + + +@pytest.fixture +def mock_summarization_pipeline(test_cds_response_single_card): + """Mock summarization pipeline that returns test CDS response.""" + pipeline = MagicMock(spec=SummarizationPipeline) + pipeline.process_request.return_value = test_cds_response_single_card + return pipeline + + +@pytest.fixture +def note_service(mock_coding_pipeline): + """NoteReader service with mock pipeline.""" + service = NoteReaderService() + + @service.method("ProcessDocument") + def process_document(cda_request): + return mock_coding_pipeline.process_request(cda_request) + + return service + + +@pytest.fixture +def cds_service(mock_summarization_pipeline): + """CDS Hooks service with mock pipeline.""" + service = CDSHooksService() + + @service.hook("encounter-discharge", id="discharge-summary") + def handle_discharge_summary(request): + return mock_summarization_pipeline.process_request(request) + + return service + + +@pytest.fixture +def fhir_gateway(): + """FHIR Gateway with transform and aggregate handlers.""" + gateway = FHIRGateway() + + @gateway.transform(DocumentReference) + def enhance_document(id: str, source: str) -> DocumentReference: + document = create_document_reference( + data="AI-enhanced document", + content_type="text/xml", + description="Enhanced document", + ) + document.extension = [ + { + "url": "http://healthchain.org/extension/ai-summary", + "valueString": "AI-enhanced", + } + ] + document.meta = Meta( + lastUpdated=datetime.now().isoformat(), + tag=[{"system": "http://healthchain.org/tag", "code": "ai-enhanced"}], + ) + return document + + @gateway.aggregate(Patient) + def aggregate_patient_data(id: str, sources: list[str]) -> Patient: + patient = Patient() + patient.id = id + patient.gender = "unknown" + patient.birthDate = "1990-01-01" + return patient + + return gateway + + +@pytest.fixture +def configured_app(note_service, cds_service, fhir_gateway): + """HealthChainAPI with all services configured.""" + app = HealthChainAPI() + app.register_service(note_service) + app.register_service(cds_service) + app.register_gateway(fhir_gateway) + return app + + +@pytest.fixture +def event_dispatcher(): + """Event dispatcher for testing event system.""" + return EventDispatcher() + + +@pytest.fixture +def note_service_with_events(mock_coding_pipeline, event_dispatcher): + """NoteReader service with event dispatching enabled.""" + service = NoteReaderService(event_dispatcher=event_dispatcher, use_events=True) + + @service.method("ProcessDocument") + def process_document(cda_request): + return mock_coding_pipeline.process_request(cda_request) + + return service + + +@pytest.fixture +def cds_service_with_events(mock_summarization_pipeline, event_dispatcher): + """CDS Hooks service with event dispatching enabled.""" + service = CDSHooksService(event_dispatcher=event_dispatcher, use_events=True) + + @service.hook("encounter-discharge", id="discharge-summary") + def handle_discharge_summary(request): + return mock_summarization_pipeline.process_request(request) + + return service diff --git a/tests/integration_tests/test_event_system_integration.py b/tests/integration_tests/test_event_system_integration.py new file mode 100644 index 00000000..2c0c3e1a --- /dev/null +++ b/tests/integration_tests/test_event_system_integration.py @@ -0,0 +1,108 @@ +"""Integration tests for HealthChain event system.""" + +import pytest +from datetime import datetime + +from healthchain.gateway import HealthChainAPI, EHREvent, EHREventType +from healthchain.models.requests.cdsrequest import CDSRequest + +pytestmark = pytest.mark.anyio + + +@pytest.mark.parametrize("anyio_backend", ["asyncio"]) +async def test_event_dispatcher_emit_and_publish(event_dispatcher): + """EventDispatcher handles both synchronous emit and async publish operations.""" + event = EHREvent( + event_type=EHREventType.EHR_GENERIC, + source_system="test", + timestamp=datetime.now(), + payload={"data": "test"}, + metadata={}, + ) + + # Both operations should complete without error + event_dispatcher.emit(event) + await event_dispatcher.publish(event) + + +@pytest.mark.parametrize( + "service_fixture,operation,request_fixture", + [ + ("note_service_with_events", "ProcessDocument", "test_cda_request"), + ("cds_service_with_events", "encounter-discharge", None), + ], +) +def test_services_propagate_event_dispatcher( + service_fixture, operation, request_fixture, request, event_dispatcher +): + """Services with events enabled correctly propagate the event dispatcher.""" + service = request.getfixturevalue(service_fixture) + + # Verify event capability is configured + assert service.use_events is True + assert service.events.dispatcher == event_dispatcher + + # Process a request to ensure event system is engaged + if request_fixture: + req = request.getfixturevalue(request_fixture) + service.handle(operation, request=req) + else: + cds_request = CDSRequest( + hook=operation, + hookInstance="test", + context={"patientId": "123", "userId": "Practitioner/1"}, + ) + service.handle(operation, request=cds_request) + + +def test_healthchain_api_propagates_dispatcher_to_services(): + """HealthChainAPI propagates event dispatcher when registering services with events enabled.""" + app = HealthChainAPI(enable_events=True) + assert app.event_dispatcher is not None + + # Create and register service with events + from healthchain.gateway import NoteReaderService + + service = NoteReaderService() + + @service.method("ProcessDocument") + def process_document(cda_request): + return cda_request + + app.register_service(service, use_events=True) + + # Service should receive the app's dispatcher + assert service.events.dispatcher == app.event_dispatcher + + +def test_custom_event_creator_integration(note_service_with_events): + """Services support custom event creators for specialized event generation.""" + + def custom_creator(operation, request, response): + return EHREvent( + event_type=EHREventType.NOTEREADER_PROCESS_NOTE, + source_system="custom", + timestamp=datetime.now(), + payload={"operation": operation}, + metadata={"custom": True}, + ) + + note_service_with_events.events.set_event_creator(custom_creator) + assert note_service_with_events.events._event_creator == custom_creator + + +def test_event_model_structure_and_naming(): + """EHREvent provides consistent structure and naming convention.""" + event = EHREvent( + event_type=EHREventType.EHR_GENERIC, + source_system="test-system", + timestamp=datetime.now(), + payload={"data": {"key": "value"}}, + metadata={"env": "test"}, + ) + + assert event.event_type == EHREventType.EHR_GENERIC + assert event.source_system == "test-system" + assert event.payload["data"]["key"] == "value" + assert event.metadata["env"] == "test" + assert event.get_name() == EHREventType.EHR_GENERIC.value diff --git a/tests/integration_tests/test_healthchain_api_e2e.py b/tests/integration_tests/test_healthchain_api_e2e.py new file mode 100644 index 00000000..80428a3d --- /dev/null +++ b/tests/integration_tests/test_healthchain_api_e2e.py @@ -0,0 +1,73 @@ +"""Integration tests for HealthChain API end-to-end workflows.""" + +from healthchain.models.requests.cdsrequest import CDSRequest + + +def test_notereader_service_processes_through_pipeline( + note_service, test_cda_request, test_cda_response, mock_coding_pipeline +): + """NoteReader service integrates with medical coding pipeline for document processing.""" + response = note_service.handle("ProcessDocument", request=test_cda_request) + + # Verify pipeline was invoked and response matches + mock_coding_pipeline.process_request.assert_called_once_with(test_cda_request) + assert response.document == test_cda_response.document + + +def test_cds_service_processes_through_pipeline( + cds_service, test_cds_response_single_card, mock_summarization_pipeline +): + """CDS Hooks service integrates with summarization pipeline for decision support.""" + cds_request = CDSRequest( + hook="encounter-discharge", + hookInstance="test", + context={"patientId": "123", "userId": "Practitioner/1"}, + ) + + response = cds_service.handle("encounter-discharge", request=cds_request) + + # Verify pipeline was invoked and cards generated + mock_summarization_pipeline.process_request.assert_called_once_with(cds_request) + assert len(response.cards) == 1 + assert response.cards[0].summary == test_cds_response_single_card.cards[0].summary + + +def test_fhir_gateway_supports_multiple_resource_operations(fhir_gateway): + """FHIR Gateway handles both transform and aggregate operations on different resource types.""" + from fhir.resources.documentreference import DocumentReference + from fhir.resources.patient import Patient + + # Transform operation + doc = fhir_gateway._resource_handlers[DocumentReference]["transform"]( + "id1", "source1" + ) + assert isinstance(doc, DocumentReference) + assert doc.extension + assert any("ai-summary" in ext.url for ext in doc.extension) + + # Aggregate operation + patient = fhir_gateway._resource_handlers[Patient]["aggregate"]("id2", ["s1", "s2"]) + assert isinstance(patient, Patient) + assert patient.id == "id2" + + +def test_healthchain_app_integrates_multiple_service_types(configured_app): + """HealthChainAPI successfully orchestrates NoteReader, CDS Hooks, and FHIR Gateway services.""" + # Verify all service types are registered + assert len(configured_app.services) == 2 + assert len(configured_app.gateways) == 1 + + # Verify service types + assert "NoteReaderService" in configured_app.services + assert "CDSHooksService" in configured_app.services + assert "FHIRGateway" in configured_app.gateways + + # Verify services are operational by checking they have required methods + note_service = configured_app.services["NoteReaderService"] + assert hasattr(note_service, "handle") + + cds_service = configured_app.services["CDSHooksService"] + assert hasattr(cds_service, "handle") + + fhir_gateway = configured_app.gateways["FHIRGateway"] + assert hasattr(fhir_gateway, "_resource_handlers") diff --git a/tests/integration_tests/test_healthchain_api_endpoints.py b/tests/integration_tests/test_healthchain_api_endpoints.py new file mode 100644 index 00000000..2a426923 --- /dev/null +++ b/tests/integration_tests/test_healthchain_api_endpoints.py @@ -0,0 +1,128 @@ +"""Integration tests for HealthChain API HTTP endpoints.""" + +import pytest +from fastapi.testclient import TestClient + +pytestmark = pytest.mark.anyio + + +@pytest.fixture +def client(configured_app): + """FastAPI TestClient for API testing.""" + return TestClient(configured_app) + + +@pytest.mark.parametrize( + "endpoint,expected_fields", + [ + ("/", ["name", "version", "gateways", "services"]), + ("/metadata", ["resourceType", "status", "gateways", "services"]), + ], +) +def test_api_metadata_endpoints(client, endpoint, expected_fields): + """API metadata endpoints return expected structure.""" + response = client.get(endpoint) + assert response.status_code == 200 + data = response.json() + for field in expected_fields: + assert field in data + + +def test_health_check_returns_healthy_status(client): + """Health check endpoint returns healthy status with registered services.""" + response = client.get("/health") + assert response.status_code == 200 + assert response.json()["status"] == "healthy" + + +@pytest.mark.parametrize( + "endpoint,expected_resource_type,expected_kind", + [ + ("/metadata", "CapabilityStatement", None), + ("/fhir/metadata", "CapabilityStatement", "instance"), + ], +) +def test_fhir_capability_statements( + client, endpoint, expected_resource_type, expected_kind +): + """FHIR metadata endpoints return valid CapabilityStatement resources.""" + response = client.get(endpoint) + assert response.status_code == 200 + data = response.json() + assert data["resourceType"] == expected_resource_type + if expected_kind: + assert data["kind"] == expected_kind + assert "rest" in data + + +def test_fhir_gateway_status(client): + """FHIR status endpoint returns gateway operational details.""" + response = client.get("/fhir/status") + assert response.status_code == 200 + data = response.json() + assert data["gateway_type"] == "FHIRGateway" + assert data["status"] == "active" + assert "supported_operations" in data + # Verify operations are organized by resource type + assert "DocumentReference" in data["supported_operations"] + assert "Patient" in data["supported_operations"] + + +def test_fhir_transform_applies_ai_enhancements(client): + """FHIR transform endpoint enhances DocumentReference with AI extensions.""" + response = client.get("/fhir/transform/DocumentReference/test-id?source=demo") + + assert response.status_code == 200 + assert "application/fhir+json" in response.headers["content-type"] + data = response.json() + assert data["resourceType"] == "DocumentReference" + + # Verify AI enhancement applied + assert data["extension"] + assert any("ai-summary" in ext["url"] for ext in data["extension"]) + assert data["meta"]["tag"][0]["code"] == "ai-enhanced" + + +def test_fhir_aggregate_combines_patient_data(client): + """FHIR aggregate endpoint merges Patient data from multiple sources.""" + response = client.get( + "/fhir/aggregate/Patient?id=test-patient&sources=demo&sources=epic" + ) + + assert response.status_code == 200 + assert "application/fhir+json" in response.headers["content-type"] + data = response.json() + assert data["resourceType"] == "Patient" + assert data["id"] == "test-patient" + + +def test_cds_discovery_returns_available_services(client): + """CDS Hooks discovery endpoint exposes registered service definitions.""" + response = client.get("/cds/cds-discovery") + + assert response.status_code == 200 + data = response.json() + assert "services" in data + assert len(data["services"]) == 1 + + # Verify service configuration + service = data["services"][0] + assert service["hook"] == "encounter-discharge" + assert service["id"] == "discharge-summary" + + +def test_cds_service_processes_hook_request(client, test_cds_response_single_card): + """CDS Hooks service endpoint processes requests and returns cards.""" + request_data = { + "hook": "encounter-discharge", + "hookInstance": "test-instance", + "context": {"patientId": "123", "userId": "Practitioner/1"}, + } + + response = client.post("/cds/cds-services/discharge-summary", json=request_data) + + assert response.status_code == 200 + data = response.json() + assert "cards" in data + assert len(data["cards"]) == 1 + assert data["cards"][0]["summary"] == test_cds_response_single_card.cards[0].summary From 34caa52e9f0f89ab45deec4fa8dc0b8208abde2f Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Tue, 14 Oct 2025 14:57:29 +0100 Subject: [PATCH 17/18] Update docs --- README.md | 20 +- docs/reference/interop/generators.md | 160 +++-- docs/reference/interop/parsers.md | 159 ++--- docs/reference/pipeline/data_container.md | 297 +++++--- docs/reference/pipeline/pipeline.md | 148 ++-- docs/reference/utilities/fhir_helpers.md | 806 +++++++++++----------- 6 files changed, 897 insertions(+), 693 deletions(-) diff --git a/README.md b/README.md index 815f434e..26d704d4 100644 --- a/README.md +++ b/README.md @@ -168,18 +168,16 @@ fhir.add_source("epic", "fhir://fhir.epic.com/r4?client_id=epic_client_id") fhir.add_source("cerner", "fhir://fhir.cerner.com/r4?client_id=cerner_client_id") @fhir.aggregate(Patient) -def enrich_patient_data(id: str, source: str = None) -> Patient: +def enrich_patient_data(id: str, source: str) -> Patient: """Get patient data from any connected EHR and add AI enhancements""" - patient = fhir.read(Patient, id, source) - - # Add AI processing metadata - patient.extension = patient.extension or [] - patient.extension.append({ - "url": "http://healthchain.org/fhir/ai-processed", - "valueString": f"Enhanced by HealthChain from {source}" - }) - - return patient + bundle = fhir.search( + Patient, + {"_id": id}, + source, + add_provenance=True, + provenance_tag="ai-enhanced", + ) + return bundle app.register_gateway(fhir) diff --git a/docs/reference/interop/generators.md b/docs/reference/interop/generators.md index 0c2c5979..8d49d17d 100644 --- a/docs/reference/interop/generators.md +++ b/docs/reference/interop/generators.md @@ -71,91 +71,65 @@ fhir_generator = engine.fhir_generator fhir_resources = fhir_generator.transform(cda_section_entries, src_format=FormatType.CDA) ``` -
-View full input data +??? example "View full input data" -```python -{ - "problems": [{ - 'act': { - '@classCode': 'ACT', - '@moodCode': 'EVN', - 'templateId': [ - {'@root': '2.16.840.1.113883.10.20.1.27'}, - {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5.1'}, - {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5.2'}, - {'@root': '2.16.840.1.113883.3.88.11.32.7'}, - {'@root': '2.16.840.1.113883.3.88.11.83.7'} - ], - 'id': { - '@extension': '51854-concern', - '@root': '1.2.840.114350.1.13.525.3.7.2.768076' - }, - 'code': { - '@nullFlavor': 'NA' - }, - 'text': { - 'reference': {'@value': '#problem12'} - }, - 'statusCode': { - '@code': 'active' - }, - 'effectiveTime': { - 'low': {'@value': '20210317'} - }, - 'entryRelationship': { - '@typeCode': 'SUBJ', - '@inversionInd': False, - 'observation': { - '@classCode': 'OBS', + The FHIR generator transforms this structure into a FHIR Condition resource by: + + 1. Identifying the section type ("problems") from the dictionary key + 2. Looking up the corresponding FHIR resource type ("Condition") from configuration + 3. Extracting relevant data from the nested structure (codes, dates, statuses) + 4. Using templates to map specific fields to FHIR attributes + + ```python + { + "problems": [{ + 'act': { + '@classCode': 'ACT', '@moodCode': 'EVN', 'templateId': [ - {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5'}, - {'@root': '2.16.840.1.113883.10.20.1.28'} + {'@root': '2.16.840.1.113883.10.20.1.27'}, + {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5.1'}, + {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5.2'}, + {'@root': '2.16.840.1.113883.3.88.11.32.7'}, + {'@root': '2.16.840.1.113883.3.88.11.83.7'} ], 'id': { - '@extension': '51854', + '@extension': '51854-concern', '@root': '1.2.840.114350.1.13.525.3.7.2.768076' }, 'code': { - '@code': '64572001', - '@codeSystem': '2.16.840.1.113883.6.96', - '@codeSystemName': 'SNOMED CT' + '@nullFlavor': 'NA' }, 'text': { - 'reference': {'@value': '#problem12name'} + 'reference': {'@value': '#problem12'} }, 'statusCode': { - '@code': 'completed' + '@code': 'active' }, 'effectiveTime': { - 'low': {'@value': '20190517'} - }, - 'value': { - '@code': '38341003', - '@codeSystem': '2.16.840.1.113883.6.96', - '@codeSystemName': 'SNOMED CT', - '@xsi:type': 'CD', - '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', - 'originalText': { - 'reference': {'@value': '#problem12name'} - } + 'low': {'@value': '20210317'} }, 'entryRelationship': { - '@typeCode': 'REFR', + '@typeCode': 'SUBJ', '@inversionInd': False, 'observation': { '@classCode': 'OBS', '@moodCode': 'EVN', 'templateId': [ - {'@root': '2.16.840.1.113883.10.20.1.50'}, - {'@root': '2.16.840.1.113883.10.20.1.57'}, - {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.1.1'} + {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.5'}, + {'@root': '2.16.840.1.113883.10.20.1.28'} ], + 'id': { + '@extension': '51854', + '@root': '1.2.840.114350.1.13.525.3.7.2.768076' + }, 'code': { - '@code': '33999-4', - '@codeSystem': '2.16.840.1.113883.6.1', - '@displayName': 'Status' + '@code': '64572001', + '@codeSystem': '2.16.840.1.113883.6.96', + '@codeSystemName': 'SNOMED CT' + }, + 'text': { + 'reference': {'@value': '#problem12name'} }, 'statusCode': { '@code': 'completed' @@ -164,34 +138,54 @@ fhir_resources = fhir_generator.transform(cda_section_entries, src_format=Format 'low': {'@value': '20190517'} }, 'value': { - '@code': '55561003', + '@code': '38341003', '@codeSystem': '2.16.840.1.113883.6.96', - '@xsi:type': 'CE', - '@displayName': 'Active', - '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance' + '@codeSystemName': 'SNOMED CT', + '@xsi:type': 'CD', + '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', + 'originalText': { + 'reference': {'@value': '#problem12name'} + } + }, + 'entryRelationship': { + '@typeCode': 'REFR', + '@inversionInd': False, + 'observation': { + '@classCode': 'OBS', + '@moodCode': 'EVN', + 'templateId': [ + {'@root': '2.16.840.1.113883.10.20.1.50'}, + {'@root': '2.16.840.1.113883.10.20.1.57'}, + {'@root': '1.3.6.1.4.1.19376.1.5.3.1.4.1.1'} + ], + 'code': { + '@code': '33999-4', + '@codeSystem': '2.16.840.1.113883.6.1', + '@displayName': 'Status' + }, + 'statusCode': { + '@code': 'completed' + }, + 'effectiveTime': { + 'low': {'@value': '20190517'} + }, + 'value': { + '@code': '55561003', + '@codeSystem': '2.16.840.1.113883.6.96', + '@xsi:type': 'CE', + '@displayName': 'Active', + '@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance' + } + } } } } } - } + }] } - }] -} -``` + ``` + -The FHIR generator transforms this structure into a FHIR Condition resource by: -
-1. Identifying the section type ("problems") from the dictionary key -
-2. Looking up the corresponding FHIR resource type ("Condition") from configuration -
-3. Extracting relevant data from the nested structure (codes, dates, statuses) -
-4. Using templates to map specific fields to FHIR attributes -
- -The result is a properly structured FHIR Condition resource with all required fields populated. -
-Prebuilt pipelines are end-to-end workflows optimized for specific healthcare AI tasks. They can be used with adapters for seamless integration with EHR systems via [protocols](../gateway/gateway.md). +Prebuilt pipelines are production-ready workflows that automatically handle FHIR conversion, validation, and formatting. They integrate seamlessly with EHR systems through [adapters](./adapters/adapters.md) and [gateways](../gateway/gateway.md), supporting standards like CDS Hooks and FHIR REST APIs. -You can load your models directly as a pipeline object, from local files or from a remote model repository such as Hugging Face. +Load your models from Hugging Face, local files, or pipeline objects: ```python from healthchain.pipeline import MedicalCodingPipeline @@ -96,57 +96,94 @@ There are three types of nodes you can add to your pipeline with the method `.ad #### Inline Functions -Inline functions are simple functions that take in a container and return a container. +Inline functions are simple functions that process Document containers. Use them for custom clinical logic without creating full components. ```python +from spacy.tokens import Span + @pipeline.add_node -def remove_stopwords(doc: Document) -> Document: - stopwords = {"the", "a", "an", "in", "on", "at"} - doc.tokens = [token for token in doc.tokens if token not in stopwords] +def link_snomed_codes(doc: Document) -> Document: + """Map medical entities to SNOMED CT codes.""" + if not Span.has_extension("cui"): + Span.set_extension("cui", default=None) + + spacy_doc = doc.nlp.get_spacy_doc() + + # Map clinical terms to SNOMED CT + snomed_mapping = { + "hypertension": "38341003", + "diabetes": "73211009", + "pneumonia": "233604007", + } + + for ent in spacy_doc.ents: + if ent.text.lower() in snomed_mapping: + ent._.cui = snomed_mapping[ent.text.lower()] + return doc # Equivalent to: -pipeline.add_node(remove_stopwords) +pipeline.add_node(link_snomed_codes) ``` #### Components -Components are pre-configured building blocks that perform specific tasks. They are defined as separate classes and can be reused across multiple pipelines. +Components are pre-configured building blocks for common clinical NLP tasks. They handle FHIR conversion, entity extraction, and CDS formatting automatically. -You can see the full list of available components at the [Components](./components/components.md) page. +See the full list at the [Components](./components/components.md) page. ```python -from healthchain.pipeline import TextPreProcessor +from healthchain.pipeline.components import SpacyNLP, FHIRProblemListExtractor + +# Add medical NLP processing +nlp = SpacyNLP.from_model_id("en_core_sci_sm") +pipeline.add_node(nlp) -preprocessor = TextPreProcessor(tokenizer="spacy", lowercase=True) -pipeline.add_node(preprocessor) +# Extract FHIR Condition resources from entities +extractor = FHIRProblemListExtractor() +pipeline.add_node(extractor) ``` #### Custom Components -Custom components are classes that implement the `BaseComponent` interface. You can use them to add custom processing logic to your pipeline. +Custom components implement the `BaseComponent` interface for reusable clinical processing logic. ```python from healthchain.pipeline import BaseComponent +from healthchain.fhir import create_condition -class RemoveStopwords(BaseComponent): - def __init__(self, stopwords: List[str]): +class ClinicalEntityLinker(BaseComponent): + """Links extracted entities to standard medical terminologies.""" + + def __init__(self, terminology_service_url: str): super().__init__() - self.stopwords = stopwords + self.terminology_url = terminology_service_url def __call__(self, doc: Document) -> Document: - doc.tokens = [token for token in doc.tokens if token not in self.stopwords] + """Convert medical entities to FHIR Conditions.""" + spacy_doc = doc.nlp.get_spacy_doc() + + for ent in spacy_doc.ents: + if ent._.cui: # Has SNOMED CT code + condition = create_condition( + subject=f"Patient/{doc.patient_id}", + code=ent._.cui, + display=ent.text + ) + doc.fhir.problem_list.append(condition) + return doc -stopwords = ["the", "a", "an", "in", "on", "at"] -pipeline.add_node(RemoveStopwords(stopwords)) +# Add to pipeline +linker = ClinicalEntityLinker(terminology_service_url="https://terminology.hl7.org/") +pipeline.add_node(linker) ``` [(BaseComponent API Reference)](../../api/component.md#healthchain.pipeline.components.base.BaseComponent) ### Working with Healthcare Data Formats ๐Ÿ”„ -Use adapters to handle conversion between healthcare formats (CDA, FHIR) and HealthChain's internal Document objects. Adapters enable clean separation between ML processing and format handling. +Adapters convert between healthcare formats (CDA, FHIR, CDS Hooks) and HealthChain's internal Document objects, enabling clean separation between ML processing and format handling. This allows your pipeline to work with any healthcare data source while maintaining FHIR-native outputs. ```python from healthchain.io import CdaAdapter, Document @@ -184,20 +221,38 @@ When using `"after"` or `"before"`, you must also specify the `reference` parame You can also specify the `stage` parameter to add the component to a specific stage group of the pipeline. ```python -@pipeline.add_node(position="after", reference="tokenize", stage="preprocessing") -def remove_stopwords(doc: Document) -> Document: - stopwords = {"the", "a", "an", "in", "on", "at"} - doc.tokens = [token for token in doc.tokens if token not in stopwords] +@pipeline.add_node(position="after", reference="SpacyNLP", stage="entity_linking") +def link_snomed_codes(doc: Document) -> Document: + """Add SNOMED CT codes to extracted medical entities.""" + spacy_doc = doc.nlp.get_spacy_doc() + snomed_mapping = { + "hypertension": "38341003", + "diabetes": "73211009", + } + for ent in spacy_doc.ents: + if ent.text.lower() in snomed_mapping: + ent._.cui = snomed_mapping[ent.text.lower()] return doc ``` You can specify dependencies between components using the `dependencies` parameter. This is useful if you want to ensure that a component is run after another component. ```python -@pipeline.add_node(dependencies=["tokenize"]) -def remove_stopwords(doc: Document) -> Document: - stopwords = {"the", "a", "an", "in", "on", "at"} - doc.tokens = [token for token in doc.tokens if token not in stopwords] +@pipeline.add_node(dependencies=["SpacyNLP"]) +def extract_medications(doc: Document) -> Document: + """Extract medication entities and convert to FHIR MedicationStatements.""" + spacy_doc = doc.nlp.get_spacy_doc() + + for ent in spacy_doc.ents: + if ent.label_ == "MEDICATION": + # Create FHIR MedicationStatement + med_statement = create_medication_statement( + subject=f"Patient/{doc.patient_id}", + code=ent._.cui if hasattr(ent._, "cui") else None, + display=ent.text + ) + doc.fhir.medication_list.append(med_statement) + return doc ``` @@ -206,7 +261,7 @@ def remove_stopwords(doc: Document) -> Document: Use `.remove()` to remove a component from the pipeline. ```python -pipeline.remove("remove_stopwords") +pipeline.remove("link_snomed_codes") ``` #### Replacing @@ -214,11 +269,20 @@ pipeline.remove("remove_stopwords") Use `.replace()` to replace a component in the pipeline. ```python -def remove_names(doc: Document) -> Document: - doc.entities = [token for token in doc.entities if token[0].isupper() and len(token) > 1] +def enhanced_entity_linking(doc: Document) -> Document: + """Enhanced entity linking with external terminology service.""" + spacy_doc = doc.nlp.get_spacy_doc() + + for ent in spacy_doc.ents: + # Call external terminology service for validation + validated_code = terminology_service.validate(ent.text) + if validated_code: + ent._.cui = validated_code + return doc -pipeline.replace("remove_stopwords", remove_names) +# Replace basic linking with enhanced version +pipeline.replace("link_snomed_codes", enhanced_entity_linking) ``` #### Inspecting the Pipeline @@ -227,11 +291,11 @@ pipeline.replace("remove_stopwords", remove_names) print(pipeline) print(pipeline.stages) -# ["TextPreprocessor", "Model", "TextPostProcessor"] +# ["SpacyNLP", "ClinicalEntityLinker", "FHIRProblemListExtractor"] # preprocessing: -# - TextPreprocessor -# ner+l: -# - Model -# postprocessing: -# - TextPostProcessor +# - SpacyNLP +# entity_linking: +# - ClinicalEntityLinker +# fhir_conversion: +# - FHIRProblemListExtractor ``` diff --git a/docs/reference/utilities/fhir_helpers.md b/docs/reference/utilities/fhir_helpers.md index 839388b6..35d531ad 100644 --- a/docs/reference/utilities/fhir_helpers.md +++ b/docs/reference/utilities/fhir_helpers.md @@ -6,9 +6,9 @@ The `fhir` module provides a set of helper functions to make it easier for you t FHIR is the modern de facto standard for storing and exchanging healthcare data, but working with [FHIR resources](https://www.hl7.org/fhir/resourcelist.html) can often involve complex and nested JSON structures with required and optional fields that vary between contexts. -Creating FHIR resources can involve a lot of boilerplate code, validation errors and manual comparison of FHIR specifications with the resource you're trying to create. +Creating FHIR resources can involve a lot of boilerplate code, validation errors and manual comparison with FHIR specifications. -For example, as an ML practitioner, you may only care about extracting and inserting certain codes and texts within a FHIR resource. If you want locate the SNOMED CT code for a medication, you may have to do something headache-inducing like this: +For example, as an ML practitioner, you may only care about extracting and inserting certain codes and texts within a FHIR resource. If you want to locate the SNOMED CT code for a medication, you may have to do something headache-inducing like: ```python medication_statement = { @@ -32,14 +32,20 @@ medication_statement = { medication_statement["medication"]["concept"]["coding"][0]["code"] medication_statement["medication"]["concept"]["coding"][0]["display"] - ``` -The `fhir` `create_*` functions create FHIR resources with sensible defaults, automatically creating a reference ID prefixed by "`hc-`", a status of "`active`" (or equivalent) and adding a creation date where necessary. +!!! tip "Sensible Defaults for Resource Creation" + The `fhir` `create_*` functions create FHIR resources with sensible defaults, automatically setting: + - A reference ID prefixed by "`hc-`" + - A status of "`active`" (or equivalent) + - A creation date where necessary -Internally, HealthChain uses [fhir.resources](https://github.com/nazrulworld/fhir.resources) to validate FHIR resources, which is in turn powered by [Pydantic V2](https://docs.pydantic.dev/latest/). You can modify and manipulate the FHIR resources as you would any other Pydantic object after its creation. + You can modify and manipulate these resources as you would any other Pydantic object after their creation. -**Please exercise caution when using these functions, as they are only meant to create minimal valid FHIR resources to make it easier to get started. Always check the sensible defaults serve your needs, and validate the resource to ensure it is correct!** +!!! important "Validation of FHIR Resources" + Internally, HealthChain uses [fhir.resources](https://github.com/nazrulworld/fhir.resources) to validate FHIR resources, which is powered by [Pydantic V2](https://docs.pydantic.dev/latest/). + These helpers create minimal valid FHIR objects to help you get started easily. + :octicons-alert-16: **ALWAYS check that the sensible defaults fit your needs, and validate your resource!** ### Overview @@ -48,21 +54,20 @@ Internally, HealthChain uses [fhir.resources](https://github.com/nazrulworld/fhi | **Condition** | โ€ข `clinicalStatus`
โ€ข `subject` | โ€ข `clinicalStatus`: "active"
โ€ข `id`: auto-generated with "hc-" prefix | โ€ข Recording diagnoses
โ€ข Problem list items
โ€ข Active conditions | | **MedicationStatement** | โ€ข `subject`
โ€ข `status`
โ€ข `medication` | โ€ข `status`: "recorded"
โ€ข `id`: auto-generated with "hc-" prefix | โ€ข Current medications
โ€ข Medication history
โ€ข Prescribed medications | | **AllergyIntolerance** | โ€ข `patient` | โ€ข `id`: auto-generated with "hc-" prefix | โ€ข Allergies
โ€ข Intolerances
โ€ข Adverse reactions | -| **DocumentReference** | โ€ข `type` | โ€ข `status`: "current"
โ€ข `date`: current UTC time
โ€ข `description`: default text
โ€ข `content.attachment.title`: default text | โ€ข Clinical notes
โ€ข Lab reports
โ€ข Imaging reports | +| **DocumentReference** | โ€ข `type` | โ€ข `status`: "current"
โ€ข `date`: UTC now
โ€ข `description`: default text
โ€ข `content.attachment.title`: default text | โ€ข Clinical notes
โ€ข Lab reports
โ€ข Imaging reports | +--- ### create_condition() Creates a new [**Condition**](https://www.hl7.org/fhir/condition.html) resource. -**Required fields:** - -- [clinicalStatus](https://www.hl7.org/fhir/condition-definitions.html#Condition.clinicalStatus) -- [subject](https://www.hl7.org/fhir/condition-definitions.html#Condition.subject) - -**Sensible defaults:** +!!! note "Required fields" + - [clinicalStatus](https://www.hl7.org/fhir/condition-definitions.html#Condition.clinicalStatus) + - [subject](https://www.hl7.org/fhir/condition-definitions.html#Condition.subject) -- `clinicalStatus` is set to "`active`" +!!! tip "Sensible Defaults" + `clinicalStatus` is set to "`active`" ```python from healthchain.fhir import create_condition @@ -79,53 +84,44 @@ condition = create_condition( print(condition.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "Condition", - "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", - - // Clinical status indicating this is an active condition - "clinicalStatus": { - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - - // SNOMED CT code for Hypertension - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "38341003", - "display": "Hypertension" - }] - }, - - // Reference to the patient this condition belongs to - "subject": { - "reference": "Patient/123" +??? example "Example Output JSON" + ```json + { + "resourceType": "Condition", + "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": { + "reference": "Patient/123" + } } -} -``` -
+ ``` + +--- ### create_medication_statement() Creates a new [**MedicationStatement**](https://www.hl7.org/fhir/medicationstatement.html) resource. -**Required fields:** - -- [subject](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.subject) -- [status](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.status) -- [medication](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.medication) +!!! note "Required fields" + - [subject](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.subject) + - [status](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.status) + - [medication](https://www.hl7.org/fhir/medicationstatement-definitions.html#MedicationStatement.medication) -**Sensible defaults:** - -- `status` is set to "`recorded`" +!!! tip "Sensible Defaults" + `status` is set to "`recorded`" ```python from healthchain.fhir import create_medication_statement @@ -142,47 +138,38 @@ medication = create_medication_statement( print(medication.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "MedicationStatement", - "id": "hc-86a26eba-63f9-4017-b7b2-5b36f9bad5f1", - - // Required fields are highlighted - "status": "recorded", // [Required] Status of the medication statement - - // Required medication details using RxNorm coding - "medication": { // [Required] Details about the medication - "concept": { - "coding": [{ - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1049221", - "display": "Acetaminophen 325 MG Oral Tablet" - }] +??? example "Example Output JSON" + ```json + { + "resourceType": "MedicationStatement", + "id": "hc-86a26eba-63f9-4017-b7b2-5b36f9bad5f1", + "status": "recorded", + "medication": { + "concept": { + "coding": [{ + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1049221", + "display": "Acetaminophen 325 MG Oral Tablet" + }] + } + }, + "subject": { + "reference": "Patient/123" } - }, - - // Required reference to the patient - "subject": { // [Required] Reference to the patient this medication belongs to - "reference": "Patient/123" } -} -``` -
+ ``` + +--- ### create_allergy_intolerance() Creates a new [**AllergyIntolerance**](https://www.hl7.org/fhir/allergyintolerance.html) resource. -**Required fields:** - -- [patient](https://www.hl7.org/fhir/allergyintolerance-definitions.html#AllergyIntolerance.patient) - -**Sensible defaults:** +!!! note "Required fields" + - [patient](https://www.hl7.org/fhir/allergyintolerance-definitions.html#AllergyIntolerance.patient) -- None +!!! tip "Sensible Defaults" + None (besides the auto-generated id) ```python from healthchain.fhir import create_allergy_intolerance @@ -199,46 +186,39 @@ allergy = create_allergy_intolerance( print(allergy.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "AllergyIntolerance", - "id": "hc-65edab39-d90b-477b-bdb5-a173b21efd44", - - // SNOMED CT code for the allergy - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "418038007", - "display": "Propensity to adverse reactions to substance" - }] - }, - - // Required reference to the patient - "patient": { // [Required] Reference to the patient this allergy belongs to - "reference": "Patient/123" +??? example "Example Output JSON" + ```json + { + "resourceType": "AllergyIntolerance", + "id": "hc-65edab39-d90b-477b-bdb5-a173b21efd44", + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "418038007", + "display": "Propensity to adverse reactions to substance" + }] + }, + "patient": { + "reference": "Patient/123" + } } -} -``` -
+ ``` + +--- ### create_document_reference() Creates a new [**DocumentReference**](https://www.hl7.org/fhir/documentreference.html) resource. Handles base64 encoding of the attachment data. -**Required fields:** +!!! note "Required fields" + - [type](https://www.hl7.org/fhir/documentreference-definitions.html#DocumentReference.type) -- [type](https://www.hl7.org/fhir/documentreference-definitions.html#DocumentReference.type) - -**Sensible defaults:** - -- `type` is set to "`collection`" -- `status` is set to "`current`" -- `date` is set to the current UTC timestamp -- `description` is set to "`DocumentReference created by HealthChain`" -- `content[0].attachment.title` is set to "`Attachment created by HealthChain`" +!!! tip "Sensible Defaults" + - `type` is set to "`collection`" + - `status` is set to "`current`" + - `date` is set to the current UTC timestamp + - `description` is set to "`DocumentReference created by HealthChain`" + - `content[0].attachment.title` is set to "`Attachment created by HealthChain`" ```python from healthchain.fhir import create_document_reference @@ -254,39 +234,31 @@ doc_ref = create_document_reference( print(doc_ref.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "DocumentReference", - "id": "hc-60fcfdad-9617-4557-88d8-8c8db9b9fe70", - - // Document metadata - "status": "current", - "date": "2025-02-28T14:55:33+00:00", // UTC timestamp - "description": "A simple text document", - - // Document content with base64 encoded data - "content": [{ - "attachment": { - "contentType": "text/plain", - "data": "SGVsbG8gV29ybGQ=", // "Hello World" in base64 - "title": "Attachment created by HealthChain", - "creation": "2025-02-28T14:55:33+00:00" // UTC timestamp - } - }] -} -``` +??? example "Example Output JSON" + ```json + { + "resourceType": "DocumentReference", + "id": "hc-60fcfdad-9617-4557-88d8-8c8db9b9fe70", + "status": "current", + "date": "2025-02-28T14:55:33+00:00", + "description": "A simple text document", + "content": [{ + "attachment": { + "contentType": "text/plain", + "data": "SGVsbG8gV29ybGQ=", + "title": "Attachment created by HealthChain", + "creation": "2025-02-28T14:55:33+00:00" + } + }] + } + ``` -
-View decoded content + ??? example "View Decoded Content" + ```text + Hello World + ``` -```text -Hello World -``` -
-
+--- ## Utilities @@ -310,48 +282,39 @@ set_problem_list_item_category(problem_list_item) print(problem_list_item.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "Condition", - "id": "hc-3d5f62e7-729b-4da1-936c-e8e16e5a9358", - - // Required fields are highlighted - "clinicalStatus": { // [Required] Clinical status of the condition - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - - // Category added by set_problem_list_item_category - "category": [{ - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-category", - "code": "problem-list-item", - "display": "Problem List Item" - }] - }], - - // SNOMED CT code for the condition - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "38341003", - "display": "Hypertension" - }] - }, - - // Required reference to the patient - "subject": { // [Required] Reference to the patient this condition belongs to - "reference": "Patient/123" +??? example "Example Output JSON" + ```json + { + "resourceType": "Condition", + "id": "hc-3d5f62e7-729b-4da1-936c-e8e16e5a9358", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "category": [{ + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-category", + "code": "problem-list-item", + "display": "Problem List Item" + }] + }], + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": { + "reference": "Patient/123" + } } -} -``` -
+ ``` + +--- ### read_content_attachment() @@ -374,6 +337,8 @@ attachments = read_content_attachment(document_reference) # ] ``` +--- + ## Bundle Operations FHIR Bundles are containers that can hold multiple FHIR resources together. They are commonly used to group related resources or to send/receive multiple resources in a single request. @@ -385,17 +350,17 @@ The bundle operations make it easy to: - Retrieve specific resource types from bundles - Work with multiple resource types in a single bundle +--- + ### create_bundle() Creates a new [**Bundle**](https://www.hl7.org/fhir/bundle.html) resource. -**Required fields:** - -- [type](https://www.hl7.org/fhir/bundle-definitions.html#Bundle.type) +!!! note "Required field" + - [type](https://www.hl7.org/fhir/bundle-definitions.html#Bundle.type) -**Sensible defaults:** - -- `type` is set to "`collection`" +!!! tip "Sensible Defaults" + `type` is set to "`collection`" ```python from healthchain.fhir import create_bundle @@ -407,17 +372,16 @@ bundle = create_bundle(bundle_type="collection") print(bundle.model_dump()) ``` -
-View output JSON +??? example "Example Output JSON" + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [] + } + ``` -```json -{ - "resourceType": "Bundle", - "type": "collection", // [Required] Type of bundle - "entry": [] // Empty list of resources -} -``` -
+--- ### add_resource() @@ -441,56 +405,45 @@ add_resource(bundle, condition) print(bundle.model_dump()) ``` -
-View output JSON - -```json -{ - "resourceType": "Bundle", - "type": "collection", - - // List of resources in the bundle - "entry": [{ - "resource": { - "resourceType": "Condition", - "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", - - // Required fields from the condition - "clinicalStatus": { // [Required] - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "38341003", - "display": "Hypertension" - }] - }, - - "subject": { // [Required] - "reference": "Patient/123" +??? example "Example Output JSON" + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [{ + "resource": { + "resourceType": "Condition", + "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": { + "reference": "Patient/123" + } } - } - }] -} -``` - -
-View field descriptions + }] + } + ``` -| Field | Required | Description | -|-------|:--------:|-------------| -| `entry` | - | Array of resources in the bundle | -| `entry[].resource` | โœ“ | The FHIR resource being added | -| `entry[].fullUrl` | - | Optional full URL for the resource | + ??? info "Field Descriptions" + | Field | Required | Description | + |-------|:--------:|-------------| + | `entry` | - | Array of resources in the bundle | + | `entry[].resource` | โœ“ | The FHIR resource being added | + | `entry[].fullUrl` | - | Optional full URL for the resource | -
-
+--- ### get_resources() @@ -506,11 +459,12 @@ conditions = get_resources(bundle, "Condition") from fhir.resources.condition import Condition conditions = get_resources(bundle, Condition) -# Each resource in the returned list will be a full FHIR resource for condition in conditions: print(f"Found condition: {condition.code.coding[0].display}") ``` +--- + ### set_resources() Sets or updates resources of a specific type in a [**Bundle**](https://www.hl7.org/fhir/bundle.html). @@ -539,60 +493,141 @@ set_resources(bundle, conditions, "Condition", replace=True) set_resources(bundle, conditions, "Condition", replace=False) ``` -
-View example bundle with multiple conditions +??? example "Bundle with Multiple Conditions" + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": {"reference": "Patient/123"} + } + }, + { + "resource": { + "resourceType": "Condition", + "id": "hc-9876fedc-ba98-7654-3210-fedcba987654", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "44054006", + "display": "Diabetes" + }] + }, + "subject": {"reference": "Patient/123"} + } + } + ] + } + ``` + +--- + +### merge_bundles() + +Merges multiple FHIR [**Bundle**](https://www.hl7.org/fhir/bundle.html) resources into a single bundle. + +- Resources from each bundle are combined into a single output bundle of `type: collection`. +- All entries from all input bundles will appear in the resulting bundle's `entry` array. +- If bundles have the same resource (e.g. matching `id` or identical resources), they will *all* be included unless you handle duplicates before/after calling `merge_bundles`. + +```python +from healthchain.fhir import merge_bundles, create_bundle, create_condition + +# Create two bundles with different resources +bundle1 = create_bundle() +add_resource(bundle1, create_condition( + subject="Patient/123", code="38341003", display="Hypertension" +)) +bundle2 = create_bundle() +add_resource(bundle2, create_condition( + subject="Patient/123", code="44054006", display="Diabetes" +)) + +# Merge the bundles together +merged = merge_bundles(bundle1, bundle2) + +# Output the merged bundle +print(merged.model_dump()) +``` -```json -{ - "resourceType": "Bundle", - "type": "collection", - "entry": [ +??? example "Example Output JSON" + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [ { - "resource": { - "resourceType": "Condition", - "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", - "clinicalStatus": { - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "38341003", - "display": "Hypertension" - }] - }, - "subject": {"reference": "Patient/123"} - } + "resource": { + "resourceType": "Condition", + "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": { "reference": "Patient/123" } + } }, { - "resource": { - "resourceType": "Condition", - "id": "hc-9876fedc-ba98-7654-3210-fedcba987654", - "clinicalStatus": { - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "44054006", - "display": "Diabetes" - }] - }, - "subject": {"reference": "Patient/123"} - } + "resource": { + "resourceType": "Condition", + "id": "hc-9876fedc-ba98-7654-3210-fedcba987654", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "44054006", + "display": "Diabetes" + }] + }, + "subject": { "reference": "Patient/123" } + } } - ] -} -``` -
+ ] + } + ``` + +--- ## Common Patterns @@ -654,88 +689,85 @@ medications = get_resources(bundle, "MedicationStatement") allergies = get_resources(bundle, "AllergyIntolerance") ``` -
-View complete bundle JSON - -```json -{ - "resourceType": "Bundle", - "type": "collection", - "entry": [ - { - "resource": { - "resourceType": "Condition", - "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", - "clinicalStatus": { - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "38341003", - "display": "Hypertension" - }] - }, - "subject": {"reference": "Patient/123"} - } - }, - { - "resource": { - "resourceType": "Condition", - "id": "hc-9876fedc-ba98-7654-3210-fedcba987654", - "clinicalStatus": { - "coding": [{ - "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", - "code": "active", - "display": "Active" - }] - }, - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "44054006", - "display": "Diabetes" - }] - }, - "subject": {"reference": "Patient/123"} - } - }, - { - "resource": { - "resourceType": "MedicationStatement", - "id": "hc-86a26eba-63f9-4017-b7b2-5b36f9bad5f1", - "status": "recorded", - "medication": { - "concept": { +??? example "Complete Bundle Example Output" + ```json + { + "resourceType": "Bundle", + "type": "collection", + "entry": [ + { + "resource": { + "resourceType": "Condition", + "id": "hc-3117bdce-bfab-4d71-968b-1ded900882ca", + "clinicalStatus": { "coding": [{ - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1049221", - "display": "Acetaminophen 325 MG" + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" }] - } - }, - "subject": {"reference": "Patient/123"} - } - }, - { - "resource": { - "resourceType": "AllergyIntolerance", - "id": "hc-65edab39-d90b-477b-bdb5-a173b21efd44", - "code": { - "coding": [{ - "system": "http://snomed.info/sct", - "code": "418038007", - "display": "Penicillin allergy" - }] - }, - "patient": {"reference": "Patient/123"} + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "38341003", + "display": "Hypertension" + }] + }, + "subject": {"reference": "Patient/123"} + } + }, + { + "resource": { + "resourceType": "Condition", + "id": "hc-9876fedc-ba98-7654-3210-fedcba987654", + "clinicalStatus": { + "coding": [{ + "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", + "code": "active", + "display": "Active" + }] + }, + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "44054006", + "display": "Diabetes" + }] + }, + "subject": {"reference": "Patient/123"} + } + }, + { + "resource": { + "resourceType": "MedicationStatement", + "id": "hc-86a26eba-63f9-4017-b7b2-5b36f9bad5f1", + "status": "recorded", + "medication": { + "concept": { + "coding": [{ + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1049221", + "display": "Acetaminophen 325 MG" + }] + } + }, + "subject": {"reference": "Patient/123"} + } + }, + { + "resource": { + "resourceType": "AllergyIntolerance", + "id": "hc-65edab39-d90b-477b-bdb5-a173b21efd44", + "code": { + "coding": [{ + "system": "http://snomed.info/sct", + "code": "418038007", + "display": "Penicillin allergy" + }] + }, + "patient": {"reference": "Patient/123"} + } } - } - ] -} -``` -
+ ] + } + ``` From 87e38d8fbe2215b713c700e5379e0d1d360fb317 Mon Sep 17 00:00:00 2001 From: jenniferjiangkells Date: Tue, 14 Oct 2025 15:00:56 +0100 Subject: [PATCH 18/18] Add demo script --- .gitignore | 2 +- scripts/healthchainapi_e2e_demo.py | 1231 ++++++++++++++++++++++++++++ 2 files changed, 1232 insertions(+), 1 deletion(-) create mode 100644 scripts/healthchainapi_e2e_demo.py diff --git a/.gitignore b/.gitignore index 868815e6..7e413875 100644 --- a/.gitignore +++ b/.gitignore @@ -166,5 +166,5 @@ scrap/ .ruff_cache/ .python-version .cursor/ -scripts/ +.private/ .idea/ diff --git a/scripts/healthchainapi_e2e_demo.py b/scripts/healthchainapi_e2e_demo.py new file mode 100644 index 00000000..cb16299d --- /dev/null +++ b/scripts/healthchainapi_e2e_demo.py @@ -0,0 +1,1231 @@ +""" +๐Ÿฅ HealthChain Complete Sandbox Demo + +A comprehensive demonstration of HealthChain's capabilities including: +- Medical coding and summarization pipelines +- CDS Hooks and NoteReader services +- FHIR Gateway with custom handlers +- Event-driven processing +- Sandbox environments for testing + +This script showcases the full HealthChain ecosystem in action. + +Prerequisites: +- HUGGINGFACEHUB_API_TOKEN environment variable (will prompt if not set) +- ./resources/uclh_cda.xml +- ./cookbook/data/discharge_notes.csv +""" + +import getpass +import os +import threading +import uvicorn +import requests +import json +import glob +from datetime import datetime +from time import sleep +from typing import List, Optional +from pathlib import Path +from dataclasses import dataclass, field +from enum import Enum + +import healthchain as hc +from spacy.tokens import Span + +# HealthChain imports +from healthchain.data_generators.cdsdatagenerator import CdsDataGenerator +from healthchain.gateway import ( + HealthChainAPI, + NoteReaderService, + EHREvent, + EHREventType, +) +from healthchain.gateway.cds import CDSHooksService +from healthchain.gateway.fhir import FHIRGateway +from healthchain.gateway.events.dispatcher import local_handler +from healthchain.io import Document +from healthchain.models.hooks.prefetch import Prefetch +from healthchain.models.requests import CdaRequest +from healthchain.models.requests.cdsrequest import CDSRequest +from healthchain.models.responses import CdaResponse +from healthchain.models.responses.cdsresponse import CDSResponse +from healthchain.pipeline.medicalcodingpipeline import MedicalCodingPipeline +from healthchain.pipeline.summarizationpipeline import SummarizationPipeline +from healthchain.sandbox.use_cases import ClinicalDocumentation +from healthchain.fhir import create_document_reference +from healthchain.sandbox.use_cases.cds import ClinicalDecisionSupport + +# FHIR imports +from fhir.resources.documentreference import DocumentReference +from fhir.resources.patient import Patient +from fhir.resources.meta import Meta + +# Configuration +CONFIG = { + "server": { + "host": "localhost", + "port": 8000, + "startup_delay": 5, + }, + "data": { + "cda_document_path": "./resources/uclh_cda.xml", + "discharge_notes_path": "./cookbook/data/discharge_notes.csv", + }, + "models": { + "spacy_model": "en_core_sci_sm", + "summarization_model": "google/pegasus-xsum", + }, + "workflows": { + "notereader": "sign-note-inpatient", + "cds": "encounter-discharge", + }, +} + + +def print_section(title: str, emoji: str = "๐Ÿ”ง"): + """Print a nicely formatted section header""" + print(f"\n{'='*60}") + print(f"{emoji} {title}") + print("=" * 60) + + +def print_step(message: str): + """Print a step message""" + print(f"๐Ÿ”น {message}") + + +def print_success(message: str): + """Print success message""" + print(f"โœ… {message}") + + +def print_warning(message: str): + """Print warning message""" + print(f"โš ๏ธ {message}") + + +def print_error(message: str): + """Print error message""" + print(f"โŒ {message}") + + +def print_info(message: str): + """Print info message""" + print(f"โ„น๏ธ {message}") + + +# Validation result structures +class ValidationLevel(Enum): + """Validation result levels""" + + SUCCESS = "success" + WARNING = "warning" + ERROR = "error" + INFO = "info" + + +@dataclass +class ValidationResult: + """Result of a validation check""" + + passed: bool + message: str + details: dict = field(default_factory=dict) + level: ValidationLevel = ValidationLevel.INFO + + def print(self): + """Print validation result with appropriate formatting""" + if self.level == ValidationLevel.SUCCESS: + print_success(self.message) + elif self.level == ValidationLevel.WARNING: + print_warning(self.message) + elif self.level == ValidationLevel.ERROR: + print_error(self.message) + else: + print_info(self.message) + + # Print details if present + for key, value in self.details.items(): + if isinstance(value, list): + print(f" {key}:") + for item in value: + print(f" - {item}") + else: + print(f" {key}: {value}") + + +def make_api_request( + url: str, method: str = "get", timeout: int = 10, **kwargs +) -> Optional[requests.Response]: + """ + Make HTTP request with consistent error handling + + Args: + url: URL to request + method: HTTP method (get, post, etc.) + timeout: Request timeout in seconds + **kwargs: Additional arguments to pass to requests + + Returns: + Response object or None if request failed + """ + try: + response = getattr(requests, method.lower())(url, timeout=timeout, **kwargs) + return response + except Exception as e: + print_error(f"Request failed: {str(e)}") + return None + + +def validate_prerequisites(): + """Validate that all required files exist before running""" + print_section("Validating Prerequisites", "๐Ÿ”") + + required_files = { + "CDA Document": CONFIG["data"]["cda_document_path"], + "Discharge Notes": CONFIG["data"]["discharge_notes_path"], + } + + missing = [] + for name, path in required_files.items(): + if not os.path.exists(path): + missing.append(f"{name}: {path}") + else: + print_success(f"Found {name}: {path}") + + if missing: + print_error("Missing required files:") + for file in missing: + print(f" โŒ {file}") + print("\nPlease ensure these files exist before running the demo.") + raise SystemExit(1) + + print_success("All prerequisites validated") + + +def setup_environment(): + """Setup required environment variables""" + print_section("Environment Setup", "๐ŸŒ") + + if not os.getenv("HUGGINGFACEHUB_API_TOKEN"): + print_step("HuggingFace API token required for summarization pipeline") + os.environ["HUGGINGFACEHUB_API_TOKEN"] = getpass.getpass( + "Enter your HuggingFace token: " + ) + print_success("HuggingFace token configured") + else: + print_success("HuggingFace token already configured") + + +def create_pipelines(): + """Create and configure ML pipelines""" + print_section("Creating ML Pipelines", "๐Ÿง ") + + # Medical coding pipeline + print_step("Setting up medical coding pipeline...") + coding_pipeline = MedicalCodingPipeline.from_model_id( + CONFIG["models"]["spacy_model"], source="spacy" + ) + + # Add custom entity linking + @coding_pipeline.add_node(position="after", reference="SpacyNLP") + def link_entities(doc: Document) -> Document: + """Add CUI codes to medical entities""" + if not Span.has_extension("cui"): + Span.set_extension("cui", default=None) + + spacy_doc = doc.nlp.get_spacy_doc() + + # Simple dummy linker for demo purposes + dummy_linker = { + "fever": "C0006477", + "cough": "C0006477", + "cold": "C0006477", + "flu": "C0006477", + "headache": "C0006477", + "sore throat": "C0006477", + } + + for ent in spacy_doc.ents: + if ent.text in dummy_linker: + ent._.cui = dummy_linker[ent.text] + + return doc + + print_success("Medical coding pipeline created") + + # Summarization pipeline + print_step("Setting up summarization pipeline...") + summarization_pipeline = SummarizationPipeline.from_model_id( + CONFIG["models"]["summarization_model"], + source="huggingface", + task="summarization", + ) + print_success("Summarization pipeline created") + + return coding_pipeline, summarization_pipeline + + +def setup_event_handlers(): + """Configure event handlers for the system""" + print_section("Setting Up Event Handlers", "๐Ÿ“ก") + + # Event collector for validation + captured_events = [] + + @local_handler.register(event_name=EHREventType.NOTEREADER_PROCESS_NOTE.value) + async def handle_notereader_event(event): + """Handler for NoteReader events""" + event_name, payload = event + print(f"๐Ÿ“‹ NoteReader Event: {payload['source_system']}") + print(f" Custom ID: {payload['payload'].get('custom_id', 'N/A')}") + captured_events.append(("notereader", event_name)) + return True + + @local_handler.register(event_name="*") + async def log_all_events(event): + """Catch-all handler for system events""" + event_name, payload = event + print(f"๐Ÿ”” System Event: {event_name}") + captured_events.append(("global", event_name)) + return True + + print_success("Event handlers registered") + + # Store the captured events list for later validation + setup_event_handlers.captured_events = captured_events + + +def create_services(coding_pipeline, summarization_pipeline): + """Create and configure HealthChain services""" + print_section("Creating HealthChain Services", "โš•๏ธ") + + # Create services + note_service = NoteReaderService() + cds_service = CDSHooksService() + fhir_gateway = FHIRGateway() + + # Configure CDS Hooks + @cds_service.hook("encounter-discharge", id="discharge-summary") + def handle_discharge_summary(request: CDSRequest) -> CDSResponse: + """Process discharge summaries with AI""" + result = summarization_pipeline.process_request(request) + return result + + print_success("CDS Hooks service configured") + + # Configure NoteReader + @note_service.method("ProcessDocument") + def process_document(cda_request: CdaRequest) -> CdaResponse: + """Process clinical documents with NLP""" + result = coding_pipeline.process_request(cda_request) + return result + + print_success("NoteReader service configured") + + # Configure FHIR Gateway handlers + @fhir_gateway.transform(DocumentReference) + def enhance_document(id: str, source: str) -> DocumentReference: + """Transform documents with AI enhancements""" + print(f"๐Ÿ“„ Enhancing document {id} from {source}") + + # Create enhanced document + document = create_document_reference( + data="AI-enhanced clinical document", + content_type="text/xml", + description="Document enhanced with HealthChain AI processing", + ) + + # Add AI summary extension + document.extension = [ + { + "url": "http://healthchain.org/extension/ai-summary", + "valueString": "This document has been enhanced with AI-powered analysis", + } + ] + + # Add processing metadata + document.meta = Meta( + lastUpdated=datetime.now().isoformat(), + tag=[{"system": "http://healthchain.org/tag", "code": "ai-enhanced"}], + ) + + return document + + @fhir_gateway.aggregate(Patient) + def aggregate_patient_data(id: str, sources: List[str]) -> Patient: + """Aggregate patient data from multiple sources""" + print(f"๐Ÿ‘ค Aggregating patient {id} from sources: {', '.join(sources)}") + + patient = Patient() + patient.id = id + patient.gender = "unknown" + patient.birthDate = "1990-01-01" + + return patient + + print_success("FHIR Gateway handlers configured") + + # Setup custom event creator + def custom_event_creator(operation, *args): + """Create customized events for integration tracking""" + return EHREvent( + event_type=EHREventType.NOTEREADER_PROCESS_NOTE, + source_system="HealthChain-Demo", + timestamp=datetime.now(), + payload={ + "demo_id": "sandbox-123", + "operation": operation, + }, + metadata={ + "environment": "sandbox", + "priority": "demo", + }, + ) + + note_service.events.set_event_creator(custom_event_creator) + print_success("Custom event creator configured") + + return note_service, cds_service, fhir_gateway + + +def create_app(note_service, cds_service, fhir_gateway): + """Create and configure the main HealthChain application""" + print_section("Creating HealthChain Application", "๐Ÿฅ") + + app = HealthChainAPI() + + # Register all services + app.register_service(note_service) + app.register_service(cds_service) + app.register_gateway(fhir_gateway) + + print_success("HealthChain application created and services registered") + return app + + +def create_sandboxes(): + """Create sandbox environments for testing""" + print_section("Creating Sandbox Environments", "๐Ÿ–๏ธ") + + base_url = f"http://{CONFIG['server']['host']}:{CONFIG['server']['port']}/" + + # NoteReader Sandbox + @hc.sandbox(base_url) + class NotereaderSandbox(ClinicalDocumentation): + """Sandbox for testing clinical documentation workflows""" + + def __init__(self): + super().__init__() + self.data_path = CONFIG["data"]["cda_document_path"] + + @hc.ehr(workflow=CONFIG["workflows"]["notereader"]) + def load_clinical_document(self) -> DocumentReference: + """Load a sample CDA document for processing""" + with open(self.data_path, "r") as file: + xml_content = file.read() + + return create_document_reference( + data=xml_content, + content_type="text/xml", + description="Sample CDA document from sandbox", + ) + + # CDS Hooks Sandbox + @hc.sandbox(base_url) + class DischargeNoteSummarizer(ClinicalDecisionSupport): + """Sandbox for testing clinical decision support workflows""" + + def __init__(self): + super().__init__(path="/cds/cds-services/") + self.data_generator = CdsDataGenerator() + + @hc.ehr(workflow=CONFIG["workflows"]["cds"]) + def load_discharge_data(self) -> Prefetch: + """Generate synthetic discharge data for testing""" + data = self.data_generator.generate_prefetch( + free_text_path=CONFIG["data"]["discharge_notes_path"], + column_name="text", + ) + return data + + print_success("Sandbox environments created") + return NotereaderSandbox(), DischargeNoteSummarizer() + + +def start_server(app): + """Start the HealthChain server in a separate thread""" + print_section("Starting HealthChain Server", "๐Ÿš€") + + def run_server(): + uvicorn.run( + app, + host=CONFIG["server"]["host"], + port=CONFIG["server"]["port"], + log_level="info", + ) + + server_thread = threading.Thread(target=run_server, daemon=True) + server_thread.start() + + print_step( + f"Server starting on {CONFIG['server']['host']}:{CONFIG['server']['port']}" + ) + print_step(f"Waiting {CONFIG['server']['startup_delay']} seconds for startup...") + sleep(CONFIG["server"]["startup_delay"]) + print_success("Server is ready!") + + return server_thread + + +def run_sandbox_demos(notereader_sandbox, cds_sandbox): + """Run the sandbox demonstrations""" + print_section("Running Sandbox Demonstrations", "๐ŸŽญ") + + # Start NoteReader demo + print_step("Starting Clinical Documentation sandbox...") + try: + notereader_sandbox.start_sandbox() + print_success("Clinical Documentation sandbox completed") + except Exception as e: + print(f"โŒ NoteReader sandbox error: {str(e)}") + + sleep(2) + + # Start CDS Hooks demo + print_step("Starting Clinical Decision Support sandbox...") + try: + cds_sandbox.start_sandbox(service_id="discharge-summary") + print_success("Clinical Decision Support sandbox completed") + except Exception as e: + print(f"โŒ CDS sandbox error: {str(e)}") + + +# FHIR Endpoint Validation Helpers +def check_metadata_endpoint(base_url: str) -> ValidationResult: + """Check FHIR metadata endpoint accessibility""" + print_step("Checking FHIR metadata endpoint...") + + response = make_api_request(f"{base_url}/fhir/metadata") + if not response or response.status_code != 200: + return ValidationResult( + passed=False, + message=f"Metadata endpoint returned status {response.status_code if response else 'no response'}", + level=ValidationLevel.ERROR, + ) + + return ValidationResult( + passed=True, + message="FHIR metadata endpoint accessible", + level=ValidationLevel.SUCCESS, + details={"response": response.json()}, + ) + + +def validate_capability_statement(metadata: dict) -> list[ValidationResult]: + """Validate CapabilityStatement structure and content""" + results = [] + + # Check resource type + if metadata.get("resourceType") != "CapabilityStatement": + results.append( + ValidationResult( + passed=False, + message=f"Expected CapabilityStatement, got {metadata.get('resourceType')}", + level=ValidationLevel.WARNING, + ) + ) + return results + + results.append( + ValidationResult( + passed=True, + message="Valid FHIR CapabilityStatement returned", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check resource capabilities + expected_resources = ["DocumentReference", "Patient"] + rest_resources = metadata.get("rest", []) + + if rest_resources and rest_resources[0].get("resource"): + actual_resources = [r["type"] for r in rest_resources[0]["resource"]] + missing = set(expected_resources) - set(actual_resources) + + if not missing: + results.append( + ValidationResult( + passed=True, + message="All expected resources found in capability statement", + level=ValidationLevel.SUCCESS, + details={"๐Ÿ“Š Supported resources": ", ".join(actual_resources)}, + ) + ) + else: + results.append( + ValidationResult( + passed=False, + message=f"Missing expected resources: {', '.join(missing)}", + level=ValidationLevel.WARNING, + ) + ) + else: + results.append( + ValidationResult( + passed=False, + message="No resource capabilities found in statement", + level=ValidationLevel.WARNING, + ) + ) + + # Check FHIR version + if fhir_version := metadata.get("fhirVersion"): + results.append( + ValidationResult( + passed=True, + message=f"FHIR version: {fhir_version}", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check gateway information + if gateways := metadata.get("gateways"): + gateway_details = [] + for name, info in gateways.items(): + endpoints = info.get("endpoints", []) + gateway_details.append( + f"{name} ({info.get('type', 'Unknown')}): {len(endpoints)} endpoints" + ) + + results.append( + ValidationResult( + passed=True, + message=f"CapabilityStatement includes {len(gateways)} gateway(s)", + level=ValidationLevel.SUCCESS, + details={"Gateways": gateway_details}, + ) + ) + + return results + + +def check_gateway_status(base_url: str) -> list[ValidationResult]: + """Check gateway status endpoint and validate structure""" + print_step("Checking gateway status endpoint...") + results = [] + + response = make_api_request(f"{base_url}/fhir/status") + if not response or response.status_code != 200: + results.append( + ValidationResult( + passed=False, + message=f"Status endpoint returned status {response.status_code if response else 'no response'}", + level=ValidationLevel.ERROR, + ) + ) + return results + + status = response.json() + results.append( + ValidationResult( + passed=True, + message="Gateway status endpoint accessible", + level=ValidationLevel.SUCCESS, + ) + ) + + # Validate gateway type + if status.get("gateway_type") != "FHIRGateway": + results.append( + ValidationResult( + passed=False, + message=f"Expected FHIRGateway, got {status.get('gateway_type')}", + level=ValidationLevel.ERROR, + ) + ) + return results + + results.append( + ValidationResult( + passed=True, + message="Valid gateway status returned", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check operations + if ops := status.get("supported_operations"): + resource_count = len(ops.keys()) + transform_count = sum( + 1 + for operations in ops.values() + for op in operations + if op.get("type") == "transform" + ) + aggregate_count = sum( + 1 + for operations in ops.values() + for op in operations + if op.get("type") == "aggregate" + ) + total_operations = sum(len(operations) for operations in ops.values()) + + operation_details = [ + f"๐Ÿ”„ Transform endpoints: {transform_count}", + f"๐Ÿ“Š Aggregate endpoints: {aggregate_count}", + ] + for resource_name, operations in ops.items(): + operation_types = [op.get("type") for op in operations] + operation_details.append( + f"โ””โ”€โ”€ {resource_name}: {', '.join(operation_types)}" + ) + + results.append( + ValidationResult( + passed=True, + message=f"Gateway supports {resource_count} resources, {total_operations} operations", + level=ValidationLevel.SUCCESS, + details={"Operations": operation_details}, + ) + ) + + # Check event system + if events := status.get("events"): + if events.get("enabled"): + results.append( + ValidationResult( + passed=True, + message="Event system enabled", + level=ValidationLevel.SUCCESS, + ) + ) + if events.get("dispatcher_configured"): + results.append( + ValidationResult( + passed=True, + message="Event dispatcher configured", + level=ValidationLevel.SUCCESS, + ) + ) + else: + results.append( + ValidationResult( + passed=True, + message="Event dispatcher not configured (normal for demo)", + level=ValidationLevel.INFO, + ) + ) + else: + results.append( + ValidationResult( + passed=True, + message="Event system disabled", + level=ValidationLevel.INFO, + ) + ) + + # Check sources + if sources := status.get("sources"): + source_count = sources.get("count", 0) + if source_count > 0: + source_names = sources.get("names", []) + results.append( + ValidationResult( + passed=True, + message=f"๐Ÿ“ก Connected FHIR sources: {source_count}", + level=ValidationLevel.INFO, + details={"Sources": source_names}, + ) + ) + + # Check discovery endpoints + if discovery := status.get("discovery_endpoints"): + discovery_list = [ + f"{endpoint}: {description}" for endpoint, description in discovery.items() + ] + results.append( + ValidationResult( + passed=True, + message=f"Gateway provides {len(discovery)} discovery endpoints", + level=ValidationLevel.SUCCESS, + details={"Endpoints": discovery_list}, + ) + ) + + return results + + +def check_transform_endpoint(base_url: str) -> list[ValidationResult]: + """Check DocumentReference transform endpoint""" + print_step("Checking DocumentReference transform endpoint...") + results = [] + + response = make_api_request( + f"{base_url}/fhir/transform/DocumentReference/test-doc-123?source=demo" + ) + if not response or response.status_code != 200: + results.append( + ValidationResult( + passed=False, + message=f"Transform endpoint returned status {response.status_code if response else 'no response'}", + level=ValidationLevel.ERROR, + ) + ) + return results + + doc_data = response.json() + results.append( + ValidationResult( + passed=True, + message="Transform endpoint accessible", + level=ValidationLevel.SUCCESS, + ) + ) + + # Validate response structure + if doc_data.get("resourceType") != "DocumentReference": + results.append( + ValidationResult( + passed=False, + message=f"Expected DocumentReference, got {doc_data.get('resourceType')}", + level=ValidationLevel.ERROR, + ) + ) + return results + + results.append( + ValidationResult( + passed=True, + message="Valid DocumentReference returned from transform", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check for AI enhancement + extensions = doc_data.get("extension", []) + ai_enhanced = any("ai-summary" in ext.get("url", "") for ext in extensions) + + if ai_enhanced: + results.append( + ValidationResult( + passed=True, + message="Document contains AI enhancement extension", + level=ValidationLevel.SUCCESS, + ) + ) + else: + results.append( + ValidationResult( + passed=False, + message="No AI enhancement extension found", + level=ValidationLevel.WARNING, + ) + ) + + return results + + +def check_aggregate_endpoint(base_url: str) -> list[ValidationResult]: + """Check Patient aggregate endpoint""" + print_step("Checking Patient aggregate endpoint...") + results = [] + + response = make_api_request( + f"{base_url}/fhir/aggregate/Patient?id=test-patient-123&sources=demo&sources=epic" + ) + if not response or response.status_code != 200: + results.append( + ValidationResult( + passed=False, + message=f"Aggregate endpoint returned status {response.status_code if response else 'no response'}", + level=ValidationLevel.ERROR, + ) + ) + return results + + patient_data = response.json() + results.append( + ValidationResult( + passed=True, + message="Aggregate endpoint accessible", + level=ValidationLevel.SUCCESS, + ) + ) + + # Validate response structure + if patient_data.get("resourceType") != "Patient": + results.append( + ValidationResult( + passed=False, + message=f"Expected Patient, got {patient_data.get('resourceType')}", + level=ValidationLevel.ERROR, + ) + ) + return results + + results.append( + ValidationResult( + passed=True, + message="Valid Patient returned from aggregate", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check patient has expected fields + if patient_data.get("id") and patient_data.get("gender"): + results.append( + ValidationResult( + passed=True, + message="Patient contains expected demographic data", + level=ValidationLevel.SUCCESS, + ) + ) + else: + results.append( + ValidationResult( + passed=False, + message="Patient missing expected demographic fields", + level=ValidationLevel.WARNING, + ) + ) + + return results + + +def validate_fhir_endpoints(): + """Validate that FHIR Gateway endpoints are properly registered""" + print_section("Validating FHIR Gateway Endpoints", "๐Ÿ”") + + base_url = f"http://{CONFIG['server']['host']}:{CONFIG['server']['port']}" + + # Check metadata endpoint + result = check_metadata_endpoint(base_url) + result.print() + + if result.passed: + metadata = result.details.get("response", {}) + for validation_result in validate_capability_statement(metadata): + validation_result.print() + + # Check gateway status + for result in check_gateway_status(base_url): + result.print() + + # Check transform endpoint + for result in check_transform_endpoint(base_url): + result.print() + + # Check aggregate endpoint + for result in check_aggregate_endpoint(base_url): + result.print() + + +def validate_json_response(file_path: str) -> list[ValidationResult]: + """Validate JSON response file (CDS response)""" + results = [] + print_step(f"Checking latest JSON response: {Path(file_path).name}") + + try: + with open(file_path, "r") as f: + content = f.read() + + try: + data = json.loads(content) + + if "cards" not in data: + results.append( + ValidationResult( + passed=False, + message="JSON file has unknown structure", + level=ValidationLevel.WARNING, + ) + ) + return results + + results.append( + ValidationResult( + passed=True, + message="File has CDS response structure", + level=ValidationLevel.SUCCESS, + ) + ) + + # Check for card details + cards = data.get("cards", []) + has_details = any( + card.get("detail") and len(card.get("detail", "").strip()) > 0 + for card in cards + ) + + results.append( + ValidationResult( + passed=has_details, + message="CDS response contains card details โœ“" + if has_details + else "CDS response missing card details", + level=ValidationLevel.SUCCESS + if has_details + else ValidationLevel.WARNING, + ) + ) + + except json.JSONDecodeError: + results.append( + ValidationResult( + passed=False, + message="File is not valid JSON", + level=ValidationLevel.ERROR, + ) + ) + + except Exception as e: + results.append( + ValidationResult( + passed=False, + message=f"Error reading file: {str(e)}", + level=ValidationLevel.ERROR, + ) + ) + + return results + + +def validate_xml_response(file_path: str) -> list[ValidationResult]: + """Validate XML response file (CDA response)""" + results = [] + print_step(f"Checking latest XML response: {Path(file_path).name}") + + try: + with open(file_path, "r") as f: + content = f.read() + + # Check for expected code in CDA content + has_code = "0006477" in content.lower() + results.append( + ValidationResult( + passed=has_code, + message="CDA response contains '0006477' โœ“" + if has_code + else "CDA response does not contain '0006477'", + level=ValidationLevel.SUCCESS if has_code else ValidationLevel.WARNING, + ) + ) + + # Check for basic CDA structure + has_structure = ( + "" in content + ) + results.append( + ValidationResult( + passed=has_structure, + message="Valid CDA document structure" + if has_structure + else "Invalid or incomplete CDA document structure", + level=ValidationLevel.SUCCESS + if has_structure + else ValidationLevel.WARNING, + ) + ) + + except Exception as e: + results.append( + ValidationResult( + passed=False, + message=f"Error reading file: {str(e)}", + level=ValidationLevel.ERROR, + ) + ) + + return results + + +def validate_output_files(): + """Validate that output files contain expected content""" + print_section("Validating Output Files", "๐Ÿ“") + + output_dir = "output/responses" + + # Check if output directory exists + if not os.path.exists(output_dir): + print_warning(f"Output directory {output_dir} does not exist") + return + + # Find all sandbox response files + json_files = glob.glob(f"{output_dir}/*_sandbox_*_response_0.json") + xml_files = glob.glob(f"{output_dir}/*_sandbox_*_response_0.xml") + + if not json_files and not xml_files: + print_warning(f"No sandbox response files found in {output_dir}") + return + + # Get latest files by modification time + all_files = json_files + xml_files + all_files.sort(key=lambda x: os.path.getmtime(x), reverse=True) + + print_success(f"Found {len(all_files)} sandbox response file(s)") + + # Validate latest JSON file + latest_json = [f for f in all_files if f.endswith(".json")] + if latest_json: + for result in validate_json_response(latest_json[0]): + result.print() + + # Validate latest XML file + latest_xml = [f for f in all_files if f.endswith(".xml")] + if latest_xml: + for result in validate_xml_response(latest_xml[0]): + result.print() + + # Summary + print_step("Validation summary:") + print(f" ๐Ÿ“Š Total files: {len(all_files)}") + print(f" ๐Ÿ“„ JSON: {len(json_files)}, XML: {len(xml_files)}") + if all_files: + print(f" ๐Ÿ•’ Latest: {Path(all_files[0]).name}") + + +def check_captured_events() -> list[ValidationResult]: + """Check events captured during demo execution""" + results = [] + + if not hasattr(setup_event_handlers, "captured_events"): + results.append( + ValidationResult( + passed=False, + message="Event capture system not initialized", + level=ValidationLevel.WARNING, + ) + ) + return results + + captured = setup_event_handlers.captured_events + + if not captured: + results.append( + ValidationResult( + passed=False, + message="No events were captured during demo execution", + level=ValidationLevel.WARNING, + ) + ) + return results + + # Count events by type + notereader_events = len([e for e in captured if e[0] == "notereader"]) + global_events = len([e for e in captured if e[0] == "global"]) + + results.append( + ValidationResult( + passed=True, + message=f"Captured {len(captured)} events during demo execution", + level=ValidationLevel.SUCCESS, + details={ + "๐Ÿ“‹ NoteReader events": str(notereader_events), + "๐Ÿ”” Global events": str(global_events), + }, + ) + ) + + if notereader_events > 0: + results.append( + ValidationResult( + passed=True, + message="Event system working - events fired during normal operations โœ“", + level=ValidationLevel.SUCCESS, + ) + ) + else: + results.append( + ValidationResult( + passed=False, + message="No NoteReader events captured during demos", + level=ValidationLevel.WARNING, + ) + ) + + return results + + +def test_event_system(): + """Validate that the event system worked during normal operations""" + print_section("Validating Event System", "๐Ÿ“ก") + + print_step("Checking events captured during demos...") + + try: + for result in check_captured_events(): + result.print() + except Exception as e: + ValidationResult( + passed=False, + message=f"Error checking captured events: {str(e)}", + level=ValidationLevel.ERROR, + ).print() + + +def run_automated_validation(): + """Run all automated validation checks""" + print_section("๐Ÿ” Automated Validation Suite", "๐Ÿงช") + print("Running automated checks to verify system functionality...") + + # Give the system a moment to settle after demos + sleep(2) + + # Run all validation checks + validate_fhir_endpoints() + validate_output_files() + test_event_system() + + print_section("Validation Complete", "โœ…") + print("All automated checks completed. Review results above for any issues.") + + +def main(): + """Main demo orchestrator""" + print_section("๐Ÿฅ HealthChain Complete Sandbox Demo", "๐ŸŽฏ") + print( + "Demonstrating the full HealthChain ecosystem with AI-powered healthcare workflows" + ) + + try: + # Validate prerequisites first + validate_prerequisites() + + # Setup + setup_environment() + setup_event_handlers() + + # Create components + coding_pipeline, summarization_pipeline = create_pipelines() + note_service, cds_service, fhir_gateway = create_services( + coding_pipeline, summarization_pipeline + ) + app = create_app(note_service, cds_service, fhir_gateway) + notereader_sandbox, cds_sandbox = create_sandboxes() + + # Run demo + server_thread = start_server(app) + run_sandbox_demos(notereader_sandbox, cds_sandbox) + + # Run automated validation + run_automated_validation() + + print_section("โœจ Demo Complete", "๐ŸŽ‰") + print("All HealthChain components demonstrated and validated successfully!") + print("Press Ctrl+C to stop the server") + + # Keep the server running + try: + server_thread.join() + except KeyboardInterrupt: + print("\n๐Ÿ‘‹ Shutting down gracefully...") + + except Exception as e: + print(f"โŒ Demo failed: {str(e)}") + raise + + +if __name__ == "__main__": + main()