ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Requesting Opinions on the Benefits of Predicates as

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: David Whitten <whitten@xxxxxxxxxxxxxx>
Date: Fri, 20 Jun 2014 18:46:41 -0400
Message-id: <CAH8N84xM1jMbzw8ZQhrVSxRYkt+XCP0-Gvo8BGK3y0Xvzj7mqg@xxxxxxxxxxxxxx>
Lest there be anyone who sees Rich's replies below, thinking that he is describing
how the currently working HIS software used by the VA (named VistA) works, I am
going to clarify below.

Again as to Ontolog Forum discussions, I think we need to find some way to match
two different expressions of software, each of which might be described by an
individual ontology, and both of which are described with a common (third) ontology,
and find ways to solve the mis-match impedance between the two expressions/formulations.



On Wed, Jun 18, 2014 at 3:17 PM, Rich Cooper <rich@xxxxxxxxxxxxxxxxxxxxxx> wrote:

Comments below,

-Rich

 

Comments interleaved below

 

On Wed, Jun 18, 2014 at 12:20 PM, Rich Cooper <rich@xxxxxxxxxxxxxxxxxxxxxx> wrote:

Comments below,

-Rich

<snip>

Look at the simple matter of ordering medication.

* If you order it for an outpatient, the medication is dispensed

in a single bottle or bag.  All thirty days worth is together.

* If you order it for an inpatient, the medication is dispensed
daily, one pill a day, necessitating tracking 30 sub-orders.

Two alternative methods for executing a process, depending on the context in which the process finds itself. 

I agree that there are two methods, but I would argue they are two

processes that superficially look the same.  (Isn't the ambiguity in

English fun for software development ?)

 

Yes, exactly!  The ambiguity of such a simple verb as “dispense”, which can be found in WordNet 2.1. as:

 

The verb dispense has 3 senses (first 1 from tagged texts)

                                      

1. (3) distribute, administer, mete out, deal, parcel out, lot, dispense, shell out, deal out, dish out, allot, dole out -- (administer or bestow, as in small portions; "administer critical remarks to everyone present"; "dole out some money"; "shell out pocket money for the children"; "deal a blow to someone")

2. dispense -- (grant a dispensation; grant an exemption; "I was dispensed from this terrible task")

3. administer, dispense -- (give or apply (medications))

 

And as John Sowa says, there are small communities of speech which have very precise meanings for words which may not be well covered by a general definition.  This is happening with the word "dispense" as it is used by a pharmacist.

The VistA software uses the word phrase "fill a prescription" to mean that drugs are given to someone based on an order or prescription. In Inpatient pharmacy, "filling a prescription" is broken up into two sub-actions, "dispensing a prescription" and "administering a prescription". The phrase "dispense a prescription" means that the drugs have left the control of the pharmacy, usually by being placed in a location near the patient, which is still heavily controlled.  The phrase "administer a prescription" means that a nurse or other clinician removes the medicine from the dispense location/cabinet and brings it to a patient who, hopefully, takes the medicine.  Since patients might spit up the medicine, refuse to take it by dropping it on the floor, etc, a computer system can't bill based on the successful administration of medicine. Usually the billing starts when the medicine has been dispensed to the nurse.  A few times, the billing is reversed if the medicine is refused but not "wasted", and a few times a particular patient may get a bill for more dispensed meds than actually was taken, usually for these reasons.

 

In the outpatient case, the process is wholly within the Pharmacy,

and the ordering process is by Clinicians. I think part of this is

because the process of dispensing and filling are done inside the 

pharmacy, and because patients administer their own meds,

 

Actually, the nurses get the same bottles of meds that the patients get, but the nurses keep the bottles locked up in their cart.  They push the cart all over the floor from one patient’s bed to the next, and each time, they pull the med bottles from the cart, dispense one or more pills to one patient on scheduled routes, and iterate over all the patients they are assigned. 

 

This method of nurses keeping the bulk containers is not common in the VA, and some other hospitals.  In these medical treatment facilities, the more common method is "unit dose" packaging where a patient gets the actual pills/doses needed in separate packaging, usually with a bar code stamped on it to aid in tracking the administration of the medicine.  These individualized packaged medicines are usually stored in a med cart or closet in a drawer specifically labeled for that patient.  The process of "med cart filling" occurs regularly (usually once or more a day) to replenish the unit dose packed medicines before they need to be administered.

 

In the Inpatient case, there are different people, (nurses, patients,

pharmacy clerks and techs) who do different parts of this, and

it has to be done over an extended time period.  The simple act

of addition on the outpatient process becomes individual steps that

each must be managed, recorded, and performed.

 

That management is now done by the nurse in charge of each shift, who coordinates with the other nurses, the pharmacy and refill schedule issues. 


My experience has been that this is a joint effort between multiple departments of the hospitals. Rarely do nurses carry the full load of drug handling from the loading/shipping dock through the placement in the local medical cart/closet.
 

My wife was a nurse for years, though her degree was in accounting.  Later she was a medical auditor at a hospital before she became disabled.  As an experienced shop floor system designer, I listened to the problems she told me and it seems relatively simple to put up a web site internal to the hospital and give each nurse a computer with access to the needed info. 


This might be a design that works for some hospitals, but VistA certainly does not have internal websites controlled solely by the nurses.
 

That can both help then figure out whatever they need to, and also measure their work, the patients’ doses, the accuracy of dosage times with specified prescription delivery times, and many other metrics to help the NIC, the DON and the Administrator figure out how to keep things working. 


By the way for those who don't know the acronyms, NIC is Nurse in Charge, and and DON is Director of Nursing.
Rich is also simplifying to a degree, there is a lot of work making sure these metrics work well for all the different levels from a nurse who deals primarily with patients up through a nurse who deals mostly with organization issues. 
 

How to express and represent these two different approaches

requires a more sophisticated approach to time and process.

The orders are similar, and stored (in VistA) in the same collection
of data (ORDERS file#100) but the use of the order and

way to handle time is significantly different.

An Order is a Purchase Order, which splits into numerous Work Orders, each of which specifies the Context in which it operates.  Each WO processor (called an activity in IDEF) uses the various objects connected to its context specification.  I developed a factory work flow management system that tracked each WO by its ID, and each employee starting and stopping each activity by the employee ID, and each instance of a process (action – one performance of an activity) and calculated, over any chosen duration, the throughput in dollars, costs of actions, profitability of the duration, and the contribution of each employee and each activity to total financial net worth. 

Well, as to orders, I was actually discussing currently working software in a hospital, with its own data structures. So the issue needs to be more than just saying there is another solution, but how to merge the existing solution with the more general solution as you have described above. Especially if you have already deployed software, how do you justify an organizations investment into back-fitting this extra code and data?

 

Just putting up a web site with access to the database controlled by authentication of the employee and associating permissions with that authentication is pretty easy stuff.  Given the database exists now in interactive form. 


These are the issues that people fight about for years.  What is simple to a computer analyst is not simple for other folks.  It is also true that web-design approaches clash with existing centralized database approaches, with everyone advocating the approach that they are most comfortable with.
 

If not, it would be easy to justify interactive access for the nurses and pharmacy crew, auditors, NIC, DON and Administrator and the gain in productivity would easily justify that expense within the usual 3 year planning horizon.  That’s at least a 33% ROI. 


Grin. I don't think anything is easy to justify (even though all those people have interactive access within VistA) but it is fun to imagine such a sweeping change happening within only three years.
 

 

In the context of ontolog-forum, I think the rubber meets the road when you start to deal with how to describe what is happening as the process is supported by software, perhaps with a logical model that takes into account time and how the description is being elaborated, and some how make the description integral to the software so it will be maintained as the software is changed.  Interoperability between two logical views is not easy.

 

The best approach to interoperability so far, IMHO, is the EHR which is so well specified in XML as to be exactly interchangeable even with different doctors and nurses recording their subjective observations and conclusions.  The doctors are have trouble getting used to the extra time they have to put in, and the constraints that the EHRs impose on treatment options, but they are gradually getting used to it. 


It's been my experience that any well specified format (in XML or not) there are times when it is not specified enough, and times when it is constrictively specified.  And depending on the person using the format, and what they are trying to accomplish, sometimes the same format is both.  Some people have problems being consistent in their observations, even when seeing the same patient within the same week.
 

 

EHR databases of patients’ private information is the obstacle there.  Getting informed consent for every record to be captured in a database is what is needed if you are a medical researcher.  If you are a consumer struggling with insurance companies, or Obamacare, or Medicare, or any of the other information hoarders, you probably resent having your data being known to people who can figure out what to charge you better because they have that data.  That suspicion is going to be there given the current culture. 

 

VistA has explicit data definitions that are used as data is stored, but there still needs to be a way to tie a logical description to the data as it is being created and maintained.  We have transaction processing that is part of database handling, how do we maintain the low level software issues to the logical level ? 

The same can be done in the medical world.  When each pill is delivered to each inpatient, a signal should be given that identifies the nurse, the patient, the pill and the date-time.  That capture into a database over time can track the quality of on-time consumption, for each patient, for each nurse, and for each pill. 

Actually, that signal does occur. It is called the Administration of the drug, and usually has checks and balances based on bar code scanning, expected time of delivery. There are also issues about failure to scan, and reasons why PRN (as needed) medication was administered, if there was pain, pain-level, pain-location, and so forth.

 

Congratulations!  You are at a modern hospital.  There are many without that equipment still. 


Yes, but as I mentioned earlier, using BCMA (Bar Code Medicine Administration) has impact in non-obvious ways, such as the unit dose packaging.

But trying to explain an approach to time before a programmer
can work on the system can be seen as a drag on resources.

There isn't a lot of standard vocabulary in the industry that you
can assume is already understood, and many folks devalue

education on basics feeling that getting involved in producing

work is of higher value.

Also, programmers prefer to innovate solutions to problems encountered rather than execute somebody else’s plan for them. 

True enough. Or even if they are willing to execute someone's plan, they may retire without documenting the system, refactor code and data, or otherwise obscure what the original plan was.

 

Companies that solve the problem, such as Google, and a few others, use the approach of empowering their staff to take initiative, to make exploratory projects that evaluate new approaches, and otherwise meet the requirements of the workplace issue by issue.  Traceability is the word used to ensure that each sentence in a requirements document corresponds to some software, event, data packet, or other object in the software architecture and its instances.  That is a much more effective way to develop local solutions to local problems.  Identify the busy people and give them support staff to help the process along, but don’t decree a set of abstractions that have no link to actual requirements. 

How sophisticated an approach to time can we support in software?

Exactly the simplest one each programmer chooses as needed to overcome any obstacle to the program said employee is writing.  People don’t like to be given arbitrary direction and then told to squeeze it out in half the schedule. 

The trick is making sure the other needs are visible so the programmer doesn't simplify out needed information or not even record it. Even the things I did yesterday to optimize a process might cause headaches to me today as I try to give a report to someone monitoring or auditing the process.

 

Yes, reality is a complicated mess full of logical contradictions and full of both rewards and penalties. 

 

You’re up against a politically sensitive situation by demanding elaborations of time without understanding the environment they are working in.

 

I think as the impact of any computer program grows, it only monotonically increases its political sensitivity within an organization over time.

 

Yes, until the shop closes. 

 

-Rich


David Whitten

 

On Wed, Jun 18, 2014 at 11:25 AM, Pat Hayes <phayes@xxxxxxx> wrote:


On Jun 17, 2014, at 9:08 AM, David Whitten <whitten@xxxxxxxxxx> wrote:

> I would like to point out that using July as a time is problematic,

I entirely agree, but didn't want to complicate my response by going into to many issues at the same, er, time.

> as I believe that:
>
> (cl:comment 'C employs P during time interval T'
>         (employs C P July)
> )
>
> would say that July is a time interval.
> To my way of thinking, July is the name of the (infinite) set
> of all time intervals that can be classified as overlapping with
> the month of July in any year.

A class of time intervals, in other words. Makes sense. There are other approaches, of course, but for sure, one needs to have a carefully thought through ontology of times and intervals and dates, and stick to it carefully. Just using words like "July" and hoping for the best, is not going to work.

>
> Thus, the statement (employs IBM Fred July)
> says that IBM employs Fred during the month of July in
> every possible year. (perhaps Fred is a seasonal worker)
>
> This is a different statement by far than saying IBM employs
> Fred for a particular month of July in a particular year.
> I expect also that the 3-D vs 4-D time view would argue
> that it is actually a time-slice of Fred that is employed rather
> than the Fred that exists at all times.

I have come to think that the blood spilled over this 3d/4d contrast is not worth the cost. We all agree that things like persons last through time while retaining their identity: I am the same person now as I was ten years ago. Exactly how you reconcile this with the other obvious fact that things change with time, is really only a matter of notation. If you prefer to write the time parameter as attached to relations or predicates, and think of properties changing with time, then that is one way to do it (often called 3-D); if you prefer to attach the time parameter to object names and think of this as time-slices of things, that is another (4-D). But  it is straightforward to translate between these, and with an expressive enough logic (such as ISO common logic) even to state their equivalence using axioms. As long as we all keep our philosophers on a short leash and stop them snarling at one another, we should have no trouble.

Pat Hayes

>
> David Whitten
> 713-870-3834
>
>
>
>
> On Tue, Jun 17, 2014 at 7:51 AM, Tara Athan <taraathan@xxxxxxxxx> wrote:
> On 6/17/14 1:03 AM, Pat Hayes wrote:
> >> Using the IKL “that” operator and a “during” relationship and the concept “July” (a ‘calendar month’):
> > Whoa. No, this is NOT the right way to do it. In fact, this is meaningless. According to the IKL semantics, (that (employs C P)) denotes a fixed proposition which is true or false. There is no room for any time-dependent variability in its truth value, or for making it depend on some other parameter.
> >
> It may not be the *best* way to do it, but I don't agree that it's wrong
> or meaningless. Using the proposition (that (employs C P)) as an
> argument in a relation is not obstructed by its denotation of a fixed
> proposition which is true or false (in any given interpretation).
>
> Starting off without quantifiers:
>
> (cl:comment 'C employs P'
>     (employs C P) )
>
> (cl:comment 'It holds during time interval T that C employs P'
>     (during (that (employs C P)) T )
>
> Nothing wrong with that - the truth values of these sentences are
> independent of each other.
>
> Now bring on the quantifiers to relate the two
>
> (forall C P
>    (if
>      (cl:comment 'C employs P'
>        (employs C P) )
>      (exists T
> (cl:comment 'It holds during some time interval T that C employs P'
>          (during (that (employs C P)) T )
> ) ) )
>
> Some users may find this clearer than the polymorphic representation.
> Why not let them use it?
> It is still possible to have the polymorphic representation behind the
> scenes for reasoning purposes.
> (forall C P T
>    (iff
> (cl:comment 'It holds during time interval T that C employs P''
>         (during (that (employs C P)) T )
> (cl:comment 'C employs P during time interval T'
>         (employs C P T)
> ) )
>
> Also, using the "that" operator for temporal context is a gateway to
> using it for other contexts/modalities.
> I find the symmetry appealing:
> (cl:comment 'It holds before time interval T that C employs P'
>     (before (that (employs C P)) T)
> (cl:comment 'It holds after time interval T that C employs P'
>     (after (that (employs C P)) T )
> (cl:comment 'It is possible that C employs P'
>     (possible (that (employs C P)) )
> (cl:comment 'It is forbidden that C employs P'
>     (forbidden (that (employs C P)) )
> (cl:comment 'Jane believes that C employs P'
>     (believes Jane (that (employs C P)) )
> (cl:comment 'Omar knows that C employs P'
>     (knows Omar (that (employs C P)) )
> (cl:comment 'Maria asserts that C employs P'
>     (asserts Maria (that (employs C P)) )
> ...
>
> Tara
>
> _________________________________________________________________
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
> Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
> Shared Files: http://ontolog.cim3.net/file/
> Community Wiki: http://ontolog.cim3.net/wiki/
> To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
>
>
>
> _________________________________________________________________
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
> Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
> Shared Files: http://ontolog.cim3.net/file/
> Community Wiki: http://ontolog.cim3.net/wiki/
> To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J

------------------------------------------------------------
IHMC                                     (850)434 8903 home
40 South Alcaniz St.            (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile (preferred)
phayes@xxxxxxx       http://www.ihmc.us/users/phayes




 



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
 

 



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
 


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J    (01)

<Prev in Thread] Current Thread [Next in Thread>