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

APCHTAXN.m

Go to the documentation of this file.
APCHTAXN ; IHS/CMI/LAB - CODE RANGES IN TABLE ;
 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
 ;
 I 'APCHSUB D ADD I 1
 E  D DEL
 D EOJ
 Q
 ;
ADD ; SECTION FOR ADDING CODES TO TABLE
 I '$D(APCHTBLE) S APCHTBLE(APCH("LOW"))=APCH("HI") G X1
 S APCHDONE=0
 S APCHVAL="" F  S APCHVAL=$O(APCHTBLE(APCHVAL)) Q:APCHVAL=""   D GETCASE,ADDPROC Q:APCHDONE
 D:'APCHDONE SETRANGE
 K APCHDONE,APCHVAL,APCHCASE
X1 Q
 ;
ADDPROC ; CASE SPECIFIC ADD PROCESSING
 G @("ADD"_APCHCASE)
ADD2 ;;
ADD3 ;;
ADD4 ;;
 S APCHTBLE(APCH("LOW"))=APCHTBLE(APCHVAL)
 K APCHTBLE(APCHVAL)
ADD6 ;;
ADD7 ;;
ADD9 ;;
ADD10 ;;
 S APCHDONE=1
 Q
ADD11 ;;
ADD12 ;;
 S APCH("LOW")=APCHVAL
ADD5 ;;
ADD8 ;;
 K APCHTBLE(APCHVAL)
 Q
ADD1 ;;
 I $O(^ICPT("BA",APCH("HI")))=APCHVAL,$E(APCHVAL)=$E(APCH("HI"))!(APCHVAL&APCH("HI")) S APCHTBLE(APCH("LOW"))=APCHTBLE(APCHVAL) K APCHTBLE(APCHVAL) S APCHDONE=1
 Q
ADD13 ;;
 I $O(^ICPT("BA",APCHTBLE(APCHVAL)))=APCH("LOW"),$E(APCHVAL)=$E(APCH("LOW"))!(APCHVAL&APCH("LOW")) S APCH("LOW")=APCHVAL K APCHTBLE(APCHVAL)
 ; continue
 Q
 ;
SETRANGE ;
 ;;
SET1 ;;
SET5 ;;
SET8 ;;
SET11 ;;
SET12 ;;
SET13 ;;
 S APCHTBLE(APCH("LOW"))=APCH("HI")
 Q
 ;
DEL ; SECTION FOR DELETING CODES FROM TABLE
 I '$D(APCHTBLE) G X2
 S APCHDONE=0
 S APCHVAL="" F  S APCHVAL=$O(APCHTBLE(APCHVAL)) Q:APCHVAL=""  D GETCASE,DELPROC Q:APCHDONE
X2 Q
 ;
DELPROC ;CASE SPECIFIC DEL PROCESSING
 G @("DEL"_APCHCASE)
DEL2 ;;
 I APCH("HI")=APCHTBLE(APCHVAL) K APCHTBLE(APCHVAL)
 E  S APCHTBLE($O(^ICPT("BA",APCH("HI"))))=APCHTBLE(APCHVAL) K APCHTBLE(APCHVAL)
 S APCHDONE=1
 Q
 ;
DEL3 ;;
DEL6 ;;
 S APCHTBLE($O(^ICPT("BA",APCH("HI"))))=APCHTBLE(APCHVAL) K APCHTBLE(APCHVAL)
 S APCHDONE=1
 Q
 ;
DEL4 ;;
DEL5 ;;
DEL7 ;;
DEL8 ;;
 K APCHTBLE(APCHVAL)
 I APCHCASE'=8,APCHCASE'=5 S APCHDONE=1
 Q
 ;
DEL10 ;;
DEL11 ;;
DEL12 ;;
 D @$S($E(APCHTBLE(APCHVAL))?1N:"NUMBER",1:"LETTER")
 S APCHTBLE(APCHVAL)=APCH("NEWHI")
 I APCHCASE=10 S APCHDONE=1
 Q
 ;
DEL9 ;;
 D @$S($E(APCHTBLE(APCHVAL))?1N:"NUMBER",1:"LETTER")
 S APCHTBLE($O(^ICPT("BA",APCH("HI"))))=APCHTBLE(APCHVAL)
 S APCHTBLE(APCHVAL)=APCH("NEWHI")
 S APCHDONE=1
 Q
 ;
DEL1 ;;
DEL13 ;;
 Q
 ;
GETCASE ; SUBROUTINE TO DETERMINE APCHCASE # FROM INPUT CODE RANGE
 S APCH("TLOW")=APCHVAL,APCH("THI")=APCHTBLE(APCHVAL)
 D CASEA:APCH("TLOW")]APCH("LOW"),CASEB:APCH("LOW")=APCH("TLOW"),CASEC:APCH("LOW")]APCH("TLOW")
 K APCH("TLOW"),APCH("THI")
 Q
 ;
CASEA ;
 I APCH("HI")]APCH("TLOW") S APCHCASE=$S(APCH("THI")]APCH("HI"):3,APCH("HI")=APCH("THI"):4,1:5)
 E  S APCHCASE=$S(APCH("TLOW")]APCH("HI"):1,1:2)
 Q
 ;
CASEB ;
 S APCHCASE=$S(APCH("THI")]APCH("HI"):6,APCH("HI")=APCH("THI"):7,1:8)
 Q
 ;
CASEC ;
 I APCH("THI")]APCH("LOW") S APCHCASE=$S(APCH("THI")]APCH("HI"):9,APCH("HI")=APCH("THI"):10,1:11)
 E  S APCHCASE=$S(APCH("LOW")=APCH("THI"):12,1:13)
 Q
 ;
NUMBER ;
 S APCH("CODE")=APCH("LOW")-5 F  Q:APCH("LOW")]$O(^ICPT("BA",APCH("CODE")_" "))  S APCH("CODE")=APCH("CODE")-5
 S APCH("CODE")=$O(^ICPT("BA",APCH("CODE")_" ")) F  S APCH("NEWHI")=APCH("CODE"),APCH("CODE")=$O(^ICPT("BA",APCH("CODE"))) Q:APCH("CODE")=APCH("LOW")
 Q
 ;
LETTER ;
 S APCH("LET")=$E(APCH("LOW"))_" " F  S APCH("NEWHI")=$S($L(APCH("LET"))>2:APCH("LET"),1:APCH("LOW")),APCH("LET")=$O(^ICPT("BA",APCH("LET"))) Q:APCH("LET")=APCH("LOW")
 Q
EOJ ;
 K APCHCASE,APCHDONE,APCHNEXT,APCHONE,APCHVAL
 Q
 ;