Python SDK for Eka Care APIs
Project description
Eka Care SDK for Python
A comprehensive Python SDK for interacting with the Eka Care APIs.
Installation
pip install ekacare
Features
The SDK provides easy access to the following Eka Care APIs:
- Authentication
- Records Management (upload, list, update, delete)
- ABDM Connect (profile, consents, care contexts)
- Appointment Management
- Doctor & Clinic Management
- Patient Management
- Webhooks (register, manage, verify)
- Vitals (update patient vitals)
- Medical Document Parsing
- Assessment APIs
- Notifications
- Privacy Management
Quick Start
Authentication
from ekacare import EkaCareClient
# Initialize with client credentials
client = EkaCareClient(
client_id="your_client_id",
client_secret="your_client_secret"
)
# Or initialize with an existing access token
client = EkaCareClient(
client_id="your_client_id",
client_secret="your_client_secret",
access_token="your_access_token"
)
# Manually get an access token
token_response = client.auth.login()
access_token = token_response["access_token"]
Records Management
# Upload a document
response = client.records.upload_document(
file_path="/path/to/lab_report.pdf",
document_type="lr", # lab report
tags=["covid", "test"],
title="COVID-19 Test Report"
)
document_id = response["document_id"]
# List documents
documents = client.records.list_documents()
for doc in documents.get("items", []):
print(doc["record"]["item"]["document_id"])
# Get a specific document
document = client.records.get_document(document_id)
# Update a document
client.records.update_document(
document_id=document_id,
document_type="ps", # prescription
tags=["medication"]
)
# Delete a document
client.records.delete_document(document_id)
# Retrieve health records in FHIR format
records = client.records.retrieve_health_records(
identifier="care_context_123",
hip_id="hip123",
health_id="user@abdm"
)
Vitals Management
# Create vital records
heart_rate = client.vitals.create_heart_rate_vital(
value=75,
measured_at="2023-01-01T12:00:00"
)
blood_glucose = client.vitals.create_blood_glucose_vital(
value=120,
measured_at="2023-01-01T08:00:00",
glucose_type="fasting"
)
blood_oxygen = client.vitals.create_blood_oxygen_vital(
value=98,
measured_at="2023-01-01T12:30:00"
)
blood_pressure = client.vitals.create_blood_pressure_vital(
systolic=120,
diastolic=80,
measured_at="2023-01-01T14:45:00"
)
# Update patient vitals
client.vitals.update_vitals(
txn_id="transaction_id",
vitals_data=[heart_rate, blood_glucose, blood_oxygen] + blood_pressure
)
Webhooks
# Register a webhook
response = client.webhooks.register_webhook(
endpoint="https://your-app.com/webhook",
scopes=["appointment.created", "prescription.created"],
signing_key="your_secret_key"
)
webhook_id = response["id"]
# Get all webhooks
webhooks = client.webhooks.get_webhooks()
# Update a webhook's signing key
client.webhooks.update_webhook(
webhook_id=webhook_id,
signing_key="new_secret_key"
)
# Delete a webhook
client.webhooks.delete_webhook(webhook_id)
# Verify a webhook signature
is_valid = client.webhooks.verify_signature(
payload=webhook_payload,
signature=webhook_signature,
secret_key="your_secret_key"
)
Appointment Management
# Get Appointment Details
response = client.appointments.get_appointment_details("YOUR_APPOINTMENT_ID")
Doctor & Clinic Management
# Get Clinic Details
response = client.clinic_doctor.get_clinic_details("YOUR_CLINIC_ID")
# Get Doctor Details
response = client.clinic_doctor.get_doctor_details("YOUR_DOCTOR_ID")
Appointment Management
# Get Appointment Details
response = client.appointments.get_appointment_details("YOUR_APPOINTMENT_ID")
Patient Details
# Get Patient Details
response = client.patient.get_patient("YOUR_PATIENT_ID")
ABDM Profile Management
# Get ABHA profile
profile = client.abdm_profile.get_profile()
print(profile["abha_address"])
# Update profile
client.abdm_profile.update_profile({
"address": "123 Main St",
"pincode": "110001"
})
# Get ABHA card
card_image = client.abdm_profile.get_abha_card()
with open("abha_card.png", "wb") as f:
f.write(card_image)
# Get QR code data
qr_data = client.abdm_profile.get_abha_qr_code()
# Initiate KYC
response = client.abdm_profile.initiate_kyc(
method="abha-number",
identifier="1234-5678-9012"
)
txn_id = response["txn_id"]
# Verify KYC OTP
client.abdm_profile.verify_kyc_otp(
txn_id=txn_id,
otp="123456"
)
Error Handling
The SDK uses custom exceptions to handle errors:
from ekacare import EkaCareClient, EkaCareAPIError, EkaCareAuthError
client = EkaCareClient(
client_id="your_client_id",
client_secret="your_client_secret"
)
try:
documents = client.records.list_documents()
except EkaCareAuthError as e:
print(f"Authentication error: {e}")
except EkaCareAPIError as e:
print(f"API error: {e}")
License
This SDK is distributed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ekacare-0.0.3.tar.gz
(16.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ekacare-0.0.3-py3-none-any.whl
(19.8 kB
view details)
File details
Details for the file ekacare-0.0.3.tar.gz.
File metadata
- Download URL: ekacare-0.0.3.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b7340e49378bf26f4d53f10579fbdb43cea7b093eb4e3466f41af8a067cacc6
|
|
| MD5 |
3b10bf79a56a88cc0180411565356173
|
|
| BLAKE2b-256 |
a5e69986d68b9f113a5ec0c113256a86fc7ae6c2c4113fdcb81a47fb74f50f84
|
File details
Details for the file ekacare-0.0.3-py3-none-any.whl.
File metadata
- Download URL: ekacare-0.0.3-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce068e7efde9a1dc6f43dc4598577d1c83f2148238b1aa86bfb0a6de6870d058
|
|
| MD5 |
a1bc75e73d0b49c666f91c0d2b3ce856
|
|
| BLAKE2b-256 |
96bce730afcc0e60673a3ed1ad2ed7230331450f38a6697e76c594ed6cb32724
|