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

ADEGRL5B.m

Go to the documentation of this file.
  1. ADEGRL5B ; IHS/HQT/MJL - DENTAL CODE EDITS PT 2 ; [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;;APRIL 1999
  1. RESOLVE ;EP - DO APPROPRIATE RESOLUTION
  1. I ADERTYP=1 D R1
  1. I ADERTYP=2 D R2
  1. I ADERTYP=3 D R3
  1. Q
  1. R1 ;RESOLUTION 1 - REJECT CODE (WITH MESSAGE)
  1. I '$D(ADEOPC) K ADEV(ADECOD)
  1. I $D(ADEOPC),+ADEV(ADECOD)<2 K ADEV(ADECOD)
  1. I $D(ADEOPC),$D(ADEV(ADECOD)) S ADEV(ADECOD)=$$DELOP^ADEGRL5C(ADEOPC,ADEV(ADECOD))
  1. W !,ADECOD," " W:$D(ADEOPC) "OPSITE ",^ADEOPS(ADEOPC,88) W ": "
  1. X ^ADEDIT(ADERDFN,3)
  1. ;W !,"Return data entry SLIP TO REPORTING DENTIST FOR CORRECTION"
  1. S ADEXFLG=1
  1. Q
  1. R2 ;RESOLUTION 2 - CHANGE CODE -- ONLY NON OPSITE CODES
  1. ;HAVE TO PUT CHANGED CODE BACK THRU EDITS VIA RECURSION
  1. ;BUT BE CAREFUL OF ENDLESS LOOPS!
  1. N ADETMP
  1. S ADETMP=$P(^ADEDIT(ADERDFN,2),U,3)
  1. I $D(ADEOPC) D R2A S ADEREDO=1 D R2CUR Q
  1. I '$D(ADEOPC) D R2B S ADEREDO=1 D R2CUR Q
  1. Q
  1. R2CUR ;Call ADEGRL5A recursively
  1. N ADECOD
  1. S ADECOD=ADETMP
  1. D ^ADEGRL5A
  1. Q ;QUITTING R2CUR
  1. R2A ;First, delete the opsite from current adev(adecod)
  1. N ADESFC
  1. S ADESFC=$$GETSFC^ADEGRL5C(ADEOPC,ADEV(ADECOD))
  1. I +ADEV(ADECOD)<2 K ADEV(ADECOD),ADES(ADECOD)
  1. E S ADEV(ADECOD)=$$DELOP^ADEGRL5C(ADEOPC,ADEV(ADECOD))
  1. ;next, if adev(adetmp) doesnt exist, create it
  1. I '$D(ADEV(ADETMP)) S ADEV(ADETMP)="" S ADEDES(ADETMP)=$$DES^ADEGRL5B(ADETMP)
  1. ;next, add the opsite to adev(adetmp).
  1. S ADEV(ADETMP)=$$ADDOP^ADEGRL5(ADEOPC,ADESFC,ADEV(ADETMP))
  1. W !,ADECOD," OPSITE ",^ADEOPS(ADEOPC,88),": recoded to ",ADETMP
  1. S ADEXFLG=1
  1. Q
  1. R2B S ADEV(ADETMP)=ADEV(ADECOD),ADEXFLG=1
  1. W !,ADECOD," recoded to ",ADETMP
  1. K ADEV(ADECOD),ADEDES(ADECOD)
  1. S ADEDES(ADETMP)=$$DES(ADETMP)
  1. Q
  1. R3 ;RESOLUTION 3 - FLAG AS NON-REPORTABLE
  1. I '$D(ADEOPC) S $P(ADEV(ADECOD),U,5)="y"
  1. I $D(ADEOPC),+ADEV(ADECOD)<2 S $P(ADEV(ADECOD),U,5)="y"
  1. I $D(ADEOPC),$D(ADEV(ADECOD)) S ADEV(ADECOD)=$$NONREP(ADEOPC,ADEV(ADECOD))
  1. I $D(ADEOPC),'$D(ADENRP(ADECOD,ADEOPC)) W !,ADECOD," " W:$D(ADEOPC) "OPSITE ",^ADEOPS(ADEOPC,88) W ": " S ADENRP(ADECOD,ADEOPC)="" X ^ADEDIT(ADERDFN,3)
  1. I '$D(ADEOPC),$D(ADENRP(ADECOD))'=1 W !,ADECOD,":" S ADENRP(ADECOD)="" X ^ADEDIT(ADERDFN,3)
  1. S ADEXFLG=1
  1. Q
  1. ;
  1. RETURN ;EP - Press return to continue
  1. N DIR
  1. S DIR(0)="FAO^1:1",DIR("A")="Press 'Return' to continue... "
  1. W ! D ^DIR
  1. K DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. Q
  1. ;
  1. DES(ADETMP) ;EP - Returns short description of ADA CODE ADETMP
  1. S ADETMP=$O(^AUTTADA("B",ADETMP,0))
  1. S ADETMP=$P(^AUTTADA(ADETMP,0),U,6)
  1. Q ADETMP
  1. ;
  1. NONREP(ADEOPC,ADEVCOD) ;Mark opsite ADEOPC in ADEVCOD unreportable
  1. N ADETST,ADEJ,ADENONR
  1. S ADETST=$P(ADEVCOD,U,2),ADENONR=$P(ADEVCOD,U,5)
  1. F ADEJ=1:1:+ADEVCOD I ADEOPC=$P(ADETST,",",ADEJ) S $P(ADENONR,",",ADEJ)="y" Q
  1. S $P(ADEVCOD,U,5)=ADENONR
  1. Q ADEVCOD
  1. K ADEVCOD ;*NE