Kevin wrote: > I am guessing this must be done through a cross >reference, or perhaps a trigger of some sort(?). But >it seems that the system would need to wait until the >user has put data in all the fields before launching a >process that creates records in other files. > >Any idea how this is done?
I'm not all that familiar with the Pharmacy package and it depends on how you are entering the data. Since I don't know the answer for this specific case, there are quite a few possibilities depending on the data entry path. 1. Most probable method: a Mumps style xref or a Trigger xref. 2. Possible method: a routine call within the Input Transform. 3. Possible method: Mumps coded business process in a Pharmacy option. Hopefully you are using an existing Pharmacy option to add/edit items. If you are adding directly through FileMan you may be bypassing important hard-coded links and checks. Thom H. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin Toppenberg Sent: Tuesday, April 26, 2005 5:51 PM To: [email protected] Subject: RE: [Hardhats-members] Fileman cross-reference questions Thomas, Thank you for this well thought out and helpful reply. When I create an entry in the PHARMACY ORDERABLE ITEM file, I find that an appropriately matched entry in the ORDERABLE ITEM file, and also some data is put into the QUICK VIEW file. I am guessing this must be done through a cross reference, or perhaps a trigger of some sort(?). But it seems that the system would need to wait until the user has put data in all the fields before launching a process that creates records in other files. Any idea how this is done? Also, I have seen several places the nominclature of node 1: set, node 2: kill, and node 3: do not delete. I am guessing that the first two are the set and kill codes discussed below. But what about that 3rd node? Thanks Kevin --- "Holloway, Thomas (EDS)" <[EMAIL PROTECTED]> wrote: > > Kevin asked: > So here are my questions: > > >1. Apparently there is some M code associated with > >each cross-reference. When is this code executed? > > For every add/edit/delete of that field, FileMan > triggers the > appropriate Set or Kill. Also if you re-index the > file, the code will > be 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)="" > > It is stored in ^DD(file,field,1,index #,n) where > index # is a > sequential IEN at the sub-file level. Like this: > ^DD(50,2.1,0) = PHARMACY ORDERABLE > ITEM^P50.7X^PS(50.7,^2;1^I $D(X) N ND > S ND=$G > (^PSDRUG(DA,"ND")) I > +ND,+$P(ND,"^",3),+$$PSJDF^PSNAPIS(0,$P(ND,"^",3))'=$P(^PS( > 50.7,X,0),"^",2) K X > ^DD(50,2.1,1,0) = ^.1 > ^DD(50,2.1,1,1,0) = 50^ASP > ^DD(50,2.1,1,1,1) = S > ^PSDRUG("ASP",$E(X,1,30),DA)="" > ^DD(50,2.1,1,1,2) = K ^PSDRUG("ASP",$E(X,1,30),DA) > ^DD(50,2.1,1,1,3) = Do not delete > ^DD(50,2.1,1,1,"%D",0) = ^^1^1^2970925^^ > ^DD(50,2.1,1,1,"%D",1,0) = Cross-reference to > PHARMACY ORDERABLE ITEM > file #50.7 > > >3. From above, it looks like there is separate > >'setting' code and 'killing' code. Is this true? > > Yes it's true for regular cross-references. FileMan > will automatically > create the Set and Kill code in the format that you > have already seen. > If you create a Mumps xref or a Trigger xref, you > will control whether > or not there is Set or Kill > code and control the content. There are some very > creative things you > can do with these types but a simple thing might be > to Set an xref > exactly as FM would do but not have any Kill code. > You will end up with > an historical record that might be useful for some > purpose. > > >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. > > Exactly. > > Other than reading the documentation, the best > way to find out "what" > and "where" is to create a small test file with only > two or three > fields. At that size, you can see the whole ^DD > entry and detect > additions and changes as you try adding different > cross-reference types > to the file. If you are going to be creating a new > package and adding > new files of your own design, you should look into > the New Style > cross-references and Keys. There is a tutorial > available in the > Infrastructure documentation library. > > Thom H. > > > "Learn from the mistakes of others. You can't live > long enough to make > them all yourself." > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > On Behalf Of Kevin > Toppenberg > Sent: Monday, April 25, 2005 5:47 PM > To: Hardhats Sourceforge > Subject: [Hardhats-members] Fileman cross-reference > questions > > 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 > === message truncated === __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ------------------------------------------------------- SF.Net email is sponsored by: Tell us your software development plans! Take this survey and enter to win a one-year sub to SourceForge.net Plus IDC's 2005 look-ahead and a copy of this survey Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix _______________________________________________ Hardhats-members mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hardhats-members ------------------------------------------------------- SF.Net email is sponsored by: Tell us your software development plans! Take this survey and enter to win a one-year sub to SourceForge.net Plus IDC's 2005 look-ahead and a copy of this survey Click here to start! http://www.idcswdc.com/cgi-bin/survey?id5hix _______________________________________________ Hardhats-members mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hardhats-members
