| 1 | PPPEDT14 ;ALB/JFP - EDIT FF XREF ROUTINE ;5/19/92 | 
|---|
| 2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;;APR 7,1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | ; These routines control the adding of foreign facility | 
|---|
| 6 | ; data to the FFX file (Add Entry). | 
|---|
| 7 | ; | 
|---|
| 8 | ADD ; -- Adds new entry to FFX file | 
|---|
| 9 | ; | 
|---|
| 10 | N SNIFN,STATION,STANO,ERR,NEWENTRY,PATNAME,LOCKERR,STANAME | 
|---|
| 11 | ; | 
|---|
| 12 | S LOCKERR=-9004 | 
|---|
| 13 | S NEWENTRY=1001 | 
|---|
| 14 | ; | 
|---|
| 15 | I $P(XQORNOD(0),"^",4)["=" D | 
|---|
| 16 | . W !,"  - Add Entry action doesn't allow for numeric selection..." | 
|---|
| 17 | ADD1 S SNIFN=$$GETINST^PPPGET3() | 
|---|
| 18 | I SNIFN<0 S VALMBCK="R" Q | 
|---|
| 19 | S STATION=$$GETSNIFN^PPPGET3(SNIFN,1) | 
|---|
| 20 | S SNIFN=$P(STATION,"^") | 
|---|
| 21 | I SNIFN=-1001 Q  ; -- user abort | 
|---|
| 22 | I SNIFN<0 D  G ADD1 | 
|---|
| 23 | .W ?35,"...No entry found" | 
|---|
| 24 | S STANAME=$P(STATION,"^",2) | 
|---|
| 25 | S STANO=$$GETSTANO^PPPGET1(SNIFN) | 
|---|
| 26 | ; | 
|---|
| 27 | D PATDATA(PATDFN) S PATNAME=$G(PPPTMP(2,PATDFN,.01)) K PPPTMP | 
|---|
| 28 | S ERR=$$NEWFFX(PATDFN,SNIFN,1) | 
|---|
| 29 | I ERR=-1001 D  Q | 
|---|
| 30 | .N DIK,DA | 
|---|
| 31 | .S DIK="^PPP(1020.2," | 
|---|
| 32 | .S DA=FFIFN | 
|---|
| 33 | .D ^DIK | 
|---|
| 34 | ; | 
|---|
| 35 | I ERR<0 D  Q | 
|---|
| 36 | .W !,*7,"An unexpected error occurred" | 
|---|
| 37 | .S TMP=$$STATUPDT^PPPMSC1(5,1) | 
|---|
| 38 | .S TMP=$$LOGEVNT^PPPMSC1(ERR,"ADD_PPPEDT14",PATNAME) | 
|---|
| 39 | .R !,"Press <RETURN> to continue...",TMP:DTIME | 
|---|
| 40 | ; | 
|---|
| 41 | I ERR=LOCKERR D | 
|---|
| 42 | .W !,"File in use.  Please try again later." | 
|---|
| 43 | .R !,"Press <RETURN> to continue...",TMP:DTIME | 
|---|
| 44 | E  D | 
|---|
| 45 | .S TMP=$$LOGEVNT^PPPMSC1(NEWENTRY,"ADD_PPPEDT14",PATNAME_", "_STANO) | 
|---|
| 46 | .;W !,"New entry added." | 
|---|
| 47 | .;R !,"Press <RETURN> to continue...",TMP:DTIME | 
|---|
| 48 | D INIT^PPPEDT12 | 
|---|
| 49 | S VALMBCK="R" | 
|---|
| 50 | K FFIFN | 
|---|
| 51 | Q | 
|---|
| 52 | ; | 
|---|
| 53 | NEWFFX(PATDFN,SNIFN,SRC) ; Create a new FFX entry | 
|---|
| 54 | ; | 
|---|
| 55 | N PARMERR,FINDERR,LOCLERR,DIC,X,Y,TMP,ERR,DTOUT,DUOUT | 
|---|
| 56 | ; | 
|---|
| 57 | S PARMERR=-9001 | 
|---|
| 58 | S FINDERR=-9003 | 
|---|
| 59 | S LOCKERR=-9004 | 
|---|
| 60 | S ERR=0 | 
|---|
| 61 | ; | 
|---|
| 62 | ; Check Input Parameters | 
|---|
| 63 | ; | 
|---|
| 64 | I '$D(PATDFN) Q PARMERR | 
|---|
| 65 | I '$D(SNIFN) Q PARMERR | 
|---|
| 66 | I '$D(SRC) Q PARMERR | 
|---|
| 67 | I SRC<0!(SRC>1) Q PARMERR | 
|---|
| 68 | ; | 
|---|
| 69 | ; Set up FileMan For New Entry | 
|---|
| 70 | ; | 
|---|
| 71 | S DIC="^PPP(1020.2," | 
|---|
| 72 | S DIC(0)="" | 
|---|
| 73 | S X=PATDFN | 
|---|
| 74 | S DIC("DR")="1////"_SNIFN_";7////"_SRC | 
|---|
| 75 | L +(^PPP(1020.2)):5 | 
|---|
| 76 | I '$T D | 
|---|
| 77 | .S ERR=LOCKERR | 
|---|
| 78 | E  D | 
|---|
| 79 | .K DD,DO D FILE^DICN | 
|---|
| 80 | .L -(^PPP(1020.2)):5 | 
|---|
| 81 | ; | 
|---|
| 82 | ; If the entry was added successfully, add the remaining fields | 
|---|
| 83 | ; | 
|---|
| 84 | I 'ERR D | 
|---|
| 85 | .I $P(Y,"^",3)=1 D | 
|---|
| 86 | ..S FFIFN=$P(Y,"^",1) | 
|---|
| 87 | ..S TMP=$$EDTFFX^PPPEDT1(FFIFN) | 
|---|
| 88 | ..I TMP<0 S ERR=TMP | 
|---|
| 89 | .E  S ERR=FINDERR | 
|---|
| 90 | Q ERR | 
|---|
| 91 | ; | 
|---|
| 92 | PATDATA(PATDFN) ; Pulls data from patient file | 
|---|
| 93 | ; | 
|---|
| 94 | ; Note: Calling routine must kill PPPTMP | 
|---|
| 95 | ; | 
|---|
| 96 | N DIC,DA,DR,DIQ,DUOUT,DTOUT | 
|---|
| 97 | ; | 
|---|
| 98 | S DIC="^DPT(",DA=PATDFN,DR=".01",DIQ="PPPTMP" D EN^DIQ1 | 
|---|
| 99 | Q | 
|---|
| 100 | ; | 
|---|