# 繫結函數

## 入口

欲使用繫結函數，請點”表單管理”帶出以下頁面。

<figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2FRyYtNm0pRLrhChwgPUHu%2Ff13.jpg?alt=media&#x26;token=d149c257-d38b-4205-85e8-b91aca84215d" alt=""><figcaption></figcaption></figure>

## 函數

函數可帶入HIS病歷內容，例如身高，體重....，或是一定條件下搜尋出來的欄位資料，例如: 最近一次的檢查日期，近三個月的檢查項目，最近一次的抽血檢驗數值等。

## 繫結函數

使用函數帶入HIS資料須點選 "繫結函數" 功能，點選函數清單指定要綁定的函數，以下圖說為例，我們在 "052-thallium" 表單中，帶入 "KIPD0030.GETAGE\_WEIGHT\_HEIGHT\_BMI" 函數，依據函數說明可知本數用於取得年齡體重身高及BMI，該函數會利用 "CHTNO" 索引查詢資料，將相應的數值帶入 "AGE"，"WEIGHT"，"HEIGHT" 這三個字典檔，運作階段是在表單打開時 "Init"。

<figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2FBP3aaMFHvBnt9vxZWtCY%2Ff%20bind4.png?alt=media&#x26;token=f7e16a6a-897b-4d3a-8e0d-d6884145cb75" alt=""><figcaption></figcaption></figure>

## 表單編輯

表單編輯時，須設定相同字典名稱的控制項，為了綁定函數"KIPD0030.GETAGE\_WEIGHT\_HEIGHT\_BMI" 的 AGE 輸出，表單的控制項字典名稱也需要設為 AGE，之後打開表單就可以將函數 "KIPD0030.GETAGE\_WEIGHT\_HEIGHT\_BMI" 的 AGE 變數自動帶入表單中。

<figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2F1tlndqL3iWd5O9VDDLMA%2Ff%20bind5.jpg?alt=media&#x26;token=c65bb7fc-92cf-4b93-bc68-96e012c1ecb7" alt=""><figcaption></figcaption></figure>

## 設定 GetInternalBySQLRtnData 函數

除了通過綁定表單設定，也可以直接在 [JS script 增益集](https://cgmh-kj.gitbook.io/strucmed/biao-dan-bian-ji/biao-dan-xuan-xiang-form-option#js-script-zeng-yi-ji-addon) 中，呼叫 window\.external.GetInternalBySQLRtnData 程序帶入數值，回傳數值。

### 單一傳入範例

單一輸出情境: 這個JS code可以帶回使用者名稱。

```
// clear login field first 
// otherwise the function will append user name to the login data
SetValueByDictionary('login','');   

// set login name as USERNM 
window.external.GetInternalBySQLRtnData('','KIPD0030.GETUSERNM','IDNO','2,1,P','0',1136);

```

上述 GetInternalBySqlRtnData function 參數說明如下:

1. "": 預設值
2. 呼叫 "KIPD0030GETUSERNM" 這個繫結函數
3. 該函數會綁定 IDNO 病歷號，查詢資料
4. "2,1,P" 代表有兩個參數(傳入項目跟輸出名稱的總和IDNO + USERNM = 2)，回傳一個數值(輸出名稱個數 USERNM = 1)，程序是 Procedure
5. "0": 回傳第一個輸出名稱 USERNM
6. 1136: 數值帶回控制項ID 1136

KIPD0030.GETUSERNM 可參考以下圖說

<figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2Fz5cva4ilbeKLzm1n77RY%2Ff%20bind6.png?alt=media&#x26;token=ae133299-308b-4507-86ba-ae8d11bb0b96" alt=""><figcaption></figcaption></figure>

### 多個參數舉例

```
//set 收件號, Dictionary="P_OPDNO1"
window.external.GetInternalBySQLRtnData('**','KRPTINFO.PNMREPTORDATA','CHTNO,OPDNO,ODRNO=**','13,10,P','2','1031');
```

上述 GetInternalBySqlRtnData function 參數說明如下:

1. "": 預設值
2. 呼叫 "KRPTINFO.PNMREPTORDATA" 這個繫結函數
3. 該函數會綁定 CHTNO,OPDNO,ODRNO=\*\* (病歷號，門診病歷號，或是醫囑號=\*\*)，查詢資料
4. "13,10,P" 代表有13個參數(傳入項目3跟輸出名稱10的總和13)，回傳10個數值(輸出名稱個數 P\_EXAMDATE, P\_SOURCE, P\_OPDNO1, P\_PACSNO, P\_CLASS, P\_SDOCTOR, P\_LDOCTOR, P\_NOWDOCTOR, P\_EDOCTOR, P\_EXAMITEM = 10)，程序是 Procedure
5. "2": 回傳第三個輸出名稱 P\_OPDNO1
6. 1031: 數值帶回控制項ID 1031

KRPTINFO.PNMREPTORDATA可參考以下圖說

<div><figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2Fv5AqFMG2DNYik8ok13JC%2Ff%20bind7.png?alt=media&#x26;token=1d44e139-b7e5-41b9-8a99-9411805fbc60" alt=""><figcaption></figcaption></figure> <figure><img src="https://1792893123-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdwFoogk3W80yJlNR060h%2Fuploads%2FxUgEBq8dKi1SMxQPqRoo%2Ff%20bind8.png?alt=media&#x26;token=62ea81c1-eada-4146-a980-cd056bf9a51b" alt=""><figcaption></figcaption></figure></div>
