Announcement

Collapse
No announcement yet.

Ported SOAPWare to MySQL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ported SOAPWare to MySQL

    I am living proof that you don't need to be a "real" computer guru to run SOAPWare off a MySQL database. If anyone's interested, I'll post the (free) instructions here...

    I am interested in developing "extensions" to SOAPWare using Visual Basic. Anyone else here working on this? It's 80% of a good EMR system, I figure it'd be not too expensive to work on the other 20%.

    Mike

  • #2
    Originally posted by mbenjam
    I am living proof that you don't need to be a "real" computer guru to run SOAPWare off a MySQL database. If anyone's interested, I'll post the (free) instructions here...

    I am interested in developing "extensions" to SOAPWare using Visual Basic. Anyone else here working on this? It's 80% of a good EMR system, I figure it'd be not too expensive to work on the other 20%.

    Mike
    Interesting, is Dr Oates OK with it?
    Please post the instructions
    Mel
    There is no place like 127.0.0.1

    Comment


    • #3
      Well, apparently there's a guy out there selling preconfigured systems running a MySQL backend. I'm not that fancy, but I can do the port.

      http://www.premiernetworks.net/soapware.htm

      He posted instructions on the SOAPware user forum a few months ago, and it's taken me this long to figure out exactly what to do.

      SOAPWare is great because it's not exactly open source, but it's open database. The data structures are pretty straightforward. I wonder if other docs have tried to "hack" it to add new functionality...

      I'll follow with details...I would be interested to hear Dr. Oates' take on this.

      Comment


      • #4
        We are pleased to hear how docs have been innovative to make SOAPware work better for them. However, our concern is that end-user customizations often break when we release upgrades. We do not support computer code written by others. And, without the source code, the creative end-user can't always know what to fix when the upgrade breaks their innovations. Thus, we are exploring how we might be able to distribute source code in conjunction with a developer agreement. Perhaps if we share source code, developers will share their enhancements, and jointly, we can keep things synchronized? We are not promising, but this is our goal.
        MySQL will be the default database in SOAPware v5. There are many sites using this with v4, but these are not supported by DOCS, Inc.

        Randall Oates, M.D.
        President, DOCS, Inc.

        Comment


        • #5
          Migrating SOAPWare to MySQL
          If you don't know what ODBC, MySQL, or SQL is, don't do this. I can't be responsible for what happens to your setup if you try this. Database canoodling can bring grave heartache--I lost a PCR primer database when I "upgraded" a disk file system once.
          This is provided as a reference only. I have only tried this out on a prototype system at home--not at the office yet! I don't want to lose my chemo order codes!
          Benefits: no 2GB limit, no decision to buy $10K DBMS, potential for cluster DB, replication, no new hardware (necessarily) needed.

          First step: back up your databases. There is a (good) chance this can break your installation. Try it out on a prototype system first.
          Second step: install and run MySQL and MyODBC on the target system
          Third step: run the migration tool on your databases. You can download a free one that works at http://www.kofler.cc/mysql. Use the vb script--it's pretty self explanatory. Read the opening comments--it tells you what to do. You're best off making .sql files, then sourcing those files into mysql. You need to modify the sw_images.sql file to include the line 'ALTER TABLE Reports_Binary max_rows=1000000 avg_row_length=200000;
          USE sw_images;' after the 'CREATE TABLE sw_images.`Re....' statement. Use your favorite text editor.
          Fourth: import the .sql files into mysql. I didn't have much luck with \.sw_images.sql from the mysql> prompt, but you can cut and paste into the mysql control center if you like. I didn't experiment with the 'source' command, but that might work too.
          Fifth: create a user called 'soapuser' password 'soapware' in MySQL
          Sixth: you need to delete the MSSQL ODBC DSN entries and create new ones for MySQL--re-create the same DSN entries using the same database names and DSN names.
          Seventh: You should be good to go! Next step: replication, clustering, instant failover!

          Good luck.
          HTH,
          Mike

          Comment


          • #6
            Soapware/SQL

            I use Task manager of MSSQL to look at my data. I query and copy and paste to Excel to get some lists of my patients. I do not use my main server for this hacking. I use my home back up and try to get more reports out of my Soapware data.

            Comment


            • #7
              Originally posted by srkatari
              I use Task manager of MSSQL to look at my data. I query and copy and paste to Excel to get some lists of my patients. I do not use my main server for this hacking. I use my home back up and try to get more reports out of my Soapware data.
              Welcome to Docsboard
              Do you carry a CD-RW of all your data to & from home to do this?
              Mel
              There is no place like 127.0.0.1

              Comment


              • #8
                soapware "hacking"

                Probably a bad choice of names but the idea of trying to customize has interested me. I think Randall's idea of a developer agreement and source code sharing may allow me to play with it and accomplish something everyone can use.

                I did a boatload of quickbasic programming years ago , a fair amount of visual basic when it first came out, a little visual C++ and even a little asm in the early years.

                I am not clear on how this runs on linux. I have presumed soapware is written in visual basic. The only DB programming I have done is foxpro, again, a number of years ago.

                Take me thru the basic steps on what program to use and where to look at the files. I would only do this on a separate computer at home.

                Comment


                • #9
                  Originally posted by mel
                  Welcome to Docsboard
                  Do you carry a CD-RW of all your data to & from home to do this?
                  YES. I lost data by not checking my back up data long time ago. Since then I do carry my data home every day, restore it on home computer. I zip file the back up. I use USB memory and/or CDRW. I back up only charts not including images on day to day basis. I do back up of image files included once a week to burn a CD.

                  I think Soapware is developed in C language. I am happy to see my data separate from the front end program. Access or Visual Basic can be used to get more customized reports out of the data made by Soapware.

                  Comment


                  • #10
                    Replication

                    To me, backups are nice, but as you say, they are fallible. What I'd like to implement is a professional-style data center, like how real data-driven businesses do it. For example, Amazon.com doesn't burn its order database to CD-RW each week. It has a data center, with a set of redundant servers that operate as one unit. When one server goes down, a little light flashes somewhere, a tech pulls out the bad server, goes to Fry's, buys a new server, and sticks it back in. Meanwhile, the end users don't even notice the glitch.

                    I think physicians need EMR software that looks nice and works well with their workflow, but they also need EMR software to be fault tolerant. MySQL is a platform that allows savvy users to implement fault tolerant features like cluster servers and replication. That's why I'm so excited to have a MySQL implementation.

                    They use these database tools to sell books online, so why shouldn't we use tools like these to care for patients?

                    My next task is to implement a database cluster in the office. It may have to wait until after the boards 11/3-11/4. We have a gigabit switch already, and a bunch of P4's sitting around making idle processor cycles, so we might as well distribute the database.

                    The problem is that when you talk to doctors about database replication and fault tolerance, their eyes glaze over...these are principles that have been understood in IT for years.

                    Comment


                    • #11
                      Customization

                      The language doesn't have to be VisualBasic. Scripting languages like Perl and PHP have well-developed tools for doing operations on databases like MSSQL and MySQL. Dreamweaver even lets you make data-aware web pages in PHP using a visual editor.

                      I think the low fruits for customization are a (better) scanning interface, a bill abstractor, and custom reports, and tighter flowsheet-to-plan, vital-sign-to-objective, and lab-to-objective integration. If people are interested, I can expand on these ideas. Perhaps DOCS Inc are already working on these.

                      Comment


                      • #12
                        compiling into soapware

                        My biggest problems are Rx. managment and tracking lab and messages for legal purposes with good paper trail. I believe that to show up within the soapware program, it will have to be in the source code and compliled into the program, such as an integrated rx manager.
                        It looks like it would be fairly easy to mine the data outside of the program for various lists, sort of like their module to archive charts. Outside of the soapware program, it would seem to be of limited usefulness.
                        I think it would work like Dr. Oates said. He distributes source code and a developer agreement to protect his business. We get the access to the code for the fun or some relatively low cost benefit like free upgrade, etc. He gets free programming ideas and code , but it always passes thru him to make sure it is what they want and can support. I guess if I were him, I would want the final say as to what if any reimbursement for the coding .

                        Comment


                        • #13
                          In all honesty, SOAPware v5 will eventually address 99% of the problems and suggestions for v4 and addresses all of those listed by mbenjam. We will not have all the enhancements in 5.0.1. as we have had to make some compromises to get it out the door.
                          Do not do much customization with SOAPware v4 as it will have to be thrown away in v5.
                          v4 is written in Visual C++. SOAPware v5 is written in C# in the .Net environment. In this environment, Visual Basic, C++, Java and other languages can be used to develop enhancements. The default database is MySQL and all data is stored with XML. Microsoft SQL will be supported as well and this will likely be the default for our integrated product (i.e. Billing, scheduling, etc in addition to EHR).
                          We have not decided yet the nature of the agreements where we will release source code. Some may simply want to purchase a developer's kit and may want to sell an enhanced product on their own. The single docs that don't want to purchase a developer kit may very well want to exchange their code.

                          Randall Oates, M.D.
                          President, DOCS, Inc.

                          Comment


                          • #14
                            Thanks for the info, Dr. Oates. I enjoy using SOAPWare, and I think it's pretty good at what it does. The timeframe for version 5 would be the key issue--if it's coming in a month, then as you say, it's not worthwhile to upgrade. If it's coming in a year, then users might as well cobble together some improvements.

                            I'm not sure I need scheduling and billing integration--we just invested $30,000 in a new billing system for the office, and I would rather invest another $3,000 in making the systems talk to each other than start from scratch with v5.

                            The other thing is, how much are these new features going to cost? DOCS inc seems to be moving in the same direction as other EMR vendors: single upstart MD has bright idea, cobbles together EMR, other docs like it, bells and whistles get added, the price goes up, and finally, a major company buys up the small upstart. This happened to patientkeeper, may happen to Infor-Med, and who did GE buy? I forget the name of the company. Things get expensive over time.

                            Anyway, the major part I love about SOAPWare is it's cheap. The other thing is, it's got a simple enough architecture that it can be modified by innovative users. It represents a huge help to the physician developer, because instead of writing database schema and encounter note interfaces from scratch, it's already in place.

                            Maybe what I'm getting to is, don't abandon v4 even though you put out v5. I don't think I will. I think there must be a base of users out there who don't necessarily need a more technologically advanced SOAPWare, and wouldn't necessarily pay more for one either.

                            The source code would be nice: instead of one development branch, there could be many. Some of the portal programs have features where it's simple to apply patches to the source.

                            Comment


                            • #15
                              open database tables... nice

                              Originally posted by mbenjam
                              SOAPWare is great because it's not exactly open source, but it's open database. The data structures are pretty straightforward.
                              Nice ! can you ODBC connect to the tables ? or connect in another way ?

                              Comment

                              Working...
                              X