Difference between revisions of "MUMPS Code Examples"

From VistApedia
Jump to: navigation, search
(MUMPS Code to iterate over Data Dictionary Number of every FileMan File & Subfile)
(MUMPS Code to iterate over every global)
Line 12: Line 12:
 
NOTE: this is NON-STANDARD MUMPS.  Known to work on GT.M
 
NOTE: this is NON-STANDARD MUMPS.  Known to work on GT.M
  
<code>
+
<pre><code>
SET GBLNAME="^%" FOR  SET GBLNAME=$o(@GBLNAME) Q:GBLNAME=""  DO Something(GBLNAME)
+
SET GBLNAME="^%" FOR  SET GBLNAME=$ORDER(@GBLNAME) QUIT:GBLNAME=""  DO Something(GBLNAME)
</code>
+
</code></pre>
  
 
=== MUMPS Code to iterate over every FileMan File ===
 
=== MUMPS Code to iterate over every FileMan File ===

Revision as of 18:30, 27 February 2010

Instructions for page

For each of these code fragments, be sure to put them in CODE tags, and note whether the code is Standard MUMPS, and if not, what MUMPS systems it works on.

 === Title for explanation of code purpose ==
 NOTE: Standard MUMPS
<code>
</code>

MUMPS Code to iterate over every global

NOTE: this is NON-STANDARD MUMPS. Known to work on GT.M

<code>
SET GBLNAME="^%" FOR  SET GBLNAME=$ORDER(@GBLNAME) QUIT:GBLNAME=""  DO Something(GBLNAME)
</code>

MUMPS Code to iterate over every FileMan File

NOTE: Standard MUMPS

S FILE=0 F S FILE=$O(^DIC(FILE)) Q:FILE'=+FILE D Something(FILE)

MUMPS Code to iterate over Data Dictionary Number of every FileMan File & Subfile

NOTE: Standard MUMPS

S DDNUM=0 F S DDNUM=$O(^DD(DDNUM)) Q:DDNUM'=+DDNUM D Something(DDNUM)

Getting the {K} closed root for a Data Dictionary Number

NOTE: Standard MUMPS Given a Data Dictionary number generates a closed root with the "variables" expressed as as the three letters: "{K}" Note this allows one to iterate through all of the "constant" parts of root using $PIECE and two argument $LENGTH. The result CANNOT be used directly with indirection i.e. @ROOT@(something) until the {K} text is replaced with either a constant or a variable.

S RESULT=$$ROOT^DMSQU(ddnum)

Example: PATIENT File #2 has a Field #1900 the "APPOINTMENT" multiple that is in DDNUM 2.98

MUMPS> W !,$$ROOT^DMSQU(2.98)

^DPT({K},"S",{K})