| 1 | PPPBLD1A ;ALB/DMB - BUILD FFX FROM CDROM - CONTINUED : 3/4/92
|
---|
| 2 | ;;1.0;PHARMACY PRESCRIPTION PRACTICE;**2,26,38,41**;APR 7,1995
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | GETDATA ;
|
---|
| 6 | ;
|
---|
| 7 | S STARTTM=$$NOW^PPPCNV1
|
---|
| 8 | ;VMP OIFO BAY PINES;PPP*1*41 CHANGED F I= TO F PPPI=
|
---|
| 9 | NEW PPPI
|
---|
| 10 | F PPPI=0:0 D Q:(STATUS)
|
---|
| 11 | .;
|
---|
| 12 | .;
|
---|
| 13 | .;
|
---|
| 14 | CHKTM .;VMP OIFO BAY PINES;ELR;PPP*1*38
|
---|
| 15 | .;REMOVE CHECKING FOR TIMEOUT ON MPD
|
---|
| 16 | GETSSN .S SSN=$O(@OUTARRY@("DONE",""))
|
---|
| 17 | .I SSN'="" D
|
---|
| 18 | ..S STARTTM=$$NOW^PPPCNV1
|
---|
| 19 | ..S TSSN=TSSN+1
|
---|
| 20 | ..S FOUND=$G(@OUTARRY@(SSN,"FOUND"))
|
---|
| 21 | ..I FOUND<1 D Q
|
---|
| 22 | ...I FOUND<0 D
|
---|
| 23 | ....S TMP=$$LOGEVNT^PPPMSC1(MPDERR2,PPPMRT,SSN_"/"_+FOUND)
|
---|
| 24 | ...K @OUTARRY@(SSN)
|
---|
| 25 | ...K @OUTARRY@("DONE",SSN)
|
---|
| 26 | ...D DEL
|
---|
| 27 | ..;
|
---|
| 28 | GETDFN ..; Get the DFN for the SSN. If we can't then we have an invalid SSN.
|
---|
| 29 | ..;
|
---|
| 30 | ..S PATDFN=+$$GETDFN^PPPGET1(SSN)
|
---|
| 31 | ..I PATDFN<1 D Q
|
---|
| 32 | ...S STARTTM=$$NOW^PPPCNV1
|
---|
| 33 | ...S ERRTXT="Could not find SSN "_SSN_" in Patient File."
|
---|
| 34 | ...S ERRORS=1
|
---|
| 35 | ...S TMP=$$ADD2ERR^PPPBLD2(ERRARY2,ERRTXT)
|
---|
| 36 | ...K @OUTARRY@("DONE",SSN)
|
---|
| 37 | ...K @OUTARRY@(SSN)
|
---|
| 38 | ...D DEL
|
---|
| 39 | ..;
|
---|
| 40 | GETSTA ..; Now get the station number. If its not in the institution file
|
---|
| 41 | ..; then reject it.
|
---|
| 42 | ..;
|
---|
| 43 | ..S STANO=0
|
---|
| 44 | ..F D Q:STANO=""
|
---|
| 45 | ...S STANO=$O(@OUTARRY@(SSN,"SITES",STANO)) Q:STANO=""
|
---|
| 46 | ...;
|
---|
| 47 | ...; We need the station IFN to look up the entry in the FFX file.
|
---|
| 48 | ...;
|
---|
| 49 | ...;S SNIFN=$O(^DIC(4,"D",STANO,""))
|
---|
| 50 | ...S SNIFN=STANO
|
---|
| 51 | ...I SNIFN="" D Q
|
---|
| 52 | ....S SNIFN=$O(^PPP(1020.128,"AC",STANO,0)) I SNIFN]"" Q
|
---|
| 53 | ....S STARTTM=$$NOW^PPPCNV1
|
---|
| 54 | ....S ERRTXT="Could not find station "_STANO_" in Institution File for SSN "_SSN_"."
|
---|
| 55 | ....S ERRORS=1
|
---|
| 56 | ....S TMP=$$ADD2ERR^PPPBLD2(ERRARY2,ERRTXT)
|
---|
| 57 | ...;
|
---|
| 58 | FFXIFN ...; Check to see if the entry already exists. If it does then update
|
---|
| 59 | ...; the last date of visit if necessary. Else create a new entry.
|
---|
| 60 | ...;
|
---|
| 61 | ...S FFXIFN=$$GETFFIFN^PPPGET1(PATDFN,SNIFN)
|
---|
| 62 | ...S MPDLDOV=$G(@OUTARRY@(SSN,"SITES",STANO))
|
---|
| 63 | ...I FFXIFN>0 D
|
---|
| 64 | ....S FFXLDOV=$P($G(^PPP(1020.2,FFXIFN,0)),"^",3)
|
---|
| 65 | ....I MPDLDOV>FFXLDOV D
|
---|
| 66 | .....S DIE=1020.2
|
---|
| 67 | .....S DA=FFXIFN
|
---|
| 68 | .....S DR="2///"_MPDLDOV
|
---|
| 69 | .....D ^DIE
|
---|
| 70 | ....S TEDTENT=TEDTENT+1
|
---|
| 71 | ...E D
|
---|
| 72 | ....S X=PATDFN
|
---|
| 73 | ....S DIC="^PPP(1020.2,"
|
---|
| 74 | ....S DIC(0)=""
|
---|
| 75 | ....S DIC("DR")="1////"_SNIFN_";2///"_MPDLDOV_";7///0"
|
---|
| 76 | ....K DD,DO D FILE^DICN
|
---|
| 77 | ....S TNEWENT=TNEWENT+1
|
---|
| 78 | ....I $P(Y,"^",3)'=1 D
|
---|
| 79 | .....S ERRTXT="Could not add "_SSN_"/"_STANO_" to FFX file."
|
---|
| 80 | .....S ERRORS=1
|
---|
| 81 | .....S TMP=$$ADD2ERR^PPPBLD2(ERRARY2,ERRTXT)
|
---|
| 82 | ....;
|
---|
| 83 | ....; Make sure the DOMAIN name got resolved.
|
---|
| 84 | ....;
|
---|
| 85 | ....I $P($G(^PPP(1020.2,+Y,1)),"^",5)="" D
|
---|
| 86 | .....S ERRTXT="Could not resolve DOMAIN for "_SSN_"/"_STANO
|
---|
| 87 | .....S ERRORS=1
|
---|
| 88 | .....S TMP=$$ADD2ERR^PPPBLD2(ERRARY2,ERRTXT)
|
---|
| 89 | ..;
|
---|
| 90 | ..; We're done with that SSN, kill it off and set last SSN processed
|
---|
| 91 | ..;VMP OIFO BAY PINES;ELR;PPP*1*38
|
---|
| 92 | ..D DEL
|
---|
| 93 | ..;
|
---|
| 94 | ..K @OUTARRY@("DONE",SSN)
|
---|
| 95 | ..;PPP*1*26 Dave Blocker - remove setting last SSN
|
---|
| 96 | ..;messes up the build option
|
---|
| 97 | ..K @OUTARRY@(SSN)
|
---|
| 98 | ..;S $P(^PPP(1020.1,1,2),"^",1)=SSN
|
---|
| 99 | ..S STARTTM=$$NOW^PPPCNV1
|
---|
| 100 | .E D
|
---|
| 101 | ..;
|
---|
| 102 | ..; There was no SSN available. Check to see if we're done.
|
---|
| 103 | ..; If not then check again.
|
---|
| 104 | ..;
|
---|
| 105 | ..S STATUS=+$G(@OUTARRY@("STATUS"))
|
---|
| 106 | ..I STATUS<0 D
|
---|
| 107 | ...S ERR=MPDSTERR
|
---|
| 108 | ...S TMP=$$LOGEVNT^PPPMSC1(ERR,PPPMRT,"Status = "_$P($G(@OUTARRY@("STATUS")),U,2))
|
---|
| 109 | ..E H 1
|
---|
| 110 | ;
|
---|
| 111 | ; We're all done. Check to see if we need to send an error bulletin.
|
---|
| 112 | ;
|
---|
| 113 | I ERRORS D
|
---|
| 114 | .S TMP=$$SNDBLTN^PPPMSC1("PPP FFX BUILD MESSAGES","PRESCRIPTION PRACTICES",ERRARY1)
|
---|
| 115 | ;
|
---|
| 116 | Q
|
---|
| 117 | ;
|
---|
| 118 | DEL ;VMP OIFO BAY PINES;ELR;PPP*1*38
|
---|
| 119 | NEW PPPDA S PPPDA=0
|
---|
| 120 | F S PPPDA=$O(^PPP(1020.7,"B",SSN,PPPDA)) Q:PPPDA="" D
|
---|
| 121 | .I PPPDA S DA=PPPDA,DIK="^PPP(1020.7," D ^DIK K DIK
|
---|
| 122 | Q
|
---|