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