How we speed up Dentrix clients on our network

For our various office networks with Dentrix clients and Dentrix server (we are running standard Dentrix, not Enterprise edition and not Ascend), here are a list of things that are part of our provisioning checklist that we do to speed them up:

Disable LLMNR

LLMNR (Link-Local Multicast Name Resolution) is a protocol based on the Domain Name System packet format that allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link. It allows host name resolution without the requirement of a DNS server. While it’s in theory useful, in practice we have not needed on our networks for at least a decade now. And in certain scenarios disabling it both speeds up our network and slightly improves security in the case of an incident. Here is how to disable LLMNR, and some research that we’ve discovered.

Reduce Windows Defender’s scope

How many times has your computer come to a crawl, and when you open Task Manager it’s because the “Antimalware Service Executable” is running at 100%? This is Windows Defender, and it’s unstoppable. Literally, you cannot stop it. It gets to decide when to run, and often it feels like the best time is right in the middle of the day, when patients are in the chair.

To help reduce its impact, we’ve started to exclude a few applications from it, like so:

Control Panel > System and Security > Security and Maintenance > Virus Protection
Virus and Threat Protection Settings > Manage Settings
Add or remove exclusions
Add Process > MsMpEng.exe
Add Folder > C:\Program Files (x86)\Dentrix

Add any others that are getting caught in its net that run all the time (e.g. your imaging software).

Disable fetching of start menu web content

The Start Menu takes a long time to open because it fetches web content before popping up. To disable web search in the Start Menu, open PowerShell as an administrator and run this:

Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Value 0 -Type DWord

Then reboot.

Source for this one.

Disable Fast Startup

This is a new one for us (at the time of this writing). A vendor was training the team on a new piece of software. The workstation they picked was running extremely slowly. She said, “have you restarted it and not just shut it down? I’ve been told that you have to restart it”. Then she proceeded to show that the machine claimed it had not been restarted in 2 weeks (when it had been shut down almost every night)!

After researching this, it turns out that, in an attempt to speed up Windows start, on some machines Windows will save the OS state on shut down, then reload that same state (memory leaks and all) on startup. This is called Fast Startup, and it’s been a part of Windows since Windows 8.

We’ve started to disable Fast Startup entirely. It’s a Control Panel > Power setting, and you can find screenshots about how to do so online. I’m not sure yet what kind of impact this will have, especially on those perniciously slow machines, but hopefully it will be a positive one!

I’ll continue to add and revise this as new tricks come up. If you have other ones, please feel free to comment.

How to install Dentrix 24.1 onto a remote workstation

For years now, whenever we swapped out a desktop and needed Dentrix reinstalled, our staff would call Dentrix Support to have them do the installation manually. This is because, sometime 5-10 years ago, when you double-clicked on “setup.exe” it just wouldn’t work. It often complained about missing components, .NET runtime versions, or similar. I think Crystal Reports was a frequent culprit. This was a far cry from when we bought the practice >15 years ago, when I could install Dentrix without much issue by putting in the CD(!) into the tray and running setup.

Today, I needed to get Dentrix set up on a remote computer to test some things. But I had no interest in calling Support to make this happen. I was determined, determined I say, to get this done myself.

Instructions

Note that these instructions were written for Dentrix 24 with Windows 10 Pro (10.0.19045 build 19405). I’m certain that they will break in the future. All of the steps below need to take place on the workstation.

  1. Navigate to \\[server]\DTXCommon\Installs\
  2. Copy the 24.1.1.17965 folder (or whatever is the latest one you see) to the workstation. I also copied the sibling files over to the Workstation as well, for good measure; not sure if that’s required or not. So, if this is what my server contained in \\[server]\DTXCommon\Installs\ :
    How Dentrix Server's Installs folder looks
    then this is what my workstation contained in my working folder:
    How the workstation's Installs folder looks, with only a subset of the Dentrix folder copied
    WARNING: even with the reduced number of files copied, this still required 3.2GB on disk.
  3. Try to run 24.1.1.17965\setup.exe . It will probably fail with an error about Crystal Reports.
  4. So, try to run Crystal Reports installation first. Find it in 24.1.1.17965\ISSetupPrerequisites\{CrystalReports-13-0-32bit-Prereq}\CRRuntime_32bit_13_0.msi . But, for me, this failed with Error 1904. Module C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crtslv.dll failed to register. HRESULT -2147010895. Contact your support personnel. If it works for you and you don’t get this error, great; you can probably go back to step 3 and run the setup.exe for Dentrix again.
  5. After digging around the Internet, I found this answer on StackOverflow, which gave me the hint I needed. We have to reinstall the Microsoft Visual C++ 2015 Redistributable package. I found that on Microsoft’s website. Note: be sure to download the 32-bit version, because that’s what Crystal Reports relies on here apparently.
  6. When you try to install the Visual C++ 2015 Redistributable package, that may fail with an error if you already have one installed. I had to go to Settings > Control Panel > Add/Remove Programs, and uninstall Microsoft Visual C++ 2017 Redistributable (x64) 14.12.25810 first. After I did that, I rebooted, then worked backwards from here:
    • Installed Microsoft Visual C++ 2015 Redistributable Package (32-bit version), per line 5 above
    • Installed Crystal Reports via the CRRuntime_32bit_13_0.msi file, per line 4 above
    • Installed Dentrix via the setup.exe, per line 3 above

Other notes

Using Dentrix Workstation over a TailScale VPN is significantly slower than using Remote Desktop to the server or another workstation. There must be a ton of synchronous round trip calls made within Dentrix, with the (not invalid, at the time it was created!) assumption that your server and your workstations will all be connected to a high-speed intranet network.

Upgrading from Dentrix 11 to Dentrix G4

Ah, the fun never stops with Dentrix.
As a part of the massive buildout of Forever Dental, we decided to upgrade from our aging Dentrix 11 to Dentrix G4 in order to better facilitate more than doubling the number of workstations that access the server.

A beautiful Saturday afternoon rolls around (one we’ve committed indoors to this upgrade).  We met the system requirements, walked through the Ten Installation Tips, and are ready to go.  We put the DVD in, cross our fingers, and press “Install Now”.

After clicking ‘Next’ a few times, we are greeted with this.

It reads “Database Conflict. The version of the database does not match the version of the DENTRIX program files”.

Since we had scheduled this upgrade on a Saturday afternoon, Dentrix Support was closed.

We were likely the first callers when Dentrix Support opened Monday morning.  After walking through the situation, our tech support rep told us that the issue is due to a couple of missing *.idx or *.dat files in the Dentrix/data directory.  We walked through every file that was supposed to be there (approximately 30), and, behold, it turns out that 3 were missing (LCM_Log.dat, LCM_Case.dat, LCM_Def.dat).  We would have to use Dentrix 11’s Selective Setup to install _only_ those three files.  The good news was that these files related to Lab Case Manager, which was never used in the practice.  The bad news was that this might destroy the entire database.  After completing the Selective Setup, we were to run Rebuild to rebuild the entire database, the continue with the upgrade.

We started the entire process again at 6PM, after the last patients left and after we backed up the system.  Selective Setup completed, Rebuild completed, and the data appeared sound.  We then ran G4 installation, and after a tense 20 minutes, it completed successfully.

Or so we thought.  Immediately after completion, I launched Appointment Book on the server.  Crash.  I launched Office Manager.  Success.  I clicked on Appointment Book from Office Manager.  Crash.  I wish I took a screenshot of that error that we got, because it was a scary looking one.

At this point the time read 6:58PM (Central time).  Dentrix Support closes at 7PM.  We called them immediately and thankfully they were open.  We spoke to another tech, and learned that Windows Server 2008 R2 does not by default install .NET Framework 3.5.1, and we had to do this manually.

I ran Server Manager and clicked on Features, then Add Feature.

I clicked on the + next to .NET Framework 3.5.1 and clicked the checkbox next to .NET Framework 3.5.1.  I specifically did NOT check WCF Activation (as indicated by the Dentrix Support tech).

I clicked Next and finished up the installation.
After completing this, Appointment Book opened successfully.

UPDATE:
Several days after the upgrade, everything seems to be running smoothly.

 

Backing up Dentrix Image 4.5’s database

This is a followup to the earlier post, Migrating Dentrix Image 4.5’s database to another computer. Please see that post to understand how I got here in the first place.

Now that we have successfully migrated, we want to begin the process of performing nightly backups of this data. As expected, Dentrix does not provide consistent, reliable documentation of how to do this, particularly for older platforms such as this. My goal here is to illustrate what I have done and solicit comments from others out there to understand their approach.
First, our setup.
  • Main Dentrix 11 and all DXImage files are running on Windows 2008 Server
  • DXImage database is running on Windows XP
  • We have a 2-disk RAID NAS in our network
  • We also subscribe to an offsite backup service, CrashPlan
We currently back up Dentrix Image’s database in two ways.
  1. With Dentrix’s internal backup. If you dig deep on the server where your image database is housed, you will see a folder called ViperDataBackup. In our case, this is in \Dentrix\DXImage\MSDE\MSSQL$VIPER\Backup\ViperData . This folder grows with two new files each day:
    ViperData_db_[date].BAK
    ViperData_tlog_[date].TRN
    These files seem to represent nightly backups. We use Cobian Backup on the server to copy all files from this directory to the NAS each night. The main issue, as illustrated below, is that I have no idea how to restore from these files currently.
  2. With our own scripts. DXImage database is running on Microsoft SQL Server Embedded, in a database called VIPER. We created a script that essentially backs up the VIPER database each night to a file, then copies that file to the NAS. The two main lines of this script are:
    osql -S SERVER2\VIPER -E -i SqlFullBackup.sql
    copy /Y /Z /V *.* X:\backup\
    where SqlFullBackup.sql is as follows:
    BACKUP LOG MASTER WITH TRUNCATE_ONLY
    BACKUP LOG MODEL WITH TRUNCATE_ONLY
    BACKUP LOG MSDB WITH TRUNCATE_ONLY
    BACKUP LOG VIPER WITH TRUNCATE_ONLY
    BACKUP DATABASE MASTER TO DISK =’C:\backup\MASTER-nightly-backup.bak’
    BACKUP DATABASE MODEL TO DISK =’C:\backup\MODEL-nightly-backup.bak’
    BACKUP DATABASE MSDB TO DISK =’C:\backup\MSDB-nightly-backup.bak’
    BACKUP DATABASE VIPER TO DISK =’C:\backup\VIPER-nightly-backup.bak’
    We then backup the entire contents of this c:\backup directory to the NAS.
We have not had the opportunity to test the restore procedure for this backup method. However, I feel fairly confident that, by backing up in two methods, we will be covered should disaster strike our poor little DXImage database. I particularly trust the second method, as it does not rely on having to contact Dentrix Image Support at all.

Leaving a dentist near you…

UPDATE 4/22/2010: And like that, the ridiculous program requirements that Align Technologies put into place has been removed. Fortunately I did not follow through on that short – the stock is up almost double since this program was announced.

ORIGINAL 7/9/2009:

.. Invisalign.

In what could be the dumbest business decision I’ve heard of in a long time, Align Technologies (NASDAQ: ALGN), makers of Invisalign® has decreed that all dentists offering Invisalign must start 10 cases per year and complete 10 CE credits related to Invisalign per year (copy of letter sent to one dentist here).

What this means for the consumer:

  • The consumer experience will undoubtedly improve. Those who truly want Invisalign will now have a limited set of very experienced dentists to choose from.
  • However, competitive pressure may change that – see notes on ClearCorrect below.

What this means for the dentist:

  • The national average for a case is $5,000/year(source). Convincing 10 patients per year to fork over $5,000/year for a truly elective procedure is very, very hard in the vast majority of markets out there. Only the ones that market heavily and whose business consists of a very high percentage of cosmetic dentistry will make this quota.
  • Every dentist who became certified in the past 5+ years was required to pay $1K-2K to become certified. This, combined with a mandatory reduction in services, is going to lead to a large number of very unhappy dentists at this decision (I know a few myself). And, you can be sure that unhappy dentists across the country will do whatever is in their power to keep a patient in the door. A few choice quotes from the online dental community DentalTown:
    • “Absolute idiots IMHO !!! I wonder if they will be refunding doctors certification costs as they decided to change the rules in the middle of the game?”
    • “While there are many doctors that may not submit many cases to Invisalign, I suspect these same doctors talk alot about invisalign and are a terrific advertising/referral source for high volume invisalign offices or orthodontists. I’m sure many of us won’t have very many nice things to say about Align right now.”

What this means for Align Technologies:

  • I would expect that this knocks out 50-75% of their dentists (by number), but only knocks out 10% of revenue in year 1*. They can align sales/admin costs against this expected reduction in revenue to minimize the impact to net income. This, however, does not include the general softness expected in their business due to offering an expensive, elective procedure during a severe recession, which analysts have already identified.
  • Beyond intentionally cutting revenue during the recession, their timing is poor. Between being found as violating patents by one competitor (Ormco Corporation) and seeing another upstart invade their turf (ClearCorrect), they are leaving dentists with plenty of options that are not Invisalign.

How long will they have until this newfound exclusivity takes a toll on their brand strength and share price? I don’t think their 2Q earnings will reflect the change, as the few fringe dentists are likely pushing Invisalign hard to hit their quota, but I would be surprised if they don’t have to lower guidance again in future quarters, partially as a result of this policy.

Comments? Thoughts?

*These are gut-feel numbers, not based on financial analysis.

Migrating Dentrix Image 4.5’s database to another computer

This post is way off-topic for those who read me regularly, but it should be helpful for those looking for this information via a web search.

Our original server was a very old (1999ish), very slow Pentium running Windows XP Professional, Dentrix 11, and Dentrix Image 4.5.
We decided to upgrade, and bought a new Dell PowerEdge server with a Dual Core Intel Xeon processor and Windows Server 2008 64-bit edition.

Installing Dentrix, Image, and the other required applications went fairly smoothly, with only a possible hiccup with installing .NET Framework 1.1, required for Dentrix. I say possible because it was only a warning, and we don’t know if it will manifest into any problems down the road.

After installation came the hard part – moving the data.

  • Pulling the Dentrix data (ledger, chart, schedule, etc.; about 300MB) over was simply a matter of copying the data into the appropriate Data directory.
  • Pulling images (35GB) over took longer, given the amount of data, but it was as simple.
  • Figuring out how to transfer the Dentrix Image SQL Server database, the database that contains a mapping between patients and images, took an absurd amount of time.

I tried:

  • Stopping the SQL Servers on both source (old server) and destination (new server) and copying the .mdf/.ldf files from source to destination. This resulted in Chart showing “Cannot initialize image database”.
  • Using the seemingly-useful DXImage/bin/IDImage application, which ultimately failed.

The key to figuring out was this Microsoft Support article describing moving databases using sp_detach_db and sp_attach_db. To fix,

  • Open a command line on the source and type ‘osql -E -Q’ to get into SQL command line
  • Type:
use master
go
sp_detach_db 'Viper'
go
  • Copy ‘Dentrix\DXImage\MSDE\MSSQL$VIPER\Viper.mdf’ and ‘Dentrix\DXImage\MSDE\MSSQL$VIPER\Viper_log.ldf’ to the same location on the server as ‘Viper_2.mdf’ and ‘Viper_log_2.mdf’
  • Open a command line on the destination and type ‘osql -E -Q’ to get into SQL command line
  • Type:
use master
go
drop viper
go
sp_attach_db 'viper','C:\Dentrix\DXImage\MSDE\MSSQL$VIPER\Viper_2.mdf','C:\Dentrix\DXImage\MSDE\MSSQL$VIPER\Viper_log_2.ldf'
go
  • Make sure to change your firewall settings on your new server to enable SQL Server to access it.

This did it. Oh, how I wish Dentrix Image had better (or any, for that matter) documentation, except for this site which looks like it was written by someone in high school.

UPDATE: In all likelihood, the first method (copy .mdf and .ldf) might have worked had I tried changing the firewall settings sooner!

UPDATE 2: After a massive meltdown of our servers and a long technical session with the good people at Dentrix Image, we learned a few things:

  • Windows Server 2008 is NOT supported for Dentrix Image 4.5. It was practically sheer luck that enabled it to work. Windows XP and (I believe) Server 2003 are the only supported environments. The issue lies with the embedded Microsoft SQL Server used in Dentrix Image itself, which is incompatible with Server 2008.
  • However, since we already migrated Dentrix to Server 2008, and still had our workstations on XP, there is a solution: leave the actual images on our fast new Server 2008, and host the image database itself on a workstation running XP.
  • The caveat here is that both machines must be accessible by network names (e.g. “server1”, “server2”), and not just by IP address (e.g. “192.168.1.10”). So, if I ping “server1”, I would get a proper response. It is beyond the scope of this entry to explain how to make this work, but a hint to get you down that path: static IPs and the hosts file.

To get this hybrid system (image files on “dentrix server”, image database on “idb server”) to work:

  • Install Dentrix Image as a server install on a Windows XP machine. We’ll call this machine “idb server” below.
  • On the old server, run [DXImage]\bin\IDBAdmin
  • Choose Export Database and choose a path. Move the resulting exported database to the idb server.
  • On the idb server, run [DXImage]\bin\IDBAdmin
  • Choose Import Database and choose the file you just copied over.
  • Choose Initialize Database.
  • On the dentrix server, open [DXImage]\images\rtx.con . Change the file to point to the new server’s network name. This is the missing link: workstations will look at this file to figure out where to find the image database.

UPDATE 3: We have posted our backup process for the lowly Windows XP IDB Admin server in a follow-up, Backing up Dentrix Image 4.5’s database.

ADA files suit against McCain/Palin


I file this one under “funny” because, well, read on and you will see. Hopefully you will find the humor in it also. If not, you are a robot.

Sometime in the 1970s, the ADA coined the slogan, “Drill, baby, drill!” When the phrase was tested in Oregon in 2002, it was supposed to promote dental visits. Needless to say, it went over like a lead balloon. Thoughts of the dental drill don’t sit well with most people. So the ADA has never promoted the term in advertising. However, they retain the right to do so because the words are the intellectual property of the ADA.

The McCain/Palin campaign uses, “Drill, baby, drill!” in relation to energy. Vice presidential nominee Sarah Palin said in a recent speaking engagement that “Sink and exploratory well, baby, sink and exploratory well,” just doesn’t have the same ring. And she’s right. The crowd responded with “Kill the ADA!”