Skip to main content

Prescription Validation Integration

Integrate Oneliac's prescription validation service to securely validate prescriptions with drug interaction checking, eligibility verification, and pharmacy confirmation.

Overview

The prescription validator performs comprehensive validation:

  • Drug interaction analysis
  • Patient eligibility verification
  • Cross-chain pharmacy confirmation via LayerZero
  • Zero-knowledge proof generation

API Endpoint

POST /api/v1/prescriptions/validate

Request

{
"patient_id": "patient_hash_abc123",
"provider_npi": "1234567890",
"medications": [
{
"ndc_code": "0093-7651-56",
"name": "Metformin",
"strength": "500mg",
"quantity": 90,
"days_supply": 30,
"refills": 11
}
],
"indication": "Type 2 Diabetes",
"pharmacy_npi": "1111111111"
}

Response

{
"validation_status": "approved",
"prescription_id": "rx_abc123",
"checks": {
"drug_interactions": {
"status": "safe",
"interactions_found": 0,
"warnings": []
},
"eligibility": {
"status": "eligible",
"coverage": 90,
"requires_prior_auth": false
},
"pharmacy_confirmation": {
"status": "confirmed",
"estimated_availability": "2025-01-02",
"cross_chain_verified": true
}
},
"zk_proof": {
"proof_data": "0x...",
"public_inputs": ["0x...", "0x..."],
"blockchain_tx": "5dXf..."
}
}

Drug Interaction Database

Oneliac includes an extensive drug interaction database:

from oneliac.prescriptions import DrugInteractionChecker

checker = DrugInteractionChecker()

interactions = checker.check_patient_interactions(
patient_id="patient_abc123",
new_medication="metformin_500mg",
severity_filter="moderate" # minor, moderate, severe
)

for interaction in interactions:
print(f"{interaction.drug1} + {interaction.drug2}: {interaction.severity}")

Implementation Example

from oneliac.prescriptions import PrescriptionValidator

validator = PrescriptionValidator(
api_key="sk_live_...",
network="mainnet"
)

prescription = {
"patient_id": "patient_abc123",
"medications": [
{
"ndc_code": "0093-7651-56",
"name": "Metformin",
"strength": "500mg"
}
],
"provider_npi": "1234567890",
"pharmacy_npi": "1111111111"
}

result = validator.validate(prescription)

if result.validation_status == "approved":
print(f"Prescription approved: {result.prescription_id}")
print(f"Pharmacy can fill on: {result.checks['pharmacy_confirmation']['estimated_availability']}")
elif result.validation_status == "requires_review":
print("Manual review required")
else:
print(f"Validation failed: {result.validation_status}")

LayerZero Cross-Chain Verification

Pharmacy confirmation across multiple blockchains:

from oneliac.prescriptions import CrossChainPharmacyVerifier

verifier = CrossChainPharmacyVerifier()

verification = verifier.verify_pharmacy(
pharmacy_npi="1111111111",
pharmacy_address="0x...",
source_chain="solana",
dest_chains=["ethereum", "polygon"]
)

if verification.confirmed_on_all_chains:
print("Pharmacy verified across all chains")

Error Codes

CodeDescription
INTERACTION_FOUNDDrug-drug interaction detected
CONTRAINDICATEDMedication contraindicated for patient
INELIGIBLEPatient ineligible for medication
PHARMACY_ERRORPharmacy verification failed
PROOF_FAILEDZK proof generation failed

Callbacks and Webhooks

Set up webhooks for prescription events:

validator.register_webhook(
event="prescription.approved",
url="https://your-system.com/webhooks/prescription"
)

Batch Validation

Validate multiple prescriptions efficiently:

prescriptions = [
{"patient_id": "...", "medications": [...]},
{"patient_id": "...", "medications": [...]},
]

results = validator.validate_batch(prescriptions)

Caching and Performance

Enable caching for faster validation:

result = validator.validate(
prescription,
cache=True,
cache_ttl=3600 # 1 hour
)

Compliance

  • NCPDP compliant
  • HIPAA secure
  • DEA controlled substance verification
  • State pharmacy board regulations