| [613] | 1 | PSOPRA ;BIR/JLC/MHA - INTERNET PRESCRIPTION REFILL APIS ; 4/14/05 4:51pm | 
|---|
|  | 2 | ;;7.0;OUTPATIENT PHARMACY;**116,151,204,264**;DEC 1997;Build 19 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | Q | 
|---|
|  | 5 | AP1(PSODFN,PSORX) ;ACCEPT REQUEST | 
|---|
|  | 6 | ; Input:  PSODFN (required) - Patient IEN Number | 
|---|
|  | 7 | ;         PSORX  (required) - Prescription Number | 
|---|
|  | 8 | ; Output: PSORET - Return Value | 
|---|
|  | 9 | ;         See IA# 3768 for description and values | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | N PSORET,PSRX,PSRXD,IEN,PSORR,PSOICN,SITE,PSOSITE | 
|---|
|  | 12 | I $G(PSODFN)="" S PSORET=-4 G QUITAP1 | 
|---|
|  | 13 | S PSOICN=+$$GETICN^MPIF001(PSODFN) | 
|---|
|  | 14 | I +$G(PSOICN)=-1 S PSORET=-4 G QUITAP1 | 
|---|
|  | 15 | I $G(PSORX)="" S PSORET=-3 G QUITAP1 | 
|---|
|  | 16 | I $O(^PSRX("B",PSORX,""))="" S PSORET=-3 G QUITAP1 | 
|---|
|  | 17 | I '$D(^PSRX("B",PSORX)) S PSORET=-3 G QUITAP1 | 
|---|
|  | 18 | S PSRX=$O(^PSRX("B",PSORX,"")),PSRXD=$G(^PSRX(PSRX,0)) | 
|---|
|  | 19 | I PSRXD="" S PSORET=-3 G QUITAP1 | 
|---|
|  | 20 | I $P(PSRXD,"^",2)'=PSODFN S PSORET=-5 G QUITAP1 | 
|---|
|  | 21 | S (SITE,DA)=$P(^XMB(1,1,"XUS"),"^",17),DIC="4",DIQ(0)="IE",DR=".01;99",DIQ="PSXUTIL" D EN^DIQ1 S PSOSITE=$G(PSXUTIL(4,SITE,99,"I")) | 
|---|
|  | 22 | I '$D(^PS(52.43,"AC",PSODFN,PSORX)) G FILEAP1 | 
|---|
|  | 23 | S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,"")) | 
|---|
|  | 24 | I '$D(^PS(52.43,IEN,0)) G FILEAP1 | 
|---|
|  | 25 | S PSORR=$G(^PS(52.43,IEN,0)) | 
|---|
|  | 26 | I $P(PSORR,"^",5)="" S PSORET=-2 G QUITAP1 | 
|---|
|  | 27 | S PSORET=-1 G QUITAP1 | 
|---|
|  | 28 | FILEAP1 K DO,DIC,DD S DIC(0)="L",DIC=52.43,X=PSOICN D FILE^DICN I Y=-1 S PSORET=0 G QUITAP1 | 
|---|
|  | 29 | N % D NOW^%DTC | 
|---|
|  | 30 | K DA,DR,DIE S DA=+Y,DIE=DIC,DR="3///"_PSORX_";7///0;8///"_PSRX_";4///"_PSOSITE_";9////"_PSODFN_";11///"_$E(%,1,12) D ^DIE | 
|---|
|  | 31 | S PSORET=1 | 
|---|
|  | 32 | QUITAP1 Q PSORET | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | AP2(PSODFN,PSORX) ;STATUS OF REQUEST | 
|---|
|  | 35 | ; Input:  PSODFN (required) - Patient IEN Number | 
|---|
|  | 36 | ;         PSORX  (required) - Prescription Number | 
|---|
|  | 37 | ; Output: PSORET - Return Value | 
|---|
|  | 38 | ;         See IA ... for description and values | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | N PSORET,PSORR,IEN | 
|---|
|  | 41 | I $G(PSODFN)="" S PSORET=-4 G QUITAP2 | 
|---|
|  | 42 | I $G(PSORX)="" S PSORET=-3 G QUITAP2 | 
|---|
|  | 43 | I '$D(^PS(52.43,"AC",PSODFN,PSORX)) S PSORET=-6 G QUITAP2 | 
|---|
|  | 44 | S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,"")) | 
|---|
|  | 45 | I '$D(^PS(52.43,IEN,0)) K ^PS(52.43,"AC",PSODFN,PSORX) S PSORET=-6 G QUITAP2 | 
|---|
|  | 46 | S PSORR=$G(^PS(52.43,IEN,0)) | 
|---|
|  | 47 | I $P(PSORR,"^",5)="" S PSORET=-2 G QUITAP2 | 
|---|
|  | 48 | S PSORET=$P(PSORR,"^",6)_"^"_$P(PSORR,"^",5) | 
|---|
|  | 49 | QUITAP2 Q PSORET | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | AP5(PSODFN,PSORX) ;PROCESS MHEV UPDATE | 
|---|
|  | 52 | ; Input:  PSODFN (required) - Patient IEN Number | 
|---|
|  | 53 | ;         PSORX  (required) - Prescription Number | 
|---|
|  | 54 | ; Output: PSORET - Return Value | 
|---|
|  | 55 | ;         See IA ... for description and values | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | N PSORET,PSORR,IEN,PSOIN | 
|---|
|  | 58 | I $G(PSODFN)="" S PSORET=-4 G ENDAP5 | 
|---|
|  | 59 | I $G(PSORX)="" S PSORET=-3 G ENDAP5 | 
|---|
|  | 60 | I '$D(^PS(52.43,"AC",PSODFN,PSORX)) S PSORET=-6 G ENDAP5 | 
|---|
|  | 61 | S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,"")) | 
|---|
|  | 62 | I '$D(^PS(52.43,IEN,0)) K ^PS(52.43,"AC",PSODFN,PSORX) S PSORET=-6 G ENDAP5 | 
|---|
|  | 63 | S PSORR=$G(^PS(52.43,IEN,0)) | 
|---|
|  | 64 | I $P(PSORR,"^",5)="" S PSORET=-2 G ENDAP5 | 
|---|
|  | 65 | S PSOIN=$P(PSORR,"^",4) | 
|---|
|  | 66 | K DA,DR,DIE | 
|---|
|  | 67 | S DA=IEN | 
|---|
|  | 68 | S DIE="^PS(52.43,",DR="7///1" D ^DIE S PSORET=1 | 
|---|
|  | 69 | K ^PS(52.43,"AC",PSODFN,PSORX) | 
|---|
|  | 70 | ENDAP5 Q PSORET | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | AP6(PSODIEN,PSOAP6) ;OUTPATIENT PHARMACY DIVISION LOOKUP | 
|---|
|  | 73 | ; Input:  PSODIEN  (required) - Outpatient Pharmacy Division IEN. | 
|---|
|  | 74 | ;                  1. Single Division IEN. | 
|---|
|  | 75 | ;                  2. Delimited list of Division IEN's (IEN1,IEN2,IEN3). | 
|---|
|  | 76 | ;                  3. Text word "ALL". | 
|---|
|  | 77 | ;         PSOAP6   (required) - Information return Array. | 
|---|
|  | 78 | ; Output: PSOAP6 - Information return Array. | 
|---|
|  | 79 | ;                  PSOAP6(DIV)=Active(0)/Inactive(1) | 
|---|
|  | 80 | ;                  PSOAP6(DIV,1)=Division Name^Area Code^Phone Number | 
|---|
|  | 81 | ;                  PSOAP6(DIV,2,1)=Narrative text 1st line. | 
|---|
|  | 82 | ;                  PSOAP6(DIV,2,n)=Narrative text nth line. | 
|---|
|  | 83 | ;         PSORET - 0 (Process failure). | 
|---|
|  | 84 | ;                  1 (Process success). | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | N DIEN,TEMP,NAME,AREACODE,PHONENUM,INACTIVE | 
|---|
|  | 87 | Q:$G(PSODIEN)="" 0 | 
|---|
|  | 88 | I PSODIEN="ALL" S ZS2=$O(^PS(59,0)),PSODIEN=ZS2 Q:'+ZS2 0 F  S ZS2=$O(^PS(59,ZS2)) Q:'+ZS2  S PSODIEN=PSODIEN_","_ZS2 | 
|---|
|  | 89 | F XX=1:1:$L(PSODIEN,",") S DIEN=$P(PSODIEN,",",XX) D | 
|---|
|  | 90 | .S NAME=$$GET1^DIQ(59,DIEN,".01") | 
|---|
|  | 91 | .Q:NAME="" | 
|---|
|  | 92 | .S AREACODE=$$GET1^DIQ(59,DIEN,".03") | 
|---|
|  | 93 | .S PHONENUM=$$GET1^DIQ(59,DIEN,".04") | 
|---|
|  | 94 | .S INACTIVE=$$GET1^DIQ(59,DIEN,2004,"I") | 
|---|
|  | 95 | .S PSOAP6(DIEN)=0 I INACTIVE S PSOAP6(DIEN)=1 | 
|---|
|  | 96 | .S PSOAP6(DIEN,1)=NAME_"^"_AREACODE_"^"_PHONENUM | 
|---|
|  | 97 | .S TEMP=$$GET1^DIQ(59,DIEN,1005,"","PSOAP6("_DIEN_",2)") | 
|---|
|  | 98 | ; | 
|---|
|  | 99 | ENDAP6 Q 1 | 
|---|