CH EPR FHIR (R4), published by eHealth Suisse. This guide is not an authorized publication; it is the continuous build for version 5.0.0-ballot-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/ehealthsuisse/ch-epr-fhir/ and changes regularly. See the Directory of published versions
Sequence Diagrams
Sample sequence diagrams to illustrate the usage of the generic EPR API and SMART on FHIR options for reading
documents as a patient or healthcare professional:
Patient access from a portal
Patient Portal Community Components IdP App GUI Document Consumer Document Consumer Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Responder Document Responder User Patient App GUI Document Consumer Patient Identifier Authorization Client Patient Identifier Authorization Server Document Responder User Patient Patient App GUI App GUI Document Consumer (MHD) Document Consumer (MHD) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Manger Patient Identifier Cross-reference Manger Authorization Server (IUA) Authorization Server (IUA) Document Responder (MHD) Document Responder (MHD) User Authentication Provider User Authentication Provider App GUI Document Consumer Document Consumer Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Responder Document Responder User [01] read doc [02] GET /.well-known/smart-configuration [03] Conformance statement incl. OAuth 2.1 endpoints alt [IUA JWT Token option] [04] Get Access Token [05] CH:XUA Authenticate User [06] [07] [ITI-71] Get Access Token Request [Basic access token] [08] Authorize App Access [09] [ITI-71] Get Access Token Response [Basic access token] [10] [11] query EPR-SPID from MPI using local ID and access token [12] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [13] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [14] [mTLS] [15] query EPR-SPID from MPI using local ID and mTLS [16] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [17] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [18] opt [IUA with JWT option] [19] Get Access Token [20] [ITI-71] Get Access Token [Extended access token] [21] [ITI-71] Get Access Token Response [Extended access token] [22] [23] query documents with extended access token [24] query documents [ITI-67] with extended access token [25] [26] [27] retrieve documents with extended access token [28] retrieve document [ITI-68] with extended access token [29] [30] [31]
User Access from an integrated Primary System to read documents
Healthcare Professional Portal or Primary System Community Components IdP App GUI Document Consumer Document Consumer Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Responder Document Responder User Healthcare App GUI Document Consumer Patient Identifier Authorization Client Patient Identifier Authorization Server Document Responder User Healthcare Professional Healthcare Professional App GUI App GUI Document Consumer (MHD) Document Consumer (MHD) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Manger Patient Identifier Cross-reference Manger Authorization Server (IUA) Authorization Server (IUA) Document Responder (MHD) Document Responder (MHD) User Authentication Provider User Authentication Provider App GUI Document Consumer Document Consumer Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Responder Document Responder User [01] read doc [02] GET /.well-known/smart-configuration [03] Conformance statement incl. OAuth 2.1 endpoints alt [IUA JWT Token option] [04] Get Access Token [05] CH:XUA Authenticate User [06] [07] [ITI-71] Get Access Token Request [Basic access token] [08] Authorize App Access [09] [ITI-71] Get Access Token Response [Basic access token] [10] [11] query EPR-SPID from MPI using local ID and access token [12] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [13] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [14] [mTLS] [15] query EPR-SPID from MPI using local ID and mTLS [16] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [17] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [18] opt [IUA with JWT option] [19] Get Access Token [20] [ITI-71] Get Access Token [Extended access token] [21] [ITI-71] Get Access Token Response [Extended access token] [22] [23] query documents with extended access token [24] query documents [ITI-67] with extended access token [25] [26] [27] retrieve documents with extended access token [28] retrieve document [ITI-68] with extended access token [29] [30] [31]
User Access from an integrated Primary System to publish documents
Healthcare Professional Portal or Primary System Community Components IdP App GUI Document Source Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Recipient User Healthcare App GUI Document Source Patient Identifier Authorization Client Patient Identifier Authorization Server Document Recipient User Healthcare Professional Healthcare Professional App GUI App GUI Document Source (MHD) Document Source (MHD) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Manger Patient Identifier Cross-reference Manger Authorization Server (IUA) Authorization Server (IUA) Document Recipient (MHD) Document Recipient (MHD) User Authentication Provider User Authentication Provider App GUI Document Source Patient Identifier Patient Identifier Authorization Client Authorization Client Patient Identifier Patient Identifier Authorization Server Authorization Server Authorization Server Document Recipient User [01] write doc [02] GET /.well-known/smart-configuration [03] Conformance statement incl. OAuth 2.1 endpoints alt [IUA JWT Token option] [04] Get Access Token [05] CH:XUA Authenticate User [06] [07] [ITI-71] Get Access Token Request [Basic access token] [08] Authorize App Access [09] [ITI-71] Get Access Token Response [Basic access token] [10] [11] query EPR-SPID from MPI using local ID and access token [12] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [13] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [14] [mTLS] [15] query EPR-SPID from MPI using local ID and mTLS [16] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [17] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [18] opt [IUA with JWT option] [19] Get Access Token [20] [ITI-71] Get Access Token [Extended access token] [21] [ITI-71] Get Access Token Response [Extended access token] [22] [23] publish document with extended access token loop [For the access decision enforcement, the EPR relies on the Confidentiality Code within the document metadata to be stored in the patient’s Health Record. A patient can set the default Confidentiality Code and a document source needs to iterate over the different confidentiality code until successful] [24] publish document [ITI-65] with extended access token [25] [26] [27]
Writing documents from clinical archives
Clinical Archive Community Components Technical User Document Source Patient Identifier Authorization Client Authorization Client Patient Identifier Authorization Server Authorization Server Authorization Server Document Recipient Technical User Document Source Patient Identifier Authorization Client Patient Identifier Authorization Server Document Recipient Technical User Technical User Document Source (MHD) Document Source (MHD) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Manger Patient Identifier Cross-reference Manger Authorization Server (IUA) Authorization Server (IUA) Document Recipient (MHD) Document Recipient (MHD) Technical User Document Source Patient Identifier Authorization Client Authorization Client Patient Identifier Authorization Server Authorization Server Authorization Server Document Recipient [01] GET /.well-known/smart-configuration [02] Conformance statement incl. OAuth 2.1 endpoints [03] Get Access Token [04] [ITI-71] Get Access Token Request Client Credential Grant Type - [Basic access token] [05] [ITI-71] Get Access Token Response Client Credential Grant Type -[Basic access token] [06] [07] query EPR-SPID from MPI using local ID and access token [08] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [09] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [10] opt [IUA with JWT option] [11] Get Access Token [12] [ITI-71] Get Access Token [Extended access token] [13] [ITI-71] Get Access Token Response [Extended access token] [14] [15] publish document with extended access token loop [For the access decision enforcement, the EPR relies on the Confidentiality Code within the document metadata to be stored in the patient’s Health Record. A patient can set the default Confidentiality Code and a document source needs to iterate over the different confidentiality code until successful] [16] publish document [ITI-65] with extended access token [17] [18]
Patient: get document – SMART on FHIR option (EHR Launch)
Patient Portal SMART on FHIR App Community Components IdP App GUI Authorization Client Patient Identifier Patient Identifier App GUI Document Consumer Document Consumer Authorization Server Authorization Server Authorization Server Authorization Server Patient Identifier Patient Identifier Document Responder Document Responder User User Patient App GUI Authorization Client Patient Identifier App GUI Document Consumer Authorization Server Patient Identifier Document Responder User Patient Patient App GUI IUA Authorization Client App GUI IUA Authorization Client Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer App GUI IUA Authorization Client App GUI IUA Authorization Client Document Consumer (MHD) Document Consumer (MHD) Authorization Server (IUA) Authorization Server (IUA) Patient Identifier Cross-reference Mange Patient Identifier Cross-reference Mange Document Responder (MHD) Document Responder (MHD) User Authentication Provider User Authentication Provider App GUI Authorization Client Patient Identifier Patient Identifier App GUI Document Consumer Document Consumer Authorization Server Authorization Server Authorization Server Authorization Server Patient Identifier Patient Identifier Document Responder Document Responder User User [01] read doc [02] GET /.well-known/smart-configuration [03] Conformance statement incl. OAuth 2.1 endpoints alt [IUA JWT Token option] [04] Get Access Token [05] CH:XUA Authenticate User [06] [07] [ITI-71] Get Access Token Request [Basic access token] [08] Authorize App Access [09] [ITI-71] Get Access Token Response [Basic access token] [10] [11] query EPR-SPID from MPI using local ID and access token [12] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [13] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [14] [mTLS] [15] query EPR-SPID from MPI using local ID and mTLS [16] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [17] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [18] [19] launch app [20] GET /.well-known/smart-configuration [21] Conformance statement incl. OAuth 2.1 endpoints [22] CH:XUA Authenticate User [23] [24] [ITI-71] Get Access Token [Extended access token] [25] [ITI-71] Get Access Token Response [Extended access token] [26] query documents with extended access token [27] query documents [ITI-67] with extended access token [28] [29] [30] retrieve document with extended access token [31] retrieve document [ITI-68] with extended access token [32] [33] [34] [35]
Healthcare professional: get document – SMART on FHIR option (EHR Launch)
Healthcare Professional Portal or Primary System SMART on FHIR App Community Components IdP App GUI Authorization Client Patient Identifier Patient Identifier App GUI Document Consumer Document Consumer Authorization Server Authorization Server Authorization Server Authorization Server Patient Identifier Patient Identifier Document Responder Document Responder User User Healthcare App GUI Authorization Client Patient Identifier App GUI Document Consumer Authorization Server Patient Identifier Document Responder User Healthcare Professional Healthcare Professional App GUI IUA Authorization Client App GUI IUA Authorization Client Authorization Client (IUA) Authorization Client (IUA) Patient Identifier Cross-reference Consumer Patient Identifier Cross-reference Consumer App GUI IUA Authorization Client App GUI IUA Authorization Client Document Consumer (MHD) Document Consumer (MHD) Authorization Server (IUA) Authorization Server (IUA) Patient Identifier Cross-reference Mange Patient Identifier Cross-reference Mange Document Responder (MHD) Document Responder (MHD) User Authentication Provider User Authentication Provider App GUI Authorization Client Patient Identifier Patient Identifier App GUI Document Consumer Document Consumer Authorization Server Authorization Server Authorization Server Authorization Server Patient Identifier Patient Identifier Document Responder Document Responder User User [01] read doc [02] GET /.well-known/smart-configuration [03] Conformance statement incl. OAuth 2.1 endpoints alt [IUA JWT Token option] [04] Get Access Token [05] CH:XUA Authenticate User [06] [07] [ITI-71] Get Access Token Request [Basic access token] [08] Authorize App Access [09] [ITI-71] Get Access Token Response [Basic access token] [10] [11] query EPR-SPID from MPI using local ID and access token [12] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [13] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [14] [mTLS] [15] query EPR-SPID from MPI using local ID and mTLS [16] [ITI-83] Mobile Patient Identifier Cross-reference Query [local ID] together with access token [17] [ITI-83] Mobile Patient Identifier Cross-reference Query Response [EPR-SPID] [18] [19] launch app [20] GET /.well-known/smart-configuration [21] Conformance statement incl. OAuth 2.1 endpoints [22] CH:XUA Authenticate User [23] [24] [ITI-71] Get Access Token [Extended access token] [25] [ITI-71] Get Access Token Response [Extended access token] [26] query documents with extended access token [27] query documents [ITI-67] with extended access token [28] [29] [30] retrieve document with extended access token [31] retrieve document [ITI-68] with extended access token [32] [33] [34] [35]