SB 04-Jun-2019

This commit is contained in:
sbrignell
2019-06-04 09:06:12 +01:00
parent 130bcbf0fe
commit d095c366bc
25 changed files with 587 additions and 24 deletions
@@ -44,6 +44,14 @@ namespace Sarand.PatientMgr.Win.Dbas.App
{
return new SpmAdmissionMgr_Dbas(userContext);
}
public override SpmDepartmentMgr CreateDepartmentMgr(SpmUserContext userContext)
{
return new SpmDepartmentMgr_Dbas(userContext);
}
public override SpmInstitutionMgr CreateInstitutionMgr(SpmUserContext userContext)
{
return new SpmInstitutionMgr_Dbas(userContext);
}
//-------------------------------------------------------------------
}
@@ -7,7 +7,6 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using System.Linq;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -45,7 +44,8 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Utilities.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
// Admission Roles
public override bool HasRole(Spm.EmployeeRole employeeRole)
@@ -120,7 +120,6 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Do not attempt any updates unless the list has been populated.
if (SysId.IsValid(Id))
{
admissionRolesCopy.SetSequence();
admissionRolesCopy.SetIdentity(this);
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Core.Bus;
@@ -36,7 +37,39 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override int GetFacilityCount(Spm.FacilityType type)
{
ClearErrorState();
if (!SysId.IsValid(Id)) { SetErrorState("invalid department"); return 0; }
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) { SetErrorState("database unavailable"); return 0; }
// Build query filter.
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacility_DepartmentId)+"=" + Id.ToString());
if (type > 0) filters.Add(" AND " + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacility_Type) + "=" + ((int)type).ToString());
// Count the number of matching rows.
return (int)db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacility), filters.Concat(" AND ", "(", ")"));
}
public override bool HasFacilities(Spm.FacilityType type)
{
ClearErrorState();
return (GetFacilityCount(type) > 0);
}
public override bool HasProcedures()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return SetErrorState("invalid department");
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) return SetErrorState("database unavailable");
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmProcedure_DepartmentId)+"=" + Id.ToString());
return (int)db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacility), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Core.Bus;
@@ -36,7 +37,20 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasAdmissionRoles()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) return SetErrorState("date unavailable");
// Filter to identify matching AdmissionRoles:
// AdmissionRole.EmployeeRoleId = This item's Id.
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmissionRole_EmployeeRoleId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmissionRole), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Core.Bus;
@@ -36,8 +37,20 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasRoles()
{
ClearErrorState();
if (!SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) return SetErrorState("date unavailable");
// Filter to identify matching admissions:
// Patient Id = This item's Id.
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmEmployeeRole_EmployeeId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmEmployeeRole), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
//=======================================================================
@@ -6,6 +6,9 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using Sarand.Core.Base;
using Sarand.Win.Dbas.Data;
using Sarand.Win.Dbas.Base;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -36,7 +39,145 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasDataItems()
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) SetErrorState("database unavailable");
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmTemplateData_FacilityTemplateId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmTemplateData), filters.Concat(" AND ", "(", ")")) > 0; ;
}
public override bool HasSessions()
{
DateTime? earliest = null, latest = null;
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessionsBefore(DateTime target, ref DateTime? earliest, ref DateTime? latest)
{
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessionsAfter(DateTime target, ref DateTime? earliest, ref DateTime? latest)
{
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessions(DateTime before, DateTime after, ref DateTime? earliest, ref DateTime? latest)
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
SacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase;
if (db == null) SetErrorState("database unavailable");
long countSession = 0;
DbQuery query = new DbQuery(db != null ? db.DbmsType : DbmsType.General);
query.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacilitySession));
query.Columns.Add("Count(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_FacilityTemplateId) + ")", "CountAdm");
query.Columns.Add("Max(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + ")", "MaxSession");
query.Columns.Add("Min(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + ")", "MinSession");
// Filter to identify matching Sessions: FacilitySession.FacilityTemplateId = This item's Id.
query.Filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_FacilityTemplateId) + "=" + Id.ToString());
if (DateUtil.IsValid(before)) query.Filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + "<" + DbQuery.FormatDateForCondition(before));
if (DateUtil.IsValid(after)) query.Filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + ">=" + DbQuery.FormatDateForCondition(after.AddDays(1)));
// Retrieve session statistics.
using (DbResultSet dbResultSet = new DbResultSet_DataReader(db, query.ToString()))
{
if (dbResultSet != null && dbResultSet.NextRecord())
{
NamedValue.Map values = dbResultSet.GetRecordValues();
countSession = values.GetValue("CountSession").AsLong();
if (countSession > 0)
{
if (earliest != null) earliest = values.GetValue("MinSession").AsDate().Date;
if (latest != null) latest = values.GetValue("MaxSession").AsDate().Date;
}
}
}
return false;
}
public override bool HasAdmissions(Spm.AdmissionCancelType cancelType)
{
DateTime? earliest = null, latest = null;
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissionsBefore(DateTime target, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissionsAfter(DateTime target, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissions(DateTime before, DateTime after, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
SacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase;
if (db == null) SetErrorState("database unavailable");
long countAdmission = 0;
DbQuery query = new DbQuery(db.DbmsType);
query.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmission));
query.Columns.Add("Count(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_Id) + ")", "CountAdm");
if (earliest != null) query.Columns.Add("Min(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_AdmissionFrom) + ")", "MinAdm");
if (latest != null) query.Columns.Add("Max(" + SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_AdmissionTo) + ")", "MaxAdm");
// Filter to identify matching Admissions.
SpmAdmission.Params prmAdm = new SpmAdmission.Params();
prmAdm.FacilityTemplateId = Id;
prmAdm.AdmissionFrom = after.AddDays(1);
prmAdm.AdmissionTo = before.AddDays(-1);
SpmAdmissionMgr admissionMgr = SpmGlobals.System.CreateAdmissionMgr(userContext);
query.Filters.AddRange(admissionMgr.GetAdmissionQueryFilter(prmAdm));
// Retrieve admission statistics.
using (DbResultSet dbResultSet = new DbResultSet_DataReader(db, query.ToString()))
{
if (dbResultSet != null && dbResultSet.NextRecord())
{
NamedValue.Map values = dbResultSet.GetRecordValues();
countAdmission = values.GetValue("CountAdm").AsLong();
if (countAdmission > 0)
{
if (earliest != null) earliest = values.GetValue("MinAdm").AsDate().Date;
if (latest != null) latest = values.GetValue("MaxAdm").AsDate().Date;
}
}
}
return false;
}
public override long GetSessionComplexityCount(DateTime admission, String complexity, SysId admissionExcludeId)
{
ClearErrorState();
if (SysId.IsValid(Id)) return 0;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) SetErrorState("database unavailable");
// Dummy query to set the DBMS correctly (for formatting strings and dates etc)/
DbQuery qryDummy = new DbQuery(db != null ? db.DbmsType :DbmsType.General);
// Filter to identify matching Admissions.
// Admission.FacilityTemplateId = This item's Id.
// Admission.AdmissionFrom = admission date
// Admission.AdmissionTo = admission date
// Admissin.ComplexityCode = complexity code
// Admission.Id <> exclude item
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_FacilityTemplateId) + "=" + Id.ToString());
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_AdmissionFrom) + "=" + DbQuery.FormatDateForCondition(admission));
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_AdmissionTo) + "=" + DbQuery.FormatDateForCondition(admission));
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_ComplexityCode) + "='" + complexity + "'");
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_CancelType) + "=" + ((int)Spm.AdmissionCancelType.None));
if (SysId.IsValid(admissionExcludeId))
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_Id) + "<>" + admissionExcludeId.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmission), filters.Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
}
@@ -6,6 +6,9 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using Sarand.Core.Base;
using Sarand.Win.Dbas.Data;
using Sarand.Win.Dbas.Base;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -36,7 +39,85 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasTemplates()
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
if (db == null) SetErrorState("database unavailable");
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilityTemplate_FacilityId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacilityTemplate), filters.Concat(" AND ", "(", ")")) > 0;
}
public override bool HasSessions()
{
DateTime? earliest = null, latest = null;
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessionsBefore(DateTime target, ref DateTime? earliest, ref DateTime? latest)
{
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessionsAfter(DateTime target, ref DateTime? earliest, ref DateTime? latest)
{
return HasSessions(DateTime.MinValue, DateTime.MinValue, ref earliest, ref latest);
}
public override bool HasSessions(DateTime before, DateTime after, ref DateTime? earliest, ref DateTime? latest)
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
SacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase;
if (db == null) SetErrorState("database unavailable");
long countSession = 0;
// Filter to identify matching Sessions:
// FacilitySession.FacilityTemplateId = Template belonging to this facility (via sub query).
// FacilitySession.Session > Before date if specified.
// FacilitySession.Session > After date if specified.
List<String> filters = new List<String>();
DbQuery query = new DbQuery(db != null ? db.DbmsType : DbmsType.General);
query.Tables.Add(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacilityTemplate));
query.Columns.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilityTemplate_Id));
query.Filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilityTemplate_FacilityId) + "=" + Id.ToString());
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_FacilityTemplateId) + " IN (" + query.BuildQuery() + ")");
if (DateUtil.IsValid(before))
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + "<" + DbQuery.FormatDateForCondition(before));
if (DateUtil.IsValid(after))
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmFacilitySession_Session) + ">" + DbQuery.FormatDateForCondition(after));
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmFacilitySession), filters.Concat(" AND ", "(", ")")) > 0;
}
public override bool HasAdmissions(Spm.AdmissionCancelType cancelType)
{
DateTime? earliest = null, latest = null;
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissionsBefore(DateTime target, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissionsAfter(DateTime target, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
return HasAdmissions(DateTime.MinValue, DateTime.MinValue, cancelType, ref earliest, ref latest);
}
public override bool HasAdmissions(DateTime before, DateTime after, Spm.AdmissionCancelType cancelType, ref DateTime? earliest, ref DateTime? latest)
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
SacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext) as SacsDatabase;
if (db == null) SetErrorState("database unavailable");
DbQuery query = new DbQuery(db.DbmsType);
// Filter to identify matching Admissions.
SpmAdmission.Params prmAdm = new SpmAdmission.Params();
prmAdm.FacilityTemplateId = Id;
prmAdm.AdmissionFrom = after.AddDays(1);
prmAdm.AdmissionTo = before.AddDays(-1);
SpmAdmissionMgr admissionMgr = SpmGlobals.System.CreateAdmissionMgr(userContext);
List<String> filters = new List<String>(admissionMgr.GetAdmissionQueryFilter(prmAdm));
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmission), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
@@ -6,6 +6,9 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using Sarand.Core.Base;
using Sarand.Win.Dbas.Data;
using Sarand.Win.Dbas.Base;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -36,7 +39,23 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasProcedures()
{
return (GetProcedureCount(null) > 0);
}
public override long GetProcedureCount(String filter)
{
ClearErrorState();
if (SysId.IsValid(Id)) return 0;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmProcedure_OperationId) + "=" + Id.ToString());
//if (filter && strlen(filter)) filters.Add("(" + filter + ")");
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmProcedure), filters.Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
}
@@ -6,6 +6,7 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using Sarand.Core.Base;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -36,7 +37,18 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasAdmission()
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
// Filter to identify matching Admissions: Facility Id = This item's Id.
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_ProcedureId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmission), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
@@ -6,6 +6,7 @@ using Sarand.PatientMgr.Core.Bus;
using Sarand.Core.Interfaces;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.Mgr;
using Sarand.Core.Base;
namespace Sarand.PatientMgr.Win.Dbas.Bus
{
@@ -36,7 +37,18 @@ namespace Sarand.PatientMgr.Win.Dbas.Bus
// Properties.
//-------------------------------------------------------------------
// Associated data.
// A s s o c i a t e d D a t a E l e m e n t s
//-------------------------------------------------------------------
public override bool HasAdmission()
{
ClearErrorState();
if (SysId.IsValid(Id)) return false;
ISacsDatabase db = SpmGlobals.Application.GetDatabase(userContext.SessionContext);
// Filter to identify matching Admissions: Facility Id = This item's Id.
List<String> filters = new List<String>();
filters.Add(SpmDbDfn.GetColumnName(SpmDbDfn.ColumnIdx.SwmAdmission_ProcedureId) + "=" + Id.ToString());
return db.GetRowCount(SpmDbDfn.GetTableName(SpmDbDfn.TableIdx.SwmAdmission), filters.Concat(" AND ", "(", ")")) > 0;
}
//-------------------------------------------------------------------
}
@@ -210,9 +210,24 @@ namespace Sarand.PatientMgr.Win.Dbas.Mgr
//dbFacilitySession._Id = facilitySession.Id.ToInt();
dbFacilitySession._FacilityId = facilitySession.FacilityId.ToInt();
dbFacilitySession._FacilityTemplateId = facilitySession.FacilityTemplateId.ToInt();
dbFacilitySession._Session = facilitySession.SessionDate;
dbFacilitySession._Type = (short)facilitySession.TemplateType;
dbFacilitySession._Name = facilitySession.Name;
dbFacilitySession._Description = facilitySession.Description;
dbFacilitySession._SpecialityCode = facilitySession.SpecialityCode;
dbFacilitySession._SessionCode = facilitySession.SessionCode;
dbFacilitySession._StartAt = facilitySession.StartTime;
dbFacilitySession._FinishAt = facilitySession.FinishTime;
dbFacilitySession._CapacityType = (short)facilitySession.ResourceCapacityType;
dbFacilitySession._CapacityMin = facilitySession.CapacityMin;
dbFacilitySession._CapacityMax = facilitySession.CapacityMax;
dbFacilitySession._UnitsExp = (float)facilitySession.UnitsExp;
dbFacilitySession._DurationInterval = facilitySession.DurationInterval;
dbFacilitySession._DurationMin = facilitySession.DurationMin;
dbFacilitySession._DurationMax = facilitySession.DurationMax;
dbFacilitySession._ConsultantId = facilitySession.ConsultantId.ToInt();
dbFacilitySession._ConsultantCode = facilitySession.ConsultantCode;
dbFacilitySession._SpecialityCode = facilitySession.SpecialityCode;
dbFacilitySession._Notes = facilitySession.Notes;
dbFacilitySession._Status = SacsSystem.GetStatusCode(facilitySession.Status);
@@ -233,8 +248,23 @@ namespace Sarand.PatientMgr.Win.Dbas.Mgr
facilitySession.FacilityId = new SysId(dbFacilitySession._FacilityId);
facilitySession.FacilityTemplateId = new SysId(dbFacilitySession._FacilityTemplateId);
facilitySession.Name = dbFacilitySession._Name;
facilitySession.SessionDate = dbFacilitySession._Session;
facilitySession.TemplateType = (Spm.TemplateType)dbFacilitySession._Type;
facilitySession.Description = dbFacilitySession._Description;
facilitySession.SpecialityCode = dbFacilitySession._SpecialityCode;
facilitySession.SessionCode = dbFacilitySession._SessionCode;
facilitySession.StartTime = dbFacilitySession._StartAt;
facilitySession.FinishTime = dbFacilitySession._FinishAt;
facilitySession.ResourceCapacityType = (Spm.ResourceCapacityType)dbFacilitySession._CapacityType;
facilitySession.CapacityMin = dbFacilitySession._CapacityMin;
facilitySession.CapacityMax = dbFacilitySession._CapacityMax;
facilitySession.UnitsExp = (decimal)dbFacilitySession._UnitsExp;
facilitySession.DurationInterval = dbFacilitySession._DurationInterval;
facilitySession.DurationMin = dbFacilitySession._DurationMin;
facilitySession.DurationMax = dbFacilitySession._DurationMax;
facilitySession.ConsultantId = new SysId(dbFacilitySession._ConsultantId);
facilitySession.ConsultantCode = dbFacilitySession._ConsultantCode;
facilitySession.SpecialityCode = dbFacilitySession._SpecialityCode;
facilitySession.Notes = dbFacilitySession._Notes;
facilitySession.Status = SacsSystem.GetStatusForCode(dbFacilitySession._Status);
@@ -207,6 +207,14 @@ namespace Sarand.PatientMgr.Win.Dbas.Mgr
private void PopulateTo(SwmFacilityTemplate_Db dbFacilityTemplate, SpmFacilityTemplate facilityTemplate, DbUpdateInfo dbUpdateInfo)
{
dbFacilityTemplate._Id = facilityTemplate.Id.ToInt();
dbFacilityTemplate._FacilityId = facilityTemplate.FacilityId.ToInt();
dbFacilityTemplate._Category = (short)facilityTemplate.ResourceCategory;
dbFacilityTemplate._Type = (short)facilityTemplate.TemplateType;
dbFacilityTemplate._Name = facilityTemplate.Name;
dbFacilityTemplate._SortCode = facilityTemplate.SortCode;
dbFacilityTemplate._Description = facilityTemplate.Desc;
dbFacilityTemplate._SessionCode = facilityTemplate.SessionCode;
dbFacilityTemplate._Group = facilityTemplate.Group;
dbFacilityTemplate._Notes = facilityTemplate.Notes;
dbFacilityTemplate._Status = SacsSystem.GetStatusCode(facilityTemplate.Status);
@@ -223,7 +231,16 @@ namespace Sarand.PatientMgr.Win.Dbas.Mgr
}
private void PopulateFrom(SwmFacilityTemplate_Db dbFacilityTemplate, SpmFacilityTemplate facilityTemplate)
{
//facilityTemplate.Id = new SysId(dbFacilityTemplate._Id);
facilityTemplate.Id = new SysId(dbFacilityTemplate._Id);
facilityTemplate.FacilityId = new SysId(dbFacilityTemplate._FacilityId);
facilityTemplate.ResourceCategory = (Spm.ResourceCategory)dbFacilityTemplate._Category;
facilityTemplate.TemplateType = (Spm.TemplateType)dbFacilityTemplate._Type;
facilityTemplate.Name = dbFacilityTemplate._Name;
facilityTemplate.SortCode = dbFacilityTemplate._SortCode;
facilityTemplate.Desc = dbFacilityTemplate._Description;
facilityTemplate.SessionCode = dbFacilityTemplate._SessionCode;
facilityTemplate.Group = dbFacilityTemplate._Group;
facilityTemplate.Notes = dbFacilityTemplate._Notes;
facilityTemplate.Status = SacsSystem.GetStatusForCode(dbFacilityTemplate._Status);
facilityTemplate.SetCreateStamp(dbFacilityTemplate._CreateOn, new SysId(dbFacilityTemplate._CreateBy), dbFacilityTemplate._CreateHost);