起始方法

描述

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文件
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