SB 04-Jun-2019
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user