Changeset 623 for WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMINDD.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMINDD.m
r613 r623 1 PXRMINDD ; SLC/PKR - Index string date checking routines. ;03/06/2007 2 ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123 3 ; 4 ;======================================================== 5 CNT5(FILENUM,NSD) ;Check for string dates for indexes where the date 6 ;is at subscript 5. Works for file numbers: 7 ;63, 70, 120.5, 601.2, 601.84 8 ;9000010.11, 9000010.12, 9000010.13, 9000010.16, 9000010.23 9 N DAS,DATE,DFN,IND,ITEM 10 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 11 S IND=0 12 S DFN="" 13 F S DFN=$O(^PXRMINDX(FILENUM,"PI",DFN)) Q:DFN="" D 14 . S IND=IND+1 15 . I '$D(ZTQUEUED),(IND#10000=0) W "." 16 . S ITEM="" 17 . F S ITEM=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM)) Q:ITEM="" D 18 .. S DATE="" 19 .. F S DATE=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,DATE)) Q:DATE="" D 20 ... I +DATE=DATE Q 21 ... S DAS="" 22 ... F S DAS=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,DATE,DAS)) Q:DAS="" D 23 .... S NSD=NSD+1 24 .... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PI"","_DFN_","_ITEM_","""_DATE_""","_DAS_")" 25 Q 26 ; 27 ;======================================================== 28 CNT6(FILENUM,NSD) ;Check for string dates for indexes where the date 29 ;is at subscript 6. Works for file numbers: 30 ;9000010.07, 9000010.18 31 N DAS,DATE,DFN,IND,ITEM,TYPE 32 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 33 S IND=0 34 S DFN="" 35 F S DFN=$O(^PXRMINDX(FILENUM,"PPI",DFN)) Q:DFN="" D 36 . S IND=IND+1 37 . I '$D(ZTQUEUED),(IND#10000=0) W "." 38 . S TYPE="" 39 . F S TYPE=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE)) Q:TYPE="" D 40 .. S ITEM="" 41 .. F S ITEM=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM)) Q:ITEM="" D 42 ... S DATE="" 43 ... F S DATE=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM,DATE)) Q:DATE="" D 44 .... I +DATE=DATE Q 45 .... S DAS="" 46 .... F S DAS=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM,DATE,DAS)) Q:DAS="" D 47 ..... S NSD=NSD+1 48 ..... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PPI"","_DFN_","_TYPE_","_ITEM_","""_DATE_""","_DAS_")" 49 Q 50 ; 51 ;======================================================== 52 CNTPL(FILENUM,NSD) ;Check for string date for Problem List indexes where the 53 ;date is at subscript 7. Works for file numbers: 54 ;9000011 55 N DAS,DATE,DFN,IND,ITEM,PRIORITY,STATUS,TYPE 56 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 57 S IND=0 58 S DFN="" 59 F S DFN=$O(^PXRMINDX(FILENUM,"PSPI",DFN)) Q:DFN="" D 60 . S IND=IND+1 61 . I '$D(ZTQUEUED),(IND#10000=0) W "." 62 . S STATUS="" 63 . F S STATUS=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS)) Q:STATUS="" D 64 .. S PRIORITY="" 65 .. F S PRIORITY=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY)) Q:PRIORITY="" D 66 ... S ITEM="" 67 ... F S ITEM=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM)) Q:ITEM="" D 68 .... S DATE="" 69 .... F S DATE=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM,DATE)) Q:DATE="" D 70 ..... I +DATE=DATE Q 71 ..... S DAS="" 72 ..... F S DAS=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM,DATE,DAS)) Q:DAS="" D 73 ...... S NSD=NSD+1 74 ...... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PSPI"","_DFN_","_STATUS_","_PRIORITY_","_ITEM_","""_DATE_""","_DAS_")" 75 Q 76 ; 77 ;======================================================== 78 CNTPTF(FILENUM,NSD) ;Check for string dates for PTF indexes where the 79 ;date is at subscript 7. Works for file numbers: 80 ;45 81 N DAS,DATE,DFN,IND,ITEM,NODE,TYPE 82 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 83 S IND=0 84 F TYPE="ICD0","ICD9" D 85 . S DFN="" 86 . F S DFN=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN)) Q:DFN="" D 87 .. S IND=IND+1 88 .. I '$D(ZTQUEUED),(IND#10000=0) W "." 89 .. S NODE="" 90 .. F S NODE=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE)) Q:NODE="" D 91 ... S ITEM="" 92 ... F S ITEM=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM)) Q:ITEM="" D 93 .... S DATE="" 94 .... F S DATE=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM,DATE)) Q:DATE="" D 95 ..... I +DATE=DATE Q 96 ..... S DAS="" 97 ..... F S DAS=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM,DATE,DAS)) Q:DAS="" D 98 ...... S NSD=NSD+1 99 ...... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_","_TYPE_",""PNI"","_DFN_","_NODE_","_ITEM_","""_DATE_""","_DAS_")" 100 Q 101 ; 102 ;======================================================== 103 CNTSS(FILENUM,NSD) ;Check for string dates for indexes where the start date 104 ;is at subscript 5 and the stop date is at subscript 6. 105 ;Works for file numbers: 52, 55, 100 106 N DAS,DFN,IND,ITEM,START,STOP 107 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 108 S IND=0 109 S DFN="" 110 F S DFN=$O(^PXRMINDX(FILENUM,"PI",DFN)) Q:DFN="" D 111 . S IND=IND+1 112 . I '$D(ZTQUEUED),(IND#10000=0) W "." 113 . S ITEM="" 114 . F S ITEM=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM)) Q:ITEM="" D 115 .. S START="" 116 .. F S START=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START)) Q:START="" D 117 ... I +START=START Q 118 ... S STOP="" 119 ... F S STOP=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START,STOP)) Q:STOP="" D 120 .... S DAS="" 121 .... F S DAS=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START,STOP,DAS)) Q:DAS="" D 122 ..... S NSD=NSD+1 123 ..... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PI"","_DFN_","_ITEM_","""_START_""","_STOP_","_DAS_")" 124 Q 125 ; 126 ;======================================================== 127 CHECK ;Driver for making index date checks. 128 N GBL,LIST,TASKIT 129 W !,"Which indexes do you want to check?" 130 D SEL^PXRMSXRM(.LIST,.GBL) 131 I LIST="" Q 132 ;See if this should be tasked. 133 S TASKIT=$$ASKTASK^PXRMSXRM 134 I TASKIT D 135 . W !,"Queue the Clinical Reminders Index date check." 136 . D TASKIT(LIST,.GBL,.ROUTINE) 137 E D RUNNOW(LIST,.GBL) 138 Q 139 ; 140 ;======================================================== 141 MESSAGE(FILENUM,NSD,START,END) ;Build the MailMan message giving the 142 ;list of entries with string dates. 143 N IND,NAME,NL,TEXT,XMSUB 144 K ^TMP("PXRMXMZ",$J) 145 S XMSUB="CR Index string date check for file #"_FILENUM 146 S NAME=$$GET1^DID(FILENUM,"","","NAME")_", file #"_FILENUM 147 I NSD=0 S TEXT="No string dates were found for "_NAME_"." 148 I NSD>0 S TEXT="A total of "_NSD_" string dates were found for "_NAME_"." 149 S ^TMP("PXRMXMZ",$J,1,0)=TEXT 150 S ^TMP("PXRMXMZ",$J,2,0)="Check finished at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z") 151 S ^TMP("PXRMXMZ",$J,3,0)=$$ETIME^PXRMSXRM(START,END) 152 S ^TMP("PXRMXMZ",$J,4,0)=" " 153 I NSD=0,'$D(^PXRMINDX(FILENUM)) D 154 . S ^TMP("PXRMXMZ",$J,5,0)="The index for file number "_FILENUM_" does not exist." 155 . S ^TMP("PXRMXMZ",$J,6,0)=" " 156 I NSD>0 D 157 . S ^TMP("PXRMXMZ",$J,5,0)="The following entries with string dates were found:" 158 . S NL=5 159 . F IND=1:1:NSD D 160 .. S NL=NL+1 161 .. S ^TMP("PXRMXMZ",$J,NL,0)=" "_^TMP($J,"SDATE",IND) 162 . S NL=NL+1,^TMP("PXRMXMZ",$J,NL,0)=" " 163 D SEND^PXRMMSG(XMSUB) 164 K ^TMP($J,"SDATE"),^TMP("PXRMXMZ",$J) 165 Q 166 ; 167 ;=============================================================== 168 RUNNOW(LIST,GBL) ;Run the routines now. 169 N END,FN,IND,LI,NSD,NUM,ROUTINE,RTN,START,TOTAL 170 K ^TMP($J,"SDATE") 171 S ROUTINE(45)="CNTPTF^PXRMINDD" 172 S ROUTINE(52)="CNTSS^PXRMINDD" 173 S ROUTINE(55)="CNTSS^PXRMINDD" 174 S ROUTINE(63)="CNT5^PXRMINDD" 175 S ROUTINE(70)="CNT5^PXRMINDD" 176 S ROUTINE(100)="CNTSS^PXRMINDD" 177 S ROUTINE(120.5)="CNT5^PXRMINDD" 178 S ROUTINE(601.2)="CNT5^PXRMINDD" 179 S ROUTINE(601.84)="CNT5^PXRMINDD" 180 S ROUTINE(9000011)="CNTPL^PXRMINDD" 181 S ROUTINE(9000010.07)="CNT6^PXRMINDD" 182 S ROUTINE(9000010.11)="CNT5^PXRMINDD" 183 S ROUTINE(9000010.12)="CNT5^PXRMINDD" 184 S ROUTINE(9000010.13)="CNT5^PXRMINDD" 185 S ROUTINE(9000010.16)="CNT5^PXRMINDD" 186 S ROUTINE(9000010.18)="CNT6^PXRMINDD" 187 S ROUTINE(9000010.23)="CNT5^PXRMINDD" 188 S NUM=$L(LIST,",")-1 189 F IND=1:1:NUM D 190 . S LI=$P(LIST,",",IND) 191 . S NSD=0 192 . S FN=GBL(LI) 193 . S RTN=ROUTINE(FN) 194 . S RTN=RTN_"("_FN_",.NSD)" 195 . S START=$H 196 . I $D(^PXRMINDX(FN)) D @RTN 197 . S END=$H 198 . D MESSAGE(FN,NSD,START,END) 199 Q 200 ; 201 ;=============================================================== 202 TASKIT(LIST,GBL,ROUTINE) ;Check the indexes as a tasked job. 203 N DIR,DIROUT,DIRUT,DTOUT,DUOUT,MINDT,SDTIME,X,Y 204 S MINDT=$$NOW^XLFDT 205 S DIR("A",1)="Enter the date and time you want the job to start." 206 S DIR("A",2)="It must be after "_$$FMTE^XLFDT(MINDT,"5Z") 207 S DIR("A")="Start the task at: " 208 S DIR(0)="DAU"_U_MINDT_"::RSX" 209 D ^DIR 210 I $D(DIROUT)!$D(DIRUT) Q 211 I $D(DTOUT)!$D(DUOUT) Q 212 S SDTIME=Y 213 K DIR 214 ;Put the task into the queue. 215 K ZTSAVE 216 S ZTSAVE("LIST")="" 217 S ZTSAVE("GBL(")="" 218 S ZTRTN="TASKJOB^PXRMINDD" 219 S ZTDESC="Clinical Reminders Index string date check" 220 S ZTDTH=SDTIME 221 S ZTIO="" 222 D ^%ZTLOAD 223 W !,"Task number ",ZTSK," queued." 224 Q 225 ; 226 ;=============================================================== 227 TASKJOB ;Execute as tasked job. LIST and GBL come through ZTSAVE. 228 N IND,LI,NUM 229 S ZTREQ="@" 230 S ZTSTOP=0 231 S NUM=$L(LIST,",")-1 232 F IND=1:1:NUM D 233 .;Check to see if the task has had a stop request 234 . I $$S^%ZTLOAD S ZTSTOP=1,IND=NUM Q 235 . S LI=$P(LIST,",",IND)_"," 236 . D RUNNOW^PXRMINDD(LI,.GBL) 237 Q 238 ; 1 PXRMINDD ; SLC/PKR - Index string date checking routines. ;05/02/2006 2 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21 3 ; 4 ;======================================================== 5 CNT5(FILENUM,NSD) ;Check for string dates for indexes where the date 6 ;is at subscript 5. Works for file numbers: 7 ;63, 70, 120.5, 601.2, 8 ;9000010.11, 9000010.12, 9000010.13, 9000010.16, 9000010.23 9 N DAS,DATE,DFN,IND,ITEM 10 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 11 S IND=0 12 S DFN="" 13 F S DFN=$O(^PXRMINDX(FILENUM,"PI",DFN)) Q:DFN="" D 14 . S IND=IND+1 15 . I '$D(ZTQUEUED),(IND#10000=0) W "." 16 . S ITEM="" 17 . F S ITEM=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM)) Q:ITEM="" D 18 .. S DATE="" 19 .. F S DATE=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,DATE)) Q:DATE="" D 20 ... I +DATE=DATE Q 21 ... S DAS="" 22 ... F S DAS=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,DATE,DAS)) Q:DAS="" D 23 .... S NSD=NSD+1 24 .... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PI"","_DFN_","_ITEM_","""_DATE_""","_DAS_")" 25 Q 26 ; 27 ;======================================================== 28 CNT6(FILENUM,NSD) ;Check for string dates for indexes where the date 29 ;is at subscript 6. Works for file numbers: 30 ;9000010.07, 9000010.18 31 N DAS,DATE,DFN,IND,ITEM,TYPE 32 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 33 S IND=0 34 S DFN="" 35 F S DFN=$O(^PXRMINDX(FILENUM,"PPI",DFN)) Q:DFN="" D 36 . S IND=IND+1 37 . I '$D(ZTQUEUED),(IND#10000=0) W "." 38 . S TYPE="" 39 . F S TYPE=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE)) Q:TYPE="" D 40 .. S ITEM="" 41 .. F S ITEM=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM)) Q:ITEM="" D 42 ... S DATE="" 43 ... F S DATE=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM,DATE)) Q:DATE="" D 44 .... I +DATE=DATE Q 45 .... S DAS="" 46 .... F S DAS=$O(^PXRMINDX(FILENUM,"PPI",DFN,TYPE,ITEM,DATE,DAS)) Q:DAS="" D 47 ..... S NSD=NSD+1 48 ..... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PPI"","_DFN_","_TYPE_","_ITEM_","""_DATE_""","_DAS_")" 49 Q 50 ; 51 ;======================================================== 52 CNTPL(FILENUM,NSD) ;Check for string date for Problem List indexes where the 53 ;date is at subscript 7. Works for file numbers: 54 ;9000011 55 N DAS,DATE,DFN,IND,ITEM,PRIORITY,STATUS,TYPE 56 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 57 S IND=0 58 S DFN="" 59 F S DFN=$O(^PXRMINDX(FILENUM,"PSPI",DFN)) Q:DFN="" D 60 . S IND=IND+1 61 . I '$D(ZTQUEUED),(IND#10000=0) W "." 62 . S STATUS="" 63 . F S STATUS=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS)) Q:STATUS="" D 64 .. S PRIORITY="" 65 .. F S PRIORITY=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY)) Q:PRIORITY="" D 66 ... S ITEM="" 67 ... F S ITEM=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM)) Q:ITEM="" D 68 .... S DATE="" 69 .... F S DATE=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM,DATE)) Q:DATE="" D 70 ..... I +DATE=DATE Q 71 ..... S DAS="" 72 ..... F S DAS=$O(^PXRMINDX(FILENUM,"PSPI",DFN,STATUS,PRIORITY,ITEM,DATE,DAS)) Q:DAS="" D 73 ...... S NSD=NSD+1 74 ...... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PSPI"","_DFN_","_STATUS_","_PRIORITY_","_ITEM_","""_DATE_""","_DAS_")" 75 Q 76 ; 77 ;======================================================== 78 CNTPTF(FILENUM,NSD) ;Check for string dates for PTF indexes where the 79 ;date is at subscript 7. Works for file numbers: 80 ;45 81 N DAS,DATE,DFN,IND,ITEM,NODE,TYPE 82 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 83 S IND=0 84 F TYPE="ICD0","ICD9" D 85 . S DFN="" 86 . F S DFN=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN)) Q:DFN="" D 87 .. S IND=IND+1 88 .. I '$D(ZTQUEUED),(IND#10000=0) W "." 89 .. S NODE="" 90 .. F S NODE=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE)) Q:NODE="" D 91 ... S ITEM="" 92 ... F S ITEM=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM)) Q:ITEM="" D 93 .... S DATE="" 94 .... F S DATE=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM,DATE)) Q:DATE="" D 95 ..... I +DATE=DATE Q 96 ..... S DAS="" 97 ..... F S DAS=$O(^PXRMINDX(FILENUM,TYPE,"PNI",DFN,NODE,ITEM,DATE,DAS)) Q:DAS="" D 98 ...... S NSD=NSD+1 99 ...... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_","_TYPE_",""PNI"","_DFN_","_NODE_","_ITEM_","""_DATE_""","_DAS_")" 100 Q 101 ; 102 ;======================================================== 103 CNTSS(FILENUM,NSD) ;Check for string dates for indexes where the start date 104 ;is at subscript 5 and the stop date is at subscript 6. 105 ;Works for file numbers: 52, 55, 100 106 N DAS,DFN,IND,ITEM,START,STOP 107 I '$D(ZTQUEUED) W !,"Checking file number "_FILENUM 108 S IND=0 109 S DFN="" 110 F S DFN=$O(^PXRMINDX(FILENUM,"PI",DFN)) Q:DFN="" D 111 . S IND=IND+1 112 . I '$D(ZTQUEUED),(IND#10000=0) W "." 113 . S ITEM="" 114 . F S ITEM=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM)) Q:ITEM="" D 115 .. S START="" 116 .. F S START=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START)) Q:START="" D 117 ... I +START=START Q 118 ... S STOP="" 119 ... F S STOP=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START,STOP)) Q:STOP="" D 120 .... S DAS="" 121 .... F S DAS=$O(^PXRMINDX(FILENUM,"PI",DFN,ITEM,START,STOP,DAS)) Q:DAS="" D 122 ..... S NSD=NSD+1 123 ..... S ^TMP($J,"SDATE",NSD)="^PXRMINDX("_FILENUM_",""PI"","_DFN_","_ITEM_","""_START_""","_STOP_","_DAS_")" 124 Q 125 ; 126 ;======================================================== 127 CHECK ;Driver for making index date checks. 128 N GBL,LIST,TASKIT 129 W !,"Which indexes do you want to check?" 130 D SEL^PXRMSXRM(.LIST,.GBL) 131 I LIST="" Q 132 ;See if this should be tasked. 133 S TASKIT=$$ASKTASK^PXRMSXRM 134 I TASKIT D 135 . W !,"Queue the Clinical Reminders Index date check." 136 . D TASKIT(LIST,.GBL,.ROUTINE) 137 E D RUNNOW(LIST,.GBL) 138 Q 139 ; 140 ;======================================================== 141 MESSAGE(FILENUM,NSD,START,END) ;Build the MailMan message giving the 142 ;list of entries with string dates. 143 N IND,NAME,NL,TEXT,XMSUB 144 K ^TMP("PXRMXMZ",$J) 145 S XMSUB="CR Index string date check for file #"_FILENUM 146 S NAME=$$GET1^DID(FILENUM,"","","NAME")_", file #"_FILENUM 147 I NSD=0 S TEXT="No string dates were found for "_NAME_"." 148 I NSD>0 S TEXT="A total of "_NSD_" string dates were found for "_NAME_"." 149 S ^TMP("PXRMXMZ",$J,1,0)=TEXT 150 S ^TMP("PXRMXMZ",$J,2,0)="Check finished at "_$$FMTE^XLFDT($$NOW^XLFDT,"5Z") 151 S ^TMP("PXRMXMZ",$J,3,0)=$$ETIME^PXRMSXRM(START,END) 152 S ^TMP("PXRMXMZ",$J,4,0)=" " 153 I NSD=0,'$D(^PXRMINDX(FILENUM)) D 154 . S ^TMP("PXRMXMZ",$J,5,0)="The index for file number "_FILENUM_" does not exist." 155 . S ^TMP("PXRMXMZ",$J,6,0)=" " 156 I NSD>0 D 157 . S ^TMP("PXRMXMZ",$J,5,0)="The following entries with string dates were found:" 158 . S NL=5 159 . F IND=1:1:NSD D 160 .. S NL=NL+1 161 .. S ^TMP("PXRMXMZ",$J,NL,0)=" "_^TMP($J,"SDATE",IND) 162 . S NL=NL+1,^TMP("PXRMXMZ",$J,NL,0)=" " 163 D SEND^PXRMMSG(XMSUB) 164 K ^TMP($J,"SDATE"),^TMP("PXRMXMZ",$J) 165 Q 166 ; 167 ;=============================================================== 168 RUNNOW(LIST,GBL) ;Run the routines now. 169 N END,FN,IND,LI,NSD,NUM,ROUTINE,RTN,START,TOTAL 170 K ^TMP($J,"SDATE") 171 S ROUTINE(45)="CNTPTF^PXRMINDD" 172 S ROUTINE(52)="CNTSS^PXRMINDD" 173 S ROUTINE(55)="CNTSS^PXRMINDD" 174 S ROUTINE(63)="CNT5^PXRMINDD" 175 S ROUTINE(70)="CNT5^PXRMINDD" 176 S ROUTINE(100)="CNTSS^PXRMINDD" 177 S ROUTINE(120.5)="CNT5^PXRMINDD" 178 S ROUTINE(601.2)="CNT5^PXRMINDD" 179 S ROUTINE(9000011)="CNTPL^PXRMINDD" 180 S ROUTINE(9000010.07)="CNT6^PXRMINDD" 181 S ROUTINE(9000010.11)="CNT5^PXRMINDD" 182 S ROUTINE(9000010.12)="CNT5^PXRMINDD" 183 S ROUTINE(9000010.13)="CNT5^PXRMINDD" 184 S ROUTINE(9000010.16)="CNT5^PXRMINDD" 185 S ROUTINE(9000010.18)="CNT6^PXRMINDD" 186 S ROUTINE(9000010.23)="CNT5^PXRMINDD" 187 S NUM=$L(LIST,",")-1 188 F IND=1:1:NUM D 189 . S LI=$P(LIST,",",IND) 190 . S NSD=0 191 . S FN=GBL(LI) 192 . S RTN=ROUTINE(FN) 193 . S RTN=RTN_"("_FN_",.NSD)" 194 . S START=$H 195 . I $D(^PXRMINDX(FN)) D @RTN 196 . S END=$H 197 . D MESSAGE(FN,NSD,START,END) 198 Q 199 ; 200 ;=============================================================== 201 TASKIT(LIST,GBL,ROUTINE) ;Check the indexes as a tasked job. 202 N DIR,DIROUT,DIRUT,DTOUT,DUOUT,MINDT,SDTIME,X,Y 203 S MINDT=$$NOW^XLFDT 204 S DIR("A",1)="Enter the date and time you want the job to start." 205 S DIR("A",2)="It must be after "_$$FMTE^XLFDT(MINDT,"5Z") 206 S DIR("A")="Start the task at: " 207 S DIR(0)="DAU"_U_MINDT_"::RSX" 208 D ^DIR 209 I $D(DIROUT)!$D(DIRUT) Q 210 I $D(DTOUT)!$D(DUOUT) Q 211 S SDTIME=Y 212 K DIR 213 ;Put the task into the queue. 214 K ZTSAVE 215 S ZTSAVE("LIST")="" 216 S ZTSAVE("GBL(")="" 217 S ZTRTN="TASKJOB^PXRMINDD" 218 S ZTDESC="Clinical Reminders Index string date check" 219 S ZTDTH=SDTIME 220 S ZTIO="" 221 D ^%ZTLOAD 222 W !,"Task number ",ZTSK," queued." 223 Q 224 ; 225 ;=============================================================== 226 TASKJOB ;Execute as tasked job. LIST and GBL come through ZTSAVE. 227 N IND,LI,NUM 228 S ZTREQ="@" 229 S ZTSTOP=0 230 S NUM=$L(LIST,",")-1 231 F IND=1:1:NUM D 232 .;Check to see if the task has had a stop request 233 . I $$S^%ZTLOAD S ZTSTOP=1,IND=NUM Q 234 . S LI=$P(LIST,",",IND)_"," 235 . D RUNNOW^PXRMINDD(LI,.GBL) 236 Q 237 ;
Note:
See TracChangeset
for help on using the changeset viewer.