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

ATXTAXN.m

Go to the documentation of this file.
ATXTAXN ; IHS/CMI/LAB - CODE RANGES IN TABLE ;
 ;;5.1;TAXONOMY;**11**;FEB 04, 1997;Build 48
 ;
 I 'ATXSUB D ADD I 1
 E  D DEL
 D EOJ
 Q
 ;
ADD ; SECTION FOR ADDING CODES TO TABLE
 I '$D(ATXTBLE) S ATXTBLE(ATX("LOW"))=ATX("HI") G X1
 S ATXDONE=0
 S ATXVAL="" F  S ATXVAL=$O(ATXTBLE(ATXVAL)) Q:ATXVAL=""   D GETCASE,ADDPROC Q:ATXDONE
 D:'ATXDONE SETRANGE
 K ATXDONE,ATXVAL,ATXCASE
X1 Q
 ;
ADDPROC ; CASE SPECIFIC ADD PROCESSING
 G @("ADD"_ATXCASE)
ADD2 ;;
ADD3 ;;
ADD4 ;;
 S ATXTBLE(ATX("LOW"))=ATXTBLE(ATXVAL)
 K ATXTBLE(ATXVAL)
ADD6 ;;
ADD7 ;;
ADD9 ;;
ADD10 ;;
 S ATXDONE=1
 Q
ADD11 ;;
ADD12 ;;
 S ATX("LOW")=ATXVAL
ADD5 ;;
ADD8 ;;
 K ATXTBLE(ATXVAL)
 Q
ADD1 ;;
 I $O(^ICPT("BA",ATX("HI")))=ATXVAL,$E(ATXVAL)=$E(ATX("HI"))!(ATXVAL&ATX("HI")) S ATXTBLE(ATX("LOW"))=ATXTBLE(ATXVAL) K ATXTBLE(ATXVAL) S ATXDONE=1
 Q
ADD13 ;;
 I $O(^ICPT("BA",ATXTBLE(ATXVAL)))=ATX("LOW"),$E(ATXVAL)=$E(ATX("LOW"))!(ATXVAL&ATX("LOW")) S ATX("LOW")=ATXVAL K ATXTBLE(ATXVAL)
 ; continue
 Q
 ;
SETRANGE ;
 ;;
SET1 ;;
SET5 ;;
SET8 ;;
SET11 ;;
SET12 ;;
SET13 ;;
 S ATXTBLE(ATX("LOW"))=ATX("HI")
 Q
 ;
DEL ; SECTION FOR DELETING CODES FROM TABLE
 I '$D(ATXTBLE) G X2
 S ATXDONE=0
 S ATXVAL="" F  S ATXVAL=$O(ATXTBLE(ATXVAL)) Q:ATXVAL=""  D GETCASE,DELPROC Q:ATXDONE
X2 Q
 ;
DELPROC ;CASE SPECIFIC DEL PROCESSING
 G @("DEL"_ATXCASE)
DEL2 ;;
 I ATX("HI")=ATXTBLE(ATXVAL) K ATXTBLE(ATXVAL)
 E  S ATXTBLE($O(^ICPT("BA",ATX("HI"))))=ATXTBLE(ATXVAL) K ATXTBLE(ATXVAL)
 S ATXDONE=1
 Q
 ;
DEL3 ;;
DEL6 ;;
 S ATXTBLE($O(^ICPT("BA",ATX("HI"))))=ATXTBLE(ATXVAL) K ATXTBLE(ATXVAL)
 S ATXDONE=1
 Q
 ;
DEL4 ;;
DEL5 ;;
DEL7 ;;
DEL8 ;;
 K ATXTBLE(ATXVAL)
 I ATXCASE'=8,ATXCASE'=5 S ATXDONE=1
 Q
 ;
DEL10 ;;
DEL11 ;;
DEL12 ;;
 D @$S($E(ATXTBLE(ATXVAL))?1N:"NUMBER",1:"LETTER")
 S ATXTBLE(ATXVAL)=ATX("NEWHI")
 I ATXCASE=10 S ATXDONE=1
 Q
 ;
DEL9 ;;
 D @$S($E(ATXTBLE(ATXVAL))?1N:"NUMBER",1:"LETTER")
 S ATXTBLE($O(^ICPT("BA",ATX("HI"))))=ATXTBLE(ATXVAL)
 S ATXTBLE(ATXVAL)=ATX("NEWHI")
 S ATXDONE=1
 Q
 ;
DEL1 ;;
DEL13 ;;
 Q
 ;
GETCASE ; SUBROUTINE TO DETERMINE ATXCASE # FROM INPUT CODE RANGE
 S ATX("TLOW")=ATXVAL,ATX("THI")=ATXTBLE(ATXVAL)
 D CASEA:ATX("TLOW")]ATX("LOW"),CASEB:ATX("LOW")=ATX("TLOW"),CASEC:ATX("LOW")]ATX("TLOW")
 K ATX("TLOW"),ATX("THI")
 Q
 ;
CASEA ;
 I ATX("HI")]ATX("TLOW") S ATXCASE=$S(ATX("THI")]ATX("HI"):3,ATX("HI")=ATX("THI"):4,1:5)
 E  S ATXCASE=$S(ATX("TLOW")]ATX("HI"):1,1:2)
 Q
 ;
CASEB ;
 S ATXCASE=$S(ATX("THI")]ATX("HI"):6,ATX("HI")=ATX("THI"):7,1:8)
 Q
 ;
CASEC ;
 I ATX("THI")]ATX("LOW") S ATXCASE=$S(ATX("THI")]ATX("HI"):9,ATX("HI")=ATX("THI"):10,1:11)
 E  S ATXCASE=$S(ATX("LOW")=ATX("THI"):12,1:13)
 Q
 ;
NUMBER ;
 S ATX("CODE")=ATX("LOW")-5 F  Q:ATX("LOW")]$O(^ICPT("BA",ATX("CODE")_" "))  S ATX("CODE")=ATX("CODE")-5
 S ATX("CODE")=$O(^ICPT("BA",ATX("CODE")_" ")) F  S ATX("NEWHI")=ATX("CODE"),ATX("CODE")=$O(^ICPT("BA",ATX("CODE"))) Q:ATX("CODE")=ATX("LOW")
 Q
 ;
LETTER ;
 S ATX("LET")=$E(ATX("LOW"))_" " F  S ATX("NEWHI")=$S($L(ATX("LET"))>2:ATX("LET"),1:ATX("LOW")),ATX("LET")=$O(^ICPT("BA",ATX("LET"))) Q:ATX("LET")=ATX("LOW")
 Q
EOJ ;
 K ATXCASE,ATXDONE,ATXNEXT,ATXONE,ATXVAL
 Q
 ;