PSO5291 ;BHM/DB - TPB Eligibility file API ; 18 JUL 05
;;7.0;OUTPATIENT PHARMACY;**213**;DEC 1997
PSO(PSOIEN,PSOTXT,LIST) ;SDD 3.2.21
;PSOIEN - IEN
;PSOTXT - FREE TEXT ENTRY
Q:$G(LIST)=""
N DA,DIC,DR,DIQ,X K ^TMP($J,LIST),^UTILITY("DIQ1",$J)
I $G(PSOIEN)="",$G(PSOTXT)="" S ^TMP($J,LIST,0)="-1^NO DATA FOUND" Q
I $G(PSOIEN)]"" D G Q
.I '$G(^PS(52.91,PSOIEN,0)) S ^TMP($J,LIST,PSOIEN,0)="-1^NO DATA FOUND" Q
.S DA=PSOIEN D TMP
I $G(PSOTXT)]"" D G Q
.S DA=$O(^DPT("B",PSOTXT,0)) I DA="" S ^TMP($J,LIST,PSOTXT,0)="-1^NO DATA FOUND" Q
.D TMP
Q
TMP S ^TMP($J,LIST,DA,0)=1
S DIC=52.91,DR=".01:11",DIQ(0)="IE"
D EN^DIQ1 I '$D(^UTILITY("DIQ1",$J)) S ^TMP($J,LIST,DA,0)="-1^NO DATA FOUND" Q
F X=.01,1,2,3,4,5,6,7,8,9,10,11 D
.S ^TMP($J,LIST,DA,X)=$G(^UTILITY("DIQ1",$J,52.91,DA,X,"I"))
.S ^TMP($J,LIST,DA,X)=$S($G(^UTILITY("DIQ1",$J,52.91,DA,X,"E"))'="":^TMP($J,LIST,DA,X)_"^"_$G(^UTILITY("DIQ1",$J,52.91,DA,X,"E")),1:"")
S DFN=$G(^UTILITY("DIQ1",$J,52.91,DA,.01,"I")),^TMP($J,LIST,"B",DFN,DA)=""
K ^UTILITY("DIQ1",$J)
Q
Q K DA,DFN,DIC,DIQ,DR,LIST,PSOIEN,PSOTXT,X Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSO5291 1105 printed Nov 22, 2024@17:33:07 Page 2
PSO5291 ;BHM/DB - TPB Eligibility file API ; 18 JUL 05
+1 ;;7.0;OUTPATIENT PHARMACY;**213**;DEC 1997
PSO(PSOIEN,PSOTXT,LIST) ;SDD 3.2.21
+1 ;PSOIEN - IEN
+2 ;PSOTXT - FREE TEXT ENTRY
+3 if $GET(LIST)=""
QUIT
+4 NEW DA,DIC,DR,DIQ,X
KILL ^TMP($JOB,LIST),^UTILITY("DIQ1",$JOB)
+5 IF $GET(PSOIEN)=""
IF $GET(PSOTXT)=""
SET ^TMP($JOB,LIST,0)="-1^NO DATA FOUND"
QUIT
+6 IF $GET(PSOIEN)]""
Begin DoDot:1
+7 IF '$GET(^PS(52.91,PSOIEN,0))
SET ^TMP($JOB,LIST,PSOIEN,0)="-1^NO DATA FOUND"
QUIT
+8 SET DA=PSOIEN
DO TMP
End DoDot:1
GOTO Q
+9 IF $GET(PSOTXT)]""
Begin DoDot:1
+10 SET DA=$ORDER(^DPT("B",PSOTXT,0))
IF DA=""
SET ^TMP($JOB,LIST,PSOTXT,0)="-1^NO DATA FOUND"
QUIT
+11 DO TMP
End DoDot:1
GOTO Q
+12 QUIT
TMP SET ^TMP($JOB,LIST,DA,0)=1
+1 SET DIC=52.91
SET DR=".01:11"
SET DIQ(0)="IE"
+2 DO EN^DIQ1
IF '$DATA(^UTILITY("DIQ1",$JOB))
SET ^TMP($JOB,LIST,DA,0)="-1^NO DATA FOUND"
QUIT
+3 FOR X=.01,1,2,3,4,5,6,7,8,9,10,11
Begin DoDot:1
+4 SET ^TMP($JOB,LIST,DA,X)=$GET(^UTILITY("DIQ1",$JOB,52.91,DA,X,"I"))
+5 SET ^TMP($JOB,LIST,DA,X)=$SELECT($GET(^UTILITY("DIQ1",$JOB,52.91,DA,X,"E"))'="":^TMP($JOB,LIST,DA,X)_"^"_$GET(^UTILITY("DIQ1",$JOB,52.91,DA,X,"E")),1:"")
End DoDot:1
+6 SET DFN=$GET(^UTILITY("DIQ1",$JOB,52.91,DA,.01,"I"))
SET ^TMP($JOB,LIST,"B",DFN,DA)=""
+7 KILL ^UTILITY("DIQ1",$JOB)
+8 QUIT
Q KILL DA,DFN,DIC,DIQ,DR,LIST,PSOIEN,PSOTXT,X
QUIT