Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMEXDG.m

    r613 r623  
    1 PXRMEXDG        ;SLC/PJH - Reminder Dialog Exchange index build ;05/16/2007
    2         ;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123
    3         ;
    4         ;=====================================================================
    5 DIALOG(RIEN,DLIST,FLIST,OLIST,TLIST,SPONLIST)   ;
    6         ;
    7         ;Routine to get dialog details for a given reminder
    8         ;
    9         ;Called as DIALOG^PXRMEXDG(RIEN,.DLIST,.FLIST)
    10         ;
    11         ;RIEN   - Reminder IEN
    12         ;DLIST  - List of dialogs (components first)
    13         ;FLIST  - Finding list used by PXRMEXPR
    14         ;OLIST  - List of embedded TIU objects
    15         ;TLIST  - List of embedded TIU templates
    16         ;
    17         ;Initialize
    18         K DLIST
    19         N DARRAY,DCNT,DIALOG,DIEN,FCNT,FINDING,OCNT,RCNT,RESULT,TEMP
    20         ;Check if reminder exists
    21         Q:'$D(^PXD(811.9,RIEN,0))
    22         ;Get dialog ien from reminder definition
    23         S DIEN=$P($G(^PXD(811.9,RIEN,51)),U) Q:'DIEN
    24         ;Check dialog pointer is valid
    25         Q:'$D(^PXRMD(801.41,DIEN))
    26         ;Dialog and Finding count
    27         S DCNT=0,FCNT=0,RCNT=0,TCNT=0
    28         ;Get details
    29         D GETSPON^PXRMEXPR(801.41,DIEN,.SPONLIST)
    30         D DGET(DIEN,.SPONLIST)
    31         ;
    32         ;Now build the dialog list (components first)
    33         S DCNT="",OCNT=0
    34         F  S DCNT=$O(DARRAY(DCNT),-1) Q:'DCNT  D
    35         .;Ignore dialogs previously encountered
    36         .S DIEN=DARRAY(DCNT) Q:$D(DIALOG(DIEN))
    37         .;Save dialog in output array
    38         .S OCNT=OCNT+1,DIALOG(DIEN)="",TEMP("DIALOG",OCNT)=DIEN
    39         ;
    40         ;Save the dialog and result details to DLIST
    41         N CNT,COUNT,DTYP
    42         S COUNT=0
    43         F DTYP="RESULT ELEMENT" D
    44         .S CNT=0 F  S CNT=$O(TEMP(DTYP,CNT)) Q:CNT'>0  D
    45         ..S DIEN=$G(TEMP(DTYP,CNT)) Q:DIEN'>0
    46         ..S COUNT=COUNT+1,DLIST("DIALOG",COUNT,DIEN)=""
    47         ;
    48         F DTYP="RESULT" D
    49         .S CNT=0 F  S CNT=$O(TEMP(DTYP,CNT)) Q:CNT'>0  D
    50         ..S DIEN=$G(TEMP(DTYP,CNT)) Q:DIEN'>0
    51         ..S COUNT=COUNT+1,DLIST("DIALOG",COUNT,DIEN)=""
    52         ;
    53         ;F DTYP="RESULT","DIALOG" D
    54         F DTYP="DIALOG" D
    55         .F CNT=1:1 S DIEN=$G(TEMP(DTYP,CNT)) Q:'DIEN  D
    56         ..S COUNT=COUNT+1,DLIST("DIALOG",COUNT,DIEN)=""
    57         ;
    58         I COUNT>0 S DLIST("DIALOG")=801.41
    59         ;
    60         ;Add Dialog Findings to FLIST if not aready present
    61         N DIC,DO,IEN,FNAME,FNUM,SUB
    62         S SUB=0
    63         F  S SUB=$O(TEMP("FINDING",SUB)) Q:'SUB  D
    64         .S IEN=$P(TEMP("FINDING",SUB),";"),DIC=U_$P(TEMP("FINDING",SUB),";",2)
    65         .K DO D DO^DIC1
    66         .S FNUM=+DO(2),FNAME=$P(DO,U) I ('FNUM)!(FNAME="") Q
    67         .;Check if present in FLIST
    68         .I $D(FLIST(FNAME,"F",IEN)) Q
    69         .;Otherwise add to list
    70         .S:'$D(FLIST(FNAME)) FLIST(FNAME)=FNUM S FLIST(FNAME,"F",IEN)=""
    71         .;Add the Health Factor category to FLIST
    72         .I FNAME="HEALTH FACTORS" D
    73         ..N HFCAT
    74         ..S HFCAT=$P($G(^AUTTHF(IEN,0)),U,3) S:HFCAT FLIST(FNAME,"C",HFCAT)=""
    75         ;
    76         ;Store any TIU components
    77         N GLOB,DIEN,CNT
    78         ;Set global for search
    79         S GLOB="^PXRMD(801.41,"
    80         ;Search through all component dialogs
    81         S CNT=0
    82         F  S CNT=$O(DLIST("DIALOG",CNT)) Q:'CNT  D
    83         .S DIEN=$O(DLIST("DIALOG",CNT,"")) Q:'DIEN
    84         .;Search Dialog Text for TIU Objects and Templates
    85         .D TIUSRCH(GLOB,DIEN,25,.OLIST,.TLIST)
    86         .;Search P/N Text for TIU Objects and Templates
    87         .D TIUSRCH(GLOB,DIEN,35,.OLIST,.TLIST)
    88         ;
    89         Q
    90         ;
    91         ;Get the dialog components
    92         ;-------------------------
    93 DGET(D0,SPONLIST)       ;Save dialog ien
    94         N D1
    95         I $G(D0)=83
    96         I $G(^PXRMD(801.41,D0,49))'="",$P(^PXRMD(801.41,D0,49),U,3)>0 D
    97         .S D1=$P($G(^PXRMD(801.41,D0,49)),U,3) D DGET1(D0,.SPONLIST) D DGET1(D1,.SPONLIST)
    98         E  D DGET1(D0,.SPONLIST)
    99         Q
    100 DGET1(D0,SPONLIST)      ;
    101         S DCNT=DCNT+1,DARRAY(DCNT)=D0
    102         ;And details (except for reminder dialog)
    103         I DCNT>1 D
    104         .D GETSPON^PXRMEXPR(801.41,D0,.SPONLIST)
    105         .;Finding items
    106         .D DFIND(D0)
    107         .;Additional Finding Items
    108         .D DFINDA(D0)
    109         .;Result groups
    110         .D DRESULT(D0)
    111         ;
    112         ;Dialog components
    113         N DCOMP,DCOMP1,DDATA,DSUB
    114         S DSUB=0
    115         F  S DSUB=$O(^PXRMD(801.41,D0,10,DSUB)) Q:'DSUB  D
    116         .;Get any component dialogs
    117         .S DCOMP=$P($G(^PXRMD(801.41,D0,10,DSUB,0)),U,2) Q:'DCOMP
    118         .;If component exists get sub-components
    119         .S DDATA=$G(^PXRMD(801.41,DCOMP,0)) Q:DDATA=""
    120         .;Exclude national PXRM prompts
    121         .I +$G(PXRMINST)=0,$E(DDATA,1,4)="PXRM",$P($G(^PXRMD(801.41,DCOMP,100)),U)="N" Q
    122         .;Sub-components
    123         .D DGET(DCOMP,.SPONLIST)
    124         .;I $G(DCOMP1)'="" D DGET(DCOMP1) S DCOMP1=""
    125         Q
    126         ;
    127         ;Build list of finding items
    128         ;---------------------------
    129 DFIND(DIEN)     ;
    130         N FIND,FIEN,FGLOB,FNAM
    131         ;Finding Item
    132         S FIND=$P($G(^PXRMD(801.41,DIEN,1)),U,5)
    133         ;If a finding item exists check and save
    134 LOOP    ;
    135         I FIND]"" D
    136         .;Finding item defined
    137         .S FIEN=$P(FIND,";"),FGLOB=$P(FIND,";",2) Q:'FIEN  Q:FGLOB=""
    138         .;And finding item exists
    139         .Q:'$D(@(U_FGLOB_FIEN_",0)"))
    140         .;Finding name
    141         .S FNAM=$P($G(@(U_FGLOB_FIEN_",0)")),U) S:FNAM="" FNAM="???"
    142         .;And not previously saved
    143         .I '$D(FINDING(FIND)) D
    144         ..S FCNT=FCNT+1,FINDING(FIND)="",TEMP("FINDING",FCNT)=FIND
    145         I $G(^PXRMD(801.41,DIEN,49))'="",$P(^PXRMD(801.41,DIEN,49),U)>0 D
    146         .S FIND=$P(^PXRMD(801.41,DIEN,49),U)
    147         .I $D(FLIST("REMINDER TERM","F",FIND)) Q
    148         .I '$D(FLIST("REMINDER TERM")) S FLIST("REMINDER TERM")="811.5"
    149         .S FLIST("REMINDER TERM","F",FIND)=""
    150         .D GETTFIND^PXRMEXPR(.FLIST)
    151         Q
    152         ;
    153         ;Build list of additional findings
    154         ;---------------------------------
    155 DFINDA(DIEN)    ;
    156         N FIND,FIEN,FGLOB,FNAM,FSUB
    157         S FSUB=0
    158         F  S FSUB=$O(^PXRMD(801.41,DIEN,3,FSUB)) Q:'FSUB  D
    159         .;Additional Finding Item
    160         .S FIND=$P($G(^PXRMD(801.41,DIEN,3,FSUB,0)),U)
    161         .;If a finding item exists check and save
    162         .I FIND]"" D
    163         ..;Finding item defined
    164         ..S FIEN=$P(FIND,";"),FGLOB=$P(FIND,";",2) Q:'FIEN  Q:FGLOB=""
    165         ..;And finding item exists
    166         ..Q:'$D(@(U_FGLOB_FIEN_",0)"))
    167         ..;Finding name
    168         ..S FNAM=$P($G(@(U_FGLOB_FIEN_",0)")),U) S:FNAM="" FNAM="???"
    169         ..;And not previously saved
    170         ..I '$D(FINDING(FIND)) D
    171         ...S FCNT=FCNT+1,FINDING(FIND)="",TEMP("FINDING",FCNT)=FIND
    172         Q
    173         ;
    174         ;Build list of result groups
    175         ;---------------------------
    176 DRESULT(DIEN)   ;
    177         N CNT,RIEN,RECNT,RGCNT
    178         ;Result Group/Element pointer
    179         S RECNT=$O(TEMP("RESULT ELEMENT",""),-1)
    180         S RGCNT=$O(TEMP("RESULT",""),-1)
    181         S CNT=0
    182         F  S CNT=$O(^PXRMD(801.41,DIEN,51,CNT)) Q:CNT'>0  D
    183         .S RIEN=$P($G(^PXRMD(801.41,DIEN,51,CNT,0)),U) Q:RIEN'>0
    184         .;S RIEN=$P($G(^PXRMD(801.41,DIEN,0)),U,15) Q:'RIEN  Q:$D(RESULT(RIEN))
    185         .;Result group compoments
    186         .N DSUB,REIEN
    187         .S DSUB=0
    188         .F  S DSUB=$O(^PXRMD(801.41,RIEN,10,DSUB)) Q:'DSUB  D
    189         ..;Get result element
    190         ..S REIEN=$P($G(^PXRMD(801.41,RIEN,10,DSUB,0)),U,2) Q:'REIEN
    191         ..Q:'$D(^PXRMD(801.41,REIEN,0))
    192         ..;If element exists get save it
    193         ..S RECNT=RECNT+1,TEMP("RESULT ELEMENT",RECNT)=REIEN
    194         ..;S RCNT=RCNT+1,OUTPUT("RESULT",RCNT)=REIEN
    195         .;
    196         .;Save result group
    197         .S RGCNT=RGCNT+1,TEMP("RESULT",RGCNT)=RIEN
    198         .;S RCNT=RCNT+1,RESULT(RIEN)="",TEMP("RESULT",RCNT)=RIEN
    199         Q
    200         ;
    201         ;Extract TIU Objects/Templates from any WP text
    202         ;----------------------------------------------
    203 TIUSRCH(GLOB,IEN,NODE,OLIST,TLIST)      ;
    204         N OCNT,TCNT,TEXT
    205         ;Add to existing arrays
    206         S OCNT=+$O(OLIST(""),-1),TCNT=+$O(TLIST(""),-1),SUB=0
    207         ;Scan WP fields
    208         F  S SUB=$O(@(GLOB_IEN_","_NODE_","_SUB_")")) Q:'SUB  D
    209         .;Get individual line
    210         .S TEXT=$G(@(GLOB_IEN_","_NODE_","_SUB_",0)")) Q:TEXT=""
    211         .;Most text lines will have no TIU link so ignore them
    212         .I (TEXT'["|")&(TEXT'["{FLD:") Q
    213         .;Templates are in format {FLD:fldname} (only applies to dialogs)
    214         .I GLOB[801.41 D TIUXTR("{FLD:","}",TEXT,.TLIST,.TCNT)
    215         .;Objects are in format |Objectname|
    216         .D TIUXTR("|","|",TEXT,.OLIST,.OCNT)
    217         Q
    218         ;
    219 TIUXTR(SRCH,SRCH1,TEXT,OUTPUT,CNT)      ;
    220         N EXIST,IC,TXT,ONAME
    221         S TXT=TEXT
    222         F  D  Q:TXT'[SRCH
    223         .S TXT=$E(TXT,$F(TXT,SRCH),$L(TXT)) Q:TXT'[SRCH1
    224         .S ONAME=$P(TXT,SRCH1) Q:ONAME=""
    225         .;Check if already selected
    226         .S EXIST=0,IC=0
    227         .F  S IC=$O(OUTPUT(IC)) Q:'IC  Q:EXIST  D
    228         ..I $G(OUTPUT(IC))=ONAME S EXIST=1
    229         .;Save array of object/template names
    230         .I 'EXIST S CNT=CNT+1,OUTPUT(CNT)=ONAME
    231         Q
     1PXRMEXDG ;SLC/PJH - Reminder Dialog Exchange index build ;02/25/2004
     2 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
     3 ;
     4 ;=====================================================================
     5DIALOG(RIEN,DLIST,FLIST,OLIST,TLIST) ;
     6 ;
     7 ;Routine to get dialog details for a given reminder
     8 ;
     9 ;Called as DIALOG^PXRMEXDG(RIEN,.DLIST,.FLIST)
     10 ;
     11 ;RIEN   - Reminder IEN
     12 ;DLIST  - List of dialogs (components first)
     13 ;FLIST  - Finding list used by PXRMEXPR
     14 ;OLIST  - List of embedded TIU objects
     15 ;TLIST  - List of embedded TIU templates
     16 ;
     17 ;Initialize
     18 K DLIST
     19 N DARRAY,DCNT,DIALOG,DIEN,FCNT,FINDING,OCNT,RCNT,RESULT,TEMP
     20 ;Check if reminder exists
     21 Q:'$D(^PXD(811.9,RIEN,0))
     22 ;Get dialog ien from reminder definition
     23 S DIEN=$P($G(^PXD(811.9,RIEN,51)),U) Q:'DIEN
     24 ;Check dialog pointer is valid
     25 Q:'$D(^PXRMD(801.41,DIEN))
     26 ;Dialog and Finding count
     27 S DCNT=0,FCNT=0,RCNT=0,TCNT=0
     28 ;Get details
     29 D DGET(DIEN)
     30 ;
     31 ;Now build the dialog list (components first)
     32 S DCNT="",OCNT=0
     33 F  S DCNT=$O(DARRAY(DCNT),-1) Q:'DCNT  D
     34 .;Ignore dialogs previously encountered
     35 .S DIEN=DARRAY(DCNT) Q:$D(DIALOG(DIEN))
     36 .;Save dialog in output array
     37 .S OCNT=OCNT+1,DIALOG(DIEN)="",TEMP("DIALOG",OCNT)=DIEN
     38 ;
     39 ;Save the dialog and result details to DLIST
     40 N CNT,COUNT,DTYP
     41 S COUNT=0
     42 F DTYP="RESULT","DIALOG" D
     43 .F CNT=1:1 S DIEN=$G(TEMP(DTYP,CNT)) Q:'DIEN  D
     44 ..S COUNT=COUNT+1,DLIST("DIALOG",COUNT,DIEN)=""
     45 ;
     46 I COUNT>0 S DLIST("DIALOG")=801.41
     47 ;
     48 ;Add Dialog Findings to FLIST if not aready present
     49 N DIC,DO,IEN,FNAME,FNUM,SUB
     50 S SUB=0
     51 F  S SUB=$O(TEMP("FINDING",SUB)) Q:'SUB  D
     52 .S IEN=$P(TEMP("FINDING",SUB),";"),DIC=U_$P(TEMP("FINDING",SUB),";",2)
     53 .K DO D DO^DIC1
     54 .S FNUM=+DO(2),FNAME=$P(DO,U) I ('FNUM)!(FNAME="") Q
     55 .;Check if present in FLIST
     56 .I $D(FLIST(FNAME,"F",IEN)) Q
     57 .;Otherwise add to list
     58 .S:'$D(FLIST(FNAME)) FLIST(FNAME)=FNUM S FLIST(FNAME,"F",IEN)=""
     59 .;Add the Health Factor category to FLIST
     60 .I FNAME="HEALTH FACTORS" D
     61 ..N HFCAT
     62 ..S HFCAT=$P($G(^AUTTHF(IEN,0)),U,3) S:HFCAT FLIST(FNAME,"C",HFCAT)=""
     63 ;
     64 ;Store any TIU components
     65 N GLOB,DIEN,CNT
     66 ;Set global for search
     67 S GLOB="^PXRMD(801.41,"
     68 ;Search through all component dialogs
     69 S CNT=0
     70 F  S CNT=$O(DLIST("DIALOG",CNT)) Q:'CNT  D
     71 .S DIEN=$O(DLIST("DIALOG",CNT,"")) Q:'DIEN
     72 .;Search Dialog Text for TIU Objects and Templates
     73 .D TIUSRCH(GLOB,DIEN,25,.OLIST,.TLIST)
     74 .;Search P/N Text for TIU Objects and Templates
     75 .D TIUSRCH(GLOB,DIEN,35,.OLIST,.TLIST)
     76 ;
     77 Q
     78 ;
     79 ;Get the dialog components
     80 ;-------------------------
     81DGET(D0) ;Save dialog ien
     82 N D1
     83 I $G(D0)=83
     84 I $G(^PXRMD(801.41,D0,49))'="",$P(^PXRMD(801.41,D0,49),U,3)>0 D
     85 .S D1=$P($G(^PXRMD(801.41,D0,49)),U,3) D DGET1(D0) D DGET1(D1)
     86 E  D DGET1(D0)
     87 Q
     88DGET1(D0) ;
     89 S DCNT=DCNT+1,DARRAY(DCNT)=D0
     90 ;And details (except for reminder dialog)
     91 I DCNT>1 D
     92 .;Finding items
     93 .D DFIND(D0)
     94 .;Additional Finding Items
     95 .D DFINDA(D0)
     96 .;Result groups
     97 .D DRESULT(D0)
     98 ;
     99 ;Dialog components
     100 N DCOMP,DCOMP1,DDATA,DSUB
     101 S DSUB=0
     102 F  S DSUB=$O(^PXRMD(801.41,D0,10,DSUB)) Q:'DSUB  D
     103 .;Get any component dialogs
     104 .S DCOMP=$P($G(^PXRMD(801.41,D0,10,DSUB,0)),U,2) Q:'DCOMP
     105 .;If component exists get sub-components
     106 .S DDATA=$G(^PXRMD(801.41,DCOMP,0)) Q:DDATA=""
     107 .;Exclude national PXRM prompts
     108 .I $E(DDATA,1,4)="PXRM",$P($G(^PXRMD(801.41,DCOMP,100)),U)="N" Q
     109 .;Sub-components
     110 .D DGET(DCOMP)
     111 .;I $G(DCOMP1)'="" D DGET(DCOMP1) S DCOMP1=""
     112 Q
     113 ;
     114 ;Build list of finding items
     115 ;---------------------------
     116DFIND(DIEN) ;
     117 N FIND,FIEN,FGLOB,FNAM
     118 ;Finding Item
     119 S FIND=$P($G(^PXRMD(801.41,DIEN,1)),U,5)
     120 ;If a finding item exists check and save
     121LOOP ;
     122 I FIND]"" D
     123 .;Finding item defined
     124 .S FIEN=$P(FIND,";"),FGLOB=$P(FIND,";",2) Q:'FIEN  Q:FGLOB=""
     125 .;And finding item exists
     126 .Q:'$D(@(U_FGLOB_FIEN_",0)"))
     127 .;Finding name
     128 .S FNAM=$P($G(@(U_FGLOB_FIEN_",0)")),U) S:FNAM="" FNAM="???"
     129 .;And not previously saved
     130 .I '$D(FINDING(FIND)) D
     131 ..S FCNT=FCNT+1,FINDING(FIND)="",TEMP("FINDING",FCNT)=FIND
     132 I $G(^PXRMD(801.41,DIEN,49))'="",$P(^PXRMD(801.41,DIEN,49),U)>0 D
     133 .S FIND=$P(^PXRMD(801.41,DIEN,49),U)
     134 .I $D(FLIST("REMINDER TERM","F",FIND)) Q
     135 .I '$D(FLIST("REMINDER TERM")) S FLIST("REMINDER TERM")="811.5"
     136 .S FLIST("REMINDER TERM","F",FIND)=""
     137 .D GETTFIND^PXRMEXPR(.FLIST)
     138 Q
     139 ;
     140 ;Build list of additional findings
     141 ;---------------------------------
     142DFINDA(DIEN) ;
     143 N FIND,FIEN,FGLOB,FNAM,FSUB
     144 S FSUB=0
     145 F  S FSUB=$O(^PXRMD(801.41,DIEN,3,FSUB)) Q:'FSUB  D
     146 .;Additional Finding Item
     147 .S FIND=$P($G(^PXRMD(801.41,DIEN,3,FSUB,0)),U)
     148 .;If a finding item exists check and save
     149 .I FIND]"" D
     150 ..;Finding item defined
     151 ..S FIEN=$P(FIND,";"),FGLOB=$P(FIND,";",2) Q:'FIEN  Q:FGLOB=""
     152 ..;And finding item exists
     153 ..Q:'$D(@(U_FGLOB_FIEN_",0)"))
     154 ..;Finding name
     155 ..S FNAM=$P($G(@(U_FGLOB_FIEN_",0)")),U) S:FNAM="" FNAM="???"
     156 ..;And not previously saved
     157 ..I '$D(FINDING(FIND)) D
     158 ...S FCNT=FCNT+1,FINDING(FIND)="",TEMP("FINDING",FCNT)=FIND
     159 Q
     160 ;
     161 ;Build list of result groups
     162 ;---------------------------
     163DRESULT(DIEN) ;
     164 N RIEN
     165 ;Result Group/Element pointer
     166 S RIEN=$P($G(^PXRMD(801.41,DIEN,0)),U,15) Q:'RIEN  Q:$D(RESULT(RIEN))
     167 ;Result group compoments
     168 N DSUB,REIEN
     169 S DSUB=0
     170 F  S DSUB=$O(^PXRMD(801.41,RIEN,10,DSUB)) Q:'DSUB  D
     171 .;Get result element
     172 .S REIEN=$P($G(^PXRMD(801.41,RIEN,10,DSUB,0)),U,2) Q:'REIEN
     173 .Q:'$D(^PXRMD(801.41,REIEN,0))
     174 .;If element exists get save it
     175 .S RCNT=RCNT+1,OUTPUT("RESULT",RCNT)=REIEN
     176 ;
     177 ;Save result group
     178 S RCNT=RCNT+1,RESULT(RIEN)="",TEMP("RESULT",RCNT)=RIEN
     179 Q
     180 ;
     181 ;Extract TIU Objects/Templates from any WP text
     182 ;----------------------------------------------
     183TIUSRCH(GLOB,IEN,NODE,OLIST,TLIST) ;
     184 N OCNT,TCNT,TEXT
     185 ;Add to existing arrays
     186 S OCNT=+$O(OLIST(""),-1),TCNT=+$O(TLIST(""),-1),SUB=0
     187 ;Scan WP fields
     188 F  S SUB=$O(@(GLOB_IEN_","_NODE_","_SUB_")")) Q:'SUB  D
     189 .;Get individual line
     190 .S TEXT=$G(@(GLOB_IEN_","_NODE_","_SUB_",0)")) Q:TEXT=""
     191 .;Most text lines will have no TIU link so ignore them
     192 .I (TEXT'["|")&(TEXT'["{FLD:") Q
     193 .;Templates are in format {FLD:fldname} (only applies to dialogs)
     194 .I GLOB[801.41 D TIUXTR("{FLD:","}",TEXT,.TLIST,.TCNT)
     195 .;Objects are in format |Objectname|
     196 .D TIUXTR("|","|",TEXT,.OLIST,.OCNT)
     197 Q
     198 ;
     199TIUXTR(SRCH,SRCH1,TEXT,OUTPUT,CNT) ;
     200 N EXIST,IC,TXT,ONAME
     201 S TXT=TEXT
     202 F  D  Q:TXT'[SRCH
     203 .S TXT=$E(TXT,$F(TXT,SRCH),$L(TXT)) Q:TXT'[SRCH1
     204 .S ONAME=$P(TXT,SRCH1) Q:ONAME=""
     205 .;Check if already selected
     206 .S EXIST=0,IC=0
     207 .F  S IC=$O(OUTPUT(IC)) Q:'IC  Q:EXIST  D
     208 ..I $G(OUTPUT(IC))=ONAME S EXIST=1
     209 .;Save array of object/template names
     210 .I 'EXIST S CNT=CNT+1,OUTPUT(CNT)=ONAME
     211 Q
Note: See TracChangeset for help on using the changeset viewer.