Files
PatientMgr-CSharp/SaPatMgrCore/Core/Mgr/SpmInstitutionMgr_Institution.cs
T
2019-05-16 15:20:54 +01:00

101 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Sarand.Core.App;
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Core.Bus;
namespace Sarand.PatientMgr.Core.Mgr
{
//=======================================================================
partial class SpmInstitutionMgr
{
//*******************************************************************
// I n s t i t u t i o n
//*******************************************************************
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
// Retrieve individual institution.
//-------------------------------------------------------------------
// Exist institution.
public abstract bool InstitutionExistsById(SysId id);
//-------------------------------------------------------------------
// Get institution.
public abstract SpmInstitution GetInstitution(SpmInstitution.Params prm);
public abstract SpmInstitution GetInstitutionById(SysId id);
//-------------------------------------------------------------------
// Create institution.
public abstract SpmInstitution CreateInstitution(SysId institutionId);
//-------------------------------------------------------------------
// Validate institution data.
public bool IsValidInstitution(SpmInstitution institution)
{
ClearErrorState();
if (institution == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
return IsValidInstitutionData(institution.GetData(), new SpmInstitution.ErrField());
}
public virtual bool IsValidInstitutionData(SpmInstitution.Data data, SpmInstitution.ErrField errField)
{
ClearErrorState();
// Institution properties.
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "Name", (long)SpmDbDfn.GetColTextLen(SpmDbDfn.ColumnIdx.SwmInstitution_Name), true))
{
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
// Common properties.
if (!IsValidValue(data.Notes, "notes", (long)SpmDbDfn.GetColTextLen(SpmDbDfn.ColumnIdx.SwmInstitution_Notes)))
{
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
{
if (!IsValidValue(SacsSystem.GetStatusCode(data.Status), "status", (long)SpmDbDfn.GetColTextLen(SpmDbDfn.ColumnIdx.SwmInstitution_Status), true, true))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (!SpmInstitution.InstitutionStatuses.Contains(data.Status))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState(ErrorMessage.InvalidStatus);
}
}
return true;
}
//-------------------------------------------------------------------
// Institution database interface.
public abstract bool InsertInstitution(SpmInstitution institution, DbUpdateInfo dbUpdateInfo);
public abstract bool UpdateInstitution(SpmInstitution institution, DbUpdateInfo dbUpdateInfo);
public virtual bool InstitutionCanBeDeleted(SpmInstitution institution)
{
ClearErrorState();
return true;
}
public abstract bool DeleteInstitution(SpmInstitution institution, DbUpdateInfo dbUpdateInfo);
//-------------------------------------------------------------------
// Institution list.
public abstract ColumnDfn GetInstitutionColumnDfn(SpmInstitution.Column columnId, String caption = "", int width = 0);
public abstract List<String> GetInstitutionQueryFilter(SpmInstitution.Params prm);
public abstract long GetInstitutionCount(SpmInstitution.Params prm);
public abstract List<SpmInstitution> GetInstitutionList(SpmInstitution.Params prm);
public abstract DbResultSet ExecuteInstitutionQuery(List<ColumnDfn> columns, SpmInstitution.Params prm);
public abstract DataValue GetInstitutionDataValue(ColumnDfn column, NamedValue.Map values);
//-------------------------------------------------------------------
}
//=======================================================================
}