Epic connector
Epic is a healthcare-related service that handles medical records. The Epic connector enables customers to manage Epic EMP user and SER provider accounts along with their entitlements (Template and SubTemplate) using Epic APIs. For more information, refer to the Personnel Management and Demographics API documentation available at https://open.epic.com.
The Epic connector supports the following features:
-
Account management
-
Manage Epic EMP records as users
-
Create, update, delete
-
Enable, disable, unblock
-
-
Provider management
-
Manage SER records as linked provider
-
Create, update
-
Enable, disable
-
-
Other object types (only search operations)
-
Manage Epic Linked Template
-
Manage Epic Linked SubTemplates
-
Manage Epic InBasketClassifications
-
Manage Epic Login Department
-
Manage Epic Groups
-
|
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
Before you start
Before you configure the connector, log in to your Epic administrator account and note the following:
-
Client ID
A valid Epic Client ID with access to Epic’s personnel management and demographics (user) web services.
-
Username
-
Password
-
Private key (Generate an RSA keypair and convert to PKCS8)
To generate your private key:
-
Generate and download an RSA key pair.
-
Run the following command to convert the RSA private key to PKCS8 format:
openssl pkcs8 -topk8 -nocrypt -in privatekey.pem -out epic_pkcs8_private_key.pem
-
After generating the private key in PKCS8 format, remove
-----BEGIN PRIVATE KEY-----
and-----END PRIVATE KEY-----
from the generated PKCS8 private key file. -
Remove any escape characters such as
\n
or\r
.
-
-
REST endpoint (Optional)
-
SOAP endpoint (Optional)
-
Max records (Optional)
-
User template file path (Optional)
-
User sub template file path (Optional)
-
In Basket classification file path (Optional)
-
Group file path (Optional)
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
The user template, user sub template, in basket, and group file paths are local paths that are accessible to the IDM or RCS instance. |
Additional connector requirements:
-
Epic’s SOAP 1.1 version of web services enabled and accessible.
-
Epic system’s Personnel management and demographics (user) web services enabled for access.
-
Valid Epic web services credentials.
-
A list of Templates and SubTemplates.
Epic does not provide APIs to programmatically query for Templates and SubTemplates. You must export separate CSV files for use with the Epic connector.
-
Contact Epic to enable the following APIs:
GetImportDataLog
Used to get provider response log
ImportData (2019)
Used to create/update provider
InactivateUser
Used to Disable user
GetRecords
Used to get all employee/provider records
-
Unlocked user attributes
If you need any of the following attributes unlocked, you must request them from the Epic Data Courier team:
-
displayLicense
-
recipientType
-
isMedsAuth
-
isOrdersAuth
-
communicationPreference
-
taxId
-
isInPatientOrderProvider
-
isOutPatientOrderProvider
-
Install the Epic connector
If you are looking for the Advanced Identity Cloud application for this connector, refer to: |
You can download any connector from Backstage, but some are included in the default deployment for Advanced Identity Cloud, IDM, or RCS. When using an included connector, you can skip installing it and move directly to configuration.
Connector | IDM | RCS |
---|---|---|
No |
Yes |
Download the connector .jar file from Backstage.
-
If you are running the connector locally, place it in the
/path/to/openidm/connectors
directory, for example:mv ~/Downloads/epic-connector-1.5.20.26.jar /path/to/openidm/connectors/
-
If you are using a remote connector server (RCS), place it in the
/path/to/openicf/connectors
directory on the RCS.
Configure the Epic connector
Create a connector configuration using the IDM admin UI:
-
From the navigation bar, click Configure > Connectors.
-
On the Connectors page, click New Connector.
-
On the New Connector page, type a Connector Name.
-
From the Connector Type drop-down list, select Epic Connector - 1.5.20.26.
-
Complete the Base Connector Details.
For a list of all configuration properties, refer to Epic Connector Configuration -
Click Save.
When your connector is configured correctly, the connector displays as Active in the admin UI.
Refer to this procedure to create a connector configuration over REST.
Test the Epic connector
Test that the configuration is correct by running the following command:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ "http://localhost:8080/openidm/system/Epic?_action=test" { "name": "Epic", "enabled": true, "config": "config/provisioner.openicf/Epic", "connectorRef": { "bundleVersion": "[1.5.0.0,1.6.0.0)", "bundleName": "org.forgerock.openicf.connectors.epic-connector", "connectorName": "org.forgerock.openicf.connectors.epic.EpicConnector" }, "displayName": "Epic Connector", "objectTypes": [ "__ACCOUNT__", "__ALL__" ], "ok": true }
If the command returns "ok": true
, your connector has been configured correctly and can authenticate to the Epic server.
Epic remote connector
If you want to run this connector outside of PingOne Advanced Identity Cloud or IDM, you can configure the Epic connector as a remote connector. Java Connectors installed remotely on a Java Connector Server function identically to those bundled locally within PingOne Advanced Identity Cloud or installed locally on IDM.
You can download the Epic connector from here.
Refer to Remote connectors for configuring the Epic remote connector.
Configure connection pooling
The Epic connector supports connection pooling, which can substantially improve the performance of the connector. The basic connection pooling configuration is described in Connection pooling configuration.
Supported resource types
The Epic connector supports the following resource types:
ICF Native Type | Epic Resource Type | Naming Attribute |
---|---|---|
|
User |
__NAME__ |
|
Department |
__NAME__ |
|
Linked Provider |
__NAME__ |
|
User Template |
__NAME__ |
|
User Sub Template |
__NAME__ |
|
In Basket Classifications |
__NAME__ |
|
Groups |
__NAME__ |
Supported search filters
The Epic connector supports Search operations with the following filter operators and attributes:
Object Type | Operators | Attributes |
---|---|---|
|
Id filter |
Id |
|
Id filter |
Id |
|
Id filter |
Id |
|
Id filter |
Id |
|
Id filter |
Id |
|
Id filter |
Id |
|
Id filter |
Id |
Attributes
The Epic connector supports the following attributes:
Account attributes
Attribute | Description |
---|---|
Name |
The name of the user |
ContactDate |
Date to use for the newly created contact |
IsActive |
Whether the user record should be set to active or inactive |
UserID |
External identifier for the user |
UserIDType |
Type of identifier provided in UserID |
UserComplexName |
Individual pieces of a user’s name which includes Academic Title, Father Name, First Name, Given Name initials, Last Name, Last Name Prefix, Primary Title, Spouse Last Name, Spouse Last Name First, Spouse Prefix, Suffix |
ContactComment |
Contact comment that will appear for the initial contact |
SystemLoginID |
New value for the user’s system login |
LDAPOverrideID |
A string that can be provided to identify the user to the LDAP server in place of the SystemLogin |
UserAlias |
New value for the user’s alias |
UserPhotoPath |
A URL or file path identifying the location of a picture to show for this user |
Sex |
The sex of the user |
ReportGrouper1 |
New value for the user’s first freetext report grouper item |
ReportGrouper2 |
New value for the user’s second free-text report grouper item |
ReportGrouper3 |
New value for the user’s third freetext report grouper item |
Notes |
Free text notes about the user |
UsersManagers |
The user’s managers |
PrimaryManager |
The primary manager of this user |
BlockStatus |
A user’s block status which includes IsBlocked, BlockReason, BlockComment |
DefaultLoginDepartmentID |
The ID and ID type of the default login department |
CategoryReportGrouper6 |
A list of values for the user’s sixth category report grouper item, which does not have an Epic-defined meaning |
InBasketClassifications |
List of new values for a user In Basket classifications |
UserSubtemplateIDs |
Sub template of the user |
DefaultTemplateID |
Default and Linked template of the user |
Group |
Group the user belongs to |
Provider |
The user’s provider id |
LinkedProviderID |
Links a provider’s schedule to a user |
Department |
Department the user belongs to |
UserTemplate |
Template of the User |
InBasketClassifications attributes
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
Attribute | Description |
---|---|
Value |
The ID of the InBasketClassifications |
Title |
Description of the InBasketClassifications |
UserSubtemplateID attributes
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
Attribute | Description |
---|---|
User Subtemplate ID |
The ID of the Linked Sub-template |
User Subtemplate Name |
The Name of the Linked Sub-template |
Group attributes
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
Attribute | Description |
---|---|
Value |
The ID of the Group |
Title |
Display name of the Group |
Type |
Type of the Group |
Provider attributes
Attribute | Description |
---|---|
ExternalID |
The ID of the Provider |
Name |
The name of the Provider |
Title |
Title of the Provider |
NPI ID |
NPI ID of the Provider |
Provider Type |
Type of the Provider |
Specialty |
Specialty of the Provider |
Practice Name |
Practice Name of the Provider |
Street Address |
Street Address of the Provider |
Phone |
Phone of the Provider |
Specialties |
The specialties of the Provider |
Doctors Degree |
The qualification of the Provider |
Department attributes
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
Attribute | Description |
---|---|
ExternalID |
The ID of the Department |
Name |
The name of the Department |
Center |
Center of the Department |
Specialty |
Specialty of the Department |
Location |
Location of the Department |
Service Area |
Service Area of the Department |
Use the Epic connector
The Epic connector supports EMP user and SER provider records. |
The Epic connector can perform the following actions:
Users
Create an Epic user
The following example creates a user with the minimum required attributes:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json"\ --request POST \ --data '{ "UserID": "8675309”, "__NAME__": "Walter, Taylor" }'\ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__?_action=create" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "ContactComment": "Initial contact created via web service", "UserID": "8675309", "__NAME__": "WALTER, TAYLOR", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": true }
|
Query Epic user entries
The following example queries all Epic users:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__?_queryId=query-all-ids" { "result": [ { "_id": "dsully" }, { "_id": "999999999" }, { "_id": "admin@ACECompany.com" }, { "_id": "extuser320" }, { "_id": "Achong" }, { "_id": "dsewell" }, { "_id": "8675309" }, { "_id": "atestuser" }, { "_id": "Amaraphornc" }, { "_id": "jocampo" } ], "resultCount": 10, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
The following command queries a specific user by their ID:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "ContactComment": "Initial contact created via web service", "UserID": "8675309", "__NAME__": "WALTER, TAYLOR", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": true }
Modify an Epic user entry
You can modify an existing user with a PUT request, including all attributes of the account in the request. You can use the Epic connector to modify the following attributes:
User accounts
-
__ENABLE__
-
__GROUP__
-
__NAME__
(Required) -
__PASSWORD__
-
UserID
-
UserIDType
-
UserAlias
-
UserPhotoPath
-
Sex
-
Notes
-
Provider
-
LinkedProviderID
-
Department
-
ContactComment
-
ContactDate
-
SystemLoginID
-
LDAPOverrideID
-
DefaultLoginDepartmentID
-
ReportGrouper1
-
ReportGrouper2
-
ReportGrouper3
-
CategoryReportGrouper
-
InBasketClassifications
-
UsersManagers
-
PrimaryManager
-
DefaultTemplateID
-
UserTemplate
-
UserSubtemplateIDs
-
UserComplexName
-UserComplexName
has the following sub-attributes:-
FirstName
-
GivenNameInitials
-
MiddleName
-
LastName
-
LastNamePrefix
-
SpouseLastName
-
SpousePrefix
-
SpouseLastNameFirst
-
Suffix
When updating a user, __NAME__
overrides theFirstName
,LastName
andMiddleName
ofUserComplexName
attributes. -
-
IsActive
-
BlockStatus
-BlockStatus
has the following sub-attributes:-
IsBlocked
-
BlockStatus.Comment
-
In Basket Classifications
-
__UID__
-
__NAME__
Groups
-
__UID__
-
__NAME__
-
Type
User Templates
-
__UID__
-
__NAME__
User Sub Templates
-
__UID__
-
__NAME__
Provider
-
__NAME__
-
__UID__
-
ExternalID
-
Title
-
NPI ID
-
Provider Type
-
Specialty
-
Practice Name
-
Street Address
-
Phone
For example, to add a Suffix
to a user:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request PUT \ --data '{ "__NAME__": "Walter, Taylor", "UserComplexName": { "Suffix": "Junior" } }' \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "Jr.", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "UserID": "8675309", "__NAME__": "WALTER, TAYLOR JR.", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": true }
Reset an Epic user account password
To reset the password for Epic user account, you can use the connector to change a user’s password.
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request PUT \ --data '{ "__PASSWORD__": "Passw0rd@123!", "__NAME__": "Walter, Taylor" }' \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "UserID": "8675309", "__NAME__": "WALTER, TAYLOR", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": true }
Activate an Epic user
The following example activates a user with the minimum required attributes, and updates their name:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request PUT \ --data '{ "__NAME__": "Walter, Taylorupdate", "__ENABLE__": "true" }' \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylorupdate", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "UserID": "8675309", "__NAME__": "WALTER, TAYLORUPDATE", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": true }
Deactivate an Epic user
The following example deactivates a user with the minimum required attributes:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request PUT \ --data '{ \ "__NAME__": "TAYLOR, WALTER", "__ENABLE__": false }'\ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "UserID": "8675309", "__NAME__": "WALTER, TAYLOR", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": false }
Close an Epic user account
You can use the Epic connector to delete an account from the Epic repository.
A deleted account technically remains in the Epic repository, but cannot be queried by its ID. |
The following example deletes an Epic account:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request DELETE \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "_id": "8675309", "UserComplexName": { "FirstName": "Taylor", "GivenNameInitials": "", "MiddleName": "", "LastName": "Walter", "LastNamePrefix": "", "SpouseLastName": "", "SpousePrefix": "", "Suffix": "", "AcademicTitle": "", "PrimaryTitle": "", "SpouseLastNameFirst": false, "FatherName": "", "GrandfatherName": "" }, "BlockStatus": { "IsBlocked": false, "Reason": "", "Comment": "" }, "__GROUP__": [], "UserID": "8675309", "__NAME__": "WALTER, TAYLOR", "UsersManagers": [], "InBasketClassifications": [], "__ENABLE__": false }
You can then confirm the account has been deleted by querying the UserID
:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/__ACCOUNT__/8675309" { "code": 404, "reason": "Not Found", "message": "Object 8675309 not found on system/Epic/__ACCOUNT__" }
Other objects
Contact your Epic Admin to obtain the Active Linkable Templates, Login Departments, Active Linkable Sub Templates, InBasketClassifications, and Groups. |
All supported resources can be queried, such as Department, Provider, Template, Sub Template, InBasketClassifications, and Groups:
Query Epic departments
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/Department?_queryId=query-all-ids" { "result": [ { "_id": "40" }, { "_id": "56" }, { "_id": "71" }, { "_id": "77" }, { "_id": "58" }, [ ... ] { "_id": "46" }, { "_id": "10120160" }, { "_id": "1002020" }, { "_id": "31" }, { "_id": "83" }, { "_id": "115" } ], "resultCount": 548, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
Query Epic providers
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/Provider?_queryId=query-all-ids" { "result": [ { "_id": "116" }, { "_id": "E3087" }, { "_id": "E4000" }, { "_id": "E4913" }, { "_id": "E5335" }, { "_id": "E4716" }, { "_id": "E5370" }, [ ... ] { "_id": "E4001" }, { "_id": "E4002" }, { "_id": "E5137" }, { "_id": "E5199" }, { "_id": "E4003" }, { "_id": "E4694" }, { "_id": "E4004" }, { "_id": "E4005" }, { "_id": "E5019" }, { "_id": "E4843" } ], "resultCount": 2560, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/Provider/E4716" { "_id": "E4716", "Specialty": "Family Medicine", "__UID__": "E4716", "Provider Type": "Physician", "__NAME__": "WELLHIVE, PROVIDER" }
Query user templates
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/UserTemplate?_queryId=query-all-ids" { "result": [ { "_id": "T00004" }, { "_id": "T00024" }, { "_id": "T00033" }, { "_id": "T00038" }, { "_id": "T00076" }, { "_id": "T00077" }, { "_id": "T00078" }, { "_id": "T00088" }, { "_id": "T00089" }, { "_id": "T00090" }, { "_id": "T1000601" }, { "_id": "T1002020" }, { "_id": "T1020101" }, { "_id": "T1020102" }, [ ... ] { "_id": "T8888001" }, { "_id": "T8889901" }, { "_id": "T9998001" } ], "resultCount": 431, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/UserTemplate/T8888001" { "_id": "T8888001", "__UID__": "T8888001", "__NAME__": "RESEARCH ADMINISTRATOR TEMPLATE" }
Query user sub templates
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/UserSubTemplate?_queryId=query-all-ids" { "result": [ { "_id": "ST00007" }, { "_id": "ST00030" }, { "_id": "ST10200" }, { "_id": "ST10201" }, { "_id": "ST10202" }, { "_id": "ST10203" }, { "_id": "ST10204" }, [ ... ] { "_id": "ST10401" }, { "_id": "ST10402" }, { "_id": "ST10700" }, { "_id": "ST107001" }, { "_id": "T5080002" }, { "_id": "T99901" }, { "_id": "TCVREPSUB" } ], "resultCount": 91, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/UserSubTemplate/T00007" { "_id": "T00007", "__NAME__": "EXCEL MEDICAL", "__UID__": "T00007" }
Query In Basket classifications
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/InBasketClassifications?_queryId=query-all-ids" { "result": [ { "_id": "1" }, { "_id": "2" }, { "_id": "15" }, { "_id": "29" }, { "_id": "30" }, { "_id": "31" }, { "_id": "84" }, { "_id": "85" }, { "_id": "100" }, { "_id": "140" }, { "_id": "141" }, { "_id": "212" } ], "resultCount": 12, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/InBasketClassifications/140" { "_id": "140", "__NAME__": "Model AP Pt Clinical Msg Pool", "__UID__": "140" }
Query Epic groups
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/__GROUP__?_queryId=query-all-ids" { "result": [ { "_id": "1" }, { "_id": "2" }, { "_id": "3" }, { "_id": "4" }, { "_id": "5" }, { "_id": "6" }, { "_id": "7" }, { "_id": "1000" }, { "_id": "1001" }, { "_id": "1002" }, { "_id": "1003" }, { "_id": "1004" }, { "_id": "1005" }, { "_id": "1006" } ], "resultCount": 14, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "http://localhost:8080/openidm/system/Epic/__GROUP__/1000" { "_id": "1000", "__NAME__": "Community", "__UID__": "1000", "Type": "Community", "Undefined3": "Customer~Epic Customer" }
OpenICF Interfaces Implemented by the Epic Connector
The Epic Connector implements the following OpenICF interfaces. For additional details, see ICF interfaces:
- Create
-
Creates an object and its
uid
. - Delete
-
Deletes an object, referenced by its
uid
. - Schema
-
Describes the object types, operations, and options that the connector supports.
- Script on Connector
-
Enables an application to run a script in the context of the connector.
Any script that runs on the connector has the following characteristics:
-
The script runs in the same execution environment as the connector and has access to all the classes to which the connector has access.
-
The script has access to a
connector
variable that is equivalent to an initialized instance of the connector. At a minimum, the script can access the connector configuration. -
The script has access to any script arguments passed in by the application.
-
- Search
-
Searches the target resource for all objects that match the specified object class and filter.
- Test
-
Tests the connector configuration.
Testing a configuration checks all elements of the environment that are referred to by the configuration are available. For example, the connector might make a physical connection to a host that is specified in the configuration to verify that it exists and that the credentials that are specified in the configuration are valid.
This operation might need to connect to a resource, and, as such, might take some time. Do not invoke this operation too often, such as before every provisioning operation. The test operation is not intended to check that the connector is alive (that is, that its physical connection to the resource has not timed out).
You can invoke the test operation before a connector configuration has been validated.
- Update
-
Updates (modifies or replaces) objects on a target resource.
Epic Connector Configuration
The Epic Connector has the following configurable properties:
Basic Configuration Properties
Property | Type | Default | Encrypted(1) | Required(2) |
---|---|---|---|---|
|
|
|
|
Yes |
Provides the Client ID to authorize the Epic APIs. |
||||
|
|
|
Yes |
Yes |
Provides the Private key in pkcs8 format. |
||||
|
|
|
|
Yes |
Provides the Username required for Connection. |
||||
|
|
|
Yes |
Yes |
Provides the Password required for Connection. |
||||
|
|
|
|
No |
Provides the location of User Template file. |
||||
|
|
|
|
No |
Provides the location of User Subtemplate file. |
||||
|
|
|
|
No |
Provides the location of In Basket Classifications File. |
||||
|
|
|
|
No |
Provides the location of Group File. |
||||
|
|
|
|
No |
Provides the Maximum records for search operation. |
||||
|
|
|
|
No |
Provides the Maximum connections. |
||||
|
|
|
|
No |
Provides the Maximum Connection Timeout in seconds. |
||||
|
|
|
Yes |
No |
Provides the Access token to establish connectivity with the target. |
||||
|
|
|
|
No |
Provides the Validity period of the token. |
||||
|
|
|
|
No |
Provides the HTTP Proxy Host. |
||||
|
|
|
|
No |
Provides the HTTP Proxy Port. |
||||
|
|
|
|
No |
Provides the HTTP Proxy Username. |
||||
|
|
|
Yes |
No |
Provides the HTTP Proxy Password. |
||||
|
|
|
No |
|
The HTTP URL for the REST End point (https://myserver.com/service/). |
||||
|
|
|
No |
|
The HTTP URL for the SOAP End point (https://myserver.com/service/). |
(1) Whether the property value is considered confidential, and is therefore encrypted in IDM.
(2) A list of operations in this column indicates that the property is required for those operations.