> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FHIR 端口配置

> 將知行之橋連線到 FHIR 以進行資料集成與同步。

FHIR 端口允許你透過推送或拉取 FHIR 中的資料，將 FHIR 整合到工作流程中。

## 核心功能

* 支援快速醫療保健互操作性資源（FHIR）標準，用於合規的醫療資料交換
* 整合 RESTful API 與醫療特定的資料格式，處理患者記錄、觀察結果和臨床資料
* 支援標準資料庫操作（Select、Lookup、Upsert 和預存程序）以進行資料操作

按照以下步驟將 知行之橋 連線到 FHIR。

## 建立連線

允許 知行之橋 端口從 FHIR 資料庫中使用資料，首先需要建立一個到 FHIR 的連線。有以下兩種方式：

* 新增一個 FHIR 端口到工作流程中，然後點選連線下拉框旁邊的**建立**按鈕。
* 開啟 知行之橋 **系統設定**頁面，然後開啟**連線**索引標籤。點選**建立**，選擇 **FHIR** 並**下一步**建立。

> [!NOTE]
>
> * 這僅僅是第一次建立的時候需要。
> * 到 FHIR 的連線可以被多個端口重複利用。

### 輸入連線配置

在開啟的連線配置對話方塊，進行如下步驟：

1. 提供需要的資訊：

   * **名稱** — 連線的名稱。填一個期望的值。
   * **型別** — 預設設定為 FHIR。
   * **Connection Type** — 你要使用的 FHIR API 實現。選項有 **Generic**（用於 FHIR API 的任何自定義實現）、**Azure**、**AWS** 和 **Google**。
   * **Auth Scheme** — 用於連線的身分驗證方案。選項有 **None**（預設選項）、**OAUTH**、**Azure AD** 和 **AwsRootKeys**。
   * **URL** — 要使用的 FHIR 伺服器的 URL。

2. 根據你選擇的身分驗證方案建立連線：

   * **None** — 不使用任何身分驗證。
   * **OAUTH** — 輸入你的 OAuth 用戶端 ID 和 OAuth 用戶端密碼。
   * **AzureAD** — 輸入你的 OAuth 用戶端 ID 和 OAuth 用戶端密碼。
   * **AwsRootKeys** — 輸入你的 AWS 存取金鑰和 AWS 金鑰。

3. 如果需要，點選**高階**來開啟高階配置。這在大多數情況下不需要。

4. 點選**連線**來確保這個連線可以正常連線到 FHIR 伺服器。如果發生錯誤，請再次排查。

5. 點選**建立連線**來儲存連線。

6. 在**連線**下拉選單中選擇剛剛建立的連線。

7. 點選**儲存變更**。

## 選擇一個操作

與 FHIR 建立連線後，你必須選擇 FHIR 端口將執行的操作。下表概觀了每個操作及其在 知行之橋 工作流程中的所屬位置。

| 操作 | 描述 | 工作流程中的位置 |
| - | - | - |
| [Lookup](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/fhir/fhir-lookup.md) | 從 FHIR 中檢索一個值並將該值插入到工作流程中已存在的訊息中。 **Lookup Query** 確定端口將從 FHIR 檢索的值，應格式化為針對 FHIR 表的 SQL 查詢。 | 中間 |
| [預存程序 Lookup](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/fhir/fhir-lsp.md) | 將進入端口的資料視為預存程序的輸入，然後將結果插入到工作流程中的現有訊息中。 可以單擊**測試查詢**模式中的**顯示範例資料**按鈕，為所選預存程序提供範例輸入並預覽結果。 | 中間 |
| [Select](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/fhir/fhir-select.md) | 從 FHIR 檢索資料並將其帶入 知行之橋。 你可以使用**過濾器**面板將過濾器新增到選擇中。這些過濾器的功能類似於 SQL 中的 *WHERE* 子句。 | 開始 |
| [執行預存程序](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/fhir/fhir-esp.md) | 將進入端口的資料視為預存程序的輸入，然後將結果傳遞到工作流程中。 你可以單擊**顯示範例資料**按鈕為選定的預存程序提供範例輸入並預覽結果。 | 中間 |

## 進階選項卡

**高階**索引標籤上的許多設定是從你正在使用的資料來源動態載入的，因此本文件不對其進行說明。你可以在我們網站的[線上幫助檔案](https://www.kasoftware.com/articles.html)頁面上找到適用於你的資料來源的詳細資訊。

以下描述的選項適用於所有資料來源。

### 訊息

> [!NOTE]
>
> **儲存至 Sent 資料夾**和**Sent 資料夾方案**設定已棄用，預設處於隱藏狀態。只有先前已啟用這些設定或將其配置為非預設值的端口才會顯示它們。若要保留成功處理的檔案副本，請在工作流程中右鍵單擊該端口，選擇**顯示成功路徑**，然後將成功路徑連線到[File 端口](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/file.md)。

| 設定 | 描述 |
| - | - |
| **儲存至 Sent 資料夾**（已棄用） | 將端口處理的檔案複製到 Sent 資料夾。預設停用。儲存到 Sent 資料夾中的檔案不受靜態加密保護。 |
| **Sent 資料夾方案**（已棄用） | 按所選時間間隔對 Sent 資料夾中的檔案進行分組。僅在啟用**儲存至 Sent 資料夾**時適用。 |

### 進階設定

*進階設定* 是依賴任意資料庫驅動（例如 Database、CData 和 API 端口）連線到各種資料來源的端口的通用設定。

| 設定 | 描述 |
| - | - |
| **自動截斷** | 啟用後，端口自動截斷超過允許限制的字串或二進位列值。 |
| **命令逾時** | 命令執行逾時持續時間（秒）。 |
| **最後插入 ID 查詢** | 提供一個查詢，用於檢索最後插入記錄的自增 ID。 |
| **日誌級別** | 端口生成的日誌詳細程度。當請求支援時，請將其設定為**偵錯**。 |
| **本地檔案命名規則** | 用於為端口輸出訊息分配檔名的規則。可以在檔名中使用宏動態包含識別碼和時間戳等資訊。更多資訊，請參見[宏](#宏)。 |
| **日誌訊息** | 選中後，端口將訊息的副本儲存在日誌目錄中訊息的日誌旁邊。如果停用此項，可能無法從**輸入**或**輸出**索引標籤下載檔案副本。 |
| **最大失敗記錄數** | 允許在插入期間失敗的最大記錄數，以使處理繼續進行。預設值 0 表示任何錯誤都會導致輸入訊息被標記為錯誤，並且任何未提交的交易都會被復原。值 -1 表示忽略所有錯誤，端口繼續嘗試插入後續記錄。正值表示端口繼續嘗試插入記錄，直到達到閾值。 |
| **輸出檔案格式** | 表示輸出資料的格式。預設值（XML）使端口為每條處理的記錄輸出一個 XML 檔案，同時可選地將多條記錄合併為單一資料結構（取決於**最大記錄數**的值）。CSV 和 TSV 選項以各自的檔案格式輸出資料。此選項不適用於包含子表的複雜表結構。 |
| **處理變更間隔單位** | 僅適用於 Select 操作。當**設定**索引標籤**選擇配置**部分的**高階**區域中選中了**使用列 *列名* 處理新記錄或變更記錄**時，此項控制如何解釋**處理變更間隔**設定（例如小時、天或周）。有關此設定及以下兩個設定的詳細資訊，請參見[僅處理新記錄或變更記錄](https://docs.kasoftware.com/26.3/self-hosted/zh-Hant/connectors/fhir/fhir-ac.md#only-process-new-or-changed-records)。 |
| **處理變更間隔** | 當**設定**索引標籤**選擇配置**部分中選中了**使用列 *列名* 處理新記錄或變更記錄**時，此項控制 知行之橋 在第一次嘗試時處理多少歷史資料。例如，保留預設值 180（天）表示 知行之橋 僅嘗試處理過去 180 天內建立或修改的資料。 |
| **處理變更開始日期** | 當**設定**索引標籤**選擇配置**部分中選中了**使用列 *列名* 處理新記錄或變更記錄**時，此項控制要檢索資料的開始日期。 |
| **重置歷史記錄** | 重置選中**使用列 *列名* 處理新記錄或變更記錄**時儲存的快取。 |
| **批次輸入大小** | 如果資料來源支援批次處理，則批次中的最大查詢數。 |
| **批次大小** | 批次處理組中最大的批次訊息數。 |
| **最大記錄數** | 單個輸出訊息中包含的最大記錄數。使用 -1 表示所有輸出記錄應放在單個檔案中，使用 0 表示端口可根據配置的**輸出檔案格式**自行決定。預設情況下，XML 每個檔案輸出一條記錄，平面檔案格式將所有記錄包含在一個檔案中。 |
| **交易大小** | 交易中的最大查詢數。 |
| **處理延遲** | 輸入資料夾中檔案處理延遲的時間（秒）。這是一箇舊版設定。最佳做法是[使用 File 端口](https://docs.kasoftware.com/26.3/self-hosted/zh/flows/designing-a-flow.md#interacting-with-the-local-file-system)來管理本地檔案系統，而不是使用此設定。 |
| **插入空值** | 未選中（預設）時，端口在構建 INSERT 和 UPDATE 語句時跳過空 XML 元素，導致資料庫對 INSERT 語句使用預設列值，對 UPDATE 語句列值保持不變。選中時，端口在 INSERT 和 UPDATE 語句中包含空 XML 元素，使用空字串作為列的值。 |
| **插入 Null** | 未選中（預設）時，端口在構建 INSERT 和 UPDATE 語句時跳過 null XML 元素（由 `xsi:nil="true"` 屬性標識），導致資料庫對 INSERT 語句使用預設列值，對 UPDATE 語句列值保持不變。選中時，端口在 INSERT 和 UPDATE 語句中包含 null XML 元素，使用 null 作為列的值。被視為 null 的情況有：`Not exist`、`<element/>`、`<element xsi:nil="true"/>`、`<element xsi:nil="true"></element>`、`<element null="true"/>`、`<element null="true"></element>`。 |
| **Lookup 快取** | 勾選**啟用 Lookup 快取**以在直接對資料來源執行查詢之前先對本地快取執行查詢（當快取未傳回記錄時）。未選中（預設）時，查詢直接對資料來源執行。以下 Lookup 快取選項僅在勾選**啟用 Lookup 快取**時可用。 |
| **Lookup 快取提供程式** | 指定用於連線快取資料庫的驅動程式。 |
| **Lookup 快取連接字串** | 設定後，端口使用此處指定的資料庫進行快取。 |
| **Lookup 快取容差** | 指定端口查詢資料來源以重新整理快取的頻率。與**容差單位**選項結合使用。 |
| **Lookup 快取容差單位** | 選擇**分鐘**、**小時**或**天**。 |
| **日誌子資料夾方案** | 指示端口按選定的時間間隔將檔案分組到 `Logs` 資料夾中。例如，**每週**選項指示端口每週建立一個新子資料夾，並將該周的所有日誌儲存在該資料夾中。空白設定表示直接將所有日誌儲存到 `Logs` 資料夾中。對於處理大量交易的端口，使用子資料夾有助於保持日誌有序並提升效能。 |

### 其他設定

*其他設定* 適用於特定使用場景。

| 設定 | 描述 |
| - | - |
| **其他設定** | 允許以分號分隔的清單形式配置隱藏的端口設定（例如，`setting1=value1;setting2=value2`）。正常的端口使用場景和功能不需要使用這些設定。 |

### 代理設定

這是一組用於識別連線所經代理並對其進行身分驗證的設定。預設情況下，本節使用 [安全設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/security.md) 頁面的 [代理設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/proxy-settings.md) 部分中的全域設定。清除此核取方塊可為您的端口提供特定的設定。

<table><thead><tr><th>設定</th><th>描述</th></tr></thead>
<tbody><tr><td>**代理型別**</td>
<td>基於代理的防火牆使用的協議。</td></tr>
<tr><td>**代理主機**</td>
<td>基於代理的防火牆的名稱或 IP 地址。</td></tr>
<tr><td>**代理端口**</td>
<td>基於代理的防火牆的 TCP 端口。</td></tr>
<tr><td>**代理使用者**</td>
<td>用於透過基於代理的防火牆進行身分驗證的使用者名稱。</td></tr>
<tr><td>**代理密碼**</td>
<td>用於對基於代理的防火牆進行身分驗證的密碼。</td></tr>
<tr><td>**身分驗證方案**</td>
<td>保留預設值 **None** 或選擇以下身分驗證方案之一：**Basic**、**Digest**、**Proprietary** 或 **NTLM**。</td></tr></tbody></table>

## 自動化索引標籤

### 自動化設定

*與端口自動處理檔案相關的設定。*

| 設定 | 描述 |
| - | - |
| **傳送** | 到達端口的檔案是否自動傳送。 |
| **重試間隔** | 再次傳送失敗的檔案之前等待的分鐘數。 |
| **最大重試次數** | 端口處理檔案的最大次數。是否成功基於伺服器的成功確認。如果設定為 0，端口將無限次重試檔案。 |
| **接收** | 端口是否應自動查詢資料來源。 |
| **間隔** | 自動查詢嘗試之間的間隔時間。 |
| **整點後分鍾數** | 每小時計劃的分鐘偏移量。僅當上面的間隔設定為 *每小時* 時適用。例如，如果此值設定為 5，則自動化服務在 1:05、2:05、3:05 等時間下載。 |
| **時間** | 嘗試應發生的時間。僅當上面的間隔設定為 *每天*、*每週* 或 *每月* 時適用。 |
| **日期** | 嘗試應發生的日期。僅當上面的間隔設定為 *每週* 或 *每月* 時適用。 |
| **分鐘數** | 嘗試下載之前等待的分鐘數。僅當上面的間隔設定為 *分鐘* 時適用。 |
| **Cron 運算式** | 一個五位字串，表示確定嘗試發生時間的 Cron 運算式。僅當上面的間隔設定為 *高階* 時適用。 |

### 效能

*與端口資源分配相關的設定。*

| 設定 | 描述 |
| - | - |
| **最大工作執行緒數** | 從執行緒池分配給該端口處理檔案的最大工作執行緒數。如果設定，將覆蓋[進階設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings.md)頁面[效能設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings.md)部分的預設設定。 |
| **最大檔案數** | 分配給端口的每個執行緒傳送的最大檔案數。如果設定，將覆蓋[進階設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings.md)頁面[效能設定](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings.md)部分的預設設定。 |

## 告警索引標籤

*與配置告警相關的設定。*

在執行服務級別協議（SLA）之前，你需要設定電子郵件告警通知。預設情況下，知行之橋 使用[告警](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/alerts.md)索引標籤上的全域設定。若要為此端口使用其他設定，請開啟**覆蓋全域設定**。

預設情況下，錯誤告警已啟用，這意味著每當發生錯誤時都會傳送電子郵件。若要關閉，請取消選中**啟用**核取方塊。

輸入**主題**（必填），然後可選填入以逗號分隔的**收件人**電子郵件清單。

## SLA 索引標籤

*與配置服務級別協議（SLA）相關的設定。*

SLA 允許你配置期望工作流程中端口傳送或接收的資料量，並設定期望在該時間範圍內滿足該資料量。知行之橋 會在 SLA 未滿足時傳送電子郵件警告使用者，並將 SLA 標記為\_風險中\_，表示如果 SLA 不久內仍未滿足，將被標記為\_已違反\_。這給使用者一個機會介入，確定 SLA 未滿足的原因，並採取適當的行動。如果 SLA 在風險期結束時仍未滿足，SLA 將被標記為已違反，並再次通知使用者。

要定義 SLA，開啟**預期資料量**，然後點選**設定**索引標籤。

![空 SLA 配置](https://mintcdn.com/qiao/ImYlxBRjlKh9pKya/26.3/images/sla_empty.png?fit=max\&auto=format\&n=ImYlxBRjlKh9pKya\&q=85\&s=a3e02838303e09f3ddfc5d7b06db2987)

* 如果你的端口具有單獨的傳送和接收操作，請使用選項按鈕指定 SLA 涉及的方向。
* 在視窗的**至少預期**部分：
  * 設定你期望處理的最小交易數（資料量）
  * 使用**每**欄位指定時間範圍
  * 指示 SLA 何時生效。如果選擇**從...開始**，請填寫日期和時間欄位。
  * 勾選你希望 SLA 生效的星期幾的核取方塊。如有必要，使用下拉功能表選擇**每天**。
* 在視窗的\*\*設定狀態為"風險中"\*\*部分，指定 SLA 何時應標記為風險中。
  * 預設情況下，在 SLA 違反之前不會傳送通知。若要更改此設定，勾選**傳送"風險中"通知**。

以下範例顯示了一個為端口配置的 SLA，該端口預計每天週一至週五接收 1000 個檔案。如果在時間段結束前 1 小時仍未收到 1000 個檔案，則傳送風險通知。

![SLA 配置範例](https://mintcdn.com/qiao/ImYlxBRjlKh9pKya/26.3/images/sla_defined.png?fit=max\&auto=format\&n=ImYlxBRjlKh9pKya\&q=85\&s=d8c67592769e76409cb1fba2c86c4805)

> [!NOTE]
>
> 如有必要，你可以關閉 SLA 告警。這在維護視窗期間很有用。在導覽列中點選**設定**，然後導航到**告警 > 常規告警**。點選鉛筆圖示進行編輯，並取消勾選 **SLA 告警**設定。

## 宏

在檔案命名策略中使用宏可以提升組織效率並加深對資料的瞭解。透過在檔名中融入宏，你可以動態包含識別碼、時間戳和訊息頭資訊等相關資訊，為每個檔案提供有價值的上下文。這有助於確保檔名反映對你的組織重要的詳細資訊。

知行之橋 支援以下宏，所有宏均使用以下語法：`%Macro%`。

| 宏 | 描述 |
| - | - |
| ConnectionName | 解析為端口使用的連線名稱。 |
| ConnectorID | 解析為端口的 ConnectorID。 |
| Ext | 解析為端口當前處理的檔案的副檔名。 |
| Filename | 解析為端口當前處理的檔案的檔名（含副檔名）。 |
| FilenameNoExt | 解析為端口當前處理的檔案的檔名（不含副檔名）。 |
| MessageId | 解析為端口輸出訊息的 MessageId。 |
| RegexFilename:*pattern* | 對端口當前處理的檔案的檔名應用規則運算式模式。 |
| Header:*headername* | 解析為端口當前處理訊息上目標訊息頭（`headername`）的值。 |
| LongDate | 解析為系統當前日期時間的長格式（例如，Wednesday, January 24, 2024）。 |
| ShortDate | 解析為系統當前日期時間的 yyyy-MM-dd 格式（例如，2024-01-24）。 |
| DateFormat:*format* | 解析為系統當前日期時間的指定格式（`format`）。有關可用的日期時間格式，請參見[日期格式範例](https://docs.kasoftware.com/26.3/self-hosted/zh/scripting/value-formatters/date-formatters.md#date-formats-with-literal-characters)。 |
| Vault:*vaultitem* | 解析為指定保險庫專案的值。 |

### 範例

有些宏（如 %Ext% 和 %ShortDate%）不需要參數，而其他宏需要參數。所有帶參數的宏均使用以下語法：`%Macro:argument%`

以下是一些帶參數的宏範例：

* %Header:headername%：其中 `headername` 是訊息上訊息頭的名稱。
* %Header:mycustomheader% 解析為輸入訊息上設定的 `mycustomheader` 訊息頭的值。
* %Header:ponum% 解析為輸入訊息上設定的 `ponum` 訊息頭的值。
* %RegexFilename:pattern%：其中 `pattern` 是規則運算式模式。例如，`%RegexFilename:^([\w][A-Za-z]+)%` 匹配並解析為檔名中的第一個詞（不區分大小寫，`test_file.xml` 解析為 `test`）。
* %Vault:vaultitem%：其中 `vaultitem` 是[保險庫](https://docs.kasoftware.com/26.3/self-hosted/zh/getting-started/administration/settings/global-settings-vault.md)中某個專案的名稱。例如，`%Vault:companyname%` 解析為保險庫中儲存的 `companyname` 專案的值。
* %DateFormat:format%：其中 `format` 是接受的日期格式（詳情請參見[日期格式範例](https://docs.kasoftware.com/26.3/self-hosted/zh/scripting/value-formatters/date-formatters.md#sample-date-formats)）。例如，`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%` 解析為檔案的日期和時間戳。

你還可以建立更復雜的宏，如以下範例所示：

* 在一個檔名中組合多個宏：`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%`
* 在宏外部包含文字：`MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%`
* 在宏內部包含文字：`%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.