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

AMQQTXC.m

Go to the documentation of this file.
  1. AMQQTXC ; IHS/CMI/THL - CODE RANGE TAXONOMY ; 17 Mar 2014 2:25 PM
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. ;-----
  1. K AMQQXSAV
  1. ;I ^DD("VERSION")<22 S DIC=$S($G(DUZ("AG"))="I":"@AMQQTGBL@(",1:AMQQTGBL_"(")
  1. I AMQQTGBL="^ICD9"!(AMQQTGBL="^ICD0"),'$G(AMQQISYS) S AMQQXSAV=X D ICDCS^AMQQTXG I AMQQISYS="" W !!,"You must indicate the coding system (ICD9 or ICD10).",! K AMQQISYS,AMQQXSAV S X=U,Y=-1 S AMQQA=1 S AMQQ("NO DISPLAY")=1 Q
  1. I $D(AMQQXSAV) S X=AMQQXSAV
  1. S DIC=AMQQTGBL_"("
  1. S DIC(0)="EMF"
  1. I $D(AMQQXX),$D(AMQQNECO) S DIC(0)="MF"
  1. I $G(AMQQSQNM)="CAUSE OF INJURY (PRIMARY)" S DIC("S")="I $$CAUSE^APCDAPOV(+Y,AMQQISYS)"
  1. E I AMQQTGBL="^ICD9" S DIC("S")="I '$$CAUSE^APCDAPOV(+Y,AMQQISYS)"
  1. I AMQQTGBL="^ICD9"!(AMQQTGBL="^ICD0") S ICDSYS=AMQQISYS
  1. D ^DIC
  1. K DIC,DR
  1. I Y<0 S AMQQA=1 W:'$D(DUOUT) *7," ?? ",X," => Code does not exist!" S AMQQ("NO DISPLAY")=1 Q
  1. S:AMQQTYP="LOW" AMQQ("LOW")=$P(@AMQQTGBL@(+Y,0),U)_" "
  1. I AMQQTYP="LOW",AMQQONE S AMQQ("HI")=AMQQ("LOW") D ^AMQQTXC1
  1. I AMQQTYP="HI" S AMQQ("HI")=$P(@AMQQTGBL@(+Y,0),U)_" " D L1 I 'AMQQ("NO DISPLAY") D DISPLAY Q:$D(AMQQQUIT) D ^AMQQTXC1
  1. EXIT K %,AMQQXSAV
  1. Q
  1. ;
  1. L1 I $E(AMQQ("HI"))?1N&($E(AMQQ("LOW"))?1N)!($E(AMQQ("LOW"))'?1N&($E(AMQQ("HI"))'?1N))
  1. E W !,*7,"Low and high codes of range must both start either with a letter or a number.",! S AMQQ("NO DISPLAY")=1
  1. I 'AMQQ("NO DISPLAY") I AMQQ("LOW")]AMQQ("HI") W !,*7,"Low code is higher than high code.",! S AMQQ("NO DISPLAY")=1
  1. Q
  1. ;
  1. DISPLAY ;SHOW CODES IN RANGE SELECTED
  1. W:$D(IOF) @IOF
  1. W !!,"Codes in this range =>",!!
  1. ;I AMQQTGBL="^ICD9"!(AMQQTGBL="^ICD0") D ICDL Q
  1. W $P(AMQQ("LOW")," ")
  1. S AMQQDFN=$O(@AMQQTGBL@("BA",AMQQ("LOW"),""))
  1. W ?9,$S(AMQQTGBL="^ICPT":$P(@AMQQTGBL@(AMQQDFN,0),U,2),AMQQTGBL="^ICD9":$P($$ICDDX^ICDEX(AMQQDFN),U,4),1:$P($$ICDOP^ICDEX(AMQQDFN,"","","I"),U,5))
  1. S AMQQ=AMQQ("LOW")
  1. S AMQQCNT=IOSL-5
  1. S AMQQDFN=$O(@AMQQTGBL@("BA",AMQQ,""))
  1. D A1
  1. F S AMQQ=$O(@AMQQTGBL@("BA",AMQQ)) Q:AMQQ=""!(AMQQ]AMQQ("HI")) S AMQQDFN=$O(^(AMQQ,"")) D
  1. .I AMQQTGBL="^ICD9" Q:$P($$ICDDX^ICDEX(AMQQDFN),U,20)'=AMQQISYS
  1. .I AMQQTGBL="^ICD0" Q:$P($$ICDOP^ICDEX(AMQQDFN,"","","I"),U,15)'=AMQQISYS
  1. .I $D(AMQQTJMP) W "." S ^UTILITY("AMQQ TAX",$J,AMQQURGN,AMQQDFN)="""" Q
  1. .W !,$P(AMQQ," "),?9,$S(AMQQTGBL="^ICPT":$P(@AMQQTGBL@(AMQQDFN,0),U,2),AMQQTGBL="^ICD9":$P($$ICDDX^ICDEX(AMQQDFN),U,4),AMQQTGBL="^ICD0":$P($$ICDOP^ICDEX(AMQQDFN,"","","I"),U,5),1:$P(@AMQQTGBL@(AMQQDFN,0),U,3)) D A1 I $D(AMQQQUIT) Q
  1. K AMQQTJMP
  1. I $S('$D(AMQQR):1,AMQQR'=U:1,1:0) R !!,"Press return to continue",AMQQR:DTIME E S AMQQR=U
  1. I AMQQR=U Q
  1. W !
  1. Q
  1. ;
  1. A1 S AMQQCNT=AMQQCNT-1
  1. I '$D(AMQQTXEX) S ^UTILITY("AMQQ TAX",$J,AMQQURGN,AMQQDFN)=""
  1. E K ^UTILITY("AMQQ TAX",$J,AMQQURGN,AMQQDFN)
  1. I AMQQCNT Q
  1. A11 S AMQQCNT=IOSL-4
  1. R !,"<>",AMQQR:DTIME E S AMQQR=U
  1. I AMQQR=U S AMQQTJMP="" W !,"OK" Q
  1. I AMQQR["?" W " Enter ""^"" to stop display, return to continue" G A11
  1. Q
  1. ;
  1. RANGES ; ENTRY POINT FROM AMQQTXG1 ; DISPLAY TABLE OF ALL RANGES
  1. I $D(AMQQXX) Q
  1. W:$D(IOF) @IOF
  1. I '$D(AMQQNECO) W !!,"Code Range(s) Selected So Far =>",!
  1. S (AMQQ("NUM"),AMQQ)=0
  1. F S AMQQ=$O(@AMQQHILO@(AMQQ)) Q:AMQQ="" S AMQQ("NUM")=AMQQ("NUM")+1 W !,AMQQ("NUM"),") ",AMQQ,$S(AMQQ'=$P(@AMQQHILO@(AMQQ),U,1):"- "_$P(@AMQQHILO@(AMQQ),U,1),1:"") W:$P(@AMQQHILO@(AMQQ),U,3) $P(^ICDS($P(@AMQQHILO@(AMQQ),U,3),0),U,1)
  1. I '$D(AMQQ("BANG")) W !
  1. Q
  1. ;
  1. SHOW ; ENTRY POINT FROM AMQQTXG1 ; ALLOW USER TO SELECT FROM RANGES TO DISPLAY CODES
  1. D RANGES
  1. I AMQQ("NUM")=1 S X=1 G AA
  1. A W !,"Enter an Item Number from the table above to display code(s): "
  1. R X:DTIME E S X=U
  1. I X?1."?" W !!,"Enter a number between 1 and ",AMQQ("NUM"),! G A
  1. I X=U Q
  1. I X,X'>AMQQ("NUM"),X?1N
  1. E W " ??",*7 G A
  1. AA S AMQQ("N")=X
  1. F AMQQI=1:AMQQ("N") S AMQQ=$O(@AMQQHILO@(AMQQ)) I AMQQI=AMQQ("N") S AMQQ("LOW")=AMQQ,AMQQ("HI")=@AMQQHILO@(AMQQ) D DISPLAY Q
  1. S AMQQ("BANG")=""
  1. D RANGES
  1. K AMQQ("BANG")
  1. Q
  1. ;
  1. ASK2 ;ASKS USER IF WANTS TO DISPLAY/PRINT RESULTS TO THIS POINT
  1. I '$D(@AMQQHILO) W !!,"A code range has yet to be selected. A display cannot be generated.",! Q
  1. W !!,"Do you want to display the codes from a range you have already selected"
  1. S %=1
  1. D YN^DICN
  1. I %=1 D SHOW
  1. I %=2!(%=-1) Q
  1. I %=0 W !!,"A table of ranges you have selected is displayed above. You may ask for the",!,"codes in one of the ranges to be displayed.",! G ASK2
  1. Q
  1. ;