ORWDVAL ; SLC/KCM - Validate procedures ;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997 ; VALSCHED(ERR,SCHED) ; Validate a schedule ; Set up 'interval^repeat count', if no interval assume QD S ERR=0 S INTERVAL=$P(SCHED," ",1),REPEAT=$P(SCHED," ",2) I '$O(^PS(51.1,"APLR",INTERVAL,0)) S ERR=1 Q I '(X?1"X"1.N) S ERR=1 Q Q STOPDT(ADATE,SCHED) ; Return stop date given a schedule ; Look at max days continuous orders ; set numdays to lesser of Xnn and LR MAX... ; calculate stop date from collection time Q EXPSCHED(LST,SCHED,START,STOP,MAX) ; procedure ; Expand schedule into start/stop times N IEN,TYP,INTERVAL,REPEAT D VALSCHED I ERR S LST="" S INTERVAL=$P(SCHED," ",1),REPEAT=$E($P(SCHED," ",2),2,999) S IEN=$O(^PS(51.1,"APLR",INTERVAL,0)) S TYP=$P(^PS(51.1,IEN,0),U,5),FREQ=$P(^(0),U,3) I TYP="C" D ; add interval until repeat count or stop time reached . ; I TYP="D" D ; from start time look for matching day of week & add . ; I TYP="O" D ; quit with just the start time . ; ; range, shift, dow-range ??? Q DATE ; Validate a date/time (allow visits) Q