zmbus-sdk 0.1.8
SDK for interacting with Zimasa medical systems
License: MIT
Requires Python: <4.0,>=3.8
Keywords: zimasa, zmbus, sdk

# zmbus-sdk

A Python SDK for interacting with Zimasa medical systems. This library simplifies integration with Zimasa's healthcare APIs, allowing developers to easily access and manage medical data, patient records, and healthcare services.

## Installation

You can install the package directly from PyPI:

```bash
pip install zmbus-sdk
```

For development installation:

```bash
# Clone the repository
git clone https://github.com/shikoli-makatiani/zimabus-sdk.git
cd zimabus-sdk

# Install with Poetry
poetry install
```

## Quick Start

```python
from zimasabus_sdk import zmsystem
from zimasabus_sdk.zimasa import AppointmentService, FollowUpService

# Initialize the client with your credentials
client = zmsystem.ZMSystem(
    api_key="your_api_key",
    base_url="https://api.zimasa.com/v1"
)

# Example: Get patient information
patient = client.get_patient(patient_id="12345")
print(f"Patient Name: {patient.full_name}")

# Example: Submit medical records
response = client.submit_medical_record(
    patient_id="12345",
    record_data={
        "diagnosis": "Hypertension",
        "treatment": "Prescribed medication",
        "notes": "Follow-up in 2 weeks"
    }
)

# Example: Using the AppointmentService
appointment_service = AppointmentService()
service_types = appointment_service.get_appointment_service_types()
print(f"Available service types: {len(service_types.content)}")

# Example: Using the FollowUpService
followup_service = FollowUpService()
provider_id = followup_service.get_provider_user_id("user_entity_id")
appointments = followup_service.get_appointments({"providerUserId": provider_id})
print(f"Found {len(appointments.content)} appointments")
```

## Features

- **Secure Authentication**: Easy API authentication with your Zimasa credentials
- **Patient Management**: Create, retrieve, update, and manage patient records
- **Medical Data**: Access and submit medical records, test results, and diagnoses
- **Appointment Scheduling**: Manage healthcare appointments and schedules
- **Appointment Follow-ups**: Manage follow-ups for healthcare appointments
- **Data Validation**: Built-in validation for all API requests using Pydantic
- **Error Handling**: Comprehensive error handling with detailed error messages

## Modules

### ZmSystem

Core module for authentication and base API interactions.

### AppointmentService

Manage healthcare appointments, including:
- Fetching service types and categories
- Finding available appointment slots
- Booking appointments

### FollowUpService (New in v0.1.5)

Manage appointment follow-ups, including:
- Retrieving provider user IDs
- Fetching appointments for a provider
- Confirming or rejecting appointments
- Checking available slots for rescheduling
- Rescheduling appointments
- Extracting appointment details for follow-up analysis
- Scheduling follow-up appointments
- Sending follow-up notifications

## Documentation

For detailed documentation and API reference, visit our [documentation site](https://github.com/shikoli-makatiani/zimabus-sdk/docs).

## Development

This project uses Poetry for dependency management.

```bash
# Install dependencies
poetry install

# Run tests
poetry run pytest

# Format code
poetry run black zimasabus_sdk
poetry run isort zimasabus_sdk
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

For support, please contact [shikoli@turnkeyafrica.com](mailto:shikoli@turnkeyafrica.com) or open an issue on GitHub.

## Changelog

### v0.1.5
- Added new `FollowUpService` for managing appointment follow-ups
- Improved error handling for API limitations
- Added comprehensive test scripts

### v0.1.4
- Added `AppointmentService` for managing healthcare appointments
- Improved documentation and examples