using Sarand.Core.Base; using Sarand.Core.Bus; using Sarand.PatientMgr.Core.App; using Sarand.PatientMgr.Core.Base; using Sarand.Win.App; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sarand.PatientMgr.Win.Forms.App { //======================================================================= /// PatientMgr global properties for desktop applications. public class SpmSessionProfile_Win : SpmSessionProfile { //------------------------------------------------------------------- // User context. private class SpmUserContext_Win : SpmUserContext { public SpmUserContext_Win (SpmSessionContext sessionContext) : base(sessionContext) { } } //------------------------------------------------------------------- // Data members. private readonly SpmUserContext_Win userContext; private SpmSessionProperties sessionProperties = new SpmSessionProperties(); private readonly SacsRegistry registryConfig, registryProcess; // Registry keys. private static String kpcProfileSectionConfig = "Config"; private static String kpcProfileSectionProcess = "Process"; //private static String kpcProfileSectionWindowPos = "WindowPos"; private static String kpcProfileKeyDeptId = "DepartmentId"; private static String kpcProfileKeyFacilityType = "FacilityType"; private static String kpcProfileKeyFacilityId = "FacilityId"; private static String kpcProfileDisplayFilter = "DisplayFilter"; private static String kpcProfileAdmExportDir = "AdmExportDir"; private static String kpcProfileStatsGenerateDir = "StatsGenerateDir"; //private static String kpcProfileWndPos_Help = "Help"; //private static String kpcProfileWndPos_Config = "Config"; //private static String kpcProfileWndPos_Lists = "Lists"; //------------------------------------------------------------------- // Construction. protected SpmSessionProfile_Win (SpmSessionContext sessionContext) { userContext = new SpmUserContext_Win(sessionContext); // Registries. registryConfig = new SacsRegistry("Sarand", "Sarand Patient Manager", kpcProfileSectionConfig); registryProcess = new SacsRegistry("Sarand", "Sarand Patient Manager", kpcProfileSectionProcess); // Filter properties. Filter.DepartmentId = new SysId(registryConfig.GetIntValue("", kpcProfileKeyDeptId)); Filter.FacilityType = EnumUtil.ParseEnum(registryConfig.GetIntValue("", kpcProfileKeyFacilityType).ToString(), Spm.FacilityType.Unknown); Filter.FacilityId = new SysId(registryConfig.GetIntValue("", kpcProfileKeyFacilityId)); sessionProperties.DisplayFilter = registryConfig.GetIntValue("", kpcProfileDisplayFilter) > 0 ? true : false; sessionProperties.AdmissionExportFolder = registryProcess.GetStringValue("", kpcProfileAdmExportDir, ""); sessionProperties.StatisticsExportFolder = registryProcess.GetStringValue("", kpcProfileStatsGenerateDir, ""); } //------------------------------------------------------------------- // S t o r e P r o p e r t i e s //------------------------------------------------------------------- public void StoreProperties() { registryConfig.WriteInt("", kpcProfileKeyDeptId, SysId.ToInt(Filter.DepartmentId)); registryConfig.WriteInt("", kpcProfileKeyFacilityType, (int)Filter.FacilityType); registryConfig.WriteInt("", kpcProfileKeyFacilityId, SysId.ToInt(Filter.FacilityId)); registryConfig.WriteInt("", kpcProfileDisplayFilter, sessionProperties.DisplayFilter ? 1 : 0); registryProcess.WriteString("", kpcProfileAdmExportDir, sessionProperties.AdmissionExportFolder); registryProcess.WriteString("", kpcProfileStatsGenerateDir, sessionProperties.StatisticsExportFolder); } //------------------------------------------------------------------- // S e s s i o n P r o p e r t i e s //------------------------------------------------------------------- // User context. public SpmSessionContext SessionContext { get { return userContext.SessionContext; } } public SpmUserContext UserContext { get { return userContext; } } //------------------------------------------------------------------- // Schdedule display characteristics. /// Earliest date to list - 2 year in past. public DateTime ScheduleStart { get { return sessionProperties.ScheduleStart; } } /// Latest date to list - 2 year in future. public DateTime ScheduleEnd { get { return sessionProperties.ScheduleEnd; } } /// Show filter. public bool DisplayFilter { get { return sessionProperties.DisplayFilter; } set { sessionProperties.DisplayFilter = value; } } //------------------------------------------------------------------- /// Admission display text height (standard, medium, large) public int GetTextHeight (Spm.DisplayFont displayFont) { return sessionProperties.GetTextHeight(displayFont); } public void SetTextHeight (Spm.DisplayFont displayFont, int textHeight) { sessionProperties.SetTextHeight(displayFont, textHeight); } //------------------------------------------------------------------- private readonly Dictionary displayBoundaries = new Dictionary(); /// Width for selected boundary definition public int GetDisplayBoundary (Spm.DisplayBoundary displayBoundary) { return sessionProperties.GetDisplayBoundary(displayBoundary); } public void SetDisplayBoundary (Spm.DisplayBoundary displayBoundary, int boundary) { sessionProperties.SetDisplayBoundary(displayBoundary, boundary); } //------------------------------------------------------------------- // Schedule filter. public SpmSessionProperties.FilterData Filter { get { return sessionProperties.Filter; } } //------------------------------------------------------------------- // Data folders. public String AdmissionExportFolder { get { return sessionProperties.AdmissionExportFolder; } set { sessionProperties.AdmissionExportFolder = value; } } public String StatisticsExportFolder { get { return sessionProperties.StatisticsExportFolder; } set { sessionProperties.StatisticsExportFolder = value; } } //------------------------------------------------------------------- } //======================================================================= }