Khái niệm Settings

I. Tổng quan

  1. Setting là gì?
  2. Tại sao sử dụng setting?
  3. Sử dụng Setting thế nào?

II. Chi tiết

  1. Setting là gì?
  • Nơi lưu trữ trong cơ sở dữ liệu
    • Application..L_Settings : chứa giá trị default/global
[ID] [int],
[Category] varchar ,
[Name] varchar,
[Type] varchar,
[DefaultValue] nvarchar ,
[Note] nvarchar ,
[ComboValues] nvarchar ,
[CreatedOn] [datetime],
[CreatedBy] [uniqueidentifier],
[ModifiedOn] [datetime],
[ModifiedBy] [uniqueidentifier],
[CheckIsWarning] [bit]
  • Application..Settings: chưa giá trị tương ứng với từng cơ sở/trung tâm
[FacID] varchar,
[ID] [int],
[Category] varchar,
[Name] varchar,
[Type] varchar,
[Value] nvarchar,
[Note] nvarchar,
[ComboValues] nvarchar,
[CreatedOn] [datetime],
[CreatedBy] [uniqueidentifier],
[ModifiedOn] [datetime],
[ModifiedBy] [uniqueidentifier],
[CheckIsWarning] [bit]

2. Tại sao sử dụng Setting ?

  • Diễn giải: Nếu 1 chức năng A tại màn hình(screen) mà nhu cầu sử dụng của nhiều khách hàng khác nhau, thì lúc này chức năng A phải có setting để phục vụ cho nhiều nhu cầu khác nhau của khách hàng.
    • Ví dụ: Tại màn hình tiếp nhận, có chức năng tiếp nhận chọn đối tượng người bệnh. Và có 2 khách hàng(Client), Client X có nhu cầu tiếp nhận bệnh nhân viện phí và VIP, Client Y có nhu cầu tiếp nhận bệnh nhân bảo hiểm và bệnh nhân viện phí.
    • Trong cơ sở dữ liệu có bảng L_DoiTuongTinhTien, có các dòng dữ liệu như sau:
      • Bệnh nhân bảo hiểm
      • Bệnh nhân viện phí
      • Bệnh nhân VIP
    • Đề bài : Làm sao Client X chỉ hiển trong Combobox “Đối tượng” gồm bệnh nhân viện phí và VIP, còn Client Y chỉ hiển thị trong combobox “Đối tượng” gồm bệnh nhân bảo hiểm và bệnh nhân viện phí
    • Hình minh họa trên phần mềm
  • Cách làm: Tạo 3 setting trong table L_Settings tương ứng với 3 đối tượng bệnh nhân, cụ thể sẽ là Admit_BNBH, Admit_BNVP, Admit_BNVIP.
  • Ta chọn setting tên Admit_BNBH để đi sâu vào chi tiết.
Sau khi insert vào table L_Setting thì sẽ được như hình trên.

Value của Col <DefaultValue> của table L_Setting: sẽ được xác định bằng cách, nếu tình huống nào xảy ra/diễn ra nhiều hơn thì chọn giá trị theo tình huống được đó. Ở đây, vì các đa số các bệnh viện đều có cho khám chữa bệnh cho đối tượng bảo hiểm nên ta chọn <DefaultValue> = Y.

Tất cả các Client có khám chữa bệnh cho đối tượng bảo hiểm thì sử dụng <Value> = “Y”

Sau khi insert vào table L_Settings thì sẽ được như hình trên

Đối với trường hợp Client không khám chưa bệnh cho đối tượng bảo hiểm thì phải insert 1 row vào table L_Settings 1 Value = “N” (No). Như trong hình minh họa là Client với FacID(Facility)= 16 không có khám chữa bệnh cho đối tượng bảo hiểm.

3. Sử dụng Setting thế nào

Ta sử dụng function <fn_SettingValue_GetByName> trong SQL Server để lấy giá trị của Setting.

Lưu ý: @FacID là param được truyền từ tham số KHÔNG được fix code, ở đây chỉ làm ví dụ để dễ hiểu.