| 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
 | 
|---|