Skip to content

HPR Registry (Healthcare Provider Registry)

Pipeline-Managed Service

This service is deployed and managed by its CI/CD pipeline.

For current deployment status, configurations, and code:

  • Repository: https://repo.local/healthflow/ndp-hpr-registry
  • CI/CD Status: Check pipeline dashboard

Overview

The Healthcare Provider Registry (HPR) maintains authoritative data for all healthcare providers including doctors, nurses, and facilities authorized to prescribe or dispense medications.

Purpose

  • Store healthcare provider credentials
  • Validate prescriber authorization
  • Maintain facility information
  • Track provider specialties
  • Manage provider licensing
  • Control prescribing privileges
  • Provide provider lookup

Key Features

1. Provider Management

  • Register new providers
  • Validate medical licenses
  • Track specialties and qualifications
  • Manage prescribing authority
  • License expiry tracking
  • Suspension/revocation handling

2. Facility Management

  • Register healthcare facilities
  • Track accreditation status
  • Manage facility types
  • Link providers to facilities
  • Facility authorization levels

3. Authorization Control

  • Check prescribing authority
  • Validate controlled substance authorization
  • Verify facility accreditation
  • Specialty-based authorization

Data Model

typescript
interface HealthcareProvider {
  id: string;
  providerType: "DOCTOR" | "NURSE" | "PHARMACIST";

  // Personal Info
  firstName: string;
  lastName: string;
  nationalId: string;

  // Professional
  licenseNumber: string;
  licenseIssueDate: Date;
  licenseExpiryDate: Date;
  licenseStatus: "ACTIVE" | "SUSPENDED" | "REVOKED";

  // Qualifications
  specialty: string;
  subSpecialty: string;
  qualifications: string[];

  // Authorization
  canPrescribe: boolean;
  canPrescribeControlled: boolean;
  prescribingCategories: string[];

  // Facility Association
  facilities: FacilityAssociation[];

  // Metadata
  registeredAt: Date;
  lastVerified: Date;
  status: "ACTIVE" | "INACTIVE";
}

interface Facility {
  id: string;
  facilityName: string;
  facilityType: "HOSPITAL" | "CLINIC" | "PHARMACY";

  // Location
  governorate: string;
  city: string;
  address: string;

  // Accreditation
  accreditationNumber: string;
  accreditationStatus: "ACCREDITED" | "PENDING" | "SUSPENDED";
  accreditationExpiry: Date;

  // Authorization
  servicesProvided: string[];
  canDispense: boolean;

  // Metadata
  registeredAt: Date;
  status: "ACTIVE" | "INACTIVE";
}

API Endpoints

GET /api/v1/providers/:id
GET /api/v1/providers/license/:licenseNumber
GET /api/v1/providers/search
GET /api/v1/providers/:id/prescribing-authority
GET /api/v1/facilities/:id
GET /api/v1/facilities/search