PSS55MIS ;BIR/TSS - API FOR VARIOUS DATA FROM PHARMACY PATIENT FILE; 5 Sep 03
;;1.0;PHARMACY DATA MANAGEMENT;**112**;9/30/97;Build 30
STATUS(PSSFILE,PSSFIELD,LIST) ;
;PSSFILE - FILE NUMBER (VALIDATED AGAINST "FILES" LINE-TAG BELOW)
;PSSFIELD - FIELD NUMBER FROM FILE
;LIST - NAME OF LOCAL ARRAY RETURNED
;Returns the set of codes valid for the status field
S PSSDIY=""
Q:'$G(PSSFILE) Q:'$G(PSSFIELD) Q:$G(LIST)=""
N PSSTEST S PSSTEST=$$VALID(PSSFILE,PSSFIELD)
I PSSTEST'>0 S PSSDIY=-1 Q
D FIELD^DID(PSSFILE,PSSFIELD,"","POINTER",LIST) Q
VALID(PSTFILE,PSTFIELD) ;TEST FOR VALID DATA INPUT FOR PSOFILE AND DIC
N PSVLOOP,PSVTEST,PSVALID S PSVALID=-1
F PSVLOOP=1:1 S PSVTEST=$P($T(FILES+PSVLOOP),";;",2)_";;"_$P($T(FILES+PSVLOOP),";;",3) Q:$G(PSVTEST)'>0!(PSVALID=1) D
.I PSTFILE=$P(PSVTEST,";;",1) D Q
..I PSTFIELD=$P(PSVTEST,";;",2) S PSVALID=1
Q PSVALID
;
FILES ;ACCESS FILE LIST
;;55.06;;28
;;55.01;;100
;;55.05;;5
Q
CLINIC(PSSORD,PSSDFN,PSSMED) ;
;PSSORD - ORDER NUMBER
;PSSDFN - DFN NUMBER
;PSSMED - MED TYPE: "U" FOR UNIT DOSE, "I" FOR IV
N PSSOUT S PSSOUT=""
Q:'PSSORD
Q:'PSSDFN
Q:$G(PSSMED)=""
S PSSIEN=PSSORD_","_PSSDFN
K ^TMP($J,"TEMP")
;DMS TEST CASES FOR UNIT DOSE: 73,739
;TEST CASES FOR IV: 6,1
I PSSMED="U" D
.D GETS^DIQ(55.06,PSSIEN,"130","IE","^TMP($J,""TEMP"")")
.I $G(^TMP($J,"TEMP",55.06,PSSIEN_",",130,"I"))'="" S PSSOUT=$G(^TMP($J,"TEMP",55.06,PSSIEN_",",130,"I"))_"^"_$G(^TMP($J,"TEMP",55.06,PSSIEN_",",130,"E"))
I PSSMED="I" D
.D GETS^DIQ(55.01,PSSIEN,"136","IE","^TMP($J,""TEMP"")")
.I $G(^TMP($J,"TEMP",55.01,PSSIEN_",",136,"I"))'="" S PSSOUT=$G(^TMP($J,"TEMP",55.01,PSSIEN_",",136,"I"))_"^"_$G(^TMP($J,"TEMP",55.01,PSSIEN_",",136,"E"))
K ^TMP($J,"TEMP")
Q PSSOUT
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSS55MIS 1778 printed Oct 16, 2024@18:31:01 Page 2
PSS55MIS ;BIR/TSS - API FOR VARIOUS DATA FROM PHARMACY PATIENT FILE; 5 Sep 03
+1 ;;1.0;PHARMACY DATA MANAGEMENT;**112**;9/30/97;Build 30
STATUS(PSSFILE,PSSFIELD,LIST) ;
+1 ;PSSFILE - FILE NUMBER (VALIDATED AGAINST "FILES" LINE-TAG BELOW)
+2 ;PSSFIELD - FIELD NUMBER FROM FILE
+3 ;LIST - NAME OF LOCAL ARRAY RETURNED
+4 ;Returns the set of codes valid for the status field
+5 SET PSSDIY=""
+6 if '$GET(PSSFILE)
QUIT
if '$GET(PSSFIELD)
QUIT
if $GET(LIST)=""
QUIT
+7 NEW PSSTEST
SET PSSTEST=$$VALID(PSSFILE,PSSFIELD)
+8 IF PSSTEST'>0
SET PSSDIY=-1
QUIT
+9 DO FIELD^DID(PSSFILE,PSSFIELD,"","POINTER",LIST)
QUIT
VALID(PSTFILE,PSTFIELD) ;TEST FOR VALID DATA INPUT FOR PSOFILE AND DIC
+1 NEW PSVLOOP,PSVTEST,PSVALID
SET PSVALID=-1
+2 FOR PSVLOOP=1:1
SET PSVTEST=$PIECE($TEXT(FILES+PSVLOOP),";;",2)_";;"_$PIECE($TEXT(FILES+PSVLOOP),";;",3)
if $GET(PSVTEST)'>0!(PSVALID=1)
QUIT
Begin DoDot:1
+3 IF PSTFILE=$PIECE(PSVTEST,";;",1)
Begin DoDot:2
+4 IF PSTFIELD=$PIECE(PSVTEST,";;",2)
SET PSVALID=1
End DoDot:2
QUIT
End DoDot:1
+5 QUIT PSVALID
+6 ;
FILES ;ACCESS FILE LIST
+1 ;;55.06;;28
+2 ;;55.01;;100
+3 ;;55.05;;5
+4 QUIT
CLINIC(PSSORD,PSSDFN,PSSMED) ;
+1 ;PSSORD - ORDER NUMBER
+2 ;PSSDFN - DFN NUMBER
+3 ;PSSMED - MED TYPE: "U" FOR UNIT DOSE, "I" FOR IV
+4 NEW PSSOUT
SET PSSOUT=""
+5 if 'PSSORD
QUIT
+6 if 'PSSDFN
QUIT
+7 if $GET(PSSMED)=""
QUIT
+8 SET PSSIEN=PSSORD_","_PSSDFN
+9 KILL ^TMP($JOB,"TEMP")
+10 ;DMS TEST CASES FOR UNIT DOSE: 73,739
+11 ;TEST CASES FOR IV: 6,1
+12 IF PSSMED="U"
Begin DoDot:1
+13 DO GETS^DIQ(55.06,PSSIEN,"130","IE","^TMP($J,""TEMP"")")
+14 IF $GET(^TMP($JOB,"TEMP",55.06,PSSIEN_",",130,"I"))'=""
SET PSSOUT=$GET(^TMP($JOB,"TEMP",55.06,PSSIEN_",",130,"I"))_"^"_$GET(^TMP($JOB,"TEMP",55.06,PSSIEN_",",130,"E"))
End DoDot:1
+15 IF PSSMED="I"
Begin DoDot:1
+16 DO GETS^DIQ(55.01,PSSIEN,"136","IE","^TMP($J,""TEMP"")")
+17 IF $GET(^TMP($JOB,"TEMP",55.01,PSSIEN_",",136,"I"))'=""
SET PSSOUT=$GET(^TMP($JOB,"TEMP",55.01,PSSIEN_",",136,"I"))_"^"_$GET(^TMP($JOB,"TEMP",55.01,PSSIEN_",",136,"E"))
End DoDot:1
+18 KILL ^TMP($JOB,"TEMP")
+19 QUIT PSSOUT
+20 ;