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

PXRMGECX.m

Go to the documentation of this file.
  1. PXRMGECX ;SLC/JVS - GEC Debug Utilities ;08/21/2003 08:54
  1. ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
  1. ;
  1. Q
  1. PROMPT ; Prompt for Correct Report
  1. N Y,X
  1. K DIR
  1. S DIR("A")="Select Option or ^ to Exit"
  1. S DIR("A",1)="These Reports are to Help with Degugging of Problems"
  1. S DIR("A",2)="**It could take 5 minutes !! or more to Complete Reports"
  1. I $D(^DISV(DUZ,"PXRMGEC","BG")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","BG"))
  1. S DIR(0)="S^B:Brief Health Factor Review;D:Detailed Health Factor Review"
  1. D ^DIR
  1. K DIR("A"),DIR("B"),DIR(0)
  1. I Y="B" D PR1
  1. I Y="D" D PR
  1. Q:$D(DIRUT)!($D(DIROUT))
  1. S ^DISV(DUZ,"PXRMGEC","BG")=Y
  1. Q
  1. ;
  1. DAS ;GET IENS OF TOP LEVEL DIALOGS WITH GEC IN THE IDENTITY FIELD
  1. F GECI="GEC1","GEC2","GEC3","GECF" D
  1. .S GECX=0 F S GECX=$O(^PXRMD(801.41,"AC",GECI,GECX)) Q:GECX="" S GECDA(GECX,GECI)=""
  1. Q
  1. ;
  1. ;
  1. SCREEN(IEN) ;Screen for use in GEC Dialog Group
  1. N REFB,REF10,TREE,DGIEN,IENN,GECX,GECI,DGDA,DGNA
  1. N DIASYN
  1. S DGNA="",DGDA=0,OK=0
  1. S REFB="^PXRMD(801.41,""B"")"
  1. S REF10="^PXRMD(801.41)"
  1. S DGNA="VA-" F S DGNA=$O(@REFB@(DGNA)) Q:DGNA'["VA-" D
  1. .S DGDA=$O(@REFB@(DGNA,0))
  1. .I $P($P($G(^PXRMD(801.41,DGDA,1)),"^",5),";",1)=IEN!($$MUL(IEN,DGDA)) D
  1. ..I $P($G(^PXRMD(801.41,DGDA,0)),"^",1)["HF GEC "!($P($G(^PXRMD(801.41,DGDA,0)),"^",1)["DG GEC ") S DGIEN=DGDA
  1. ..I $D(DGIEN) S TREE(DGIEN)=""
  1. Q:'$D(DGIEN) OK
  1. ST I $D(^PXRMD(801.41,"AD",DGIEN)) D
  1. .S IENN=0 F S IENN=$O(^PXRMD(801.41,"AD",DGIEN,IENN)) Q:IENN=""!(OK=1) D
  1. ..I $D(GECDA(IENN)) S OK=1,HFDIA(IEN,$O(GECDA(IENN,"")))="" S ^TMP("PXRMGECX",$J,"TEXT",IENN,DGIEN,IEN)=""
  1. ..I OK=1 K TREE
  1. ..I OK=0 S TREE(IENN)=""
  1. REDO I $D(TREE) D
  1. .S TIEN=0 F S TIEN=$O(TREE(TIEN)) Q:TIEN=""!(OK=1) D S TIEN=0
  1. ..S IENN=0 F S IENN=$O(^PXRMD(801.41,"AD",TIEN,IENN)) Q:IENN="" D
  1. ...I $D(GECDA(IENN)) S OK=1,HFDIA(IEN,$O(GECDA(IENN,"")))="" S ^TMP("PXRMGECX",$J,"TEXT",IENN,DGIEN,IEN)=""
  1. ...I OK=0,'$D(DONE(IENN)) S TREE(IENN)=""
  1. ..K TREE(TIEN) S DONE(TIEN)=""
  1. I OK=0&($D(TREE)) G REDO
  1. K TREE,IENN,DONE
  1. Q OK
  1. ;
  1. MUL(IEN,DGDA) ;SEARCH ADDITONAL FINDINGS
  1. N YES
  1. S YES=0
  1. I $D(^PXRMD(801.41,DGDA,3,"B",IEN_";AUTTHF(")) S YES=1
  1. Q YES
  1. ;
  1. HF ;Gather Health Factors
  1. K ^TMP("PXRMGEC",$J,"MAN"),^TMP("PXRMGEC",$J,"MAN1")
  1. N IEN,CAT,DIA,CATDA,CATNA,FNA,REF,ANS,STOP
  1. S IEN=0
  1. F S IEN=$O(^AUTTHF(IEN)) Q:IEN<1 D
  1. .Q:$P($G(^AUTTHF(IEN,0)),"^",11)=1
  1. .S FNA=$P($G(^AUTTHF(IEN,0)),"^",1)
  1. .S CAT=$P($G(^AUTTHF(IEN,0)),"^",10)
  1. .I CAT="F" D
  1. ..Q:$P($G(^AUTTHF(IEN,0)),"^",11)=1
  1. ..S CATDA=$P($G(^AUTTHF(IEN,0)),"^",3)
  1. ..Q:CATDA=""
  1. ..Q:$P($G(^AUTTHF(CATDA,0)),"^",11)=1
  1. ..S CATNA=$P($G(^AUTTHF(CATDA,0)),"^",1)
  1. ..I CATNA["GEC" D
  1. ...I $P($G(^AUTTHF(CATDA,0)),"^",9)'="" D
  1. ....Q:$P($G(^AUTTHF(CATDA,0)),"^",11)=1
  1. ....S DIASYN=$P($G(^AUTTHF(CATDA,0)),"^",9)
  1. ....S ANS=$P($G(^AUTTHF(IEN,0)),"^",9),VAL=$S(ANS'="":$P(ANS," ",$L(ANS," ")),1:0)
  1. ....S ^TMP("PXRMGEC",$J,"MAN",DIASYN,CATNA,FNA,VAL,IEN,$$SCREEN(IEN))=""
  1. ....I $D(HFDIA(IEN)) S ^TMP("PXRMGEC",$J,"MAN1",$O(HFDIA(IEN,"")),CATNA,FNA,VAL,IEN,$$SCREEN(IEN))=""
  1. Q
  1. ;
  1. PR ;
  1. N REFM,STOPNA,TIEN,VO
  1. S REF="^TMP(""PXRMGEC"",$J,""MAN"")"
  1. S REFM="^TMP(""PXRMGEC"",$J,""MATCH"")"
  1. S X="IOINHI;IOINLOW;IORVON;IORVOFF"
  1. D ENDR^%ZISS
  1. D DAS,MATCHB^PXRMGECY,MATCHB^PXRMGECZ
  1. N DIACNT,CATCNT,FACCNT,IEN,VAL,STOPCNT,NEWFNA,SYN,TERM
  1. S (DIACNT,CATCNT,FACCNT,STOPCNT)=0
  1. D HF
  1. ;
  1. ;
  1. S DIASYN="" F S DIASYN=$O(@REF@(DIASYN)) Q:DIASYN="" D
  1. .S DIACNT=DIACNT+1
  1. .W !!!,DIACNT_". Dialog- GEC REFERRAL "_$P(DIASYN," ",2,4)
  1. .S CATNA="" F S CATNA=$O(@REF@(DIASYN,CATNA)) Q:CATNA="" D
  1. ..K @REFM@(CATNA)
  1. ..S CATCNT=CATCNT+1
  1. ..W !!,DIACNT_". Dialog- GEC REFERRAL "_$P(DIASYN," ",2,4)
  1. ..W !!,CATCNT_". Category- ",CATNA
  1. ..W !," Synonum- "_DIASYN
  1. ..W !!," Health Factors---"
  1. ..S FNA="" F S FNA=$O(@REF@(DIASYN,CATNA,FNA)) Q:FNA="" D
  1. ...S FACCNT=FACCNT+1
  1. ...S VAL=$O(@REF@(DIASYN,CATNA,FNA,-1))
  1. ...S IEN=$O(@REF@(DIASYN,CATNA,FNA,VAL,0))
  1. ...S STOP=$O(@REF@(DIASYN,CATNA,FNA,VAL,IEN,-1))
  1. ...I STOP=0 S STOPCNT=STOPCNT+1
  1. ...S STOPNA=$S(STOP=0:"(((NOT IN USE)))",1:"")
  1. ...S VO=0
  1. ...I STOPNA'="" S VO=1
  1. ...W !,FACCNT_". " I VO W IORVON
  1. ...W FNA," ",STOPNA,IORVOFF I $L(FNA)>40 W " ",IORVON,$L(FNA),IORVOFF
  1. ...W !,?19,$S('$D(@REFM@(FNA,IEN)):IORVON,1:""),"ien- "_IEN," (",$O(@REFM@(FNA,0))_")",IORVOFF I '$D(@REFM@(FNA)) W !
  1. ...W ?17,IORVON,$S($D(@REFM@(FNA)):"",1:"**NOT Originally Released Name") W IORVOFF K @REFM@(FNA)
  1. ...S SYN=$P($G(^AUTTHF($O(^AUTTHF("B",FNA,0)),0)),"^",9)
  1. ...S TERM=$O(^PXRMD(811.5,"AF",IEN_";AUTTHF(",0))
  1. ...W !,?18,$S(TERM="":IORVON,1:""),"Term- ",$S(TERM="":"NO TERM",1:$P($G(^PXRMD(811.5,TERM,0)),"^",1)),IORVOFF
  1. ...I SYN="" W !,?17,IORVON,$S(SYN="":"**Synonum Missing",1:"syn- "_SYN),IORVOFF
  1. ...E W !,?19,$S(SYN="":"**Synonum Missing",1:"syn- "_SYN)
  1. ...W !,?19,"val- "_VAL,!
  1. ...W IORVOFF
  1. I $D(@REFM) W !!,?7,"**Missing Original GEC Health Factors**"
  1. I $D(@REFM) S FNA="" F S FNA=$O(@REFM@(FNA)) Q:FNA="" D
  1. .W !,?10,FNA
  1. W !
  1. W !,"Categories - "_$J(CATCNT,3)
  1. W !,"Health Factors- "_$J(FACCNT,3)
  1. W !,"Not in Use - "_$J(STOPCNT,3)
  1. W !,"Used Factors - ",$J(((FACCNT+CATCNT)-STOPCNT),3)
  1. W !
  1. W !,"-----------------------------END OF REPORT ----------------------"
  1. K ^TMP("PXRMGEC",$J,"MAN"),^TMP("PXRMGEC",$J,"MAN1"),HFDIA
  1. K ^TMP("PXRMGEC",$J,"MATCH")
  1. D KILL^%ZISS
  1. Q
  1. ;
  1. ;
  1. ;
  1. PR1 S REF="^TMP(""PXRMGEC"",$J,""MAN1"")"
  1. S X="IOINHI;IOINLOW;IORVON;IORVOFF"
  1. D ENDR^%ZISS
  1. D DAS,MATCHB^PXRMGECY,MATCHB^PXRMGECZ
  1. N DIACNT,CATCNT,FACCNT,IEN,VAL,STOPCNT,XCNT
  1. S (DIACNT,CATCNT,FACCNT,STOPCNT)=0
  1. D HF
  1. ;
  1. DISPLAY ;REPORT DISPLAY
  1. ;
  1. S DIASYN="" F S DIASYN=$O(@REF@(DIASYN)) Q:DIASYN="" D
  1. .S DIACNT=DIACNT+1,CATCNT=0
  1. .W !!,DIACNT," Dialog- "_$P($G(^PXRMD(801.41,$O(^PXRMD(801.41,"AC",DIASYN,"")),0)),"^",1)
  1. .S CATNA="" F S CATNA=$O(@REF@(DIASYN,CATNA)) Q:CATNA="" D
  1. ..S CATCNT=CATCNT+1
  1. ..W !!,?2,CATCNT_". Category- ",CATNA
  1. ..W !,?7," Ref# (score) Health Factors---"
  1. ..N FNACNT S FNACNT=0
  1. ..S FNA="" F S FNA=$O(@REF@(DIASYN,CATNA,FNA)) Q:FNA="" D
  1. ...S XCNT=FACCNT,FACCNT=FACCNT+1,FNACNT=FNACNT+1
  1. ...S VAL=$O(@REF@(DIASYN,CATNA,FNA,-1))
  1. ...S IEN=$O(@REF@(DIASYN,CATNA,FNA,VAL,0))
  1. ...S STOP=$O(@REF@(DIASYN,CATNA,FNA,VAL,IEN,-1))
  1. ...I STOP=0 S FACCNT=XCNT
  1. ...I STOP=0 S STOPCNT=STOPCNT+1 Q
  1. ...S STOPNA=$S(STOP=0:"(((NOT IN USE)))",1:"")
  1. ...N COMB S COMB=DIACNT_"."_CATCNT_"."_FNACNT_" ("_VAL_")"
  1. ...S VO=0
  1. ...I STOPNA'="" S VO=1
  1. ...W !," " I VO W IORVON
  1. ...W ?11,COMB," "_FNA," ",STOPNA,IORVOFF W " "
  1. ...;==================================================
  1. ...W IORVOFF
  1. W !!,"Health Factors- "_$J(FACCNT,3)
  1. W !
  1. W !,"-----------------------------END OF REPORT ----------------------"
  1. K ^TMP("PXRMGEC",$J,"MAN"),^TMP("PXRMGEC",$J,"MAN1"),HFDIA
  1. K ^TMP("PXRMGEC",$J,"MATCH")
  1. D KILL^%ZISS
  1. Q
  1. ;