FHIR connector for connecting with the FHIR APIs.
Install and setup the Java RCS: https://backstage.forgerock.com/docs/openicf/latest/connector-reference/java-server.html
Once Java RCS openicf is downloaded, create a tools directory in the openicf directory. Place these groovy scripts in this tools directory.
There are also 3 libraries that need to be installed. These are called secrets-api, chf-http-core, and json-web-token. These can be installed in the /lib/framework directory of openicf.
Generate a JWK You will need a JWKS. For example purposes, I used https://mkjwk.org/ to generate a JWK. Navigate to https://mkjwk.org/ Use the RSA tab Set Key Size to 2048 Set Key Use to Signature Set Algorithm to RS256: RSASSA-PKCS1-v1_5 using SHA-256 Set Key ID to Timestamp Click Generate button Save the Public and Private Keypair Public Key Modify the Public Key to make it a set. Similar to https://raw.githubusercontent.com/justinchinFR/epic/main/pub.json Save the Public Key set to a public URL, that can be accessed by Epic.
Setup Epic FHIR App Login into your Epic FHIR environment. In this example, that is: https://fhir.epic.com/ Navigate to the Build Apps tab Click the + Create button Enter an Application Name Select Backend Systems for Application Audience In the Available column add the following APIs: Bulk Data Delete Request Bulk Data File Request Bulk Data Kick-off Bulk Data Status Request Patient.$match (R4) Patient.Create (R4) Patient.Read (R4) Patient.Search (R4) Add the URL of the Public Key Set created in step 10 above, to the Non-Production JWK Set URL
Click the Save button Select SMART on FHIR Version R4 Add a Summary Review and check off I accept the terms of use of open.epic Click the Save & Ready for Sandbox button
Using the Platform UI, go to applications and browse app catalog. Select the Scripted Rest Connector.
After creating the connector, set these configurations:
Property | Usage |
---|---|
Service Address | https://fhir.epic.com |
Proxy Address | |
Username | Any string |
Password | Any string |
Default Content Type | |
Default Request Headers | |
Default Authentication Method | BASIC |
Custom Sensitive Configuration | |
customConfiguration | config { groupId = ''; iss = ''; sub=''; aud = ''; clientId=''; key='{jwk}'} |
Script Roots | tools/ |
Authenticate Script | AuthenticateScript.groovy |
Create Script | CreateScript.groovy |
Update Script | UpdateScript.groovy |
Delete Script | DeleteScript.groovy |
Search Script | SearchScript.groovy |
Test Script | TestScript.groovy |
Sync Script | SyncScript.groovy |
Schema Script | SchemaScript.groovy |
Resolve Username Script Script | ResolveUsernameScript.groovy |
Script On Resource Script | ScriptOnResourceScript.groovy |
Customizer Script | CustomizerScript.groovy |
If you encounter any issues, be sure to check our Troubleshooting pages.
Support tickets can be raised whenever you need our assistance; here are some examples of when it is appropriate to open a ticket (but not limited to):
- Suspected bugs or problems with Ping Identity software.
- Requests for assistance
You can raise a ticket using BackStage, our customer support portal that provides one stop access to Ping Identity services.
BackStage shows all currently open support tickets and allows you to raise a new one by clicking New Ticket.
This Ping Identity project does not accept third-party code submissions.
This code is provided by Ping Identity on an “as is” basis, without warranty of any kind, to the fullest extent permitted by law. Ping Identity does not represent or warrant or make any guarantee regarding the use of this code or the accuracy, timeliness or completeness of any data or information relating to this code, and Ping Identity hereby disclaims all warranties whether express, or implied or statutory, including without limitation the implied warranties of merchantability, fitness for a particular purpose, and any warranty of non-infringement. Ping Identity shall not have any liability arising out of or related to any use, implementation or configuration of this code, including but not limited to use for any commercial purpose. Any action or suit relating to the use of the code may be brought only in the courts of a jurisdiction wherein Ping Identity resides or in which Ping Identity conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions.
This project is licensed under the MIT License - see the LICENSE file for details
© Copyright 2024 Ping Identity. All Rights Reserved