PrescribeIT™ Specification and Guide Version 2.0 Revision F

 

This section provides details on the APIs that have been defined for the PrescribeIT™ domain. Shared Health domain APIs are included on the Shared Health API Summary page.

The endpoints will vary by environment (e.g. Production, Pre-conformance) and may also be context specific. Implementers should make the endpoints' URLs configurable within their systems as these may be updated in future releases. Vendors should not be storing the organization/practitioner URL's; rather they should build it at runtime using configurable prefix's per environment and the identifier itself. The real URLs will be published to Vendors upon onboarding with PrescribeIT™.

For PrescribeIT™ there will be three new HTTP headers that will be required in the Formulary Query, Deferred Query, and Provider Registry Queries. The headers will be for a) Application Instance Identifier, b) PR - Practitioner Identifier, and c) PR - Organization Identifier.

The headers are required so that PrescribeIT™ can determine the originator of the query when an application instance is using a hub/routing application. See the table below for conformance rules.

The Application Instance Identifier is mandatory for all queries and will be populated with the sending application instance OID.

HTTP Request Header Conformance Rules Expected Format
X-SHAREDHEALTH-EXCHANGE-SENDING-APP-INSTANCE-ID Mandatory for Formulary Query (EMR), Deferred Query (PMS), and Provider Registry Queries X-SHAREDHEALTH-EXCHANGE-SENDING-APP-INSTANCE-ID: urn:oid:1.2.0.9.9.4.0994
X-SHAREDHEALTH-EXCHANGE-SENDING-PRACTITIONER-ID

Not applicable for Deferred Query (PMS) or for PMS-initiated Provider Registry Queries

Optional for Formulary Query (EMR) but should be provided if Practitioner is enrolled and known

Must be present for EMR-initiated Provider Registry queries if value is known

X-SHAREDHEALTH-EXCHANGE-SENDING-PRACTITIONER-ID: http://sharedhealth.exchange/fhir/NamingSystem/registry-id-practitioner|190000074
X-SHAREDHEALTH-EXCHANGE-SENDING-ORGANIZATION-ID

Mandatory for Formulary Query (EMR) and Deferred Query (PMS)

Must be present when known for Provider Registry Queries

X-SHAREDHEALTH-EXCHANGE-SENDING-ORGANIZATION-ID: http://sharedhealth.exchange/fhir/NamingSystem/registry-id-organization|190001234
API Type REST
Verb PUT
Required Request Headers

X-TELUS-SDF-Developer-Key: <value>

Note: <value> for X-TELUS-SDF-Developer-Key is unique for each caller location. It is a credential which is supplied along with the SDF certificate to each location during its on-boarding.

Accept: one of the following <value>

  • application/xml
  • application/json
  • text/plain

Content-Type: See PrescribeIT Clinician Communication

Response Content Type N/A in case of success, Otherwise "Fail" it will depend on Accept request Header
Response Header Location (contains location of attachment to download)
Description Service to upload PrescribeIT (305) attachments, attachment will be uploaded as binary in the HTTP request body
Endpoint URLs https://EnvironmentSpecificHost/EnvironmentSpecificPathInbox/Binary/${AttachmentId}
Service Response HTTP Code header and Payload
  • HTTP 200 for success
  • HTTP 500 for any error + Operation Outcome with errors details
API Type REST
Verb GET
Request N/A
Response Content Type Depends on attachment content type.
Description Service to download attachments referenced in FHIR messages with task code 305
Endpoint URL https://EnvironmentSpecificHost/EnvironmentSpecificPathInbox/Binary/${AttachmentId}
Service Response HTTP Code header and Payload
  • HTTP 200 for success + Attachment Content-Disposition, Attachment Content-Type
  • HTTP 500 for any error + Operation Outcome with errors details
API Type REST
Verb POST
Request Content Type application/xml
Response Content Type application/xml
Required Request Headers

X-TELUS-SDF-Developer-Key: <value>

Note: <value> for X-TELUS-SDF-Developer-Key is unique for each caller location. It is a credential which is supplied along with the SDF certificate to each location during its on-boarding.

Accept: application/xml

Content-Type: application/xml

Description Service to issue one time password and send it to user as SMS or EMAIL
Endpoint URL https://EnvironmentSpecificHost/EnvironmentSpecificPathSTS/requestOTP
Request Schema
  1. Production Environment

    STS-requestOTP.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sharedhealth.exchange/erx/2016/06/STS" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="requestOTP" type="requestOTPType">
            <xs:annotation>
                <xs:documentation>STS OTP Request Message</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="requestOTPType">
            <xs:sequence>
                <xs:element name="entityBusinessId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="appInstanceId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="thpsUserId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="noPhone" type="xs:boolean"/>
                <xs:element name="debug" type="xs:boolean" minOccurs="0" maxOccurs="1" />
            </xs:sequence>
        </xs:complexType>
    </xs:schema>
    
  2. LAB Environment

    STS-requestOTP LAB.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sharedhealth.exchange/erx/2016/06/STS" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="requestOTP" type="requestOTPType">
            <xs:annotation>
                <xs:documentation>STS OTP Request Message</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="requestOTPType">
            <xs:sequence>
                <xs:element name="entityBusinessId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="appInstanceId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="thpsUserId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="noPhone" type="xs:boolean"/>
                <xs:element name="debug" type="xs:boolean"/>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>
    
Request Sample
  1. Production Environment
    <ns2:requestOTP xmlns:ns2="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sharedhealth.exchange/erx/2016/06/STS STS-requestToken.xsd">
    <ns2:entityBusinessId>https://api.preprd.sharedhealth.teluslabs.net/rest/v1/THP/PR_vs1/Organization/190000104</ns2:entityBusinessId>
        <ns2:appInstanceId>urn:oid:1.2.2.3.3.7.7.9003012</ns2:appInstanceId>
        <ns2:thpsUserId>190000126</ns2:thpsUserId>
        <ns2:noPhone>false</ns2:noPhone>
        <ns2:debug>false</ns2:debug>
    </ns2:requestOTP>
    
  2. LAB Environment
    <ns2:requestOTP xmlns:ns2="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sharedhealth.exchange/erx/2016/06/STS STS-requestToken.xsd">
      <ns2:entityBusinessId>https://webservices.sharedhealth.exchange/rest/v1/THP/PR/v1/Organization/190000104</ns2:entityBusinessId>
      <ns2:appInstanceId>urn:oid:1.2.2.3.3.7.7:9003012</ns2:appInstanceId>
      <ns2:thpsUserId>190000126</ns2:thpsUserId>
      <ns2:noPhone>false</ns2:noPhone>
      <ns2:debug>true</ns2:debug>
    </ns2:requestOTP>
    
Response Schema

STSResponseStatus.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sharedhealth.exchange/erx/2016/06/STS" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="responseStatus" type="responseStatusType">
        <xs:annotation>
            <xs:documentation>Common Response Structure</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="responseStatusType">
        <xs:sequence>
            <xs:element name="status">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Success"/>
                        <xs:enumeration value="Fail"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="message" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="code" type="xs:int"/>
            <xs:element name="timeStamp" type="customDT"/>
            <xs:element name="TraceId">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="customDT">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-6][0-9]\.[0-9]{3}"/>
            <!-- Example: 2009-12-31 00:00:00.123    yyyy-MM-dd HH:mm:ss.SSS -->
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
Response Sample
  1. Production Environment

    <ns:message> value is always empty

    <ns:responseStatus xmlns:ns="http://www.sharedhealth.exchange/erx/2016/06/STS">
       <ns:status>Success</ns:status>
       <ns:message></ns:message>
       <ns:code>200</ns:code>
       <ns:timeStamp>2018-04-13 13:02:23.955</ns:timeStamp>
       <ns:X-TELUS-SDF-TraceId>8c2e8706-e7d7-4467-8b61-e3d7c49ee093</ns:X-TELUS-SDF-TraceId>
    </ns:responseStatus>
    
  2. Lab Environment

    Password will be in the <ns:message> value of the response if debug element in the request was set to true

    <ns:responseStatus xmlns:ns="http://www.sharedhealth.exchange/erx/2016/06/STS">
       <ns:status>Success</ns:status>
       <ns:message>xdxb3</ns:message>
       <ns:code>200</ns:code>
       <ns:timeStamp>2018-04-13 13:02:23.955</ns:timeStamp>
       <ns:X-TELUS-SDF-TraceId>8c2e8706-e7d7-4467-8b61-e3d7c49ee093</ns:X-TELUS-SDF-TraceId>
    </ns:responseStatus>
    
Service Response Code Headers
  • HTTP 200 for Success.
  • HTTP 403 for an email OTP request exceeding the email monthly threshold.
  • HTTP 401 for a White Listed EMR asking for an OTP, or not valid EMR instance.
  • HTTP 500 for any bac-kend errors.
API Type REST
Verb POST
Request Content Type application/xml
Response Content Type application/xml
Required Request Headers

X-TELUS-SDF-Developer-Key: <value>

Note: <value> for X-TELUS-SDF-Developer-Key is unique for each caller location. It is a credential which is supplied along with the SDF certificate to each location during its on-boarding.

Accept: application/xml

Content-Type: application/xml

Description Service to issue SAML Token
Response Header from Service X-TELUS-ERX-SAML-EXPIRY
X-SHAREDHEALTH-EXCHANGE-SAML-EXPIRY
X-SHX-SDF-TraceId
Endpoint URL https://EnvironmentSpecificHost/EnvironmentSpecificPathSTS/requestToken
Request Schema
  1. Production Environment

    STS-requestToken-v3.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sharedhealth.exchange/erx/2016/06/STS" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="requestToken" type="requestTokenType">
            <xs:annotation>
                <xs:documentation>STS Token Request Message</xs:documentation>
            </xs:annotation>
        </xs:element>
        <xs:complexType name="requestTokenType">
            <xs:sequence>
                <xs:element name="entityBusinessId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="appInstanceId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="thpsUserId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="OTP" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="10"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="localUserId">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="100"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="firstName" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="50"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="lastName">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="50"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="licenseNumber" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="50"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="licenseIssuer" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:maxLength value="50"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>
    
Request Sample
<requestToken xsi:schemaLocation="http://www.sharedhealth.exchange/erx/2016/06/STS STS-requestToken.xsd" xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <entityBusinessId>https://api.preprd.sharedhealth.teluslabs.net/rest/v1/THP/TPR_vs1/Organization/190000021</entityBusinessId>
    <appInstanceId>urn:oid:1.2.0.9.9.4.0994</appInstanceId>
    <thpsUserId>190000074</thpsUserId>
    <OTP>8upwh</OTP>
    <localUserId>Colomba DeAngelis MD</localUserId>
    <firstName>Colomba</firstName>
    <lastName>DeAngelis</lastName>
</requestToken>

Request With LicenseNumber

<requestToken xsi:schemaLocation="http://www.sharedhealth.exchange/erx/2016/06/STS STS-requestToken.xsd" xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <entityBusinessId>https://api.preprd.sharedhealth.teluslabs.net/rest/v1/THP/TPR_vs1/Organization/190000021</entityBusinessId>
    <appInstanceId>urn:oid:1.2.0.9.9.4.0994</appInstanceId>
    <thpsUserId>190000074</thpsUserId>
    <OTP>8upwh</OTP>
    <localUserId>Colomba DeAngelis MD</localUserId>
    <lastName>DeAngelis</lastName>
    <licenseNumber>QA1qa14122</licenseNumber>
    <licenseIssuer>urn:oid:2.16.840.1.113883.4.347</licenseIssuer>
</requestToken>
Response Schema

STSResponseStatus.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.sharedhealth.exchange/erx/2016/06/STS" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sharedhealth.exchange/erx/2016/06/STS" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="responseStatus" type="responseStatusType">
        <xs:annotation>
            <xs:documentation>Common Response Structure</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="responseStatusType">
        <xs:sequence>
            <xs:element name="status">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="Success"/>
                        <xs:enumeration value="Fail"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="message" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="code" type="xs:int"/>
            <xs:element name="timeStamp" type="customDT"/>
            <xs:element name="X-TELUS-SDF-TraceId">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="customDT">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-6][0-9]\.[0-9]{3}"/>
            <!-- Example: 2009-12-31 00:00:00.123    yyyy-MM-dd HH:mm:ss.SSS -->
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
Response + response header sample
<ns:responseStatus xmlns:ns="http://www.sharedhealth.exchange/erx/2016/06/STS">
   <ns:status>Success</ns:status>
   <ns:message>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWwyOkFzc2VydGlvbiBJRD0iNjAyODNkZDItNDY4Ny00ZmQ3LWI0MjMtYmY1NDE5MmNkYmY3IiBJc3N1ZUluc3RhbnQ9IjIwMTgtMDQtMTVUMTQ6MzY6NDEuNTA0WiIgVmVyc2lvbj0iMi4wIiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj48c2FtbDI6SXNzdWVyPmh0dHBzOi8vYXBpLnByZXByZC50ZWx1c2xhYnMubmV0L3Jlc3QvdjEvVEhQL1NUU192czE8L3NhbWwyOklzc3Vlcj48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiLz48ZHM6UmVmZXJlbmNlIFVSST0iIzYwMjgzZGQyLTQ2ODctNGZkNy1iNDIzLWJmNTQxOTJjZGJmNyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PGVjOkluY2x1c2l2ZU5hbWVzcGFjZXMgUHJlZml4TGlzdD0ieHMiIHhtbG5zOmVjPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybT48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIi8+PGRzOkRpZ2VzdFZhbHVlPk05RXhZbkMwK09DUy94b1p4c3Jka0R4SFJZRT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWU+UWVjOXNTRDd2aVpSZnMvSkV1bmJZNDU2cDVkaUVQdGRVdUVEQnBjcmRsbzEyWDY5UFd3RTFDMVdwVTVRQ2tqdE0rRnprWWxxSGpJVUhCSUt2QkRGNEg4TXpWQ2ZnWmEvZDRUZU1zS2xJVzJ6dlhiN3dudisxNVZaeXN0U04yaDRDVGZRbk44c0ZNdHIvZnJmQkVsWm9MdkJET2dxcG5DRFkwZHJ0MG51UldNRTIwSldDUVA1TklUNnBXS3BGT0xuMHEwby9rK0x6cWRvKzV6NFVsNGpFeFppRG1RMTFMNUtsTlJSK29nQ29RcDBiQUFoV3U2L0pzRmdxazRJb241WG1uUGY1WEhKeU9GMXBsazdYZm1tZldDcU9sZFJhSThEQ2ZycDdDMG52cEVXT2lYZURIY0p1TUJlVGhtanBxaERPVkNaaWdFNHQxSEppcnVDSWZvWEVRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUR6akNDQXJhZ0F3SUJBZ0lFV1RxekdEQU5CZ2txaGtpRzl3MEJBUXNGQURDQnFERW5NQ1VHQ1NxR1NJYjNEUUVKQVJZWWJXbGoKWVdWc0xtdHBjbTkxWVdOQWRHVnNkWE11WTI5dE1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDVVVNeEdEQVdCZ05WQkFjTQpEMVJGVEZWVFNFVkJURlJJTG1OdmJURVVNQklHQTFVRUNnd0xWRVZNVlZOSVJVRk1WRWd4RkRBU0JnTlZCQXNNQzFSRlRGVlRTRVZCClRGUklNUjB3R3dZRFZRUUREQlJUVkZOZlZFVlRWRjlGV0ZCSlVrVmZNakF5TnpBZUZ3MHhOekEyTURreE5EUXdNamhhRncweU56QTIKTURreE5EUXdNamhhTUlHb01TY3dKUVlKS29aSWh2Y05BUWtCRmhodGFXTmhaV3d1YTJseWIzVmhZMEIwWld4MWN5NWpiMjB4Q3pBSgpCZ05WQkFZVEFrTkJNUXN3Q1FZRFZRUUlEQUpSUXpFWU1CWUdBMVVFQnd3UFZFVk1WVk5JUlVGTVZFZ3VZMjl0TVJRd0VnWURWUVFLCkRBdFVSVXhWVTBoRlFVeFVTREVVTUJJR0ExVUVDd3dMVkVWTVZWTklSVUZNVkVneEhUQWJCZ05WQkFNTUZGTlVVMTlVUlZOVVgwVlkKVUVsU1JWOHlNREkzTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxMjdzUWVXdzlhVjQyQlptVnBtWQpKdHFkZzg2R09HMXFtSlM2NjFHZ0VtUUxacWdzZDUzZE93YlEyVGd2VjIrVkZZZHBMUlhKcFUwY0R5b24vK0pESGRXcW8yOG1iRDVsCm1qbFg0MmN1NDFoQ0JJRlFDN3FDT1dJOWMyK3IvazdwM1Ixcm5tT3ZtUDhJdm8rT21sZjN2SkJNcTYzYm1jZW1RQnc1YkVtcnJobngKOS9TaUxKTnkydDJTaTlKSU5sclcyTXU1aFVOdlZ5L0tNL1NHTVUrbEhXU1pXa0Z3dHFoRmZHdWhjdnhCRCs1WFA4UmlWOW9ERzJzZgorQ3BpNkErRzd5NmtGWkFMdG1hQUNzeXRoVTRnRHVzSi8rWmphU3NqeUtkenNiUXhGcGFHU3NOajlUS2duNHN0a0h3VUs0M1N2SDhrCmwrUVNtell1dVVKbzcxZExCd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ1Q4TkhPd093S3JnYzR5R0hnRXM4ekN0cHMKQzN2Qk5JS3hTSFc0UWV1ZXQ1YWdoSDZLMlAzNS82eGpxUmpPWG1WYnp1eXhNWWR5OWVIa2ZpWmlqR0ZFRHdpeEl6Sk5icXBFcWlEOAp5eFhLSDhKaXJFSC9xN1RmbWZNNFhtWE5CTzVESFBRenZ1MXRUVTJJZUFWRkJmYkU4aTVvTjVzaFhYOG5MUlhSaTNCanR0STlYclEwCndaUEdlWEYyRDZyNHh5NzM4Mk10RUVhSjhBR1NLdmVIQk1ERU8zMmxWdS9qeS96YlRCazNGcmVzdTJ3UUEvM2RpN293RjB4YTc1T1IKL01KQTUzVFJWeDFEbjQ4YVhjRlZPT3JyRTREQkpPSlhZck0wR3ZhemVHdGRraDRnNFk3YjRlemduazFyZnZFU3NUd1FNdDlMT1BNMAoxNUV2b2VuZGZYSG88L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48c2FtbDI6U3ViamVjdD48c2FtbDI6TmFtZUlEIEZvcm1hdD0iVGVsdXNoZWFsdGguY29tIiBOYW1lUXVhbGlmaWVyPSJUZWx1c2hlYWx0aC5jb20iPjE5MDAwMDA3NDwvc2FtbDI6TmFtZUlEPjxzYW1sMjpTdWJqZWN0Q29uZmlybWF0aW9uIE1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmNtOmJlYXJlciI+PHNhbWwyOlN1YmplY3RDb25maXJtYXRpb25EYXRhIE5vdE9uT3JBZnRlcj0iMjAxOC0wNC0xNVQyMjozNjo0MS41MDRaIi8+PC9zYW1sMjpTdWJqZWN0Q29uZmlybWF0aW9uPjwvc2FtbDI6U3ViamVjdD48c2FtbDI6Q29uZGl0aW9ucyBOb3RCZWZvcmU9IjIwMTgtMDQtMTVUMTQ6MzY6NDEuNTA0WiIgTm90T25PckFmdGVyPSIyMDE4LTA0LTE1VDIyOjM2OjQxLjUwNFoiLz48c2FtbDI6QXV0aG5TdGF0ZW1lbnQgQXV0aG5JbnN0YW50PSIyMDE4LTA0LTE1VDIyOjM2OjQxLjUwNFoiPjxzYW1sMjpBdXRobkNvbnRleHQ+PHNhbWwyOkF1dGhuQ29udGV4dENsYXNzUmVmPnVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphYzpjbGFzc2VzOlNlY3VyZVJlbW90ZVBhc3N3b3JkPC9zYW1sMjpBdXRobkNvbnRleHRDbGFzc1JlZj48L3NhbWwyOkF1dGhuQ29udGV4dD48L3NhbWwyOkF1dGhuU3RhdGVtZW50PjxzYW1sMjpBdHRyaWJ1dGVTdGF0ZW1lbnQ+PHNhbWwyOkF0dHJpYnV0ZSBOYW1lPSJodHRwOi8vc2NoZW1hcy50ZWx1c2hlYWx0aC5jb20vMjAxNi8wNS9pZGVudGl0eS9jbGFpbXMvTGljZW5zZSI+PHNhbWwyOkF0dHJpYnV0ZVZhbHVlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTp0eXBlPSJ4czpzdHJpbmciPnVybjpvaWQ6Mi4xNi44NDAuMS4xMTM4ODMuNC4zNDc6UUExcWExNDUwODwvc2FtbDI6QXR0cmlidXRlVmFsdWU+PC9zYW1sMjpBdHRyaWJ1dGU+PHNhbWwyOkF0dHJpYnV0ZSBOYW1lPSJodHRwOi8vc2NoZW1hcy50ZWx1c2hlYWx0aC5jb20vMjAxNi8wNS9pZGVudGl0eS9jbGFpbXMvU2VydmljZUxvY2F0aW9uRW50aXR5SUQiPjxzYW1sMjpBdHRyaWJ1dGVWYWx1ZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ieHM6c3RyaW5nIj5odHRwczovL2FwaS5wcmVwcmQuc2hhcmVkaGVhbHRoLnRlbHVzbGFicy5uZXQvcmVzdC92MS9USFAvVFBSX3ZzMS9Pcmdhbml6YXRpb24vMTkwMDAwMDIxPC9zYW1sMjpBdHRyaWJ1dGVWYWx1ZT48L3NhbWwyOkF0dHJpYnV0ZT48c2FtbDI6QXR0cmlidXRlIE5hbWU9Imh0dHA6Ly9zY2hlbWFzLnRlbHVzaGVhbHRoLmNvbS8yMDE2LzA1L2lkZW50aXR5L2NsYWltcy9MYXN0TmFtZSI+PHNhbWwyOkF0dHJpYnV0ZVZhbHVlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTp0eXBlPSJ4czpzdHJpbmciPkRFQU5HRUxJUzwvc2FtbDI6QXR0cmlidXRlVmFsdWU+PC9zYW1sMjpBdHRyaWJ1dGU+PHNhbWwyOkF0dHJpYnV0ZSBOYW1lPSJodHRwOi8vc2NoZW1hcy50ZWx1c2hlYWx0aC5jb20vMjAxNi8wNS9pZGVudGl0eS9jbGFpbXMvTG9jYWxVc2VySUQiPjxzYW1sMjpBdHRyaWJ1dGVWYWx1ZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ieHM6c3RyaW5nIj5Sb2IgdmFuIGRlbiBCZXJrIE1EPC9zYW1sMjpBdHRyaWJ1dGVWYWx1ZT48L3NhbWwyOkF0dHJpYnV0ZT48c2FtbDI6QXR0cmlidXRlIE5hbWU9Imh0dHA6Ly9zY2hlbWFzLnRlbHVzaGVhbHRoLmNvbS8yMDE2LzA1L2lkZW50aXR5L2NsYWltcy9GaXJzdE5hbWUiPjxzYW1sMjpBdHRyaWJ1dGVWYWx1ZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ieHM6c3RyaW5nIj5DT0xPTUJBPC9zYW1sMjpBdHRyaWJ1dGVWYWx1ZT48L3NhbWwyOkF0dHJpYnV0ZT48c2FtbDI6QXR0cmlidXRlIE5hbWU9Imh0dHA6Ly9zY2hlbWFzLnRlbHVzaGVhbHRoLmNvbS8yMDE2LzA1L2lkZW50aXR5L2NsYWltcy9BcHBJbnN0YW5jZUlEIj48c2FtbDI6QXR0cmlidXRlVmFsdWUgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnR5cGU9InhzOnN0cmluZyI+dXJuOm9pZDoxLjIuMC45LjkuNC4wOTk0PC9zYW1sMjpBdHRyaWJ1dGVWYWx1ZT48L3NhbWwyOkF0dHJpYnV0ZT48L3NhbWwyOkF0dHJpYnV0ZVN0YXRlbWVudD48L3NhbWwyOkFzc2VydGlvbj4=</ns:message>
   <ns:code>200</ns:code>
   <ns:timeStamp>2018-04-15 10:36:41.521</ns:timeStamp>
   <ns:X-TELUS-SDF-TraceId>687f13c1-9955-4a44-8182-86b2134fa918</ns:X-TELUS-SDF-TraceId>
</ns:responseStatus>
  • X-SHAREDHEALTH-EXCHANGE-SAML-EXPIRY: 2018-09-25 02:54:28.136
  • X-TELUS-ERX-SAML-EXPIRY: 2018-09-25 02:54:28.136
  • X-SHX-SDF-TraceId: a1ba12a0-19d1-456a-a831-c877d3ae21ed
  • X-SHX-SDF-Site: site1.api.sharedhealth.exchange
  • X-SHX-SDF-ServerId: sdfxmlfw1
Service Response Code Headers
  • HTTP 200 for Success.
  • HTTP 400 for no OTP and a non-white list EMR and not an EnStream user.
  • HTTP 401 for a failed OTP or a failed EnStream request or not valid EMR instance.
  • HTTP 500 for any backend errors.

The API summary for Shared Health can be found here.