Plugin Deployment process
Plugin Deployment process
Hi there,
- What’s the deployment process of plugin in official open dental release?
- How would we send test plugin release to QA in order to verify plugin first?
- What’s the deployment process of plugin in official open dental release?
- How would we send test plugin release to QA in order to verify plugin first?
Re: Plugin Deployment process
Plug-in hooks are requested here, in the developers forum.
Once I have looked them over to make sure they conform to our patterns, I place them into our latest beta version and they will be available for the next release.
As for plug-ins themselves, we do not add them to the program or our release process. It is up to the plug-in designer to deploy the plug-in to their intended audience.
Testing a plug-in should be as simple as building your own version of OpenDental with the hooks added to the necessary parts of the program. Be sure to check if a hook has already been added.
Once I have looked them over to make sure they conform to our patterns, I place them into our latest beta version and they will be available for the next release.
As for plug-ins themselves, we do not add them to the program or our release process. It is up to the plug-in designer to deploy the plug-in to their intended audience.
Testing a plug-in should be as simple as building your own version of OpenDental with the hooks added to the necessary parts of the program. Be sure to check if a hook has already been added.
Re: Plugin Deployment process
See http://opendental.com/manual/plugins.html and http://opendental.com/manual/patternplugins.html for tips and patterns.
Re: Plugin Deployment process
Can you please add following hooks in Open dental's next release:
https://www.evernote.com/shard/s735/sh/ ... e1829975b6
Also please confirm when is the next release due ?
https://www.evernote.com/shard/s735/sh/ ... e1829975b6
Also please confirm when is the next release due ?
Re: Plugin Deployment process
We are requesting this on behalf of Dr. Oppenheimer. In case you need further information please do let us know.
Re: Plugin Deployment process
We are currently reviewing the plugin hooks and are working on adding them to the program. We will post back here with any questions if they arise otherwise we will post a verification reply letting you know the final state of each hook that was added.
We often have to rename hook requests to follow our hook patterns closer so some might change and they might not. We'll keep you posted.
We often have to rename hook requests to follow our hook patterns closer so some might change and they might not. We'll keep you posted.
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
Jason Salmon
Open Dental Software
http://www.opendental.com
Re: Plugin Deployment process
This is a lengthy list and I will try to be as thorough as possible when addressing each of these hooks.
First, I will not that line numbers are generally a bad way to reference locations you want code inserted since our code is constantly changing.
It is good that you added the line description you want the hook above, but in some cases more context would help me to identify where you want the hooks.
Second, a large amount of these hooks are named incorrectly. This link should show what our current naming patterns for hooks are.
http://opendental.com/manual/patternplugins.html
Lastly, download our plug-in example solution. It has a lot of good examples of how to use our plug-in system. The main one you will want to focus on is getting controls from the sender object by casting it to the relevant form you retrieved it from.
http://opendental.com/manual/plugins.html
Now, onto the hooks.
Hook 1
This hook is currently named incorrectly for the location. You also do not need to pass in the panel. All controls should be available through the sender object that is passed along with the hook.
Hook 2
This hook is also incorrectly named. Same as above, it does not need the panel object. Passing in the whole object makes it useful to other plug-in creators.
Hook 3
This hook is unnecessary. The hook you referenced above it will work fine.
Hook 4
This hook is named incorrectly and also needs no parameters.
Hook 5
This was very hard to decipher where you wanted this hook since your document said you want it in load, but you hook name suggested this method (ListBox_SelectedIndexChanged).
I have corrected the name and also removed the unnecessary parameter below.
Hook 6
This hook is unnecessary. Right above it is a hook that passes in the PatCur object.
Hook 7 and 7.5?
I see where you are going with this hook, but our pattern is to make hooks as separate as possible.
Absolute bools do not need to be passed into a hook and aptCur actually didn't exist in one of your locations.
Location 1
Location 2
Hook 8
This has the same problems as Hook 7/7.5
Hook 9
There is currently no code in the FormApptLists_Load method so I assume you just want it in the method.
Hook 10
This hook is fine and just needs renamed.
Hook 11
This hook is unnecessary since the hook you need exists right above it
First, I will not that line numbers are generally a bad way to reference locations you want code inserted since our code is constantly changing.
It is good that you added the line description you want the hook above, but in some cases more context would help me to identify where you want the hooks.
Second, a large amount of these hooks are named incorrectly. This link should show what our current naming patterns for hooks are.
http://opendental.com/manual/patternplugins.html
Lastly, download our plug-in example solution. It has a lot of good examples of how to use our plug-in system. The main one you will want to focus on is getting controls from the sender object by casting it to the relevant form you retrieved it from.
http://opendental.com/manual/plugins.html
Now, onto the hooks.
Hook 1
Code: Select all
object[] parameters = { panel1, AptCur, pat };
Plugins.HookAddCode(this, "FormApptEdit.LoadAppointmentCentricControl", parameters);
Code: Select all
Plugins.HookAddCode(this, "FormApptEdit.Load_end3",AptCur, pat);
Code: Select all
object[] parameters = {panel1, AptCur.AptNum};
Plugins.HookAddCode(this, "FormApptEdit.SaveApplicationCentricInfo", parameters);
Code: Select all
Plugins.HookAddCode(this, "FormApptEdit.butOK_Click_end", AptCur);
Code: Select all
object[] parameters = { Controls, PatCur, textWirelessPhone.Text, textEmail, listTextOk};
Plugins.HookAddCode(this, "FormPatientEdit.LoadPatientCentricControl", parameters);
Code: Select all
Plugins.HookAddCode(this,"FormPatientEdit.Load_end",PatCur);
Code: Select all
object[] parameters = { textPhone.Text };
Plugins.HookAddCode(sender, "FormPatientEdit.WirelessPhoneNumber_TextChanged", parameters);
Code: Select all
Plugins.HookAddCode(sender, "FormPatientEdit.textAnyPhoneNumber_TextChanged_end");
Hook 5
Code: Select all
object[] parameters = {listTextOk };
Plugins.HookAddCode(this, "FormPatientEdit.TextOk_SelectedIndexChanged", parameters);
I have corrected the name and also removed the unnecessary parameter below.
Code: Select all
Plugins.HookAddCode(this, "FormPatientEdit.ListBox_SelectedIndexChanged_end");
Code: Select all
object[] parameter= { PatCur.PatNum };
Plugins.HookAddCode(this, "FormPatientEdit.SavePatientCentricInfo", parameter);
Code: Select all
Plugins.HookAddCode(this,"FormPatientEdit.butOK_Click_end",PatCur);
Code: Select all
object[] parameters = { aptCur, true};
Plugins.HookAddCode(this, "ContrAppt.AppointmentCancellationProcess", parameters);
Absolute bools do not need to be passed into a hook and aptCur actually didn't exist in one of your locations.
Location 1
Code: Select all
Plugins.HookAddCode(this, "ContrAppt.ContrApptSheet2_MouseUp_validation_end", apt)
Code: Select all
Plugins.HookAddCode(this, "ContrAppt.pinBoard_MouseUp_validation_end", aptCur)
Code: Select all
object[] parameters = {apt, false};
Plugins.HookAddCode(this, "ContrAppt.AppointmentCancellationProcess", parameters);
Code: Select all
Plugins.HookAddCode(this, "ContrAppt.OnBreak_Click_validation_end", apt)
Hook 9
Code: Select all
Plugins.HookAddCode(this, "FormApptLists.EmptySlotButton");
Code: Select all
Plugins.HookAddCode(this, "FormApptLists.Load_start");
Hook 10
Code: Select all
Plugins.HookAddCode(this, "FormOpenDental.RescheduleAppointments");
Code: Select all
Plugins.HookAddCode(this, "FormOpenDental.RetrieveForAddress_after_received");
Code: Select all
Plugins.HookAddCode(this,"FormOpenDental.AddMenuBarItem");
Code: Select all
Plugins.HookAddCode(this,"FormOpenDental.Load_end");
Last edited by allends on Tue Jan 24, 2017 9:29 am, edited 1 time in total.
Re: Plugin Deployment process
Thanks for sharing the hooks binding details.
We will update the implementation as per above modified hooks pattern.
We have only updated hook # 5(Parameter added) from above i.e.
Plugins.HookAddCode(this, "FormPatientEdit.ListBox_SelectedIndexChanged_end", PatCur);
Please review the below updated document and do let us know if something missing
https://www.evernote.com/shard/s735/sh/ ... e1829975b6
We are assuming that above hooks will be available in Open dental’s next beta version release.
Can you please confirm the release due date?
We will update the implementation as per above modified hooks pattern.
We have only updated hook # 5(Parameter added) from above i.e.
Plugins.HookAddCode(this, "FormPatientEdit.ListBox_SelectedIndexChanged_end", PatCur);
Please review the below updated document and do let us know if something missing
https://www.evernote.com/shard/s735/sh/ ... e1829975b6
We are assuming that above hooks will be available in Open dental’s next beta version release.
Can you please confirm the release due date?
Re: Plugin Deployment process
These hooks have been committed to 16.4.19
This hook was committed for Hook 1. If this is not what you need then let me know.
Code: Select all
Plugins.HookAddCode(this,"FormApptEdit.Load_end3",AptCur,pat);
Re: Plugin Deployment process
Hi guys,
Thanks for the update, we downloaded the beta version and it's working perfectly. When are we planning to launch changes (i.e. v16.4.19) to production (as a stable version)?
Thanks for the update, we downloaded the beta version and it's working perfectly. When are we planning to launch changes (i.e. v16.4.19) to production (as a stable version)?
Re: Plugin Deployment process
Our beta is moved to stable when the next beta is released. We generally strive to have a fairly rapid release schedule, but no time has yet been set for our next release date.
That said we try to not go longer than three months between versions.
That said we try to not go longer than three months between versions.
Re: Plugin Deployment process
By saying "Our beta is moved to stable", do you mean v16.4.19 hooks (we submitted) are already in stable version?
Re: Plugin Deployment process
No. Currently 16.3.X is our stable version. That changes with each major release cycle (Major releases being 16.4.1 or 17.1.1).
16.4.X will be moved to be our stable version when we release 17.1.1 as our beta version.
16.4.X will be moved to be our stable version when we release 17.1.1 as our beta version.