I’m assisting an optometrist in migrating decades of patient data from Opto, a legacy DOS-based program by Professional Practice Systems, Inc., to a cloud-based solution.
The challenge:
- There’s no obvious export function or documented way to access the raw database.
- Manual entry is impractical due to the volume of records.
Questions:
- Has anyone successfully extracted data from Opto (PPS)? If so, what tools or methods did you use?
- Are there known file formats or database structures (e.g., dBase, Clipper) that Opto uses?
We’re open to workarounds (e.g., parsing print reports, reverse-engineering file formats). Thanks for any leads!
Edit:
- I have contacted Opto for help by emailing the addresses listed on their website. However, after verifying them with Hunter Email Verifier, I found that both the server and email statuses were invalid. To find alternative contacts, I searched Facebook and LinkedIn and located Scott Bussinger, the chief programmer of Opto (according to their site). I reached out to him about 24 hours ago but haven't received a response yet. Additionally, I found his Stack Overflow account, though he was last active over a month ago. I remain hopeful that he will reply.
- I am running Opto in VMware using a snapshot of the optometrist’s Windows 7 environment stored on an external NTFS-formatted hard drive that my boss lent to me. The drive contains multiple backups of the program.
- While examining Opto’s files via the file manager, I discovered a folder containing numerous
.dbdatabase files. Opening one in Notepad revealed mostly unreadable content, though some parts were somewhat legible. I then attempted to view the file using SQLCipher, which prompted me for a password (“key used to encrypt the database”) and displayed SHA512 under HMAC and KDF algorithms—suggesting the database is encrypted. I searched for configuration files within Opto but couldn't find any that might contain the encryption key. Upon closing the password prompt, another pop-up appeared stating: "Could not open database file. Reason: Invalid file format."
Would it be best to continue testing different database browsers, or should I explore alternative approaches like scraping?