On this page:

1.0Table of Contents

 

This online document contains instructions for how to install Smile CDR, how to plan and execute a deployment that meets your specific needs, how to manage and maintain that deployment, and how to keep it healthy.

If this is your first time reading these documents, we highly recommend you start by reading the Basic Concepts page.


1.0.0 Welcome to Smile CDR
1.0.0 Table of Contents
1.1.0 Changelog (2021 Releases)
1.1.1 Smile CDR 2021.05.R01 (Pre-Release)
1.1.2 Smile CDR 2021.02.R02 (Odyssey)
1.1.3 Smile CDR 2021.02.R01 (Odyssey)
1.1.4 Smile CDR 2020.11.R02 (Numbat)
1.2.0 Changelog (2020 Releases)
1.2.1 Smile CDR 2021.02.R02 (Odyssey)
1.2.2 Smile CDR 2021.02.R01 (Odyssey)
1.2.3 Smile CDR 2020.11.R02 (Numbat)
1.2.4 Smile CDR 2020.11.R01 (Numbat)
1.2.5 Smile CDR 2020.08.R03 (Manticore)
1.2.6 Smile CDR 2020.08.R02 (Manticore)
1.2.7 Smile CDR 2020.08.R01 (Manticore)
1.2.8 Smile CDR 2020.05.R02 (Labrador)
1.2.9 Smile CDR 2020.05.R01 (Labrador)
1.2.10 Smile CDR 2020.02.R01 (Koala)
1.3.0 Changelog (2019 Releases)
1.3.1 Smile CDR 2021.02.R02 (Odyssey)
1.3.2 Smile CDR 2021.02.R01 (Odyssey)
1.3.3 Smile CDR 2020.11.R02 (Numbat)
1.3.4 Smile CDR 2020.11.R01 (Numbat)
1.3.5 Smile CDR 2020.08.R03 (Manticore)
1.3.6 Smile CDR 2020.08.R02 (Manticore)
1.3.7 Smile CDR 2020.08.R01 (Manticore)
1.3.8 Smile CDR 2020.05.R02 (Labrador)
1.3.9 Smile CDR 2020.05.R01 (Labrador)
1.3.10 Smile CDR 2020.02.R01 (Koala)
1.3.11 Smile CDR 2019.11.R01 (Jitterbug)
1.3.12 Smile CDR 2019.08.R01 (Igloo)
1.3.13 Smile CDR 2019.05.R01 (Hippo)
1.3.14 Smile CDR 2019.02.R01 (Gale)
1.4.0 Changelog (2018 Releases)
1.4.1 Smile CDR 2021.02.R02 (Odyssey)
1.4.2 Smile CDR 2021.02.R01 (Odyssey)
1.4.3 Smile CDR 2020.11.R02 (Numbat)
1.4.4 Smile CDR 2020.11.R01 (Numbat)
1.4.5 Smile CDR 2020.08.R03 (Manticore)
1.4.6 Smile CDR 2020.08.R02 (Manticore)
1.4.7 Smile CDR 2020.08.R01 (Manticore)
1.4.8 Smile CDR 2020.05.R02 (Labrador)
1.4.9 Smile CDR 2020.05.R01 (Labrador)
1.4.10 Smile CDR 2020.02.R01 (Koala)
1.4.11 Smile CDR 2019.11.R01 (Jitterbug)
1.4.12 Smile CDR 2019.08.R01 (Igloo)
1.4.13 Smile CDR 2019.05.R01 (Hippo)
1.4.14 Smile CDR 2019.02.R01 (Gale)
1.4.15 Smile CDR 2018.11.R01 (Food)
1.4.16 Smile CDR 2018.09.R01 (Economist)
1.4.17 Smile CDR 2018.05.R01 (Dromedário)
1.4.18 Smile CDR 2018.03.R01 (Crouton)
1.5.0 Changelog (2017 Releases)
1.5.1 Smile CDR 2021.02.R02 (Odyssey)
1.5.2 Smile CDR 2021.02.R01 (Odyssey)
1.5.3 Smile CDR 2020.11.R02 (Numbat)
1.5.4 Smile CDR 2020.11.R01 (Numbat)
1.5.5 Smile CDR 2020.08.R03 (Manticore)
1.5.6 Smile CDR 2020.08.R02 (Manticore)
1.5.7 Smile CDR 2020.08.R01 (Manticore)
1.5.8 Smile CDR 2020.05.R02 (Labrador)
1.5.9 Smile CDR 2020.05.R01 (Labrador)
1.5.10 Smile CDR 2020.02.R01 (Koala)
1.5.11 Smile CDR 2019.11.R01 (Jitterbug)
1.5.12 Smile CDR 2019.08.R01 (Igloo)
1.5.13 Smile CDR 2019.05.R01 (Hippo)
1.5.14 Smile CDR 2019.02.R01 (Gale)
1.5.15 Smile CDR 2018.11.R01 (Food)
1.5.16 Smile CDR 2018.09.R01 (Economist)
1.5.17 Smile CDR 2018.05.R01 (Dromedário)
1.5.18 Smile CDR 2018.03.R01 (Crouton)
1.5.19 Smile CDR 2017.11.R01 (Buccaneer)
1.5.20 Smile CDR 2017.09.R01 (Aardvark)
1.5.21 Smile CDR 2017.07.R01
2.0.0 Getting Started
2.0.0 Basic Concepts
2.0.1 Nodes and Modules
2.0.2 The Cluster Manager Module
2.0.3 Module Dependencies
2.1.0 Platform Requirements
2.1.1 Server Requirements
2.1.2 Java Requirements
2.1.3 Database Requirements
2.1.4 Network Infrastructure
3.0.0 Installation
3.0.0 Installing Smile CDR
3.0.1 Installing to Linux / OSX
3.0.2 Basic Configuration
3.0.3 Quick Start
3.0.4 The Initial Configuration
3.0.5 The Node Configuration Properties File
3.0.6 Module Property Source
3.0.7 Variable Substitution
3.0.8 Fetching Configuration Using Scripts
3.0.9 Configuring Your Database
3.0.10 Starting the CDR
3.0.11 API Gateways
3.1.0 Docker Container Installation
3.1.1 Quick Start
3.1.2 Basic Configuration
3.1.3 Customizing Smile CDR in Docker Container
3.1.4 Using System Environment for Variable Substitution
3.1.5 Configuring Databases for Smile CDR Installed in Container
3.2.0 Unix Service Installation
3.2.1 Testing the Service
3.2.2 Starting Automatically on Boot
3.3.0 Tuning your Installation
3.3.1 Memory Settings
3.4.0 Message Brokers
3.4.1 Subscription Channels
3.4.2 Subscription Channel Names
3.5.0 Message Broker Failure Management
3.6.0 Message Broker: ActiveMQ
3.6.1 Resource Limits
3.7.0 Message Broker: Kafka
3.7.1 Kafka Topic Names
3.8.0 Pre-Seeding Configuration and Data
3.8.1 Pre-Seeding Module Configuration
3.8.2 Pre-Seeding Users
3.8.3 Pre-Seeding OpenID Connect Servers
3.8.4 Pre-Seeding OpenID Connect Clients
3.8.5 Pre-Seeding Packages and FHIR Resources
3.9.0 Upgrading Smile CDR
3.10.0 Localization
3.10.1 Available Localization Strings
4.0.0 Tutorial and Tour
4.0.0 Preamble and Setup
4.0.1 Getting Up to Speed
4.0.2 Preparing Your Instance
4.0.3 Accessing the Web Admin Console
4.0.4 Enabling Anonymous Access to the FHIR Endpoint
4.0.5 Uploading Sample FHIR Resources
4.1.0 FHIR Basics
4.1.1 Resources
4.1.2 Datatypes
4.1.3 Parts of a Resource
4.1.4 Encodings (MIME Types, Wire Formats)
4.2.0 FHIR Search Queries
4.2.1 How Searching Works
4.2.2 Basic Searching: Finding Patients
4.2.3 References: Finding Encounters
4.2.4 Quantities: Finding Laboratory Values
4.2.5 Dates and Times: Narrowing Your Search Window
4.2.6 Paging Search Results
4.2.7 Sorting Search Results
4.2.8 Fulltext Searching
4.2.9 The Patient $everything Search (Across Patient Chart)
4.3.0 FHIR CRUD Operations
4.3.1 Testing Tools
4.3.2 FHIR Create
4.3.3 FHIR Update
4.3.4 FHIR Patch
4.3.5 FHIR Read / vRead
4.3.6 FHIR Delete
4.4.0 SMART on FHIR Apps
4.4.1 Accessing the Web Admin Console
4.4.2 Creating a Client Definition
4.4.3 Enabling SMART on FHIR Requests
4.4.4 Install Growth Chart App
4.4.5 Create Some Test Data
4.4.6 Enable SMART Authorization on FHIR Endpoint
4.4.7 Install a Launch Context Script
4.4.8 Launch SMART on FHIR Growth Chart App
4.5.0 Processing HL7 v2.x Feeds
4.5.1 Transmitting to Smile CDR
4.5.2 ORU (Observation Result) Messages
4.5.3 ADT (Admission/Discharge/Transfer) Messages
4.6.0 FHIRPath Expressions
4.6.1 Testing FHIRPath Expressions
4.6.2 Expression: Extension With Reference Value
4.6.3 Expression: Contained Resource
4.6.4 Expression: Bundle (FHIR Message) Entry Resource
4.6.5 Expression: Bundle (FHIR Document) Entry Resource
4.6.6 Expression: Multiple Paths
5.0.0 FHIR Storage
5.0.0 Concepts in Smile CDR
5.0.1 The FHIR Storage Module
5.0.2 The FHIR REST Endpoint Module
5.0.3 Clustering
5.1.0 FHIR Storage (Relational) Module
5.1.1 Preparing for a New Installation
5.1.2 Creating the Module
5.1.3 Database Schema
5.1.4 Configuration
5.2.0 FHIR Storage (MongoDB) Module
5.2.1 Preparing for a New Installation
5.2.2 Creating the Module
5.2.3 MongoDB Document Schema
5.2.4 MongoDB Uplift Search Parameter Extensions
5.2.5 Uplifting Tokens
5.2.6 Uplifting Reference Chains
5.2.7 Configuration
5.2.8 MongoDB vs RDBMS Support Comparison
5.3.0 FHIR Endpoint Module
5.3.1 Creating the Module
5.3.2 Capturing Source Information
5.3.3 Validation
5.3.4 Configuration
5.4.0 FHIRWeb Console
5.4.1 Architecture
5.4.2 Security
5.4.3 Creating the Module
5.4.4 Using the Console
5.4.5 Configuration
5.5.0 Lucene Indexing
5.5.1 Lucene Disk Provider
5.5.2 Elasticsearch Provider
5.6.0 Performance and Caching
5.6.1 The Query Cache
5.6.2 Search Counts
5.6.3 Improving Write Performance
5.7.0 Resource IDs
5.7.1 Server Assigned IDs
5.7.2 Client Assigned IDs
5.8.0 Search Parameters
5.8.1 Search Parameter Concepts
5.8.2 Default Search Parameters
5.8.3 Managing Search Parameters
5.8.4 Search Parameter Statistics
5.8.5 Filter Search Parameter
5.8.6 Manual Reindexing
5.9.0 Search Parameter Features
5.9.1 Index Missing Search Parameters (:missing)
5.9.2 Index Text on Tokens (:text)
5.10.0 Phonetic Search Parameters
5.11.0 Custom Search Parameters
5.11.1 An Example Search Parameter
5.11.2 Search Parameter Expressions
5.11.3 Enforcing Uniqueness
5.12.0 Partitioning and Multitenancy
5.12.1 Enabling Partitioning in Smile CDR
5.12.2 Request Partition Selection Mode
5.12.3 Request Partition Security
5.12.4 Tenant Identification Strategies
5.12.5 Seeding Partitions
5.12.6 Cross-Partition References
5.13.0 Searching for Data
5.13.1 FHIR Search Extensions
5.13.2 Unsupported Search Parameters
5.14.0 Creating Data
5.14.1 Transactions and Submitting Bundles
5.14.2 Auto Creating Reference Targets
5.14.3 Transaction With Conditional Create
5.14.4 Auto-Create Placeholder Reference Targets
5.14.5 Auto-Create Placeholder Reference Targets with Identifier
5.15.0 Reading Data
5.15.1 Diff Operation
5.15.2 Diff Instance
5.15.3 Diff Type
5.16.0 Updating Data
5.16.1 Patching Data
5.16.2 Tag Retention
5.16.3 Concurrent Write Errors
5.17.0 Deleting Data
5.17.1 Deletes and Referential Integrity
5.17.2 Transactional Delete
5.17.3 Referential Integrity
5.17.4 Cascading Deletes
5.17.5 The $expunge Operation
5.18.0 Binary Data
5.18.1 Externalized Binary Storage
5.18.2 Binary Access Operations
5.18.3 Serving Raw Media Resources
5.19.0 Request Tracing and Provenance
5.19.1 Request Tracing
5.19.2 Performance Tracing
5.19.3 Storing Source Information
5.20.0 FHIR Versions
5.21.0 Versioned Resource References
5.21.1 Allow Versioned References
5.21.2 Automatically Version References
5.22.0 Clinical Quality Language (CQL)
5.22.1 Evaluate Measure
6.0.0 Validation and Conformance
6.0.0 Introduction
6.0.1 Validation Modes
6.1.0 Validation Support Repository
6.1.1 Potential Architectures
6.1.2 Single FHIR Repository (RDBMS)
6.1.3 Dedicated Validation Support Repository
6.1.4 Non-Repository Models
6.2.0 Conformance Data
6.2.1 StructureDefinition resources
6.2.2 CodeSystem Resources
6.2.3 ValueSet Resources
6.3.0 Repository Validation
6.3.1 Validation Support Repository
6.3.2 Methods
6.3.3 Validating References
6.4.0 Repository Validation: Java
6.5.0 Repository Validation: Javascript
6.5.1 Function: repositoryValidationProvideRules(theRuleBuilder)
6.5.2 Example: Require a Specific Profile
6.5.3 Example: Allow Several Profiles for a Resource Type
6.5.4 Example: Require Profile and Validate
6.6.0 Endpoint Validation
6.7.0 Packages and Implementation Guides
6.7.1 Background: Implementation Guides
6.7.2 Background: Packages
6.7.3 Ingesting Packages into Smile CDR
6.7.4 Package Pre-Seed Installation
6.7.5 Pre-Seeding Resources into the Repository
6.7.6 Package Registry Endpoint module
6.7.7 Creating Packages
6.8.0 Remote Terminology Services
6.8.1 Scope
6.8.2 Remote Server Requirements
7.0.0 Terminology
7.0.0 Terminology Introduction
7.1.0 Uploading Codes
7.1.1 Uploading External CodeSystems
7.1.2 Uploading LOINC
7.1.3 Uploading SNOMED CT
7.1.4 Uploading Custom Vocabularies
7.1.5 Applying Deltas to External CodeSystems
7.1.6 Delta Add Operation: $apply-codesystem-delta-add
7.1.7 Delta Remove Operation: $apply-codesystem-delta-remove
7.1.8 Reference: CSV Vocabulary Input Files
7.2.0 Searching for Codes
8.0.0 Subscription
8.0.0 Introduction
8.0.1 The Subscription Resource
8.0.2 Subscription Activation
8.0.3 Criteria
8.0.4 Troubleshooting Subscriptions
8.1.0 Architecture
8.1.1 Enabling and Configuring Subscription Processing
8.2.0 Channel Types
8.2.1 Channel Type: rest-hook
8.2.2 Channel Type: email
8.2.3 Channel Type: websocket
8.2.4 Channel Type: message
8.3.0 Delivery Options
8.3.1 Payload Search Result Mode
8.3.2 Replication Mode
8.3.3 Strip Version IDs
8.3.4 Delivering Latest Version
8.3.5 Custom Delivery Class
8.3.6 Delivery to Site-defined External Queue
8.4.0 Manual Triggering
9.0.0 Interceptors
9.0.0 Interceptors
9.0.1 HAPI FHIR and Smile CDR Pointcuts
9.0.2 Deploying Interceptors to Smile CDR Modules
9.1.0 Starter Project
9.1.1 Using the Starter Project
9.2.0 Examples: FHIR Endpoints
9.2.1 Example: Override CapabilityStatement Generation
9.3.0 Examples: FHIR Storage
9.3.1 Example: Response Attribute Enhancement
9.4.0 Examples: FHIR Gateway
9.4.1 Example: Direct Search based on Parameter Value
9.4.2 Example: Modify Target Search based on Previous Target Search
10.0.0 LiveBundle
10.0.0 LiveBundle Overview
10.0.1 Configuration
10.0.2 Usage
10.0.3 LiveBundle Architecture
10.0.4 LiveBundle Aggregation
10.0.5 LiveBundle Retrieval
10.0.6 LiveBundle Seeding
10.0.7 LiveBundle Troubleshooting
10.1.0 LiveBundle API
10.1.1 Add a Subscriber to a Watchlist
10.1.2 Remove Subscriber from a Watchlist
10.1.3 View list of Subscribers to a Watchlist
10.1.4 Request a bundle of Subscribers to a watchlist
10.1.5 Reseed all bundles for a rule
10.1.6 Request a LiveBundle
10.2.0 LiveBundle Rule Definition
10.2.1 Loading Rules
10.2.2 Example LiveBundle Javascript
10.2.3 LiveBundle Watchlist
10.2.4 LiveBundle Rule
10.2.5 LiveBundle Filter
10.2.6 Keeper Filters
10.2.7 LiveBundle Keeper
10.3.0 LiveBundle Keepers
10.3.1 LiveBundle Keeper Examples
10.3.2 LatestByPath
10.3.3 LatestByParamPath
10.3.4 LatestByParamPathByMonth
10.3.5 ToggleByPath
10.3.6 ToggleBySearch
10.3.7 WatchlistPopulator
10.3.8 Optional Keeper Parameters
11.0.0 Channel Import
11.0.0 Channel Import Overview
11.0.1 Enabling and Configuring Channel Import
12.0.0 Realtime Export
12.0.0 Realtime Export Overview
12.0.1 Operational Overview
12.0.2 Limitations
12.0.3 Troubleshooting
12.1.0 Realtime Export Rules Definition
12.1.1 Transformers
12.1.2 Named Transformers
12.1.3 Managing high-cardinality elements
12.2.0 Using FHIRPath
12.2.1 Collection Subsetting
12.2.2 Self-referral
12.2.3 Conditionals
12.3.0 Debezium
13.0.0 Security
13.0.0 Security in Smile CDR
13.0.1 Inbound Security Module
13.0.2 FHIR Listener Module
13.0.3 Admin Modules
13.0.4 Auth Directory
13.0.5 Audit Database
13.0.6 Outbound Security Modules
13.1.0 Authentication Protocols
13.1.1 HTTP Basic
13.1.2 OpenID Connect (OIDC) and SMART on FHIR
13.1.3 Security Access Markup Language (SAML)
13.2.0 Authorization and Consent
13.2.1 Authorization Service
13.2.2 Consent Service
13.3.0 Inbound Security Module
13.3.1 Permissions
13.3.2 Callback Script
13.4.0 Local Inbound Security Module
13.4.1 Configuration: Credentials
13.4.2 Caching
13.5.0 LDAP Inbound Security Module
13.5.1 Requirements
13.5.2 Permissions
13.5.3 Callback Scripts
13.5.4 Configuration
13.6.0 Scripted Inbound Security Module
13.6.1 Script Format
13.6.2 Script Examples
13.7.0 SAML Inbound Security Module
13.7.1 SAML 2.0 Authentication Request Protocol
13.7.2 Enabling SAML Authentication
13.7.3 Entity ID Template
13.7.4 Authentication Scripts
13.7.5 Function: authenticate(theRequest, theOutcomeFactory)
13.8.0 Trusted Client Mode
13.8.1 Configuring Trusted Client Mode
13.8.2 Making Trusted Client Requests
13.8.3 Automatically Creating Users
13.9.0 Roles and Permissions
13.9.1 System-Defined Roles
13.9.2 System-Defined Permissions
13.10.0 Callback Scripts
13.10.1 Method: onAuthenticateSuccess
13.11.0 Anonymous Access
13.12.0 Consent Service
13.12.1 Enabling the Consent Service
13.12.2 Method: consentStartOperation
13.12.3 Method: consentCanSeeResource
13.12.4 Method: consentWillSeeResource
13.12.5 Method: completeOperationSuccess
13.12.6 Method: completeOperationFailure
13.12.7 Example: Tag-Based Consent Script
13.12.8 Example: Scope-Based Consent Script
13.13.0 Security Recipes
13.13.1 App: Local Users with HTTP Basic Authentication
13.13.2 Integrating SMART Apps With a 3rd-Party OIDC Server
13.14.0 Two Factor Authentication
13.14.1 User Activating TOTP
13.14.2 Enforcing Two Factor Authentication
13.15.0 Troubleshooting Security
14.0.0 SMART on FHIR
14.0.0 SMART on FHIR: Introduction
14.0.1 The SMART Launch Sequence
14.0.2 The Interactive Launch Process
14.1.0 SMART: Scopes
14.1.1 Picking Scopes
14.1.2 Launch Context Scopes
14.1.3 The OpenID and Profile Scopes
14.2.0 SMART: Auth Flows
14.2.1 Launch Flow: Authorization Code
14.2.2 Launch Flow: Implicit Grant
14.2.3 Launch Flow: Resource Owner Password Credentials
14.2.4 Non-Interactive User Flow: Cross-Organization Data Access Profile
14.2.5 System Flow: Client Credentials
14.2.6 System Flow: Refresh
14.3.0 SMART: Endpoints
14.3.1 Server Metadata Endpoint
14.3.2 UserInfo Endpoint
14.4.0 Client Management
14.4.1 Remembering Approved Scopes
14.4.2 Client Secrets
14.5.0 SMART: Smile CDR Support
14.5.1 Supported Scopes
14.5.2 Online / Offline Access
14.6.0 SMART Outbound Security Module
14.6.1 Setting Up This Module
14.6.2 SMART Callback Script
14.6.3 Client Credentials Grant
14.6.4 Cross-Organization Data Access Profile Grant
14.6.5 Skinning the Server
14.7.0 SMART: Federated OAuth2/OIDC Login
14.7.1 Federated Flow
14.7.2 Considerations
14.7.3 Setting Up Federated OAuth2/OIDC Login
14.7.4 Authorization Script
14.8.0 SMART: Application Approval/Consent
14.8.1 Approval Overview
14.8.2 Auto-Approve / Auto-Grant Scopes
14.8.3 Approval Flow
14.8.4 Customizing Scope Names
14.8.5 Custom Security Scopes
14.8.6 Revocation Page
14.9.0 SMART Inbound Security Module
14.9.1 Architecture
14.9.2 Models for Using External OIDC Servers
14.9.3 Requirements
14.9.4 Setting Up This Module
14.9.5 Accepting Tokens
14.9.6 Accepting Internal Access Tokens
14.9.7 Accepting External Access Tokens
14.9.8 Creating a Server Definition
14.10.0 SMART: Session Management
14.10.1 Token Revocation Endpoint
14.10.2 User Logout Endpoint
14.11.0 SMART: Assigning Permissions
14.11.1 Scope Permission Model
14.11.2 User and Patient Resource Linkage
14.12.0 SMART: Access Tokens
15.0.0 FHIR Hybrid Providers
15.0.0 Hybrid Providers
15.0.1 Architecture
15.0.2 Resource Providers
15.0.3 The Spring Context Config Class
15.0.4 Building Your Hybrid Providers
15.0.5 Deploying Your Hybrid Providers
15.0.6 Accessing Security Attributes
15.0.7 Exceptions
15.0.8 Example Project
16.0.0 CDS-Hooks
16.0.0 CDS-Hooks
16.0.1 Auto Prefetch
16.0.2 Architecture
16.0.3 CDS-Hooks classes
16.0.4 The Spring Context Config Class
16.0.5 Building Your CDS-Hooks
16.0.6 Deploying Your CDS-Hooks
16.0.7 Accessing Security Attributes
16.0.8 Exceptions
16.0.9 Calling CDS-Hooks
16.0.10 Example Project
17.0.0 FHIR Gateway
17.0.0 FHIR Gateway Introduction
17.0.1 Smile CDR 2020.02 Gateway Redesign
17.1.0 Configuration
17.1.1 Defining Targets
17.1.2 Defining Search Routes
17.1.3 Defining Read Routes
18.0.0 EMPI
18.0.0 Enterprise Master Patient Index
19.0.0 Master Data Management
19.0.0 MDM
19.0.1 Getting Started with Smile CDR MDM
19.0.2 Enabling and Configuring MDM within Smile CDR
19.0.3 Troubleshooting
19.0.4 MDM User Interface
19.0.5 MDM Scenarios
19.1.0 MDM Quickstart Guide
19.2.0 MDM Survivorship Rules
19.3.0 Upgrading from the EMPI module
20.0.0 Clustering
20.0.0 Designing a Cluster
20.0.1 Node and Module Design
20.0.2 Process IDs
20.0.3 Adding and Removing Processes
20.0.4 Multi-Node Clusters
20.0.5 Sample Architecture
20.1.0 Migration To 2020.02
20.1.1 Migrating Existing Clusters
21.0.0 Logging
21.0.0 Overview
21.1.0 Audit Log
21.1.1 Audit Log Configuration
21.1.2 Disabling the Audit Log
21.1.3 Broker Audit Log
21.2.0 Transaction Log
21.2.1 Disabling the Transaction Log
21.2.2 Transaction Log Configuration
21.2.3 Event Types and SubTypes
21.3.0 System Logging
21.3.1 Changing Logging Settings
21.4.0 Troubleshooting Logs
21.4.1 HTTP Troubleshooting Log
21.4.2 Security Troubleshooting Log
21.4.3 Subscription Troubleshooting Log
21.4.4 LiveBundle Troubleshooting Log
21.4.5 MDM Troubleshooting Log
21.4.6 Channel Import Troubleshooting Log
21.4.7 Realtime Export Troubleshooting Log
22.0.0 HL7 v2.x Support
22.0.0 Introduction
22.0.1 Inbound HL7 v2.x Support
22.0.2 Outbound HL7 v2.x Support
22.0.3 HL7 v2.x Versions
22.1.0 Inbound Messaging
22.1.1 Processing
22.1.2 Callback Scripts
22.1.3 Function: onPreConvertHl7V2ToFhir(theMessage, theConversionResult)
22.1.4 Function: onPostConvertHl7V2ToFhir(theMessage, theConversionResult)
22.1.5 Adding Processing Messages
22.2.0 Outbound Messaging
22.2.1 Enriching Message Conversion using Scripts
22.2.2 Function: onPostConvertFhirToHl7V2(theTriggerResource, theOutgoingMessage, theContext)
22.2.3 Using Persisted MessageHeader Resources
22.3.0 Transactions
22.3.1 ADT (Patient Administration) Domain
22.3.2 OMG (Orders) Domain
22.3.3 ORU (Results) Domain
22.3.4 RDE/RAS (Pharmacy) Domain
22.4.0 Structure Definitions
22.4.1 Structure: ADT_A01
22.4.2 Structure: ADT_A02
22.4.3 Structure: ADT_A03
22.4.4 Structure: ADT_A05
22.4.5 Structure: ADT_A06
22.4.6 Structure: ADT_A09
22.4.7 Structure: ADT_A12
22.4.8 Structure: ADT_A17
22.4.9 Structure: ADT_A21
22.4.10 Structure: ADT_A30
22.4.11 Structure: ADT_A38
22.4.12 Structure: ADT_A39
22.4.13 Structure: ADT_A44
22.4.14 Structure: ADT_A45
22.4.15 Structure: ADT_A54
22.4.16 Structure: ADT_A60
22.4.17 Structure: ADT_A61
22.4.18 Structure: OMG_O19
22.4.19 Structure: ORU_R01
22.4.20 Structure: RAS_O17
22.4.21 Structure: RDE_O11
22.5.0 Segment Definitions
22.5.1 Segment: MSH (Message Header)
22.5.2 Segment: PID (Patient)
22.5.3 Segment: PV1 (Visit/Encounter)
22.5.4 Segment: ROL (Role)
22.5.5 Segment: DG1 (Diagnosis)
22.5.6 Segment: PR1 (Procedure)
22.5.7 Segment: MRG (Merge Patient Information)
22.5.8 Segment: GT1 (Guarantor)
22.5.9 Segment: IN1 (Insurance)
22.5.10 Segment: IN2 (Insurance Additional Information)
22.5.11 Segment: ORC (Order Control)
22.5.12 Segment: OBR (Observation Request)
22.5.13 Segment: OBX (Observation)
22.5.14 Segment: NK1 (Next of Kin / Patient Contact)
22.5.15 Segment: NTE (Note)
22.5.16 Segment: RXA (Pharmacy Administration)
22.5.17 Segment: RXC (Pharmacy Component)
22.5.18 Segment: ZXC (Pharmacy Component)
22.5.19 Segment: RXE (Pharmacy Encoded Order)
22.5.20 Segment: RXR (Pharmacy Route)
22.5.21 Segment: IAM (Patient Adverse Reaction)
22.5.22 Segment: SPM (Specimen)
22.5.23 Segment: ZXT (Non-Standard)
22.5.24 A Note about Extra Components
22.6.0 Table Definitions
22.6.1 Table 0001: Administrative Sex
22.6.2 Table 0002: Marital Status
22.6.3 Table 0004: Patient Class
22.6.4 Table 0038: Order Status
22.6.5 Table 0052: Diagnosis Type
22.6.6 Table 0063: v2 Relationship
22.6.7 Table 0074: Dianostic Service Section ID
22.6.8 Table 0078: Observation Interpretation Codes
22.6.9 Table 0085: Observation Status
22.6.10 Table 0119: Order Control
22.6.11 Table 0125: Observation Value Type
22.6.12 Table 0127: Allergen Type
22.6.13 Table 0128: Allergen Severity
22.6.14 Table 0131: v2 Contact Role
22.6.15 Table 0136: Yes/No
22.6.16 Table 0166: RX Component Type
22.6.17 Table 0190: Address Type
22.6.18 Table 0200: Name Type Code
22.6.19 Table 0201: Telecom Use
22.6.20 Table 0202: Telecom Equipment Type
22.6.21 Table 0203: Identifier Type
22.6.22 Table 0271: Result Status
22.6.23 Table 0322: Completion Status
22.6.24 Table 0438: Allergy Clinical Status Code
22.7.0 Naming System Mapping
22.7.1 Default Mappings
22.7.2 Using NamingSystem for Mapping Identifiers
22.8.0 Processing Results Feeds
22.8.1 Unsolicited Observation Request (ORU^R01)
22.9.0 Protocol
22.9.1 Encoding Format
22.9.2 ER7 (Pipe-Delimited) Format
22.9.3 Minimal Lower Layer Protocol (MLLP) Transport
22.9.4 HL7 over HTTP
22.9.5 Character Encoding / Charsets
23.0.0 CDA Exchange Module
23.0.0 Introduction
23.1.0 JavaScript Templates
23.1.1 The simplest CDA template script
23.1.2 Adding header information to our CDA template script
23.1.3 Adding and populating a section in our CDA template script
23.1.4 Using the Fhir.search() API to dynamically populate sections
23.1.5 Specifying input parameters
23.1.6 More complicated input parameters
23.1.7 Putting it all together
23.2.0 Rest API Operations
23.2.1 Endpoints for configuring templates
23.2.2 Endpoints for applying templates
23.3.0 Available Document and Section Types
23.3.1 Valid Document Types
23.3.2 Valid Resources for the header
23.3.3 Valid Section Types and Sources
23.3.4 Allergy and Intolerances Section
23.3.5 Medications Section
23.3.6 Problem Section
23.3.7 Results Section
23.3.8 Social History Section
23.3.9 Vital Signs Section
23.3.10 Dialysis Prescription Section
23.3.11 Reason for Referral Section
23.4.0 Further Reading
24.0.0 Bulk Operations
24.0.0 ETL Import Module
24.0.1 Importing CSV Data
24.0.2 Ingesting Data
24.1.0 FHIR Bulk Export Operation
24.1.1 Enabling Bulk Export
24.1.2 Supported Requests
24.1.3 Requesting A Bulk Extract
24.1.4 Retrieving Data
25.0.0 Monitoring
25.0.0 Monitoring Basics
25.0.1 HTTP Endpoint Health Check
25.0.2 Runtime Health Checks
25.1.0 Elastic APM Basics
25.1.1 What is APM?
25.1.2 Setting Up an APM Server
25.1.3 Instrumenting Smile CDR and the JVM
25.1.4 Accessing the User Interface
25.1.5 Configuring Settings for the Agent
25.1.6 Securing the Agent
26.0.0 JSON Admin Endpoints
26.0.0 JSON Admin API
26.0.1 Security
26.0.2 Format
26.0.3 Allowing Anonymous Access
26.1.0 Audit Log Endpoint
26.1.1 Fetch Audit Log
26.1.2 Fetch Individual Event
26.2.0 Bulk Import Endpoint
26.2.1 Process ETL File
26.2.2 Smileutil: CSV Bulk Import File
26.3.0 CDA Exchange Endpoint
26.3.1 Create CDA Template
26.3.2 Update CDA Template
26.3.3 Update CDA Template script via text
26.3.4 View CDA Template(s)
26.3.5 Delete CDA template
26.3.6 Use / Apply CDA Template
26.3.7 Create CDA from Composition/Bundle
26.3.8 Example CDA Template
26.4.0 Metrics Endpoint
26.4.1 Fetch Local Metrics
26.4.2 Capture Thread Dump
26.5.0 Module Config Endpoint
26.5.1 Fetch Config: Module Property File
26.5.2 Fetch Config: All Modules
26.5.3 Fetch Config: Single Module
26.5.4 Create Module
26.5.5 Set Module Config
26.5.6 Start Module
26.5.7 Stop Module
26.5.8 Restart Module
26.5.9 Archive Module
26.6.0 OpenID Connect Clients Endpoint
26.6.1 Fetch All OpenID Connect Client Definitions
26.6.2 Fetch Individual Client by Client ID
26.6.3 Create Client
26.6.4 Update Client
26.6.5 Create Client and generate secrets
26.7.0 OpenID Connect Servers Endpoint
26.7.1 Fetch All OpenID Connect Server Definitions
26.7.2 Find OpenID Connect Server Definition
26.7.3 Create OpenID Connect Server Definition
26.7.4 Update OpenID Connect Server Definition
26.8.0 Runtime Status Endpoint
26.8.1 Fetch Complete Node Status Information
26.8.2 Fetch All Runtime Health Checks
26.9.0 Transaction Log Endpoint
26.9.1 Fetch Transaction Log
26.9.2 Fetch Individual Event
26.10.0 User Management Endpoint
26.10.1 Search for Users (All Modules)
26.10.2 Search for Users (Specific Module)
26.10.3 Create User
26.10.4 Update User
26.10.5 Update Password
26.10.6 Update Own Password
26.10.7 Update Own Default Launch Contexts
26.10.8 2FA: Create New Key
26.10.9 2FA: Generate QR Code
26.10.10 2FA: Confirm Key
26.10.11 2FA: Delete Key
26.10.12 Invalidate All Sessions
27.0.0 Product Configuration
27.0.0 HTTP Server Setup
27.0.1 Respecting Forward Headers
27.0.2 Specifying a Custom Context Path
27.0.3 Access Logs
27.0.4 Frame Options
27.1.0 TLS and HTTPS Reference
27.1.1 Background
27.1.2 Creating a Self-Signed KeyStore
27.1.3 Importing a LetsEncrypt Certificate into a KeyStore
27.1.4 Selecting Ciphers and Protocol
27.1.5 Enabling TLS Mutual Authentication (Client Auth)
28.0.0 Java Execution Environment
28.0.0 Security Attributes
28.1.0 Library Support
28.2.0 Exception Handling
28.3.0 Javadocs
29.0.0 JavaScript Execution Environment
29.0.0 Introduction
29.1.0 Converter API
29.1.1 Method: hl7v2TsToFhirDate(dt);
29.1.2 Method: hl7v2TsToFhirDateTime(ts);
29.1.3 Method: hl7v2TsToFhirDateTime(ts, impliedTimeZone);
29.1.4 Method: urlDecode(string);
29.1.5 Method: urlEncode(string);
29.2.0 Environment API
29.3.0 Exceptions API
29.3.1 Method: Exceptions.newTrustedException(theMessage)
29.3.2 Method: Exceptions.newTrustedException(theStatusCode, theMessage)
29.4.0 OAuth2 Exceptions API
29.4.1 Method: OAuth2Exceptions.newUnauthorizedException(theMessage)
29.4.2 Method: OAuth2Exceptions.newForbiddenException(theMessage)
29.5.0 FHIR REST API
29.5.1 Method: create(resource)
29.5.2 Method: read(url)
29.5.3 Method: search().forResource(resourceType)
29.5.4 Method: transaction(IBundleBuilder theTransaction)
29.5.5 Method: translate()
29.5.6 Method: update(resource)
29.5.7 Authentication
29.5.8 Tenant Selection
29.6.0 FHIR Model API
29.6.1 Method: ResourceBuilder.build(resourceType)
29.6.2 Working with Resources
29.6.3 Working with Composition resources
29.6.4 Working with Bundle resources
29.6.5 Contained Resources
29.6.6 Meta Elements
29.6.7 Removing Data
29.7.0 HL7 v2.x Mapping API
29.7.1 Repetitions
29.7.2 Structure Interrogation
29.7.3 Content Clearing
29.7.4 Content Interrogation
29.7.5 Parsing Raw Field Values
29.7.6 Encoding
29.7.7 The Hl7V2 Object
29.7.8 Working with Variable Datatypes
29.7.9 Working with Z-Segments
29.8.0 HTTP API
29.8.1 Request Creation Methods
29.8.2 Request Execution Methods
29.8.3 Response Processing Methods
29.8.4 TLS / HTTPS
29.9.0 LDAP API
29.9.1 Method: searchByUsername(username)
29.9.2 Method: getStringAttributes(attributeName)
29.9.3 Method: isMemberOfGroup(groupDn)
29.10.0 Log API
29.10.1 Methods: debug(string), info(string), warn(string), error(string)
29.11.0 Composition Resource API
29.11.1 Method: set*(value)
29.11.2 Method: setDate(epoch)
29.11.3 Method: setType(documentType)
29.11.4 Method: addSection(sectionType)
29.12.0 Composition Section API
29.12.1 Method: populate(List resources)
29.12.2 Method: setTitle(title)
29.12.3 Method: setCode(system, code, display)
29.13.0 TransactionBuilder API
29.13.1 Method: newTransactionBuilder()
29.13.2 Method: create(resource)
29.13.3 Method Chain: createConditional(resource).onToken(parameter, system, value)
29.13.4 Method Chain: updateConditional(resource).onToken(parameter, system, value)
29.13.5 Methods: toXml(), toXml(prettyPrint), toJson(), toJson(prettyPrint)
29.13.6 Fhir.transaction(transaction)
29.14.0 Util API
29.14.1 Method: sleep(millis)
29.15.0 UUID API
29.15.1 Method: newPlaceholderId()
29.16.0 XML API
29.16.1 XPath Expressions
29.16.2 Function: getXPathValue(xpath)
29.16.3 Function: getXPathValues(xpath)
29.16.4 Function: getXPathElements(xpath)
29.17.0 Callback Models
29.17.1 AssociatedResource
29.17.2 AuthenticationContext
29.17.3 AuthenticationFailure
29.17.4 AuthenticationRequest
29.17.5 GatewayConfiguration
29.17.6 GatewayReadRoute
29.17.7 GatewayReadRouteTarget
29.17.8 GatewaySearchRoute
29.17.9 GatewaySearchRouteTarget
29.17.10 GatewayTarget
29.17.11 GrantedAuthority
29.17.12 Hl7V2GeneratedMessageContext
29.17.13 Hl7V2ReceivedMessageConversionResult
29.17.14 Hl7V2ReceivedMessage
29.17.15 LaunchContext
29.17.16 LaunchResourceId
29.17.17 OAuth2AuthorizationRequestDetails
29.17.18 OAuth2Client
29.17.19 OAuth2ClientSecret
29.17.20 OAuth2Clients
29.17.21 OAuth2Server
29.17.22 OAuth2Servers
29.17.23 Oauth2InvalidateTokensResponseJson
29.17.24 PackageInstallationSpec
29.17.25 PartitionDefinition
29.17.26 PartitionDefinitions
29.17.27 RequestDetailsJson
29.17.28 ScriptAuthenticationOutcomeFactory
29.17.29 ScriptConsentContextServices
29.17.30 SecurityInLdapAuthenticationContext
29.17.31 SecurityInSmartAuthenticationContext
29.17.32 SmartCodapAuthorizationRequest
29.17.33 SmartOnPostAuthorizeDetails
29.17.34 UserDetailsChangeLaunchContextJson
29.17.35 UserDetails
29.17.36 UserDetailsList
29.17.37 UserSessionDetails
30.0.0 Database Administration
30.0.0 Database Design
30.0.1 Cluster Manager Database
30.0.2 FHIR Relational Storage
30.0.3 FHIR MongoDB (Non-Relational) Storage
30.1.0 Setting Up PostgreSQL
30.1.1 Supported Versions
30.1.2 Creating a Database for Smile CDR
30.1.3 Database Connection Properties
30.1.4 Setting up a Cluster Manager Database
30.1.5 Setting up a FHIR Storage (Relational) Database
30.2.0 Troubleshooting PostgreSQL
30.2.1 Host Name Verification Error
30.3.0 Setting Up MySQL
30.3.1 Supported Versions
30.3.2 Creating a Database for Smile CDR
30.3.3 Database Connection Properties
30.3.4 Setting up a Cluster Manager Database
30.3.5 Setting up a FHIR Storage (Relational) Database
30.4.0 Setting Up MariaDB
30.4.1 Supported Versions
30.4.2 Creating a Database for Smile CDR
30.4.3 Database Connection Properties
30.4.4 Setting up a Cluster Manager Database
30.4.5 Setting up a FHIR Storage (Relational) Database
30.5.0 Setting Up Oracle
30.5.1 Supported Versions
30.5.2 Setting up a Cluster Manager Database
30.5.3 Setting up a FHIR Storage (Relational) Database
30.6.0 Setting Up SQL Server (MSSQL)
30.6.1 Supported Versions
30.6.2 Creating a Database for Smile CDR
30.6.3 Database Connection Properties
30.6.4 Setting up a Cluster Manager Database
30.6.5 Setting up a FHIR Storage (Relational) Database
31.0.0 Smile CDR CLI (smileutil)
31.0.0 Introduction
31.0.1 Enabling Debug Logging
31.1.0 Execute Script Function
31.1.1 Usage
31.1.2 Options
31.1.3 A Complete Example: Authenticate
31.1.4 Available Functions
31.1.5 Function: authenticate
31.2.0 Create FHIR Package
31.2.1 Usage
31.2.2 Options
31.3.0 Export ConceptMap to CSV
31.3.1 Usage
31.3.2 Options
31.4.0 HL7 v2.x Analyze Flat File
31.4.1 Usage
31.4.2 Options
31.5.0 HL7 v2.x Transmit Flat File
31.5.1 Usage
31.5.2 Options
31.5.3 Multiplex Paths
31.6.0 Import CSV to ConceptMap
31.6.1 Usage
31.6.2 Options
31.7.0 Migrate Database
31.7.1 Options
31.7.2 Examples
31.7.3 Disabling Flyway
31.7.4 Troubleshooting
31.8.0 Synchronize FHIR Servers
31.8.1 Usage
31.8.2 Options
31.8.3 Selecting Resource Types to Synchronize
31.8.4 Using a Search as the Source
31.8.5 Using a Directory as the Source
31.8.6 Uploading Bundles as Transactions
31.8.7 Using Inline Match URLs
31.8.8 Prefixing Numeric IDs
31.8.9 Synchronization Modes
31.8.10 Uploading Synthea (Synthetic Generated) Resources
31.8.11 Setting up a Resource Gold Master
31.9.0 Upload Bundle Files
31.9.1 This Command Is Deprecated
31.9.2 Usage
31.9.3 Options
31.10.0 Upload CSV Bulk Import File
31.10.1 Usage
31.10.2 Options
31.10.3 Sending Batches for a Single File
31.11.0 Upload Sample Dataset
31.11.1 Usage
31.11.2 Options
31.12.0 Upload Terminology
31.12.1 Usage
31.12.2 Options
31.12.3 Example: Add Delta to Custom Terminology
31.13.0 Validate FHIR Resources
31.13.1 Usage
31.13.2 Options
31.13.3 Profile Mode
31.13.4 Schema and Schematron Mode
32.0.0 Modules
32.0.0 CDA Exchange
32.0.1 Configuration Categories
32.1.0 Channel Import
32.1.1 Configuration Categories
32.2.0 Cluster Manager
32.2.1 Configuration Categories
32.3.0 MDM
32.3.1 Configuration Categories
32.4.0 ETL Importer
32.4.1 Configuration Categories
32.5.0 FHIR REST Endpoint (DSTU2)
32.5.1 Configuration Categories
32.6.0 FHIR REST Endpoint (R3)
32.6.1 Configuration Categories
32.7.0 FHIR Storage (DSTU2 Relational)
32.7.1 Configuration Categories
32.8.0 FHIR Storage (R3 Relational)
32.8.1 Configuration Categories
32.9.0 Subscription Matcher (R3)
32.9.1 Configuration Categories
32.10.0 Subscription Matcher (R4)
32.10.1 Configuration Categories
32.11.0 FHIRWeb Console
32.11.1 Configuration Categories
32.12.0 HL7 v2.x Listening Endpoint
32.12.1 Configuration Categories
32.13.0 HL7 v2.x Sending Endpoint
32.13.1 Configuration Categories
32.14.0 JSON Admin API
32.14.1 Configuration Categories
32.15.0 LDAP Inbound Security
32.15.1 Configuration Categories
32.16.0 Local Inbound Security
32.16.1 Configuration Categories
32.17.0 Scripted Inbound Security
32.17.1 Configuration Categories
32.18.0 SMART App Host
32.18.1 Configuration Categories
32.19.0 SMART Inbound Security
32.19.1 Configuration Categories
32.20.0 Realtime Export
32.20.1 Configuration Categories
32.21.0 SMART Outbound Security
32.21.1 Configuration Categories
32.22.0 Web Admin Console
32.22.1 Configuration Categories
33.0.0 Configuration Categories
33.0.0 Web Admin Console Settings
33.0.1 Property: Transaction Log - Event Body Display Mode
33.1.0 Authentication Callback Scripts
33.1.1 Property: Authentication Callback Script (Text)
33.1.2 Property: Authentication Callback Script (File)
33.2.0 Auth: General for APIs
33.2.1 Property: Allow Anonymous Access
33.2.2 Property: Anonymous Account Username
33.3.0 User Authentication
33.3.1 Property: Allow Anonymous Access
33.3.2 Property: Anonymous Account Username
33.3.3 Property: SAML Authentication Enabled
33.4.0 Auth: HTTP Basic
33.4.1 Property: HTTP Basic Security
33.4.2 Property: HTTP Basic Realm
33.5.0 Auth: OpenID Connect
33.5.1 Property: OpenID Connect Security
33.6.0 Browser Syntax Highlighting
33.6.1 Property: Browser Syntax Highlighting Enabled
33.6.2 Property: Show Request Headers
33.6.3 Property: Show Response Headers
33.7.0 Capability Statement (metadata)
33.7.1 Property: Include Resource Counts
33.7.2 Property: Cache Resource Counts (Mins)
33.8.0 Channel Import
33.8.1 Property: Channel Name
33.8.2 Property: Concurrent Consumers
33.8.3 Property: Channel Import ETL Script (Text)
33.8.4 Property: Channel Import ETL Script (File)
33.8.5 Property: Default mediaType
33.9.0 Channel Retry
33.9.1 Property: Retry Channel Name
33.9.2 Property: Retry Delay(ms)
33.9.3 Property: Failure Channel Name
33.9.4 Property: Maximum Delay(ms) between attempts.
33.9.5 Property: Retry Strategy
33.9.6 Property: Maximum amount of retry attempts.
33.9.7 Property: Retriable Exceptions
33.10.0 Cluster Manager Subscription Messaging
33.11.0 Cluster Manager Maintenance
33.11.1 Property: Heartbeat Persist Frequency MS
33.11.2 Property: Stats Persist Frequency MS
33.11.3 Property: Stats Cleanup Frequency MS
33.11.4 Property: Scheduler Thread Count
33.11.5 Property: Audit Log Database Enabled
33.11.6 Property: Audit Log Broker Enabled
33.11.7 Property: Transaction Log Retention (Days)
33.11.8 Property: Stats Retention (Days) - Minute Level
33.11.9 Property: Stats Retention (Days) - Hour Level
33.11.10 Property: Stats Retention (Days) - Day Level
33.12.0 Cluster Manager Message Broker
33.12.1 Property: Message Broker Type
33.12.2 Property: Message Broker Username
33.12.3 Property: Message Broker Password
33.12.4 Property: Message Broker Address
33.12.5 Property: Channel Naming Prefix
33.13.0 Cluster Manager Kafka
33.13.1 Property: Kafka Bootstrap Address
33.13.2 Property: Kafka Subscription Matcher Consumer Group Id
33.13.3 Property: Validate Kafka Topics Exist Before Use
33.13.4 Property: Kafka Consumer Auto Commit Enabled
33.13.5 Property: Kafka Consumer Ack Mode
33.13.6 Property: Kafka Broker SSL Enabled
33.13.7 Property: Kafka SSL TrustStore File Location
33.13.8 Property: Kafka SSL Truststore Password
33.13.9 Property: Kafka SSL Keystore Location
33.13.10 Property: Kafka Keystore Password
33.13.11 Property: Kafka SSL Key Password
33.13.12 Property: Kafka Security Protocol
33.13.13 Property: Kafka SASL Mechanism
33.13.14 Property: Kafka SASL JAAS Config
33.13.15 Property: Kafka Producer Config Properties (Text)
33.13.16 Property: Kafka Producer Config Properties (File)
33.13.17 Property: Kafka Consumer Config Properties (Text)
33.13.18 Property: Kafka Consumer Config Properties (File)
33.14.0 Credentials
33.14.1 Property: Password Encoding Scheme
33.14.2 Property: Cache Successful Credentials
33.14.3 Property: Case-Sensitive Usernames
33.14.4 Property: Case-Sensitive Passwords
33.14.5 Property: Create Unknown Users
33.14.6 Property: Minimum Password Requirements
33.14.7 Property: Password Mismatch Error
33.14.8 Property: Lock After Failed Attempts
33.15.0 Cross-Origin Resource Sharing (CORS)
33.15.1 Property: CORS Enabled
33.15.2 Property: CORS Origins
33.16.0 Database
33.16.1 Property: Database Type
33.16.2 Property: Database Connection URL
33.16.3 Property: Database Username
33.16.4 Property: Database Password
33.16.5 Property: Database Update Mode
33.16.6 Property: Min Idle Connections
33.16.7 Property: Max Idle Connections
33.16.8 Property: Max Total Connections
33.16.9 Property: Connection Max Lifetime (millis)
33.16.10 Property: Max Wait (Seconds)
33.16.11 Property: Default Query Timeout (Seconds)
33.16.12 Property: Pool Prepared Statements
33.16.13 Property: SQL Parameter Bind Mode
33.17.0 ETL Import: CSV Properties
33.17.1 Property: CSV File Delimiter
33.17.2 Property: Parse Quotes
33.18.0 ETL Import: Source
33.18.1 Property: Import Source
33.18.2 Property: Mapping Script
33.18.3 Property: Worker Thread Count
33.18.4 Property: Worker Row Hashing Function
33.19.0 FHIR Binary Storage
33.19.1 Property: Binary Access Operations Enabled
33.19.2 Property: Binary Storage Mode
33.19.3 Property: Minimum Size (bytes)
33.19.4 Property: Maximum Size (bytes)
33.19.5 Property: Filesystem Mode: Base Directory
33.20.0 FHIR Bulk Operations
33.20.1 Property: FHIR Bulk Export Enabled
33.21.0 FHIR Configuration
33.21.1 Property: Allow Multiple Delete Enabled
33.21.2 Property: Cascading Deletes Enabled
33.21.3 Property: Allow Inline Match URL References Enabled
33.21.4 Property: Allow External References Enabled
33.21.5 Property: Enforce Referential Integrity on Write
33.21.6 Property: Enforce Referential Integrity on Delete
33.21.7 Property: Disable Deletion Ref Checks for Paths
33.21.8 Property: Auto-Create Placeholder Reference Targets
33.21.9 Property: Mark Resources for Reindexing after SearchParameter change
33.21.10 Property: Server ID Mode
33.21.11 Property: Client ID Mode
33.21.12 Property: Enforce Reference Target Types
33.21.13 Property: Expunge Operation Enabled
33.21.14 Property: Delete Expunge Enabled
33.21.15 Property: Allow storing all bundle types
33.21.16 Property: Store Meta.source information
33.21.17 Property: Delete Child Resource Count
33.21.18 Property: Seed Base Validation Resources
33.22.0 FHIR Consent Service
33.22.1 Property: Consent Service Enabled
33.22.2 Property: Consent Service Script (Text)
33.22.3 Property: Consent Service Script (File)
33.23.0 FHIR LiveBundle Service
33.23.1 Property: LiveBundle Enabled
33.23.2 Property: LiveBundle Watchlist Cache Enabled
33.23.3 Property: LiveBundle Thread Count
33.23.4 Property: LiveBundle Rule Definition Script (Text)
33.23.5 Property: LiveBundle Rule Definition Script (File)
33.24.0 FHIR Endpoint Conversion
33.24.1 Property: Versioned API Mode
33.25.0 FHIR Endpoint Security
33.25.1 Property: Automatically Narrow Search Scope
33.26.0 Interceptors
33.26.1 Property: Interceptor Bean Types
33.26.2 Property: Can Replace Authorization Interceptor
33.27.0 FHIR Endpoint Partitioning and Multitenancy
33.27.1 Property: Tenant Identification Strategy
33.28.0 FHIR Gateway Config
33.28.1 Property: FHIR Version
33.28.2 Property: Gateway Configuration (Text)
33.28.3 Property: Gateway Configuration (File)
33.28.4 Property: Signing JWKS (File)
33.28.5 Property: Signing JWKS (Text)
33.29.0 FHIR MDM Server
33.29.1 Property: MDM Mode Enabled (Experimental)
33.30.0 FHIR Storage Partitioning and Multitenancy
33.30.1 Property: Partitioning Enabled
33.30.2 Property: Partition Selection Mode
33.30.3 Property: Partition Seed File
33.30.4 Property: Cross-Partition Reference Mode
33.31.0 Package Registry
33.31.1 Property: Package Pre-Seed Installation Spec Files
33.32.0 Versioned References
33.32.1 Property: Allow Versioned References at Paths
33.32.2 Property: Allow Versioned References at All Paths
33.32.3 Property: Automatically Version References at Paths
33.32.4 Property: Respect Versioned References for _include
33.33.0 FHIR Performance
33.33.1 Property: Reuse Cached Results Timeout (Millis)
33.33.2 Property: Expire Search Results After Minutes
33.33.3 Property: Index Missing Search Params
33.33.4 Property: Default Total Calculation Mode
33.33.5 Property: Suppress Scheduled Maintenance Jobs
33.33.6 Property: Reindex Thread Count
33.33.7 Property: Expunge Batch Size
33.33.8 Property: Expunge Thread Count
33.33.9 Property: Delete Enabled
33.33.10 Property: Maximum Transaction Bundle Size
33.34.0 FHIR Performance Tracing
33.34.1 Property: Performance Tracing Enabled
33.34.2 Property: Output to Transaction Log
33.34.3 Property: Output to System Log
33.34.4 Property: Output to Response Headers
33.34.5 Property: Capture Raw SQL
33.34.6 Property: Trigger
33.35.0 FHIR Realtime Export
33.35.1 Property: Pointcut-based Realtime Export Mode Enabled
33.36.0 FHIR Resource Types
33.36.1 Property: Resource Types (whitelist)
33.37.0 FHIR REST Endpoint
33.37.1 Property: Fixed Value for Endpoint Base URL
33.37.2 Property: Pretty-Print by Default
33.37.3 Property: Default Encoding
33.37.4 Property: Default Prefer Return
33.37.5 Property: Serve Raw Media Resources
33.37.6 Property: Process Header: Request Source
33.38.0 FHIR Search
33.38.1 Property: Use New Search SQL Builder (2020)
33.38.2 Property: Fetch Size (Default Maximum)
33.38.3 Property: Page Size (Default)
33.38.4 Property: Page Size (Maximum)
33.38.5 Property: Allow :contains Searches
33.38.6 Property: GraphQL Enabled
33.38.7 Property: Filter Search Parameter Enabled
33.38.8 Property: Search Cache Storage
33.38.9 Property: Infinispan Servers
33.38.10 Property: Infinispan Cache Name
33.38.11 Property: Infinispan Hot Rod Protocol Version
33.38.12 Property: Use ordinal date values for day precision searches.
33.38.13 Property: Suppress String Indexing In Tokens
33.38.14 Property: Phonetic Encoder
33.39.0 FHIR Interceptors
33.39.1 Property: Interceptor Bean Types
33.39.2 Property: FHIR storage Callback Script (Text)
33.39.3 Property: FHIR storage Callback Script (File)
33.40.0 FHIR Repository Validation
33.40.1 Property: Repository Validation Javascript (Text)
33.40.2 Property: Repository Validation Javascript (File)
33.41.0 FHIR Subscription Persistence
33.41.1 Property: Matching Queue Consumers
33.41.2 Property: Consumers Per Delivery Queue
33.41.3 Property: REST Hook Subscription Enabled
33.41.4 Property: Email Subscription Enabled
33.41.5 Property: Websocket Subscription Enabled
33.41.6 Property: Message Subscription Enabled
33.42.0 FHIR Subscription Delivery
33.42.1 Property: Subscription Delivery Queue Naming
33.42.2 Property: Email From Address
33.42.3 Property: Email SMTP Hostname
33.42.4 Property: Email SMTP Port
33.42.5 Property: Email SMTP Username
33.42.6 Property: Email SMTP Password
33.43.0 FHIR Validation Services
33.43.1 Property: Local Reference Policy
33.43.2 Property: Remote Terminology Service - Enabled
33.43.3 Property: Base URL
33.43.4 Property: Log HTTP Calls
33.44.0 HL7 v2.x to FHIR Mapper - Forced Namespace Mode
33.44.1 Property: Forced Namespace Mode: Patient System
33.44.2 Property: Forced Namespace Mode: Encounter System
33.45.0 HL7 v2.x to FHIR Mapper - General
33.45.1 Property: Inferred TimeZone When Not Present
33.45.2 Property: Creation Mode - Practitioner
33.45.3 Property: Create MessageHeader for Each Message
33.45.4 Property: MessageHeader Hardcoded Destination Name
33.45.5 Property: Patient Primary Identifier Search Parameter
33.45.6 Property: Mapper Bean Types
33.46.0 HL7 v2.x Mapper - Medications
33.46.1 Property: Use Standalone Medications with Administered Code
33.46.2 Property: Use Standalone Medications with Component Code
33.46.3 Property: Use Standalone Medications with Give Code
33.47.0 HL7 v2.x to FHIR Mapper - OBR
33.47.1 Property: Observation Identification Mode
33.47.2 Property: Use OBR-2 as Primary Identifier
33.47.3 Property: Use OBR-3 as Primary Identifier
33.48.0 HL7 v2.x to FHIR Mapper - OBSERVATION Group
33.48.1 Property: OBSERVATION Group Text Delimiter - OBX
33.48.2 Property: OBSERVATION Group Text Delimiter - NTE
33.49.0 HL7 v2.x to FHIR Mapper - ORDER_OBSERVATION Group
33.49.1 Property: ORDER_OBSERVATION Group Text Delimiter - NTE
33.50.0 HL7 v2.x to FHIR Mapper - PV1
33.50.1 Property: Treat PV1-3 and PV1-6 Patient Locations as Single Atomic Locations
33.51.0 HL7 v2.x Listener Script
33.51.1 Property: Listener Processing Script (Text)
33.51.2 Property: Listener Processing Script (File)
33.52.0 HL7 v2.x MLLP Listener
33.52.1 Property: HL7 v2.x Listener Port
33.52.2 Property: Charset: Respect MSH-18
33.52.3 Property: Charset: Forced
33.52.4 Property: Unprocessable Message Handling
33.52.5 Property: Transport Protocol
33.52.6 Property: Socket Timeout (Millis)
33.53.0 FHIR to HL7 v2.x Mapper Script
33.53.1 Property: HL7 v2.x Conversion Mapper Script (Text)
33.53.2 Property: HL7 v2.x Conversion Mapper Script (File)
33.54.0 HL7 v2.x MLLP Sender
33.54.1 Property: Transport Protocol
33.54.2 Property: HL7 v2.x Destination Host
33.54.3 Property: HL7 v2.x Destination Port
33.54.4 Property: Request Path
33.54.5 Property: Send Timeout (millis)
33.54.6 Property: Map Identifiers using NamingSystem
33.54.7 Property: Use Persisted Message Headers
33.54.8 Property: Retry message on NAK
33.54.9 Property: Delay Between Failed Deliveries (millis)
33.55.0 HTTP Access Log
33.55.1 Property: Appenders
33.56.0 HTTP Listener
33.56.1 Property: Listener Port
33.56.2 Property: Bind Address
33.56.3 Property: Context Path
33.56.4 Property: Endpoint Health Path
33.56.5 Property: Respect Forward Headers
33.56.6 Property: HTTPS Forwarding Assumed
33.57.0 HTTP Request Pool
33.57.1 Property: Thread Pool Minimum Size
33.57.2 Property: Thread Pool Maximum Size
33.57.3 Property: Thread Pool Accept Queue Size
33.57.4 Property: Maximum Request Header Size (KB)
33.57.5 Property: Maximum Response Header Size (KB)
33.57.6 Property: Read Idle Timeout (millis)
33.58.0 HTTP Security
33.58.1 Property: Pin Host
33.58.2 Property: Suppress Platform Information
33.58.3 Property: Suppress Error Details
33.58.4 Property: Block HTTP HEAD
33.58.5 Property: Block HTTP OPTIONS
33.58.6 Property: Frame Options (Allow From)
33.59.0 Hybrid Providers Definitions
33.59.1 Property: Spring Context Config Class
33.59.2 Property: FHIR Version
33.60.0 Initial User Seeding
33.60.1 Property: Users Seed File
33.61.0 JSON Web KeySet (JWKS)
33.61.1 Property: Signing JWKS (File)
33.61.2 Property: Signing JWKS (Text)
33.61.3 Property: Signing Key ID
33.62.0 LDAP Authentication
33.62.1 Property: LDAP Server URL
33.62.2 Property: System User DN
33.62.3 Property: System User Password
33.62.4 Property: Native Permission User Attribute
33.62.5 Property: User Attribute: Given Name
33.62.6 Property: User Attribute: Family Name
33.62.7 Property: Global Permissions
33.62.8 Property: Base DN for Groups
33.62.9 Property: Search Groups Recursively
33.62.10 Property: Authentication: User Base DN
33.62.11 Property: Authentication: User Query
33.62.12 Property: Require Group DN
33.63.0 Lucene FullText Indexing
33.63.1 Property: Lucene Indexing Enabled
33.63.2 Property: Lucene Indexing Provider
33.63.3 Property: Enable Terminology Index
33.63.4 Property: Enable FullText Content Index
33.63.5 Property: Lucene Index Directory
33.63.6 Property: FullText Index Delay (Secs)
33.63.7 Property: FullText Indexing Pass Size
33.63.8 Property: ElasticSearch URL
33.63.9 Property: ElasticSearch URL protocol. Either http or https
33.63.10 Property: ElasticSearch Username
33.63.11 Property: ElasticSearch Password
33.64.0 Narrative Generator
33.65.0 MDM
33.65.1 Property: MDM Consumer Thread Count
33.65.2 Property: MDM Rule Definition Script (Text)
33.65.3 Property: MDM Rule Definition Script (File)
33.65.4 Property: MDM Survivorship Script (Text)
33.65.5 Property: MDM Survivorship Script (File)
33.65.6 Property: Prevent modification of External EIDs
33.65.7 Property: Prevent multiple EIDs from existing simultaneously on a target resource
33.66.0 OpenID Connect (OIC)
33.66.1 Property: Client Secret Encoding
33.66.2 Property: Smile CDR generated Client Secret expiry duration in days
33.66.3 Property: Issuer URL
33.66.4 Property: Cache Authorizations (millis)
33.66.5 Property: Rotate Refresh Token After Use
33.67.0 Realtime Export
33.67.1 Property: Realtime Export Script (Text)
33.67.2 Property: Realtime Export Script (File)
33.67.3 Property: Published Data source
33.67.4 Property: Import Channel Name
33.68.0 Request Validating
33.68.1 Property: Request Validating Enabled
33.68.2 Property: Fail On Severity
33.68.3 Property: Validation Tags Enabled
33.68.4 Property: Validation Response Headers Enabled
33.69.0 Security Inbound Script
33.69.1 Property: Script (Text)
33.69.2 Property: Script (File)
33.70.0 Inbound SMART on FHIR Authentication
33.70.1 Property: Trust Intra-Cluster SMART Tokens from Module(s)
33.70.2 Property: Authentication Cache Timeout (Seconds)
33.70.3 Property: Prevent Token KeyID Reuse
33.70.4 Property: Require Key Expiry
33.71.0 Inbound SMART on FHIR Endpoints
33.71.1 Property: Token Endpoint
33.71.2 Property: Authorization Endpoint
33.72.0 OpenID Connect Token Validation
33.72.1 Property: Token Introspection Client: Truststore File
33.72.2 Property: Token Introspection Client: Truststore Password
33.73.0 SAML Provider
33.73.1 Property: Registration ID
33.73.2 Property: Issuer ID
33.73.3 Property: Web SSO URL
33.73.4 Property: Keystore File
33.73.5 Property: Keystore Password
33.73.6 Property: Verification Certificate Alias
33.73.7 Property: Sign Auth Request
33.73.8 Property: Signing Key Alias
33.73.9 Property: Signing Key Password
33.73.10 Property: Relying Party Entity ID Template
33.74.0 OAuth2/OIDC Federation
33.74.1 Property: Federated OAuth2/OIDC Login
33.75.0 SMART Authorization
33.75.1 Property: Enforce Approved Scopes to Restrict Permissions
33.76.0 SMART Definitions Seeding
33.76.1 Property: OpenID Connect Server Pre-Seed File
33.76.2 Property: OpenID Connect Client Pre-Seed File
33.77.0 Sessions
33.77.1 Property: Use In-Memory Sessions
33.77.2 Property: Session Timeout (Mins)
33.77.3 Property: Session Scavenger Interval (Millis)
33.78.0 SMART Outbound Security: Callback Script
33.78.1 Property: Post Authorization Script (Text)
33.78.2 Property: Post Authorization Script (File)
33.79.0 SMART Outbound Security: CODAP
33.79.1 Property: Enable Cross-Organization Data Access Profile
33.79.2 Property: CODAP Authorization Script (Text)
33.79.3 Property: CODAP Authorization Script (File)
33.80.0 SMART Outbound Security: Login Skin
33.80.1 Property: WebJar ID
33.80.2 Property: Login Page Template
33.80.3 Property: Login Page (Federated OAuth2/OIDC) Template
33.80.4 Property: Approval Page Template
33.80.5 Property: Revoke Page Template
33.80.6 Property: Error Page Template
33.80.7 Property: Two Factor Authentication Page Template
33.81.0 Two Factor Authentication
33.81.1 Property: TOTP Issuer Name
33.81.2 Property: Lock After Failed Attempts
33.82.0 TLS / SSL (Encryption)
33.82.1 Property: TLS KeyStore Filename
33.82.2 Property: TLS KeyStore Password
33.82.3 Property: TLS KeyStore Key Alias
33.82.4 Property: TLS KeyStore Key Password
33.82.5 Property: TLS Enabled
33.82.6 Property: TLS Client Authentication
33.82.7 Property: TLS TrustStore Filename
33.82.8 Property: TLS TrustStore Password
33.82.9 Property: TLS Cipher Whitelist
33.82.10 Property: TLS Cipher Blacklist
33.82.11 Property: TLS Protocol Whitelist
33.82.12 Property: TLS Protocol Blacklist
33.83.0 Trusted Client
33.83.1 Property: Trusted Client Mode Enabled
33.83.2 Property: Assert Permissions
33.84.0 Transaction Log
33.84.1 Property: Transaction Log Enabled
33.84.2 Property: Persist Transaction Bodies (Global)
33.84.3 Property: Persist Transaction Bodies: Incoming Request
33.84.4 Property: Persist Transaction Bodies: Incoming Response
33.84.5 Property: Truncate Transaction Bodies (bytes)
33.84.6 Property: Event Whitelist
33.84.7 Property: Event Blacklist
33.85.0 Miscellaneous Categories
33.85.1 Additional Configuration
33.85.2 Dependencies
34.0.0 Product Reference
34.0.0 Enumerated Types
34.0.1 Node And Module Status
34.0.2 Transaction Log Outcomes
34.0.3 Module Types
35.0.0 Appendix
35.0.0 Preparing a Linux Host
35.0.1 Ubuntu Host with PostgreSQL / NGINX / Letsencrypt
35.0.2 Install letsencrypt and obtain Certs (optional)
35.0.3 Install nginx And Configure it to Front the Server
35.0.4 Red Hat Enterprise Linux (RHEL) or CentOS
35.1.0 Production Checklist
35.1.1 Host Server Setup
35.1.2 Network Infrastructure
35.1.3 CDR Process Settings
35.1.4 FHIR Server Performance
35.1.5 Monitoring
35.1.6 Security
35.1.7 Message Broker
35.1.8 Cluster Design
35.2.0 Installing Smile CDR, NGINX and PostgreSQL in a Docker Stack
35.2.1 Initial Setup of Docker and Context
35.2.2 Prepare Configuration for Smile CDR Docker Service
35.2.3 Prepare Configuration for NGINX Docker Service
35.2.4 Prepare Configuration for PostgreSQL Docker Service
35.2.5 Create Docker compose file for Smile CDR Docker stack
35.2.6 Build and Launch Smile CDR Stack
35.3.0 Deploying a Kubernetes Managed Cluster
35.3.1 Overview of Smile CDR Kubernetes Deployment Process
35.3.2 Pre-requisite Steps
35.3.3 Configuring Kubernetes
35.3.4 Service Definitions
35.3.5 ConfigMap Definitions
35.3.6 Deployment Definitions
35.3.7 Deploying Smile CDR in a Kubernetes Cluster
35.3.8 Configuring Reverse Proxy and Load Balancer
35.3.9 Considerations When Deploying Smile CDR Using OpenShift
35.4.0 Password Hashing Algorithms
35.4.1 Available Algorithms
35.5.0 Resource Paths
35.6.0 JWT Signature Algorithms