[613] | 1 | OOPSNDB ;WISC/LLH-NATIONAL DATABASE ;10/12/99
|
---|
| 2 | ;;2.0;ASISTS;;Jun 03, 2002
|
---|
| 3 | ;
|
---|
| 4 | N ARR,FIELD,FL,MAN,MSG,VAL,RDATE,OOPDA
|
---|
| 5 | S MAN=1
|
---|
| 6 | I '$D(^XUSEC("OOPS XMIT 2162 DATA",DUZ)) D G EXIT
|
---|
| 7 | . S DIR(0)="FO" W !
|
---|
| 8 | . S DIR("A")="You do NOT have the required Security Key."
|
---|
| 9 | . S DIR("A")=DIR("A")_" Press Enter to continue"
|
---|
| 10 | . D ^DIR K DIR
|
---|
| 11 | ; Assure the Queue (Q-ASI) has been defined
|
---|
| 12 | S VAL="Q-ASI.MED.VA.GOV",FIELD=.01,FL="X"
|
---|
| 13 | D FIND^DIC(4.2,"",FIELD,FL,VAL,"","","","","ARR")
|
---|
| 14 | I '$D(ARR("DILIST",1)) D G EXIT
|
---|
| 15 | . S DIR(0)="FO" W !
|
---|
| 16 | . S DIR("A")="Domain not found in the DOMAIN File,"
|
---|
| 17 | . S DIR("A")=DIR("A")_" No Transmission. Press Enter to continue"
|
---|
| 18 | . D ^DIR K DIR
|
---|
| 19 | S DIR(0)="D"
|
---|
| 20 | S DIR("A")="Re-transmit cases for what date "
|
---|
| 21 | S DIR("?",1)="Enter the date of original transmission for cases "
|
---|
| 22 | S DIR("?")="that need to be resent"
|
---|
| 23 | D ^DIR K DIR G:$D(DIRUT) EXIT I Y S RDATE=Y
|
---|
| 24 | S DIR(0)="Y",DIR("B")="Y",DIR("A")="Do you want to Queue Transmission"
|
---|
| 25 | S DIR("?",1)="Enter 'Y' if you want the 2162 data placed in mail"
|
---|
| 26 | S DIR("?")="messages as part of a tasked job."
|
---|
| 27 | D ^DIR K DIR G:$D(DIRUT) EXIT I Y D G EXIT
|
---|
| 28 | . S ZTRTN="EN^OOPSNDB",ZTIO=""
|
---|
| 29 | . S ZTDESC="TRAMSIT NATIONAL DATABASE 2162 DATA"
|
---|
| 30 | . D ^%ZTLOAD
|
---|
| 31 | S DIR(0)="Y"
|
---|
| 32 | S DIR("A")="Transmission NOT queued, OK to continue"
|
---|
| 33 | D ^DIR K DIR I 'Y G EXIT
|
---|
| 34 | S MSG("DIHELP",1)="Processing" W !
|
---|
| 35 | D MSG^DIALOG("WH","","","","MSG")
|
---|
| 36 | EN ; Routine Entry
|
---|
| 37 | N CNT,ERR,ERROR,FAIL,OPMG,OPQ
|
---|
| 38 | K VMSG,INV ; used for data validation of records
|
---|
| 39 | S CTR=1 ; counter for Mail message array
|
---|
| 40 | S (START,END,FAIL)=""
|
---|
| 41 | ; Assure the Queue (Q-ASI) has been defined
|
---|
| 42 | S VAL="Q-ASI.MED.VA.GOV",FIELD=.01,FL="X"
|
---|
| 43 | D FIND^DIC(4.2,"",FIELD,FL,VAL,"","","","","ARR")
|
---|
| 44 | I '$D(ARR("DILIST",1)) D G EXIT
|
---|
| 45 | . S ERROR(1)="The Queue Q-ASI.MED.VA.GOV has not been created."
|
---|
| 46 | . S ERROR(2)="Install Patch XM*999*130, complete manual "
|
---|
| 47 | . S ERROR(3)="Transmission of NDB Data."
|
---|
| 48 | . D ERROR
|
---|
| 49 | ; Make sure Mail Group Exists
|
---|
| 50 | S OPMG=$$FIND1^DIC(3.8,"","X","OOPS NDB MESSAGES")
|
---|
| 51 | I 'OPMG D G EXIT
|
---|
| 52 | . S ERROR(1)="The Mail Group OOPS NDB MESSAGES is missing."
|
---|
| 53 | . S ERROR(2)="Add the Group so that ASISTS data can be transmitted "
|
---|
| 54 | . S ERROR(3)="to the AAC. Then contact IRM to complete manual "
|
---|
| 55 | . S ERROR(4)="Transmission of NDB Data."
|
---|
| 56 | . D ERROR
|
---|
| 57 | ; Get list of members
|
---|
| 58 | D LIST^DIC(3.81,","_OPMG_",","","",1,"","","","","","OPQ")
|
---|
| 59 | I '$P(OPQ("DILIST",0),U) D G EXIT
|
---|
| 60 | . S ERROR(1)="There are no members of the OOPS NDB MESSAGES "
|
---|
| 61 | . S ERROR(1)=ERROR(1)_"Mail Group."
|
---|
| 62 | . S ERROR(2)="Enter at least one member to the group. This person "
|
---|
| 63 | . S ERROR(3)="will receive messages concerning the transmission of "
|
---|
| 64 | . S ERROR(4)="ASISTS NDB data to and from the AAC. After adding member"
|
---|
| 65 | . S ERROR(5)="contact IRM to complete manual transmission of NDB data."
|
---|
| 66 | . D ERROR
|
---|
| 67 | GETREC ; Loop thru ^OOP(2260 "AN" OR "ANC" Xref to get records to transmit
|
---|
| 68 | ; The logic for this data retrevial was changed for patch 11 to use
|
---|
| 69 | ; the Xrefs vs looping through the entire 2260 file.
|
---|
| 70 | N OOPIEN,PRSCNT,PRSDA,XMDUZ,XMTEXT,XMSUB,XMY,INDEX,INDEX2
|
---|
| 71 | N Y,%,%H,%I
|
---|
| 72 | K ^TMP($J,"C"),^TMP($J,"D")
|
---|
| 73 | S (CNT,PRSCNT,OOPDA)=0
|
---|
| 74 | D NOW^%DTC S DATE=%,Y=DATE X ^DD("DD")
|
---|
| 75 | S MTIME=$P(Y,"@",2),DATE=$$DC^OOPSNDBX(%)
|
---|
| 76 | S OOPIEN=""
|
---|
| 77 | I '$G(MAN) S INDEX="^OOPS(2260,""AN"",OPI)",INDEX2="^OOPS(2260,""AN"",OPI,OOPIEN)"
|
---|
| 78 | E S INDEX="^OOPS(2260,""ANC"",OPI)",INDEX2="^OOPS(2260,""ANC"",OPI,OOPIEN)"
|
---|
| 79 | S OPI=0 F S OPI=$O(@INDEX) Q:'OPI D
|
---|
| 80 | .S OOPIEN=0 F S OOPIEN=$O(@INDEX2) Q:'OOPIEN D
|
---|
| 81 | .. I $G(MAN),OPI'=RDATE Q
|
---|
| 82 | .. S VALID=""
|
---|
| 83 | .. F CHK=5:1:7 I '$$GET1^DIQ(2260,OOPIEN,CHK,"I") S:CHK=5 $P(VALID,U)=5 S:CHK=6 $P(VALID,U,2)=6 S:CHK=7 $P(VALID,U,3)=7
|
---|
| 84 | .. I $G(VALID)'="" S ^TMP($J,"D",OOPIEN)=VALID Q
|
---|
| 85 | .. S ^TMP($J,"C",OOPIEN)=""
|
---|
| 86 | .. S CNT=CNT+1
|
---|
| 87 | S ^TMP($J,"C")=CNT
|
---|
| 88 | ; Count # of Non-Separated PAID Employees
|
---|
| 89 | S PRSDA=0 D
|
---|
| 90 | . F S PRSDA=$O(^PRSPC(PRSDA)) Q:PRSDA'>0 D
|
---|
| 91 | .. I $$GET1^DIQ(450,PRSDA,80,"I")'="Y" S PRSCNT=PRSCNT+1
|
---|
| 92 | NOCASES ; No Cases to Send - Send Mail Message with only NDB segment
|
---|
| 93 | I CNT=0 D G EXIT
|
---|
| 94 | . D CREATE Q:FAIL
|
---|
| 95 | . D SEND
|
---|
| 96 | PROCESS ;
|
---|
| 97 | D CREATE G:FAIL EXIT
|
---|
| 98 | ; START - First case number in MM, End - Last Case # in MM
|
---|
| 99 | S OOPDA="",START="",END="",OPAST=""
|
---|
| 100 | F S OPAST=OOPDA,OOPDA=$O(^TMP($J,"C",OOPDA)) Q:OOPDA="" D
|
---|
| 101 | . D ^OOPSNDBX
|
---|
| 102 | . ; Set DATE TRANSMITTED TO NDB in ^OOPS(2260 records
|
---|
| 103 | . I $$GET1^DIQ(2260,OOPDA,57)="" D
|
---|
| 104 | .. K DR S DIE="^OOPS(2260,",(IEN,DA)=OOPDA,DR="57///TODAY" D ^DIE K DR,DA,DIE
|
---|
| 105 | ; If any records left to send and no FAILure
|
---|
| 106 | I ($G(XMZ)'<1)&('FAIL) D
|
---|
| 107 | . I END="" S END=$P($P(^OOPS(2260,OPAST,0),U),"-",2)
|
---|
| 108 | . D SEND
|
---|
| 109 | ;
|
---|
| 110 | EXIT ; Quits the program
|
---|
| 111 | D BADREC ; Send Mail if any Bad Records
|
---|
| 112 | I $G(FAIL) D
|
---|
| 113 | . S ERROR(1)="Mail Message was not created. Contact IRM to comlete "
|
---|
| 114 | . S ERROR(2)="the manual transmission of ASISTS NDB data."
|
---|
| 115 | . D ERROR
|
---|
| 116 | K CTR,DATE,ERR,ERROR,GRP,INV,OPL,MSIZE,MTIME,XMSUB,XMTEXT,XMY,MSG
|
---|
| 117 | K ^TMP($J)
|
---|
| 118 | Q
|
---|
| 119 | CREATE ; Create MailMan Message
|
---|
| 120 | N OPDATA,SN
|
---|
| 121 | S MSIZE=0
|
---|
| 122 | I $G(XMZ)'<1 D SEND
|
---|
| 123 | S OPL=0
|
---|
| 124 | S XMSUB="ASISTS NATIONAL DATABASE"
|
---|
| 125 | S XMDUZ=DUZ
|
---|
| 126 | D XMZ^XMA2 I XMZ<1 S FAIL=1 Q
|
---|
| 127 | S SN=$$GET1^DIQ(4,$P($G(^XMB(1,1,"XUS")),U,17),99)
|
---|
| 128 | S SN=$E("0000000",$L(SN)+1,7)_SN
|
---|
| 129 | S OPDATA="NDB^OOPS^"_SN_U_DATE_U_MTIME_U_^TMP($J,"C")
|
---|
| 130 | S OPDATA=OPDATA_U_U_PRSCNT_U_"002"_U_"|" ; chg 001 to 002 as ver 2
|
---|
| 131 | S OPL=OPL+1,^XMB(3.9,XMZ,2,OPL,0)=OPDATA
|
---|
| 132 | Q
|
---|
| 133 | SEND ; Send MailMan Message
|
---|
| 134 | N NUMCASE
|
---|
| 135 | S ^XMB(3.9,XMZ,2,0)="^3.92A^"_OPL_U_OPL_U_DT
|
---|
| 136 | ; Set # of Cases in this Mail Message
|
---|
| 137 | S NUMCASE=$S(START'="":START_"-"_END,1:0)
|
---|
| 138 | S $P(^XMB(3.9,XMZ,2,1,0),U,7)=NUMCASE
|
---|
| 139 | ; Indicate last line of message
|
---|
| 140 | S OPL=OPL+1,^XMB(3.9,XMZ,2,OPL,0)="$"
|
---|
| 141 | S XMY(DUZ)="" ; also send here, in case of error.
|
---|
| 142 | S XMY("XXX@Q-ASI.MED.VA.GOV")=""
|
---|
| 143 | S XMCHAN=1 D ENT1^XMD K XMCHAN
|
---|
| 144 | K XMZ
|
---|
| 145 | Q
|
---|
| 146 | BADREC ; If any records with missing data, send mail message
|
---|
| 147 | K MSG
|
---|
| 148 | S CTR=1,OOPDA=0
|
---|
| 149 | F S OOPDA=$O(^TMP($J,"D",OOPDA)) Q:OOPDA="" D
|
---|
| 150 | . S VALID=^TMP($J,"D",OOPDA)
|
---|
| 151 | . S MSG(CTR)="Case: "_$$GET1^DIQ(2260,OOPDA,.01)_" has missing data "
|
---|
| 152 | . S MSG(CTR)=MSG(CTR)_"that must be entered prior",CTR=CTR+1
|
---|
| 153 | . S MSG(CTR)="to transmitting to AAC. ",CTR=CTR+1
|
---|
| 154 | . I $P(VALID,U) S MSG(CTR)=" Missing SSN",CTR=CTR+1
|
---|
| 155 | . I $P(VALID,U,2) S MSG(CTR)=" Missing DOB",CTR=CTR+1
|
---|
| 156 | . I $P(VALID,U,3) S MSG(CTR)=" Missing SEX",CTR=CTR+1
|
---|
| 157 | I $D(MSG) D
|
---|
| 158 | . S XMSUB="ASISTS Records Missing Necessary Data Elements"
|
---|
| 159 | . S XMY("G.OOPS NDB MESSAGES@"_^XMB("NETNAME"))=""
|
---|
| 160 | . S XMTEXT="MSG("
|
---|
| 161 | . D ^XMD
|
---|
| 162 | Q
|
---|
| 163 | ERROR ; Create appropriate Error message and Send message
|
---|
| 164 | S XMDUZ="ASISTS Package"
|
---|
| 165 | S GRP="OOPS SAFETY"
|
---|
| 166 | D GRP^OOPSMBUL
|
---|
| 167 | ; If no one in mail group (this should not occur), send to user
|
---|
| 168 | I $D(XMY)<9 S XMY(DUZ)=""
|
---|
| 169 | S XMSUB="ASISTS NDB Error Notification Message"
|
---|
| 170 | S XMTEXT="ERROR("
|
---|
| 171 | D ^XMD
|
---|
| 172 | I '$D(ZTQUEUED) D
|
---|
| 173 | . S MSG("DIHELP",1)="An Error Occurred during Processing, check"
|
---|
| 174 | . S MSG("DIHELP",2)="Mailman Message for details."
|
---|
| 175 | . D MSG^DIALOG("WH","","","","MSG")
|
---|
| 176 | K ERROR
|
---|
| 177 | Q
|
---|