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. //------------------------------------------------------------------- // Create institution. public abstract SpmInstitution CreateInstitution (); //------------------------------------------------------------------- // Institution exists. public bool InstitutionExistsById (SysId institutionId) { ClearErrorState(); if (!SysId.IsValid(institutionId)) return false; SpmInstitution.Params prmInstitution = new SpmInstitution.Params(); prmInstitution.IncludedIds.Add(institutionId); prmInstitution.StatusCat = SpmInstitution.StatusCat.Any; return GetInstitutionCount(prmInstitution) == 1; } //------------------------------------------------------------------- // Get institution - should only be one. public abstract SpmInstitution GetInstitution (); public abstract SpmInstitution GetInstitution (SpmInstitution.Params prm); public SpmInstitution GetInstitutionById (SysId institutionId) { ClearErrorState(); if (!SysId.IsValid(institutionId)) return null; SpmInstitution.Params prmInstitution = new SpmInstitution.Params(); prmInstitution.IncludedIds.Add(institutionId); prmInstitution.StatusCat = SpmInstitution.StatusCat.Any; return GetInstitution(prmInstitution); } //------------------------------------------------------------------- // 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 GetInstitutionQueryFilter (SpmInstitution.Params prm); public abstract long GetInstitutionCount (SpmInstitution.Params prm); public abstract List GetInstitutionList (SpmInstitution.Params prm); public abstract DbResultSet ExecuteInstitutionQuery (List columns, SpmInstitution.Params prm); //------------------------------------------------------------------- // D a t a V a l u e s //------------------------------------------------------------------- public DataValue GetInstitutionDataValue (ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SpmInstitution.Column)column.Id) { // Notes. case SpmInstitution.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SpmInstitution.Column.Status_Desc: case SpmInstitution.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SpmInstitution.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SpmInstitution.Column.Status_Ind) value = new DataValue(SpmInstitution.GetStatusTriState(status)); } break; //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }