question in a character used in DIC(0) VA FileMan 22.2

84 views
Skip to first unread message

grzeis...@gmail.com

unread,
May 24, 2022, 2:14:27 PM5/24/22
to Hardhats
Lowercase 's' is appended to the string in DIC(0). That action happens in line: D+4^DICM.

I D="B",T'["D",'$G(DITRANX) S DIC(0)=DIC(0)_"s"

Lowercase 's' is not documented in the VA FileMan v22.2 Developer's Guide.

What does the 's' mean related to calling the lookup DIC?

Thanks!

Sam Habiel

unread,
May 24, 2022, 2:29:07 PM5/24/22
to hardhats
Greg,

There are a bunch of lower case flags for various things that are only used internally in Fileman. They are not intended to be used by outsiders.

My quick look says it's the same as upper case "s", but only used internally, and only barely.

--Sam

--
--
http://groups.google.com/group/Hardhats
To unsubscribe, send email to Hardhats+u...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "Hardhats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/60ada933-2d2d-49f5-86e2-46bf7f36f8fdn%40googlegroups.com.

David Whitten

unread,
May 24, 2022, 2:38:50 PM5/24/22
to Hardhats,
I think "s" is used when FileMan has to add a screening code for the input. 

Dave Whitten

grzeis...@gmail.com

unread,
May 24, 2022, 2:49:55 PM5/24/22
to Hardhats
I a trying to debug a thorny issue and am working my way through FM (DIC). I am not trying to use it; I am curious as to its meaning.

David Whitten

unread,
May 24, 2022, 3:02:45 PM5/24/22
to Hardhats,
What is DIC doing that's unexpected?

By the way, do you already know about https://vivian.worldvista.org/dox/Routine_DIC.html ?

Dave Whitten


grzeis...@gmail.com

unread,
May 24, 2022, 3:19:49 PM5/24/22
to Hardhats
David, new patch causing errors blowing up in DIC. (DICR undefined). Weird, lookup on PATIENT file. Found out stack will not track the special lookup routine (DPTLK b/c of GOTO?). Tried to re-create as best I could. I stepped through FM w/"L+".

No issue with FM other than getting dizzy going through line by line (almost all of them :')).

I am convinced it is not a FM issue (still want to know about 's' so do others) can't that be my reward for going though FM? :')

As I was told, when I was new to this world: your first instinct that the problem was caused by a FM bug is almost certainly wrong.

It's not a FM bug the error is caused by any number of non-FM reasons b/c of not cleaning up symbol tables, calling code from FM that references ancillaries that kill DI* variables, etc...

Sloppy... The issue is just getting it to happen with me at the helm.

Slow and steady wins the race...

Still want to know about 's'.  George?

Sorry, yes I know about ViVian it is awesome!

David Whitten

unread,
May 24, 2022, 3:47:40 PM5/24/22
to Hardhats,
Was it a patch to FileMan or some other package ?

The local variable DICR is set up when FileMan calls itself recursively. 

Yes. The Patient File#2 uses its own special lookup routine, which I think is a variant of the one used by IHS. 

Dave Whitten

Sam Habiel

unread,
May 24, 2022, 3:48:02 PM5/24/22
to hardhats
Can you tell me more about what you mean here: Found out stack will not track the special lookup routine (DPTLK b/c of GOTO?).

You can tell Fileman to ignore the special lookup using a specific flag to DIC(0).

--Sam

On Tue, May 24, 2022 at 3:19 PM grzeis...@gmail.com <grzeis...@gmail.com> wrote:

David Whitten

unread,
May 24, 2022, 4:14:14 PM5/24/22
to Hardhats,
When you are debugging, you can dynamically change DIC(0) to concatenate the letter "I" onto it to say you don't want it to use the special lookup routine. 



I

If DIC(0) contains I, any special user-written lookup program for a file will be ignored and DIC will proceed with its normal lookup process.

You can write a special lookup program to be used to find entries in a particular file. This special program can be defined by using the Edit File option of the Utility Functions submenu (see the "Special Lookup Programs" section in the Advanced File Definition chapter.) When a lookup program is defined, VA FileMan will bypass the normal lookup process of DIC and branch to the user written program. This user written lookup program must respond to the variables documented in this section and provide the functionality of DIC as they pertain to the file.


Dave Whitten

grzeis...@gmail.com

unread,
May 24, 2022, 4:39:56 PM5/24/22
to Hardhats
Sam,
When I look at the error trap I see that stack shows the application's routines and FM routines. I know DPTLK has to get hit but since the code in FM says GOTO ^DPTLK as opposed to DO ^DPTLK my guess is that GOTO in not recorded in the stack (nothing to pop on/off w/GOTO).

David, thanks for the tip! I will try that.

Skip

unread,
May 25, 2022, 9:30:21 AM5/25/22
to Hardhats

Kekoa

unread,
May 28, 2022, 5:42:32 AM5/28/22
to Hardhats
Direct link - see the bottom - https://www.hardhats.org/fileman/pm/gfs_2b.htm

David Whitten

unread,
May 28, 2022, 3:09:27 PM5/28/22
to hard...@googlegroups.com
I’m not clear that an “s” in DIC(0) is the same meaning as “s” in the file attribute node. 

My gut says it probably is, but I’m open to the possibility that it is not. 
To unsubscribe, send email to Hardhats+unsubscribe@googlegroups.com


---
You received this message because you are subscribed to the Google Groups "Hardhats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/6c0f9709-b989-4d6c-927c-96eca4960678n%40googlegroups.com.

George Timson

unread,
May 30, 2022, 4:43:06 PM5/30/22
to Hardhats
That little "s" in DIC(0) is doing the same thing that a capital "S" would do, in some recursive situation where FileMan doesn't need to echo back to the user the NAME of the Entry.

If DPTLK is being called, I do not know why we would have found ourselves back in the routines used for 'DIC Lookup'  in normal files.

--George Timson

Reply all
Reply to author
Forward
0 new messages