{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} {\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f25\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f138\froman\fcharset238\fprq2 Times New Roman CE;}{\f139\froman\fcharset204\fprq2 Times New Roman Cyr;} {\f141\froman\fcharset161\fprq2 Times New Roman Greek;}{\f142\froman\fcharset162\fprq2 Times New Roman Tur;}{\f143\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f150\fmodern\fcharset238\fprq1 Courier New CE;} {\f151\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f153\fmodern\fcharset161\fprq1 Courier New Greek;}{\f154\fmodern\fcharset162\fprq1 Courier New Tur;}{\f155\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f288\fswiss\fcharset238\fprq2 Tahoma CE;} {\f289\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f291\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f292\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f293\fswiss\fcharset186\fprq2 Tahoma Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255; \red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0; \red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive \ul\cf2 \sbasedon10 Hyperlink;}{ \s16\qc\widctlpar\adjustright \b\fs32\cgrid \sbasedon0 \snext16 Title;}{\s17\widctlpar\adjustright \cbpat9 \f25\fs20\cgrid \sbasedon0 \snext17 Document Map;}}{\*\listtable{\list\listtemplateid-730538060{\listlevel\levelnfc23\leveljc0\levelfollow0 \levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\cf0\fbias0 \fi-360\li360\jclisttab\tx360 }{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3874 ?;}{\levelnumbers;} \f3\cf0\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc2\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers\'01;}\fi-360\li1080\jclisttab\tx1080 }{\listlevel\levelnfc0\leveljc0\levelfollow0 \levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'03);}{\levelnumbers\'02;}\fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc4\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'04);}{\levelnumbers\'02;}\fi-360\li1800 \jclisttab\tx1800 }{\listlevel\levelnfc2\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'05);}{\levelnumbers\'02;}\fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0 \levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\fi-360\li2520\jclisttab\tx2520 }{\listlevel\levelnfc4\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\fi-360\li2880\jclisttab\tx2880 } {\listlevel\levelnfc2\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\fi-360\li3240\jclisttab\tx3240 }{\listname ;}\listid1244029289}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23 \leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1392118763}}{\*\listoverridetable{\listoverride\listid1392118763\listoverridecount0\ls1} {\listoverride\listid1244029289\listoverridecount0\ls2}}{\info{\title Spoof version}{\author E.Hagood}{\operator E.Hagood}{\creatim\yr2010\mo1\dy7\hr16\min38}{\revtim\yr2010\mo3\dy31\hr14\min11}{\version7}{\edmins120}{\nofpages5}{\nofwords1845} {\nofchars10519}{\*\company The Medical Group of Greeneville}{\nofcharsws12918}{\vern89}}\widowctrl\ftnbj\aenddoc\hyphcaps0\formshade\viewkind1\viewscale109\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1 \pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5 \pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s16\qc\widctlpar\outlinelevel0\adjustright \b\fs32\cgrid {Description of modifications made to TMG-CPRS \par }\pard\plain \qr\widctlpar\outlinelevel0\adjustright \fs20\cgrid {\tab }{\ul Last Modified: 01-07-10 \par }\pard \qc\widctlpar\adjustright {\ul \par }\pard \widctlpar\adjustright {Following is a list of modifications in the TMG-CPRS version: \par }\pard \li360\widctlpar\adjustright { \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Customizable Splash Screens \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {CPRS can now have a customized splash screen. To achieve this, simply place the desired image into the directory where CPRSChart.exe resides, titled splash.jpg and it will automatically be shown.\tab \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Add New Patients \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright { On the patient selection screen, if the TMG patch has been applied to the server and the user does not have the TMG CPRS HIDE ADD PATIE NT security key, then Add Patient button will be displayed. This will allow the user to enter a minimal amount of demographics to create the new patient. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Edit Patient\rquote s Demographics \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {To edit the patient\rquote s demographics go to File }{\f3 \'2d\'3e}{ Edit Patient Demographic s. Alternatively, by clicking on the patient\rquote s name at the upper left hand corner of CPRS a window will open listing the patient\rquote s demographics. Click the \ldblquote Edit Patient Demographics\rdblquote button to edit the patient\rquote s demographics. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}The Edit screen has two tabs, a Demographics tab and an Advanced tab. The Demographics tab has then most common fields. The Advanced tab contains all possible fields in the Patient file. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Bug With Patient List \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {Corrected the Exception Error that was triggered when selecting any radio but ton in the Patient List group on the Patient Selection form. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Added functionality for Patient Lookup\tab \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright { Patient lookup was enhanced to lookup: Phone number (work, home, cell), Date of Birth, and Partial Names. e.g. 10/1/67, October 1, 1967, 555-555-5555, (555)222-2222, Smi,Jo, Cutsha,C. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Colored Tabs (Not MS Vista compatible) \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {Each of the tabs can have their own color. These colors can be customized in Tools }{\f3 \'2d\'3e}{ Options }{ \f3 \'2d\'3e}{ Other Parameters }{\f3 \'2d\'3e}{ Adjust Tab Colors. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Tab Position \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {Tabs can now be moved from the standard bottom to the top, left, or right hand side. To move them, go to Tools } {\f3 \'2d\'3e}{ Options }{\f3 \'2d\'3e}{ Other Parameters }{\f3 \'2d\'3e}{ Select Tab Positioning \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Multi Language support \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright { CPRS can be changed to any language, provided a translation file is available. To change the language go to Tools }{\f3 \'2d\'3e}{ Options }{\f3 \'2d\'3e}{ Language. Three other languages are currently on the TracServer: Danish, Spanish (Traditional Sort), and Portugese (Brazil). \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}To create a new language translation file, first download the free language editor at }{\field{\*\fldinst { HYPERLINK http://www.dk-soft.org/products/dklang/ }{{\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b02000000170000002800000068007400740070003a002f002f007700770077002e0064006b002d0073006f00660074002e006f00720067002f00700072006f00640075006300740073002f0064006b006c0061006e0067002f000000e0c9ea79f9bace118c8200aa004ba90b6800 000068007400740070003a002f002f007700770077002e0064006b002d0073006f00660074002e006f00720067002f00700072006f00640075006300740073002f0064006b006c0061006e0067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab00000000}}}{\fldrslt {\cs15\ul\cf2 http://www.dk-soft.org/products/dklang/}}}{ . Once opened, use the file CPRSChart.dklang as the Language source file (l ocated in the same folder as CPRSChart.exe). This displays all static text in CPRS and allow you to add a translation for each. Save this file with the other .lng files and it will then show in the Languages tab with the others. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b HTML Note Rendering \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {If a do cument is saved with tags, it will be rendered in HTML when displayed in the Notes tab. To create a document in HTML, right click inside the document and select \ldblquote Change edit mode to formatted text\rdblquote (if the document is already in HTML mode, this option will read \ldblquote Change edit mode to plain text\rdblquote ). An option will then be given to start all notes in this mode. When editing in formatted mode, buttons appear for bold, italics, font size, etc... (Note: including images is not supported at this time) \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b HTML Templates \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {To add HTML tags to a template, you must begin with \ldblquote \{HTML:\rdblquote and end with \ldblquote \} \rdblquote . e.g. \{HTML:\} This will be bold \{HTML:\} , \{HTML:\} This text will be italicized and underlined \{HTML:\}. Note: To utilize the HTML tags, the current note must be in HTML mode prior to entering the template. If not, the tags will not be displayed and consequently lost. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Skins (Not currently active) \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {To change CPRS\rquote s skin(which just alters the color and look of the program), go to Tools }{\f3 \'2d\'3e}{ Options }{\f3 \'2d\'3e}{ Appearance. Note: This function is not currently available. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Web tab (defined server-side) \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright { Functionality that can be enabled on the server side (Read documentation in GETURLS^TMGRPC1.m). This could be easily modified to allow inclusion of web based e-prescribing or billing system from within CPRS. Web page will show up as additional folder tab. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Spoof Another Version \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright { This feature allows a user to spoof a VistA server into allowing a different CPRS version to connect. In the parameters of the CPRS shortcut, put \ldblquote SPOOF-VER=\rdblquote and then the version of the server. i.e. If you want to connect a 1.0.26.76 version of CPRS with a 1.0.26.66 VistA server you would place \ldblquote SPOOF-VER=1.0.26.66\rdblquote as a parameter into the shortcut to CPRS. \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li360\widctlpar\jclisttab\tx360\ls2\adjustright {\b Expanded Template Functions, including math functions and dynamic text objects \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {The traditional CPRS template functionality allowed syntax as below. \line }{\f2\fs16\cgrid0 This is a test template for |PATIENT NAME|\line \line Enter value: \{FLD:NUMB1-16\}\line \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}}{The above template would result in the patient name, pulle d from the server, to be placed in the final document. It would also generate a GUI box with a field that the user can interact with. In the example below, the field \lquote NUMB1-16\rquote happens to be a drop-down box. When the user selects a number and presses [OK], the resulting text is inserted into the note. However, nothing more can be done with the user input inside the template.\line \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab} The new extension allows syntax as below:\line \line }{\f2\fs16\cgrid0 This is a test template for |PATIENT NAME|\line \line Enter value: \{FLD:NUMB1-16\}\line Enter value: \{ FLD:NUMB1-16\}\line \line Result 1: \{FN: [FLD:1:NUMB1-16] + [FLD:2:NUMB1-16] \}}{ \line \par {\listtext\pard\plain\f3\fs20\cgrid \loch\af3\dbch\af0\hich\f3 \'de\tab}The above template would present the user with a GUI box containing two drop-down boxes. And the output text would evaluated in a math function. In this case the math function is a simple addition of the two fields. Notice the syntax of how to identify which field is being referred to. So [}{\cgrid0 FLD:1:NUMB1-16] refers to the first instance of the field, and [FLD:2:NUMB1-16] is the second instance of this same field. More details on this syntax below.}{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}{\cgrid0 The following syntax is also allowed. This will cause a text object (in this example it is the object |PATIENT NAME|). By itself, the only difference between this and simply including the object directly into the template is that that tex t object is not resolved (i.e. value obtained from the server) until after the user presses OK on the GUI box. More below.\line \line }{\f2\fs16\cgrid0 Result 3: \{OBJ:PATIENT NAME\}\line }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}{\cgrid0 If the TMG-CPRS-TEXTOBJ-PARAM patch is installed then one may pass parameters into text objects. An d thus one can also use the value from a field as one of the parameters. (The server code supporting the custom text objects must be programmed to accept the custom parameter. Syntax to be detailed further below. ) Examples of syntax:\line \line }{ \f2\fs16\cgrid0 This is a sample of a plain text object: |PATIENT NAME|\line \line And this is an object with a parameter |MY TEXT OBJECT\{5\}|\line or another object with a parameter |MY TEXT OBJECT\{Some Text\}| \line }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}{\cgrid0 And now one may see the value of the \{OBJ:... syntax Below is an example of a text object being passed with user-generated input as a parameter. The value of the second GUI field is resolved into it\rquote s output value, and this is passed as a parameter into the text object.\line }{\f2\fs16\cgrid0 \line Enter value: \{FLD:NUMB1-16\}\line Enter value: \{FLD:NUMB1-16\}\line \line \{OBJ:MY TEXT OBJECT\{[FLD:2:NUMB1-16]\}\}\line \line }{\cgrid0 So, if the user selected a value of \ldblquote 1\rdblquote for the first drop-down box, and \ldblquote 9\rdblquote for the second drop down box, then the object would be resolved as follows:\line }{\f2\fs16\cgrid0 \line \{OBJ:MY TEXT OBJECT\{9\}\}\line \line }{\cgrid0 And the server code might be written to return a value like this:\line }{\f2\fs16\cgrid0 \line \ldblquote The user entered: 9\rdblquote (or something more clinically useful)\line }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}{\cgrid0 The \{OBJ:... syntax may also be used in math formulas. Of course, the output of the text object would have to be text that was only a numeric value. So, we could have a text object that converted weight into a body-mass-index (BMI). And this value could then used in a formula. In the example below, the field WEIGHT-LB provides a text box for the user to enter the patient weight in pounds. (This field would have to be create d in CPRS just like all other fields. See standard CPRS documentation for details.) And for the example, we will have a custom text object named \ldblquote PT WEIGHT TO BMI\rdblquote . (And this text object would have to be defined on the server. More on this further below). There is no clinical reason why one would want to subtracting 5 from a patient\rquote s BMI. But it demonstrates what is possible.\line }{\f2\fs16\cgrid0 \line Enter value: \{FLD:WEIGHT-LB\}\line Here is the result of the formula: \{FN:[OBJ:PT WEIGHT TO BMI\{[FLD:1:WEIGHT-LB]\}]-5\}\line \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}{\cgrid0 Details on referring to }{\i\cgrid0 fields}{\cgrid0 in functions and text objects. Consider the example template below:\line }{\f2\fs16\cgrid0 \line Enter value: \{ FLD:NUMB1-16\} <--- 1}{\f2\fs16\super\cgrid0 st}{\f2\fs16\cgrid0 instance of NUMB1-16\line Enter Units: \{FLD:UNITS\}\line Enter location: \{FLD:LOCATION\}\line Enter value: \{FLD:NUMB1-16\} <--- 2}{\f2\fs16\super\cgrid0 nd}{\f2\fs16\cgrid0 instance of NUMB1-16\line Enter Units: \{FLD:UNITS\}\line Enter location: \{FLD:LOCATION\}\line Enter value: \{FLD:NUMB1-16\} <--- 3}{\f2\fs16\super\cgrid0 rd}{\f2\fs16\cgrid0 instance of NUMB1-16\line Enter location: \{FLD:LOCATION\}\line Enter Units: \{FLD:UNITS\}\line \line }{\cgrid0 To refer to the 3}{\super\cgrid0 rrd }{\cgrid0 instance of the field NUMB1-16, use this syntax: \line \line }{\f2\fs16\cgrid0 [FLD:3:NUMB1-16]\line \line }{\cgrid0 Notice that this is }{\ul\cgrid0 not} {\cgrid0 the 3}{\super\cgrid0 rd}{\cgrid0 field on the form (that actually would be the first instance of the LOCATION field). But it is the 3}{\super\cgrid0 rd}{\cgrid0 time that NUMB1-16 is used. So the following rules apply:}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 i)\tab}}\pard \fi-360\li1080\widctlpar\jclisttab\tx1080\ls2\ilvl2\adjustright {\cgrid0 Entire reference is enclosed in square brackets (\ldblquote [\ldblquote , \ldblquote ]\rdblquote )}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 ii)\tab}}{\cgrid0 Starts with \ldblquote FLD:\rdblquote , which must be UPPER CASE}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iii)\tab}}{\cgrid0 Next is an instance number that refers to a particular field, as described above, followed by another \lquote :\rquote .}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iv)\tab}}{\cgrid0 And lastly is specified the Field name, which must exactly match in spelling and case-sensitivity.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 v)\tab}}{\cgrid0 Notice the similarity between the declaration and the reference, so as not to get confused.\line \line }{\f2\fs16\cgrid0 \{FLD:NUMB1-16\} <--- used by CPRS to make a GUI input field for user\line [FLD:3:NUMB1-16] <--- used, in a FN or OBJ to refer to a field.}{\cgrid0 \line }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {\cgrid0 To refer to an }{\i\cgrid0 text object }{\cgrid0 in a function, the following syntax rules apply:}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 i)\tab}}\pard \fi-360\li1080\widctlpar\jclisttab\tx1080\ls2\ilvl2\adjustright {\cgrid0 Entire reference is enclosed in square brackets (\ldblquote [\ldblquote , \ldblquote ]\rdblquote )}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 ii)\tab}}{\cgrid0 Starts with \ldblquote OBJ:\rdblquote , which must be UPPER CASE}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iii)\tab}}{\cgrid0 Next is the name of the text object. This is the name normally placed between \ldblquote |\rdblquote characters. The \ldblquote |\rdblquote may be included or left off.\line \line }{\f2\fs16\cgrid0 [OBJ:MY OBJECT] <---- Correct\line [OBJ:|MY OBJECT|] <---- Also correct\line }{\f2\fs16 \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iv)\tab}}{\cgrid0 If text object supports passing parameters, they must be surrounded by curly brackets (\ldblquote \{\ldblquote , \ldblquote \}\rdblquote ). E.g.\line \line }{\f2\fs16\cgrid0 [OBJ:MY OBJECT\{123\}] \line \line }{\cgrid0 Only one parameter may be passed. If one needs to pass more than one parameter into a function, one may place then all into one long string, separated by some unique character, e.g.\line \line }{ \f2\fs16\cgrid0 [OBJ:MY OBJECT\{123^ABC\}] \line \line }{\cgrid0 The server-side function would receive this as a parameter and then have to separate the parts itself. It is allowed to use this syntax with multiple field entries. E.g. \line \line }{ \f2\fs16\cgrid0 [OBJ:MY OBJECT\{[FLD:1:NUMB1-16]^[FLD:3:NUMB1-16]\}] \line }{\f2\fs16 \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 v)\tab}}{\cgrid0 The order of resolution is to first resolve all FLD values, and then resolve OBJ items.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 vi)\tab}}{\cgrid0 Having a text object as the parameter of another text object is allowed. E.g. \line \line }{\f2\fs16\cgrid0 [OBJ:MY OBJECT\{[OBJ:ANOTHER OBJECT]\}] \line }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {\cgrid0 The syntax for functions is as follows:}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 i)\tab}}\pard \fi-360\li1080\widctlpar\jclisttab\tx1080\ls2\ilvl2\adjustright {\cgrid0 Example function: \{FN:(1+5)*3\}}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 ii)\tab}}{\cgrid0 Entire function is enclosed in curly brackets. (\ldblquote \{\ldblquote , \ldblquote \}\rdblquote ). }{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iii)\tab}}{\cgrid0 Starts with \ldblquote FN:\rdblquote which must be UPPER CASE.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iv)\tab}}{\cgrid0 All white space between \ldblquote :\rdblquote and closing \ldblquote \}\rdblquote is not significant, and is removed.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 v)\tab}}{\cgrid0 FLD values will be resolved first, then OBJ values, and then the function will be evaluated.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 vi)\tab}}{\cgrid0 The mathematical expression must follow the following rules: \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (1)\tab}}\pard \fi-360\li1440\widctlpar\jclisttab\tx1440\ls2\ilvl3\adjustright {\cgrid0 The only operators supported are: ^,*,/,+,- \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (2)\tab}There must be the same number of begin and end brackets. \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (3)\tab}Only the round brackets can be used, i.e. \ldblquote (\ldblquote , \ldblquote )\rdblquote \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (4)\tab}All values must be valid constants. A "valid constant," for this program, is defined as a string with: \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (a)\tab}}\pard \fi-360\li1800\widctlpar\jclisttab\tx1800\ls2\ilvl4\adjustright {\cgrid0 No characters besides "0".."9," up to one ".", \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (b)\tab}Up to one "-" at the beginning \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (c)\tab}The string must be at least one character in length \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 (d)\tab}Exponential sections are not supported, ie. "3.14E-10" is not supported.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 vii)\tab}}\pard \fi-360\li1080\widctlpar\jclisttab\tx1080\ls2\ilvl2\adjustright {\cgrid0 If there is a problem evaluating the mathematical formula, then the output is just the text of the formula, inserted into the note text, without being evaluated.\tab }{ \par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'de\tab}}\pard \fi-360\li720\widctlpar\jclisttab\tx720\ls2\ilvl1\adjustright {\cgrid0 Information for creating custom server-side text objects to accept parameters.}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 i)\tab}}\pard \fi-360\li1080\widctlpar\jclisttab\tx1080\ls2\ilvl2\adjustright {\cgrid0 On the server, in roll-and-scroll mode, go to menu option: TIUF DOCUMENT DEFINITION MGR}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 ii)\tab}}{\cgrid0 From there, select option Create Objects [TIUFJ CREATE OBJECTS MGR]}{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iii)\tab}}{\cgrid0 From here, one can create text objects. See TIU documentation for details. The key factor is to make an entry into the Object Method field. This should be a function that returns a value for X that will be put into the note in CPRS. Below is an example of the traditional way this is done:\line \line }{\f2\fs16\cgrid0 SET X=\rdblquote This is a test\rdblquote , or\line SET X=$$GETOBJ^TMGABC\line }{ \par {\listtext\pard\plain\fs20 \hich\af0\dbch\af0\loch\f0 iv)\tab}}{\cgrid0 To accept the passed parameter, one should change the object function to accept a variable X. X is preloaded with the passed parameter. E.g. \line \line }{\f2\fs16\cgrid0 SET X=$$GETOBJ^TMGABC}{\f2\fs16\cgrid0 (X)\line }{ \par {\listtext\pard\plain\fs20\cgrid \hich\af0\dbch\af0\loch\f0 v)\tab}The above requires a custom version of the function $$BOIL^TIUSRVD, which is supplied in patch }{\cgrid0 TMG-CPRS-TEMPLATE-PARAM}{\cgrid0 \line \line }{ \par }\pard \widctlpar\adjustright {https://trac.opensourcevista.net/browser/cprs/branches/tmg-cprs/Server_KIDS \par \par }}