Skip to content

Patient 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-patient-registry
  • CI/CD Status: Check pipeline dashboard

Overview

The Patient Registry serves as the Master Patient Index (MPI) for the National Digital Prescription platform, maintaining authoritative patient demographic data.

Purpose

  • Store and manage patient master data
  • Provide unique patient identification
  • Validate patient national IDs
  • Manage patient demographics
  • Handle patient consent
  • Maintain patient allergies and medical history
  • Provide patient search and matching

Key Features

1. Patient Registration

  • Register new patients
  • Validate national ID uniqueness
  • Capture demographics
  • Record allergies
  • Manage insurance information

2. Patient Matching

  • Search by national ID
  • Search by name, DOB
  • Fuzzy matching
  • Duplicate detection
  • Patient merging

3. Patient Data Management

  • Update demographics
  • Manage addresses
  • Update contact information
  • Record allergies
  • Track chronic conditions

Data Model

typescript
interface Patient {
  id: string; // System UUID
  nationalId: string; // Egyptian National ID (14 digits)

  // Demographics
  firstName: string;
  middleName: string;
  lastName: string;
  motherName: string;
  dateOfBirth: Date;
  gender: "MALE" | "FEMALE";
  maritalStatus: string;

  // Contact
  phone: string;
  alternatePhone: string;
  email: string;

  // Address
  governorate: string;
  city: string;
  district: string;
  street: string;
  buildingNumber: string;

  // Medical
  bloodType: string;
  allergies: Allergy[];
  chronicConditions: string[];

  // Insurance
  insuranceProvider: string;
  insuranceNumber: string;
  insuranceStatus: "ACTIVE" | "INACTIVE";

  // Consent
  consentToShare: boolean;
  consentDate: Date;

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

API Endpoints

POST   /api/v1/patients           # Register patient
GET    /api/v1/patients/:id       # Get patient
GET    /api/v1/patients/national/:nationalId  # Get by national ID
PUT    /api/v1/patients/:id       # Update patient
GET    /api/v1/patients/search    # Search patients