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

APSPLIST.m

Go to the documentation of this file.
  1. APSPLIST ;BHAM/ISC/JCM - LIST OF NUMBERS READER [ 02/20/2001 3:38 PM ];21-Mar-2004 20:35;PLS
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**3**;09/03/97
  1. ; Copied from v6.0 PSOLIST - PSOLIST is not delivered with 7.0
  1. ; Modified - IHS/CIA/PLS - 02/15/04
  1. ;requires PSOHI, optionally PSOLO
  1. ;returns Y array
  1. I $G(APSPID)]"" D ENMDT Q ;IHS/DSD/ENM 5.1.95 APSPID FM APSPSLBL
  1. ASK S:'$D(PSOLO) PSOLO=1 S Y=""
  1. W !,$S($G(PSONUM("A"))]"":PSONUM("A"),1:"Select ")_PSOLO_" - "_PSOHI_" > "
  1. R X:DTIME
  1. I '$T!(X["^") S PSOQFLG=1 K PSOLIST Q
  1. I X["." W !,"WHAT'S WITH THE DOTS!!" G ASK ;IHS/OKCAO/POC 06/10/98
  1. I X="" S:'$D(PSORX("BAR CODE")) PSOQFLG=1 K:'$D(PSORX("BAR CODE")) PSOLIST Q
  1. S:X="ALL" X=PSOLO_":"_PSOHI
  1. I X="" S Y="" G EXIT
  1. I "Pp"[$E(X),$D(PSOSD) D ^PSODSPL G ASK
  1. I "Rr"[$E(X) D GMRA^PSODEM G ASK
  1. I X["?" D QUES G ASK
  1. I X["-" D BARCODE^APSPNUM G ASK
  1. G:$G(PSORX("BAR CODE"))]"" EXIT
  1. L ; LIST OR RANGE
  1. S Y(1)="",PSOC=1,PSOERR=0 S:'$D(PSOLO) PSOLO=1
  1. ;D DUPCHK F PSOI=1:1 S PSOX=$P(X,",",PSOI) Q:PSOERR!'$L($P(X,",",PSOI,999)) S:PSOX'?.".".N.".".":".N.":".N.".".N PSOERR=1 D L0:'PSOERR
  1. F PSOI=1:1 S PSOX=$P(X,",",PSOI) Q:PSOERR!'$L($P(X,",",PSOI,999)) S:PSOX'?.".".N.".".":".N.":".N.".".N PSOERR=1 D L0:'PSOERR ;IHS/OKCAO/POC DO DUP CHECK LATER
  1. D DUPCHK ;DO DUPCHK NOW IHS/OKCAO/POC
  1. I PSOERR W !!?5,"Response should be no less than "_+PSOLO_" and no greater than "_PSOHI G ASK
  1. S Y=Y(1) K PSO
  1. EXIT K DUP,PSO,PSOA,PSOI,PSOLO,PSOHI,PSOX,PSOC,PSOJ
  1. Q
  1. L0 S:+PSOX<PSOLO!(PSOX>PSOHI) PSOERR=2 S PSO=$P(PSOX,":",2) I PSO,PSO>PSOHI!(PSO<PSOX) S PSOERR=3
  1. Q:PSOERR I PSOX?.N!(PSOX?1N.".".N) S PSOJ=PSOX G L1
  1. I PSOX#1 S Y(PSOC)=Y(PSOC)_+PSOX_",",$P(PSOX,":")=PSOX\1+1
  1. F PSOJ=$P(PSOX,":"):1:$P(PSOX,":",2) D L1
  1. I $P(PSOX,":",2)#1>0 S Y(PSOC)=Y(PSOC)_$P(PSOX,":",2)_","
  1. Q
  1. L1 I $L(Y(PSOC)_PSOJ)>220 S PSOC=PSOC+1,Y(PSOC)=""
  1. F PSO=1:1:PSOC I Y(PSO)_","[(","_PSOJ_",") S PSO=-1 Q
  1. I PSO'<0 S Y=PSOJ S Y(PSOC)=Y(PSOC)_PSOJ_","
  1. Q
  1. ;
  1. QUES W !!?5,"Enter a number, or a list of numbers sperated by commas,"
  1. W !?5,"or a range of numbers seperated by a semicolon."
  1. W !!?5,"Examples:"
  1. W !!?5,"1,4,6,7",!?5,"3,5:9,2"
  1. W !?5,"'ALL' (to select all)"
  1. W !?5,"'R' to list allergies/adverse reactions"
  1. I $D(PSOSD) W !?5,"'P' (to see profile)",!
  1. Q
  1. DUPCHK ;ADD NEXT LINE
  1. N X S X=Y(1) ;ADDED IHS/OKCAO/POC
  1. S END=$L(X,","),BAD=0
  1. W ! F I=1:1:END S RXM=$P(X,",",I) I +RXM F J=I+1:1:END S DUP=$P(X,",",J) I DUP=RXM S $P(X,",",J)="" W !?5,*7,"Duplicate # "_RXM_" was found in your list, ignoring it!" S BAD=1
  1. S DUP=$P(X,",") F I=2:1:END S RXM=$P(X,",",I) S:RXM'?1.N.A BAD=1 I RXM?1.N.A S DUP=DUP_","_RXM
  1. BAD I BAD W !!?15,"=> "_DUP,!,"Is this OKAY " S %=1 D YN^DICN I '% D QUES2^APSPNUM G BAD
  1. I BAD,%'=1 S DUP="",PSOERR=1
  1. S:DUP]"" X=DUP K BAD,RNM,DUP,%,END
  1. Q
  1. ENMDT ;IHS/DSD/ENM 5.1.95 DATE ORDER SETUP
  1. S %DT("A")="Select Date: ",%DT="AEXP" D ^%DT S APSPBDT=Y-1,APSPEDT=Y ;IHS/DSD/ENM 01/29/96 'P' ADDED TO %DT
  1. I APSPEDT=-1 W !,"No date selected so I'm quitting!!",! Q
  1. S Y(1)="",Y=0
  1. S APSPK="",APSPL="" F APSPK=APSPBDT:0 S APSPK=$O(APSPZDT(APSPK)) Q:'APSPK!(APSPK>APSPEDT) F S APSPL=$O(APSPZDT(APSPK,APSPL)) Q:'APSPL D ESET
  1. Q
  1. ESET S Y(1)=Y(1)_APSPL_",",Y=Y+1
  1. Q