Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSOPRA

PSOPRA.m

Go to the documentation of this file.
  1. PSOPRA ;BIR/JLC/MHA - INTERNET PRESCRIPTION REFILL APIS ; 4/14/05 4:51pm
  1. ;;7.0;OUTPATIENT PHARMACY;**116,151,204,264**;DEC 1997;Build 19
  1. ;
  1. Q
  1. AP1(PSODFN,PSORX) ;ACCEPT REQUEST
  1. ; Input: PSODFN (required) - Patient IEN Number
  1. ; PSORX (required) - Prescription Number
  1. ; Output: PSORET - Return Value
  1. ; See IA# 3768 for description and values
  1. ;
  1. N PSORET,PSRX,PSRXD,IEN,PSORR,PSOICN,SITE,PSOSITE
  1. I $G(PSODFN)="" S PSORET=-4 G QUITAP1
  1. S PSOICN=+$$GETICN^MPIF001(PSODFN)
  1. I +$G(PSOICN)=-1 S PSORET=-4 G QUITAP1
  1. I $G(PSORX)="" S PSORET=-3 G QUITAP1
  1. I $O(^PSRX("B",PSORX,""))="" S PSORET=-3 G QUITAP1
  1. I '$D(^PSRX("B",PSORX)) S PSORET=-3 G QUITAP1
  1. S PSRX=$O(^PSRX("B",PSORX,"")),PSRXD=$G(^PSRX(PSRX,0))
  1. I PSRXD="" S PSORET=-3 G QUITAP1
  1. I $P(PSRXD,"^",2)'=PSODFN S PSORET=-5 G QUITAP1
  1. 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"))
  1. I '$D(^PS(52.43,"AC",PSODFN,PSORX)) G FILEAP1
  1. S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,""))
  1. I '$D(^PS(52.43,IEN,0)) G FILEAP1
  1. S PSORR=$G(^PS(52.43,IEN,0))
  1. I $P(PSORR,"^",5)="" S PSORET=-2 G QUITAP1
  1. S PSORET=-1 G QUITAP1
  1. 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
  1. N % D NOW^%DTC
  1. 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
  1. S PSORET=1
  1. QUITAP1 Q PSORET
  1. ;
  1. AP2(PSODFN,PSORX) ;STATUS OF REQUEST
  1. ; Input: PSODFN (required) - Patient IEN Number
  1. ; PSORX (required) - Prescription Number
  1. ; Output: PSORET - Return Value
  1. ; See IA ... for description and values
  1. ;
  1. N PSORET,PSORR,IEN
  1. I $G(PSODFN)="" S PSORET=-4 G QUITAP2
  1. I $G(PSORX)="" S PSORET=-3 G QUITAP2
  1. I '$D(^PS(52.43,"AC",PSODFN,PSORX)) S PSORET=-6 G QUITAP2
  1. S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,""))
  1. I '$D(^PS(52.43,IEN,0)) K ^PS(52.43,"AC",PSODFN,PSORX) S PSORET=-6 G QUITAP2
  1. S PSORR=$G(^PS(52.43,IEN,0))
  1. I $P(PSORR,"^",5)="" S PSORET=-2 G QUITAP2
  1. S PSORET=$P(PSORR,"^",6)_"^"_$P(PSORR,"^",5)
  1. QUITAP2 Q PSORET
  1. ;
  1. AP5(PSODFN,PSORX) ;PROCESS MHEV UPDATE
  1. ; Input: PSODFN (required) - Patient IEN Number
  1. ; PSORX (required) - Prescription Number
  1. ; Output: PSORET - Return Value
  1. ; See IA ... for description and values
  1. ;
  1. N PSORET,PSORR,IEN,PSOIN
  1. I $G(PSODFN)="" S PSORET=-4 G ENDAP5
  1. I $G(PSORX)="" S PSORET=-3 G ENDAP5
  1. I '$D(^PS(52.43,"AC",PSODFN,PSORX)) S PSORET=-6 G ENDAP5
  1. S IEN=$O(^PS(52.43,"AC",PSODFN,PSORX,""))
  1. I '$D(^PS(52.43,IEN,0)) K ^PS(52.43,"AC",PSODFN,PSORX) S PSORET=-6 G ENDAP5
  1. S PSORR=$G(^PS(52.43,IEN,0))
  1. I $P(PSORR,"^",5)="" S PSORET=-2 G ENDAP5
  1. S PSOIN=$P(PSORR,"^",4)
  1. K DA,DR,DIE
  1. S DA=IEN
  1. S DIE="^PS(52.43,",DR="7///1" D ^DIE S PSORET=1
  1. K ^PS(52.43,"AC",PSODFN,PSORX)
  1. ENDAP5 Q PSORET
  1. ;
  1. AP6(PSODIEN,PSOAP6) ;OUTPATIENT PHARMACY DIVISION LOOKUP
  1. ; Input: PSODIEN (required) - Outpatient Pharmacy Division IEN.
  1. ; 1. Single Division IEN.
  1. ; 2. Delimited list of Division IEN's (IEN1,IEN2,IEN3).
  1. ; 3. Text word "ALL".
  1. ; PSOAP6 (required) - Information return Array.
  1. ; Output: PSOAP6 - Information return Array.
  1. ; PSOAP6(DIV)=Active(0)/Inactive(1)
  1. ; PSOAP6(DIV,1)=Division Name^Area Code^Phone Number
  1. ; PSOAP6(DIV,2,1)=Narrative text 1st line.
  1. ; PSOAP6(DIV,2,n)=Narrative text nth line.
  1. ; PSORET - 0 (Process failure).
  1. ; 1 (Process success).
  1. ;
  1. N DIEN,TEMP,NAME,AREACODE,PHONENUM,INACTIVE
  1. Q:$G(PSODIEN)="" 0
  1. 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
  1. F XX=1:1:$L(PSODIEN,",") S DIEN=$P(PSODIEN,",",XX) D
  1. .S NAME=$$GET1^DIQ(59,DIEN,".01")
  1. .Q:NAME=""
  1. .S AREACODE=$$GET1^DIQ(59,DIEN,".03")
  1. .S PHONENUM=$$GET1^DIQ(59,DIEN,".04")
  1. .S INACTIVE=$$GET1^DIQ(59,DIEN,2004,"I")
  1. .S PSOAP6(DIEN)=0 I INACTIVE S PSOAP6(DIEN)=1
  1. .S PSOAP6(DIEN,1)=NAME_"^"_AREACODE_"^"_PHONENUM
  1. .S TEMP=$$GET1^DIQ(59,DIEN,1005,"","PSOAP6("_DIEN_",2)")
  1. ;
  1. ENDAP6 Q 1