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

ADEPQA3A.m

Go to the documentation of this file.
  1. ADEPQA3A ; IHS/HQT/MJL - CODE SEARCH PARAMS ;08:37 PM [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;**12**;APRIL 1999
  1. ;
  1. ADA() ;ENTRY POINT
  1. ; - Returns "1/0^Code DFN^Followed-by Code^NOT flag^Relative Date
  1. ; ^Same Opsite(Y/N)^Particular Opsite" (Codes and Opsite DFN)
  1. ;Check that opsite required for codes before prompting for opsite&same
  1. N ADECOD,ADEJ,ADEY,ADEK,ADEFLG,ADERSP,ADEBEG,ADEND,DIR
  1. ;
  1. ADACTRL ;Control Sequence
  1. ADAC1 ;FHL 9/9/98
  1. D ADAS1 Q:$$HAT^ADEPQA() 0
  1. Q:ADECOD="" 0
  1. S $P(ADERSP,U)="1^"_ADECOD
  1. ADAC2 D ADAS2 G:$$HAT^ADEPQA() ADAC1 S $P(ADERSP,U,7)=ADECOD
  1. ADAC3 N ADENOT D ADAS3 G:$$HAT^ADEPQA() ADAC2 S $P(ADERSP,U,3)=ADECOD S:ADENOT $P(ADERSP,U,4)=1
  1. ;
  1. ADAC4 I $P(ADERSP,U,3)]"" D ADAS4 G:$$HAT^ADEPQA() ADAC3 S $P(ADERSP,U,5)=ADECOD
  1. ADAC5 I $P(ADERSP,U,3)]"" D ADAS5 G:$$HAT^ADEPQA() ADAC3 S $P(ADERSP,U,6)=ADECOD
  1. ADAC6 I $P(ADERSP,U,3)]"" D ADAS6 G:$$HAT^ADEPQA() ADAC3 S $P(ADERSP,U,8)=ADECOD
  1. Q ADERSP
  1. K ADERSP ;*NE
  1. ADAS6 S ADECOD=""
  1. W ! S DIR("A")="Do you want to include codes on the SAME VISIT as 'FOLLOWED BY' codes?"
  1. S DIR(0)="Y"
  1. S DIR("B")="N"
  1. D ^DIR
  1. Q:$$HAT^ADEPQA()
  1. S:Y=1 ADECOD="Y"
  1. Q
  1. ADAS5 S ADECOD=""
  1. W ! S DIR("A")="Do you want the 'FOLLOWED BY' codes to apply to the SAME OPSITE"
  1. S DIR(0)="Y"
  1. S DIR("B")="N"
  1. D ^DIR
  1. Q:$$HAT^ADEPQA()
  1. S:Y=1 ADECOD="Y"
  1. Q
  1. ADAS4 S ADECOD="" K DIR
  1. W ! S DIR("A")="What time limit (in days) should apply to the 'FOLLOWED BY' codes? "
  1. S DIR(0)="NOA^0:10000:0"
  1. D ^DIR
  1. Q:$$HAT^ADEPQA()
  1. S ADECOD=Y
  1. Q
  1. ADAS1 S ADECOD="" K DIR
  1. W ! S DIR("A")="Limit the search to a particular ADA Code or set of Codes"
  1. S DIR("B")="YES"
  1. S DIR(0)="Y" D ^DIR
  1. I $$HAT^ADEPQA() Q
  1. I Y=0 Q
  1. D ADAS1B G:$$HAT^ADEPQA() ADAS1
  1. Q
  1. ADAS3 S ADECOD="" K DIR S ADENOT=0
  1. W ! S DIR("A")="Limit the search to ADA Codes which are FOLLOWED BY a particular code"
  1. S DIR("B")="YES"
  1. S DIR(0)="Y" D ^DIR
  1. I $$HAT^ADEPQA() Q
  1. I Y=0 Q
  1. D ADAS1B G:$$HAT^ADEPQA() ADAS3
  1. Q
  1. ADAS1B N DIC
  1. N ADEX,ADEXSEL S ADEX="7110^7120^7130^7140",ADEXSEL=0 ;IHS/SET/HMW 2-6-2003 **12**
  1. F D Q:X="" Q:$$HAT^ADEPQA() S ADEY=$P(Y,U) D ADA2
  1. . S DIC="^AUTTADA(",DIC(0)="E",D="BA"
  1. . R !,"Select ADA CODE: ",X:DTIME S:'$T!(X[U) DTOUT=1 Q:X="" S X=X_" "
  1. . D IX^DIC
  1. . I ADEX[$P(Y,U,2),ADEXSEL=0 D CDT4REM^ADECD49 S ADEXSEL=1 ;IHS/SET/HMW 2-6-2003 **12**
  1. Q
  1. ADAS2 S ADECOD=""
  1. W ! S DIR("A")="Do you want these ADA Codes to apply to a particular Opsite or Opsites"
  1. S DIR("B")="YES",DIR(0)="Y" D ^DIR
  1. I $$HAT^ADEPQA() Q
  1. I Y=0 Q
  1. K DIR
  1. S DIR(0)="PO^ADEOPS(:EM"
  1. F D ^DIR Q:X="" Q:$$HAT^ADEPQA() S ADEY=$P(Y,U) D ADA4
  1. I $$HAT^ADEPQA() K DIR G ADAS2
  1. Q
  1. ADA2 I ADEY'=-1 D ADA3 Q
  1. I ADEY=-1,X="NOT " D Q
  1. . I '$D(ADENOT) W " --",X," ??" Q
  1. . W !,"OK. I will look for procedures NOT followed by these codes."
  1. . S ADENOT=1
  1. I ADEY=-1,X'["-" W " --",X," ??" Q
  1. I ADEY=-1 S ADEBEG=$P(X,"-",1)_" ",ADEND=$P(X,"-",2) D
  1. . I ADEBEG'?4N1" " W " --",ADEBEG," ??" Q
  1. . I ADEND'?4N1" " W " --",ADEND," ??" Q
  1. . ;IHS/SET/HMW Replaced next 4 lines with line following **12**
  1. . ;D
  1. . ;. N ADEJ
  1. . ;. S ADEJ=0
  1. . ;. F S ADEJ=$O(^AUTTADA("BA",ADEJ)) Q:'+ADEJ I $O(^AUTTADA("BA",ADEJ))>ADEBEG S ADEBEG=ADEJ Q
  1. . S ADEBEG=$O(^AUTTADA("BA",ADEBEG),-1)
  1. . F S ADEBEG=$O(^AUTTADA("BA",ADEBEG)) Q:ADEBEG="" Q:ADEBEG>ADEND S ADEY=$O(^AUTTADA("BA",ADEBEG,0)) W !,?5,ADEBEG,?15,$P(^AUTTADA(ADEY,0),U,2) D ADA3
  1. Q
  1. ADA4 I ADEY'=-1 D ADA3 Q
  1. I ADEY=-1,X'["-" W !,?5," -- Enter a single operative site or a range of PERMANENT TOOTH NUMBERS",!,?5,"separated by a dash, e.g. 6-9" Q
  1. I ADEY=-1 S ADEBEG=$P(X,"-",1),ADEND=$P(X,"-",2) D
  1. . I ADEBEG'?1.2N W ?20,"--",ADEBEG,"?? Ranges can apply only to permanent tooth numbers." Q
  1. . I ADEND'?1.2N W ?20,"--",ADEND,"?? Ranges can apply only to permanent tooth numbers." Q
  1. . S ADEBEG=ADEBEG-1 F S ADEBEG=$O(^ADEOPS("B",ADEBEG)) Q:ADEBEG="" Q:ADEBEG>ADEND Q:ADEBEG'?1.2N S ADEY=$O(^ADEOPS("B",ADEBEG,0)) W !,?5,ADEBEG,?15,$P(^ADEOPS(ADEY,0),U) D ADA3
  1. Q
  1. ADA3 S ADEFLG=0 F ADEK=1:1:$L(ADECOD,",") I $P(ADECOD,",",ADEK)=ADEY S ADEFLG=1 Q
  1. I 'ADEFLG,ADECOD="" S ADECOD=ADEY Q
  1. S:'ADEFLG $P(ADECOD,",",$L(ADECOD,",")+1)=ADEY
  1. Q