Briefings chips system

The V2 Briefing API uses a sophisticated chip system to create interactive, clickable elements in the briefing text.

There are two types of chips:

1. Affected Elements Chips

Affected elements chips highlight specific airport infrastructure or airspace elements mentioned in NOTAMs.

How They're Built

Affected elements chips are automatically generated from NOTAM interpretation data using the format:

[{element_type} {identifier}](affected-element/{icao}/{element_type}-{identifier}/{notam_id})

Examples

[RWY 11/29](affected-element/EPWA/RWY-11/d2ac4321-2d40-4287-ad0a-e6866da31f62)
[TWY A](affected-element/EPWA/TWY-E3/1edb8591-f235-4cbb-9ba2-7f14226876ff)

Chip Components

  • Label: Human-readable element description (e.g., "RWY 11/29")

  • URL: Structured link for frontend routing

    • icao: Airport ICAO code

    • element_type: Type of infrastructure (RWY, TWY, ILS, etc.)

    • identifier: Specific element identifier

Usage in Frontend

Frontend applications can parse these chips to:

  • Highlight elements on airport diagrams

  • Show detailed element information

  • Create interactive maps

  • Filter NOTAMs by affected elements

2. NOTAM Chips

NOTAM chips provide direct links to the source NOTAM documents.

How They're Built

NOTAM chips are generated using the format:

[{notam_number}]({notam_id})

If no NOTAM number is available, the NOTAM ID is used as the label:

[{notam_id}]({notam_id})

Examples

[A1234/25](7e1b2056-301d-4723-a7e8-d0994fb7d6b6)
[C0184/25](263dbe90-b168-412f-aa9a-0555fa9cd736)
[W0738/25](8f2c3d4e-5a6b-7c8d-9e0f-1a2b3c4d5e6f)

Chip Components

  • Label: NOTAM number (e.g., "A1234/25") or NOTAM ID if number unavailable

  • URL: Direct NOTAM ID for document retrieval

Usage in Frontend

Frontend applications can use NOTAM chips to:

  • Link to full NOTAM details

  • Show NOTAM metadata (validity, coordinates, etc.)

  • Display original ICAO message

  • Track NOTAM history and updates

Complete Briefing Example

Here's an example of a complete briefing with both chip types:

**Highlights:**
- Runway 11/29 closed at EPWA affecting planned takeoff runway

## Origin: EPWA

**Runway Operations:**
- [RWY 11/29](affected-element/EPWA/RWY-11/29) closed for maintenance [A1234/25](7e1b2056-301d-4723-a7e8-d0994fb7d6b6)
- [TWY A](affected-element/EPWA/TWY-A) partially closed near [RWY 11/29](affected-element/EPWA/RWY-11/29) [A1235/25](8e2c3d4f-6b7c-8d9e-0f1a-2b3c4d5e6f7g)

## Destination: EGLL

**Navigation Aids:**
- [ILS 27L](affected-element/EGLL/ILS-27L) out of service [B5678/25](263dbe90-b168-412f-aa9a-0555fa9cd736)
- [VOR LGW](affected-element/EGLL/VOR-LGW) reduced range [B5679/25](374ebe91-c269-523g-bb0b-1666gb0cd847)

Implementation Guide

Parsing Chips in Frontend

// Example JavaScript function to parse affected element chips
function parseAffectedElementChip(chipText) {
  const regex = /\[([^\]]+)\]\(affected-element\/([^\/]+)\/([^-]+)-(.+)\)\/([^\/]+)\//g;
  const match = regex.exec(chipText);
  
  if (match) {
    return {
      label: match[1],
      icao: match[2],
      elementType: match[3],
      identifier: match[4],
      notamId: match[5]
    };
  }
  return null;
}

// Example JavaScript function to parse NOTAM chips
function parseNotamChip(chipText) {
  const regex = /\[([^\]]+)\]\(([^)]+)\)/g;
  const match = regex.exec(chipText);
  
  if (match) {
    return {
      label: match[1],
      notamId: match[2]
    };
  }
  return null;
}

Rendering Chips as Interactive Elements

<!-- Affected Element Chip -->
<a href="/airport/EPWA/element/RWY-11/29" 
   class="chip chip-affected-element"
   data-icao="EPWA" 
   data-element-type="RWY" 
   data-identifier="11/29">
  RWY 11/29
</a>

<!-- NOTAM Chip -->
<a href="/notam/7e1b2056-301d-4723-a7e8-d0994fb7d6b6" 
   class="chip chip-notam"
   data-notam-id="7e1b2056-301d-4723-a7e8-d0994fb7d6b6">
  A1234/25
</a>

Last updated