Files

131 lines
6.3 KiB
C#

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
{
//=======================================================================
/// <summary>PatientMgr global properties for desktop applications.</summary>
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.
/// <summary>Earliest date to list - 2 year in past.</summary>
public DateTime ScheduleStart { get { return sessionProperties.ScheduleStart; } }
/// <summary>Latest date to list - 2 year in future.</summary>
public DateTime ScheduleEnd { get { return sessionProperties.ScheduleEnd; } }
/// <summary>Show filter.</summary>
public bool DisplayFilter { get { return sessionProperties.DisplayFilter; } set { sessionProperties.DisplayFilter = value; } }
//-------------------------------------------------------------------
/// <summary>Admission display text height (standard, medium, large)</summary>
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<Spm.DisplayBoundary,int> displayBoundaries = new Dictionary<Spm.DisplayBoundary,int>();
/// <summary>Width for selected boundary definition</summary>
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; } }
//-------------------------------------------------------------------
}
//=======================================================================
}