CAQH Connector - Mule 4

CAQH Connector v1.0

Council for Affordable Quality Healthcare 用 Anypoint Connector (CAQH Connector) は、ヘルスケア提供者の情報を収集、保存、監視、検証する非営利団体にアクセス権を提供します。

CAQH ProView® は、広範な人口統計情報や専門的な情報を自己報告したり、ヘルスケア組織と共有したりするために多くの提供者が使用する Web ベースのソリューションです。提供者のディレクトリの精度を確保する CAQH DirectAssure® は、CAQH ProView と連携して機能するため、提供者は 1 か所でディレクトリ情報を更新し、参加組織と共有できます。

CAQH ProView および DirectAssure API により、ユーザーは信任や他の目的で提供者に関する情報をリアルタイムに取得できます。参加組織 (PO) は、API を使用して CAQH ProView の名簿に提供者を追加できます。CAQH Connector は、CAQH ProView および DirectAssure API へのアクセスを簡素化し、複雑なインテグレーションを視覚的に定義して、高度な提供者管理と信任を行います。

リリースノート: CAQH Connector リリースノート
Exchange: CAQH Connector

始める前に

この情報を使用するには、CAQH ProView、DirectAssure、Mule の概念、Anypoint Connector、Anypoint Studio、Mule フローの要素、グローバル要素に精通している必要があります。 API は、ユーザー名とパスワードに基づく基本認証を使用します。 このコネクタを使用するには、CAQH アカウントとログイン情報が必要になります。

Maven で CAQH Connector を使用する方法については、Anypoint Exchange の CAQH Connector のページの [Dependency Snippets (連動関係スニペット)] タブで連動関係情報を参照してください。

POM ファイル情報

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-caqh-connector</artifactId>
  <version>x.x.x</version>
  <classifier>mule-plugin</classifier>
</dependency>

x.x.x​ を使用しているコネクタに対応するバージョンに置き換えます。

最新の ​pom.xml​ ファイル情報を取得するには、​ Anypoint Exchange​ でコネクタにアクセスし、​[Dependency Snippets (連動関係スニペット)]​ をクリックします。

Studio プロジェクトへのコネクタの追加

Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。

Exchange を使用してコネクタを追加する

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの左上にある Exchange アイコン ​(X)​ をクリックします。

  3. Exchange で、​[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。

  4. Exchange で、「CAQH」を検索します。

  5. コネクタを選択して ​[Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「CAQH」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

コネクタの名前空間とスキーマ

Anypoint Studio の [Mule Palette (Mule パレット)] ビューからキャンバスにコネクタをドラッグすると、自動的にコネクタの名前空間、スキーマの場所、および POM ファイルの XML コードが入力されます。Studio 外でアプリケーションを作成する場合は、XML で次の情報を使用します。

名前空間: http://www.mulesoft.org/schema/mule/caqh
スキーマの場所: http://www.mulesoft.org/schema/mule/caqh/current/mule-caqh.xsd

Anypoint Studio で CAQH Connector を設定する

  1. Anypoint Studio で、新しい Mule プロジェクトを作成します。​HTTP リスナー​が設定されていることを確認します。

  2. コネクタを Studio キャンバスにドラッグします。

  3. コネクタのグローバル要素を設定します。ログイン情報をグローバル設定プロパティとして入力するか、それらの値を含む設定ファイルを参照することができます。 メンテナンスをシンプルにして、プロジェクトを再利用できるようにするために、設定ファイルを使用することをお勧めします。

    • Address (アドレス)​: CAQH API にアクセスするための URL

    • Username (ユーザー名)​: CAQH API にアクセスするためのユーザー名

    • Password (パスワード)​: CAQH API にアクセスするためのパスワード

      CAQH のサンプル設定ファイルは ​src/main/resources/configuration.yml​ から入手できます。このファイルは、[Global Configuration Elements (グローバル設定要素)] の [Configuration Properties (設定プロパティ)] に追加できます。
  4. 接続が成功することを確認するには、​[Test Connection (接続をテスト)]​ をクリックします。

  5. コネクタ操作を選択します。

ユースケース

次のユースケースは、このコネクタを使用して以下の操作を行う方法を示しています。

  • ProView を使用して Salesforce から CAQH に提供者を更新する

  • ProView を使用して名簿から提供者を削除する

これらのユースケース例をテストする手順は、次のとおりです。

  1. Mule アプリケーションを作成し、​src/main/resources​ の設定ファイルでコネクタ設定プロパティを設定します。たとえば、次のようにします。

    caqh:
      address: "<url-to-access-caqh-api>"
      user: "<username-to-access-caqh-api>"
      password: "<password-to-access-caqh-api>"
  2. CAQH Connector の設定ファイルを ​[Global Configuration Elements (グローバル設定要素)]​ の [Configuration Properties (設定プロパティ)] に追加します。

ProView を使用して Salesforce から CAQH に提供者を更新する

この例では、Mule アプリケーションが Salesforce 取引先責任者を照会して提供者を見つけます。次に、CAQH の提供者の状況を更新し、更新要求の状況を取得します。

提供者の更新フロー

Mule アプリケーションで、次の操作を行います。

  1. HTTP リスナーをキャンバスにドラッグして設定します。

  2. [Palette (パレット)]​ から Salesforce Connector を検索して ​[Query]​ 操作をドラッグします。

  3. このデモの目的を達成するために、次のクエリを使用して、Salesforce から取引先責任者を取得します。

    SELECT firstName, LastName, Id,
    	CAQH_Provider_ID__c,
    	SF_Provider_ID__c,
    	CAQH_organization_id__c,
    	Provider_name__c,
    	caqh_batch_id__c
    from CONTACT
    where name = ':name'
  4. [Transform Message] を選択してキャンバスのフローにドラッグし、CAQH Connector 用の入力を準備します。

    output application/java
    ---
     [{
      "caqh_provider_id": payload[0].CAQH_Provider_ID__c,
      "organization_id": payload[0].CAQH_organization_id__c,
      "po_provider_id": payload[0].Id,
      "last_recredential_date": "",
      "next_recredential_date": "05/05/2019",
      "delegation_flag": "Y",
      "application_type": "A",
      "affiliation_flag": ""
    }]
  5. リスナーの後に ​Update Providers - ProView (PUT)​ コネクタ操作を使用し、作成したコネクタ設定を選択します。

  6. コネクタ設定の ​[General (一般)]​ セクションを ​payload​ に設定します。

  7. [Advanced (詳細)] セクションの ​[Target Value (対象値)]​ を ​#[payload]​ に設定します。

  8. CAQH の提供者を更新するのに数分かかるため、別の Transform Message コンポーネントを使用して 1 分以上の待機時間を追加します。

    %dw 2.0
    import * from dw::Runtime
    output application/json
    ---
     payload
    wait 60000
  9. 更新要求が成功したかどうかをチェックするには、[​Get Status - Update to Roster​] 操作を ​[Transform Message]​ の後にドラッグします。

  10. 操作設定の ​[General (一般)]​ セクションで、次の操作を行います。

    1. [Batch_id]​ を ​#[payload.batch_Id]​ に設定します。

    2. [Advanced (詳細)] セクションの ​[Target Value (対象値)]​ を ​#[payload]​ に設定します。

  11. フローの最後に [Transform Message] コンポーネントを追加して、出力メッセージを JSON 形式に変換します。Transform Message の出力を次のように設定します。

    %dw 2.0
    output application/json
    ---
    payload
  12. アプリケーションを実行し、ブラウザーで ​http://localhost:8081/update-provider​ を参照します。

ProView を使用した名簿からの提供者の削除

この例では、Mule アプリケーションが Salesforce 取引先責任者を照会して提供者を見つけます。次に、ProView API を使用して CAQH の提供者を削除し、削除要求の状況を取得します。

削除要求により、CAQH の提供者の状況が ​Inactive​ に設定されます。
提供者の削除フロー

このフローの実装プロセスは提供者を更新する場合と似ていますが、Roster 操作の ​Delete Providers - ProView (PUT)​ と ​Get Status - Delete​ を使用する点が異なります。

ユースケース: XML

ProView を使用して Salesforce から CAQH に提供者を更新する

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:caqh="http://www.mulesoft.org/schema/mule/caqh"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/caqh
	http://www.mulesoft.org/schema/mule/caqh/current/mule-caqh.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
    <flow name="UPDATE_PROVIDER_SALESFORCE_TO_CAQH">
        <http:listener
		doc:name="update-provider"
		config-ref="HTTP_Listener_config1"
		path="/UpdateProviderFlow"/>
        <salesforce:query doc:name="Query Salesforce Contact" config-ref="Salesforce_Config">
            <salesforce:salesforce-query >SELECT firstName, LastName, Id,CAQH_Provider_ID__c,SF_Provider_ID__c,CAQH_organization_id__c,Provider_name__c,caqh_batch_id__c from CONTACT where name = ':name'
            </salesforce:salesforce-query>
            <salesforce:parameters ><![CDATA[#[output application/java
---
{
	name : "kiuwxinj xwehonru"
}]]]></salesforce:parameters>
        </salesforce:query>
        <ee:transform doc:name="">
            <ee:message >
                <ee:set-payload ><![CDATA[output application/java
---
 [{
  "caqh_provider_id": payload[0].CAQH_Provider_ID__c,
  "organization_id": payload[0].CAQH_organization_id__c,
  "po_provider_id": payload[0].Id,
  "last_recredential_date": "",
  "next_recredential_date": "05/05/2019",
  "delegation_flag": "Y",
  "application_type": "A",
  "affiliation_flag": ""
}]
  ]]>                </ee:set-payload>
            </ee:message>
        </ee:transform>
        <caqh:update-to-roster-request-pv-by-put-request
	doc:name="Update Providers to Roster - Proview"
	config-ref="CAQH_Config1">
        </caqh:update-to-roster-request-pv-by-put-request>
        <ee:transform doc:name="Wait for 1 Minute">
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
import * from dw::Runtime
output application/json
---
 payload
wait 60000]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <caqh:get-result-of-update-request
		doc:name="Get status of update to roster request"
		config-ref="CAQH_Config1"
		batch_id="#[payload.batch_Id]" />
        <ee:transform doc:name="Transform CAQH response to JSON">
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
    </flow>
</mule>

ProView を使用した名簿からの提供者の削除

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:caqh="http://www.mulesoft.org/schema/mule/caqh"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/caqh
	http://www.mulesoft.org/schema/mule/caqh/current/mule-caqh.xsd
	http://www.mulesoft.org/schema/mule/ee/core
	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
    <flow name="DELETE_SALESFORCE_PROVIDER_FROM_ROSTER">
        <http:listener
		doc:name="Listener"
		config-ref="HTTP_Listener_config1"
		path="/deleteProviderFlow"/>
        <salesforce:query
		doc:name="Query Salesforce Contacts"
		config-ref="Salesforce_Config">
            <salesforce:salesforce-query >SELECT firstName, LastName, Id,CAQH_Provider_ID__c,SF_Provider_ID__c,CAQH_organization_id__c,Provider_name__c,caqh_batch_id__c from CONTACT where name = ':name'</salesforce:salesforce-query>
            <salesforce:parameters ><![CDATA[#[output application/java
---
{
	name : "kiuwxinj xwehonru"
}]]]></salesforce:parameters>
        </salesforce:query>
        <ee:transform doc:name="Mapping from Salesforce to CAQH">
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
 [{
	"caqh_provider_id": payload[0].CAQH_Provider_ID__c,
	"organization_id": payload[0].CAQH_organization_id__c
}]]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <caqh:delete-from-roster-request-pv
		doc:name="Delete provider from roster using ProView"
		config-ref="CAQH_Config1">
        </caqh:delete-from-roster-request-pv>
        <ee:transform doc:name="Wait for 1 Minute">
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
import * from dw::Runtime
output application/json
---
 payload
wait 60000]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <caqh:get-result-of-delete-request
		doc:name="Get status of delete from roster request"
		config-ref="CAQH_Config1"
		batch_id="#[payload.batch_Id]" />
        <ee:transform doc:name="Transform CAQH response to JSON">
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
    </flow>
</mule>