> Hi Jerry, > > Thanks for the screenshots and the detailed explanation. I think I get the basic idea from your explanation.  With the possible exception of >  MedMapper, our basic template is not this > sophisticated,  but I do feel that this  same basic thing could be done > with Tcl/Tk.  I will post this on the tkfp@topica.com list minus the screenshots which I will forward to those who want them on request.  There > are several programmers on the Tkfp list that are much better than I am. There are some on the list whose favorite programming language is PYTHON which also > has ability to work with the Tk windowing toolkit and also has some other windowing toolkits > available,  such as Wxpython, which could do these same type of things on Linux (or Windows too). > Also Dr. Adrian Midgley from the U.K. is on the list and is working on a program I believe is in Visual Basic. Adrian has demonstrated how important it is that the program that can be operated from the keyboard very well instead of depending only  on the mouse.  He is a very strong advocate of pop ups > like these that are intelligent enough to appear and disappear very quickly and at the appropriate times. > I made a few other comments below. > > On Mon, 17 Mar 2003 10:35:43 -0800 > "Jerry Park" wrote: > > > Dear Alex, > > > > Thanks for you most helpful comments in your post of today.  I am on >DSL at home, and have a secondary email address at that site, >jparkdo@icehouse.net, but my AOL address is reachable from multiple >computers.  If you send big files, the icehouse address would work a >lot better. > > > > Like you, I have found voice recognition to be "skippy" so far. I >purchased DragonDicate back when it was discrete voice recognition and >paid a pretty good sum of money (around $1200, I think) for a local >dealer in Chicago to train me (circa 1996). I ran it on a Pentium 133 >with Windows 95, and on later more powerful machines up to an AMD 380 >mHz. I wrote some notes with it, but found it not usable in the final >analysis. I purchased 1 more version of DragonDictate, and 2 versions >of DragonDictate Naturally Speaking Prefered, with the same results. >Very interesting, but doesn't work well enough bottom line. I put a lot >of time into voice training. It seems like voice recognition may >finally have arrived more-or-less with the latest software, but like >you, I am dubious. I'm going to try using ViaVoice, as I mentioned, but >I'm not going to sink any more large dollar outlays into it until I'm >pretty convinced it will work a high percentage of the time. > > > > I have generated probably around 20,000 patient visit notes using a >combination of Dr. Welford's Charnotes program and Praxis, so I have >made quite a few observations about what is good and not good about >these programs. > > > > I decided to send you some serial screen prints of Dr. Welford's >Chartnotes in action. My first example is loading an extremity injury >template, and entering a note about a right hand injury. First a little >diversion. > > > > I should probably add a little background information. Dr. Charles >Welford is an internist from Rockford, IL, and has formal training in >computer science (I'm not sure how much, but enough). He started >programming his chartnote program in C (I think C++, but I'm not sure) >somewhere in the early 80's. I bought it around 1988 and ran it in DOS >on a 286. His goal was to make money from this program, so he turned >the marketing, etc., over to a firm called MedCom. He made it such that >one had to subscribe to the yearly support program to get the quarterly >updates to the program along with new drug interactions, etc, and these >had to be added to the program incrementally. At the time, this cost >around $400/year, and the program cost was about $750. It's way more >than that now. The last version that I bought was his first Windows >release, with a few updates. It was lightning fast in DOS, but the >Windows release was very clunky at cooperating with Windows. The >biggest ! > reasons why I migrated to Praxis was because I couldn't figure >out how to easily get the program to do multiple diagnosis automation, >it's printing functions were abysmal, and it had no form generator. > > > > Anyway, Dr. Welford was/is a fast typist, and seeing that he >programmed the core of this thing in the pre-mouse, pre-windows era he >was quite of the opinion that his program should be really good at >keyboard entry (I met him and discussed this stuff a couple of times). >As a one-time avid user of his program, I think he achieved that goal. >I would like to incorporate some of the concepts that I consider to be >the best stuff from his program into an improved multiple diagnosis >program. For my work in the urgent care centers excellent printing >functions and a form generator that can map key parts of the patient >note (diagnosis, instructions, prescriptions, etc) to multiple forms is >essential. An all electronic EMR that does not print is not possible in >most ED's and urgent care centers that I have seen. > > In the Tkfp program we generally print either simple text files, or if anything fancier is needed, we often try to format it in XHTML so it > can be printed from the popular web browsers. Using a cascading stylesheet to aid in formatting. This way, you can separate the content which is stored in XML,  from the formatting and layout functions, the CSS.  Our claim forms come out in .pdf,  but they actually get printed > as postscript as does almost everything on Linux that has images, fancy > fonts etc. > > > The institutions are not giving up their paper forms, and one has to >live with it. The legal ramifications of an EMR as the only storage for >patient notes in those settings is scary to me. I had to chuckle at >your analogy of medicine currently to banking in the Dickinson era, >because we do have a chart stack at my current urgent care center with >a fairly tall rolling ladder on both sides, and it can only hold around >2 years worth of records. > > > > One really great thing about an open source EMR for an institution >such as an ED would be that physicians could add code or modules to >adapt their work environment to suite them (within certain allowed >parameters) if they wanted to. I have never heard of that option with >major medical software such as Pegasus or Logician. Of course, most >docs expect programmers to fix whatever the problem is, and most docs >would probably just whine or put up with it in the final analysis. > > > > If we get a bigger pool of people that are docs and can also program, it > would really help. It would be important  to design in the ability for the user to reconfigure things without knowing any programming.   On the other hand, the more options you put in, sometimes the more difficult it gets for new users, so there is always a sort of trade off there.  But you could have different user levels that could be turned on or off. > There is a program I like called TclTutor that is an interactive programming training guide. It has 3 different levels of ability that can be toggled very simply. The beginner sees what he needs without being confused by the more complex stuff. The advanced user can see the > more sophisticated stuff.   > > > > OK, enough diversion, back to my examples. The screen shots are jpegs, >and on my screen at 1024 x 768 res are not readable unless viewed at >100%. > > > > In the first screen a ficticious patient has been loaded, and a >diaglog box pops up to pick a template by typing the first letter of >the template name, or by mouse click > > > > > > > > In the next screen, the template is up.  The square boxes are the >bookmarks that I referred to in my previous post.  "@TLIST" in means >"Template Word List", which is what those pop up tables are called in >Welford's.  When the cursor hits "@TLIST" the table will pop up. > > > > > > > > In the next screen, the cursor has jumped, the template word list has >popped up, and a table presenting a choice of more template word lists >is presented to pick which anatomical part is to be addressed.  The >choice of hand is selected by simplying typing in its row letter in the >text entry box on the bottom.  You can type in free text in the box >along with the choice of any or every line in the table by simply >typing in it's row letter (f for hand in this case).  If you did type >in free text in this example, the text would be inserted in the note >ate the point of the cursor, and then the hand template word list would >pop up.  Whatever was selected in the hand template word list would be >inserted at the place the letter "f" was placed the text. > > > > > > This type of thing could be done in Tk with the text widget. It has the > capability to be programmed to do this type of thing quite readily. Not that it wouldn't be a lot of work to get it all working to emulate this > exactly. > > > > > > > > > In the next screen, the hand template word list is up.  The text of >each line will be inserted by selecting it's row letter.  The program >automatically adds the word "and" after the last comma.  If you type a >period after the row letter, the program will not insert the row >letter's text, but will literally type "b" or whatever the letter was.  >Note I have typed in an exam of the right hand in the text entry box by >mixing free text with row letters. > > > > > > > > Finally, upon either hitting the Enter key or clicking OK, the ouput >text from the above pop-up box is inserted into the note as shown in >the following screen. > > > > > > > > OK,  a final note.  You'll notice in the last screen that this >template after "EXTREMITIES:", the template word lists of ecchymosis, >swelling, pain, and joint function.  That's because I couldn't decide >whether to to have all of the elements one should address in an >extremity injury as template word lists that MUST come up in the main >template serially, or to pick whichever elements (ROM, swelling, >erythema, neurovascular, etc.) are thought to be appropriate for this >exam by picking them from a single secondary popup list as in the >scenario I just presented..  I finally settled on the latter solution, >because it's faster to have one pop-up box come up with all of the >elements to be addressed than 5 separate pop-up boxes serially coming >up.  One of the bad things about Dr. Welford's program is that it lets >you make many choices, but does not give any tutorials on how to >organize yourself.  It did not come with any templates or wordlists at >all.  I had to sit dow! > n and organize that whole structure.  >Fortunately, he has made many templates and wordlists available to new >users of his program shared by other users in a template library.  I >haven't checked out what is freely available on his web site in years, >but Praxis has the same thing on their web site, i.e, template >libraries freely shared by users.  This could be a very good source for >ideas and template building in any applicaton. > > > > The ability to select "secondary" templates on the fly within larger >templates I think could be a great answer to the problem of automated >text entry with multiple diagnoses, because with the right programming >you could bring up whatever template word lists (secondary templates >with a flare, really) with one or two keystrokes anywhere in the SOAP >elements.  The problem with Dr. Welford's program in doing this is that >there is no secondary template index so you know what can be selected, >or way to make a template word list come up on the fly other than to >literally type into the note "@TLISTwhatever", back the cursor up, and >hit F9 (the function key to cause the cursor to jump to the command, >and pop the box up).  Well, actually, that's not strictly true.  Dr. >Welford's also has a contraction function, which is about the same as >autotext in Word.  You could make some kind of autotext index, >literally insert it in the note, drag the part you wanted out, and >erase! >  the rest.  But that would be just as clunky and slow. > > > > From what you mentioned in your previous post, it shouldn't be >insurmountable at all to get Tcl/Tk to run this type of a pop-up box >system.  I like the free text entry mixed with designating lines of >text by a single letter, and the ability to "chain" word lists together >in this way.  Admittedly, this system favors touch typists, but believe >me, once you have a certain condition template memorized fairly well, >it is fast.  I have literally timed note generation with a stopwatch on >many occations.  My average time to generate a URI note with Welford's >was around 90 seconds, with fairly complete documentation, scripts, >etc. > > > > I think I've presented enough for this time.  I'm probably getting a >little out of sync in that I still haven't added a LInux partition, >loaded Slackware, and fired up your program yet.  In your last post you >mentioned that you have added the capability of mixing templates on >multiple conditions, so I'll have to check out what it can do.  I just >had this burning desire to show you the Welford "template wordlist" >method, because for touch typists, it's really fast.  A little final >note.  In Welford's program, you can elect to either manually hit the >F9 key each time you want to advance to the next pop up, or you can >elect "autojump" in which case the program automatically advances to >the next box and pops it up as soon as you hit the Enter key to enter >the text into the note from the previous box. It keeps advancing until >it comes to the end of the main template.  I found the autojump method >to be far more superior.  If you make a mistake in a box and >accidental! > ly enter the text in the note, you can stop the autojumping >by hitting the Esc key when the next box comes up.  The box closes, >nothing is entered, and autojumping is halted.  You can make whatever >text corrections you want, and restart autojumping by simply hitting F9 >again.  This autojumping also requires that the command "@TLIST" is >immediately preceeded by one of those box marker characters that you >see all over the above example template, because those are the >bookmarks that tell the F9 command where to jump to.  In autojump mode, >when the cursor hits a lone box character, it stops there.  You can >then go anywhere in the template and type text, but when you hit F9 >again, the cursor will start autojumping again from where ever it is in >the template, advancing to the end of the template. > > > > I hope I have presented this clearly enough so as not to frustrate >you, and I hope it might give you some ideas that would help in your >program. > > > > Jerry