使用生成 URL 進入表單

本說明文件旨在解釋如何利用生成的 URL 來進入特殊表單。通過指定多個參數,可以根據需求自動生成 URL 並打開對應的表單。

步驟

1. 準備參數

首先,需要準備一組參數,這些參數將用於生成特定的 URL 來打開表單。這些參數包括但不限於:

  • tempShortcut: 模板快捷方式

  • defaultTempID: 預設模板ID

  • user: 使用者ID

  • Idno: 使用者身分證號 (用來確認查閱管制病歷權限)

  • usernm: 使用者名稱

  • chtno: 使用者健保卡號

  • deptNo: 科別編號

  • opdno: 門診號

  • ck_enableF4: 是否啟用F4

  • ck_enableF2: 是否啟用F2

  • ck_F2Fix: F2是否固定

  • ck_hidePreset: 是否隱藏預設

  • scutsource: 快捷來源(數組)

  • scutgroup: 快捷組別(數組)

2. 生成 URL

使用以下 C# 代碼生成 URL:

  • ck_defaultAssist 預設表單UUID

  • basePopup:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

public class Program
{
    public static void Main()
    {
        var basePopup = "";
        var parameters = new Dictionary<string, object>
        {
            { "tempShortcut", "助手" },
            { "defaultTempID", ck_defaultAssist },
            { "user", IOTjson.user },
            { "usernm", IOTjson.usernm },
            { "chtno", IOTjson.chtno },
            { "deptNo", IOTjson.deptNo },
            { "opdno", IOTjson.opdno },
            { "ck_enableF4", false },
            { "ck_enableF2", false },
            { "ck_F2Fix", false },
            { "ck_hidePreset", true },
            { "scutsource", new string[] { "usr", "sub", "dpt", "sys" } },
            { "scutgroup", new string[] { "助手" } }
        };

        var urlCallout = BuildStructureUrl(basePopup, parameters);
        OpenBrowser(urlCallout);
    }

    public static string BuildStructureUrl(string url, Dictionary<string, object> obj)
    {
        var query = HttpUtility.ParseQueryString(string.Empty);

        foreach (var param in obj)
        {
            if (param.Value != null)
            {
                if (param.Value is Array array)
                {
                    var json = new JavaScriptSerializer().Serialize(array);
                    query[param.Key] = json;
                }
                else
                {
                    query[param.Key] = param.Value.ToString();
                }
            }
        }

        return url + query.ToString();
    }

    public static void OpenBrowser(string url)
    {
        var edgeUrl = "microsoft-edge:" + url;
        System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
        {
            FileName = edgeUrl,
            UseShellExecute = true
        });
    }

    // Mock data for demonstration purposes
    static dynamic IOTjson = new
    {
        user = "user123",
        usernm = "user name",
        chtno = "chtno123",
        deptNo = "dept123",
        opdno = "opd123"
    };

    static string ck_defaultAssist = "defaultAssist123";
}

Last updated