0

API から見つからない NPI 値のキャッチ エラーを追加するガイダンスが必要です。このテーブルには 2000 の NPI 番号があり、そのうちのいくつかは API 呼び出しでは見つかりません。この関数を実行すると、一致が見つからないと停止し、エラーが発生します。関数を続行して、エラーを適切な行に配置したい。

let
Source = (NPPES_API as any) => let
    Source = Json.Document(Web.Contents("https://npiregistry.cms.hhs.gov/api/?version=2.1&number=" & NPPES_API)),
    results = Source[results],
    results1 = results{0},
    addresses = results1[addresses],
    addresses1 = addresses{0},
    #"Converted to Table" = Record.ToTable(addresses1),
    #"Removed Columns" = Table.RemoveColumns(#"Converted to Table",{"Name"}),
    #"Removed Top Rows" = Table.Skip(#"Removed Columns",4),
    #"Removed Blank Rows" = Table.SelectRows(#"Removed Top Rows", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null})))
in
    #"Removed Blank Rows"
in
Source
4

1 に答える 1

1

Errors存在しないか無効な NPI 番号を検索すると、サーバーの応答にフィールドが含まれているようです。したがって、この条件を確認してから、それに応じて応答を展開してください。

NPI番号のリストの実装例を以下に示します(そのうちの1つは、サーバーからのエラー応答を引き出して処理する目的で意図的に無効になっています)。

let
    npiNumbers = {"1245319599", "abc"},
    getDataForNpiNumber = (someNpiNumber as text) as record =>
        let
            json = Web.Contents("https://npiregistry.cms.hhs.gov/api/", [
                Query = [version = "2.1", number = someNpiNumber]
            ]),
            parsed = Json.Document(json),
            row = [
                npiNumber = someNpiNumber,
                data = Table.FromRecords(Record.FieldOrDefault(parsed, "results", {})),
                errors = Table.FromRecords(Record.FieldOrDefault(parsed, "Errors", {}))
            ]
        in row,
    rows = List.Transform(npiNumbers, getDataForNpiNumber),
    data = Table.FromRecords(rows)
in
    data

要求された各 NPI 番号の行を含むテーブルが表示されます。各行自体には 3 つのフィールドが含まれている必要があります。

  • npiNumber(要求された NPI 番号)
  • data(この NPI 番号のサーバーから受信したデータ、またはエラーが発生した場合は空のテーブル)
  • errors(この NPI 番号についてサーバーから受信したエラー、またはサーバーによって要求が正常に実行された場合は空のテーブル)

次に、テーブルの行を展開し、必要に応じてドリルダウンできます (データをどうしたいか、またはデータをどのように構造化する必要があるかを説明していないため)。

于 2021-03-05T17:32:27.907 に答える