API for the Exchange of Medicinal Product Information (APIX)
0.1.0 - ci-build

API for the Exchange of Medicinal Product Information (APIX), published by Gravitate Health Project. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/APIX---API-Exchange-for-Medicinal-Products/ and changes regularly. See the Directory of published versions

Real-Time Subscriptions

APIX creates transparency in regulatory submissions by leveraging the HL7 FHIR R5 Subscription Framework. Instead of manually checking portals or waiting for emails, systems can subscribe to specific events and receive immediate, machine-readable notifications.

Note

This capability underpins the Unified Status Tracking use case, providing a "FedEx-style" visibility into the regulatory lifecycle.

How It Works (Conceptual)

  1. Subscribe: The Applicant's system (e.g., RIM) sends a Subscription resource to the Regulator's APIX server.
  2. Trigger: A change occurs (e.g., an assessor changes a Task status from received to in-progress).
  3. Notify: The Regulator's server matches the change to the Subscription criteria and immediately sends a notification to the Applicant's endpoint.

The Topic-Based Subscription Model

APIX uses the R5 Topic-Based Subscription model (SubscriptionTopic) to define standard events.

Standard Subscription Topics

Topic Canonical Description Trigger Event
http://hl7.org/fhir/uv/apix/SubscriptionTopic/task-update Task Status Change Any update to Task.status (e.g., accepted, rejected, on-hold)
http://hl7.org/fhir/uv/apix/SubscriptionTopic/new-message New Inbound Task Creation of a new Task assigned to the subscriber (e.g., a new Question or Decision)

Creating a Subscription

To start receiving notifications, an Applicant POSTs a Subscription resource.

Example: Subscribe to all updates for a specific Procedure

{
  "resourceType": "Subscription",
  "status": "active",
  "topic": "http://hl7.org/fhir/uv/apix/SubscriptionTopic/task-update",
  "filterBy": [
    {
      "filterParameter": "group-identifier",
      "value": "Procedure-2025-00123"
    }
  ],
  "channelType": {
    "system": "http://terminology.hl7.org/CodeSystem/subscription-channel-type",
    "code": "rest-hook"
  },
  "endpoint": "https://rim-system.pharma-corp.com/apix-webhook"
}

Notification Channels

APIX supports two primary channel types for different architectural needs:

  1. REST Hook (Server-to-Server):
    • Best for: Production RIM systems, cloud integrations.
    • Mechanism: The regulator sends a POST request to a URL registered by the applicant.
    • Payload: Can be id-only (ping) or full-resource (contains the updated Task).
  2. WebSocket (Client-Side):
    • Best for: UI dashboards, lightweight apps, or firewalled environments where inbound webhooks are difficult.
    • Mechanism: The client maintains an open socket connection to receive stream updates.

Process Analytics & Cycle Time

Because every regulatory milestone is a timestamped event, the subscription feed doubles as a real-time analytics stream.

By storing the notification history, an organization can automatically reconstruct the full timeline of any procedure and calculate performance metrics without manual data entry:

  • Time-to-Submission: Task.authoredOn (Draft) vs Task.lastModified (Requested)
  • Regulatory Cycle Time: Task.authoredOn (Received) vs Task.lastModified (Completed)
  • Clock-Stop Duration: Time elapsed while status = on-hold
  • Process Bottlenecks: Visualizing which step (Validation vs Assessment vs Response) consumes the most time.

Tip

This raw data enables the "Free Performance Dashboards" mentioned in the IG Home.

Conceptual Visualization

The following charts illustrate how raw subscription data can be transformed into executive insights.

1. Unified Pipeline View (Global Portfolio)

pie title Submission Status (Global)
    "In Progress (Clock On)" : 45
    "On Hold (Clock Stop)" : 15
    "Approved" : 30
    "Validation" : 10

2. Cycle Time Analysis (Reconstructed from Timestamped Tasks)

gantt
    title Regulatory Procedure Timeline
    dateFormat  YYYY-MM-DD
    section Procedure A (Fast)
    Submission      :active,    p1, 2025-01-01, 3d
    Validation      :           p2, after p1, 5d
    Assessment      :           p3, after p2, 45d
    Decision        :crit,      p4, after p3, 5d
    section Procedure B (Delayed)
    Submission      :active,    p5, 2025-01-15, 3d
    Validation      :           p6, after p5, 5d
    Assessment      :           p7, after p6, 20d
    Clock Stop (Q&A):crit,      p8, after p7, 30d
    Response Review :           p9, after p8, 25d
    Decision        :           p10, after p9, 5d

3. Bottleneck Detection (Time Distribution)

pie title Avg. Duration by Phase (Days)
    "Validation" : 12
    "Assessment (Phase I)" : 75
    "Clock Stop (Company Time)" : 45
    "Final Decision" : 10

4. Regulator View: Annual Statutory Compliance

Automated generation of performance metrics for annual reports (e.g., Outcome of Initial Evaluations).

Outcome of Initial Evaluations (2025)

Positive Opinion (114)
90%
Withdrawn (8)
Negative Opinion (5)

5. Procedure Duration Analysis

Breakdown of average review time by procedure type.

Avg. Days in Review (2025)

210d
Initial MAA
90d
Type II Var
30d
Type IB Var
60d
Renewal
Regulatory Procedure Type