Creating a Project Based on a Filtered Network

Network data files can be hundreds of thousands or even millions of lines long. When your business logic dictates that you analyze or process a smaller group of providers, the best practice is to create a filtered network and then create a project based on that network. For example, you might want to create a network that consists only of your HMO product, and then analyze that network using a project you create.

  1. Before creating new filtered networks, the best practice is to check all the existing filtered network versions associated with your network to make sure there is no duplication. To get provider network versions, submit a GET request to the following endpoint:

    enterprise/data-mgmt/v3/ProviderNetworks/{{providerNetworkId}}/versions

    The response contains a JSON structure that includes basic information about the network, followed by one record for each filtered network associated with the network. For example:

    {
        "providerNetwork": {
            "providerNetworkId": 30453,
            "name": "Primary Network",
            "description": " Primary Network",
            "dateCreated": "2020-11-30T17:06:09.33",
            "dateLastUpdated": "2022-09-29T16:09:40.337",
            "dateArchived": "0001-01-01T00:00:00",
            "isFilteredProviderNetwork": false,
            "sourceProviderNetworkId": 0,
            "providerNetworkType": "Standard",
            "status": "Active",
            "versions": [
                {
                    "providerNetworkVersionId": 246912,
                    "status": "Created",
                    "dateCreated": "2020-11-30T17:06:09.377Z",
                    "dateLastUpdated": "2020-11-30T17:06:09.377",
                    "dateActivated": null,
                    "dateArchived": "2021-04-20T15:55:34.12Z"
                },

                {
                    "providerNetworkVersionId": 321929,
                    "status": "Activated",
                    "dateCreated": "2023-04-04T05:02:39.49Z",
                    "dateLastUpdated": "2023-04-04T05:02:46.813",
                    "dateActivated": "2023-04-04T05:02:46.813Z",
                    "dateArchived": null
                }
            ]
        }
    }
  2. To create a filtered provider network, submit a POST request to the following endpoint:

    POST /enterprise/data-mgmt/v3/providernetworks/filtered HTTP/1.1
    Host: https://uat-api.questanalytics.com
    Authorization: Bearer {{accessToken}}
    Content-Type: application/json
    Content-Length: 268
    {
      "name": "HMO",
      "description": "HMO",
      "sourceProviderNetworkId": 12345,
      "criteria":[{
               "field":"NetworkIdentifier",
         "value":"HMO",
           "operator":"="
          }],
        "sharedUsers": []
    }

    The body of the POST takes the following parameters:

    • The name and description should be pneumonic and indicate the purpose of the filtered network.

    • The sourceProviderNetworkId is the id of the full network from which to extract the filtered network.

    • The criteria JSON object specifies how the full network should be filtered. In this example, the network will be filtered to include only those providers where the value of NetworkIdentifier is equal to HMO. NetworkIdentifier can be any column name in your data.

  3. To create a project, submit a POST request to the following endpoint:

    POST /enterprise/proj-mgmt/v3/Projects HTTP/1.1
    Host: https://uat-api.questanalytics.com
    Authorization: Bearer {{accessToken}}
    Content-Type: application/json
    Content-Length: 533
    {
      "name": "HMO",
      "description": "HMO",
      "providerNetworkId": 12345,
      "adequacyTemplateId": "585af255-21a4-4402-895b-81f50d4e1af5",
      "countyStatuses":[
        {
                "state":"TN",
        "countySSA":"44000",
                "countyZips": [37716,37717],
        "status":"approved",
         },
        {
                "state":"TN",
        "countySSA":"44010",
                "countyZips": [37718,37719],
        "status":"active",
         }
        {
                "state":"TN",
        "countySSA":"44020",
                           "countyZips": [],
        "status":"opportunity",
         }
      ]
    }

    The POST request takes the following parameters:
    • The name and description should be pneumonic and indicate the purpose of the filtered network.

    • The ProviderNetworkId is the identifier for the filtered network created in the previous step.

    • The adequacyTemplateId is used by the project to determine the time and/or distance standards that will be used.  These are pre-defined templates licensed by your company (time/distance standards cannot be edited). The AdequacyTemplateID can be obtained by calling the Get Templates API.

    • excludeSpecialtyGroupCodes is a list of comma-separated specialties to be excluded from the project.

    • countyStatuses contains one object for each county which specifies the following information.

      • state: The two-digit post office code for the state in which the county is located.

      • countySSA: The Social Security Administration code for the county.

      • countyZips: A comma-separated list of the post office zip codes in the county if you need a partial county analyzed. Otherwise, leave this empty, and the full county will be analyzed.

      • status: The status of the plan sales in the county. There are four statuses:

        • Pending: The regulator has not yet approved the application to sell your product in the county.

        • Approved: The regulator has approved the application to sell your product in the county for the next calendar year.

        • Active: Your product is currently being sold in the county.

        • Opportunity: Evaluate this county for market potential to determine if an application to sell should be submitted to the regulator.