- LEX10DX ;ISL/KER - ICD-9 Diagnosis ;04/21/2014
- ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 1
- ;
- ; Global Variables
- ; ^TMP("LEXDX" SACC 2.3.2.5.1
- ; ^TMP("LEXFND" SACC 2.3.2.5.1
- ; ^TMP("LEXHIT" SACC 2.3.2.5.1
- ; ^TMP("LEXSCH" SACC 2.3.2.5.1
- ;
- ; External References
- ; ^DIM ICR 10016
- ; $$ICDDATA^ICDXCODE ICR 5699
- ; $$DT^XLFDT ICR 10103
- ;
- Q
- I9T(X,LEXA,LEXD,LEXL,LEXF) ; ICD-9 DX Text Lookup (Pruned)
- ;
- ; Input
- ; X Diagnostic Text Required
- ; .LEXA Local Array (by Ref) Required
- ; LEXD Date (FM Format) Optional (Default TODAY)
- ; LEXL Maximum to Return Optional (Default = 30)
- ; LEXF Filter Optional (Default ICD)
- ;
- ; Output
- ;
- ; LEXA(0)=# ^ PI No to exceed 30
- ; LEXA(#)=<code ien>_"^"_<code>_"^"_<activation date>
- ; LEXA(#,0)=<expression ien>_"^"_<expression>
- ;
- ; Note: Second piece of LEXA(0) is the pruning
- ; indicator and set to "1" if pruning
- ; occurred
- ;
- ; See DX^LEX10DP for DX Code Lookup (Pruned)
- ;
- K ^TMP("LEXSCH",$J),^TMP("LEXFND",$J),^TMP("LEXHIT",$J)
- N DIC,LEXFIL,LEXLEN,LEXLI,LEXCDT,LEXVDT,LEXX,LEXPR,LEX
- S LEXX=$G(X) Q:'$L(LEXX) S LEXCDT=$G(LEXD),LEXFIL=$G(LEXF)
- S:LEXCDT'?7N LEXCDT=$G(DT) S:LEXCDT'?7N LEXCDT=$$DT^XLFDT
- S LEXLEN=$G(LEXL) S:+LEXLEN'>0 LEXLEN=30 S LEXPR=0
- S:'$L(LEXFIL) LEXFIL="I $$SO^LEXU(Y,""ICD"",+($G(LEXCDT)))"
- S DIC("S")=LEXFIL D CONFIG^LEXSET("ICD","ICD",LEXCDT)
- S (DIC("S"),^TMP("LEXSCH",$J,"FIL",0))=LEXFIL
- S ^TMP("LEXSCH",$J,"FIL",1)="Diagnosis"
- S ^TMP("LEXSCH",$J,"DIS",0)="ICD/10D/DS4/SCC/NAN/SCT"
- S ^TMP("LEXSCH",$J,"DIS",1)="Diagnosis"
- K LEX D LOOK^LEXA(LEXX,"ICD",+LEXLEN,"ICD",LEXCDT)
- S:+($G(LEX("LIST",0)))=LEXLEN&($O(^TMP("LEXFND",$J,0),-1)<0) LEXPR=1
- K ^TMP("LEXSCH",$J),^TMP("LEXFND",$J),^TMP("LEXHIT",$J)
- S LEXLI=0 F S LEXLI=$O(LEX("LIST",LEXLI)) Q:+LEXLI'>0 D
- . N LEXAI,LEXCODE,LEXEFF,LEXEIEN,LEXEXP,LEXND,LEXSI,LEXSIEN,LEXSRC
- . S LEXEIEN=+($G(LEX("LIST",LEXLI)))
- . Q:LEXEIEN'>0
- . S LEXEXP=$G(^LEX(757.01,+LEXEIEN,0))
- . S LEXSI=0,(LEXSIEN,LEXCODE,LEXEFF)=""
- . F S LEXSI=$O(^LEX(757.02,"B",LEXEIEN,LEXSI)) Q:+LEXSI'>0 D
- . . N LEXD,LEXH,LEXND,LEXS Q:+($G(LEXSIEN))>0 S LEXND=$G(^LEX(757.02,LEXSI,0))
- . . Q:$P(LEXND,"^",3)'=1 S LEXD=$O(^LEX(757.02,LEXSI,4,"B",(LEXCDT+.001)),-1)
- . . Q:LEXD'?7N S LEXH=$O(^LEX(757.02,LEXSI,4,"B",LEXD," "),-1) Q:LEXH'?1N.N
- . . S LEXS=$P($G(^LEX(757.02,LEXSI,4,LEXH,0)),"^",2)
- . . S:LEXS>0 LEXSIEN=LEXSI,LEXEFF=LEXD,LEXCODE=$P(LEXND,"^",2)
- . I +LEXSIEN'>0,LEXEIEN>0 D
- . . N LEXMC,LEXSI,LEXSA S LEXMC=$P($G(^LEX(757.01,+LEXEIEN,1)),"^",1) Q:+LEXMC'>0
- . . S LEXSI=0 F S LEXSI=$O(^LEX(757.02,"AMC",LEXMC,LEXSI)) Q:+LEXSI'>0 D
- . . . N LEXND,LEXH,LEXS,LEXC S LEXND=$G(^LEX(757.02,+LEXSI,0)) Q:$P(LEXND,"^",3)>2
- . . . S LEXH=$O(^LEX(757.02,LEXSI,4,"B",(+($G(LEXCDT))+.001)),-1)
- . . . S LEXH=$O(^LEX(757.02,LEXSI,4,"B",+LEXH," "),-1)
- . . . S LEXH=$G(^LEX(757.02,LEXSI,4,+LEXH,0)) Q:$P(LEXH,"^",2)'>0
- . . . Q:$P(LEXND,"^",5)'>0 S LEXC=$O(LEXSA(" "),-1)+1
- . . . S LEXSA(LEXC)=(LEXSI_"^"_$P(LEXH,"^",1)),LEXSA(0)=LEXC
- . . I LEXSA(0)=1,+($G(LEXSA(1)))>0,$O(LEXSA(1))'>0 D
- . . . N LEXSI,LEXEI,LEXEF S LEXSI=+($G(LEXSA(1))),LEXEF=$P($G(LEXSA(1)),"^",2)
- . . . S LEXEI=+($G(^LEX(757.02,+LEXSI,0))) Q:+LEXEI'>0 Q:LEXEF'?7N
- . . . S LEXSIEN=LEXSI,LEXEIEN=LEXEI,LEXEFF=LEXEF
- . Q:+LEXSIEN'>0 Q:LEXEFF'?7N Q:+LEXEIEN'>0
- . S LEXND=$G(^LEX(757.02,LEXSIEN,0)) Q:+LEXEIEN'=+LEXND
- . S LEXEXP=$G(^LEX(757.01,+LEXEIEN,0)) Q:'$L(LEXEXP)
- . Q:$P($G(^LEX(757.01,+LEXEIEN,1)),"^",5)>0
- . S LEXSRC=$P(LEXND,"^",3) Q:LEXSRC'=1 S LEXCODE=$P(LEXND,"^",2)
- . Q:'$L(LEXCODE) S LEXAI=$O(LEXA(" "),-1)+1
- . S LEXA(LEXAI)=LEXSIEN_"^"_LEXCODE_"^"_LEXEFF
- . S LEXA(LEXAI,0)=LEXEIEN_"^"_LEXEXP
- . S LEXA(0)=$O(LEXA(" "),-1)
- S:+($G(LEXA(0)))'>0 LEXA(0)=-1 Q:+($G(LEXA(0)))'>0
- K LEX S:LEXPR>0&(+($G(LEXA(0)))>0) $P(LEXA(0),"^",2)=LEXPR
- Q
- ;
- NEXT(LEXC,LEXA,LEXD) ; Next Character
- ;
- ; Input
- ;
- ; LEXC Partial Dx Code Required
- ; .LEXA Local Array (by Ref) Required
- ; LEXD Date (FM Format) Optional (Default TODAY)
- ;
- ; Output
- ;
- ; LEXA(<input>,0)= # of characters
- ; LEXA(<input>,<character>)=""
- ;
- N LEX1,LEX2,LEXCDT,LEXCHK,LEXCHR,LEXCT,LEXE,LEXLEN,LEXID,LEXNC,LEXNN
- N LEXOR,LEXPRE,LEXS,LEXSO S LEXC=$$TM(LEXC)
- S:$L(LEXC)=3&(LEXC'[".") LEXC=LEXC_"." S (LEXID,LEXSO)=LEXC
- S LEXCDT=$G(LEXD) S:LEXCDT'?7N LEXCDT=$$DT^XLFDT S LEXLEN=$L(LEXC)
- Q:LEXLEN>6 "-1^Max length reached, no next character available"
- I LEXLEN>1 D
- . S LEXOR=$E(LEXSO,1,($L(LEXSO)-1))_$C($A($E(LEXSO,$L(LEXSO)))-1)_"~"
- S:LEXLEN=1 LEXOR=$C($A(LEXSO)-1)_"~" S:LEXLEN'>0 LEXOR="/~"
- S LEXCHK=0 S:LEXLEN'>0 LEXCHK=1 S:LEXLEN>0&(LEXLEN<3) LEXCHK=LEXLEN+1
- S:LEXLEN=3 LEXCHK=LEXLEN+2 S:LEXLEN>3 LEXCHK=LEXLEN+1
- Q:+LEXCHK'>0 "-1^Character position not specified"
- S:LEXLEN=0 LEXID="<null>" S:'$L(LEXID) LEXID="<unknown>"
- S LEXNN="^LEX(757.02,""ADX"","""_LEXOR_" "")"
- S LEXNC="^LEX(757.02,""ADX"","""_LEXSO,LEXCT=0
- F S LEXNN=$Q(@LEXNN) Q:'$L(LEXNN)!(LEXNN'[LEXNC) D
- . N LEXC,LEXD,LEXE,LEXS,LEX1,LEX2
- . S LEXC=$P(LEXNN,",",3),LEXC=$TR(LEXC,"""",""),LEXC=$$TM(LEXC)
- . S LEXD=+($P(LEXNN,",",4)) Q:LEXD'?7N Q:(LEXCDT+.001)'>LEXD
- . I $E(LEXC,1,$L(LEXSO))=LEXSO,$L(LEXC)'<LEXCHK D Q
- . . N LEXCHR S LEXCHR=$E(LEXC,LEXCHK) Q:'$L(LEXCHR)
- . . I '$D(LEXA(LEXID,LEXCHR)) D
- . . . S LEXA(LEXID,LEXCHR)="",LEXCT=LEXCT+1
- . . S LEXOR=$E(LEXC,1,LEXCHK)_"~"
- . . S LEXNN="^LEX(757.02,""ADX"","""_LEXOR_" "")"
- S:+($G(LEXCT))>0 LEXA(LEXID)=+($G(LEXCT))
- Q +($G(LEXCT))
- ;
- ; Miscellaneous
- TM(X,Y) ; Trim Character Y - Default " "
- S X=$G(X) Q:X="" X S Y=$G(Y) S:'$L(Y) Y=" "
- F Q:$E(X,1)'=Y S X=$E(X,2,$L(X))
- F Q:$E(X,$L(X))'=Y S X=$E(X,1,($L(X)-1))
- Q X
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLEX10DX 5938 printed Feb 18, 2025@23:29:36 Page 2
- LEX10DX ;ISL/KER - ICD-9 Diagnosis ;04/21/2014
- +1 ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 1
- +2 ;
- +3 ; Global Variables
- +4 ; ^TMP("LEXDX" SACC 2.3.2.5.1
- +5 ; ^TMP("LEXFND" SACC 2.3.2.5.1
- +6 ; ^TMP("LEXHIT" SACC 2.3.2.5.1
- +7 ; ^TMP("LEXSCH" SACC 2.3.2.5.1
- +8 ;
- +9 ; External References
- +10 ; ^DIM ICR 10016
- +11 ; $$ICDDATA^ICDXCODE ICR 5699
- +12 ; $$DT^XLFDT ICR 10103
- +13 ;
- +14 QUIT
- I9T(X,LEXA,LEXD,LEXL,LEXF) ; ICD-9 DX Text Lookup (Pruned)
- +1 ;
- +2 ; Input
- +3 ; X Diagnostic Text Required
- +4 ; .LEXA Local Array (by Ref) Required
- +5 ; LEXD Date (FM Format) Optional (Default TODAY)
- +6 ; LEXL Maximum to Return Optional (Default = 30)
- +7 ; LEXF Filter Optional (Default ICD)
- +8 ;
- +9 ; Output
- +10 ;
- +11 ; LEXA(0)=# ^ PI No to exceed 30
- +12 ; LEXA(#)=<code ien>_"^"_<code>_"^"_<activation date>
- +13 ; LEXA(#,0)=<expression ien>_"^"_<expression>
- +14 ;
- +15 ; Note: Second piece of LEXA(0) is the pruning
- +16 ; indicator and set to "1" if pruning
- +17 ; occurred
- +18 ;
- +19 ; See DX^LEX10DP for DX Code Lookup (Pruned)
- +20 ;
- +21 KILL ^TMP("LEXSCH",$JOB),^TMP("LEXFND",$JOB),^TMP("LEXHIT",$JOB)
- +22 NEW DIC,LEXFIL,LEXLEN,LEXLI,LEXCDT,LEXVDT,LEXX,LEXPR,LEX
- +23 SET LEXX=$GET(X)
- if '$LENGTH(LEXX)
- QUIT
- SET LEXCDT=$GET(LEXD)
- SET LEXFIL=$GET(LEXF)
- +24 if LEXCDT'?7N
- SET LEXCDT=$GET(DT)
- if LEXCDT'?7N
- SET LEXCDT=$$DT^XLFDT
- +25 SET LEXLEN=$GET(LEXL)
- if +LEXLEN'>0
- SET LEXLEN=30
- SET LEXPR=0
- +26 if '$LENGTH(LEXFIL)
- SET LEXFIL="I $$SO^LEXU(Y,""ICD"",+($G(LEXCDT)))"
- +27 SET DIC("S")=LEXFIL
- DO CONFIG^LEXSET("ICD","ICD",LEXCDT)
- +28 SET (DIC("S"),^TMP("LEXSCH",$JOB,"FIL",0))=LEXFIL
- +29 SET ^TMP("LEXSCH",$JOB,"FIL",1)="Diagnosis"
- +30 SET ^TMP("LEXSCH",$JOB,"DIS",0)="ICD/10D/DS4/SCC/NAN/SCT"
- +31 SET ^TMP("LEXSCH",$JOB,"DIS",1)="Diagnosis"
- +32 KILL LEX
- DO LOOK^LEXA(LEXX,"ICD",+LEXLEN,"ICD",LEXCDT)
- +33 if +($GET(LEX("LIST",0)))=LEXLEN&($ORDER(^TMP("LEXFND",$JOB,0),-1)<0)
- SET LEXPR=1
- +34 KILL ^TMP("LEXSCH",$JOB),^TMP("LEXFND",$JOB),^TMP("LEXHIT",$JOB)
- +35 SET LEXLI=0
- FOR
- SET LEXLI=$ORDER(LEX("LIST",LEXLI))
- if +LEXLI'>0
- QUIT
- Begin DoDot:1
- +36 NEW LEXAI,LEXCODE,LEXEFF,LEXEIEN,LEXEXP,LEXND,LEXSI,LEXSIEN,LEXSRC
- +37 SET LEXEIEN=+($GET(LEX("LIST",LEXLI)))
- +38 if LEXEIEN'>0
- QUIT
- +39 SET LEXEXP=$GET(^LEX(757.01,+LEXEIEN,0))
- +40 SET LEXSI=0
- SET (LEXSIEN,LEXCODE,LEXEFF)=""
- +41 FOR
- SET LEXSI=$ORDER(^LEX(757.02,"B",LEXEIEN,LEXSI))
- if +LEXSI'>0
- QUIT
- Begin DoDot:2
- +42 NEW LEXD,LEXH,LEXND,LEXS
- if +($GET(LEXSIEN))>0
- QUIT
- SET LEXND=$GET(^LEX(757.02,LEXSI,0))
- +43 if $PIECE(LEXND,"^",3)'=1
- QUIT
- SET LEXD=$ORDER(^LEX(757.02,LEXSI,4,"B",(LEXCDT+.001)),-1)
- +44 if LEXD'?7N
- QUIT
- SET LEXH=$ORDER(^LEX(757.02,LEXSI,4,"B",LEXD," "),-1)
- if LEXH'?1N.N
- QUIT
- +45 SET LEXS=$PIECE($GET(^LEX(757.02,LEXSI,4,LEXH,0)),"^",2)
- +46 if LEXS>0
- SET LEXSIEN=LEXSI
- SET LEXEFF=LEXD
- SET LEXCODE=$PIECE(LEXND,"^",2)
- End DoDot:2
- +47 IF +LEXSIEN'>0
- IF LEXEIEN>0
- Begin DoDot:2
- +48 NEW LEXMC,LEXSI,LEXSA
- SET LEXMC=$PIECE($GET(^LEX(757.01,+LEXEIEN,1)),"^",1)
- if +LEXMC'>0
- QUIT
- +49 SET LEXSI=0
- FOR
- SET LEXSI=$ORDER(^LEX(757.02,"AMC",LEXMC,LEXSI))
- if +LEXSI'>0
- QUIT
- Begin DoDot:3
- +50 NEW LEXND,LEXH,LEXS,LEXC
- SET LEXND=$GET(^LEX(757.02,+LEXSI,0))
- if $PIECE(LEXND,"^",3)>2
- QUIT
- +51 SET LEXH=$ORDER(^LEX(757.02,LEXSI,4,"B",(+($GET(LEXCDT))+.001)),-1)
- +52 SET LEXH=$ORDER(^LEX(757.02,LEXSI,4,"B",+LEXH," "),-1)
- +53 SET LEXH=$GET(^LEX(757.02,LEXSI,4,+LEXH,0))
- if $PIECE(LEXH,"^",2)'>0
- QUIT
- +54 if $PIECE(LEXND,"^",5)'>0
- QUIT
- SET LEXC=$ORDER(LEXSA(" "),-1)+1
- +55 SET LEXSA(LEXC)=(LEXSI_"^"_$PIECE(LEXH,"^",1))
- SET LEXSA(0)=LEXC
- End DoDot:3
- +56 IF LEXSA(0)=1
- IF +($GET(LEXSA(1)))>0
- IF $ORDER(LEXSA(1))'>0
- Begin DoDot:3
- +57 NEW LEXSI,LEXEI,LEXEF
- SET LEXSI=+($GET(LEXSA(1)))
- SET LEXEF=$PIECE($GET(LEXSA(1)),"^",2)
- +58 SET LEXEI=+($GET(^LEX(757.02,+LEXSI,0)))
- if +LEXEI'>0
- QUIT
- if LEXEF'?7N
- QUIT
- +59 SET LEXSIEN=LEXSI
- SET LEXEIEN=LEXEI
- SET LEXEFF=LEXEF
- End DoDot:3
- End DoDot:2
- +60 if +LEXSIEN'>0
- QUIT
- if LEXEFF'?7N
- QUIT
- if +LEXEIEN'>0
- QUIT
- +61 SET LEXND=$GET(^LEX(757.02,LEXSIEN,0))
- if +LEXEIEN'=+LEXND
- QUIT
- +62 SET LEXEXP=$GET(^LEX(757.01,+LEXEIEN,0))
- if '$LENGTH(LEXEXP)
- QUIT
- +63 if $PIECE($GET(^LEX(757.01,+LEXEIEN,1)),"^",5)>0
- QUIT
- +64 SET LEXSRC=$PIECE(LEXND,"^",3)
- if LEXSRC'=1
- QUIT
- SET LEXCODE=$PIECE(LEXND,"^",2)
- +65 if '$LENGTH(LEXCODE)
- QUIT
- SET LEXAI=$ORDER(LEXA(" "),-1)+1
- +66 SET LEXA(LEXAI)=LEXSIEN_"^"_LEXCODE_"^"_LEXEFF
- +67 SET LEXA(LEXAI,0)=LEXEIEN_"^"_LEXEXP
- +68 SET LEXA(0)=$ORDER(LEXA(" "),-1)
- End DoDot:1
- +69 if +($GET(LEXA(0)))'>0
- SET LEXA(0)=-1
- if +($GET(LEXA(0)))'>0
- QUIT
- +70 KILL LEX
- if LEXPR>0&(+($GET(LEXA(0)))>0)
- SET $PIECE(LEXA(0),"^",2)=LEXPR
- +71 QUIT
- +72 ;
- NEXT(LEXC,LEXA,LEXD) ; Next Character
- +1 ;
- +2 ; Input
- +3 ;
- +4 ; LEXC Partial Dx Code Required
- +5 ; .LEXA Local Array (by Ref) Required
- +6 ; LEXD Date (FM Format) Optional (Default TODAY)
- +7 ;
- +8 ; Output
- +9 ;
- +10 ; LEXA(<input>,0)= # of characters
- +11 ; LEXA(<input>,<character>)=""
- +12 ;
- +13 NEW LEX1,LEX2,LEXCDT,LEXCHK,LEXCHR,LEXCT,LEXE,LEXLEN,LEXID,LEXNC,LEXNN
- +14 NEW LEXOR,LEXPRE,LEXS,LEXSO
- SET LEXC=$$TM(LEXC)
- +15 if $LENGTH(LEXC)=3&(LEXC'[".")
- SET LEXC=LEXC_"."
- SET (LEXID,LEXSO)=LEXC
- +16 SET LEXCDT=$GET(LEXD)
- if LEXCDT'?7N
- SET LEXCDT=$$DT^XLFDT
- SET LEXLEN=$LENGTH(LEXC)
- +17 if LEXLEN>6
- QUIT "-1^Max length reached, no next character available"
- +18 IF LEXLEN>1
- Begin DoDot:1
- +19 SET LEXOR=$EXTRACT(LEXSO,1,($LENGTH(LEXSO)-1))_$CHAR($ASCII($EXTRACT(LEXSO,$LENGTH(LEXSO)))-1)_"~"
- End DoDot:1
- +20 if LEXLEN=1
- SET LEXOR=$CHAR($ASCII(LEXSO)-1)_"~"
- if LEXLEN'>0
- SET LEXOR="/~"
- +21 SET LEXCHK=0
- if LEXLEN'>0
- SET LEXCHK=1
- if LEXLEN>0&(LEXLEN<3)
- SET LEXCHK=LEXLEN+1
- +22 if LEXLEN=3
- SET LEXCHK=LEXLEN+2
- if LEXLEN>3
- SET LEXCHK=LEXLEN+1
- +23 if +LEXCHK'>0
- QUIT "-1^Character position not specified"
- +24 if LEXLEN=0
- SET LEXID="<null>"
- if '$LENGTH(LEXID)
- SET LEXID="<unknown>"
- +25 SET LEXNN="^LEX(757.02,""ADX"","""_LEXOR_" "")"
- +26 SET LEXNC="^LEX(757.02,""ADX"","""_LEXSO
- SET LEXCT=0
- +27 FOR
- SET LEXNN=$QUERY(@LEXNN)
- if '$LENGTH(LEXNN)!(LEXNN'[LEXNC)
- QUIT
- Begin DoDot:1
- +28 NEW LEXC,LEXD,LEXE,LEXS,LEX1,LEX2
- +29 SET LEXC=$PIECE(LEXNN,",",3)
- SET LEXC=$TRANSLATE(LEXC,"""","")
- SET LEXC=$$TM(LEXC)
- +30 SET LEXD=+($PIECE(LEXNN,",",4))
- if LEXD'?7N
- QUIT
- if (LEXCDT+.001)'>LEXD
- QUIT
- +31 IF $EXTRACT(LEXC,1,$LENGTH(LEXSO))=LEXSO
- IF $LENGTH(LEXC)'<LEXCHK
- Begin DoDot:2
- +32 NEW LEXCHR
- SET LEXCHR=$EXTRACT(LEXC,LEXCHK)
- if '$LENGTH(LEXCHR)
- QUIT
- +33 IF '$DATA(LEXA(LEXID,LEXCHR))
- Begin DoDot:3
- +34 SET LEXA(LEXID,LEXCHR)=""
- SET LEXCT=LEXCT+1
- End DoDot:3
- +35 SET LEXOR=$EXTRACT(LEXC,1,LEXCHK)_"~"
- +36 SET LEXNN="^LEX(757.02,""ADX"","""_LEXOR_" "")"
- End DoDot:2
- QUIT
- End DoDot:1
- +37 if +($GET(LEXCT))>0
- SET LEXA(LEXID)=+($GET(LEXCT))
- +38 QUIT +($GET(LEXCT))
- +39 ;
- +40 ; Miscellaneous
- TM(X,Y) ; Trim Character Y - Default " "
- +1 SET X=$GET(X)
- if X=""
- QUIT X
- SET Y=$GET(Y)
- if '$LENGTH(Y)
- SET Y=" "
- +2 FOR
- if $EXTRACT(X,1)'=Y
- QUIT
- SET X=$EXTRACT(X,2,$LENGTH(X))
- +3 FOR
- if $EXTRACT(X,$LENGTH(X))'=Y
- QUIT
- SET X=$EXTRACT(X,1,($LENGTH(X)-1))
- +4 QUIT X