| 1 | OOPSGUI7 ;WIOFO/LLH-RPC routines ;10/30/01 | 
|---|
| 2 | ;;2.0;ASISTS;**2,4,7**;Jun 03, 2002 | 
|---|
| 3 | ; | 
|---|
| 4 | ENT(RESULTS,INPUT) ; Non-interactive GUI Entry Point for transmitting data | 
|---|
| 5 | ;                 to DOL or NDB | 
|---|
| 6 | ;  Input:   INPUT  - Contains the date for the claims to be | 
|---|
| 7 | ;                    retransmitted, the queue date and time for the | 
|---|
| 8 | ;                    retransmission date to run and either DOL or NDB | 
|---|
| 9 | ;                    to indicate which manual transmission should run. | 
|---|
| 10 | ;                    The format is TRANSDT^QUEUEDT@TIME^DOL (or NDB) | 
|---|
| 11 | ; Output: RESULTS -  is the return array to the client with status | 
|---|
| 12 | ;                    message | 
|---|
| 13 | N ARR,COMMA,ERR1,ERR2,FIELD,FL,MAILG,CURR,QDATE,QUE,RDATE,RTN,X,Y | 
|---|
| 14 | N MAN,WOK,ZTDESC,ZTREQ,ZTRTN | 
|---|
| 15 | S RTN=$P($G(INPUT),U,3) | 
|---|
| 16 | S MAN=1                       ; force manual xmit flag | 
|---|
| 17 | I RTN="DOL" D | 
|---|
| 18 | . S MAILG="OOPS DOL XMIT DATA" | 
|---|
| 19 | . S QUE="Q-AST.MED.VA.GOV" | 
|---|
| 20 | I RTN="NDB" D | 
|---|
| 21 | . S MAILG="OOPS XMIT 2162 DATA" | 
|---|
| 22 | . S QUE="Q-ASI.MED.VA.GOV" | 
|---|
| 23 | ;Check for security keys | 
|---|
| 24 | I '$D(^XUSEC(MAILG,DUZ)) D  Q | 
|---|
| 25 | .S RESULTS(0)="ERROR" | 
|---|
| 26 | .S RESULTS(1)="You do not have the required Security Key." | 
|---|
| 27 | ;Assure the Queue has been defined | 
|---|
| 28 | S FIELD=.01,FL="X" | 
|---|
| 29 | D FIND^DIC(4.2,"",FIELD,FL,QUE,"","","","","ARR") | 
|---|
| 30 | I '$D(ARR("DILIST",1)) D  Q | 
|---|
| 31 | .S RESULTS(0)="ERROR" | 
|---|
| 32 | .S RESULTS(1)="Domain not found in the DOMAIN File," | 
|---|
| 33 | ; Get Retransmit Date from First Piece of Input & Translate into FM | 
|---|
| 34 | S X=$P($G(INPUT),U) D ^%DT | 
|---|
| 35 | S RDATE=Y | 
|---|
| 36 | I RDATE=-1 S ERR1=1 | 
|---|
| 37 | S %DT="R",X=$P($G(INPUT),U,2) D ^%DT K %DT | 
|---|
| 38 | S QDATE=Y | 
|---|
| 39 | I QDATE=-1 S ERR2=2 | 
|---|
| 40 | I $G(ERR1)!($G(ERR2)) D  Q | 
|---|
| 41 | . S RESULTS(0)="ERROR",RESULTS(1)="",COMMA="" | 
|---|
| 42 | . S:$G(ERR1) RESULTS(1)="Invalid Transmission Date",COMMA=", " | 
|---|
| 43 | . S:$G(ERR2) RESULTS(1)=RESULTS(1)_COMMA_"Invalid Queue Date." | 
|---|
| 44 | ; | 
|---|
| 45 | I RTN="DOL" D | 
|---|
| 46 | . S ZTRTN="EN^OOPSDOL",WOK=1,ZTDESC="TRANSMIT DOL CA1/CA2 DATA" | 
|---|
| 47 | I RTN="NDB" D | 
|---|
| 48 | . S ZTRTN="EN^OOPSNDB",ZTDESC="TRANSMIT NATIONAL DATABASE 2162 DATA" | 
|---|
| 49 | ; Make sure Queue date/time is not after current time | 
|---|
| 50 | S CURR=$$HTFM^XLFDT(""_$H_"") | 
|---|
| 51 | I $$FMDIFF^XLFDT(QDATE,CURR,2)<0 S QDATE=$H | 
|---|
| 52 | ; Report will always be Queued from the GUI | 
|---|
| 53 | K IO("Q"),ZTUCI,ZTDTH,ZTIO,ZTSAVE | 
|---|
| 54 | S ZTDTH=QDATE,ZTIO="",ZTREQ="@",ZTSAVE("ZTREQ")="" | 
|---|
| 55 | S ZTSAVE("RDATE")="",ZTSAVE("MAN")="" | 
|---|
| 56 | D ^%ZTLOAD | 
|---|
| 57 | K ZTSK | 
|---|
| 58 | S RESULTS(0)="SUCCESSFULLY QUEUED" | 
|---|
| 59 | Q | 
|---|
| 60 | OWCPCLR(RESULTS,IEN,CALLER,FORM) ; Entry point for clearing supervisor | 
|---|
| 61 | ;   fields if OWPC worker has edited them | 
|---|
| 62 | ;  Input:     IEN - ien of case to have the fields cleared | 
|---|
| 63 | ;          CALLER - menu being called from | 
|---|
| 64 | ;            FORM - whether a CA1 or CA2 | 
|---|
| 65 | ; Output: RESULTS - required results parameter, no data returned | 
|---|
| 66 | ;                   from this call | 
|---|
| 67 | I $G(IEN)=""!($G(CALLER)="")!($G(FORM)="") Q | 
|---|
| 68 | D CLRFLDS^OOPSWCE | 
|---|
| 69 | SUPFLDS ; Clear Supervisor fields for the CA1, since fields have been changed | 
|---|
| 70 | I FORM'="CA1" Q | 
|---|
| 71 | N SUP | 
|---|
| 72 | S SUP=$$GET1^DIQ(200,DUZ,.01) | 
|---|
| 73 | S RESULTS=SUP | 
|---|
| 74 | S $P(^OOPS(2260,IEN,"CA1L"),U,3)=""     ;Clear EXCEPTION | 
|---|
| 75 | S $P(^OOPS(2260,IEN,"CA1L"),U,4)=""     ;Clear SUP TITLE | 
|---|
| 76 | S $P(^OOPS(2260,IEN,"CA1L"),U,5)=""     ;Clear SUP PHONE | 
|---|
| 77 | Q | 
|---|
| 78 | CONSENT(RESULTS,IEN,UNIREP)     ; Employee consented to union notification, | 
|---|
| 79 | ;                 send msg to union | 
|---|
| 80 | ; Input | 
|---|
| 81 | ;    IEN - Internal record number | 
|---|
| 82 | ; UNIREP - IEN from file 200 of the Union Rep - used to send bulletin | 
|---|
| 83 | ; Output - RESULTS - String indicating bulletin status. | 
|---|
| 84 | D CONSENT^OOPSMBUL(IEN,UNIREP) | 
|---|
| 85 | Q | 
|---|
| 86 | GETFLD(RESULTS,IEN,FLD) ; Send in IEN and Field number to retrieve a single | 
|---|
| 87 | ; data field from the ASISTS Accident Reporting File (#2260) | 
|---|
| 88 | ; | 
|---|
| 89 | ;  Input:   IEN - Internal record number | 
|---|
| 90 | ; Output:   FLD - the file and field number of the data element to be | 
|---|
| 91 | ;                 retrieved.  EX. 2260^120 | 
|---|
| 92 | N FILE,FIELD,DATA | 
|---|
| 93 | S RESULTS="No data." | 
|---|
| 94 | I '$G(IEN) S RESULTS="No data.  Missing Record Identifier." Q | 
|---|
| 95 | S FILE=$P(FLD,U),FIELD=$P(FLD,U,2) | 
|---|
| 96 | I $G(FILE)=""!($G(FIELD)="") D  Q | 
|---|
| 97 | . S RESULTS="No data.  Missing File or Field information." | 
|---|
| 98 | ; This should only get called when OOPS*2.0*7 is 1st released, used | 
|---|
| 99 | ; to get hire date if it's blank and personnel status is employee | 
|---|
| 100 | I FIELD=336 D  Q | 
|---|
| 101 | .N SSN,STR S SSN=$$GET1^DIQ(FILE,IEN,5,"I") | 
|---|
| 102 | .D FIND^DIC(450,,"@;.01;30","PS",SSN,"","SSN") | 
|---|
| 103 | .S STR=$P(^TMP("DILIST",$J,0),U) I $G(STR)'=1 S RESULTS="No Data." Q | 
|---|
| 104 | .S RESULTS=$P($G(^TMP("DILIST",$J,1,0)),U,3) | 
|---|
| 105 | .I RESULTS="" S RESULTS="No Data." | 
|---|
| 106 | .K ^TMP("DILIST",$J),DIERR | 
|---|
| 107 | S DATA=$$GET1^DIQ(FILE,IEN,FIELD) | 
|---|
| 108 | I $G(DATA)'="" S RESULTS=DATA | 
|---|
| 109 | Q | 
|---|
| 110 | GETINST(RESULTS)        ; | 
|---|
| 111 | ; RPC Call - Get Institutions from File 4 | 
|---|
| 112 | ; Output:  RESULTS - global array | 
|---|
| 113 | ; | 
|---|
| 114 | ; 12/30/03 llh (OOPS*2*4) - this subroutine can only be used | 
|---|
| 115 | ; to retrieve data from ^DIC(4).  There is generic code in OOPSGUI3 | 
|---|
| 116 | ; to obtain data from other 'table files'. | 
|---|
| 117 | ; | 
|---|
| 118 | N ITEM,ROOT,X,XREF,SFLD,VAL,PTR,PCE,VALID,FIELD | 
|---|
| 119 | K ^TMP("OOPSINST",$J) | 
|---|
| 120 | S XREF="B",X=0,FIELD=13 | 
|---|
| 121 | S ROOT="^"_$$GET1^DID(2260,FIELD,"","POINTER") | 
|---|
| 122 | S ITEM="" F  S ITEM=$O(@(ROOT_"XREF,ITEM)")) Q:$G(ITEM)']""  D | 
|---|
| 123 | .S PTR=0 F  S PTR=$O(@(ROOT_"XREF,ITEM,PTR)")) Q:PTR=""  D | 
|---|
| 124 | ..I PTR'>0 Q | 
|---|
| 125 | ..S VAL=$P(@(ROOT_PTR_",0)"),U) | 
|---|
| 126 | ..S VALID=1,SFLD=ROOT_PTR_",99)" | 
|---|
| 127 | ..I $P($G(@SFLD),U,4)=1 S VALID=0 | 
|---|
| 128 | ..I $P($G(@SFLD),U)'="" S VAL=VAL_" = "_$P($G(@SFLD),U) | 
|---|
| 129 | ..I $P(VAL," = ")="" S VALID=0 | 
|---|
| 130 | ..I VALID S X=X+1,^TMP("OOPSINST",$J,X)=PTR_":"_VAL_$C(10) | 
|---|
| 131 | S RESULTS=$NA(^TMP("OOPSINST",$J)) | 
|---|
| 132 | Q | 
|---|
| 133 | SENSDATA(RES,SDUZ,EMP) ;Supervisor accessed sensitive data, case not created | 
|---|
| 134 | ; Input  EMP String which is the name of the employee accessed. | 
|---|
| 135 | ;        DUZ DUZ of the Supervisor accessing the data. | 
|---|
| 136 | N MGRP,MEMS,MSG | 
|---|
| 137 | ;Make sure mail group exists | 
|---|
| 138 | S MGRP=$$FIND1^DIC(3.8,"","X","OOPS ISO NOTIFICATION") | 
|---|
| 139 | I 'MGRP D  G BULL | 
|---|
| 140 | .S XMY("G.OOPS WC MESSAGE")="" | 
|---|
| 141 | .S XMDUZ="ASISTS Package" | 
|---|
| 142 | .S GRP="OOPS WC MESSAGE" | 
|---|
| 143 | .S XMSUB="ASISTS ISO NOTIFICATION Mail Group Error" | 
|---|
| 144 | .S MSG(1)="The OOPS ISO NOTIFICATION Mail Group does not exist." | 
|---|
| 145 | .S XMTEXT="MSG(" | 
|---|
| 146 | .D ^XMD | 
|---|
| 147 | ;Make sure there is someone defined in the mail group | 
|---|
| 148 | D LIST^DIC(3.81,","_MGRP_",","","",1,"","","","","","MEMS") | 
|---|
| 149 | I '$P(MEMS("DILIST",0),U) D  G BULL | 
|---|
| 150 | .S XMY("G.OOPS WC MESSAGE")="" | 
|---|
| 151 | .S XMDUZ="ASISTS Package" | 
|---|
| 152 | .S GRP="OOPS WC MESSAGE" | 
|---|
| 153 | .S XMSUB="ASISTS ISO NOTIFICATION Mail Group Error" | 
|---|
| 154 | .S MSG(1)="There are no members in mail group OOPS ISO NOTIFICATION." | 
|---|
| 155 | .S XMTEXT="MSG(" | 
|---|
| 156 | .D ^XMD | 
|---|
| 157 | S XMY("G.OOPS ISO NOTIFICATION")="" | 
|---|
| 158 | BULL S (NAME,XMB)="OOPS SENSITIVE DATA" | 
|---|
| 159 | S XMB(1)=$$GET1^DIQ(200,SDUZ,.01) | 
|---|
| 160 | S XMB(2)=EMP | 
|---|
| 161 | S XMB(3)=$$FMTE^XLFDT($$NOW^XLFDT,1) | 
|---|
| 162 | S XMBODY="",XMINSTR("FLAGS")="X" | 
|---|
| 163 | D TASKBULL^XMXAPI(DUZ,NAME,.XMB,XMBODY,.XMY,.XMINSTR) | 
|---|
| 164 | K NAME,XMB,XMBODY,XMY,XMINSTR | 
|---|
| 165 | S RES="BULLETIN SENT" | 
|---|
| 166 | Q | 
|---|