1.0Table of Contents

 

Welcome to HAPI FHIR!


1.0.0 Welcome to HAPI FHIR
1.0.0 Table of Contents
1.1.0 Changelog
1.1.1 HAPI FHIR 5.3.0 (Prerelease)
1.1.2 HAPI FHIR 5.2.0 (Numbat)
1.1.3 HAPI FHIR 5.1.0 (Manticore)
1.1.4 HAPI FHIR 5.0.2 (Labrador)
1.1.5 HAPI FHIR 5.0.1 (Labrador)
1.1.6 HAPI FHIR 5.0.0 (Labrador)
1.1.7 HAPI FHIR 4.2.0 (Koala)
1.1.8 HAPI FHIR 4.1.0 (Jitterbug)
1.1.9 HAPI FHIR 4.0.3 (Igloo (Point Release))
1.1.10 HAPI FHIR 4.0.0 (Igloo)
1.1.11 HAPI FHIR 3.8.0 (Hippo)
1.1.12 HAPI FHIR 3.7.0 (Gale)
1.1.13 HAPI FHIR 3.6.0 (Food)
1.1.14 HAPI FHIR 3.5.0
1.1.15 HAPI FHIR 3.4.0
1.1.16 HAPI FHIR 3.3.0
1.1.17 HAPI FHIR 3.2.0
1.1.18 HAPI FHIR 3.1.0
1.1.19 HAPI FHIR 3.0.0
1.1.20 HAPI FHIR 2.5
1.1.21 HAPI FHIR 2.4
1.1.22 HAPI FHIR 2.3
1.1.23 HAPI FHIR 2.2
1.1.24 HAPI FHIR 2.1
1.1.25 HAPI FHIR 2.0
1.1.26 HAPI FHIR 1.6
1.1.27 HAPI FHIR 1.5
1.1.28 HAPI FHIR 1.4
1.1.29 HAPI FHIR 1.3
1.1.30 HAPI FHIR 1.2
1.1.31 HAPI FHIR 1.1
1.1.32 HAPI FHIR 1.0
1.1.33 HAPI FHIR 0.9
1.1.34 HAPI FHIR 0.8
1.1.35 HAPI FHIR 0.7
1.1.36 HAPI FHIR 0.6
1.1.37 HAPI FHIR 0.5
1.1.38 HAPI FHIR 0.4
1.1.39 HAPI FHIR 0.3
1.1.40 HAPI FHIR 0.2
1.1.41 HAPI FHIR 0.1
1.2.0 Introduction
1.2.1 Getting Started
1.2.2 JSON Encoding
1.3.0 FHIR and HAPI FHIR Versions
1.4.0 HAPI FHIR Modules
1.5.0 Downloading and Importing
1.5.1 Maven Users
1.5.2 Gradle Users
1.5.3 Snapshot Builds
1.5.4 Dependencies
2.0.0 Working With The FHIR Model
2.0.0 Working With Resources
2.0.1 Navigating Structures
2.0.2 Convenience Methods
2.0.3 Examples
2.1.0 Parsing and Serializing
2.1.1 Parsing (aka Deserializing)
2.1.2 Encoding (aka Serializing)
2.2.0 Resource References
2.2.1 References in Client Code
2.2.2 References in Server Code
2.2.3 Versioned References
2.3.0 Profiles and Extensions
2.3.1 Extensions
2.3.2 Sub-Extensions
2.3.3 Retrieving Extension Values
2.3.4 Custom Resource Types
2.4.0 Version Converters
2.5.0 Custom Structures
2.5.1 Custom Resource Structure
2.6.0 Narrative Generation
2.6.1 Automatic Narrative Generation
2.6.2 Built-in Narrative Templates
2.6.3 Creating your own Templates
2.7.0 Transaction Builder
2.7.1 Resource Create
2.7.2 Resource Updates
3.0.0 Client
3.0.0 Introduction
3.1.0 Get Started ⚡
3.2.0 Generic (Fluent) Client
3.2.1 Fluent Calls
3.2.2 Search
3.2.3 Create - Type
3.2.4 Read/VRead - Instance
3.2.5 Delete - Instance
3.2.6 Update - Instance
3.2.7 Patch - Instance
3.2.8 History - Server/Type/Instance
3.2.9 Transaction - Server
3.2.10 Capability Statement (metadata) - Server
3.2.11 Extended Operations
3.2.12 Built-In Operations - Process-Message
3.2.13 Additional Properties
3.2.14 ETags
3.3.0 Annotation Client
3.3.1 Configuring Encoding (JSON/XML)
3.4.0 Client Configuration
3.4.1 Performance
3.4.2 Configuring the HTTP Client
3.5.0 Client Examples
3.5.1 Transaction With Conditional Create
3.5.2 Fetch all Pages of a Bundle
4.0.0 Plain Server
4.0.0 REST Server Types
4.1.0 Plain Server Introduction
4.1.1 Defining Resource Providers
4.1.2 Deploying
4.1.3 Testing Using Jetty
4.1.4 Server Base URL (Web Address)
4.1.5 Capability Statement / Server Metadata
4.1.6 Controlling Response Contents / Encoding / Formatting
4.2.0 Get Started ⚡
4.3.0 Resource Providers and Plan Providers
4.3.1 Resource Providers
4.3.2 Plain Providers
4.3.3 Common Method Parameters
4.3.4 REST Exception/Error Handling
4.3.5 Server Lifecycle Methods
4.4.0 REST Operations: Overview
4.4.1 Instance Level - Read
4.4.2 Instance Level - VRead
4.4.3 Instance Level - Update
4.4.4 Instance Level - Delete
4.4.5 Instance Level - Patch
4.4.6 Type Level - Create
4.4.7 Type Level - Search
4.4.8 Type Level - Validate
4.4.9 System Level - Capabilities
4.4.10 System Level - Transaction
4.4.11 System Level - Search
4.4.12 History (Instance, Type, Server)
4.4.13 Exceptions
4.4.14 Tags
4.4.15 Handling _summary and _elements
4.4.16 Compartments
4.5.0 REST Operations: Search
4.5.1 Search with No Parameters
4.5.2 Search Parameters: String Introduction
4.5.3 Search Parameters: Token/Identifier
4.5.4 Search Parameters: Date (Simple)
4.5.5 Search Parameters: Date (Ranges)
4.5.6 Search Parameters: Quantity
4.5.7 Search Parameters: Resource Reference
4.5.8 Search Parameters: Filter
4.5.9 Chained Resource References
4.5.10 Search Parameters: Composite
4.5.11 Combining Multiple Parameters
4.5.12 Multi-Valued (AND/OR) Parameters
4.5.13 AND Relationship Query Parameters for Dates
4.5.14 Resource Includes (_include)
4.5.15 Reverse Resource Includes (_revinclude)
4.5.16 Named Queries (_query)
4.5.17 Sorting (_sort)
4.5.18 Limiting results ()
4.5.19 Paging
4.5.20 Adding Descriptions
4.6.0 REST Operations: Extended Operations
4.6.1 Type-Level Operations
4.6.2 Instance-Level Operations
4.6.3 Server-Level Operations
4.6.4 Using Search Parameter Types
4.6.5 Returning Multiple OUT Parameters
4.6.6 Accepting HTTP GET
4.6.7 Manually handing Request/Response
4.7.0 Paging Search Results
4.7.1 Bundle Providers
4.8.0 Web Testpage Overlay
4.8.1 Adding the Overlay
4.8.2 Customizing the Overlay
4.8.3 A Complete Example
4.8.4 Authentication
4.9.0 Multitenancy
4.9.1 URL Base Multitenancy
4.10.0 JAX-RS Support
4.10.1 JAX-RS Implementation specifics
4.10.2 A Complete Example
5.0.0 JPA Server
5.0.0 Introduction
5.1.0 Get Started ⚡
5.2.0 Architecture
5.2.1 Schema
5.3.0 Database Schema
5.3.1 Background: Persistent IDs (PIDs)
5.3.2 HFJ_RESOURCE: Resource Master Table
5.3.3 HFJ_RES_VER: Resource Versions and Contents
5.3.4 HFJ_FORCED_ID: Client Assigned/Visible Resource IDs
5.3.5 HFJ_RES_LINK: Search Links
5.3.6 Background: Search Indexes
5.3.7 HFJ_SPIDX_DATE: Date Search Parameters
5.4.0 Configuration
5.4.1 Search Result Caching
5.4.2 Additional Information
5.4.3 Cascading Deletes
5.4.4 Version Conflicts
5.5.0 Search
5.6.0 Performance
5.6.1 Bulk Loading
5.6.2 Disabling :text Indexing
5.7.0 Upgrade Guide
5.7.1 Oracle Support
5.7.2 Flyway
5.8.0 Diff Operation
5.8.1 Diff Instance
5.8.2 Diff Instance
5.9.0 LastN Operation
5.9.1 Functional Overview and Parameters
5.9.2 Limitations
5.9.3 Deployment and Configuration
5.10.0 Terminology
5.10.1 Versioning of Terminology
5.10.2 Terminology Schemas
6.0.0 JPA Server: EMPI
6.0.0 EMPI Getting Started
6.1.0 EMPI Rules
6.2.0 EMPI Enterprise Identifiers
6.3.0 EMPI Operations
6.3.1 Querying The EMPI
6.4.0 EMPI Technical Details
6.4.1 Automatic Linking
6.4.2 HAPI EMPI Technical Details
7.0.0 JPA Server: Partitioning and Multitenancy
7.0.0 Partitioning and Multitenancy
7.0.1 Architecture
7.0.2 Partitioning and Resource IDs
7.0.3 Partition Interceptors
7.0.4 Complete Example: Using Request Tenants
7.0.5 Limitations
7.1.0 Partition Interceptor Examples
7.1.1 Example: Partitioning based on Tenant ID
7.1.2 Example: Partitioning based on headers
7.1.3 Example: Using Resource Contents
7.1.4 Example: Always Read All Partitions
7.1.5 Example: Smile CDR SMART Scopes
7.2.0 Partitioning Management Operations
7.2.1 Creating a Partition
7.2.2 Updating a Partition
7.2.3 Deleting a Partition
7.3.0 Enabling Partitioning in HAPI FHIR
8.0.0 Interceptors
8.0.0 Interceptors Overview
8.0.1 Creating Interceptors
8.1.0 Client Interceptors
8.1.1 Registering Client Interceptors
8.2.0 Client Pointcuts
8.3.0 Built-In Client Interceptors
8.3.1 Logging: Logging Interceptor
8.3.2 Security: HTTP Basic Authorization
8.3.3 Security: HTTP Bearer Token Authorization
8.3.4 Misc: Add Headers to Request
8.3.5 Misc: Add Cookies to Request
8.3.6 Multitenancy: Add tenant ID to path
8.3.7 Performance: GZip Outgoing Request Bodies
8.3.8 Capture: Programmatically Capturing Request/Response Details
8.4.0 Server Interceptors
8.5.0 Server Pointcuts
8.5.1 Storage / JPA Server Pointcuts
8.6.0 Built-In Server Interceptors
8.6.1 Logging: Logging Interceptor
8.6.2 Partitioning: Multitenant Request Partition
8.6.3 Response Customizing: Syntax Highlighting
8.6.4 Response Customizing: Exception Handling
8.6.5 Response Customizing: Evaluate FHIRPath
8.6.6 Validation: Request and Response Validation
8.6.7 Security: CORS
8.6.8 Security: Authorization
8.6.9 Security: Consent
8.6.10 Security: Search Narrowing
8.6.11 Security: Rejecting Unsupported HTTP Verbs
8.6.12 Subscription: Subscription Debug Log Interceptor
8.6.13 Request Pre-Processing: Override Meta.source
8.6.14 Utility: ResponseSizeCapturingInterceptor
8.6.15 JPA Server: Allow Cascading Deletes
8.6.16 JPA Server: Disable Referential Integrity for Some Paths
8.6.17 JPA Server: Retry on Version Conflicts
9.0.0 Security
9.0.0 Introduction
9.0.1 Authentication vs Authorization
9.0.2 Authentication Interceptors
9.1.0 Authorization Interceptor
9.2.0 Consent Interceptor
9.3.0 Search Narrowing Interceptor
9.4.0 CORS
9.4.1 HAPI FHIR CORS Interceptor
9.4.2 CORS Servlet Filter
10.0.0 Validation
10.0.0 Introduction
10.1.0 Parser Error Handler
10.2.0 Instance Validator
10.2.1 FHIR Conformance Concepts
10.2.2 FHIR Instance Validator
10.2.3 Running the Validator
10.2.4 Migrating to HAPI FHIR 5.x
10.3.0 Validation Support Modules
10.3.1 Built-In Validation Support Classes
10.3.2 ValidationSupportChain
10.3.3 DefaultProfileValidationSupport
10.3.4 InMemoryTerminologyServerValidationSupport
10.3.5 PrePopulatedValidationSupport
10.3.6 CachingValidationSupport
10.3.7 SnapshotGeneratingValidationSupport
10.3.8 CommonCodeSystemsTerminologyService
10.3.9 RemoteTerminologyServiceValidationSupport
10.3.10 Recipes
10.3.11 Recipe: Supplying Custom Definitions
10.3.12 Recipe: Using a Remote Terminology Server
10.4.0 Schema/Schematron Validator
10.4.1 Preparation
10.4.2 Validating a Resource
10.5.0 Validation Examples
11.0.0 Android
11.0.0 Android Client
11.0.1 Performance
11.0.2 Examples
12.0.0 Tools
12.0.0 Command Line Interface (CLI) Tool
12.0.1 Server (run-server)
12.0.2 Upload Example Resources (upload-examples)
12.0.3 Upload Terminology
12.0.4 Migrate Database
13.0.0 Contributing to HAPI FHIR
13.0.0 Hacking Guide
13.0.1 Understanding the HAPI FHIR Codebase
13.0.2 Getting the Sources
13.0.3 Building HAPI FHIR
13.0.4 Troubleshooting
13.0.5 Importing into Eclipse
14.0.0 Appendix
14.0.0 Logging
14.0.1 Configuring HAPI's Logging - SLF4j
14.0.2 Client Payload Logging
14.0.3 Server Request Logging
14.1.0 FAQ
14.1.1 Getting Help
14.1.2 Using HAPI FHIR
14.1.3 JPA Server
14.1.4 Contributing
14.2.0 JavaDocs