# 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
Raw data
{
"_id": null,
"home_page": "https://github.com/dejinskunkworks/zimabus-sdk",
"name": "zmbus-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "zimasa, zmbus, sdk",
"author": "Shikoli",
"author_email": "shikoli@turnkeyafrica.com",
"download_url": "https://files.pythonhosted.org/packages/9f/b7/ce2e22b465e6d135aa38faa734ba5df1674b14eccf0f93ea2a50b01c0fbc/zmbus_sdk-0.1.8.tar.gz",
"platform": null,
"description": "# zmbus-sdk\n\nA 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.\n\n## Installation\n\nYou can install the package directly from PyPI:\n\n```bash\npip install zmbus-sdk\n```\n\nFor development installation:\n\n```bash\n# Clone the repository\ngit clone https://github.com/shikoli-makatiani/zimabus-sdk.git\ncd zimabus-sdk\n\n# Install with Poetry\npoetry install\n```\n\n## Quick Start\n\n```python\nfrom zimasabus_sdk import zmsystem\nfrom zimasabus_sdk.zimasa import AppointmentService, FollowUpService\n\n# Initialize the client with your credentials\nclient = zmsystem.ZMSystem(\n api_key=\"your_api_key\",\n base_url=\"https://api.zimasa.com/v1\"\n)\n\n# Example: Get patient information\npatient = client.get_patient(patient_id=\"12345\")\nprint(f\"Patient Name: {patient.full_name}\")\n\n# Example: Submit medical records\nresponse = client.submit_medical_record(\n patient_id=\"12345\",\n record_data={\n \"diagnosis\": \"Hypertension\",\n \"treatment\": \"Prescribed medication\",\n \"notes\": \"Follow-up in 2 weeks\"\n }\n)\n\n# Example: Using the AppointmentService\nappointment_service = AppointmentService()\nservice_types = appointment_service.get_appointment_service_types()\nprint(f\"Available service types: {len(service_types.content)}\")\n\n# Example: Using the FollowUpService\nfollowup_service = FollowUpService()\nprovider_id = followup_service.get_provider_user_id(\"user_entity_id\")\nappointments = followup_service.get_appointments({\"providerUserId\": provider_id})\nprint(f\"Found {len(appointments.content)} appointments\")\n```\n\n## Features\n\n- **Secure Authentication**: Easy API authentication with your Zimasa credentials\n- **Patient Management**: Create, retrieve, update, and manage patient records\n- **Medical Data**: Access and submit medical records, test results, and diagnoses\n- **Appointment Scheduling**: Manage healthcare appointments and schedules\n- **Appointment Follow-ups**: Manage follow-ups for healthcare appointments\n- **Data Validation**: Built-in validation for all API requests using Pydantic\n- **Error Handling**: Comprehensive error handling with detailed error messages\n\n## Modules\n\n### ZmSystem\n\nCore module for authentication and base API interactions.\n\n### AppointmentService\n\nManage healthcare appointments, including:\n- Fetching service types and categories\n- Finding available appointment slots\n- Booking appointments\n\n### FollowUpService (New in v0.1.5)\n\nManage appointment follow-ups, including:\n- Retrieving provider user IDs\n- Fetching appointments for a provider\n- Confirming or rejecting appointments\n- Checking available slots for rescheduling\n- Rescheduling appointments\n- Extracting appointment details for follow-up analysis\n- Scheduling follow-up appointments\n- Sending follow-up notifications\n\n## Documentation\n\nFor detailed documentation and API reference, visit our [documentation site](https://github.com/shikoli-makatiani/zimabus-sdk/docs).\n\n## Development\n\nThis project uses Poetry for dependency management.\n\n```bash\n# Install dependencies\npoetry install\n\n# Run tests\npoetry run pytest\n\n# Format code\npoetry run black zimasabus_sdk\npoetry run isort zimasabus_sdk\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\nFor support, please contact [shikoli@turnkeyafrica.com](mailto:shikoli@turnkeyafrica.com) or open an issue on GitHub.\n\n## Changelog\n\n### v0.1.5\n- Added new `FollowUpService` for managing appointment follow-ups\n- Improved error handling for API limitations\n- Added comprehensive test scripts\n\n### v0.1.4\n- Added `AppointmentService` for managing healthcare appointments\n- Improved documentation and examples\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "SDK for interacting with Zimasa medical systems",
"version": "0.1.8",
"project_urls": {
"Homepage": "https://github.com/dejinskunkworks/zimabus-sdk",
"Repository": "https://github.com/dejinskunkworks/zimabus-sdk"
},
"split_keywords": [
"zimasa",
" zmbus",
" sdk"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "57b10372f6d1a209172c8420a49d6b84367685f097ac40ed454dee4dbe636219",
"md5": "e920cf3b5806e3d2f5546f9ce87f384a",
"sha256": "43102139d28acda529a7cf3be6cf2d4bea8604417a7d29ed211413f18d12c8e7"
},
"downloads": -1,
"filename": "zmbus_sdk-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e920cf3b5806e3d2f5546f9ce87f384a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 23569,
"upload_time": "2025-03-10T19:43:48",
"upload_time_iso_8601": "2025-03-10T19:43:48.847022Z",
"url": "https://files.pythonhosted.org/packages/57/b1/0372f6d1a209172c8420a49d6b84367685f097ac40ed454dee4dbe636219/zmbus_sdk-0.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9fb7ce2e22b465e6d135aa38faa734ba5df1674b14eccf0f93ea2a50b01c0fbc",
"md5": "f8f9ceb2af4615e83c40e89368606683",
"sha256": "679017b476aa238e25357eeac0bd6952107fe8a432b7922205516b00ab633b4e"
},
"downloads": -1,
"filename": "zmbus_sdk-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "f8f9ceb2af4615e83c40e89368606683",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 21254,
"upload_time": "2025-03-10T19:43:50",
"upload_time_iso_8601": "2025-03-10T19:43:50.359702Z",
"url": "https://files.pythonhosted.org/packages/9f/b7/ce2e22b465e6d135aa38faa734ba5df1674b14eccf0f93ea2a50b01c0fbc/zmbus_sdk-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-10 19:43:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dejinskunkworks",
"github_project": "zimabus-sdk",
"github_not_found": true,
"lcname": "zmbus-sdk"
}