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

ATXTAXM.m

Go to the documentation of this file.
  1. ATXTAXM ; IHS/CMI/LAB - INTERFACE TO SELECT ICD CODES ;
  1. ;;5.1;TAXONOMY;**11**;FEB 04, 1997;Build 48
  1. ;
  1. ;cmi/anch/maw 9/12/2007 code set versioning in DISPLAY
  1. ;
  1. D INIT
  1. BEGIN D ASK1
  1. I Y="^" S ATXSTP=1 G X
  1. I $D(ATXTBLE) D CHECK I Y'=1 G @$S(Y=0:"BEGIN",1:"X")
  1. X D EOJ
  1. Q
  1. ;
  1. INIT ;
  1. S ATX("NO DISPLAY")=0
  1. I $D(ATXX) D I 1
  1. . I $D(ATXTBLE) S ATX("MODIFY")=1 D RANGES I 1
  1. . E S ATX("ENTER")=1
  1. E S ATX("NOT TAX")=""
  1. Q
  1. ;
  1. ASK1 ;
  1. S ATXA=0
  1. K ATX("LOW"),ATX("HI")
  1. S DIR("A")=$S('$D(ATXTBLE):"ENTER CPT",1:"ENTER ANOTHER CPT") D SETDIR^ATXTAXO,^DIR K DIR
  1. I "^"[Y G X1
  1. D PROCESS
  1. I $D(ATXTBLE),'ATX("NO DISPLAY") D RANGES
  1. S ATX("NO DISPLAY")=0
  1. G ASK1
  1. X1 Q
  1. ;
  1. PROCESS ;EVALUATE USER RESPONSE
  1. S (ATXSUB,ATXONE)=0 ;ATXSUB=0 => NO DELETE OF CODE(S),ATXONE=0 => RANGE OF CODES ENTERED
  1. I $E(X,1,2)="-[" W $C(7)," ?? Not allowed" S ATX("NO DISPLAY")=1 G X2
  1. I $E(X)="[" D TAX G X2
  1. I X'["-" S ATXTYP="LOW",ATXONE=1 D LOOK^ATXTAXO G X2
  1. I $E(X)="-",'$D(ATXTBLE) W $C(7)," ?? No previous codes entered!" G X2
  1. I $L(X,"-")>3 W $C(7)," ??" S ATXA=1 S ATX("NO DISPLAY")=1 G X2
  1. I $L(X,"-")=3,$E(X,$L(X))="-" W $C(7)," ??" S ATXA=1 S ATX("NO DISPLAY")=1 G X2
  1. I $L(X,"-")=3,$P(X,"-")]"" W $C(7)," ??" S ATXA=1 S ATX("NO DISPLAY")=1 G X2
  1. I $E(X)="-" S ATXSUB=1 D I 1
  1. . S ATXSAVE("X")=X
  1. . I $L(X,"-")=3 S X=$P(ATXSAVE("X"),"-",2),ATXTYP="LOW" D LOOK^ATXTAXO I 'ATXA S X=$P(ATXSAVE("X"),"-",3),ATXTYP="HI" W ! D LOOK^ATXTAXO Q
  1. . I $L(ATXSAVE("X"),"-")=2 S X=$E(X,2,99),ATXTYP="LOW",ATXONE=1 D LOOK^ATXTAXO
  1. E S ATXSAVE("X")=X S ATXTYP="LOW",X=$P(ATXSAVE("X"),"-") D LOOK^ATXTAXO I 'ATXA S ATXTYP="HI",X=$P(ATXSAVE("X"),"-",2) W ! D LOOK^ATXTAXO
  1. X2 Q
  1. ;
  1. DISPLAY ;EP - SHOW CODES IN RANGE SELECTED
  1. W:$D(IOF) @IOF
  1. ;W !!,"CPT codes in this range =>",!! W $P(ATX("LOW")," ") S ATXDFN=$O(^ICPT("BA",ATX("LOW"),"")) W ?9,$P(^ICPT(ATXDFN,0),U,2) ;cmi/anch/maw 9/12/2007 orig line
  1. W !!,"CPT codes in this range =>",!! W $P(ATX("LOW")," ") S ATXDFN=$O(^ICPT("BA",ATX("LOW"),"")) W ?9,$P($$CPT^ICPTCOD(ATXDFN),U,3) ;cmi/anch/maw 9/12/2007 csv
  1. ;S ATX=ATX("LOW"),ATXCNT=IOSL-2 F S ATX=$O(^ICPT("BA",ATX)) Q:ATX]ATX("HI") S ATXDFN=$O(^(ATX,"")) W !,$P(ATX," "),?9,$P(^ICPT(ATXDFN,0),U,2) S ATXCNT=ATXCNT-1 I ATXCNT=0 S ATXCNT=IOSL-2 D I ATXR=U Q ;cmi/maw orig line
  1. S ATX=ATX("LOW"),ATXCNT=IOSL-2 F S ATX=$O(^ICPT("BA",ATX)) Q:ATX]ATX("HI") S ATXDFN=$O(^(ATX,"")) W !,$P(ATX," "),?9,$P($$CPT^ICPTCOD(ATXDFN),U,3) S ATXCNT=ATXCNT-1 I ATXCNT=0 S ATXCNT=IOSL-2 D I ATXR=U Q ;cmi/maw csv
  1. A1 . R !,"<>",ATXR:DTIME W:ATXR["?" " Enter ""^"" to stop display, return to continue" G:ATXR["?" A1
  1. I $S('$D(ATXR):1,ATXR'=U:1,1:0) R !!,"Press return to continue",ATXR:DTIME
  1. W !
  1. K ATXR Q
  1. ;
  1. RANGES ;DISPLAY TABLE OF ALL RANGES
  1. W:$D(IOF) @IOF
  1. W !!,"CPT Code Range(s) Selected So Far =>",!
  1. S (ATX("NUM"),ATX)=0 F S ATX=$O(ATXTBLE(ATX)) Q:ATX="" S ATX("NUM")=ATX("NUM")+1 W !,ATX("NUM"),") ",ATX,$S(ATX'=ATXTBLE(ATX):"- "_ATXTBLE(ATX),1:"")
  1. I '$D(ATX("BANG")) W !
  1. Q
  1. ;
  1. SHOW ; ENTRY POINT - ALLOW USER TO SELECT FROM RANGES TO DISPLAY CODES
  1. D RANGES
  1. A W !,"Enter an Item Number from the table above to display code(s): " R ATX("N"):300 W:"^"[ATX("N") ! Q:"^"[ATX("N") I ATX("N")'?1N!(ATX("N")>ATX("NUM")) W " ??",$C(7) G A
  1. F ATXI=1:1:ATX("N") S ATX=$O(ATXTBLE(ATX)) I ATXI=ATX("N") S ATX("LOW")=ATX,ATX("HI")=ATXTBLE(ATX) D DISPLAY Q
  1. S ATX("BANG")="" D RANGES K ATX("BANG")
  1. Q
  1. ;
  1. TAX ;PLACE CODES FROM SELECTED TAXONOMY IN ATXTBLE
  1. S ATX("S")="I Y'=ATXX",ATX("S")=$S($D(ATXX):ATX("S")_",$O(^ATXAX(Y,21,0))",1:"I $O(^(21,0))"),DIC("A")="TAXONOMY FROM WHICH TO SELECT CODES: ",ATX("S")=ATX("S")_$S('$D(ATXX):"",1:",$P(^ATXAX(ATXX,0),U,15)=$P(^ATXAX(Y,0),U,15)")
  1. I $E(X,2)="?" S X="?",DIC="^ATXAX(",DIC(0)="EM",DIC("S")=ATX("S") D ^DIC S DIC(0)="AEMQ",DIC("S")=ATX("S"),DIC="^ATXAX(" D ^DIC K DIC I 1
  1. E S X=$E(X,2,99),DIC(0)="EMQ",DIC("S")=ATX("S"),DIC="^ATXAX(" D ^DIC K DIC
  1. I Y=-1 G X3
  1. S ATX("CODE")=0 F S ATX("CODE")=$O(^ATXAX(+Y,21,"AA",ATX("CODE"))) Q:ATX("CODE")="" S ATXTBLE(ATX("CODE"))=$O(^(ATX("CODE"),""))
  1. X3 W ! Q
  1. ;
  1. CHECK ;ASKS USER IF SATISFIED WITH ENTERED RANGES
  1. W ! S DIR(0)="Y",DIR("B")="Y",DIR("A")="Is everything okay" D ^DIR K DIR
  1. W !
  1. Q
  1. ;
  1. EOJ ;
  1. K ATXSUB,ATXTYP,ATXDFN,DIR,ATXSAVE,ATXA,ATXCNT,ATX,ATXR,ATXI,ATXONE,ATXFLG,ATXSTP
  1. Q
  1. ;