| [613] | 1 | PSOORFI5 ;BIR/SJA-finish cprs orders ;11/06/06 10:49am
|
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**225**;DEC 1997;Build 29
|
|---|
| 3 | ;External references UL^PSSLOCK supported by DBIA 2789
|
|---|
| 4 | ;External reference to ^DPT supported by DBIA 10035
|
|---|
| 5 | ;
|
|---|
| 6 | FLG W ! K MEDP,MEDA,POERR("DFLG"),DIR D KQ S PSOSORT="FLAGGED^FLAGGED"
|
|---|
| 7 | S LG=0,PATA=0 F S LG=$O(^PS(52.41,"AD",LG)) Q:'LG!($G(POERR("QFLG"))) F PSOD=0:0 S PSOD=$O(^PS(52.41,"AD",LG,PSOPINST,PSOD)) Q:'PSOD!($G(POERR("QFLG"))) D
|
|---|
| 8 | .Q:'$D(^PS(52.41,PSOD,0))!('$P($G(^PS(52.41,PSOD,0)),"^",23))
|
|---|
| 9 | .Q:$G(PAT($P(^PS(52.41,PSOD,0),"^",2)))=$P(^PS(52.41,PSOD,0),"^",2) S PAT=$P(^PS(52.41,PSOD,0),"^",2)
|
|---|
| 10 | .I PAT'=PATA,$O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
|
|---|
| 11 | .D LK I $G(POERR("QFLG")) K POERR("QFLG") S PSOLK=1,PAT(PAT)=PAT Q
|
|---|
| 12 | .I $$CHK^PSODPT(PAT_"^"_$P($G(^DPT(PAT,0)),"^"),1,1)<0 S PSOLK=1,PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG,PSOQQ Q
|
|---|
| 13 | .S (PSODFN,Y)=PAT_"^"_$P($G(^DPT(PAT,0)),"^"),PATA=PAT
|
|---|
| 14 | .D:'$G(MEDA) PROFILE^PSOORFI2 S Y=PSODFN I $G(MEDP) D SPL D OERR^PSORX1 S PSOFIN=1 D QU S X=PSOPTLOK D KLLP,ULP,KLL Q
|
|---|
| 15 | .D SDFN D POST^PSOORFI1 I $G(PSOQFLG)!($G(PSOQUIT)) S:$G(PSOQUIT) POERR("QFLG")=1 S:$G(PSOQFLG) PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG Q
|
|---|
| 16 | .S PAT(PAT)=PAT
|
|---|
| 17 | .F ORD=0:0 S ORD=$O(^PS(52.41,"AOR",PAT,PSOPINST,ORD)) Q:'ORD!($G(POERR("QFLG")))!($G(PSOQQ)) D
|
|---|
| 18 | ..I $P($G(^PS(52.41,ORD,0)),"^",23) D PP,LK1,ORD^PSOORFIN
|
|---|
| 19 | .S X=PAT D ULP K PSOQQ
|
|---|
| 20 | I $O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
|
|---|
| 21 | I $G(PSOQUIT) K PSOQUIT D EX G ^PSOORFIN
|
|---|
| 22 | G EX
|
|---|
| 23 | ;
|
|---|
| 24 | PRI ; Called from PSOORFIN due to it's routine size.
|
|---|
| 25 | K DIR S PSOSORT="PRIORITY"
|
|---|
| 26 | S DIR("A")="Select Priority",DIR(0)="SBM^S:STAT;E:EMERGENCY;R:ROUTINE",DIR("B")="ROUTINE"
|
|---|
| 27 | D ^DIR G:$D(DIRUT) EX S PSOSORT=PSOSORT_"^"_Y,PSRT=Y
|
|---|
| 28 | S LG=0,PATA=0 F S LG=$O(^PS(52.41,"AD",LG)) Q:'LG!($G(POERR("QFLG"))) F PSOD=0:0 S PSOD=$O(^PS(52.41,"AD",LG,PSOPINST,PSOD)) Q:'PSOD!($G(POERR("QFLG"))) D
|
|---|
| 29 | .Q:$P($G(^PS(52.41,PSOD,0)),"^",23)
|
|---|
| 30 | .Q:$G(PAT($P(^PS(52.41,PSOD,0),"^",2)))=$P(^PS(52.41,PSOD,0),"^",2) S PAT=$P(^PS(52.41,PSOD,0),"^",2)
|
|---|
| 31 | .I PAT'=PATA,$O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
|
|---|
| 32 | .I '$O(^PS(52.41,"AP",PAT,PSRT,0)) S PSOLK=1,PAT(PAT)=PAT Q
|
|---|
| 33 | .D PRI^PSOORFI2 I $G(PSZFIN) S PSOLK=1,PAT(PAT)=PAT Q
|
|---|
| 34 | .D LK I $G(POERR("QFLG")) K POERR("QFLG") S PSOLK=1,PAT(PAT)=PAT Q
|
|---|
| 35 | .I $$CHK^PSODPT(PAT_"^"_$P($G(^DPT(PAT,0)),"^"),1,1)<0 S PSOLK=1,PAT(PAT)=PAT S X=PAT D ULP Q
|
|---|
| 36 | .S (PSODFN,Y)=PAT_"^"_$P($G(^DPT(PAT,0)),"^"),PATA=PAT
|
|---|
| 37 | .D:'$G(MEDA) PROFILE^PSOORFI2 S Y=PSODFN I $G(MEDP) D SPL D OERR^PSORX1 S PSOFIN=1 D QU S X=PSOPTLOK D KLLP,ULP,KLL Q
|
|---|
| 38 | .D SDFN D POST^PSOORFI1 I $G(PSOQFLG)!($G(PSOQUIT)) S:$G(PSOQUIT) POERR("QFLG")=1 S:$G(PSOQFLG) PAT(PAT)=PAT S X=PAT D ULP K PSOQFLG Q
|
|---|
| 39 | .D PP S ORD=0 D @PSRT S PAT(PAT)=PAT
|
|---|
| 40 | .S X=PAT D ULP
|
|---|
| 41 | I $O(PSORX("PSOL",0))!($D(RXRS)) D LBL^PSOORFIN
|
|---|
| 42 | I $G(PSOQUIT) K PSOQUIT D EX G ^PSOORFIN
|
|---|
| 43 | EX D EX^PSOORFI1
|
|---|
| 44 | Q
|
|---|
| 45 | LK D LOCK^PSOORFI1
|
|---|
| 46 | Q
|
|---|
| 47 | LK1 D LOCK1^PSOORFI1 Q
|
|---|
| 48 | QU I $G(PSOQUIT) S POERR("QFLG")=1 K PSOQUIT
|
|---|
| 49 | S:$G(PSOQFLG) PAT(PAT)=PAT
|
|---|
| 50 | Q
|
|---|
| 51 | ULP K PSORX("MAIL/WINDOW"),PSORX("METHOD OF PICK-UP")
|
|---|
| 52 | D CLEAN^PSOVER1
|
|---|
| 53 | I '$G(X) Q
|
|---|
| 54 | D UL^PSSLOCK(X) Q
|
|---|
| 55 | KLL K PSOPTLOK
|
|---|
| 56 | Q
|
|---|
| 57 | KLLP K PSONOLCK
|
|---|
| 58 | Q
|
|---|
| 59 | SPL D SPL^PSOORFI4
|
|---|
| 60 | Q
|
|---|
| 61 | SDFN S PSODFN=+$G(PSODFN)
|
|---|
| 62 | Q
|
|---|
| 63 | PP D PP^PSOORFI4
|
|---|
| 64 | Q
|
|---|
| 65 | KQ K PSOQUIT,POERR("QFLG")
|
|---|
| 66 | Q
|
|---|
| 67 | ;
|
|---|
| 68 | LMDISP(ORD) ; Backdoor ListManager Display of Flag/Unflag Informaiton
|
|---|
| 69 | N FLAG
|
|---|
| 70 | K FLAGLINE S ORD=+$G(ORD) I 'ORD Q
|
|---|
| 71 | ;
|
|---|
| 72 | I '$G(^PS(52.41,ORD,"FLG")) Q
|
|---|
| 73 | ; S X=IORVON_"Flagged"_IORVOFF
|
|---|
| 74 | D GETS^DIQ(52.41,ORD,"33;34;35;36;37;38","IE","FLAG")
|
|---|
| 75 | S L1="Flagged by "_$E(FLAG(52.41,ORD_",",34,"E"),1,30)_" on "_$$FMTE^XLFDT(FLAG(52.41,ORD_",",33,"I"),2)_": "
|
|---|
| 76 | S LEN=80-$L(L1),L1=L1_$E(FLAG(52.41,ORD_",",35,"E"),1,LEN),L2=$E(FLAG(52.41,ORD_",",35,"E"),LEN+1,999)
|
|---|
| 77 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L1,FLAGLINE(IEN)=7
|
|---|
| 78 | I L2'="" S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L2
|
|---|
| 79 | I FLAG(52.41,ORD_",",36,"I")'="" D
|
|---|
| 80 | . S L1="Unflagged by "_$E(FLAG(52.41,ORD_",",37,"E"),1,30)_" on "_$$FMTE^XLFDT(FLAG(52.41,ORD_",",36,"I"),2)_": "
|
|---|
| 81 | . S LEN=80-$L(L1),L1=L1_$E(FLAG(52.41,ORD_",",38,"E"),1,LEN),L2=$E(FLAG(52.41,ORD_",",38,"E"),LEN+1,999)
|
|---|
| 82 | . S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L1,FLAGLINE(IEN)=9
|
|---|
| 83 | . I L2'="" S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=L2
|
|---|
| 84 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" "
|
|---|
| 85 | Q
|
|---|