1 | PSXDODAK ;BIR/PDW-FILE .QACs FACILITY RELEASE PROCESSED ACKs & NAKs ;09/09/02 10:45 AM
|
---|
2 | ;;2.0;CMOP;**38,45**;11 Apr 97
|
---|
3 | EN(PATH,FNAME) ; needs directory & file name
|
---|
4 | ; force an error in the next line
|
---|
5 | ;S X=ERROR ; generate an undefined error
|
---|
6 | D EXIT
|
---|
7 | I $L(PATH),$L(FNAME) I 1
|
---|
8 | E S PSXERR="0^BAD PATH OR FILENAME" G ERRMSG
|
---|
9 | K ^TMP($J,"PSXDOD")
|
---|
10 | S GBL="^TMP("_$J_",""PSXDOD"",1)"
|
---|
11 | S Y=$$FTG^%ZISH(PATH,FNAME,GBL,3)
|
---|
12 | I Y'>0 S PSXERR="9^"_PATH_U_FNAME_U_" DID NOT LOAD" G ERRMSG
|
---|
13 | I $D(^TMP($J,"PSXDOD"))'>1 S PSXERR="9^"_PATH_U_FNAME_U_" DID NOT LOAD" G ERRMSG
|
---|
14 | S FHS=^TMP($J,"PSXDOD",1),BHS=^TMP($J,"PSXDOD",2)
|
---|
15 | I $E(FHS,1,3)="FHS",$E(BHS,1,3)="BHS" I 1
|
---|
16 | E S PSXERR="1^File headers not correct ^"_FNAME Q
|
---|
17 | ; setup variables to call into PSXVEND for filing acks and nacks
|
---|
18 | ;BHS|^~\&|CHCS|VistA|20020417081343||||0617-021081441
|
---|
19 | F YY="PDT^5","MSG^9" D PIECE(BHS,"|",YY)
|
---|
20 | S (PSXPDT,PDT)=$$FMDATE^HLFNC(PDT),TXMZ="1"_MSG
|
---|
21 | ;MSGNUM is to be the same ID of the release message .qry the .qac is responding to
|
---|
22 | S SS="1"_$P(MSG,"-"),MSGNUM=$P(MSG,"-",2)
|
---|
23 | D NOW^%DTC S ACKTM=%
|
---|
24 | I $E(IOST)="C" W !,"UPDATING ",MSGNUM
|
---|
25 | D DOD^PSXVEND ; update 554 message status
|
---|
26 | ;
|
---|
27 | F LNNUM=3:1 S LN=$G(^TMP($J,"PSXDOD",LNNUM)) Q:LN="" S SEG=$E(LN,1,3) Q:SEG="BTS" D:SEG="MSA" MSA
|
---|
28 | ;
|
---|
29 | EXIT ;
|
---|
30 | K ^TMP($J,"PSXDOD")
|
---|
31 | K FHS,BHS,PDT,MSG,TXMZ,MSGNUM,HOLD
|
---|
32 | Q
|
---|
33 | MSA ; pull variables from MSA segment and call into PSXVEND $RX or $INV
|
---|
34 | ;MSA|CA|0617-AA116-2|
|
---|
35 | ;MSA|CR|516-11450-8954|2-RX ENTRY MISSING
|
---|
36 | I $E(IOST)="C" W !,LN
|
---|
37 | F YY="TYP^2","RXNDX^3","STAT^4" D PIECE(LN,"|",YY)
|
---|
38 | S RXNDX="1"_RXNDX,(RXN,RXNUM)=$P(RXNDX,"-",2),FILL=$P(RXNDX,"-",3),STAT=+STAT
|
---|
39 | I '$D(^PSX(552.4,"E",RXNDX)) S PSXERR=".QAC RX Not Found "_RXNDX_" "_FNAME D ERRMSG Q
|
---|
40 | S AA=$O(^PSX(552.4,"E",RXNDX,0)),BB=$O(^PSX(552.4,"E",RXNDX,AA,0))
|
---|
41 | I $E(IOST)="C" W !,"ENTRY AA BB ",AA," ",BB
|
---|
42 | I AA,BB I 1
|
---|
43 | E S PSXERR="QAC RX Entry Not Found "_RXNDX_" "_FNAME D ERRMSG Q
|
---|
44 | S SS="1"_$P(MSG,"-"),PDT=PSXPDT
|
---|
45 | K DIC,DA,DR,DIE,DO,DD
|
---|
46 | D:TYP="CA" DODRX^PSXVEND
|
---|
47 | D:TYP="CR" DODINV^PSXVEND
|
---|
48 | Q
|
---|
49 | PIECE(REC,DLM,XX) ;
|
---|
50 | ; Set variable V = piece P of REC using delimiter DLM
|
---|
51 | N V,P S V=$P(XX,U),P=$P(XX,U,2),@V=$P(REC,DLM,P)
|
---|
52 | Q
|
---|
53 | PUT(REC,DLM,XX) ;
|
---|
54 | ; Set Variable V into piece P of REC using delimiter DLM
|
---|
55 | N V,P S V=$P(XX,U),P=$P(XX,U,2)
|
---|
56 | S $P(REC,DLM,P)=$G(@V)
|
---|
57 | Q
|
---|
58 | ERRMSG ;send error message to folks & DOD
|
---|
59 | S DIRHOLD=$$GET1^DIQ(554,1,23),HOLD=$G(HOLD)+1
|
---|
60 | I HOLD=1 D
|
---|
61 | . F XX=1:1:5 S Y=$$GTF^%ZISH($NA(^TMP($J,"PSXDOD",1)),3,DIRHOLD,FNAME) Q:Y=1 H 4
|
---|
62 | . I Y'=1 S GBL=$NA(^TMP($J,"PSXDOD")) D FALERT^PSXDODNT(FNAME,DIRHOLD,GBL)
|
---|
63 | S XMSUB="DOD CMOP Error "_FNAME
|
---|
64 | ;S XMY(DUZ)="" ;***TESTING
|
---|
65 | S XMY("G.PSXX CMOP MANAGERS")=""
|
---|
66 | S XMTEXT="PSXTXT("
|
---|
67 | S PSXTXT(1,0)="DOD CMOP .QAC Facility Release Acknowledgement filing experienced an error"
|
---|
68 | S PSXTXT(2,0)=$G(PSXERR)
|
---|
69 | S PSXTXT(3,0)="FILE: "_FNAME
|
---|
70 | S PSXTXT(4,0)="A copy of the file has been placed in the hold directory "_DIRHOLD
|
---|
71 | D ^XMD
|
---|
72 | I $E(IOST)="C" W ! F I=1:1:4 W !,PSXTXT(I,0) I I=4 H 3
|
---|
73 | K PSXTXT,DIRHOLD
|
---|
74 | Q
|
---|
75 | RXNDX ; backfill the RX multiple RXNDX field #40 of file 552.4
|
---|
76 | S ORDDA=0 F S ORDDA=$O(^PSX(552.4,ORDDA)) Q:ORDDA'>0 D
|
---|
77 | . S SITE=$$GET1^DIQ(552.4,ORDDA,.01),SITE=$P(SITE,"-")
|
---|
78 | . S RXDA=0 F S RXDA=$O(^PSX(552.4,ORDDA,1,RXDA)) Q:RXDA'>0 S XX=^(RXDA,0) D
|
---|
79 | .. F YY="RXNM^1","FILL^12" D PIECE(XX,U,YY)
|
---|
80 | .. S FILL=FILL+1,VAL=SITE_"-"_RXNM_"-"_FILL
|
---|
81 | .. K DR,DIE,DA
|
---|
82 | .. S DIE="^PSX(552.4,"_ORDDA_",1,",DA(1)=ORDDA,DA=RXDA,DR="40///^S X=VAL"
|
---|
83 | .. D ^DIE K DR,DIE,DA
|
---|
84 | Q
|
---|