-
AuthorPosts
-
October 9, 2018 at 1:24 pm #36901
These scripts check the total number of sessions and compare it against the number of authorised sessions saved in some custom fields on the Patient record.
It’s still a work in progress, I’ll update as I go.
frmEditorApp.OnAfterSaveRecord();
using System.Collections.Generic;using System.Data;frmEditorBaseRec Editor = (Params[0] as frmEditorBaseRec);cApp app = (Editor.Record as cApp);//PSDevEx.cMessages.InformationBox(Convert.ToString(app.per_id));
//Convert.ToString(app.id)DataTable tbl_pat = cGlobals.DB.GetCannedTable("select pc.name as category, ps.name as status, cl.name as clinic, cpf.returnsessions, cpf.rfat, cpf.sessionauthdate from per p left join patcat pc on pc.id = p.patcat_id left join patstatus ps on ps.id = p.patstatus_id left join clinic cl on cl.id = p.clinic_id left join custom_patient_fields cpf on cpf.per_id = p.id where p.id= "+ app.per_id);string patient_category = Convert.ToString(tbl_pat.Rows[0][0]);
string patient_status = Convert.ToString(tbl_pat.Rows[0][1]);
string clinic_name = Convert.ToString(tbl_pat.Rows[0][2]);
//PSDevEx.cMessages.InformationBox(Convert.ToString(tbl_pat.Rows[0][3]));int return_sessions;
int rfat;
string session_auth_date;if(tbl_pat.Rows[0][3] == DBNull.Value){
return_sessions = Convert.ToInt32(0);
}else{
return_sessions = Convert.ToInt32(tbl_pat.Rows[0][3]);
}
if(tbl_pat.Rows[0][4] == DBNull.Value){
rfat = Convert.ToInt32(0);
}else{
rfat = Convert.ToInt32(tbl_pat.Rows[0][4]);
}
if(tbl_pat.Rows[0][5] == DBNull.Value){
session_auth_date = "";
}else{
session_auth_date = Convert.ToString(tbl_pat.Rows[0][5]);
}//PSDevEx.cMessages.InformationBox(patient_category+" "+patient_status+ " "+clinic_name);if(string.Equals(clinic_name, "MacFarlane Physiotherapy")){if(string.Equals(patient_category, "Insurance") && string.Equals(patient_status, "Active")){DataTable tbl_app = cGlobals.DB.GetCannedTable("select count(*) as c from app a left join staff s on s.id = a.staff_id left join apptype on apptype.id = a.apptype_id left join appstatus on appstatus.id = a.appstatus_id where appstatus.name='Completed' and apptype.name != 'Private Return' AND apptype.name != 'Private IA' and a.start >= '"+session_auth_date+"' and a.per_id = "+ app.per_id);int sessions_taken = Convert.ToInt32(tbl_app.Rows[0][0]);int ia = 1;int total_sessions = ia + return_sessions + rfat;int sessions_remaining = total_sessions - sessions_taken;//PSDevEx.cMessages.InformationBox("Return:"+return_sessions+" RFAT:"+rfat+ " Total:"+total_sessions+" Taken:"+sessions_taken+" Remaining:"+sessions_remaining);if (sessions_remaining == 0){
PSDevEx.cMessages.InformationBox("Patient's Last Session ("+Convert.ToString(sessions_remaining)+")");
}
if (sessions_remaining == -1){
PSDevEx.cMessages.InformationBox("No Sessions Left ("+Convert.ToString(sessions_remaining)+")");
}
if (sessions_remaining <= -2){
PSDevEx.cMessages.InformationBox("Patient has over ran their authorised treatment ("+Convert.ToString(sessions_remaining)+")");
}}}frmEditorPatient.OnAfterLoadRecord()
using System.Collections.Generic;using System.Data;frmEditorBaseRec Editor = (Params[0] as frmEditorBaseRec);cPer per = (Editor.Record as cPer);cDBBaseRec custom = (Editor.Records[1]);DataTable tbl_pat = cGlobals.DB.GetCannedTable("select pc.name as category, ps.name as status, cl.name as clinic from per p left join patcat pc on pc.id = p.patcat_id left join patstatus ps on ps.id = p.patstatus_id left join clinic cl on cl.id = p.clinic_id where p.id= "+ per.id);string patient_category = Convert.ToString(tbl_pat.Rows[0][0]);
string patient_status = Convert.ToString(tbl_pat.Rows[0][1]);
string clinic_name = Convert.ToString(tbl_pat.Rows[0][2]);//PSDevEx.cMessages.InformationBox(patient_category+" "+patient_status+ " "+clinic_name);if(string.Equals(clinic_name, "MacFarlane Physiotherapy")){if(string.Equals(patient_category, "Insurance") && string.Equals(patient_status, "Active")){cDBBaseRec custom_patient_fields = Editor.CustomRec;string session_auth_date = Convert.ToString(custom_patient_fields.Row["sessionauthdate"]);if(string.Equals(session_auth_date,"")){
session_auth_date = "";
}//DateTime dt_session_auth_date = DateTime.Parse(session_auth_date);//PSDevEx.cMessages.InformationBox(session_auth_date);DataTable tbl_app = cGlobals.DB.GetCannedTable("select count(*) as c from app a left join staff s on s.id = a.staff_id left join apptype on apptype.id = a.apptype_id left join appstatus on appstatus.id = a.appstatus_id where appstatus.name='Completed' and apptype.name != 'Private Return' AND apptype.name != 'Private IA' and a.start >= '"+session_auth_date+"' and a.per_id = "+ per.id);int sessions_taken = Convert.ToInt32(tbl_app.Rows[0][0]);int ia = 1;int return_sessions = PSLib.cDBFuncs.ToInt(custom_patient_fields.Row["returnsessions"]);int rfat = PSLib.cDBFuncs.ToInt(custom_patient_fields.Row["rfat"]);int total_sessions = ia + return_sessions + rfat;int sessions_remaining = total_sessions - sessions_taken;//PSDevEx.cMessages.InformationBox("Return:"+return_sessions+" RFAT:"+rfat+ " Total:"+total_sessions+" Taken:"+sessions_taken+" Remaining:"+sessions_remaining);string sql = "update custom_patient_fields set sessionsremaining=" + Convert.ToInt32(sessions_remaining) +" where id=" + Convert.ToString(custom_patient_fields.id);PSDevEx.cMessages.InformationBox("Patient has "+sessions_remaining+" sessions remaining.");cGlobals.DB.ExecSQL(sql);}}frmEditorPatient.OnAfterSaveRecord();
using System.Collections.Generic;using System.Data;frmEditorBaseRec Editor = (Params[0] as frmEditorBaseRec);cPer per = (Editor.Record as cPer);cDBBaseRec custom = (Editor.Records[1]);DataTable tbl_pat = cGlobals.DB.GetCannedTable("select pc.name as category, ps.name as status, cl.name as clinic from per p left join patcat pc on pc.id = p.patcat_id left join patstatus ps on ps.id = p.patstatus_id left join clinic cl on cl.id = p.clinic_id where p.id= "+ per.id);string patient_category = Convert.ToString(tbl_pat.Rows[0][0]);
string patient_status = Convert.ToString(tbl_pat.Rows[0][1]);
string clinic_name = Convert.ToString(tbl_pat.Rows[0][2]);//PSDevEx.cMessages.InformationBox(patient_category+" "+patient_status+ " "+clinic_name);if(string.Equals(clinic_name, "MacFarlane Physiotherapy")){if(string.Equals(patient_category, "Insurance") && string.Equals(patient_status, "Active")){cDBBaseRec custom_patient_fields = Editor.CustomRec;string session_auth_date = Convert.ToString(custom_patient_fields.Row["sessionauthdate"]);DataTable tbl_app = cGlobals.DB.GetCannedTable("select count(*) as c from app a left join staff s on s.id = a.staff_id left join apptype on apptype.id = a.apptype_id left join appstatus on appstatus.id = a.appstatus_id where appstatus.name='Completed' and apptype.name != 'Private Return' AND apptype.name != 'Private IA' and a.start > '"+session_auth_date+"' and a.per_id = "+ per.id);int sessions_taken = Convert.ToInt32(tbl_app.Rows[0][0]);int ia = 1;int return_sessions = PSLib.cDBFuncs.ToInt(custom_patient_fields.Row["returnsessions"]);int rfat = PSLib.cDBFuncs.ToInt(custom_patient_fields.Row["rfat"]);int total_sessions = ia + return_sessions + rfat;int sessions_remaining = total_sessions - sessions_taken;//PSDevEx.cMessages.InformationBox("Return:"+return_sessions+" RFAT:"+rfat+ " Total:"+total_sessions+" Taken:"+sessions_taken+" Remaining:"+sessions_remaining);string sql = "update custom_patient_fields set sessionsremaining=" + Convert.ToInt32(sessions_remaining) +" where id=" + Convert.ToString(custom_patient_fields.id);//PSDevEx.cMessages.InformationBox(sql);cGlobals.DB.ExecSQL(sql);PSDevEx.cMessages.InformationBox("Patient has "+Convert.ToString(sessions_remaining)+" sessions remaining.");if (sessions_remaining == 0){
PSDevEx.cMessages.InformationBox("Patient's Last Session ("+Convert.ToString(sessions_remaining)+")");
}
if (sessions_remaining == -1){
PSDevEx.cMessages.InformationBox("No Sessions Left ("+Convert.ToString(sessions_remaining)+")");
}
if (sessions_remaining <= -2){
PSDevEx.cMessages.InformationBox("Patient has over ran their authorised treatment ("+Convert.ToString(sessions_remaining)+")");
}if(Convert.ToInt32(sessions_remaining) <= 0){
//PSDevEx.cMessages.InformationBox("Patient has "+Convert.ToString(sessions_remaining)+" sessions remaining.");
}}} -
AuthorPosts
- You must be logged in to reply to this topic.
