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

APCDFQA5.m

Go to the documentation of this file.
  1. APCDFQA5 ; IHS/CMI/LAB - MAINTAIN CODE RANGES IN TABLE ; 24 Jul 2012 5:04 PM
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. ;
  1. I 'APCDSUB D ADD I 1
  1. E D DEL
  1. D EOJ
  1. Q
  1. ;
  1. ADD ; SECTION FOR ADDING CODES TO TABLE
  1. I '$D(APCDTABL) S APCDTABL(APCD("LOW"))=APCD("HI")_U_APCDSYS G X1
  1. S APCDDONE=0
  1. S APCDVAL="" F S APCDVAL=$O(APCDTABL(APCDVAL)) Q:APCDVAL="" I $P(APCDTABL(APCDVAL),U,2)=APCDSYS D GETCASE,ADDPROC Q:APCDDONE
  1. D:'APCDDONE SETRANGE
  1. K APCDDONE,APCDVAL,APCDCASE
  1. X1 Q
  1. ;
  1. ADDPROC ; CASE SPECIFIC ADD PROCESSING
  1. G @("ADD"_APCDCASE)
  1. ADD2 ;;
  1. ADD3 ;;
  1. ADD4 ;;
  1. S APCDTABL(APCD("LOW"))=APCDTABL(APCDVAL)
  1. K APCDTABL(APCDVAL)
  1. ADD6 ;;
  1. ADD7 ;;
  1. ADD9 ;;
  1. ADD10 ;;
  1. S APCDDONE=1
  1. Q
  1. ADD11 ;;
  1. ADD12 ;;
  1. S APCD("LOW")=APCDVAL
  1. ADD5 ;;
  1. ADD8 ;;
  1. K APCDTABL(APCDVAL)
  1. Q
  1. ADD1 ;;
  1. I $O(^ICD9("BA",APCD("HI")))=APCDVAL,$E(APCDVAL)=$E(APCD("HI"))!(APCDVAL&APCD("HI")) S APCDTABL(APCD("LOW"))=APCDTABL(APCDVAL) K APCDTABL(APCDVAL) S APCDDONE=1
  1. Q
  1. ADD13 ;;
  1. I $O(^ICD9("BA",APCDTABL(APCDVAL)))=APCD("LOW"),$E(APCDVAL)=$E(APCD("LOW"))!(APCDVAL&APCD("LOW")) S APCD("LOW")=APCDVAL K APCDTABL(APCDVAL)
  1. ; continue
  1. Q
  1. ;
  1. SETRANGE ;
  1. ;;
  1. SET1 ;;
  1. SET5 ;;
  1. SET8 ;;
  1. SET11 ;;
  1. SET12 ;;
  1. SET13 ;;
  1. S APCDTABL(APCD("LOW"))=APCD("HI")_U_APCDSYS
  1. Q
  1. ;
  1. DEL ; SECTION FOR DELETING CODES FROM TABLE
  1. I '$D(APCDTABL) G X2
  1. S APCDDONE=0
  1. S APCDVAL="" F S APCDVAL=$O(APCDTABL(APCDVAL)) Q:APCDVAL="" I $P(APCDTABL(APCDVAL),U,2)=APCDSYS D GETCASE,DELPROC Q:APCDDONE
  1. X2 Q
  1. ;
  1. DELPROC ;CASE SPECIFIC DEL PROCESSING
  1. G @("DEL"_APCDCASE)
  1. DEL2 ;;
  1. I APCD("HI")=APCDTABL(APCDVAL) K APCDTABL(APCDVAL)
  1. E S APCDTABL($O(^ICD9("BA",APCD("HI"))))=APCDTABL(APCDVAL)_U_APCDSYS K APCDTABL(APCDVAL)
  1. S APCDDONE=1
  1. Q
  1. ;
  1. DEL3 ;;
  1. DEL6 ;;
  1. S APCDTABL($O(^ICD9("BA",APCD("HI"))))=APCDTABL(APCDVAL)_U_APCDSYS K APCDTABL(APCDVAL)
  1. S APCDDONE=1
  1. Q
  1. ;
  1. DEL4 ;;
  1. DEL5 ;;
  1. DEL7 ;;
  1. DEL8 ;;
  1. K APCDTABL(APCDVAL)
  1. I APCDCASE'=8,APCDCASE'=5 S APCDDONE=1
  1. Q
  1. ;
  1. DEL10 ;;
  1. DEL11 ;;
  1. DEL12 ;;
  1. D @$S($E(APCDTABL(APCDVAL))?1N:"NUMBER",1:"LETTER")
  1. S APCDTABL(APCDVAL)=APCD("NEWHI")_U_APCDSYS
  1. I APCDCASE=10 S APCDDONE=1
  1. Q
  1. ;
  1. DEL9 ;;
  1. D @$S($E(APCDTABL(APCDVAL))?1N:"NUMBER",1:"LETTER")
  1. S APCDTABL($O(^ICD9("BA",APCD("HI"))))=APCDTABL(APCDVAL)_U_APCDSYS
  1. S APCDTABL(APCDVAL)=APCD("NEWHI")_U_APCDSYS
  1. S APCDDONE=1
  1. Q
  1. ;
  1. DEL1 ;;
  1. DEL13 ;;
  1. Q
  1. ;
  1. GETCASE ; SUBROUTINE TO DETERMINE APCDCASE # FROM INPUT CODE RANGE
  1. S APCD("TLOW")=APCDVAL,APCD("THI")=$P(APCDTABL(APCDVAL),U,1) ;_U_APCDSYS
  1. D CASEA:APCD("TLOW")]APCD("LOW"),CASEB:APCD("LOW")=APCD("TLOW"),CASEC:APCD("LOW")]APCD("TLOW")
  1. K APCD("TLOW"),APCD("THI")
  1. Q
  1. ;
  1. CASEA ;
  1. I APCD("HI")]APCD("TLOW") S APCDCASE=$S(APCD("THI")]APCD("HI"):3,APCD("HI")=APCD("THI"):4,1:5)
  1. E S APCDCASE=$S(APCD("TLOW")]APCD("HI"):1,1:2)
  1. Q
  1. ;
  1. CASEB ;
  1. S APCDCASE=$S(APCD("THI")]APCD("HI"):6,APCD("HI")=APCD("THI"):7,1:8)
  1. Q
  1. ;
  1. CASEC ;
  1. I APCD("THI")]APCD("LOW") S APCDCASE=$S(APCD("THI")]APCD("HI"):9,APCD("HI")=APCD("THI"):10,1:11)
  1. E S APCDCASE=$S(APCD("LOW")=APCD("THI"):12,1:13)
  1. Q
  1. ;
  1. NUMBER ;
  1. S APCD("CODE")=APCD("LOW")-5 F Q:APCD("LOW")]$O(^ICD9("BA",APCD("CODE")_" ")) S APCD("CODE")=APCD("CODE")-5
  1. S APCD("CODE")=$O(^ICD9("BA",APCD("CODE")_" ")) F S APCD("NEWHI")=APCD("CODE"),APCD("CODE")=$O(^ICD9("BA",APCD("CODE"))) Q:APCD("CODE")=APCD("LOW")
  1. Q
  1. ;
  1. LETTER ;
  1. S APCD("LET")=$E(APCD("LOW"))_" " F S APCD("NEWHI")=$S($L(APCD("LET"))>2:APCD("LET"),1:APCD("LOW")),APCD("LET")=$O(^ICD9("BA",APCD("LET"))) Q:APCD("LET")=APCD("LOW")
  1. Q
  1. EOJ ;
  1. K APCDCASE,APCDDONE,APCDNEXT,APCDONE,APCDVAL
  1. Q
  1. ;