| [613] | 1 | IBJDE1 ;ALB/RB - DM DATA EXTRACTION (MENU OPTIONS/TRANSMIT E-MAIL) ;15-APR-99
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**100,118,123,159,254,244**;21-MAR-94
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | VPE ; - View/print entries in IB DM EXTRACT DATA file (#351.71).
 | 
|---|
 | 5 |  I '$O(^IBE(351.71,0)) W !!,"There are no entries available.",*7 G ENQ
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  S DIC="^IBE(351.71,",DIC(0)="AEMQZ",DIC("A")="Enter MONTH/YEAR: "
 | 
|---|
 | 8 |  D ^DIC K DIC G:Y'>0 ENQ S IB0=+Y,IBS=$P(Y(0),U,2),IBDT=Y(0,0)
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  S DIC="^IBE(351.71,",BY=.01,(FR,TO)=IB0,DHD="W ?0 D VPH^IBJDE1"
 | 
|---|
 | 11 |  S FLDS="[IBJD DM V/P EXTRACTS]",L=0 D EN1^DIP W ! G VPE
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 | VPH ; - Heading for View/Print option.
 | 
|---|
 | 14 |  W "DIAGNOSTIC MEASURES SUMMARY EXTRACTIONS-",IBDT
 | 
|---|
 | 15 |  W " (Status: ",$S(IBS=3:"COMPLETED",IBS=2:"STARTED",1:"ON STANDBY"),")"
 | 
|---|
 | 16 |  W !!,"Summary Line Item",?58,"Total",! F X=1:1:80 W "-"
 | 
|---|
 | 17 |  Q
 | 
|---|
 | 18 |  ;
 | 
|---|
 | 19 | DER ; - Disable/enable report(s) or extraction process.
 | 
|---|
 | 20 |  W ! S DIR(0)="Y",DIR("B")="NO"
 | 
|---|
 | 21 |  I $D(^IBE(351.7,"DISABLE")) D
 | 
|---|
 | 22 |  .S DIR("A",1)="The DM extract background job has been disabled."
 | 
|---|
 | 23 |  .S DIR("A")=" Do you want to re-enable it"
 | 
|---|
 | 24 |  E  S DIR("A")="Do you want to disable the DM extract background job"
 | 
|---|
 | 25 |  D ^DIR K DIR G:Y["^" ENQ I 'Y G DE1
 | 
|---|
 | 26 |  I $D(^IBE(351.7,"DISABLE")) K ^("DISABLE")
 | 
|---|
 | 27 |  E  S ^IBE(351.7,"DISABLE")=""
 | 
|---|
 | 28 |  W " ...Done",*7
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | DE1 ; - List disabled reports, if any.
 | 
|---|
 | 31 |  I $D(^IBE(351.7,"DISABLE")) G ENQ ; DM extract background job disabled.
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 |  I $D(^IBE(351.7,"AC",1)) D
 | 
|---|
 | 34 |  .W !!,"These DM reports have been disabled:",!! S X=0
 | 
|---|
 | 35 |  .F  S X=$O(^IBE(351.7,"AC",1,X)) Q:'X  W ?3,$P($G(^IBE(351.7,X,0)),U),!
 | 
|---|
 | 36 |  E  W !!,"There are no disabled DM reports.",!
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 | DE2 S DIR(0)="PO^351.7:AEMQZ",DIR("A")="Enter REPORT NAME"
 | 
|---|
 | 39 |  S DIR("?")="^D DEH^IBJDE1" D ^DIR K DIR I Y'>0 G ENQ
 | 
|---|
 | 40 |  S IB0=+Y,IBFL=$P(Y(0),U,2) W !!,Y(0,0),!
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 |  S DIR("A")="Do you want to "_$S(IBFL:"re-en",1:"dis")_"able this report"
 | 
|---|
 | 43 |  S DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR I Y["^"!('Y) W ! G DE2
 | 
|---|
 | 44 |  S DIE="^IBE(351.7,",DR=".02///"_$S('IBFL&(Y):1,1:"@"),DA=IB0
 | 
|---|
 | 45 |  D ^DIE K DA,DIE,DR W " ...Done",*7 G DE1
 | 
|---|
 | 46 |  ;
 | 
|---|
 | 47 | DEH ; - Help message for disable/enable option.
 | 
|---|
 | 48 |  W !,"Enter the name of the report you want disabled or re-enabled."
 | 
|---|
 | 49 |  W !,"If the report you enter is disabled, the monthly DM extraction"
 | 
|---|
 | 50 |  W !,"process will not collect summary data from the report until you"
 | 
|---|
 | 51 |  W !,"re-enable it again."
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 | RTN ; - Help message for the field ROUTINE (entry point for the reprot)
 | 
|---|
 | 55 |  W !?9,"Enter the entry point for this report. You may enter  a  program"
 | 
|---|
 | 56 |  W !?9,"name (^ROUTINE), or a specific label of a  program (TAG^ROUTINE)"
 | 
|---|
 | 57 |  W !?9,"or you may also leave it blank.",!
 | 
|---|
 | 58 |  W !?9,"Obs: If this field is left blank, it means that the code respon-"
 | 
|---|
 | 59 |  W !?9,"     sible for extracting the data will be  invoked  by  another"
 | 
|---|
 | 60 |  W !?9,"     report.",!
 | 
|---|
 | 61 |  Q
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 | MAN1 ; - Manually start DM extraction process.
 | 
|---|
 | 64 |  I $D(^IBE(351.7,"DISABLE")) D  G ENQ
 | 
|---|
 | 65 |  .W !!,"The DM extract process has been disabled.",!,*7
 | 
|---|
 | 66 |  S (IBX,X)=0
 | 
|---|
 | 67 |  F  S X=$O(^IBE(351.71,X)) Q:'X  I $P(^(X,0),U,2)'=3 S IBX=IBX+1
 | 
|---|
 | 68 |  I 'IBX W !,"All DM extracts on file have been transmitted.",!,*7 G ENQ
 | 
|---|
 | 69 |  ;
 | 
|---|
 | 70 | M1A S DIC="^IBE(351.71,",DIC(0)="AEMQZ",DIC("A")="Enter DM extract date: "
 | 
|---|
 | 71 |  S DIC("S")="I $P(^(0),U,2)'=3" W ! D ^DIC K DIC I Y'>0 G ENQ
 | 
|---|
 | 72 |  S IBDT=+Y,IBN=Y(0),IBDT1=$$M1^IBJDE(IBDT,3),IBST=$P(IBN,U,2)
 | 
|---|
 | 73 |  S DIR("A")="Do you want to start the DM extract process for "_IBDT1
 | 
|---|
 | 74 |  S DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR I 'Y G ENQ
 | 
|---|
 | 75 |  I IBST=2 D  G:'Y ENQ
 | 
|---|
 | 76 |  .S DIR(0)="Y",DIR("B")="NO",IBS=$$M1^IBJDE($P(IBN,U,3),3)
 | 
|---|
 | 77 |  .S DIR("A",1)="The extract process for "_IBDT1_" began on "_IBS_"."
 | 
|---|
 | 78 |  .S DIR("A")="Do you want to restart it" W ! D ^DIR K DIR
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 |  D BJ^IBJDE ; Start DM extraction background job.
 | 
|---|
 | 81 |  S IBS=$$M1^IBJDE($P($G(^IBE(351.71,IBDT,0)),U,3),3)
 | 
|---|
 | 82 |  W !!,"Extract process started on ",IBS,".",*7 S IBX=IBX-1
 | 
|---|
 | 83 |  I IBX D  G:Y M1A
 | 
|---|
 | 84 |  .S DIR("A")="Do you want to start the process for another date"
 | 
|---|
 | 85 |  .S DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  G ENQ
 | 
|---|
 | 88 |  ;
 | 
|---|
 | 89 | MAN2 ; - Manually transmit DM extract file.
 | 
|---|
 | 90 |  I $D(^IBE(351.7,"DISABLE")) D  G ENQ
 | 
|---|
 | 91 |  .W !!,"The DM extract process has been disabled.",!,*7
 | 
|---|
 | 92 |  S (IBX,X)=0
 | 
|---|
 | 93 |  F  S X=$O(^IBE(351.71,X)) Q:'X  I $P(^(X,0),U,2)=3 S IBX=IBX+1
 | 
|---|
 | 94 |  I 'IBX D  G ENQ
 | 
|---|
 | 95 |  .W !,"All DM extracts on file have NOT been completed.",!,*7
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 | M2A S DIC="^IBE(351.71,",DIC(0)="AEMQZ",DIC("A")="Enter DM extract date: "
 | 
|---|
 | 98 |  S DIC("S")="I $P(^(0),U,2)=3" W ! D ^DIC K DIC I Y'>0 G ENQ
 | 
|---|
 | 99 |  S IBDT=+Y,IBN=Y(0),DIR(0)="Y",DIR("B")="NO"
 | 
|---|
 | 100 |  S DIR("A")="Are you sure you want to transmit for "_$$M1^IBJDE(IBDT,3)
 | 
|---|
 | 101 |  D ^DIR K DIR I 'Y G M2A
 | 
|---|
 | 102 | M2B S $P(^IBE(351.71,IBDT,0),U,5)="" D XM(IBDT)
 | 
|---|
 | 103 |  I $G(XMZ) W " Done."
 | 
|---|
 | 104 |  E  D  G:Y M2B
 | 
|---|
 | 105 |  .S DIR(0)="Y",DIR("B")="NO"
 | 
|---|
 | 106 |  .S DIR("A")="The DM extract message failed to transmit...try again"
 | 
|---|
 | 107 |  .W !,*7 D ^DIR K DIR
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 |  I IBX D  G:Y M2A
 | 
|---|
 | 110 |  .S DIR("A")="Do you want to start the process for another date"
 | 
|---|
 | 111 |  .S DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR I Y S IBX=IBX-1
 | 
|---|
 | 112 |  ;
 | 
|---|
 | 113 |  G ENQ
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | MSG ; - DM extract reports message (shown when DM Menu is called up).
 | 
|---|
 | 116 |  S IBDT=$$M1^IBJDE(DT,1),IBDT1=$$M1^IBJDE(IBDT,3)
 | 
|---|
 | 117 |  I '$D(^IBE(351.71,IBDT,0)) G ENQ ; No extract data for this month yet.
 | 
|---|
 | 118 |  ;
 | 
|---|
 | 119 |  W @IOF S IBN=$G(^IBE(351.71,IBDT,0)),IBST=$P(IBN,U,2) I 'IBST G ENQ
 | 
|---|
 | 120 |  I IBST=1 D  G MSQ
 | 
|---|
 | 121 |  .W !,"The DM extract process for ",IBDT1," was initiated on "
 | 
|---|
 | 122 |  .W $$M1^IBJDE($P(IBN,U,3),3),!,"but it hasn't run yet.",!
 | 
|---|
 | 123 |  ;
 | 
|---|
 | 124 |  I IBST=3 D  G ENQ
 | 
|---|
 | 125 |  .W !,"The DM report data for ",IBDT1," has been successfully"
 | 
|---|
 | 126 |  .W !,"extracted on ",$$M1^IBJDE($P(IBN,U,4),3),". This data has been"
 | 
|---|
 | 127 |  .W !,"sent to the Central Collections mail group in FORUM.",*7
 | 
|---|
 | 128 |  ;
 | 
|---|
 | 129 |  S DIC="^IBE(351.71,",BY="[IBJD DM REPT SORT]",FR=IBDT_",1",TO=IBDT_",2"
 | 
|---|
 | 130 |  S DIOEND="I $Y'<(IOSL-14) R X:DTIME",(IOP,L)=0
 | 
|---|
 | 131 |  S DHD="W ?0 D MSH^IBJDE1",FLDS="[IBJD DM REPT PRINT]" D EN1^DIP
 | 
|---|
 | 132 |  ;
 | 
|---|
 | 133 | MSQ W !,"If you want, you can restart the DM extract process"
 | 
|---|
 | 134 |  W !,"by using the ""Manually Start DM Extraction"" option in"
 | 
|---|
 | 135 |  W !,"the Diagnostic Measures Extract Menu."
 | 
|---|
 | 136 |  G ENQ
 | 
|---|
 | 137 |  ;
 | 
|---|
 | 138 | MSH ; - DM extract reports message header.
 | 
|---|
 | 139 |  W !,"Data for the following DM reports have not been extracted"
 | 
|---|
 | 140 |  W !," for ",IBDT1,":",!!,*7
 | 
|---|
 | 141 |  Q
 | 
|---|
 | 142 |  ;
 | 
|---|
 | 143 | CHK ; - Check file #351.71 for completed and/or transmitted DM extracts
 | 
|---|
 | 144 |  ;   (shown when DM Extract Menu is called up).
 | 
|---|
 | 145 |  W @IOF,!,"Checking for completed and/or transmitted DM extracts"
 | 
|---|
 | 146 |  K IBX,IBX1 S (IBX,IBX1,IB0)=0
 | 
|---|
 | 147 |  S DT=$$DT^XLFDT
 | 
|---|
 | 148 |  F  S IB0=$O(^IBE(351.71,IB0)) Q:'IB0  S IBN=$G(^(IB0,0)) D
 | 
|---|
 | 149 |  .; - Do not process for invalid (day not equal 00 or future) dates
 | 
|---|
 | 150 |  .;   and remove data.
 | 
|---|
 | 151 |  .I (+$E(IB0,6,7)>0)!(IB0>DT) D  Q
 | 
|---|
 | 152 |  ..W !,"** Invalid date entry found.  Entry ("_IB0_") deleted.**",!
 | 
|---|
 | 153 |  ..S DIK="^IBE(351.71,",DA=IB0
 | 
|---|
 | 154 |  ..D ^DIK
 | 
|---|
 | 155 |  .; - Check for missing zero node.
 | 
|---|
 | 156 |  .I IBN="" W !,"Zero node data missing for "_IB0_" entry.  Data corruption possible.",! Q
 | 
|---|
 | 157 |  .; - Check for past months missing from file, if any.
 | 
|---|
 | 158 |  .I $O(^IBE(351.71,IB0)) D
 | 
|---|
 | 159 |  ..S IB1=$P(^IBE(351.71,0),U,4),IB2=IB0+$S($E(IB0,4,5)=12:8900,1:100)
 | 
|---|
 | 160 |  ..I $D(^IBE(351.71,"B",IB2,IB2))!(IB2>DT) Q
 | 
|---|
 | 161 |  ..S DIC="^IBE(351.71,",DIC(0)="L",DIC("DR")=".02///1",(DINUM,X)=IB2
 | 
|---|
 | 162 |  ..K DD,DO D FILE^DICN S $P(^IBE(351.71,0),U,4)=IB1+1 K DIC,DINUM,DD,DO
 | 
|---|
 | 163 |  .;
 | 
|---|
 | 164 |  .I $P(IBN,U,2)'=3 S IBX(IB0)="" S:'IBX IBX=1 Q
 | 
|---|
 | 165 |  .E  I '$P(IBN,U,5) S IBX1(IB0)="" S:'IBX1 IBX1=1 Q
 | 
|---|
 | 166 |  .W "."
 | 
|---|
 | 167 |  ;
 | 
|---|
 | 168 |  I 'IBX,'IBX1 W "Done" G ENQ
 | 
|---|
 | 169 |  I IBX D
 | 
|---|
 | 170 |  .W !!,"DM data has NOT been fully extracted for these months:",!,*7
 | 
|---|
 | 171 |  .S IB0=0 F  S IB0=$O(IBX(IB0)) Q:'IB0  W "  ",$$M1^IBJDE(IB0,3)
 | 
|---|
 | 172 |  .W !,"If you want, you can start the DM extract process for these"
 | 
|---|
 | 173 |  .W !,"months by using the ""Manually Start DM Extraction"" option."
 | 
|---|
 | 174 |  ;
 | 
|---|
 | 175 |  I IBX1 D
 | 
|---|
 | 176 |  .W !!,"DM data has NOT been transmitted for these months:",!,*7
 | 
|---|
 | 177 |  .S IB0=0 F  S IB0=$O(IBX1(IB0)) Q:'IB0  W "  ",$$M1^IBJDE(IB0,3)
 | 
|---|
 | 178 |  .W !,"If you want, you can transmit the DM extract data for these"
 | 
|---|
 | 179 |  .W !,"months by using the ""Manually Transmit DM Extract"" option."
 | 
|---|
 | 180 |  ;
 | 
|---|
 | 181 |  G ENQ
 | 
|---|
 | 182 |  ;
 | 
|---|
 | 183 | XM(IBDT) ; - Create/transmit DM extract file message.
 | 
|---|
 | 184 |  ;
 | 
|---|
 | 185 |  N DA,DIE,DR,IB0,IB1,IBC,IBDT1,IBMG,IBSTE,X,XMDUZ,XMSUB,XMTEXT
 | 
|---|
 | 186 |  ;
 | 
|---|
 | 187 |  K ^TMP("DME",$J) S IBSTE=$$SITE^VASITE,X=$E(DT,4,7)_(1700+$E(DT,1,3))
 | 
|---|
 | 188 |  S ^TMP("DME",$J,1)="HDR^"_$P(IBSTE,U,3)_U_$P(IBSTE,U,2)_U_X
 | 
|---|
 | 189 |  S IBC=1,IB0=0
 | 
|---|
 | 190 |  F  S IB0=$O(^IBE(351.71,IBDT,1,IB0)) Q:'IB0  D
 | 
|---|
 | 191 |  .Q:IB0=37  ; No unbilled report needed
 | 
|---|
 | 192 |  .S X=$S(IB0=8:$$M2^IBJDE(IBDT,5,3,1),1:$$M1^IBJDE(IBDT,2))
 | 
|---|
 | 193 |  .S IBC=IBC+1,^TMP("DME",$J,IBC)="DAT~"_IB0_"~"_$P(X,U)_"~"_$P(X,U,2)
 | 
|---|
 | 194 |  .S IB1=0 F  S IB1=$O(^IBE(351.71,IBDT,1,IB0,1,IB1)) Q:'IB1  D
 | 
|---|
 | 195 |  ..S X=$P($G(^IBE(351.71,IBDT,1,IB0,1,IB1,0)),U,2)
 | 
|---|
 | 196 |  ..S ^TMP("DME",$J,IBC)=^TMP("DME",$J,IBC)_U_X
 | 
|---|
 | 197 |  ;
 | 
|---|
 | 198 |  S ^TMP("DME",$J,IBC+1)="END^"_$P(IBSTE,U,3),IBDT1=$$M1^IBJDE(IBDT,3)
 | 
|---|
 | 199 |  S XMSUB="DIAG. MEASURES EXTRACT FILE-"_IBDT1_" ("_$P(IBSTE,U,2)_")"
 | 
|---|
 | 200 |  ;
 | 
|---|
 | 201 |  S IBMG=$P($G(^IBE(350.9,1,4)),U,5) I IBMG="" G ENQ:'$G(IBX),ENQ1
 | 
|---|
 | 202 |  ;
 | 
|---|
 | 203 |  S XMDUZ="INTEGRATED BILLING PACKAGE"
 | 
|---|
 | 204 |  S XMTEXT="^TMP(""DME"",$J,",XMY(IBMG)=""
 | 
|---|
 | 205 |  D SEND
 | 
|---|
 | 206 |  I $G(XMZ) S DIE="^IBE(351.71,",DA=IBDT,DR=".05///1;.06///"_XMZ D ^DIE
 | 
|---|
 | 207 |  ;
 | 
|---|
 | 208 |  I $G(IBX) G ENQ1 ; Return to DME manual transmit option.
 | 
|---|
 | 209 |  ;
 | 
|---|
 | 210 | ENQ K IB2,IBDT2,IBD1,IBD2,IBDT,IBFL,IBFR,IBN,IBS,IBST,IBST1,IBX,IBX1,BY,DHD
 | 
|---|
 | 211 |  K DIC,DIOEND,FLDS,FR,IOP,L,TO,X,XMZ,Y,%
 | 
|---|
 | 212 | ENQ1 K IB0,IB1,IBC,IBDT1,IBMG,IBSTE,XMSUB,XMTEXT,XMY,^TMP("DME",$J)
 | 
|---|
 | 213 |  Q
 | 
|---|
 | 214 |  ;
 | 
|---|
 | 215 | SEND ; Calls ^XMD to send the mail message with the data extracted
 | 
|---|
 | 216 |  ; Obs: By NEWing DUZ, ^XMD will assume DUZ=.5 (Sender=POSTMASTER)
 | 
|---|
 | 217 |  ;
 | 
|---|
 | 218 |  N DUZ D ^XMD
 | 
|---|
 | 219 |  Q
 | 
|---|