| [613] | 1 | GECSTRAN ;WISC/RFJ/KLD-transmit a batch                                 ;01 Nov 93
 | 
|---|
 | 2 |  ;;2.0;GCS;**13,15,20**;MAR 14, 1995
 | 
|---|
 | 3 |  N %,%X,CODE,D,DOMAIN,DA,GECS,GECSBADA,GECSBATC,GECSCODE,GECSDICS,GECSLINE,GECSMAX,GECSMSG,GECSXMY,GECSSYDA,GECSTOTL,GECSXMZ,PRIORITY,X,Y
 | 
|---|
 | 4 |  D ^GECSSITE Q:'$G(GECS("SITE"))
 | 
|---|
 | 5 |  D BATNOFMS^GECSUSEL Q:'$G(GECS("BATDA"))
 | 
|---|
 | 6 |  S GECS("SITECOM")=GECS("SITE")_GECS("SITE1")
 | 
|---|
 | 7 |  S GECSDICS="S %=^(0) I $S($P(%,""-"",1)=GECS(""SITECOM"")&($P(^(0),U,6)=GECS(""BATDA"")):1,1:0)"
 | 
|---|
 | 8 |  W ! S GECSBADA=$$BATCHSEL^GECSUSEL(GECSDICS) Q:'GECSBADA
 | 
|---|
 | 9 |  S GECSBATC=$P($G(^GECS(2101.3,GECSBADA,0)),"^") I GECSBATC="" W !,"CANNOT FIND BATCH NUMBER IN FILE 2101.3." Q
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  ;  build receiving users for mail messages
 | 
|---|
 | 12 |  K GECSXMY
 | 
|---|
 | 13 |  S %=0 F  S %=$O(^GECS(2101.1,GECS("BATDA"),2,%)) Q:'%  S D=$G(^(%,0)) I $P(D,"^",3)=1 D
 | 
|---|
 | 14 |  .   S DOMAIN=$P($G(^DIC(4.2,+$P(D,"^",2),0)),"^") I DOMAIN'="" S DOMAIN="@"_DOMAIN
 | 
|---|
 | 15 |  .   S GECSXMY($P(D,"^")_DOMAIN)=""
 | 
|---|
 | 16 |  I '$D(GECSXMY) W !,"RECEIVING USERS FOR THIS BATCH TYPE HAVE NOT BEEN ENTERED." Q
 | 
|---|
 | 17 |  W !!,"Transmission will be to the following:"
 | 
|---|
 | 18 |  S %="" F  S %=$O(GECSXMY(%)) Q:%=""  W !?5,%
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | RETRY ;  if locked, come here to retry transmission
 | 
|---|
 | 22 |  S XP="ARE YOU READY TO TRANSMIT THE CODE SHEETS",XH="Enter YES to transmit the code sheets, NO or ^ to exit." W ! I $$YN^GECSUTIL(2)'=1 Q
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 |  ;  check lock and lock system
 | 
|---|
 | 25 |  S GECSSYDA=$$LOCKSYS^GECSULOC(GECS("SITE")_"-"_GECS("SYSID")_"-TRANSMIT")
 | 
|---|
 | 26 |  I 'GECSSYDA W !!,"ANOTHER USER IS TRANSMITTING THE CODE SHEETS, TRY AGAIN IN A MINUTE" G RETRY
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 |  ;  check to see if batch has been transmitted, if so quit
 | 
|---|
 | 29 |  I $P($G(^GECS(2101.3,GECSBADA,0)),"^",3)'="B" D UNLOCK^GECSULOC(GECSSYDA) Q
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  ;  get maximum number of code sheets per message
 | 
|---|
 | 32 |  S GECSMAX=$P($G(^GECS(2101.1,GECS("BATDA"),0)),"^",3) I 'GECSMAX S GECSMAX=999999999
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 |  ;  build priority list
 | 
|---|
 | 35 |  K ^TMP($J,"GECSTRAN")
 | 
|---|
 | 36 |  S DA=0 F  S DA=$O(^GECS(2100,"AB",GECSBATC,DA)) Q:'DA  I $O(^GECS(2100,DA,"CODE",0)) S D=$G(^GECS(2100,DA,"TRANS")) I D'="" D
 | 
|---|
 | 37 |  .   S PRIORITY=$P(D,"^",10) S:'PRIORITY PRIORITY=3
 | 
|---|
 | 38 |  .   S ^TMP($J,"GECSTRAN",PRIORITY,DA)=""
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 |  ;  build messages
 | 
|---|
 | 41 |  K ^TMP($J,"GECSTRAN MM")
 | 
|---|
 | 42 |  S (GECSMSG,GECSLINE)=1
 | 
|---|
 | 43 |  S PRIORITY=0 F  S PRIORITY=$O(^TMP($J,"GECSTRAN",PRIORITY)) Q:'PRIORITY  S (DA,GECSCODE)=0 F  S DA=$O(^TMP($J,"GECSTRAN",PRIORITY,DA)) Q:'DA  D
 | 
|---|
 | 44 |  .   ;
 | 
|---|
 | 45 |  .   ;  umark code sheet for transmission
 | 
|---|
 | 46 |  .   S $P(^GECS(2100,DA,"TRANS"),"^",2)="" K ^GECS(2100,"AE","Y",DA)
 | 
|---|
 | 47 |  .   ;
 | 
|---|
 | 48 |  .   S GECSCODE=GECSCODE+1
 | 
|---|
 | 49 |  .   I GECSCODE>GECSMAX S GECSMSG=GECSMSG+1,(GECSCODE,GECSLINE)=1
 | 
|---|
 | 50 |  .   ;
 | 
|---|
 | 51 |  .   ;  special code to create calm header for fee code sheets 994.xx
 | 
|---|
 | 52 |  .   I $P(GECSBATC,"-",2)="FEN",GECSLINE=1 D
 | 
|---|
 | 53 |  .   .   S %=$P(GECSBATC,"-",4)
 | 
|---|
 | 54 |         .   .   N Y,X
 | 
|---|
 | 55 |         .   .   S Y=DT D DD^%DT
 | 
|---|
 | 56 |  .   .   S ^TMP($J,"GECSTRAN MM",GECSMSG,GECSLINE,0)=$E($G(^GECS(2100,DA,"CODE",1,0)),1,3)_"."_$P(GECSBATC,"-")_".999.01."_$E(DT,4,7)_$E(DT,2,3)_".06"_$E("0000",$L(%)+1,4)_%_".$",GECSLINE=GECSLINE+1
 | 
|---|
 | 57 |  .   S %=0 F  S %=$O(^GECS(2100,DA,"CODE",%)) Q:'%  S CODE=$G(^(%,0)) I CODE'="" D
 | 
|---|
 | 58 |  .   .   S ^TMP($J,"GECSTRAN MM",GECSMSG,GECSLINE,0)=CODE,GECSLINE=GECSLINE+1
 | 
|---|
 | 59 |  ;
 | 
|---|
 | 60 |  S GECSTOTL=GECSMSG
 | 
|---|
 | 61 |  ;  transmit
 | 
|---|
 | 62 |  W !
 | 
|---|
 | 63 |  S GECSMSG=0 F  S GECSMSG=$O(^TMP($J,"GECSTRAN MM",GECSMSG)) Q:'GECSMSG  D
 | 
|---|
 | 64 |  .   ;create mailman message
 | 
|---|
 | 65 |  .   W !,"MESSAGE NUMBER: "
 | 
|---|
 | 66 |  .   S GECSXMZ=$$MAILMSG(GECS("BATCH"),GECSBATC,.GECSXMY,GECSMSG,GECSTOTL)
 | 
|---|
 | 67 |  .   W GECSXMZ
 | 
|---|
 | 68 |  .   I 'GECSXMZ Q
 | 
|---|
 | 69 |  .   ;
 | 
|---|
 | 70 |  .   ;  set message number in batch
 | 
|---|
 | 71 |  .   D SETMSG(GECSBADA,GECSXMZ)
 | 
|---|
 | 72 |  ;
 | 
|---|
 | 73 |  ;  update file 2101.3
 | 
|---|
 | 74 |  D UPDATE(GECSBADA)
 | 
|---|
 | 75 |  Q
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 |  ;
 | 
|---|
 | 78 | MAILMSG(BATCHNME,BATCHNUM,RECUSERS,MSGNUMBR,TOTALMSG)    ;  create mailman msg
 | 
|---|
 | 79 |  ;  batchnme=name of batch
 | 
|---|
 | 80 |  ;  batchnum=batch number
 | 
|---|
 | 81 |  ;  recusers()=array of receiving users (same as xmy)
 | 
|---|
 | 82 |  ;  msgnumbr=this message number
 | 
|---|
 | 83 |  ;  totalmsg=total number of messages to transmit in all
 | 
|---|
 | 84 |  ;  returns xmz message number
 | 
|---|
 | 85 |  N %,DIC,XCNP,XMDISPI,XMDUZ,XMTEXT,XMY,XMZ
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  ;  build receiving queue and user array
 | 
|---|
 | 88 |  S %="" F  S %=$O(RECUSERS(%)) Q:%=""  S XMY(%)=""
 | 
|---|
 | 89 |  S XMY(DUZ)="",XMDUZ=DUZ
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 |  S XMTEXT="^TMP($J,""GECSTRAN MM"","_MSGNUMBR_",",XMSUB="GECS "_BATCHNME_" # "_BATCHNUM_" (MSG "_MSGNUMBR_" OF "_TOTALMSG_")"
 | 
|---|
 | 92 |  K XMZ D ^XMD
 | 
|---|
 | 93 |  Q $G(XMZ)
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 |  ;
 | 
|---|
 | 96 | UPDATE(DA)         ;  update file 2101.3 batch as being transmitted
 | 
|---|
 | 97 |  N %DT,D,D0,DI,DIC,DIE,DQ,DR,X,Y
 | 
|---|
 | 98 |  S (DIC,DIE)="^GECS(2101.3,",DR=".5///T;4///T;5////"_DUZ D ^DIE
 | 
|---|
 | 99 |  Q
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 | SETMSG(DA,XMZ)     ;  set message number in batch
 | 
|---|
 | 103 |  N %,D0,DD,DIC,DLAYGO,X,Y
 | 
|---|
 | 104 |  I '$D(^GECS(2101.3,DA,0)) Q
 | 
|---|
 | 105 |  S:'$D(^GECS(2101.3,DA,2,0)) ^(0)="^2101.32^^"
 | 
|---|
 | 106 |  S DIC="^GECS(2101.3,"_DA_",2,",DIC(0)="L",DLAYGO=2101.3,X=XMZ D FILE^DICN
 | 
|---|
 | 107 |  Q
 | 
|---|