| 1 | SPNLXMD ;ISCSF/RAH - LOAD Records INTO Mail AND Send ;1/12/96  10:27 | 
|---|
| 2 | V ;;2.0;Spinal Cord Dysfunction;**2**;01/02/1997 | 
|---|
| 3 | ; | 
|---|
| 4 | EN1(SPNLTEXT,SPNLSUB,SPNLXMY,SPNLERR)   ; Entry point. | 
|---|
| 5 | D INIT | 
|---|
| 6 | S SPNLERR=0,SPNLLN=0,SPNLV=0,SPNLSSN="",SPNLNX=0,SPNLTX=0,SPNLLMT=0,SPNLEX="" | 
|---|
| 7 | D EDITCK I SPNLERR D CLR Q | 
|---|
| 8 | D REFORM I SPNLERR D CLR Q | 
|---|
| 9 | D LOADIT | 
|---|
| 10 | D CLR | 
|---|
| 11 | Q | 
|---|
| 12 | EDITCK ; Verify proper data set up when called. | 
|---|
| 13 | I '$D(SPNLTEXT) S SPNLERR="1^SPNLTEXT NOT DEFINED" W:'$D(ZTQUEUED) !!,"GLOBAL LOCATION REQUIRED!!!" Q | 
|---|
| 14 | I '$D(SPNLSUB) S SPNLERR="2^SPNLSUB NOT DEFINED" W:'$D(ZTQUEUED) !!,"MESSAGE SUBJECT REQUIRED!!!" Q | 
|---|
| 15 | I '$D(SPNLXMY) S SPNLERR="3^SPNLXMY NOT DEFINED" W:'$D(ZTQUEUED) !!,"MESSAGE DESTINATION REQUIRED!!!" Q | 
|---|
| 16 | S:'$D(DUZ) SPNLDUZ=".5" | 
|---|
| 17 | Q | 
|---|
| 18 | REFORM ; | 
|---|
| 19 | S SPNLX=1 | 
|---|
| 20 | F  S SPNLSSN=$O(^TMP("SPNX",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN)) Q:SPNLSSN=""  D | 
|---|
| 21 | .S SPNLEX=.9 I $D(^TMP("SPNX",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN))#10 S SPNLTXT="^TMP(""SPNX"",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN)" D GLB2MAIL | 
|---|
| 22 | .F  S SPNLEX=$O(^TMP("SPNX",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN,SPNLEX)) Q:SPNLEX=""  D | 
|---|
| 23 | ..S SPNLNX=0 | 
|---|
| 24 | ..F  S SPNLNX=$O(^TMP("SPNX",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN,SPNLEX,SPNLNX)) Q:SPNLNX'>0  D | 
|---|
| 25 | ...S SPNLTXT="^TMP(""SPNX"",SPNLJ,SPNLSDT,SPNLFAC,SPNLSSN,SPNLEX,SPNLNX)" D GLB2MAIL | 
|---|
| 26 | S SPNLTEXT(2)=SPNLTEXT_"""MAIL"""_",SPNLNX)",SPNLTEXT(1)=SPNLTEXT_"""XMD"""_",SPNLLN)" | 
|---|
| 27 | I '$D(@(SPNLTEXT_"""MAIL"",1)")) S SPNLERR="4^NO RECORD CHANGES TO TRANSMIT" Q | 
|---|
| 28 | Q | 
|---|
| 29 | GLB2MAIL ; | 
|---|
| 30 | S SPNLMN=@(SPNLTXT),SPNLMM=SPNLFAC_";"_SPNLSSN_";"_SPNLEX_";"_SPNLNX_"$"_SPNLMN | 
|---|
| 31 | S ^TMP("SPNX",SPNLJ,"MAIL",SPNLX)="D$ "_SPNLMM,SPNLX=SPNLX+1 | 
|---|
| 32 | Q | 
|---|
| 33 | LOADIT ; | 
|---|
| 34 | S SPNLLN=2,MAXRECS=SPNXRECS+2 | 
|---|
| 35 | F  S SPNLNX=$O(@(SPNLTEXT(2))) Q:SPNLNX=""  D  Q:SPNLERR | 
|---|
| 36 | . S SPNLLN=SPNLLN+1 | 
|---|
| 37 | . I SPNLLN>MAXRECS D SENDMSG S SPNLLN=3 | 
|---|
| 38 | . S @SPNLTEXT(1)=@SPNLTEXT(2) | 
|---|
| 39 | D SENDMSG | 
|---|
| 40 | K MAXRECS | 
|---|
| 41 | Q | 
|---|
| 42 | SENDMSG ; | 
|---|
| 43 | S SPNLLN=2 S @SPNLTEXT(1)="F$ "_^TMP("SPNX",SPNLJ,SPNLSDT,SPNLFAC) | 
|---|
| 44 | S SPNLLN=1 S @SPNLTEXT(1)="H$ "_SPNLHDR | 
|---|
| 45 | S SPNLV=SPNLV+1,XMSUB=SPNLSUB,XMDUZ=SPNLDUZ | 
|---|
| 46 | ;S XMY(DUZ)="" | 
|---|
| 47 | S XMY(SPNLXMY)="" | 
|---|
| 48 | S XMTEXT=SPNLTEXT_"""XMD""," D ^XMD I '$D(XMZ) S SPNLERR="5^TRANSMIT ERROR" W:'$D(ZTQUEUED) !,"TRANSMISSION ERR" G XIT1 | 
|---|
| 49 | S SPNLXMZ=XMZ | 
|---|
| 50 | K @(SPNLTEXT_"""XMD"")") | 
|---|
| 51 | XIT1 ; | 
|---|
| 52 | Q | 
|---|
| 53 | CLR ; | 
|---|
| 54 | K SPNLEX,SPNLII,SPNLJ,SPNLLMT,SPNLMM,SPNLMN,SPNLSSN,SPNLTX,SPNLTXT | 
|---|
| 55 | K SPNLTY,SPNLX,SPNLXMZ,SPNLDUZ,SPNLLN,SPNLNX,SPNLV | 
|---|
| 56 | K XMDUZ,XMSUB,XMTEXT,XMY,XMZ | 
|---|
| 57 | Q | 
|---|
| 58 | INIT ; | 
|---|
| 59 | K XMSUB,XMTEXT,XMY,XMZ | 
|---|
| 60 | S SPNLJ=$J | 
|---|
| 61 | I DUZ'="" S SPNLDUZ=DUZ | 
|---|
| 62 | E  S SPNLDUZ=.5 | 
|---|
| 63 | Q | 
|---|