Physician Portal & Mobile App KPIs & Reporting

Physician Portal & Mobile App KPIs & Reporting

KPI Summary

KPI ID KPI Name Formula (Conceptual) Target Data Source Frequency
KPI-PHYSICIANPORTAL-001 Physician Portal Adoption Rate (Physicians with active portal account / Active medical staff) × 100 ≥ 80% physician_portal_accounts, providers Monthly
KPI-PHYSICIANPORTAL-002 Mobile App Monthly Active Users (MAU) Count of distinct accounts with ≥1 mobile login in last 30 days Growing month-over-month physician_portal_sessions Daily (rolling)
KPI-PHYSICIANPORTAL-003 Critical Result Acknowledgment via Portal (Critical results acknowledged via portal / Total critical acknowledgments) × 100 ≥ 40% physician_inbox_items, lab_results, radiology_reports, critical notification logs Monthly
KPI-PHYSICIANPORTAL-004 Mobile Order Entry Rate (Orders entered via mobile portal / Total orders) × 100 ≥ 15% cpoe_orders (external, with order_source) Monthly
KPI-PHYSICIANPORTAL-005 Patient Message Response Time Average (response_datetime − message_received_datetime) ≤ 24 hours portal_messages, physician_inbox_items Daily / Weekly
KPI-PHYSICIANPORTAL-006 Handoff Completion Rate (Shift transitions with electronic handoff / Total shift transitions) × 100 ≥ 90% handoff_communications, scheduling/on-call tables Monthly
KPI-PHYSICIANPORTAL-007 Task Completion Rate (Tasks completed within due date / Total tasks) × 100 ≥ 85% clinical_task_items, clinical_task_lists Weekly / Monthly
KPI-PHYSICIANPORTAL-008 Mobile Documentation Rate (Notes created via mobile / Total clinical notes) × 100 ≥ 10% clinical_notes (external, with source), physician_portal_sessions Monthly
KPI-PHYSICIANPORTAL-009 Average Session Duration Average (logout_datetime − login_datetime) Monitored (shorter = efficient) physician_portal_sessions Daily / Monthly

Note: External tables such as cpoe_orders, clinical_notes, lab_results, radiology_reports, portal_messages are defined in their owning modules (see respective 03-data-specifications files).


KPI Definitions

KPI-PHYSICIANPORTAL-001: Physician Portal Adoption Rate

Definition

Measures the percentage of active medical staff who have an active, enabled physician portal account. Indicates overall adoption of the portal/mobile app across the medical staff, which is critical for realizing benefits of paperless workflows and remote access.

Calculation Formula

Assumptions:

  • Active medical staff = providers with provider_status = 'active' and provider_type IN ('physician','consultant','resident','fellow').
  • Active portal account = physician_portal_accounts.is_active = TRUE and activation_status = 'activated'.
SQL
SELECT
    CAST(COUNT(DISTINCT ppa.provider_id) AS FLOAT) * 100.0
    / NULLIF(COUNT(DISTINCT p.provider_id), 0) AS physician_portal_adoption_rate_pct
FROM providers p
LEFT JOIN physician_portal_accounts ppa
    ON ppa.provider_id = p.provider_id
    AND ppa.is_active = TRUE
    AND ppa.activation_status = 'activated'
WHERE p.provider_status = 'active'
  AND p.provider_type IN ('physician','consultant','resident','fellow')
  AND p.emirate IN ('Abu Dhabi','Dubai','Sharjah','Ajman','Umm Al Quwain','Ras Al Khaimah','Fujairah') -- optional
  AND p.last_credential_review_date <= :as_of_date;

Target / Benchmark

Metric Target Source / Rationale
Physician Portal Adoption Rate ≥ 80% Internal target aligned with UAE digital health strategies (DOH/DHA eHealth goals)

Data Source

  • providers.provider_id, providers.provider_status, providers.provider_type, providers.department_id, providers.facility_id
  • physician_portal_accounts.account_id, physician_portal_accounts.provider_id, physician_portal_accounts.activation_status, physician_portal_accounts.is_active

Dimensions / Filters

  • Time: snapshot as of date (monthly), trend by month
  • Facility: providers.facility_id
  • Department: providers.department_id
  • Provider type: consultant, specialist, resident
  • Emirate (for multi-emirate groups)

Visualization

  • Primary: Gauge (current adoption vs 80% target)
  • Secondary: Bar chart by department/facility
  • Trend: Line chart (monthly adoption rate)

Alert Thresholds

  • Warning: < 75% overall or any department < 60%
  • Critical: < 65% overall
  • Notifications:
  • Warning: Portal Administrator, Department Heads
  • Critical: CMO, Clinical Informatics Lead, Portal Administrator

KPI-PHYSICIANPORTAL-002: Mobile App Monthly Active Users (MAU)

Definition

Counts distinct physician portal accounts that have logged in from a mobile device (iOS/Android) at least once in the last 30 days. Indicates real usage of the mobile app beyond simple account activation.

Calculation Formula

Assumptions:

  • Mobile device types: device_type IN ('ios','android').
  • Rolling 30-day window ending at :as_of_date.
SQL
SELECT
    COUNT(DISTINCT s.account_id) AS mobile_mau
FROM physician_portal_sessions s
JOIN physician_portal_accounts ppa
    ON ppa.account_id = s.account_id
WHERE s.device_type IN ('ios','android')
  AND s.login_datetime >= DATEADD(DAY, -30, :as_of_date)
  AND s.login_datetime < DATEADD(DAY, 1, :as_of_date)
  AND ppa.is_active = TRUE;

Target / Benchmark

Metric Target Source / Rationale
MAU Growing month-over-month Internal adoption target; aim for ≥ 60–70% of active users

Data Source

  • physician_portal_sessions.session_id, account_id, login_datetime, device_type, device_os, app_version
  • physician_portal_accounts.account_id, provider_id, is_active

Dimensions / Filters

  • Time: daily, weekly, monthly; rolling 30 days
  • Facility, department (via join to providers)
  • Device type: iOS vs Android
  • App version (for rollout monitoring)

Visualization

  • Line chart: MAU trend by month
  • Stacked bar: MAU by device type
  • Table: MAU by department

Alert Thresholds

  • Warning: Month-over-month MAU growth ≤ 0% (flat or declining)
  • Critical: ≥ 10% decline in MAU over 2 consecutive months
  • Notifications:
  • Warning: Portal Administrator, Clinical Informatics
  • Critical: CMO, CIO/IT Director, Portal Administrator

KPI-PHYSICIANPORTAL-003: Critical Result Acknowledgment via Portal

Definition

Percentage of all critical result acknowledgments (lab and radiology) that are performed via the physician portal/mobile app. Reflects how effectively the portal supports time-sensitive clinical communication and documentation.

Calculation Formula

Assumptions:

  • physician_inbox_items.item_type = 'critical_result'.
  • source_module IN ('lis','ris').
  • Portal acknowledgments: action_taken = 'acknowledged' and actioned_via = 'physician_portal'.
  • Total critical acknowledgments may also be logged in LIS/RIS; here we assume all acknowledgments are mirrored into physician_inbox_items.
SQL
SELECT
    COUNT(CASE
              WHEN pii.item_type = 'critical_result'
               AND pii.action_taken = 'acknowledged'
               AND pii.actioned_via = 'physician_portal'
           THEN 1 END) * 100.0
    / NULLIF(COUNT(CASE
                       WHEN pii.item_type = 'critical_result'
                        AND pii.action_taken = 'acknowledged'
                   THEN 1 END), 0) AS critical_ack_via_portal_pct
FROM physician_inbox_items pii
WHERE pii.received_datetime >= :start_date
  AND pii.received_datetime < :end_date;

Target / Benchmark

Metric Target Source / Rationale
Critical Result Acknowledgment via Portal ≥ 40% Internal target; supports DOH/DHA expectations for timely review

Data Source

  • physician_inbox_items.item_id, provider_id, item_type, source_module, source_id, patient_id, priority, status, received_datetime, actioned_datetime, action_taken, actioned_via
  • lab_results.result_id, lab_results.critical_flag, lab_results.acknowledged_by, lab_results.acknowledged_datetime (external)
  • radiology_reports.report_id, radiology_reports.critical_flag, radiology_reports.acknowledged_by, radiology_reports.acknowledged_datetime (external)

Dimensions / Filters

  • Time: daily, weekly, monthly
  • Facility, department
  • Provider
  • Result type: lab vs radiology
  • Priority: critical vs high-priority abnormal

Visualization

  • Gauge: overall percentage vs 40% target
  • Stacked bar: acknowledgment channel (portal vs workstation vs phone) by department
  • Trend line: monthly portal acknowledgment percentage

Alert Thresholds

  • Warning: < 35% overall or any high-volume department < 30%
  • Critical: < 25% overall
  • Notifications:
  • Warning: Department Heads, Clinical Informatics
  • Critical: CMO, Quality & Patient Safety, Portal Administrator

KPI-PHYSICIANPORTAL-004: Mobile Order Entry Rate

Definition

Percentage of all CPOE orders that are entered via the physician portal/mobile app. Indicates how much ordering activity is being performed remotely or at point-of-care using mobile devices.

Calculation Formula

Assumptions:

  • cpoe_orders.source = 'physician_portal' for orders originating from this module.
  • Denominator includes all orders regardless of source.
SQL
SELECT
    COUNT(CASE
              WHEN co.source = 'physician_portal'
           THEN 1 END) * 100.0
    / NULLIF(COUNT(*), 0) AS mobile_order_entry_rate_pct
FROM cpoe_orders co
WHERE co.order_datetime >= :start_date
  AND co.order_datetime < :end_date;

Target / Benchmark

Metric Target Source / Rationale
Mobile Order Entry Rate ≥ 15% Internal target; reflects meaningful mobile utilization

Data Source

  • cpoe_orders.order_id, patient_id, encounter_id, provider_id, order_type, order_datetime, source, facility_id, department_id

Dimensions / Filters

  • Time: daily, weekly, monthly
  • Facility, department
  • Provider
  • Order type: medication, lab, imaging, consult, nursing

Visualization

  • Stacked bar: orders by source (desktop vs mobile vs others)
  • Line chart: mobile order rate trend by month
  • Bar chart: mobile order rate by department

Alert Thresholds

  • Warning: Overall mobile order rate < 12% or declining for 3 consecutive months
  • Critical: Overall mobile order rate < 8%
  • Notifications:
  • Warning: Portal Administrator, Clinical Informatics
  • Critical: CMO, CIO/IT Director, Department Heads

KPI-PHYSICIANPORTAL-005: Patient Message Response Time

Definition

Average time taken for providers to respond to patient messages received via the patient portal, when handled through the physician portal/mobile app. Supports patient engagement and responsiveness expectations in UAE private and governmental facilities.

Calculation Formula

Assumptions:

  • portal_messages.message_type = 'patient_to_provider'.
  • Response is a portal_messages record with parent_message_id referencing the original.
  • Only messages where responded_by_provider_id is not null.
  • Response time measured in hours.
SQL
SELECT
    AVG(DATEDIFF(MINUTE, pm_received.message_received_datetime, pm_response.message_sent_datetime)) / 60.0
        AS avg_response_time_hours
FROM portal_messages pm_received
JOIN portal_messages pm_response
    ON pm_response.parent_message_id = pm_received.message_id
   AND pm_response.direction = 'provider_to_patient'
WHERE pm_received.message_type = 'patient_to_provider'
  AND pm_received.message_received_datetime >= :start_date
  AND pm_received.message_received_datetime < :end_date;

If the implementation uses physician_inbox_items as the operational layer:

SQL
SELECT
    AVG(DATEDIFF(MINUTE, pii.received_datetime, pii.actioned_datetime)) / 60.0
        AS avg_response_time_hours
FROM physician_inbox_items pii
WHERE pii.item_type = 'patient_message'
  AND pii.status = 'completed'
  AND pii.received_datetime >= :start_date
  AND pii.received_datetime < :end_date;

Target / Benchmark

Metric Target Source / Rationale
Patient Message Response Time ≤ 24 hours Internal target; aligned with common UAE private sector SLAs

Data Source

  • portal_messages.message_id, parent_message_id, patient_id, provider_id, direction, message_type, message_received_datetime, message_sent_datetime, facility_id
  • physician_inbox_items.item_id, item_type, received_datetime, actioned_datetime, status, provider_id

Dimensions / Filters

  • Time: daily, weekly, monthly
  • Facility, department
  • Provider
  • Message category: clinical question, administrative, prescription refill

Visualization

  • Line chart: average response time trend
  • Bar chart: percentage of messages answered within 24h, 48h, >48h
  • Table: providers/departments with highest average response time

Alert Thresholds

  • Warning: Average response time > 24 hours for 7-day rolling window
  • Critical: Average response time > 36 hours or > 20% of messages > 48 hours
  • Notifications:
  • Warning: Department Heads, Portal Administrator
  • Critical: CMO, Quality & Patient Experience, Portal Administrator

KPI-PHYSICIANPORTAL-006: Handoff Completion Rate

Definition

Percentage of shift transitions where an electronic handoff (I-PASS template) is completed and acknowledged via the physician portal. Supports continuity of care and reduces risk associated with verbal-only handoffs.

Calculation Formula

Assumptions:

  • handoff_communications contains one record per patient handoff.
  • status IN ('sent','acknowledged') indicates an electronic handoff exists.
  • Shift transitions are derived from scheduling/on-call tables; for KPI we approximate using distinct combinations of outgoing_provider_id, incoming_provider_id, handoff_date.

Example using handoff_communications only (proxy):

SQL
-- Numerator: distinct provider-to-provider handoffs with acknowledged status
WITH handoff_events AS (
    SELECT
        outgoing_provider_id,
        incoming_provider_id,
        CAST(handoff_datetime AS DATE) AS handoff_date,
        MAX(status) AS max_status
    FROM handoff_communications
    WHERE handoff_datetime >= :start_date
      AND handoff_datetime < :end_date
    GROUP BY outgoing_provider_id, incoming_provider_id, CAST(handoff_datetime AS DATE)
)
SELECT
    COUNT(CASE WHEN max_status = 'acknowledged' THEN 1 END) * 100.0
    / NULLIF(COUNT(*), 0) AS handoff_completion_rate_pct
FROM handoff_events;

If a separate shift_transitions table exists, denominator should be COUNT(shift_transitions).

Target / Benchmark

Metric Target Source / Rationale
Handoff Completion Rate ≥ 90% Internal patient safety target (I-PASS best practice adoption)

Data Source

  • handoff_communications.handoff_id, patient_id, encounter_id, outgoing_provider_id, incoming_provider_id, illness_severity, patient_summary, action_list, contingency_plan, handoff_datetime, acknowledged_datetime, status
  • Scheduling/on-call tables for total shift transitions (external)

Dimensions / Filters

  • Time: weekly, monthly
  • Facility, department/service
  • Provider (outgoing and incoming)
  • Patient type: inpatient vs ED vs ICU

Visualization

  • Gauge: overall completion rate vs 90% target
  • Bar chart: completion rate by department
  • Line chart: monthly trend

Alert Thresholds

  • Warning: Completion rate < 85% overall or any critical unit (ICU/ED) < 80%
  • Critical: Completion rate < 75% overall
  • Notifications:
  • Warning: Department Heads, Patient Safety Officer
  • Critical: CMO, Quality & Risk Management, Portal Administrator

KPI-PHYSICIANPORTAL-007: Task Completion Rate

Definition

Percentage of clinical tasks assigned to providers that are completed on or before their due date. Reflects effectiveness of the portal’s task management in supporting timely care.

Calculation Formula

Assumptions:

  • clinical_task_items.status = 'completed' indicates completion.
  • On-time completion: completed_datetime <= due_datetime.
SQL
SELECT
    COUNT(CASE
              WHEN cti.status = 'completed'
               AND cti.completed_datetime IS NOT NULL
               AND cti.due_datetime IS NOT NULL
               AND cti.completed_datetime <= cti.due_datetime
           THEN 1 END) * 100.0
    / NULLIF(COUNT(*), 0) AS task_completion_rate_pct
FROM clinical_task_items cti
WHERE cti.created_datetime >= :start_date
  AND cti.created_datetime < :end_date;

Target / Benchmark

Metric Target Source / Rationale
Task Completion Rate ≥ 85% Internal operational target for timely tasks

Data Source

  • clinical_task_items.task_item_id, list_id, patient_id, task_description, task_type, priority, due_datetime, status, completed_datetime, delegated_to, source_module, source_id, created_datetime
  • clinical_task_lists.list_id, provider_id, list_type

Dimensions / Filters

  • Time: weekly, monthly
  • Facility, department
  • Provider
  • Task type: result review, message response, follow-up, unsigned orders
  • Priority: routine vs urgent

Visualization

  • Bar chart: completion rate by department/provider
  • Line chart: overall completion rate trend
  • Table: top overdue task categories

Alert Thresholds

  • Warning: Completion rate < 80% overall or < 75% for high-priority tasks
  • Critical: Completion rate < 70% overall or < 60% for high-priority tasks
  • Notifications:
  • Warning: Department Heads, Portal Administrator
  • Critical: CMO, Quality & Patient Safety, Clinical Informatics

KPI-PHYSICIANPORTAL-008: Mobile Documentation Rate

Definition

Percentage of clinical notes created via the physician portal/mobile app compared to all clinical notes. Indicates adoption of mobile documentation during rounds, on-call, and telehealth.

Calculation Formula

Assumptions:

  • clinical_notes.source = 'physician_portal' for notes created via this module.
  • Denominator: all clinical notes in the period.
SQL
SELECT
    COUNT(CASE
              WHEN cn.source = 'physician_portal'
           THEN 1 END) * 100.0
    / NULLIF(COUNT(*), 0) AS mobile_documentation_rate_pct
FROM clinical_notes cn
WHERE cn.note_datetime >= :start_date
  AND cn.note_datetime < :end_date;

Target / Benchmark

Metric Target Source / Rationale
Mobile Documentation Rate ≥ 10% Internal target; early-stage mobile adoption

Data Source

  • clinical_notes.note_id, patient_id, encounter_id, provider_id, note_type, note_datetime, source, facility_id, department_id

Dimensions / Filters

  • Time: monthly
  • Facility, department
  • Provider
  • Note type: progress, consult, telehealth, procedure

Visualization

  • Stacked bar: notes by source (desktop vs mobile)
  • Line chart: mobile documentation rate trend
  • Bar chart: mobile documentation rate by department

Alert Thresholds

  • Warning: Mobile documentation rate < 8% or flat for 3 months
  • Critical: < 5% after 6 months of go-live
  • Notifications:
  • Warning: Portal Administrator, Clinical Informatics
  • Critical: CMO, Department Heads, CIO/IT Director

KPI-PHYSICIANPORTAL-009: Average Session Duration

Definition

Average length of physician portal sessions (login to logout). For mobile workflows, excessively long sessions may indicate usability issues; very short sessions may indicate quick, efficient task completion or frequent disconnects.

Calculation Formula

Assumptions:

  • Session duration in minutes: DATEDIFF(MINUTE, login_datetime, COALESCE(logout_datetime, last_activity_datetime)).
  • Exclude sessions longer than a threshold (e.g., > 8 hours) as likely background/forgotten sessions.
SQL
SELECT
    AVG(DATEDIFF(MINUTE, s.login_datetime,
                 COALESCE(s.logout_datetime, s.last_activity_datetime))) AS avg_session_duration_minutes
FROM physician_portal_sessions s
WHERE s.login_datetime >= :start_date
  AND s.login_datetime < :end_date
  AND DATEDIFF(HOUR, s.login_datetime,
               COALESCE(s.logout_datetime, s.last_activity_datetime)) BETWEEN 1 AND 8;

(If last_activity_datetime is not available, use logout_datetime only.)

Target / Benchmark

Metric Target / Interpretation
Average Session Duration Monitored; shorter mobile sessions (5–15 min) are typical

Data Source

  • physician_portal_sessions.session_id, account_id, login_datetime, logout_datetime, device_type, device_os, app_version, ip_address, auth_method, last_activity_datetime (if implemented)

Dimensions / Filters

  • Time: daily, weekly, monthly
  • Device type: mobile vs web
  • Facility, department (via provider mapping)
  • Provider

Visualization

  • Line chart: average session duration over time by device type
  • Box plot: distribution of session durations
  • Table: outlier sessions (very long or very short)

Alert Thresholds

  • Warning: Sudden increase (> 30%) in average mobile session duration over 1 month (possible usability/performance issues)
  • Critical: Sustained increase (> 50%) over 2 months or spike in sessions > 2 hours
  • Notifications:
  • Warning: Portal Administrator, IT Operations
  • Critical: CIO/IT Director, Vendor Support, Portal Administrator

Standard Reports

Report ID Report Name Purpose Audience Frequency Format
RPT-PHY-001 Physician Portal Adoption Dashboard Monitor overall portal account activation and usage across facilities and departments CMO, Department Heads, Portal Administrator Monthly (real-time view) Interactive HTML dashboard, PDF snapshot
RPT-PHY-002 Mobile Usage & Session Analytics Analyze mobile MAU, session duration, device mix, and app version adoption CIO/IT, Clinical Informatics, Portal Admin Weekly / Monthly Interactive dashboard + CSV export
RPT-PHY-003 Critical Result Acknowledgment via Portal Track how critical results are acknowledged and via which channel Quality & Patient Safety, DOH/DHA reporting team Monthly PDF, Excel
RPT-PHY-004 Secure Messaging & Response Time Monitor patient and provider messaging volumes and response times Department Heads, Patient Experience, CMO Weekly / Monthly Dashboard + Excel
RPT-PHY-005 Clinical Task Management Performance Evaluate task completion rates, overdue tasks, and delegation patterns Department Heads, Nursing Leadership, CMO Weekly Dashboard + CSV
RPT-PHY-006 Handoff Compliance (I-PASS) Monitor electronic handoff usage and completion rates Patient Safety, Quality, CMO Monthly PDF, Excel
RPT-PHY-007 Mobile Order Entry & Documentation Track orders and notes created via mobile vs desktop Clinical Informatics, CMO, Department Heads Monthly Dashboard + PDF
RPT-PHY-008 Provider-Level Portal Utilization Profile Detailed usage metrics per provider (logins, sessions, tasks, messages, handoffs) Department Heads, Medical Staff Office Quarterly Excel, PDF
RPT-PHY-009 PDPL Access & Activity Audit (Portal) Provide audit trail of portal access and actions for UAE PDPL compliance DPO, Compliance Officer, IT Security On-demand / Monthly PDF (signed), CSV
RPT-PHY-010 NABIDH/Malaffi Integration Usage Summary Summarize how often portal users access external HIE data via the portal HIE Program Lead, CIO, Compliance Quarterly PDF, Excel

Dashboard Wireframe

Below is an HTML wireframe mockup for the Physician Portal Management Dashboard, focusing on KPIs and filters.

Show HTML code
HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Physician Portal Management Dashboard</title>
</head>
<body style="font-family: Arial, sans-serif; background-color:#f5f5f5; margin:0; padding:0;">
  <header style="background-color:#004f7c; color:#fff; padding:16px 24px;">
    <h1 style="margin:0; font-size:20px;">Physician Portal &amp; Mobile App Dashboard</h1>
    <div style="font-size:12px; margin-top:4px;">Gates Group &mdash; UAE Facilities</div>
  </header>

  <section style="padding:12px 24px; background-color:#ffffff; border-bottom:1px solid #ddd;">
    <form style="display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end;">
      <div>
        <label style="font-size:12px; display:block; margin-bottom:4px;">Date Range</label>
        <select style="padding:4px 8px; font-size:12px;">
          <option>Last 7 days</option>
          <option selected>Last 30 days</option>
          <option>Last 90 days</option>
          <option>Custom...</option>
        </select>
      </div>
      <div>
        <label style="font-size:12px; display:block; margin-bottom:4px;">Facility</label>
        <select style="padding:4px 8px; font-size:12px;">
          <option>All Facilities</option>
          <option>Dubai General Hospital</option>
          <option>Abu Dhabi Medical Center</option>
        </select>
      </div>
      <div>
        <label style="font-size:12px; display:block; margin-bottom:4px;">Department</label>
        <select style="padding:4px 8px; font-size:12px;">
          <option>All Departments</option>
          <option>Internal Medicine</option>
          <option>Surgery</option>
          <option>Pediatrics</option>
          <option>Emergency</option>
        </select>
      </div>
      <div>
        <label style="font-size:12px; display:block; margin-bottom:4px;">Device Type</label>
        <select style="padding:4px 8px; font-size:12px;">
          <option>All</option>
          <option>Mobile (iOS/Android)</option>
          <option>Web</option>
        </select>
      </div>
      <div>
        <button type="button" style="padding:6px 12px; font-size:12px; background-color:#004f7c; color:#fff; border:none; border-radius:3px;">Apply</button>
      </div>
    </form>
  </section>

  <main style="padding:16px 24px;">
    <!-- KPI Cards Row 1 -->
    <section style="display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px;">
      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #2e7d32;">
        <div style="font-size:11px; color:#666;">Portal Adoption Rate</div>
        <div style="font-size:24px; font-weight:bold;">82%</div>
        <div style="font-size:10px; color:#2e7d32;">Target ≥ 80%</div>
        <div style="font-size:10px; color:#999; margin-top:4px;">▲ 3% vs last month</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #1976d2;">
        <div style="font-size:11px; color:#666;">Mobile MAU (30 days)</div>
        <div style="font-size:24px; font-weight:bold;">214</div>
        <div style="font-size:10px; color:#1976d2;">All active providers: 320</div>
        <div style="font-size:10px; color:#999; margin-top:4px;">▲ 12 vs last month</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #f9a825;">
        <div style="font-size:11px; color:#666;">Critical Results Ack via Portal</div>
        <div style="font-size:24px; font-weight:bold;">46%</div>
        <div style="font-size:10px; color:#f9a825;">Target ≥ 40%</div>
        <div style="font-size:10px; color:#999; margin-top:4px;">▲ 5% vs last month</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #c62828;">
        <div style="font-size:11px; color:#666;">Avg Patient Msg Response Time</div>
        <div style="font-size:24px; font-weight:bold;">18.4h</div>
        <div style="font-size:10px; color:#c62828;">Target ≤ 24h</div>
        <div style="font-size:10px; color:#999; margin-top:4px;">▼ 3.2h vs last month</div>
      </div>
    </section>

    <!-- KPI Cards Row 2 -->
    <section style="display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px;">
      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #7b1fa2;">
        <div style="font-size:11px; color:#666;">Mobile Order Entry Rate</div>
        <div style="font-size:24px; font-weight:bold;">17%</div>
        <div style="font-size:10px; color:#7b1fa2;">Target ≥ 15%</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #00897b;">
        <div style="font-size:11px; color:#666;">Handoff Completion Rate</div>
        <div style="font-size:24px; font-weight:bold;">91%</div>
        <div style="font-size:10px; color:#00897b;">Target ≥ 90%</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #5d4037;">
        <div style="font-size:11px; color:#666;">Task Completion Rate</div>
        <div style="font-size:24px; font-weight:bold;">87%</div>
        <div style="font-size:10px; color:#5d4037;">Target ≥ 85%</div>
      </div>

      <div style="flex:1 1 180px; background-color:#ffffff; border-radius:4px; padding:12px; border-top:3px solid #455a64;">
        <div style="font-size:11px; color:#666;">Mobile Documentation Rate</div>
        <div style="font-size:24px; font-weight:bold;">12%</div>
        <div style="font-size:10px; color:#455a64;">Target ≥ 10%</div>
      </div>
    </section>

    <!-- Charts Row -->
    <section style="display:flex; flex-wrap:wrap; gap:16px; margin-bottom:16px;">
      <div style="flex:2 1 360px; background-color:#ffffff; border-radius:4px; padding:12px;">
        <h2 style="font-size:13px; margin:0 0 8px;">Portal Adoption &amp; Mobile Usage Trend</h2>
        <div style="height:220px; border:1px dashed #ccc; font-size:11px; color:#777; display:flex; align-items:center; justify-content:center;">
          Line chart placeholder: Adoption %, Mobile MAU by month
        </div>
      </div>

      <div style="flex:1 1 260px; background-color:#ffffff; border-radius:4px; padding:12px;">
        <h2 style="font-size:13px; margin:0 0 8px;">Critical Result Ack by Channel</h2>
        <div style="height:220px; border:1px dashed #ccc; font-size:11px; color:#777; display:flex; align-items:center; justify-content:center;">
          Stacked bar chart placeholder: Portal vs Desktop vs Phone
        </div>
      </div>
    </section>

    <!-- Bottom Row: Tables -->
    <section style="display:flex; flex-wrap:wrap; gap:16px;">
      <div style="flex:1 1 360px; background-color:#ffffff; border-radius:4px; padding:12px;">
        <h2 style="font-size:13px; margin:0 0 8px;">Departments Below Target</h2>
        <table style="width:100%; border-collapse:collapse; font-size:11px;">
          <thead>
            <tr>
              <th style="border-bottom:1px solid #ddd; text-align:left; padding:4px;">Department</th>
              <th style="border-bottom:1px solid #ddd; text-align:right; padding:4px;">Adoption</th>
              <th style="border-bottom:1px solid #ddd; text-align:right; padding:4px;">Mobile Orders</th>
              <th style="border-bottom:1px solid #ddd; text-align:right; padding:4px;">Msg Resp Time</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px;">Surgery</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">68%</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">9%</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">27h</td>
            </tr>
            <tr>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px;">Pediatrics</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">72%</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">11%</td>
              <td style="border-bottom:1px solid #f0f0f0; padding:4px; text-align:right;">25h</td>
            </tr>
          </tbody>
        </table>
      </div>

      <div style="flex:1 1 260px; background-color:#ffffff; border-radius:4px; padding:12px;">
        <h2 style="font-size:13px; margin:0 0 8px;">Alerts &amp; Threshold Breaches</h2>
        <ul style="font-size:11px; padding-left:16px; margin:0;">
          <li style="margin-bottom:4px; color:#c62828;">Critical: ED patient message response time 31h (last 7 days)</li>
          <li style="margin-bottom:4px; color:#f9a825;">Warning: Surgery mobile order entry rate 9% (target ≥ 15%)</li>
          <li style="margin-bottom:4px; color:#f9a825;">Warning: Mobile MAU flat for 2 months in Abu Dhabi Medical Center</li>
        </ul>
      </div>
    </section>
  </main>
</body>
</html>

Regulatory Reports

All regulatory references are UAE-specific. The physician portal module primarily supports operational and compliance reporting by providing access logs, usage metrics, and evidence of timely review of clinical information.

While MOH (Ministry of Health and Prevention) does not currently mandate a specific “physician portal” report, the following data supports MOH expectations around clinical governance and telehealth:

  • MOH-PP-001: Telehealth Consultation Activity via Portal
  • Source: Telehealth workflows (e.g., encounters with encounter_type = 'telehealth' initiated via physician portal), physician_portal_sessions.
  • Contents:
    • Number of telehealth encounters by facility, specialty, and provider.
    • Time from patient request to consultation.
    • Documentation completeness (notes signed, orders placed).
  • Use: Supports MOH telemedicine licensing and service utilization reviews.

  • MOH-PP-002: Critical Result Review Timeliness (Supporting MOH Quality Indicators)

  • Source: physician_inbox_items, lab_results, radiology_reports.
  • Contents:
    • Time from critical result availability to acknowledgment.
    • Channel of acknowledgment (portal vs workstation).
  • Use: Evidence for MOH quality and patient safety audits.

2. DOH (Abu Dhabi) / DHA (Dubai) Statistical Submissions

The portal module contributes to DOH/DHA reporting by providing:

  • DOH-PP-001: Provider Digital Engagement Metrics (Abu Dhabi Facilities)
  • For DOH-licensed facilities, aligned with Malaffi and ADHICS digital health maturity:
    • Portal adoption rate by department.
    • Mobile usage for result review and order entry.
    • Handoff completion rates in critical units.
  • Data extracted from KPIs 001–008, filtered to Abu Dhabi facilities.

  • DHA-PP-001: Digital Interaction & Telehealth Utilization (Dubai Facilities)

  • For DHA-licensed facilities and NABIDH integration:
    • Volume of patient-provider messages handled via portal.
    • Telehealth encounters initiated from portal.
    • Result review and acknowledgment via portal for Dubai facilities.

These reports are typically aggregated and submitted as part of broader DOH/DHA digital health or quality reporting packages, not as standalone portal reports.

3. UAE PDPL (Federal Decree-Law No. 45/2021) Audit Reports

The physician portal is a major channel for accessing patient personal and health data; therefore, PDPL compliance requires robust audit and reporting:

  • PDPL-PP-001: Access Log & Activity Audit
  • Source: physician_portal_sessions, application audit logs (viewed patient, opened note, downloaded document).
  • Contents:
    • Who accessed which patient records, when, from which device/IP.
    • Actions performed (view, edit, sign, message, handoff).
  • Use:

    • Respond to data subject access requests (who accessed my data?).
    • Support investigations of suspected unauthorized access.
  • PDPL-PP-002: Cross-Border Access & Remote Access Report

  • If remote access from outside UAE is allowed:
    • Sessions with non-UAE IP addresses.
    • Associated providers and patients.
  • Use: Demonstrate compliance with PDPL cross-border transfer requirements and internal policies.

  • PDPL-PP-003: Access Control & Deactivation Compliance

  • Metrics:
    • Time from provider leaving facility to portal account deactivation.
    • Number of active accounts with no login in last 6–12 months.
  • Use: Show that access is limited to current staff and regularly reviewed.

4. NABIDH / Malaffi Compliance Metrics

The portal itself does not directly submit to NABIDH (Dubai) or Malaffi (Abu Dhabi), but it is a consumer of HIE data via the core EHR. Relevant reports:

  • HIE-PP-001: HIE Data Access via Portal
  • Source: Audit logs when portal users view data originating from NABIDH/Malaffi (e.g., external documents, summaries).
  • Metrics:
    • Number of HIE document views via portal.
    • Providers and departments accessing HIE data.
  • Use: Demonstrate effective use of HIE data in clinical decision-making.

  • HIE-PP-002: HIE Consent & Access Respect

  • Where consent flags are implemented:
    • Attempts to access HIE data when consent is not present (blocked).
    • Successful access where consent exists.
  • Use: Evidence for NABIDH/Malaffi and PDPL compliance around consent-based access.

Ad-Hoc Reporting

Available Data Fields for Custom Queries

The physician portal module exposes the following key fields for ad-hoc analytics (in addition to shared entities referenced via foreign keys):

1. physician_portal_accounts

  • account_id
  • provider_id (FK → providers.provider_id)
  • user_id (FK → users.user_id)
  • activation_status (requested, pending_verification, activated, suspended, revoked)
  • activation_datetime
  • last_login
  • mfa_method (sms, authenticator_app, biometric)
  • device_tokens (for push notifications; typically not exposed in analytics)
  • offline_access_enabled (boolean)
  • is_active (boolean)
  • created_by, created_datetime, updated_datetime

2. physician_portal_sessions

  • session_id
  • account_id (FK → physician_portal_accounts.account_id)
  • login_datetime
  • logout_datetime
  • last_activity_datetime (if implemented)
  • device_type (ios, android, web)
  • device_os
  • app_version
  • ip_address
  • auth_method (password, biometric, SSO)
  • facility_id (derived from provider mapping if needed)

3. physician_inbox_items

  • item_id
  • provider_id (FK → providers.provider_id)
  • item_type (patient_message, provider_message, system_alert, result_notification, critical_result)
  • source_module (lis, ris, patient_portal, scheduling, cpoe, system)
  • source_id (FK to external table)
  • patient_id (FK → patients.patient_id)
  • subject
  • priority (low, normal, high, critical)
  • status (new, read, in_progress, completed, archived)
  • received_datetime
  • read_datetime
  • actioned_datetime
  • action_taken (acknowledged, replied, forwarded, dismissed)
  • actioned_via (physician_portal, desktop_ehr, other)

4. physician_preferences

  • preference_id
  • account_id
  • Notification flags:
  • notification_critical_results
  • notification_new_messages
  • notification_schedule_changes
  • notification_abnormal_results
  • Display options:
  • display_theme
  • default_patient_list
  • result_sort_preference
  • created_datetime, updated_datetime

5. physician_favorites

  • favorite_id
  • provider_id
  • favorite_type (patient, order, order_set, note_template)
  • item_id (FK to relevant table)
  • item_name
  • display_order
  • created_datetime
  • is_active

6. clinical_task_lists

  • list_id
  • provider_id
  • list_name
  • list_type (personal, team, department)
  • is_default
  • created_datetime

7. clinical_task_items

  • task_item_id
  • list_id (FK → clinical_task_lists.list_id)
  • patient_id
  • task_description
  • task_type (result_review, message_response, follow_up, order_signoff, other)
  • source_module
  • source_id
  • priority
  • due_datetime
  • status (new, in_progress, completed, cancelled, overdue)
  • completed_datetime
  • delegated_to (provider_id or role)
  • notes
  • created_datetime

8. handoff_communications

  • handoff_id
  • patient_id
  • encounter_id
  • outgoing_provider_id
  • incoming_provider_id
  • illness_severity (stable, watcher, unstable)
  • patient_summary (text)
  • action_list (text)
  • situation_awareness (text)
  • contingency_plan (text)
  • handoff_datetime
  • acknowledged_datetime
  • status (draft, sent, acknowledged, cancelled)
  • created_by, created_datetime

Export Formats

The reporting layer should support:

  • CSV:
  • For detailed data extracts and ad-hoc analysis in external tools.
  • UTF-8 encoding to support Arabic names and text.
  • Excel (XLSX):
  • For management reports with filters, pivot tables, and charts.
  • Used commonly by UAE hospital administrators.
  • PDF:
  • For official reports, sign-off, and archival (e.g., PDPL audit reports, quality committee packs).
  • Interactive HTML / Dashboard:
  • For real-time monitoring and drill-down (internal web-based analytics).

All exports must:

  • Respect UAE PDPL:
  • Role-based access to patient-identifiable data.
  • Ability to generate de-identified/aggregated reports where needed.
  • Log export events in an audit log (who exported what, when, and in which format).

Scheduled Report Delivery

The system should support scheduling of recurring reports with the following capabilities:

  • Scheduling Options
  • Frequencies: daily, weekly, monthly, quarterly.
  • Execution time: configurable (e.g., 02:00 UAE time).
  • Time zone awareness (Gulf Standard Time, UTC+4).

  • Delivery Channels

  • Secure email with link to report (no PHI in email body; access controlled via login).
  • Internal notification in the physician portal admin interface.
  • Secure file drop (e.g., SFTP) for integration with enterprise data warehouse.

  • Access Control

  • Only authorized roles (e.g., Portal Administrator, CMO, Department Head, DPO) can subscribe to or receive reports containing patient-level data.
  • Department-level reports restricted to that department’s leadership.

  • Monitoring & Audit

  • Log of scheduled report runs (success/failure, duration).
  • Audit of report access and downloads for PDPL compliance.

This specification provides developer-ready definitions for KPIs, reports, dashboard layout, and regulatory reporting expectations for the Physician Portal & Mobile App module in the UAE context.

content/portals/physician-portal/07-kpis-reports.md Generated 2026-02-20 22:54