Swedish Healthcare Service - Health Condition Description
0.1.0 - CI Build
Sweden
Swedish Healthcare Service - Health Condition Description - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
This page describes the technical architecture and integration patterns for the Health Condition Description service domain.
graph TB
Consumer[Consumer<br/>EMR/Portal]
Platform[Service Platform<br/>Tjänsteplattform]
Aggregator[Aggregating Service<br/>National/Regional]
EI[Engagement Index<br/>Which systems?]
Source1[Source System 1<br/>Hospital A]
Source2[Source System 2<br/>Clinic B]
SourceN[Source System N<br/>Provider X]
Consumer -->|SOAP Request| Platform
Platform --> Aggregator
Aggregator -->|Query| EI
EI -->|HSA-IDs| Aggregator
Aggregator -->|Parallel Requests| Source1
Aggregator -->|Parallel Requests| Source2
Aggregator -->|Parallel Requests| SourceN
Source1 -->|Response| Aggregator
Source2 -->|Response| Aggregator
SourceN -->|Response| Aggregator
Aggregator -->|Aggregated| Platform
Platform -->|SOAP Response| Consumer
style Consumer fill:#e1f5ff
style Aggregator fill:#fff4e1
style EI fill:#ffe1f5
style Source1 fill:#e1ffe1
style Source2 fill:#e1ffe1
style SourceN fill:#e1ffe1
graph LR
Consumer[Consumer<br/>EMR System]
Platform[Service Platform]
Source[Source System<br/>Local Provider]
Consumer -->|SOAP Request| Platform
Platform -->|Route| Source
Source -->|SOAP Response| Platform
Platform -->|Return| Consumer
style Consumer fill:#e1f5ff
style Source fill:#e1ffe1
The system that requests patient information:
Responsibilities:
Infrastructure layer providing:
Consolidates information from multiple source systems:
National Aggregating Service:
Regional Aggregating Services:
Functions:
Registry of which source systems have information about which patients:
Index Entry Contains:
Benefits:
The authoritative source of patient information:
Responsibilities:
sequenceDiagram
participant C as Consumer
participant A as National Aggregator
participant EI as Engagement Index
participant S1 as Source System 1
participant S2 as Source System 2
participant S3 as Source System 3
C->>A: GetCareDocumentation<br/>(patientId, timePeriod)
A->>EI: Query (patientId, service)
EI-->>A: HSA-IDs [S1, S2, S3]
par Parallel Queries
A->>S1: GetCareDocumentation
A->>S2: GetCareDocumentation
A->>S3: GetCareDocumentation
end
par Parallel Responses
S1-->>A: Documents [1-5]
S2-->>A: Documents [6-12]
S3-->>A: Documents [13-15]
end
A->>A: Aggregate, Sort, Deduplicate
A-->>C: All Documents [1-15]
Use Case: Patient portal needs complete view of patient's care documentation from all care givers nationally.
Benefits:
Considerations:
sequenceDiagram
participant C as Consumer<br/>(Regional EMR)
participant RA as Regional Aggregator
participant EI as Regional EI
participant S1 as Hospital A
participant S2 as Clinic B
C->>RA: GetDiagnosis<br/>(patientId)
RA->>EI: Query Regional Index
EI-->>RA: HSA-IDs [S1, S2]
par Regional Sources
RA->>S1: GetDiagnosis
RA->>S2: GetDiagnosis
end
par Responses
S1-->>RA: Diagnoses [A-D]
S2-->>RA: Diagnoses [E-F]
end
RA-->>C: Regional Diagnoses [A-F]
Use Case: Regional EMR needs diagnosis information from within the region.
Benefits:
sequenceDiagram
participant C as Consumer<br/>(Local EMR)
participant P as Service Platform
participant S as Source System<br/>(Same Organization)
C->>P: GetAlertInformation<br/>(patientId, sourceSystemHSAId)
P->>S: Route to specified system
S->>S: Validate access<br/>Execute query
S-->>P: Alert Information
P-->>C: Alert Information
Use Case: EMR querying its own backend or known system within organization.
Benefits:
Requirements:
sourceSystemHSAId must match logicalAddress in SOAP headerConsumer accesses via aggregating service:
[Consumer]
↓ 1. Request (logicalAddress=Aggregator HSA-ID)
[Aggregating Service]
↓ 2. Query (Which systems have data?)
[Engagement Index]
↓ 3. Response (System A, B, C)
[Aggregating Service]
↓ 4. Parallel requests
[System A] [System B] [System C]
↓ 5. Responses
[Aggregating Service]
↓ 6. Aggregated response
[Consumer]
Use Cases:
Benefits:
Consumer directly queries specific source system:
[Consumer]
↓ 1. Request (logicalAddress=Source System HSA-ID)
[Service Platform]
↓ 2. Route to system
[Source System]
↓ 3. Response
[Consumer]
Use Cases:
Requirements:
Source system notifies about changes:
[Source System]
↓ 1. Update (patient data changed)
[Engagement Index]
↓ 2. ProcessNotification (to subscribers)
[Consumer]
↓ 3. Direct query to source system
[Source System]
↓ 4. Updated data
[Consumer]
Benefits:
The logicalAddress in SOAP header determines routing:
| Address Type | Value | Routes To |
|---|---|---|
| National Aggregator | 5565594230 | Inera's aggregating service |
| Regional Aggregator | Regional HSA-ID | Regional aggregating service |
| Source System | System HSA-ID | Specific source system |
When sourceSystemHSAId specified in request:
logicalAddress in SOAP header[Source System]
↓ Event occurs (new/modified/deleted data)
↓
↓ Update EI entry
↓
[Engagement Index]
↓ Store/update entry
↓
↓ Notify subscribers (if configured)
↓
[Subscribers]
Source systems must update EI when:
Strategies:
Target: < 30 seconds total response time
Design Features:
Capacity Requirements:
Benefits:
TLS/HTTPS:
WS-Security:
Multi-Level:
All access must be logged:
This domain provides READ access only:
Update Propagation:
Eventually Consistent:
For large datasets:
Consumer Producer
│ │
│ Request │
├────────────────>│
│ │
│ Response │
│ (first batch) │
│<────────────────┤
│ │
│ Display batch │
│ │
│ Request more │
├────────────────>│
│ │
│ Next batch │
│<────────────────┤
│ │
Rules:
Technical Errors:
Logical Errors:
Aggregator Behavior:
Retry Strategy:
For source system failures:
graph TB
subgraph National[National Level - Inera]
NAgg[National Aggregating Service<br/>HSA-ID: 5565594230]
NEI[National Engagement Index]
NAgg -.Query.-> NEI
end
subgraph RegionA[Region A]
RAggA[Regional Aggregator A]
REIA[Regional EI]
SA1[Hospital A1]
SA2[Clinic A2]
RAggA -.Query.-> REIA
RAggA --> SA1
RAggA --> SA2
end
subgraph RegionB[Region B]
RAggB[Regional Aggregator B]
REIB[Regional EI]
SB1[Hospital B1]
SB2[Clinic B2]
RAggB -.Query.-> REIB
RAggB --> SB1
RAggB --> SB2
end
subgraph RegionC[Region C]
SC1[Source System C1]
SC2[Source System C2]
end
NAgg --> RAggA
NAgg --> RAggB
NAgg --> SC1
NAgg --> SC2
SA1 -->|Update| NEI
SA2 -->|Update| NEI
SB1 -->|Update| NEI
SB2 -->|Update| NEI
SC1 -->|Update| NEI
SC2 -->|Update| NEI
style National fill:#e1f5ff
style RegionA fill:#fff4e1
style RegionB fill:#fff4e1
style RegionC fill:#ffe1e1
┌─────────────────────────────────────┐
│ Regional Level │
│ │
│ Systems │ │ Systems │
└──────────┘ └──────────┘
┌─────────────────────────────────────┐
│ Regional Level │
│ │
│ ┌────────────────────────────┐ │
│ │ Regional Aggregating Svc │ │
│ └────────────────────────────┘ │
│ │
│ ┌────────────────────────────┐ │
│ │ Regional Engagement Index │ │
│ └────────────────────────────┘ │
│ │
└──────────────┬──────────────────────┘
│
┌─────────┴─────────┐
│ │
┌────▼─────┐ ┌─────▼────┐
│Hospital 1│ │Hospital 2│
│ Systems │ │ Systems │
└──────────┘ └──────────┘
Service Orientation:
Addressing:
HSA Integration:
PDL Compliance:
Each component provides:
Key Performance Indicators:
Alerts triggered on:
Major Versions:
Minor Versions:
Forward Compatibility:
Backward Compatibility:
| Decision | Rationale |
|---|---|
| SOAP/XML | Swedish healthcare standard (RIV) |
| System-based addressing | Source system identification |
| Aggregating services | Simplified consumer integration |
| Engagement index | Efficient querying across systems |
| Read-only access | Separation of concerns |
| Eventual consistency | Scalability and performance |
| Logical errors in response | Clear error communication |
Pull vs Push:
Consistency vs Availability:
Flexibility vs Performance: