- ICPTMOD ;ALB/DEK/KER - CPT MODIFIER APIS ;08/18/2007
- ;;6.0;CPT/HCPCS;**6,12,13,14,19,30,37**;May 19, 1997;Build 44
- ;
- ; Global Variables
- ; ^DIC(81.3
- ; ^TMP("ICPTD" SACC 2.3.2.5.1
- ;
- ; External References
- ; $$DT^XLFDT DBIA 10103
- ;
- ; External References
- ;
- Q
- MOD(MOD,MFT,MDT,SRC,DFN) ; returns basic info on CPT MODIFIERs
- ;
- ; Input: MOD Modifier, Internal or External (Required)
- ; MFT Format "I"=IEN "E"=.01 field (Default)
- ; MDT Version Date, FileMan format (default = TODAY)
- ; SRC Source Screen
- ; If 0 or Null, Level I and II only
- ; If >0, Level I, II, and III
- ; DFN Not used
- ;
- ; Output: 10 piece string delimited by the up-arrow (^)
- ;
- ; 1 IEN
- ; 2 Modifier (0;1)
- ; 3 Versioned Name (61, 0;1)
- ; 4 Code (0;3)
- ; 5 Source (0;4)
- ; 6 Effective Date (60, 0;1)
- ; 7 Status (60, 0;2) 0:inactive; 1:active
- ; 8 Inactivation Date (60, 0;1)
- ; 9 Activation Date (60, 0;1)
- ; 10 Message
- ; or
- ; -1^Error
- ;
- N DATA,EFF,EFFX,EFFS,STR,MODN,MODST
- I $G(MOD)="" S STR="-1^NO MODIFIER SELECTED" G MODQ
- I $G(MFT)="" S MFT="E"
- I "E^I"'[MFT S STR="-1^INVALID MODIFIER FORMAT" G MODQ
- S MDT=$S($G(MDT)="":$$DT^XLFDT,1:$$DTBR^ICPTSUPT(MDT))
- I MFT="E" S MODN=$O(^DIC(81.3,"B",MOD,0)) I $O(^(MODN)) S STR="-1^Multiple modifiers w/same name. Select IEN: " D MULT G MODQ
- I MFT="E" S MOD=MODN
- S MOD=+MOD
- I 'MOD!'$D(^DIC(81.3,MOD)) S STR="-1^NO SUCH MODIFIER" G MODQ
- S DATA=$G(^DIC(81.3,MOD,0))
- S MODST=$$VSTCM(MOD,MDT)
- I '$L(DATA) S STR="-1^NO DATA" G MODQ
- S STR=MOD_"^"_$P(DATA,"^",1,4)
- I '$G(SRC),$P(STR,"^",5)="V" Q "-1^VA LOCAL MODIFIER SELECTED"
- S EFF=$$EFF^ICPTSUPT(81.3,MOD,MDT)
- I EFF<1 S $P(EFF,"^",2)=0
- S STR=STR_"^"_EFF_"^"_$$MSG^ICPTSUPT(MDT)
- S:$L(MODST) $P(STR,"^",3)=MODST
- MODQ ; Modifier Quit
- Q STR
- ;
- MODD(CODE,OUTARR,DFN,CDT) ; returns CPT description in array
- ;
- ; Input: CODE CPT Modifier, internal or external (Required)
- ; ARY Output Array Name
- ; e.g. "ABC" or "ABC("TEST")"
- ; Default = ^TMP("ICPTD",$J)
- ; DFN Not used
- ; CDT Versioning Date (default = TODAY)
- ; If prior to 1/1/1989, 1/1/1989 will be used
- ; If year only, use first of that year
- ; If month/year only, use first of the month
- ; If later than today, TODAY will be used
- ;
- ; Output: # Number of lines in description
- ;
- ; @ARY(1:n) - Versioned Description (multiple 62)
- ; @ARY(n+1) - blank
- ; @ARY(n+1) - message: CODE TEXT MAY BE INACCURATE
- ; or
- ; -1^Error
- ;
- ; ** User must initialize ^TMP("ICPTD",$J), if used **
- ;
- N ARR,END,CTV,I,N
- I $G(CODE)="" S N="-1^NO CODE SELECTED" G MODDQ
- I $G(OUTARR)="" S OUTARR="^TMP(""ICPTD"",$J,"
- I OUTARR'["(" S OUTARR=OUTARR_"("
- I OUTARR[")" S OUTARR=$P(OUTARR,")")
- S END=$E(OUTARR,$L(OUTARR)) I END'="("&(END'=",") S OUTARR=OUTARR_","
- I OUTARR="^TMP(""ICPTD"",$J," K ^TMP("ICPTD",$J)
- S CODE=$S(CODE?1.N:+CODE,1:$$CODEN(CODE)),I=0,N=0
- I CODE<1!'$D(^DIC(81.3,CODE)) S N="-1^NO SUCH CODE" G MODDQ
- S CDT=$S($G(CDT)="":$$DT^XLFDT,1:$$DTBR^ICPTSUPT(CDT))
- D VLTCM(+CODE,CDT,.CTV)
- S (N,I)=0 F S I=$O(CTV(I)) Q:+I=0 D
- . S N=N+1,ARR=OUTARR_N_")",@ARR=$$TRIM($G(CTV(I)))
- I +N>0 D
- . S N=N+1,ARR=OUTARR_N_")",@ARR=" "
- . S N=N+1,ARR=OUTARR_N_")",@ARR=$$MSG^ICPTSUPT(CDT,1)
- I +N'>0 S N="-1^VERSIONED DESCRIPTION NOT FOUND FOR MODIFIER "_$P($G(^DIC(81.3,+CODE,0)),"^",1)
- MODDQ ; Modifier Description Quit
- Q N
- ;
- MODA(CODE,VDT,ARY) ; Return an array of Modifiers for a CPT Code
- D MODA^ICPTMOD2 Q
- MODP(CODE,MOD,MFT,MDT,SRC,DFN) ; Check if modifier can be used with code
- Q $$MODP^ICPTMOD2($G(CODE),$G(MOD),$G(MFT),$G(MDT),$G(SRC),$G(DFN))
- MODC(MOD) ; Checks modifier for range including code
- D MODC^ICPTMOD2($G(MOD))
- Q
- MULT ; Finds Duplicate Modifiers
- D MULT^ICPTMOD2 Q
- CODEN(CODE) ; Return the IEN of a CPT modifier CODE
- Q:$G(CODE)="" -1
- N COD S COD=+$O(^DIC(81.3,"BA",(CODE_" "),0))
- Q $S(COD>0:COD,1:-1)
- VSTCM(IEN,VDATE) ; Versioned Short Text (CPT Modifier)
- N CPT0,CPTC,CPTI,CPTSTD,CPTSTI,CPTVDT,CPTTXT,CPTTD,CPTTI
- S CPTI=+($G(IEN)) Q:+CPTI'>0 "" Q:'$D(^DIC(81.3,+CPTI)) ""
- S CPTVDT=$G(VDATE) S:'$L(CPTVDT)!(+CPTVDT'>0) CPTVDT=$$DT^XLFDT Q:$P(CPTVDT,".",1)'?7N ""
- S CPT0=$G(^DIC(81.3,+CPTI,0)),CPTC=$P(CPT0,"^",1) Q:'$L(CPTC) ""
- S CPTSTD=0 S CPTTD=CPTVDT+.000001 F S CPTTD=$O(^DIC(81.3,"AST",(CPTC_" "),CPTTD),-1) Q:+CPTTD=0 Q:+CPTSTD>0 D
- . S CPTTI=$O(^DIC(81.3,"AST",(CPTC_" "),CPTTD," "),-1) S:CPTTI=CPTI CPTSTD=CPTTD
- I +CPTSTD>0 D Q:$L($G(CPTTXT)) $G(CPTTXT)
- . S CPTSTI=$O(^DIC(81.3,"AST",(CPTC_" "),CPTSTD,+CPTI," "),-1),CPTTXT=$P($G(^DIC(81.3,+CPTI,61,+CPTSTI,0)),"^",2)
- S CPTSTD=$O(^DIC(81.3,+CPTI,61,"B",0)) I +CPTSTD>0 D Q:$L($G(CPTTXT)) $G(CPTTXT)
- . S CPTSTI=$O(^DIC(81.3,+CPTI,61,"B",CPTSTD,0)),CPTTXT=$P($G(^DIC(81.3,+CPTI,61,+CPTSTI,0)),"^",2)
- Q $$TRIM($P(CPT0,"^",2))
- VLTCM(IEN,VDATE,ARY) ; Versioned Description - Long Text (CPT Modifier)
- N CPT0,CPTC,CPTD,CPTI,CPTSTD,CPTSTI,CPTT,CPTVDT,CPTTXT,CPTTD,CPTTI
- S CPTI=+($G(IEN)) Q:+CPTI'>0 Q:'$D(^DIC(81.3,+CPTI))
- S CPTVDT=$G(VDATE) S:'$L(CPTVDT)!(+CPTVDT'>0) CPTVDT=$$DT^XLFDT Q:$P(CPTVDT,".",1)'?7N
- S CPT0=$G(^DIC(81.3,+CPTI,0)),CPTC=$P(CPT0,"^",1) Q:'$L(CPTC)
- S CPTSTD=0 S CPTTD=CPTVDT+.000001 F S CPTTD=$O(^DIC(81.3,"ADS",(CPTC_" "),CPTTD),-1) Q:+CPTTD=0 Q:+CPTSTD>0 D
- . S CPTTI=$O(^DIC(81.3,"ADS",(CPTC_" "),CPTTD," "),-1) S:CPTTI=CPTI CPTSTD=CPTTD
- I +CPTSTD>0 D Q:+($O(ARY(0)))>0
- . S CPTSTI=$O(^DIC(81.3,"ADS",(CPTC_" "),CPTSTD,+CPTI," "),-1)
- . S (CPTD,CPTT)=0 F S CPTD=$O(^DIC(81.3,+CPTI,62,CPTSTI,1,CPTD)) Q:+CPTD=0 D
- . . S CPTT=CPTT+1,ARY(CPTT)=$$TRIM($G(^DIC(81.3,+CPTI,62,+CPTSTI,1,+CPTD,0))),ARY(0)=CPTT
- S CPTSTD=$O(^DIC(81.3,+CPTI,62,"B",0)) I +CPTSTD>0 D Q:+($O(ARY(0)))>0
- . S CPTSTI=$O(^DIC(81.3,+CPTI,62,"B",CPTSTD,0))
- . S (CPTD,CPTT)=0 F S CPTD=$O(^DIC(81.3,+CPTI,62,CPTSTI,1,CPTD)) Q:+CPTD=0 D
- . . S CPTT=CPTT+1,ARY(CPTT)=$$TRIM($G(^DIC(81.3,+CPTI,62,+CPTSTI,1,+CPTD,0))),ARY(0)=CPTT
- K ARY S (CPTD,CPTT)=0 F S CPTD=$O(^DIC(81.3,CPTI,"D",CPTD)) Q:+CPTD=0 D
- . S CPTT=CPTT+1,ARY(CPTT)=$$TRIM($G(^DIC(81.3,CPTI,"D",CPTD,0))),ARY(0)=CPTT
- Q
- TRIM(X) ; Trim Spaces
- S X=$G(X) Q:X="" X F Q:$E(X,1)'=" " S X=$E(X,2,$L(X))
- F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1))
- F Q:X'[" " S X=$P(X," ",1)_" "_$P(X," ",2,229)
- Q X
- MO(X) ; Modifier X = Modifier IEN
- Q $P($G(^DIC(81.3,+($G(X)),0)),"^",1)
- ICPTMOD ;ALB/DEK/KER - CPT MODIFIER APIS ;08/18/2007
- +1 ;;6.0;CPT/HCPCS;**6,12,13,14,19,30,37**;May 19, 1997;Build 44
- +2 ;
- +3 ; Global Variables
- +4 ; ^DIC(81.3
- +5 ; ^TMP("ICPTD" SACC 2.3.2.5.1
- +6 ;
- +7 ; External References
- +8 ; $$DT^XLFDT DBIA 10103
- +9 ;
- +10 ; External References
- +11 ;
- +12 QUIT
- MOD(MOD,MFT,MDT,SRC,DFN) ; returns basic info on CPT MODIFIERs
- +1 ;
- +2 ; Input: MOD Modifier, Internal or External (Required)
- +3 ; MFT Format "I"=IEN "E"=.01 field (Default)
- +4 ; MDT Version Date, FileMan format (default = TODAY)
- +5 ; SRC Source Screen
- +6 ; If 0 or Null, Level I and II only
- +7 ; If >0, Level I, II, and III
- +8 ; DFN Not used
- +9 ;
- +10 ; Output: 10 piece string delimited by the up-arrow (^)
- +11 ;
- +12 ; 1 IEN
- +13 ; 2 Modifier (0;1)
- +14 ; 3 Versioned Name (61, 0;1)
- +15 ; 4 Code (0;3)
- +16 ; 5 Source (0;4)
- +17 ; 6 Effective Date (60, 0;1)
- +18 ; 7 Status (60, 0;2) 0:inactive; 1:active
- +19 ; 8 Inactivation Date (60, 0;1)
- +20 ; 9 Activation Date (60, 0;1)
- +21 ; 10 Message
- +22 ; or
- +23 ; -1^Error
- +24 ;
- +25 NEW DATA,EFF,EFFX,EFFS,STR,MODN,MODST
- +26 IF $GET(MOD)=""
- SET STR="-1^NO MODIFIER SELECTED"
- GOTO MODQ
- +27 IF $GET(MFT)=""
- SET MFT="E"
- +28 IF "E^I"'[MFT
- SET STR="-1^INVALID MODIFIER FORMAT"
- GOTO MODQ
- +29 SET MDT=$SELECT($GET(MDT)="":$$DT^XLFDT,1:$$DTBR^ICPTSUPT(MDT))
- +30 IF MFT="E"
- SET MODN=$ORDER(^DIC(81.3,"B",MOD,0))
- IF $ORDER(^(MODN))
- SET STR="-1^Multiple modifiers w/same name. Select IEN: "
- DO MULT
- GOTO MODQ
- +31 IF MFT="E"
- SET MOD=MODN
- +32 SET MOD=+MOD
- +33 IF 'MOD!'$DATA(^DIC(81.3,MOD))
- SET STR="-1^NO SUCH MODIFIER"
- GOTO MODQ
- +34 SET DATA=$GET(^DIC(81.3,MOD,0))
- +35 SET MODST=$$VSTCM(MOD,MDT)
- +36 IF '$LENGTH(DATA)
- SET STR="-1^NO DATA"
- GOTO MODQ
- +37 SET STR=MOD_"^"_$PIECE(DATA,"^",1,4)
- +38 IF '$GET(SRC)
- IF $PIECE(STR,"^",5)="V"
- QUIT "-1^VA LOCAL MODIFIER SELECTED"
- +39 SET EFF=$$EFF^ICPTSUPT(81.3,MOD,MDT)
- +40 IF EFF<1
- SET $PIECE(EFF,"^",2)=0
- +41 SET STR=STR_"^"_EFF_"^"_$$MSG^ICPTSUPT(MDT)
- +42 IF $LENGTH(MODST)
- SET $PIECE(STR,"^",3)=MODST
- MODQ ; Modifier Quit
- +1 QUIT STR
- +2 ;
- MODD(CODE,OUTARR,DFN,CDT) ; returns CPT description in array
- +1 ;
- +2 ; Input: CODE CPT Modifier, internal or external (Required)
- +3 ; ARY Output Array Name
- +4 ; e.g. "ABC" or "ABC("TEST")"
- +5 ; Default = ^TMP("ICPTD",$J)
- +6 ; DFN Not used
- +7 ; CDT Versioning Date (default = TODAY)
- +8 ; If prior to 1/1/1989, 1/1/1989 will be used
- +9 ; If year only, use first of that year
- +10 ; If month/year only, use first of the month
- +11 ; If later than today, TODAY will be used
- +12 ;
- +13 ; Output: # Number of lines in description
- +14 ;
- +15 ; @ARY(1:n) - Versioned Description (multiple 62)
- +16 ; @ARY(n+1) - blank
- +17 ; @ARY(n+1) - message: CODE TEXT MAY BE INACCURATE
- +18 ; or
- +19 ; -1^Error
- +20 ;
- +21 ; ** User must initialize ^TMP("ICPTD",$J), if used **
- +22 ;
- +23 NEW ARR,END,CTV,I,N
- +24 IF $GET(CODE)=""
- SET N="-1^NO CODE SELECTED"
- GOTO MODDQ
- +25 IF $GET(OUTARR)=""
- SET OUTARR="^TMP(""ICPTD"",$J,"
- +26 IF OUTARR'["("
- SET OUTARR=OUTARR_"("
- +27 IF OUTARR[")"
- SET OUTARR=$PIECE(OUTARR,")")
- +28 SET END=$EXTRACT(OUTARR,$LENGTH(OUTARR))
- IF END'="("&(END'=",")
- SET OUTARR=OUTARR_","
- +29 IF OUTARR="^TMP(""ICPTD"",$J,"
- KILL ^TMP("ICPTD",$JOB)
- +30 SET CODE=$SELECT(CODE?1.N:+CODE,1:$$CODEN(CODE))
- SET I=0
- SET N=0
- +31 IF CODE<1!'$DATA(^DIC(81.3,CODE))
- SET N="-1^NO SUCH CODE"
- GOTO MODDQ
- +32 SET CDT=$SELECT($GET(CDT)="":$$DT^XLFDT,1:$$DTBR^ICPTSUPT(CDT))
- +33 DO VLTCM(+CODE,CDT,.CTV)
- +34 SET (N,I)=0
- FOR
- SET I=$ORDER(CTV(I))
- IF +I=0
- QUIT
- Begin DoDot:1
- +35 SET N=N+1
- SET ARR=OUTARR_N_")"
- SET @ARR=$$TRIM($GET(CTV(I)))
- End DoDot:1
- +36 IF +N>0
- Begin DoDot:1
- +37 SET N=N+1
- SET ARR=OUTARR_N_")"
- SET @ARR=" "
- +38 SET N=N+1
- SET ARR=OUTARR_N_")"
- SET @ARR=$$MSG^ICPTSUPT(CDT,1)
- End DoDot:1
- +39 IF +N'>0
- SET N="-1^VERSIONED DESCRIPTION NOT FOUND FOR MODIFIER "_$PIECE($GET(^DIC(81.3,+CODE,0)),"^",1)
- MODDQ ; Modifier Description Quit
- +1 QUIT N
- +2 ;
- MODA(CODE,VDT,ARY) ; Return an array of Modifiers for a CPT Code
- +1 DO MODA^ICPTMOD2
- QUIT
- MODP(CODE,MOD,MFT,MDT,SRC,DFN) ; Check if modifier can be used with code
- +1 QUIT $$MODP^ICPTMOD2($GET(CODE),$GET(MOD),$GET(MFT),$GET(MDT),$GET(SRC),$GET(DFN))
- MODC(MOD) ; Checks modifier for range including code
- +1 DO MODC^ICPTMOD2($GET(MOD))
- +2 QUIT
- MULT ; Finds Duplicate Modifiers
- +1 DO MULT^ICPTMOD2
- QUIT
- CODEN(CODE) ; Return the IEN of a CPT modifier CODE
- +1 IF $GET(CODE)=""
- QUIT -1
- +2 NEW COD
- SET COD=+$ORDER(^DIC(81.3,"BA",(CODE_" "),0))
- +3 QUIT $SELECT(COD>0:COD,1:-1)
- VSTCM(IEN,VDATE) ; Versioned Short Text (CPT Modifier)
- +1 NEW CPT0,CPTC,CPTI,CPTSTD,CPTSTI,CPTVDT,CPTTXT,CPTTD,CPTTI
- +2 SET CPTI=+($GET(IEN))
- IF +CPTI'>0
- QUIT ""
- IF '$DATA(^DIC(81.3,+CPTI))
- QUIT ""
- +3 SET CPTVDT=$GET(VDATE)
- IF '$LENGTH(CPTVDT)!(+CPTVDT'>0)
- SET CPTVDT=$$DT^XLFDT
- IF $PIECE(CPTVDT,".",1)'?7N
- QUIT ""
- +4 SET CPT0=$GET(^DIC(81.3,+CPTI,0))
- SET CPTC=$PIECE(CPT0,"^",1)
- IF '$LENGTH(CPTC)
- QUIT ""
- +5 SET CPTSTD=0
- SET CPTTD=CPTVDT+.000001
- FOR
- SET CPTTD=$ORDER(^DIC(81.3,"AST",(CPTC_" "),CPTTD),-1)
- IF +CPTTD=0
- QUIT
- IF +CPTSTD>0
- QUIT
- Begin DoDot:1
- +6 SET CPTTI=$ORDER(^DIC(81.3,"AST",(CPTC_" "),CPTTD," "),-1)
- IF CPTTI=CPTI
- SET CPTSTD=CPTTD
- End DoDot:1
- +7 IF +CPTSTD>0
- Begin DoDot:1
- +8 SET CPTSTI=$ORDER(^DIC(81.3,"AST",(CPTC_" "),CPTSTD,+CPTI," "),-1)
- SET CPTTXT=$PIECE($GET(^DIC(81.3,+CPTI,61,+CPTSTI,0)),"^",2)
- End DoDot:1
- IF $LENGTH($GET(CPTTXT))
- QUIT $GET(CPTTXT)
- +9 SET CPTSTD=$ORDER(^DIC(81.3,+CPTI,61,"B",0))
- IF +CPTSTD>0
- Begin DoDot:1
- +10 SET CPTSTI=$ORDER(^DIC(81.3,+CPTI,61,"B",CPTSTD,0))
- SET CPTTXT=$PIECE($GET(^DIC(81.3,+CPTI,61,+CPTSTI,0)),"^",2)
- End DoDot:1
- IF $LENGTH($GET(CPTTXT))
- QUIT $GET(CPTTXT)
- +11 QUIT $$TRIM($PIECE(CPT0,"^",2))
- VLTCM(IEN,VDATE,ARY) ; Versioned Description - Long Text (CPT Modifier)
- +1 NEW CPT0,CPTC,CPTD,CPTI,CPTSTD,CPTSTI,CPTT,CPTVDT,CPTTXT,CPTTD,CPTTI
- +2 SET CPTI=+($GET(IEN))
- IF +CPTI'>0
- QUIT
- IF '$DATA(^DIC(81.3,+CPTI))
- QUIT
- +3 SET CPTVDT=$GET(VDATE)
- IF '$LENGTH(CPTVDT)!(+CPTVDT'>0)
- SET CPTVDT=$$DT^XLFDT
- IF $PIECE(CPTVDT,".",1)'?7N
- QUIT
- +4 SET CPT0=$GET(^DIC(81.3,+CPTI,0))
- SET CPTC=$PIECE(CPT0,"^",1)
- IF '$LENGTH(CPTC)
- QUIT
- +5 SET CPTSTD=0
- SET CPTTD=CPTVDT+.000001
- FOR
- SET CPTTD=$ORDER(^DIC(81.3,"ADS",(CPTC_" "),CPTTD),-1)
- IF +CPTTD=0
- QUIT
- IF +CPTSTD>0
- QUIT
- Begin DoDot:1
- +6 SET CPTTI=$ORDER(^DIC(81.3,"ADS",(CPTC_" "),CPTTD," "),-1)
- IF CPTTI=CPTI
- SET CPTSTD=CPTTD
- End DoDot:1
- +7 IF +CPTSTD>0
- Begin DoDot:1
- +8 SET CPTSTI=$ORDER(^DIC(81.3,"ADS",(CPTC_" "),CPTSTD,+CPTI," "),-1)
- +9 SET (CPTD,CPTT)=0
- FOR
- SET CPTD=$ORDER(^DIC(81.3,+CPTI,62,CPTSTI,1,CPTD))
- IF +CPTD=0
- QUIT
- Begin DoDot:2
- +10 SET CPTT=CPTT+1
- SET ARY(CPTT)=$$TRIM($GET(^DIC(81.3,+CPTI,62,+CPTSTI,1,+CPTD,0)))
- SET ARY(0)=CPTT
- End DoDot:2
- End DoDot:1
- IF +($ORDER(ARY(0)))>0
- QUIT
- +11 SET CPTSTD=$ORDER(^DIC(81.3,+CPTI,62,"B",0))
- IF +CPTSTD>0
- Begin DoDot:1
- +12 SET CPTSTI=$ORDER(^DIC(81.3,+CPTI,62,"B",CPTSTD,0))
- +13 SET (CPTD,CPTT)=0
- FOR
- SET CPTD=$ORDER(^DIC(81.3,+CPTI,62,CPTSTI,1,CPTD))
- IF +CPTD=0
- QUIT
- Begin DoDot:2
- +14 SET CPTT=CPTT+1
- SET ARY(CPTT)=$$TRIM($GET(^DIC(81.3,+CPTI,62,+CPTSTI,1,+CPTD,0)))
- SET ARY(0)=CPTT
- End DoDot:2
- End DoDot:1
- IF +($ORDER(ARY(0)))>0
- QUIT
- +15 KILL ARY
- SET (CPTD,CPTT)=0
- FOR
- SET CPTD=$ORDER(^DIC(81.3,CPTI,"D",CPTD))
- IF +CPTD=0
- QUIT
- Begin DoDot:1
- +16 SET CPTT=CPTT+1
- SET ARY(CPTT)=$$TRIM($GET(^DIC(81.3,CPTI,"D",CPTD,0)))
- SET ARY(0)=CPTT
- End DoDot:1
- +17 QUIT
- TRIM(X) ; Trim Spaces
- +1 SET X=$GET(X)
- IF X=""
- QUIT X
- FOR
- IF $EXTRACT(X,1)'=" "
- QUIT
- SET X=$EXTRACT(X,2,$LENGTH(X))
- +2 FOR
- IF $EXTRACT(X,$LENGTH(X))'=" "
- QUIT
- SET X=$EXTRACT(X,1,($LENGTH(X)-1))
- +3 FOR
- IF X'[" "
- QUIT
- SET X=$PIECE(X," ",1)_" "_$PIECE(X," ",2,229)
- +4 QUIT X
- MO(X) ; Modifier X = Modifier IEN
- +1 QUIT $PIECE($GET(^DIC(81.3,+($GET(X)),0)),"^",1)