Conceptually, cross-references are pretty simple. When a field is
edited, first the kill logic, then the set logic is executed for that
cross-reference. This makes it easy to identify the record or records
for which a field has a given value. At least that's the usual case.
Some of the more interesting types of cross-references are "whole file"
cross-references on subfiles, allowing you to idntify which records
have a given subentry and what the subsrecord number is, and MUMPS type
cross-references that allow you to define your own set and kill logic
for special purposes. Fileman also allows you to build indexes of
multiple fields.

You will also encounter references to traditional and new style
cross-references. The code for traditional cross-references is stored
in the DD, but for new style cross-referencess, it is in the INDEX
file. New style cross-references have various features giving you more
flexibility and control over execution. They are also safer in a
multi-user environment, but the majority of cross-references are
traditional, and traditional cross-references are often all you need.
--- Kevin Toppenberg <[EMAIL PROTECTED]> wrote:
> Hey all,
> 
> I've come to that time in my life where someone needs
> to sit me down and tell me all about.... well...
> fileman cross-references.  And I specifically want to
> know how to fill them with the data I want.
> 
> Let me set up my situation first.  I am trying to
> understand the linkages between files etc. that make
> up the pharmacy package.  
> 
> Currently, with Dave Whitten's help, I have one drug
> that shows up when I try to add a new drug in CPRS.
> 
> Here is an overview of the steps that go behind
> getting information about the drug to show up in CPRS.
> 
> 1. CPRS is given a list of available drugs.  This list
> is stored in File 101.44 (ORDER QUICK VIEW).  In my
> example, diltiazem is stored as an option like this:
> 44^DILTIAZEM.  This 44 is the IEN of the Rx in file
> 101.43 (ORDERABLE ITEM).
> 
> 2. During lookup, it uses record/entry# 44 from
> 101.43, and gets the ID field (field 2).  This is
> supposed to have a format like this: 'package
> code;99XXX' where XXX indicates the package table
> originating this item (i.e. RAP,LRT,etc.).  In my
> example, the code was 1.
> 
> 3. This package code is then used to access a cross
> reference in file #50 (DRUG file, ^PSDRUG).  It
> accesses it like this: $order(^PSDRUG("ASP",1,0)),
> where 1 is the package code from above.  Because I
> have only one drug installed, there is only one item
> in this cross-reference.  This is 3819.  Thus
> ^PSDRUG("ASP",1,3819)="".
> 
> 4. This "3819" from above is the IEN of the drug in
> the DRUG file.  From this entry, the available dosages
> etc. are available.
> 
> 5. So to make drugs available in CPRS, file #50 (DRUG
> file) must not only have the drug defined, but there
> must also be entries entries in the "ASP" cross
> reference.
> 
> --------------
> 
> OK, that's the setting.
> Now, what I have been able to figure out
> 
> 
> 1. When I lookup information about the "ASP"
> cross-reference in VPE, I see only this info about the
> index:
> 
> Index    File       Fields
> *ASP     50         PHARMACY ORDERABLE ITEM (#2.1)
> 
> So I look it up in the Fileman data dictionary
> utilities and get this information:
> 
>   ASP    REGULAR
> Field:  PHARMACY ORDERABLE ITEM  (50,2.1)
> Description:  Cross-reference to PHARMACY ORDERABLE
> ITEM file #50.7.
>   1)= S ^PSDRUG("ASP",$E(X,1,30),DA)=""
>   2)= K ^PSDRUG("ASP",$E(X,1,30),DA)
>   3)= Do not delete
> 
> -------------
> 
> So here are my questions:
> 
> 1. Apparently there is some M code associated with
> each cross-reference.  When is this code executed?
> 
> 2. Where is this code stored?  When I look in ^DD, I
> find only ^DD(50,0,"IX","ASP",50,2.1)="" and
> ^DD(50,"IX",2.1)=""
> 
> 3. From above, it looks like there is separate
> 'setting' code and 'killing' code.  Is this true?  
> 
> 4. How is the cross-reference filled?  -- I think I
> just figured out the answer on this one.  It occurs
> when a value is put into field 2.1 in one of the file
> #50 records.
> 
> I think I have more questions, but that's enough for
> now..
> 
> Thanks
> Kevin
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> 
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real
> users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Hardhats-members mailing list
> Hardhats-members@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hardhats-members
> 

A practical man is a man who practices the errors of his forefathers. 
--Benjamin Disraeli
====
Greg Woodhouse 
[EMAIL PROTECTED] 
[EMAIL PROTECTED] 





-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to