Here's a little gadget that I made using a single table, requiring 3 numbers
to be input manually or from a separate Rx order table:
Table: doses No Lock(s)
No. Column Name Attributes
--- ------------------
------------------------------------------------------
1 dosequan Type : REAL (the number of pills, drops,
whatever)
2 dosehours Type : REAL (the time interval, or
frequency in hours)
3 contdoses Type : REAL (the est. number of doses in a
container)
4 quanperday Type :
REAL
Compute: (dosequan*(24/dosehours)) The # of doses
per day
5 dayspercont Type :
REAL
Compute: (contdoses/quanperday) The number of
days it will last
Current number of rows: 4
and here's some test data I ran:
dosequan dosehour contdose quanperd daysperc
-------- -------- -------- -------- --------
10. 1.5 1000. 160. 6.25
0.5 12. 4. 1. 4.
2. 0.25 100. 192. 0.520833
1. 4. 50. 6. 8.333333
So like the first one, 10 drops per 1.5 hours (90 min), in a 1000 dose
bottle should use 160 doses per day, should last a little over 6 days.
Sorry if the formatting comes out pretty lame. I did this dose in dos as
it's quicker for me.
I used real because you never know what you're gonna get, and 8.3333 days to
me means "a little over a weeks' worth" and .5 means you'll run out before
the day is done. You do have to do a little math in your head to input
fractional hours, partial days etc.
Of course the 2 computed cols could be combined into one, but you might find
it useful to see how many doses per day have been Rxd as well as how long
the bottle wil last. If nobody else does this, I may create a gadget for
smart phones that will do this.
If I don't get the time to do it, maybe someone else will???
On Tue, Aug 23, 2011 at 10:27 AM, Alastair Burr <[email protected]>wrote:
> Just picking up on this:
>
> “For example, if I write for a drug called Amoxicillin, 1 pill 3 times per
> day, and I give 21 pills, that should last 7 days from today.”
>
>
> What happens if the prescription is written late in the afternoon? Do you
> expect all three doses to be taken that day?
> If it’s very late will the course be started that day or the next?
>
> If that’s not a problem then forgive me for butting in but you might need
> to take account of some time “options”.
>
>
> Also:
>
> I’m not sure that I follow what you did in v6.5 but regardless of version
> it sounds to me that you ought to have table columns for the number of pills
> and the number of times per day with – if you really need it - a calculated
> column for the number of days that should last.
> Even better, you should be able to create your form in such a way that you
> can enter any two values and calculate the third. You would only _need_ to
> save two of them as you can always calculate the third when required.
> Again, forgive me if I’ve got the wrong end of the stick – it wouldn’t be
> the first time.
>
> Regards,
> Alastair.
>
>
>
> *From:* William Stacy <[email protected]>
> *Sent:* Tuesday, August 23, 2011 5:51 PM
> *To:* RBASE-L Mailing List <[email protected]>
> *Subject:* [RBASE-L] - Re: Forms in 6.5 vs 7.6 and 9.1
>
> actually, on further reflection, your question really is just simple math
> that doesn't need to be connected to any particular drug information, so
> long as you're willing to input the dosage, frequency of dosage, number of
> doses in the dispensing container, and a simple math formula to compute the
> # of days the container will last. this is more like a "gadget" than a
> database item, although it could link to drug database files for populating
> some or all of the items.
>
> On Tue, Aug 23, 2011 at 7:06 AM, William Stacy
> <[email protected]>wrote:
>
>> I'd try to simplify your system. I have a simple drug table that has just
>> 5 columns:
>>
>> dn is an autonumbered integer that unequivocally locates a specific drug
>> dln is an integer that links to a lookup table which specifies the general
>> type of drug (Rx, OTC, substance, dietary supplement, etc.)
>> bname is a text field that represents brand name, if any
>> gname is a text field that represents generic name, if any
>> dname is a computed text column that I use to look up individual drugs.
>> the expression for that column is: (ifeq(bname, null, gname, bname
>> &('('+gname+')'))
>>
>> gname yields such things as : Amoxil (amoxicillin), aspirin, Lipitor
>> (where, respectively, bname and gname are not null, bname is null, and gname
>> is null.
>>
>> I use the gname values for all drug lookups, including printing the drug
>> name on the Rx and have found no need for drug nicknames, abbreviations etc,
>> as the simple lookup is like: where dname contains .t where t is any string
>> such as 'amox', which returns several dnames from which a selection is made
>> where t2=dname
>>
>> then I have a couple of child tables for things such as quan, freq,
>> etc.all of which refer to the parent drug table by dn only.
>>
>> In your case, one of these child tables would have, in addition to the dn,
>> a freq column (integer), a frequnits (text) column, a quan (int) column, a
>> quanunits (text) column, and a days column (int or real) that would give you
>> the answer.
>>
>> example: freq=3 frequnits='hours' quan=1 quanunits='capsules' from which
>> days would be calculated (I don't have time this morning to work a formula,
>> but will do it later today)
>>
>> Bill
>>
>>
>>
>> On Sun, Aug 21, 2011 at 9:15 PM, Michael J. Sinclair <[email protected]
>> > wrote:
>>
>>> Hi All,
>>> I need a little help in understanding how to convert a form from version
>>> 6.5 to 7.6 or 9.1
>>>
>>> I am trying to write perscriptsions with as little typing as possible
>>>
>>> I also want Rbase to try to figure out how long a perscription will last
>>> if taken correctly.
>>>
>>> For example, if I write for a drug called Amoxicillin, 1 pill 3 times per
>>> day, and I give 21 pills, that should last 7 days from today.
>>>
>>> So...
>>>
>>> I have a table that has abreviations (shortcut) matched to long names
>>> (drugname).
>>>
>>> In this case, the abreviation (I called the column SHORTCUT) is 'AMO' and
>>> the Drug Name (I called that column drugname) is 'Amoxicillin'.
>>>
>>> Also....
>>>
>>> I have a look up table that matches up phrases with "rates of use per
>>> day"
>>>
>>> In this case, the phrase is "3 times per day" and the rate of use (in
>>> pills per day) is the number 3.
>>>
>>> In this lookup table, I call the first column (the phrase) FREQ (short
>>> for frequency) and the second column freqnumb (short for frequency number)
>>>
>>> So, if I have not lost you yet...
>>>
>>> In Rbase 6.5, the form has a section for variables, very similar to the
>>> variable section in 7.7 and 9.1
>>> What worked for me then (not sure if this was the right way to do it), in
>>> the variable section, I had
>>>
>>> column names = expression
>>>
>>> for example, I had these expressions...
>>>
>>> drugname = drugname IN scripts WHERE shortcut = .vshortcut
>>> freq = freq IN drugfreq WHERE drugname CONTAINS .vshortcut
>>> freqnumb = freqnumb IN drugfreq WHERE freq = freq
>>>
>>> There were similar lookups for the refill number, the quantity of pills,
>>> etc
>>>
>>> These expressions filled the columns with values.
>>>
>>> Now, in Rbase 7.6 and 9.1, I have much more flexibility with component
>>> IDs.
>>>
>>> My thought was to eliminate the expressions, which never made much sense
>>> to me since I was using expressions to give data to columns rather than to
>>> variables, and the section was called VARIABLES.
>>>
>>> So, on the field for the abreviation, I have an "ON Exit EEP"
>>> This is part of my code for the "On Exit EEP", exiting from the field
>>> where I typed the abreviation (aka shortcut)
>>>
>>> --on exit eep
>>> --look up the drugname, frequency, quantity, refill numbers etc and
>>> calculate how long the script should last
>>>
>>> SET V vshorcut_old TEXT
>>> SET V vshortcut1 TEXT
>>> GETPROPERTY shortcut textvalue vshortcut1
>>> SET EQNULL ON
>>> --make no changes unless the shortcut has been changed
>>> IF vshortcut_old <> .vshortcut1 THEN
>>> SET V +
>>> vdrugname = drugname, +
>>> vfreq = freq, +
>>> vduration = duration, +
>>> vdruginst = druginst, +
>>> vquant = quant, +
>>> vrefills = refills, +
>>> vacuteflg = acuteflg, +
>>> vitemflag = itemflag, +
>>> vdurdefault = duration_default, +
>>> vspeccomm = speccomm, +
>>> IN scripts WHERE drugname CONTAINS .vshortcut1
>>>
>>> --get numerical values from the text data that is part of the
>>> perscription, the data is in several look up tables
>>> SET V vfreqnumb = freqnumb IN drugfreq WHERE freq = .vfreq
>>> SET V vquantnum = quantnum IN drugquant WHERE quant = .vquant
>>> SET V vdurnumb = durnumb IN drugdur WHERE duration = .vduration
>>> SET V vrefnumb = refnumb IN drugrefs WHERE refills = .vrefills
>>>
>>> --now update all the column values from the above varialbles
>>> PROPERTY namedose textvalue .vnamedose
>>> PROPERTY freq textvalue .vfreq
>>> PROPERTY freqnumb textvalue .vfreqnumb
>>> PROPERTY DURATION textvalue .vduration
>>> PROPERTY druginst textvalue .vdruginst
>>> PROPERTY quant textvalue .vquant
>>> PROPERTY quantnum textvalue .vquantnum
>>> PROPERTY refills textvalue .vrefills
>>> PROPERTY acuteflg textvalue .vacuteflg
>>> PROPERTY itemflag textvalue .vitemflag
>>> PROPERTY duration_default textvalue .vdurdefault
>>> PROPERTY durnumb textvalue .vdurnumb
>>> PROPERTY refnumb textvalue .vrefnumb
>>> PROPERTY speccomm textvalue .vspeccomm
>>> ENDIF
>>> SET EQNULL OFF
>>> LABEL END
>>> RETURN
>>>
>>> Seems pretty simple, but none of my column names are getting updated
>>> until after I save the row.
>>> What happens, some of my rules for the table get violated because there
>>> is missing data for some of the dependent columns.
>>> I can make it work by using the same expressions I used in Rbase 6.5, but
>>> I am trying to impove my coding "skill", or lack there of.
>>>
>>> What is the right way to update the colums using expressions and data
>>> obtained from lookup tables?
>>> When does the PROPERTY command take effect? only after I save the row, or
>>> after the cursor leaves the row?
>>>
>>> Sorry to be soooo long winded....but I really don't know how to break
>>> down my issue any smaller.
>>>
>>> Thanks for reading
>>> Mike
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> William Stacy, O.D.
>>
>> Please visit my website by clicking on :
>>
>> http://www.folsomeye.net
>>
>>
>>
>>
>
>
> --
> William Stacy, O.D.
>
> Please visit my website by clicking on :
>
> http://www.folsomeye.net
>
>
>
>
--
William Stacy, O.D.
Please visit my website by clicking on :
http://www.folsomeye.net