Difference between revisions of "Service Provider Integration"

From SmartWiki
Jump to: navigation, search
(Sample POST to SmartSimple)
(updating categories)
 
Line 298: Line 298:
 
* [[Post to External Server]]
 
* [[Post to External Server]]
  
[[Category:Universal Tracking Application]][[Category:Integration]]
+
[[Category:Integration]]
 +
[[Category:External Services]]

Latest revision as of 14:50, 20 July 2017

This article provides an overview of the process to integrate third party service providers such as transportation and translation services with client copies of SmartSimple that track Independent Medical Assessments(IME) and Rehabilitation services.

For full details, refer to the Service Provider Integration protocol document.

Overview

The objectives of this integration are twofold:

  • Provide the ability for a SmartSimple client to electronically request services from a third party provider.
  • Provide the ability for a third party provider to post invoice details related to the services requested back to the SmartSimple client.

Two service types are currently fully defined and supported: Interpretation/Translation and Transportation. Additional service types will be supported in the future.


The general transfer process is illustrated below:

1 Transfer Process.PNG

  • From SmartSimple, information related to the service request is transferred to the service provider's website using a HTTPS post method
  • Information from the service provider's system is posted back to SmartSimple using a HTTPS post method


Transferring Information from SmartSimple to Service Provider


The information to be transferred from SmartSimple is gathered from a number of linked objects associated to the service.

As illustrated below, information is gathered from the Payor, Client's contact record, Case (Level 1), and the specific assessment or treatment service (Level 2).

2 SmartSimple Objects.PNG

  • The configuration work required to post information to the service provider is performed by SmartSimple or its business partners.


For a complete list of fields transferred from SmartSimple, please refer to Service Provider Integration Fields page.


Transferring Information from Service Provider to SmartSimple


When invoice information is received from the Service Provider, a new record is created under each service called a service billing record (Level 3).

This service billing record contains the details and costs of the services provided.

3 Service Provider Objects.PNG

  • The configuration work required to post information to SmartSimple is performed by the service provider.


For a complete list of fields transferred by the Service Provider, please refer to Service Provider Integration Fields page.


Transfer Process


For security and auditing purposes, information is not directly passed from the Service Provider system to SmartSimple's client interface. Instead the returned service billing information is managed by SmartSimple's Integration Gateway.

4 Integration Gateway.PNG

The gateway performs the following:

  • Manages all incoming service billing information
  • Each SmartSimple client polls the Integration Gateway and extracts Service Billing records using proprietary protocols
  • All fields are submitted by http POST parameters
  • Service URL is https://integration.smartsimple.biz/billingpost/


Sample POST from SmartSimple

The following portion of code is a sample of what SmartSimple will be using within a Web Page View on each client copy to post field data to the service provider.

Note that the naming of the HTML control IDs are the field names specified in the Service Provider Integration Fields page.

The sample page below is sending the following categories of fields:

  • Insurance Company + Referral Contact
  • Pickup Details
  • Claimant Information


<html>
<head>
<title>Transportation Request</title>
</head>

<body>
<form method="POST" action="/ex/ex_post.jsp">
  <input type=hidden name="post_url" value="@system.providerurl@">
  <input type=hidden name="ss_CaseID" value="@parent.opportunityid@">
  <input type=hidden name="ss_ServiceID" value="@eventid@">
  <input type=hidden name="ss_CustomerID" value="ID goes here">
  <input type=hidden name="ss_Source" value="10">
  <div style="border:1px solid #1b409b; max-width:700px; min-width:550px;">
    <table>
      <th colspan="4" align="left" class="titleText001">Insurance company claim referred By:</th>
      </tr>
      <tr>
        <th align="left">Referral Contact First Name </th>
        <td><textarea name=ss_ReferralFirstName readonly>@parent.Referral Contact First Name@</textarea></td>
        <th align="left">Referral Contact Last Name </th>
        <td><textarea name=ss_ReferralLastName readonly>@parent.Referral Contact Last Name@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Address </th>
        <td><textarea name=ss_ReferralAddress readonly>@parent.client.address@</textarea></td>
        <th align="left"> City </th>
        <td><textarea name=ss_ReferralCity readonly>@parent.client.city@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Province </th>
        <td><textarea name=ss_ReferralProvince/State readonly>@parent.client.province@</textarea></td>
        <th align="left"> Postal Code </th>
        <td><textarea name=ss_ReferralPostalCode readonly>@parent.client.postalcode@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Country </th>
        <td><textarea name=ss_ReferralCountry readonly>Canada</textarea></td>
      </tr>
      <tr>
        <th align="left"> Phone </th>
        <td><textarea name=ss_ReferralPhoneNumber readonly>@parent.Referral Contact Phone@</textarea></td>
        <th align="left"> Fax </th>
        <td><textarea name=ss_ReferralFaxNumber readonly>@parent.client.fax@</textarea></td>
      </tr>
      <tr>
        <th align="left">Email </th>
        <td><textarea name=ss_ReferralEmail readonly>@parent.Referral Contact Email@</textarea></td>
        <th align="left"> Company </th>
        <td><textarea name=ss_ReferralCompany readonly>@parent.client.name@</textarea></td>
      </tr>
      <th colspan="4" align="left" class="titleText001"><br /><br />Pickup Details </th>
      </tr>
      <tr>
        <th align="left"> Pickup Time</th>
        <td><textarea name=ss_PickupTime readonly>@apppictime@</textarea></td>
        <th align="left"> Pickup Address</th>
        <td><textarea name=ss_PickupAddress readonly>@picaddress@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Pickup City</th>
        <td><textarea name=ss_PickupCity readonly>@piccity@</textarea></td>
        <th align="left"> Pickup Postal Code</th>
        <td><textarea name=ss_PickupPostalCode readonly>@piczip@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Pickup Province/State</th>
        <td><textarea name=ss_PickupProvince readonly>@picprovince@</textarea></td>
        <th align="left"> Pickup Phone</th>
        <td><textarea name=ss_PickupPhone readonly>@Pickup-Phone@</textarea></td>
      </tr>
      <th colspan="4" align="left" class="titleText001"><br /><br />Claimant Information </th>
      </tr>
      <tr>
        <th align="left"> Claimant First Name </th>
        <td><textarea name=ss_ClaimantFirstName readonly>@parent.Claimant First Name@</textarea></td>
        <th align="left"> Claimant Last Name </th>
        <td><textarea name=ss_ClaimantLastName readonly>@parent.Claimant Last Name@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Address </th>
        <td><textarea name=ss_ClaimantAddress readonly>@parent.Claimant Address@</textarea></td>
        <th align="left"> City </th>
        <td><textarea name=ss_ClaimantCity readonly>@parent.Claimant City@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Province </th>
        <td><textarea name=ss_ClaimantProvince readonly>@parent.Claimant Province@</textarea></td>
        <th align="left"> Postal Code </th>
        <td><textarea name=ss_ClaimantPostalCode readonly>@parent.Claimant Postal Code@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Country </th>
        <td><textarea name=ss_ClaimantCountry readonly>Canada</textarea></td>
            <th align="left">Phone </th>
        <td><textarea name=ss_ClaimantPhone readonly>@parent.Claimant Phone #@</textarea></td>
      <tr>
        <th align="left">Policy #</th>
        <td><textarea name=ss_ClaimantPolicyNumber readonly>@parent.Policy #@</textarea></td>
        <th align="left"> Claim #</th>
        <td><textarea name=ss_ClaimFile readonly>@parent.Claim #@</textarea></td>
      </tr>
      <tr>
        <th align="left"> Date of Loss </th>
        <td><textarea name=ss_DateofLoss readonly>@parent.Date of Loss@</textarea></td>
      </tr>
    </table>
  </div>
</form>
</body>
</html>

Sample POST to SmartSimple

The following code is a sample html post page that Service Providers can use to POST data back to SmartSimple’s Integration Server.

Each form element will need to be populated with information related to the performed service from the Service Provider’s data source.

<HTML>
<HEAD>
<TITLE>Integration Provider Sample Submission</TITLE>
</HEAD>
<BODY>
<form action="http://hcai.smartsimple.biz/ex/provider/billing.jsp" method="POST" target="_blank">
  <table border=1 cellspaing=0 cellpadding=1>
    <tr>
      <td width=400px>Provider Key</td>
      <td><textarea rows=1 cols=25 name=providerkey>xxx key goes here xxx</textarea></td>
    </tr>
    <tr>
      <td width=400px>Test Submission Flag</td>
      <td><textarea rows=1 cols=25 name=isprod>0</textarea></td>
    </tr>
    <tr>
      <td width=400px>Case ID</td>
      <td><textarea rows=1 cols=25 name=caseid>123456</textarea></td>
    </tr>
    <tr>
      <td width=400px>Service ID</td>
      <td><textarea rows=1 cols=25 name=serviceid>88888</textarea></td>
    </tr>
    <tr>
      <td width=400px>Type of Service </td>
      <td><textarea rows=1 cols=25 name=typeofservice>typeofservice</textarea></td>
    </tr>
    <tr>
      <td width=400px>Client Alias </td>
      <td><textarea rows=1 cols=25 name=client>client</textarea></td>
    </tr>
    <tr>
      <td width=400px>Client Type</td>
      <td><textarea rows=1 cols=25 name=source>10</textarea></td>
    </tr>
    <tr>
      <td width=400px>GAP Code </td>
      <td><textarea rows=1 cols=25 name=gapcode>gapcode</textarea></td>
    </tr>
    <tr>
      <td width=400px>Rate for service</td>
      <td><textarea rows=1 cols=25 name=rate>10.00</textarea></td>
    </tr>
    <tr>
      <td width=400px>Unit Measure </td>
      <td><textarea rows=1 cols=25 name=measure>measure</textarea></td>
    </tr>
    <tr>
      <td width=400px>Quantity</td>
      <td><textarea rows=1 cols=25 name=quantity>quantity</textarea></td>
    </tr>
    <tr>
      <td width=400px>Tax</td>
      <td><textarea rows=1 cols=25 name=tax>tax</textarea></td>
    </tr>
    <tr>
      <td width=400px>Tax Type</td>
      <td><textarea rows=1 cols=25 name=taxtype>taxtype</textarea></td>
    </tr>
    <tr>
      <td width=400px>Total</td>
      <td><textarea rows=1 cols=25 name=total>total</textarea></td>
    </tr>
    <tr>
      <td width=400px>Tax Amount</td>
      <td><textarea rows=1 cols=25 name=taxamt>taxamt</textarea></td>
    </tr>
    <tr>
      <td width=400px>Gross Total</td>
      <td><textarea rows=1 cols=25 name=grossamt>grossamt</textarea></td>
    </tr>
    <tr>
      <td width=400px>Reference #</td>
      <td><textarea rows=1 cols=25 name=reference>reference</textarea></td>
    </tr>
    <tr>
      <td width=400px>Confirmation #</td>
      <td><textarea rows=1 cols=25 name=confirmationnum>#12345-eee</textarea></td>
    </tr>
    <tr>
      <td width=400px>Provider Name</td>
      <td><textarea rows=1 cols=25 name=provider>provider</textarea></td>
    </tr>
    <tr>
      <td width=400px>Provider Emailr</td>
      <td><textarea rows=1 cols=25 name=provideremail>provideremail</textarea></td>
    </tr>
    <tr>
      <td width=400px>Notes</td>
      <td><textarea rows=1 cols=25 name=notes>notes</textarea></td>
    </tr>
    <tr>
      <td width=400px><Input type="submit" value="Submit to SmartSimple"></td>
    </tr>
  </table>
</form>
</BODY>
</HTML>

See Also