Set Appointment complete vs set procedure complete

For users or potential users.
Post Reply
Mifa
Posts: 141
Joined: Wed Nov 21, 2007 6:52 pm
Location: Saint-Bruno, QC, Canada
Contact:

Set Appointment complete vs set procedure complete

Post by Mifa » Tue May 10, 2016 2:25 pm

We use 14.3 in production. OD is configured so that we complete appointments, not individual procedures. However, from time to time, a procedure is mistakenly set complete using the drop-down list in the procedure edit window. That does not trigger any warning at all, and we end up with completed procedures not attached to any appointment. Moreover, since completing a procedure from the procedit window does not change its date, it is very often "completed" in the past. Has this behaviour been addressed in more recent releases? If not would it be possible to, at the very least, get a warning (the same warning we get when clicking "set complete") when someone changes the status to complete from the drop-down list? Personally, I would even prefer not to see the status "complete" in list or se it greyed out and have the set complete button next to the list deactivated.

Thanks

JoeMontano
Posts: 64
Joined: Thu Aug 20, 2015 11:08 am

Re: Set Appointment complete vs set procedure complete

Post by JoeMontano » Wed May 11, 2016 5:44 am

Hello Mifa!

One thing you could do is edit the "Create Completed Procedures (or set complete)" permission in the Security window.

Here is how you do this if you are unfamiliar;
1. Make sure you logged in as an admin or someone who can edit permissions.
2. Setup -> Security
3. Select a user, you'll notice that the title "Permissions for group: GROUP NAME" will be above the permissions check boxs. This indicates that we are editing permissions for all users in that group. Additionally all users in that group will become red in the list.
4. For each group you do not want to allow setting procedures complete simply go to the Permissions check boxes and locate the "Create Completed Procedures (or set complete)" under "Chart Module" and uncheck it.

Let me know if this doesn't work for you or if there are any other issues!
Joe Montaño
Software Engineer
Open Dental Software
Joe@OpenDental.com

Mifa
Posts: 141
Joined: Wed Nov 21, 2007 6:52 pm
Location: Saint-Bruno, QC, Canada
Contact:

Re: Set Appointment complete vs set procedure complete

Post by Mifa » Wed May 11, 2016 6:45 am

Hi Joe,

Thanks for your reply. I tried it but it does not work, or should I say it works too well as I cannot complete appointments anymore! What I need is just to prevent the status change to complete in the procedit window; I want the user to still be able to manually complete appointments, which in turn should complete the attached procedures.

Thanks

Mifa

User avatar
Jorgebon
Posts: 502
Joined: Mon Jun 18, 2007 2:25 pm
Location: Mayaguez, PR
Contact:

Re: Set Appointment complete vs set procedure complete

Post by Jorgebon » Wed May 11, 2016 7:35 am

Go to Setup / Manage /Manage preferences. Select the Chart tab. un-check "Allow setting procedures complete".
Jorge Bonilla DMD
Open Dental user since May 2005

Mifa
Posts: 141
Joined: Wed Nov 21, 2007 6:52 pm
Location: Saint-Bruno, QC, Canada
Contact:

Re: Set Appointment complete vs set procedure complete

Post by Mifa » Thu May 12, 2016 5:35 am

Thanks Jorge, but that is not it. This option is and has always been unchecked, yet, it is still possible to complete an individual procedure. See original post.

Here is how to fix it:

in FormProcEdit,
in comboProcStatus_SelectionChangeCommitted, replace

Code: Select all

	if(comboProcStatus.SelectedIndex==1){//C
                // MF replaced below if(!Security.IsAuthorized(Permissions.ProcComplCreate))
		if(!Security.IsAuthorized(Permissions.ProcComplCreate) || !PrefC.GetBool(PrefName.AllowSettingProcsComplete)) {
also, if it has not been corrected in more recent releases, there is a bug, an inversion between EO (index should be 3) and EC (index should be 2) when putting back previous status

Code: Select all

					//set it back to whatever it was before
					if(ProcCur.ProcStatus==ProcStat.TP) {
						comboProcStatus.SelectedIndex=0;
					}
					else if(PrefC.GetBool(PrefName.EasyHideClinical)) {
						comboProcStatus.SelectedIndex=-1;//original status must not be visible
					}
					else {
						if(ProcCur.ProcStatus==ProcStat.EO) {
							comboProcStatus.SelectedIndex=2;    // Should be 3
						}
						if(ProcCur.ProcStatus==ProcStat.EC) {
							comboProcStatus.SelectedIndex=3;   // Should be 2
						}
						if(ProcCur.ProcStatus==ProcStat.R) {
							comboProcStatus.SelectedIndex=4;
						}
						if(ProcCur.ProcStatus==ProcStat.Cn) {
							comboProcStatus.SelectedIndex=5;
						}
					}
					return;
				}

in butSetComplete_Click add the following code at the beginning

Code: Select all

	private void butSetComplete_Click(object sender, System.EventArgs e) {
	//can't get to here if attached to a claim, even if use the Edit Anyway button.
        // MF start
		if(!PrefC.GetBool(PrefName.AllowSettingProcsComplete)){
			MsgBox.Show(this,"Only single appointments may be set complete.  If you want to be able to set procedures complete, you must turn on that option in Setup | Chart | Chart Preferences.");
			return;
            }
            // MF end

User avatar
jsalmon
Posts: 1551
Joined: Tue Nov 30, 2010 12:33 pm
Contact:

Re: Set Appointment complete vs set procedure complete

Post by jsalmon » Thu May 12, 2016 4:44 pm

Mifa, I agree with you on all accounts and like all the code snippets you posted. I'll start working on getting them into the program as bug fixes.
Thanks for the help!
The best thing about a boolean is even if you are wrong, you are only off by a bit.

Jason Salmon
Open Dental Software
http://www.opendental.com

Mifa
Posts: 141
Joined: Wed Nov 21, 2007 6:52 pm
Location: Saint-Bruno, QC, Canada
Contact:

Re: Set Appointment complete vs set procedure complete

Post by Mifa » Fri May 13, 2016 6:37 am

Thanks Jason!

Which version(s) are you going to implement it in?

Mifa

User avatar
jsalmon
Posts: 1551
Joined: Tue Nov 30, 2010 12:33 pm
Contact:

Re: Set Appointment complete vs set procedure complete

Post by jsalmon » Fri May 13, 2016 9:50 am

There will be two separate bugs: http://opendentalsoft.com:1942/ODBugTra ... sions.aspx
The inversion between EO and EC will go back to v15.4.

The additional implementation of the pref checks will probably go back to v16.1 (I'm going to be adding checks to the chart module as well) and since people aren't quite use to it I'd prefer they have to do a major update to get such a change so I'm only going to take it back to v16.1. v16.2 will be coming out soon which is going to push v16.1 to our "stable" version.
The best thing about a boolean is even if you are wrong, you are only off by a bit.

Jason Salmon
Open Dental Software
http://www.opendental.com

User avatar
jsalmon
Posts: 1551
Joined: Tue Nov 30, 2010 12:33 pm
Contact:

Re: Set Appointment complete vs set procedure complete

Post by jsalmon » Fri May 13, 2016 1:23 pm

The bug "Procedure Edit window, the procedure status was getting set to an incorrect status sometimes when the user didn't have the ProcComplCreate permission and tried to set the procedure complete via the status combo box" is fixed and will be released with v15.4.52 and v16.1.22.

The bug "The Chart Module preference "Allow setting procedures complete..." was not stopping users from setting individual procedures complete from within the procedure edit window" is fixed and will be released with v16.1.22.
The best thing about a boolean is even if you are wrong, you are only off by a bit.

Jason Salmon
Open Dental Software
http://www.opendental.com

Mifa
Posts: 141
Joined: Wed Nov 21, 2007 6:52 pm
Location: Saint-Bruno, QC, Canada
Contact:

Re: Set Appointment complete vs set procedure complete

Post by Mifa » Mon Aug 29, 2016 8:09 am

It turns out that after all these changes, my staff is very creative and is still finding ways to give me completed procedures without a completed appointment... :twisted: :wink: I have found another very simple scenario that leads to this:
  • complete an appointment
  • open the completed appointment
  • deselect a completed procedure from the list
  • click OK
Done! A new orphaned completed procedure has just been created.

The fix I have implemented in 14.3 for this is:

Code: Select all

		private void gridProc_CellClick(object sender,ODGridClickEventArgs e) {
...
// MF start
            Procedure proc = Procedures.GetOneProc(PIn.Long(DS.Tables["Procedure"].Rows[e.Row]["ProcNum"].ToString()), false);
            if (isSelected && proc.ProcStatus == ProcStat.C)
            {
                MessageBox.Show(Lan.g(this, "Completed procedure - cannot detach from appointment; change procedure status first"));
                return;
            }
// MF end
			bool isPlanned=AptCur.AptStatus==ApptStatus.Planned;
			List<long> procNums=new List<long>();
It may not work in the regular version of OD, as I have also modified how single and double-click are handled in the appointment's procedure grid. I found it was ambiguous at times, so I have reassigned the code for double-click (gridProc_CellDoubleClick) to single click by adding a variable whose value is set by 2 radio buttons, allowing the user to switch between appointment edit (i.e. add or remove procedure from the appointment - the original grid_ProcCellClick code) and procedure edit (modify a procedure in the list by opening the procedit window - the original grid-Proc_CellDoubleClick). Therefore, in procedure edit mode, I do not execute the code I'm proposing above, but simply redirect to gridProc_CellDoubleClick before reaching it.

I hope this makes sense!

Mifa

Post Reply