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

BPCRXSIG.m

Go to the documentation of this file.
  1. BPCRXSIG ; IHS/OIT/MJL - EXPANDS SIG FOR BPC GUI ;
  1. ;;1.5;BPC;;MAY 26, 2005
  1. GETSIG(BPCARRAY,BPCSIGV,BPCQTY) ;EP CALL FROM REMOTE PROC: BPC RX EXPAND SIG
  1. TEST S BPCGUI=1,XWBWRAP=1 K ^TMP($J)
  1. S BPCARRAY="^TMP("_$J_")"
  1. ;S BPCSIGV="T3T TID"
  1. ;S BPCQTY=30
  1. SIG ;checks SIG for RXs
  1. I $G(BPCSIGV)="" S ^TMP($J,1)=-1,^TMP($J,2)="No SIG DEFINED! " Q
  1. I $E(BPCSIGV)=" " S ^TMP($J,1)=-1,^TMP($J,2)="Leading spaces are not allowed in the SIG! " Q
  1. F BPCZ0=1:1:$L(BPCSIGV," ") S BPCZ1=$P(BPCSIGV," ",BPCZ0) I $L(BPCZ1)>32 S ^TMP($J,1)=-1,^TMP($J,2)="MAX OF 32 CHARACTERS ALLOWED BETWEEN SPACES." K BPCSIG,BPCZ0,BPCZ1 Q
  1. S BPCSIG="" F BPCZ0=1:1:$L(BPCSIGV," ") S BPCZ1=$P(BPCSIGV," ",BPCZ0) D:BPCZ1'="" S BPCSIG=BPCSIG_" "_BPCZ1
  1. .S BPCY=$O(^PS(51,"B",BPCZ1,0)) Q:'BPCY Q:$P($G(^PS(51,+BPCY,0)),"^",4)>1 S BPCZ1=$P(^PS(51,BPCY,0),"^",2) Q:'$D(^(9)) S BPCY=$P(BPCSIGV," ",BPCZ0-1),BPCY=$E(BPCY,$L(BPCY)) S:BPCY>1 BPCZ1=^(9)
  1. K BPCY,BPCZ1,BPCZ0
  1. I $L(BPCSIG)>100 S ^TMP($J,1)=-1,^TMP($J,2)="MAX OF 100 CHARACTERS ALLOWED IN SIG." K BPCSIG Q
  1. I +$G(BPCQTY) D DISPENSE
  1. S ^TMP($J,1)=2,^TMP($J,2)=BPCSIG,^TMP($J,3)=$G(PSOZDAY)
  1. K BPCSIG,PSOEXQTY,PSOEXSIG,BPCQTY,PSOZDAY
  1. Q
  1. DFTSIG(BPCARRAY,BPCDRUG) ;EP CALL FROM REMOTE PROC: BPC RX DEFLT SIG
  1. TESTA S BPCGUI=1,XWBWRAP=1 K ^TMP($J)
  1. S BPCARRAY="^TMP("_$J_")"
  1. S:'$D(U) U="^"
  1. S BPCDRUG=84103
  1. I $G(BPCDRUG)="" S ^TMP($J,1)=-1,^TMP($J,2)="No DRUG DEFINED! " Q
  1. S BPCDSIG=$P($G(^PSDRUG(BPCDRUG,0)),U,5)
  1. S BPCDPENS=$P($G(^PSDRUG(BPCDRUG,660)),U,8)
  1. S ^TMP($J,1)=2,^TMP($J,2)=BPCDSIG,^TMP($J,3)=BPCDPENS
  1. K BPCDRUG,BPCDPENS,BPCDRUG
  1. Q
  1. GETDPENS(BPCARRAY,BPCSIGV,BPCQTY) ;EP CALL FROM REMOTE PROC: BPC RX EXPAND SIG
  1. TEST1 S BPCGUI=1 K ^TMP($J)
  1. S BPCARRAY="^TMP("_$J_")"
  1. S BPCSIGV="T3T TID"
  1. S BPCQTY=30
  1. ;checks SIG for RXs
  1. I $G(BPCSIGV)="" S ^TMP($J,1)=-1,^TMP($J,2)="No SIG DEFINED! " Q
  1. I $E(BPCSIGV)=" " S ^TMP($J,1)=-1,^TMP($J,2)="Leading spaces are not allowed in the SIG! " Q
  1. I $G(BPCQTY)="" S ^TMP($J,1)=-1,^TMP($J,2)="No QUANTITY DEFINED! " Q
  1. F BPCZ0=1:1:$L(BPCSIGV," ") S BPCZ1=$P(BPCSIGV," ",BPCZ0) I $L(BPCZ1)>32 S ^TMP($J,1)=-1,^TMP($J,2)="MAX OF 32 CHARACTERS ALLOWED BETWEEN SPACES." K BPCSIG,BPCZ0,BPCZ1 Q
  1. S BPCSIG="" F BPCZ0=1:1:$L(BPCSIGV," ") S BPCZ1=$P(BPCSIGV," ",BPCZ0) D:BPCZ1'="" S BPCSIG=BPCSIG_" "_BPCZ1
  1. .S BPCY=$O(^PS(51,"B",BPCZ1,0)) Q:'BPCY Q:$P($G(^PS(51,+BPCY,0)),"^",4)>1 S BPCZ1=$P(^PS(51,BPCY,0),"^",2) Q:'$D(^(9)) S BPCY=$P(BPCSIGV," ",BPCZ0-1),BPCY=$E(BPCY,$L(BPCY)) S:BPCY>1 BPCZ1=^(9)
  1. K BPCY,BPCZ1,BPCZ0
  1. I $L(BPCSIG)>100 S ^TMP($J,1)=-1,^TMP($J,2)="MAX OF 100 CHARACTERS ALLOWED IN SIG." K BPCSIG Q
  1. I +BPCQTY D DISPENSE
  1. I '$L(PSOZDAY) S ^TMP($J,1)=1,^TMP($J,2)=BPCSIG K BPCSIG Q
  1. I $L(PSOZDAY) S ^TMP($J,1)=2,^TMP($J,2)=BPCSIG,^TMP($J,3)=PSOZDAY K BPCSIG,PSOEXQTY,PSOEXSIG,BPCQTY Q
  1. Q
  1. DISPENSE ;GETS DISPENSING UNITS
  1. S (X,PSOEXSIG)=BPCSIG
  1. S PSOEXQTY=BPCQTY
  1. ;SET EXPANDED SIG EQUAL TO PSOEXSIG
  1. ;SET QTY EQUAL TO PSOEXQTY
  1. ;GET BACK PSOZDAY AS THE DAYS SUPPLY-IF VALUE NULL COULDNT CALCULATE
  1. ;
  1. D CHANGER
  1. D CHANGES
  1. D FUZZY
  1. D CHANGEN
  1. D CHANGET
  1. D CHANGEH
  1. D DAY
  1. D END
  1. Q
  1. END ;CLEAN UP
  1. D EN^XBVK("PSOEX")
  1. K Q,Z,X,I,J,K,P,PART,QUIT,REPLANEW,SIG,TEXT,TIMES,TR,TRTO
  1. K CHECK,QUT,FIRST,SECOND,FIND,LOOP,MANY,PSOSIGS
  1. Q
  1. ;
  1. NTEXT ;;NUMBERS FOR TEXT
  1. ;;TABLESPOON;BIGSPOON;SO IT WONT GET MESSED UP BY TAB
  1. ;;1&1/2;1.5
  1. ;;2&1/2;2.5
  1. ;;3&1/2;3.5
  1. ;;4&1/2;4.5
  1. ;;&;AND
  1. ;;1/3;.33;ADDED 3/10/98
  1. ;;2/3;.66;ADDED 3/10/98
  1. ;;3/4;.75;ADDED 3/10/98
  1. ;;1/2;.5
  1. ;;1/4;.25
  1. ;;ONE AND THREE FOURTHS;1.75
  1. ;;ONE AND THREE-FOURTHS;1.75
  1. ;;ONE AND ONE HALF;1.5
  1. ;;ONE AND ONE-HALF;1.5
  1. ;;ONE AND ONE FOURTH;1.25
  1. ;;ONE AND ONE-FOURTH;1.25
  1. ;;TWO AND ONE HALF;2.5
  1. ;;TWO AND ONE-HALF;2.5
  1. ;;THREE AND ONE HALF;3.5
  1. ;;THREE AND ONE-HALF;3.5
  1. ;;FOUR AND ONE HALF;4.5
  1. ;;FOUR AND ONE-HALF;4.5
  1. ;;FIVE AND ONE HALF;5.5
  1. ;;FIVE AND ONE-HALF;5.5
  1. ;;SIX AND ONE HALF;6.5
  1. ;;SIX AND ONE-HALF;6.5
  1. ;;SEVEN AND ONE HALF;7.5
  1. ;;SEVEN AND ONE-HALF;7.5
  1. ;;ONE;1
  1. ;;TWO;2
  1. ;;THREE;3
  1. ;;FOUR;4
  1. ;;FIVE;5
  1. ;;SIX;6
  1. ;;SEVEN;7
  1. ;;EIGHT;8
  1. ;;NINE;9
  1. ;;TEN;10
  1. ;;TWELVE;12
  1. ;;TWENTY FOUR;24
  1. ;;ONE HALF;.5
  1. ;;ONE-HALF;.5
  1. ;;ONE THIRD;.33
  1. ;;ONE-THIRD;.33
  1. ;;TWO THIRDS;.66
  1. ;;TWO-THIRDS;.66
  1. ;;THREE FOURTHS;.75
  1. ;;THREE-FOURTHS;.75
  1. ;;ONE FOURTH;.25
  1. ;;ONE-FOURTH;.25
  1. ;;QUIT
  1. TTEXT ;;CHANGE TIME AROUND
  1. ;;EVERY OTHER DAY;EVERYOTHERDAY
  1. ;;EVERY 12 HOURS;TWOTIMESDAILY
  1. ;;EVERY 24 HOURS;ONCEDAILY
  1. ;;EVERY 8 HOURS;THREETIMESDAILY
  1. ;;EVERY 6 HOURS;FOURTIMESDAILY
  1. ;;EVERY 5 HOURS;FIVETIMESDAILY
  1. ;;EVERY 4 HOURS;SIXTIMESDAILY
  1. ;;EVERY 3 HOURS;EIGHTTIMESDAILY
  1. ;;EVERY 2 HOURS;TWELVETIMESDAILY
  1. ;;EVERY 1 HOUR;TWENTYFOURTIMESDAILY
  1. ;;EVERY 1 HOURS;TWENTYFOURTIMESDAILY
  1. ;;TIMES A DAY;TIMES DAILY
  1. ;;TIMES EACH DAY;TIMES DAILY
  1. ;;8 TIMES DAILY;EIGHTTIMESDAILY
  1. ;;6 TIMES DAILY;SIXTIMESDAILY
  1. ;;5 TIMES DAILY;FIVETIMESDAILY
  1. ;;6 TIMES DAILY;SIXTIMESDAILY
  1. ;;4 TIMES DAILY;FOURTIMESDAILY
  1. ;;3 TIMES DAILY;THREETIMESDAILY
  1. ;;2 TIMES DAILY;TWOTIMESDAILY
  1. ;;TWICE DAILY;TWOTIMESDAILY
  1. ;;AFTER MEALS AND AT BEDTIME;FOURTIMESDAILY
  1. ;;AFTER EACH MEAL AND AT BEDTIME;FOURTIMESDAILY
  1. ;;BEFORE MEALS AND AT BEDTIME;FOURTIMESDAILY
  1. ;;BEFORE EACH MEAL AND AT BEDTIME;FOURTIMESDAILY
  1. ;;MORNING, NOON, EVENING, AND AT BEDTIME;FOURTIMESDAILY
  1. ;;MORNING NOON EVENING AND AT BEDTIME;FOURTIMESDAILY
  1. ;;MORNING, NOON, AND EVENING;THREETIMESDAILY
  1. ;;MORNING NOON AND EVENING;THREETIMESDAILY
  1. ;;MORNING, NOON, AND NIGHT;THREETIMESDAILY
  1. ;;MORNING NOON AND NIGHT;THREETIMESDAILY
  1. ;;MORNING AND AT BEDTIME;TWOTIMESDAILY
  1. ;;MORNING AND BEDTIME;TWOTIMESDAILY
  1. ;;MORNING AND EVENING;TWOTIMESDAILY
  1. ;;AT BEDTIME;ONCEDAILY
  1. ;;ONCE DAILY;ONCEDAILY
  1. ;;A DAY;ONCEDAILY
  1. ;;ONCE A DAY;ONCEDAILY
  1. ;;IN THE EVENING;ONCEDAILY
  1. ;;EVERY NIGHT;ONCEDAILY
  1. ;;NIGHTLY;ONCEDAILY
  1. ;;IN THE MORNING;ONCEDAILY
  1. ;;EVERY MORNING;ONCEDAILY
  1. ;;EVERY PM;ONCEDAILY
  1. ;;EVERY EVENING;ONCEDAILY
  1. ;;EVERY AM;ONCEDAILY
  1. ;;EACH DAY;ONCEDAILY;LEAVE AT BOTTOM 3/10/98
  1. ;;EVERY DAY;ONCEDAILY;LEAVE AT BOTTOM 3/10/98
  1. ;;AT NOON;ONCEDAILY
  1. ;;MLS;ZGLOB
  1. ;;ML;ZGLOB
  1. ;;CCS;ZGLOB
  1. ;;CC;ZGLOB
  1. ;;CAPSULES;ZGLOB
  1. ;;TABLETS;ZGLOB
  1. ;;CAPSULE;ZGLOB
  1. ;;TABLET;ZGLOB
  1. ;;SUPPOSITORY;ZGLOB
  1. ;;CAPS;ZGLOB
  1. ;;TABS;ZGLOB
  1. ;;TAB;ZGLOB
  1. ;;CAP;ZGLOB
  1. ;;ZGLOB DAILY;ZGLOB ONCEDAILY;THIS IS A SPECIAL CASE PROBLEM WITH DAILY
  1. ;;QUIT
  1. ;
  1. HTEXT ;;THIS PART CHANGES 2ND PARTO FO SIG FOURTIMESDAILY=4
  1. ;;EVERYOTHERDAY,.5
  1. ;;ONCEDAILY,1
  1. ;;TWOTIMESDAILY,2
  1. ;;THREETIMESDAILY,3
  1. ;;FOURTIMESDAILY,4
  1. ;;FIVETIMESDAILY,5
  1. ;;SIXTIMESDAILY,6
  1. ;;EIGHTTIMESDAILY,8
  1. ;;TWELVETIMESDAILY,12
  1. ;;TWENTYFOURTIMESDAILY,24
  1. ;;DAILY,1
  1. ;;QUIT
  1. ;
  1. CHANGEN ;CHANGE TEXT TO NUMBERS
  1. ;N X,Y,STRING,TEXT,LOOK,REPLACE,NUMBER
  1. N X,Y
  1. S X=PSOEXSIG X ^%ZOSF("UPPERCASE") S PSOEXSIG=Y
  1. S PSOEXSIG=$TR(PSOEXSIG,"()")
  1. ;S PSOEXSIG=$TR(PSOEXSIG,"-"," ") ;IHS/OKCAO/POC 3/10/98
  1. S STRING=PSOEXSIG
  1. ;S STRING=X
  1. F I=1:1 S TEXT=$P($T(NTEXT+I),";;",2) Q:TEXT="QUIT" D
  1. .S LOOK=$P(TEXT,";",1)
  1. .S REPLACE=$P(TEXT,";",2)
  1. .S NUMBER=$L(STRING,LOOK)-1
  1. .Q:NUMBER<1
  1. .F J=1:1:NUMBER D
  1. ..S STRING=$P(STRING,LOOK,1)_REPLACE_$P(STRING,LOOK,2,999)
  1. ..;W !,"MY TEXT= ",STRING," TEXT= ",TEXT H 2 ;****DELETE
  1. S PSOEXSIG=STRING
  1. K STRING,TEXT,LOOK,REPLACE,NUMBER
  1. Q
  1. CHANGET ;CHANGE TIME AROUND
  1. S STRING=PSOEXSIG
  1. ;S STRING=X
  1. F I=1:1 S TEXT=$P($T(TTEXT+I),";;",2) Q:TEXT="QUIT" D
  1. .S LOOK=$P(TEXT,";",1)
  1. .S REPLACE=$P(TEXT,";",2)
  1. .S NUMBER=$L(STRING,LOOK)-1
  1. .Q:NUMBER<1
  1. .F J=1:1:NUMBER D
  1. ..S STRING=$P(STRING,LOOK,1)_REPLACE_$P(STRING,LOOK,2,999)
  1. ..;W !,"MY TEXT= ",STRING," TEXT= ",TEXT H 2 ;****DELETE
  1. S PSOEXSIG=STRING
  1. K STRING,TEXT,LOOK,REPLACE,NUMBER
  1. Q
  1. CHANGEH ;CHANGE TIME TO NUMBERS
  1. S PSOEXMX=0
  1. ;S (PIECE(1),PIECE(2))=""
  1. S (QUIT(1),QUIT(2))="" ;TO STOP WHEN FIND SOMETHING
  1. ;PSOEXSIG DEFINED
  1. ;1 THE BELOW DEFINES TYPE OF ITEM TABLET, TEASPOON ETC
  1. ;2 LOOP THRU T2T BID AND T1T HS AND BREAKS UP
  1. ;3 CALCULATES FIRST PART OF SIG-THE NUMBER OF TABLETS ETC
  1. ;4 CALCULATES THE TIME PERIOD OF SIG-THE SECOND PORTION 4XDAILY ETC
  1. LOOP S (FIRST,SECOND,FIND)=0,PSOSIGS=PSOEXSIG
  1. I $L(PSOEXSIG,"ZGLOB")>1 S DELIMIT="ZGLOB",MANY=$L(PSOEXSIG,"ZGLOB")-1,MULT=1 F LOOP=1:1:MANY D A Q:$G(QUT)
  1. I $L(PSOEXSIG,"TEASPOON")>1 S DELIMIT="TEASPOON",MANY=$L(PSOEXSIG,"TEASPOON")-1,MULT=5 F LOOP=1:1:MANY D A Q:$G(QUT)
  1. I $L(PSOEXSIG,"BIGSPOON")>1 S DELIMIT="BIGSPOON",MANY=$L(PSOEXSIG,"BIGSPOON")-1,MULT=15 F LOOP=1:1:MANY D A Q:$G(QUT)
  1. I $L(PSOEXSIG,"UNIT")>1 S DELIMIT="UNIT",MANY=$L(PSOEXSIG,"UNIT")-1,MULT=.01 F LOOP=1:1:MANY D A Q:$G(QUT)
  1. D KILLH
  1. Q
  1. ;
  1. A S (PIECE(1),PIECE(2))=""
  1. ;TAKE 1 WHATEVER TWOTIMESDAILY AND TAKE 2 WHATEVER ONETIMESDAILY
  1. ;SEPARATE THE PARTS TAKE 1 WHATEVER TWOTIMESDAILY
  1. ;S FIRST=FIRST+FIND
  1. S FIRST=FIND
  1. S FIND=$F(PSOSIGS,"DAILY",FIRST)
  1. S SECOND=FIND-1
  1. S PSOEXSIG=$E(PSOSIGS,FIRST,SECOND)
  1. ;W !,"EACH SECTION IS= ",PSOEXSIG ;****DELETE
  1. ;
  1. S STRING(1)=$P(PSOEXSIG,DELIMIT),STRING(2)=$P(PSOEXSIG,DELIMIT,2)
  1. ;W !,"LOOP= ",LOOP H 2 ;****DELETE
  1. F Q=1:1:20 D ;
  1. .F P=1:1:20 D ;
  1. ..S CHECK=Q_" TO "_P,PART=Q_" TO"
  1. ..I STRING(1)[CHECK D
  1. ...;W !,STRING(1)," BECOMES " ;****DELETE
  1. ...S STRING(1)=$P(STRING(1),PART,2) ;SO 1 TO 2 BECOMES 2
  1. ...;W STRING(1) ;****DELETE
  1. B ;B ADDED 3/10/98 NEXT 7 LINES
  1. F Q=1:1:5,.25,.33,.5,.66,.75 D ;
  1. .F P=1:1:5,.25,.33,.5,.66,.75 D ;
  1. ..S CHECK=Q_" TO "_P,PART=Q_" TO"
  1. ..I STRING(1)[CHECK D
  1. ...;W !,STRING(1)," BECOMES " ;****DELETE
  1. ...S STRING(1)=$P(STRING(1),PART,2) ;SO .25 TO .33 BECOMES .33
  1. ...;W STRING(1) ;****DELETE
  1. ;COMMENTED OUT 3/10/98
  1. S LENGTH=$L(STRING(1))
  1. F K=1:1:LENGTH S TEST=$E(STRING(1),K) IF TEST?1N!(TEST?1".") S PIECE(1)=PIECE(1)_TEST ;W !,"PIECE(1) BECOMES ",PIECE(1)
  1. ;G:PIECE(1)="" KILLH
  1. ;NOTE SECOND HALF OF SIG
  1. F I=1:1 S TEXT=$P($T(HTEXT+I),";;",2) Q:TEXT="QUIT"!QUIT(2) D
  1. .S COMPARE(2)=$P(TEXT,",",1)
  1. .S REPLACE(2)=$P(TEXT,",",2)
  1. .I STRING(2)[COMPARE(2) S PIECE(2)=REPLACE(2),QUIT(2)=1 Q
  1. ;ADDED NEXT 4 LINES 3/10/98
  1. ;W !,"PIECE(1) ",PIECE(1)," BECOMES " ;****DELETE
  1. S PIECE(1)=+PIECE(1) ;W PIECE(1) ;****DELETE
  1. ;W !,"PIECE(2) ",PIECE(2)," BECOMES ";****DELETE
  1. S PIECE(2)=+PIECE(2) ;W PIECE(2) ;****DELETE
  1. ;3/10/98 POC ABOVE 4 LINES
  1. I PIECE(1),PIECE(2) S PSOEXMX=PIECE(1)*PIECE(2)*MULT
  1. ;W !,"PIECE(1)= ",PIECE(1)," PIECE(2)= ",PIECE(2)," MULT= ",MULT H 2
  1. S (QUIT(1),QUIT(2))="" ;RESET QUIT VARIABLES
  1. S PSOEXMXT=$G(PSOEXMXT)+PSOEXMX ;PSOEXMXT IS TOTAL OF ALL PSOEXMX
  1. ;IF 'PSOEXMX W !,*7,*7,"I DONT KNOW THE DAYS SUPPLY-GO FIGURE!" S PSOZDAY="",QUT=1 Q
  1. I 'PSOEXMX S PSOEXMXT=0,QUT=1 Q
  1. S PSOEXMX=0
  1. ;DELETE THE ABOVE LATER ****DELETE
  1. Q
  1. KILLH ;KILL VARIABLES
  1. K TEST,LENGTH,PIECE,STRING,DELIMIT,COMPARE,REPLACE,MULT
  1. Q
  1. ;
  1. DAY ;CALCULATE THE DAYS SUPPLY
  1. I '$G(PSOEXMXT) S PSOZDAY="" ;W !,*7,*7,"I DONT KNOW THE DAYS SUPPLY-GO FIGURE!"
  1. E S PSOZDAY=PSOEXQTY\PSOEXMXT ;W !,"PSOZDAY= ",PSOZDAY ;****DELETE
  1. Q
  1. CHANGER ;GOES LIKE THIS '4 TO 6' GETS CHANGED TO '4 OR 6'
  1. ;VARIABLE
  1. F Z=1:1 S TEXT=$P($T(TRTEXT+Z),";;",2) QUIT:TEXT="QUIT" S TR=$P(TEXT,";",1),TRTO=$P(TEXT,";",2) D TRA
  1. Q
  1. TRA F I=1:1:20 D
  1. .F J=1:1:20 D
  1. ..S REPLACE=I_" "_TR_" "_J
  1. ..S REPLANEW=I_" "_TRTO_" "_J
  1. ..S TIMES=$L(PSOEXSIG,REPLACE)-1
  1. ..Q:TIMES=0
  1. ..F K=1:1:TIMES D
  1. ...S SAVE(K)=$P(PSOEXSIG,REPLACE,K)
  1. ...S CUT(K)=$L(SAVE(K))+1
  1. ..S SAVE(K+1)=$P(PSOEXSIG,REPLACE,K+1)
  1. ..S CONVERT=""
  1. ..F C=1:1:TIMES D
  1. ...S CONVERT=CONVERT_SAVE(C)_REPLANEW
  1. ..S CONVERT=CONVERT_SAVE(C+1)
  1. ..;W !,"MY TEXT= ",CONVERT," TEXT= ",TEXT ;****DELETE
  1. ..S PSOEXSIG=CONVERT
  1. QUIT
  1. TRTEXT ;REPLACES SOME MORE STUFF
  1. ;;OR;TO
  1. ;;-;TO
  1. ;;QUIT
  1. CHANGES ;GOES LIKE THIS '1-2' GETS CHANGED TO '1 OR 2'
  1. ;VARIABLE
  1. F Z=1:1 S TEXT=$P($T(TSTEXT+Z),";;",2) QUIT:TEXT="QUIT" S TR=$P(TEXT,";",1),TRTO=$P(TEXT,";",2) D TRS
  1. Q
  1. TRS F I=1:1:20 D
  1. .F J=1:1:20 D
  1. ..S REPLACE=I_TR_J
  1. ..S REPLANEW=I_" "_TRTO_" "_J
  1. ..S TIMES=$L(PSOEXSIG,REPLACE)-1
  1. ..Q:TIMES=0
  1. ..F K=1:1:TIMES D
  1. ...S SAVE(K)=$P(PSOEXSIG,REPLACE,K)
  1. ...S CUT(K)=$L(SAVE(K))+1
  1. ..S SAVE(K+1)=$P(PSOEXSIG,REPLACE,K+1)
  1. ..S CONVERT=""
  1. ..F C=1:1:TIMES D
  1. ...S CONVERT=CONVERT_SAVE(C)_REPLANEW
  1. ..S CONVERT=CONVERT_SAVE(C+1)
  1. ..;W !,"MY TEXT= ",CONVERT," TEXT= ",TEXT ;****DELETE
  1. ..S PSOEXSIG=CONVERT
  1. QUIT
  1. TSTEXT ;REPLACES SOME MORE STUFF
  1. ;;-;TO
  1. ;;QUIT
  1. ;
  1. FUZZY ;CHANGES EVERY 4 TO 6 HOURS - EVERY 4 HOURS
  1. ;CHANGES 4 TO 6 TIMES - TO 4 TIMES
  1. F I=1:1 S TEXT=$P($T(TEXTF+I),";;",2) Q:TEXT="QUIT" S FIRST=$P(TEXT,";"),SECOND=$P(TEXT,";",2) D
  1. .F Q=1:1:24 D
  1. ..F P=1:1:24 D
  1. ...S CHECK=FIRST_" "_Q_" TO "_P_" "_SECOND,PART=FIRST_" "_Q_" "_SECOND
  1. ...I PSOEXSIG[CHECK D ;
  1. ....;W !,PSOEXSIG," BECOMES "
  1. ....S PSOEXSIG=$P(PSOEXSIG,CHECK,1)_PART_$P(PSOEXSIG,CHECK,2)
  1. ....;W PSOEXSIG H 2
  1. QUIT
  1. TEXTF ;;FIRST WORD;LAST WORD
  1. ;;EVERY;HOURS
  1. ;;;TIMES
  1. ;;QUIT