Skip to main content

Focusing Flows

Focusing Flows are the four defined methods for invoking the Focusing process in FOSPS, based on how ePI and IPS/PV data are provided.

The Four Flows

Flow 1: ePI ID + IPS ID

Request contains: Resource identifiers

{
"epiId": "bundle-epi-123",
"ipsId": "bundle-ips-456"
}

Process:

  1. Focusing Manager retrieves ePI from FHIR Server
  2. Retrieves IPS from FHIR Server
  3. Retrieves PV from FHIR Server (if available)
  4. Invokes Preprocessors for p(ePI)
  5. Calls LEE for f(ePI)

Use case: Both resources already cached in platform


Flow 2: ePI JSON + IPS JSON

Request contains: Full FHIR resources

{
"epi": { "resourceType": "Bundle", ... },
"ips": { "resourceType": "Bundle", ... },
"pv": { "resourceType": "Bundle", ... }
}

Process:

  1. Focusing Manager receives complete resources
  2. Invokes Preprocessors for p(ePI)
  3. Calls LEE for f(ePI)

Use case: Client-side focusing, external data sources, privacy-preserving workflows


Flow 3: ePI ID + IPS JSON

Request contains: Mixed identifiers and resources

{
"epiId": "bundle-epi-123",
"ips": { "resourceType": "Bundle", ... }
}

Process:

  1. Focusing Manager retrieves ePI from FHIR Server
  2. Uses provided IPS JSON
  3. Invokes Preprocessors for p(ePI)
  4. Calls LEE for f(ePI)

Use case: ePI cached, IPS from external system


Flow 4: ePI JSON + IPS ID

Request contains: Mixed resources and identifiers

{
"epi": { "resourceType": "Bundle", ... },
"ipsId": "bundle-ips-456"
}

Process:

  1. Focusing Manager uses provided ePI JSON
  2. Retrieves IPS from FHIR Server
  3. Invokes Preprocessors for p(ePI)
  4. Calls LEE for f(ePI)

Use case: ePI from external source, IPS cached in platform


Common Elements

All flows:

API Design

Flows exposed via OpenAPI documented endpoints:

POST /focusing/flow1
POST /focusing/flow2
POST /focusing/flow3
POST /focusing/flow4

Or unified endpoint with request body discrimination:

POST /focusing

Selection Criteria

Choose flow based on:

  • Data location: Cached vs. external
  • Privacy requirements: Keep IPS client-side
  • Performance: Avoid unnecessary transfers
  • Integration: Match external system capabilities