起始方法
描述
InitializeAsync() 非同步初始化 WebView2 控制項及其環境。StrucForm control 含有多個選項參數,可在起始控件的時候,客製化結構化表單使用情境。
必塡
使用者資料
UserID: 使用者代號
Idno: 身分證字號 (用來確認管制病歷權限)
UserName: 使用者姓名
病人資料
Chtno: 病歷號
Opdno: 就醫號,收件號
DeptNo: 病人所屬部門代號,病歷紀錄,部門範本呼叫使用
起始表單
BaselineJson: 優先以內建 JSON 文件 設定作為起始表單。
BaselineFormID: 資料庫表單,預設純文字表單 = "f93afc97-9403-4613-bd67-2f683d805234"
選填
病人資料
Pacsno: 影像號 AI推論使用。
表單綁定 HIS 病歷欄位資料
DocTypeID: 連結 HIS 欄位的字典名稱 ID ,將欄位名稱提供結構化小組,經編輯器新增應對字典取得 UUID
DocTypeName: 病歷紀錄欄位名稱 Subjective, Objective 可顯示在放大視窗上
BaselinePreset: HIS 作業種類設定 (opd, ipd, exam, er),用來回報病歷紀錄作業種類
表單其他設定
SubpanelFormID: 設定子頁面起始助手表單編號 (預設門診小助手表單 7011725e-81f5-421f-8caf-337c6f2f7a21)
LimitDictVal: 設定結構化欄位最大字元數 (預設 4000 字元),超過部分會被刪除。
Scutsource: 子表單來源 { "usr", "sub", "dpt", "sys" }
Scutgroup: 子表單使用群組 { "門", "急", "住", "檢查", "手術" }
DocDitto: 設定依 doctorID or deptNo 自動載入最近一次紀錄: DocDitto 預設 "" 不 ditto
DocAutoLoad: 是否自動取用文件上次的暫存紀錄,false 帶入內容由HIS端自行控制
DocOverwrite: 同一筆 opdno 文件可支援多次引用同一張子表單,預設 false,每次引用子表單都新增一筆紀錄;如果設定 true,則同一張子表單的紀錄會被複寫, 僅留存一筆紀錄。
ShortcutAutoSave: 預設 true,當使用者在子表單觸發跳出結構化工具時,工具會自動另存子表單紀錄,若設定 false 會取消子表單編輯內容。
Preview: 設定起始畫面為病歷預覽或編輯模式,預設 false 為編輯模式
URLRoot: 結構化基礎 API 網址
URLtemplate: 結構化加值 API 網址 (例如 loadtemplate API)
EnableParentTemplateShortcut: 是否允許 shift + F2 熱鍵切換基礎表單,預設否 false。
EnableChildTemplateShortcut: 是否允許 F4 熱鍵切換子表單,預設允許 true。
F2Fix: 是否固定顯示主表單 (ParentTemplateShortcut) 選擇功能列,預設 false 不固定顯示。
showCharCount: 是否在textarea 右下角顯示字元數,預設 true。
showSubpanel: 放大視窗時是否自動展開子頁面。
Debug: show/hide debug using ctrl+D。
OnlineCheckTimer: time interval for online check (sec)。
門診專用參數
Font: 門診表單文字自型(例如: Arial, Times...) 預設 "system-ui, sans-serif"。
FontSize: 門診表單文字大小(整數), 預設 16。
FontWeight: 門診表單文字粗細,預設 bold。
Form_Load();
// 非同步呼叫 Form_Load 使用 Configuration 初始化 strucForm 物件
private async Task Form_Load()
{
// 設定 Configuration
StrucForm1.Configuration = new ControlConfiguration
{
// 必填使用者資料
UserID = "OL5", // 使用者代號
Idno = "A123456789", // 使用者身分證字號 (用來確認管制病歷權限)
UserName = "王曉明", // 使用者名稱
// 必填病人資料
Chtno = "500", // 病歷號
Opdno = "20230925000001", // 就醫號,收件號
DeptNo = "33F0", // 使用者部門代號四碼
// 必填起始表單 BaselineJson, BaselineFormID 擇一填寫
BaselineFormID = "", // 起始表單編號
BaselineJson = "[{\"itemtype\":\"form\",\"authread\":[\"doctor\"],\"authwrite\":[\"doctor\"],\"gettext\":true,\"item\":[{\"itemid\":2,\"datatype\":\"textarea\",\"datavalue\":\"\",\"dictionary\":\"OPD\",\"dicid\":\"a3d5cc5e-7ca9-4c03-9c72-16224e30c133\",\"dicrole\":\"tohis\",\"tag\":\"\",\"formula\":\"\",\"tocalc\":true,\"toSAS\":false,\"fromdict\":true,\"efontcolor\":\"black\",\"efontsize\":\"16\",\"ebackcolor\":\"#f3f6f4\",\"required\":false,\"reference\":\"\"}],\"itemid\":\"1\"},{\"itemtype\":\"javascript\",\"content\":\"$('.intextarea').css({\\n'font-family': 'Microsoft Sans Serif',\\n'backgound':'white',\\n'font-weight': 'bold',\\n});\"},{\"itemtype\":\"iot\",\"editorver\":\"1.54.03\",\"sheetid\":\"\",\"recType\":\"\",\"f_opdno\":false,\"f_chtno\":true,\"f_DWload\":\"f_DWpostsetvalue\",\"f_histext\":\"histextbyblock\",\"f_hideprevicon\":true,\"f_day\":\"0\",\"d_url\":\"https://xxx/\",\"modifiedUser\":\"林xx\",\"modifiedDept\":\"林口長庚xx科\",\"modifiedDate\":1695712955859}]",
// 表單綁定 HIS 病歷欄位資料
DocTypeID = "40e97c2-a181-450e-be22-aaa3d4459072", // 病歷紀錄欄位ID SOAP....using dictionary ID to define
DocTypeName = "Subjective", // 病歷紀錄欄位名稱 Subjective, Objective 可顯示在放大視窗上
BaselinePreset = "opd", // HIS 作業種類設定 (opd, ipd, exam, er)
// 選填
LimitDictVal = 4000, // 欄位字元數 byte 上限 (中文2 byte)
Scutsource = new List<string> { "usr", "sys" }, // 範例: 只顯示個人 usr 以及 sys 體系來源的表單
Scutgroup = new List<string> { "門" }, // 範例: 只顯示門診群組的表單
DocAutoLoad = false, // 是否帶入上次倉儲文件暫存紀錄,預設 false 帶入內容由HIS端自行控制
DocOverwrite = false, // 是否自動複寫同 opdno 文件,預設 false ,使用者可另存新檔
ShortcutAutoSave = true, // 範本自動儲存
Font = "system-ui, sans-serif",
FontSize = 16,
URLRoot = "https://cghasp.cgmh.org.tw/structure/"; // 結構化 API 網址
URLtemplate = "http://10.30.111.14:85/"; // template API 網址
EnableParentTemplateShortcut = false, // 啟動 shift F2 主表單選擇功能列
EnableChildTemplateShortcut = true, // 啟動 F4 子表單選擇功能列
F2Fix = false, // 是否固定顯示 主表單 (ParentTemplateShortcut) 選擇功能列
showCharCount = true, // show.hide CharCount display
Debug = true // show/hide debug using ctrl+D
};
await StrucForm.InitAsync();
}
DocTypeID
結構化控制項綁定的文件種類ID ,例如門診 SOAP 欄位字典,設定方式以及規格請參見 文件規格。
BaselineFormID
設定基礎表單所需的 sheetID,可以從編輯清單的標題列查詢而得

範例
BaselineFormID
設定 Config,使用 BaselineFormID 作為基礎表單
ControlConfiguration config = new ControlConfiguration
{
// 必塡使用者資料
UserID = "OL5", // 使用者代號
UserName = "林天人"
// 必填病人資料
Chtno = "12345", // 病歷號
Opdno = "20231122000001", // 就醫號,收件號
DeptNo = "33F0", // 病人所屬部門代號前四碼
// 必填表單綁定 HIS 病歷欄位資料
DocTypeID = "40e97c2-a181-450e-be22-aaa3d4459072", // Host program 綁定基礎表單的文件ID
DocTypeName = "Subjective", // 病歷紀錄欄位名稱可顯示在放大視窗上
BaselinePreset = "opd", // 起始預設表單
// 必填起始表單以 BaselineFormID 設定
BaselineFormID = "0b37f6f5-55b5-429f-89e2-416f47d6df44",// 設定基礎表單引用 FormID
// 選填
Scutsource = new List<string> { "usr", "sub", "dpt", "sys" }, // 設定顯示 個人,次專,科部,或體系等來源的表單
Scutgroup = new List<string> { "門", "急", "住", "檢查", "手術" }, // 設定顯示 "門", "急", "住", "檢查", "手術" 群組的表單
DocAutoLoad = true, // 基礎表單開啟時,會取出上次存檔內容
DocOverwrite = true, // 子表單存檔時自動複寫上次紀錄
EnableParentTemplateShortcut = true // 允許 shift + F2 熱鍵切換基礎表單
};
strucForm1.Configuration = config;
BaselineJson
利用 BaselinJson 參數可定義離線基礎表單的 JSON 內容。JSON 文件請使用編輯器,點選要編輯的表單,進入編輯畫面後點選下拉功能列,選擇 "匯出 JSON 文件" 取得。使用基礎表單時無須連網即可操作。


範例
使用 JSON 文件設定基礎表單:
// 非同步呼叫 Form_Load 使用 Configuration 初始化 strucForm 物件
private async Task Form_Load()
{
// 設定 Configuration
strucForm1.Configuration = new ControlConfiguration
{
// 必塡使用者資料
UserID = "OL5", // 使用者代號
UserName = "林天人"
// 必填病人資料
Chtno = "12345", // 病歷號
Opdno = "20231122000001", // 就醫號,收件號
Pacsno = "20231122000001", // 設定影像號(AI 推論使用)
DeptNo = "33F0", // 病人所屬部門代號前四碼
// 必填表單綁定 HIS 病歷欄位資料
DocTypeID = "40e97c2-a181-450e-be22-aaa3d4459072", // Host program 綁定基礎表單的文件ID
DocTypeName = "Subjective", // 病歷紀錄欄位名稱可顯示在放大視窗上
BaselinePreset = "opd", // 起始預設表單
// 必填起始表單,以 BaselineJson 設定
BaselineJson = "[{\"itemtype\":\"form\",\"authread\":[\"doctor\"],\"authwrite\":[\"doctor\"],\"gettext\":true,\"item\":[{\"itemid\":2,\"datatype\":\"textarea\",\"datavalue\":\"\",\"dictionary\":\"OPD\",\"dicid\":\"a3d5cc5e-7ca9-4c03-9c72-16224e30c133\",\"dicrole\":\"tohis\",\"tag\":\"\",\"formula\":\"\",\"tocalc\":true,\"toSAS\":false,\"fromdict\":true,\"efontcolor\":\"black\",\"efontsize\":\"16\",\"ebackcolor\":\"#f3f6f4\",\"required\":false,\"reference\":\"\"}],\"itemid\":\"1\"},{\"itemtype\":\"javascript\",\"content\":\"$('.intextarea').css({\\n'font-family': 'Microsoft Sans Serif',\\n'backgound':'white',\\n'font-weight': 'bold',\\n});\"},{\"itemtype\":\"iot\",\"editorver\":\"1.54.03\",\"sheetid\":\"\",\"recType\":\"\",\"f_opdno\":false,\"f_chtno\":true,\"f_DWload\":\"f_DWpostsetvalue\",\"f_histext\":\"histextbyblock\",\"f_hideprevicon\":true,\"f_day\":\"0\",\"d_url\":\"https://xxx/\",\"modifiedUser\":\"林xx\",\"modifiedDept\":\"林口長庚xx科\",\"modifiedDate\":1695712955859}]",
// 選填
Scutsource = new List<string> { "usr", "sys" }, // 範例: 只顯示個人 usr 以及 sys 體系來源的表單
Scutgroup = new List<string> { "門" } // 範例: 只顯示門診群組的表單
};
await strucForm.InitAsync();
}
BaselinePreset
使用 "離線基礎表單選項" 設定基礎表單 (目前有 離線基礎表單僅有 "opd" )
範例
利用 BaselinePreset 參數使用內建的離線表單。
// 非同步呼叫 Form_Load 使用 Configuration 初始化 strucForm 物件
private async Task Form_Load()
{
// 設定 Configuration
strucForm.Configuration = new ControlConfiguration
{
// 必塡使用者資料
UserID = "OL5", // 使用者代號
UserName = "林天人"
// 必填病人資料
Chtno = "12345", // 病歷號
Opdno = "20231122000001", // 就醫號,收件號
DeptNo = "33F0", // 病人所屬部門代號前四碼
// 必填表單綁定 HIS 病歷欄位資料
DocTypeID = "40e97c2-a181-450e-be22-aaa3d4459072", // Host program 綁定基礎表單的文件ID
DocTypeName = "Subjective", // 病歷紀錄欄位名稱可顯示在放大視窗上
BaselinePreset = "opd", // 起始預設表單
// 必填起始表單,沒有填以 BaselineFormID = "f93afc97-9403-4613-bd67-2f683d805234" 預設
// 選填
Scutsource = new List<string> { "usr", "sub", "dpt", "sys" }, // 範例: 顯示 "usr", "sub", "dpt", "sys" 來源的表單
Scutgroup = new List<string> { "門", "急", "住", "檢查", "手術" } // 範例: 顯示 "門", "急", "住", "檢查", "手術" 群組的表單
};
// 等候表單生成以及帶入欄位資料
await strucForm.InitAsync();
}
Last updated