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

APCLCODE.m

Go to the documentation of this file.
  1. APCLCODE ; IHS/CMI/LAB - INTERFACE TO SELECT ICD CODES ;
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. ;
  1. ;cmi/anch/maw 9/10/2007 code set versioning in DISPLAY
  1. ;
  1. D INIT
  1. BEGIN D ASK1
  1. I Y="^" S APCLSTP=1 G X
  1. I $D(APCLTBLE) D CHECK I Y'=1 G @$S(Y=0:"BEGIN",1:"X")
  1. X D EOJ
  1. Q
  1. ;
  1. INIT ;
  1. S APCL("NO DISPLAY")=0
  1. I $D(APCLX) D I 1
  1. . I $D(APCLTBLE) S APCL("MODIFY")=1 D RANGES I 1
  1. . E S APCL("ENTER")=1
  1. E S APCL("NOT TAX")=""
  1. Q
  1. ;
  1. ASK1 ;
  1. S APCLA=0
  1. K APCL("LOW"),APCL("HI")
  1. S DIR("A")=$S('$D(APCLTBLE):"ENTER DX",1:"ENTER ANOTHER DX") D SETDIR^APCLCOD0,^DIR K DIR
  1. I "^"[Y G X1
  1. D PROCESS
  1. I $D(APCLTBLE),'APCL("NO DISPLAY") D RANGES
  1. S APCL("NO DISPLAY")=0
  1. G ASK1
  1. X1 Q
  1. ;
  1. PROCESS ;EVALUATE USER RESPONSE
  1. S (APCLSUB,APCLONE)=0 ;APCLSUB=0 => NO DELETE OF CODE(S),APCLONE=0 => RANGE OF CODES ENTERED
  1. I $E(X,1,2)="-[" W $C(7)," ?? Not allowed" S APCL("NO DISPLAY")=1 G X2
  1. I $E(X)="[" D TAX G X2
  1. I X'["-" S APCLTYP="LOW",APCLONE=1 D LOOK^APCLCOD0 G X2
  1. I $E(X)="-",'$D(APCLTBLE) W $C(7)," ?? No previous codes entered!" G X2
  1. I $L(X,"-")>3 W $C(7)," ??" S APCLA=1 S APCL("NO DISPLAY")=1 G X2
  1. I $L(X,"-")=3,$E(X,$L(X))="-" W $C(7)," ??" S APCLA=1 S APCL("NO DISPLAY")=1 G X2
  1. I $L(X,"-")=3,$P(X,"-")]"" W $C(7)," ??" S APCLA=1 S APCL("NO DISPLAY")=1 G X2
  1. I $E(X)="-" S APCLSUB=1 D I 1
  1. . S APCLSAVE("X")=X
  1. . I $L(X,"-")=3 S X=$P(APCLSAVE("X"),"-",2),APCLTYP="LOW" D LOOK^APCLCOD0 I 'APCLA S X=$P(APCLSAVE("X"),"-",3),APCLTYP="HI" W ! D LOOK^APCLCOD0 Q
  1. . I $L(APCLSAVE("X"),"-")=2 S X=$E(X,2,99),APCLTYP="LOW",APCLONE=1 D LOOK^APCLCOD0
  1. E S APCLSAVE("X")=X S APCLTYP="LOW",X=$P(APCLSAVE("X"),"-") D LOOK^APCLCOD0 I 'APCLA S APCLTYP="HI",X=$P(APCLSAVE("X"),"-",2) W ! D LOOK^APCLCOD0
  1. X2 Q
  1. ;
  1. DISPLAY ;EP - SHOW CODES IN RANGE SELECTED
  1. W:$D(IOF) @IOF
  1. ;W !!,"ICD codes in this range =>",!! W $P(APCL("LOW")," ") S APCLDFN=$O(^ICD9("BA",APCL("LOW"),"")) W ?9,$P(^ICD9(APCLDFN,0),U,3) ;cmi/anch/maw 9/10/2007 orig line
  1. W !!,"ICD codes in this range =>",!! W $P(APCL("LOW")," ") S APCLDFN=$O(^ICD9("BA",APCL("LOW"),"")) W ?9,$P($$ICDDX^ICDEX(APCLDFN),U,4) ;cmi/anch/maw 9/10/2007 csv
  1. ;S APCL=APCL("LOW"),APCLCNT=IOSL-2 F S APCL=$O(^ICD9("BA",APCL)) Q:APCL]APCL("HI") S APCLDFN=$O(^(APCL,"")) W !,$P(APCL," "),?9,$P(^ICD9(APCLDFN,0),U,3) S APCLCNT=APCLCNT-1 I APCLCNT=0 S APCLCNT=IOSL-2 D I APCLR=U Q ;cmi/anch/maw orig line
  1. S APCL=APCL("LOW"),APCLCNT=IOSL-2 F S APCL=$O(^ICD9("BA",APCL)) Q:APCL]APCL("HI") S APCLDFN=$O(^(APCL,"")) W !,$P(APCL," "),?9,$P($$ICDDX^ICDEX(APCLDFN),U,4) S APCLCNT=APCLCNT-1 I APCLCNT=0 S APCLCNT=IOSL-2 D I APCLR=U Q ;cmi/maw csv
  1. A1 . R !,"<>",APCLR:DTIME W:APCLR["?" " Enter ""^"" to stop display, return to continue" G:APCLR["?" A1
  1. I $S('$D(APCLR):1,APCLR'=U:1,1:0) R !!,"Press return to continue",APCLR:DTIME
  1. W !
  1. K APCLR Q
  1. ;
  1. RANGES ;DISPLAY TABLE OF ALL RANGES
  1. W:$D(IOF) @IOF
  1. W !!,"ICD Code Range(s) Selected So Far =>",!
  1. S (APCL("NUM"),APCL)=0 F S APCL=$O(APCLTBLE(APCL)) Q:APCL="" S APCL("NUM")=APCL("NUM")+1 W !,APCL("NUM"),") ",APCL,$S(APCL'=APCLTBLE(APCL):"- "_APCLTBLE(APCL),1:"")
  1. I '$D(APCL("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 APCL("N"):300 W:"^"[APCL("N") ! Q:"^"[APCL("N") I APCL("N")'?1N!(APCL("N")>APCL("NUM")) W " ??",$C(7) G A
  1. F APCLI=1:1:APCL("N") S APCL=$O(APCLTBLE(APCL)) I APCLI=APCL("N") S APCL("LOW")=APCL,APCL("HI")=APCLTBLE(APCL) D DISPLAY Q
  1. S APCL("BANG")="" D RANGES K APCL("BANG")
  1. Q
  1. ;
  1. TAX ;PLACE CODES FROM SELECTED TAXONOMY IN APCLTBLE
  1. S APCL("S")="I Y'=APCLX",APCL("S")=$S($D(APCLX):APCL("S")_",$O(^ATXAX(Y,21,0))",1:"I $O(^(21,0))"),DIC("A")="TAXONOMY FROM WHICH TO SELECT CODES: ",APCL("S")=APCL("S")_$S('$D(APCLX):"",1:",$P(^ATXAX(APCLX,0),U,15)=$P(^ATXAX(Y,0),U,15)")
  1. I $E(X,2)="?" S X="?",DIC="^ATXAX(",DIC(0)="EM",DIC("S")=APCL("S") D ^DIC S DIC(0)="AEMQ",DIC("S")=APCL("S"),DIC="^ATXAX(" D ^DIC K DIC I 1
  1. E S X=$E(X,2,99),DIC(0)="EMQ",DIC("S")=APCL("S"),DIC="^ATXAX(" D ^DIC K DIC
  1. I Y=-1 G X3
  1. S APCL("CODE")=0 F S APCL("CODE")=$O(^ATXAX(+Y,21,"AA",APCL("CODE"))) Q:APCL("CODE")="" S APCLTBLE(APCL("CODE"))=$O(^(APCL("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 APCLSUB,APCLTYP,APCLDFN,DIR,APCLSAVE,APCLA,APCLCNT,APCL,APCLR,APCLI,APCLONE,APCLFLG,APCLSTP
  1. Q
  1. ;