Skip to content

sandeepsalwan1/MedScribe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MEDSCRIBE

Empowering Healthcare with Seamless Documentation Automation.

MIT License last-commit repo-top-language repo-language-count


πŸ”— Table of Contents


πŸ“ Overview

MedScribe is an innovative open-source project designed to streamline healthcare documentation by automating medical form filling and coding. Utilizing advanced speech recognition and machine learning technologies, MedScribe accurately transcribes spoken medical notes and extracts critical data, enhancing efficiency for healthcare professionals. This solution is ideal for medical facilities looking to reduce administrative burdens and improve data accuracy in patient care documentation.


πŸ‘Ύ Features

Feature Summary
βš™οΈ Architecture
  • Utilizes a microservices architecture with components like MedicalCopilot/server/main.py for backend API processing.
  • Integrates with external APIs such as AWS Comprehend Medical and Google Web Speech API.
  • Employs Docker for environment management, as seen in MedicalCopilot/server/Dockerfile.
πŸ”© Code Quality
  • Adheres to modern Python practices with configuration files like pyproject.toml for dependency management.
  • Uses pytest for testing, ensuring code reliability.
  • Structured and modular codebase facilitating maintenance and scalability.
πŸ“„ Documentation
  • Documentation includes installation and usage commands for pip, poetry, and docker.
  • Code comments and README files provide guidance on setup and operation.
  • Documentation is version-controlled within the repository, ensuring it evolves with the codebase.
πŸ”Œ Integrations
  • Integrates with multiple external services like AWS, Google APIs, and Deepgram via MedicalCopilot/multionapi.py and MedicalCopilot/server/voice.py.
  • Supports HTTP communication through libraries like aiohttp and requests.
  • Capable of handling complex data processing and machine learning tasks with scikit-learn and numpy.
🧩 Modularity
  • Highly modular design with separate components for API handling, data processing, and service integration.
  • Scripts like voice_streaming.py are designed for specific tasks, enhancing modularity.
  • Dependency management handled via poetry, isolating project environments effectively.
πŸ§ͺ Testing
  • Uses pytest for comprehensive testing, as specified in test commands.
  • Test configurations are easily manageable through dependency files like pyproject.toml.
  • Continuous integration likely supported though not explicitly mentioned in the provided details.
⚑️ Performance
  • Optimized for performance with the use of efficient libraries like numpy and scipy.
  • Performance critical operations are handled through specialized APIs and services.
  • Asynchronous programming support with aiohttp for improved scalability and efficiency.
πŸ›‘οΈ Security
  • Utilizes grpcio for secure communication between services.
  • Dependencies like google-auth ensure secure authentication mechanisms.
  • Security practices likely include secure handling of API keys and sensitive data, though specifics are not detailed.

πŸ“ Project Structure

└── MedScribe/
    β”œβ”€β”€ MedicalCopilot
    β”‚   β”œβ”€β”€ multionapi.py
    β”‚   β”œβ”€β”€ scripts
    β”‚   └── server
    β”œβ”€β”€ README.md
    └── requirements.txt

πŸ“‚ Project Index

MEDSCRIBE/
__root__
requirements.txt - Defines the specific versions of libraries and dependencies required for the project, ensuring compatibility and stability across different development environments
- It includes libraries for HTTP communication, data manipulation, machine learning, and visualization, crucial for the project's functionality and performance.
MedicalCopilot
multionapi.py - Integrates with the MultiOn client and agentops services to automate form filling on a healthcare platform
- It initializes a session without auto-start, sets specific tags, and processes a command to populate a mental health support plan form with predefined data, enhancing operational efficiency in medical documentation.
scripts
pyproject.toml - Manages dependencies and settings for the MedicalCopilot's "amina" script, ensuring compatibility and streamlined setup
- It specifies Python version, essential libraries like Click and Requests, and additional script-specific dependencies such as the Deepgram SDK and PyAudio, facilitating the script's integration and functionality within the broader project architecture.
voice_streaming.py - Enables real-time transcription of audio through the Deepgram API, collecting spoken sentences into manageable chunks
- It integrates signal handling for graceful shutdowns and communicates with a local server to process transcribed text
- The script is configurable via environment variables and command-line options, facilitating batch processing adjustments and API key management.
server
voice.py - Voice.py serves as the speech recognition module within the MedicalCopilot's server architecture, enabling the system to transcribe spoken commands from users
- It utilizes the Google Web Speech API to convert speech from the microphone input into text, enhancing user interaction by processing verbal inputs effectively.
main.py - MedicalCopilot's server/main.py serves as the backend API for processing medical text
- It utilizes AWS Comprehend Medical to extract ICD-10 codes and symptoms from text inputs, facilitating automated medical coding and symptom identification
- Additionally, it integrates with the MultiOn client for specific automated actions based on the medical findings.
pyproject.toml - Defines the configuration and dependencies for the server component of the MedicalCopilot project
- It specifies the server's version, dependencies on libraries like FastAPI for web framework, Boto3 for AWS integration, and Pydantic for data validation, ensuring the server can handle web requests and interact with other services efficiently.
Dockerfile - Establishes the environment for the MedicalCopilot server by setting up a Docker container with Python and necessary dependencies managed via Poetry
- It configures the server to run a FastAPI application on port 8000, ensuring all project dependencies are correctly installed and the application is ready for deployment and execution.

πŸš€ Getting Started

β˜‘οΈ Prerequisites

Before getting started with MedScribe, ensure your runtime environment meets the following requirements:

  • Programming Language: Python
  • Package Manager: Pip, Poetry
  • Container Runtime: Docker

βš™οΈ Installation

Install MedScribe using one of the following methods:

Build from source:

  1. Clone the MedScribe repository:
❯ git clone https://github.com/sandeepsalwan1/MedScribe
  1. Navigate to the project directory:
❯ cd MedScribe
  1. Install the project dependencies:

Using pip Β 

❯ pip install -r requirements.txt

Using poetry Β 

❯ poetry install

Using docker Β 

❯ docker build -t sandeepsalwan1/MedScribe .

πŸ€– Usage

Run MedScribe using the following command: Using pip Β 

❯ python {entrypoint}

Using poetry Β 

❯ poetry run python {entrypoint}

Using docker Β 

❯ docker run -it {image_name}

πŸ§ͺ Testing

Run the test suite using the following command: Using pip Β 

❯ pytest

Using poetry Β 

❯ poetry run pytest

πŸ“Œ Project Roadmap

  • Task 1: Complete Backend and launch.
  • Task 2: Integrate more with Friend Ai wearable.
  • Task 3: Target sales.

πŸ”° Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/sandeepsalwan1/MedScribe
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


πŸŽ— License

This project is released under the MIT License. For more details, please refer to the LICENSE file.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published