Skip to content

SafeHealthAI - ✚ The platform that empowers the doctor and protects the patient ✚

License

Notifications You must be signed in to change notification settings

InnovationChallengeGrupo5/SafeHealthAI

Repository files navigation

Logo

SafeHealthAI

Web application with Virtual Medical Assistant, Predictive Analysis and Dynamic Data Protection

Virtual assistant that facilitates the management of medical information, with a focus on the protection of sensitive data (PII and PHI), predictive analysis of diagnoses and interactive dashboard for the visualization of key data.

Open in GitHub Codespaces

Screenshots

Policy Screenshot Home Screenshot Security Screenshot Analitics Screenshot Chatbot Screenshot

Tech Stack

This application utilizes the following Azure resources:

Architecture Diagram

Here's a high level architecture diagram that illustrates these components. These are all contained within a single resource group

Architecture Diagram

Demo Video

The following video shows the user interface.

Watch the video

Deploy to Azure

The easiest way to deploy this app is using the Azure Developer CLI. If you open this repo in GitHub CodeSpaces the AZD tooling is already preinstalled.

To provision and deploy:

  1. Open a new terminal and do the following from root folder:
azd up

Run Locally

Pre-reqs

  1. Python 3.8+ required
  2. Azure Functions Core Tools
  3. Azurite
  4. Once you have your Azure subscription, run the following in a new terminal window to create all the AI Language and other resources needed:
azd provision

Take note of the value of TEXT_ANALYTICS_ENDPOINT which can be found in ./.azure/<env name from azd provision>/.env. It will look something like:

TEXT_ANALYTICS_ENDPOINT="https://<unique string>.cognitiveservices.azure.com/"

Alternatively you can create a Language resource in the Azure portal to get your key and endpoint. After it deploys, click Go to resource and view the Endpoint value.

  1. Azure Storage Explorer or storage explorer features of Azure Portal
  2. Add this local.settings.json file to the ./sensitive_data_processor folder to simplify local development. Optionally fill in the AI_URL and AI_SECRET values per step 4. This file will be gitignored to protect secrets from committing to your repo.
{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "python",
        "TEXT_ANALYTICS_ENDPOINT": "<insert from step 4>"
    }
}

Using VS Code

  1. Open the root folder in VS Code:
code .
  1. Ensure local.settings.json exists already using steps above
  2. Run and Debug by pressing F5
  3. Open Storage Explorer, Storage Accounts -> Emulator -> Blob Containers -> and create a container unprocessed-text if it does not already exists
  4. Copy any .txt document file with text into the unprocessed-text container

You will see AI analysis happen in the Terminal standard out. The analysis will be saved in a .txt file in the processed-text blob container.

Using Functions Core Tools CLI

  1. Ensure local.settings.json exists already using steps above
  2. Open a new terminal and do the following:
cd sensitive_data_processor
func start
  1. Open Storage Explorer, Storage Accounts -> Emulator -> Blob Containers -> and create a container test-samples-trigger if it does not already exists
  2. Copy any .txt document file with text into the test-samples-trigger container

You will see AI analysis happen in the Terminal standard out. The analysis will be saved in a .txt file in the test-samples-output blob container.

Contributing

Contributions are always welcome!

See CONTRIBUTING.md for ways to get started.

Please adhere to this project's code of conduct.

License

MIT

Authors