| 1 | IBDFN15 ;ALB/CMR - ENCOUNTER FORM - OUTPUTS;JAN 4, 1996 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**15**;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | ; -- clinical reminders interface | 
|---|
| 5 | ; | 
|---|
| 6 | SELRM ; -- Select reminders using old structures | 
|---|
| 7 | N DIC | 
|---|
| 8 | K @IBARY | 
|---|
| 9 | W ! | 
|---|
| 10 | S QUIT=0 | 
|---|
| 11 | S DIC("S")="I '$P(^(0),U,6)" | 
|---|
| 12 | S DIC=811.9,DIC(0)="AEMQZ" | 
|---|
| 13 | D ^DIC K DIC | 
|---|
| 14 | I +Y>0 S @IBARY=+Y_"^"_$P(Y(0),"^",3)_"^DUE NOW^LAST ACTIVITY^DUE DATE^COMBO" | 
|---|
| 15 | Q | 
|---|
| 16 | ; | 
|---|
| 17 | DISP ; -- display reminders on encounter form, treat like a dynamic | 
|---|
| 18 | ;    selection list | 
|---|
| 19 | ; | 
|---|
| 20 | N I,L,X,Y,Z,ORD,SEL,LAST,IBDCLRM,IBDX,CNT,TEXT,IBCLRMNM,CLRMTYP,COMBO,INVISIBL,NODE,GRPORD,GRP,CLRMCNT | 
|---|
| 21 | I $G(IBLIST("EDITING CLRM")) G SELRM | 
|---|
| 22 | ; | 
|---|
| 23 | I +$G(IBLIST("CLRMLIST"))<1 S IBLIST("CLRMLIST")=2 | 
|---|
| 24 | S CLRMTYP=+$G(IBLIST("CLRMLIST"))-1 | 
|---|
| 25 | K ^TMP("PXRHM",$J),^TMP("PXRM",$J) | 
|---|
| 26 | K ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT") | 
|---|
| 27 | Q:'$G(DFN)!('$G(IBLIST)) | 
|---|
| 28 | ; | 
|---|
| 29 | ; -- determine which reminders are due now | 
|---|
| 30 | ;    loop through groups and then selections | 
|---|
| 31 | S GRPORD="" | 
|---|
| 32 | F  S GRPORD=$O(^IBE(357.4,"APO",+IBLIST,GRPORD)) Q:GRPORD=""  S GRP=0 F  S GRP=$O(^IBE(357.4,"APO",+IBLIST,GRPORD,GRP)) Q:'GRP  D | 
|---|
| 33 | .S NODE=$G(^IBE(357.4,+GRP,0)) | 
|---|
| 34 | .I $P(NODE,"^")="BLANK"!($P(NODE,"^",4)) S INVISIBL=1 | 
|---|
| 35 | .I '$G(INVISIBL) S CNT=$G(CNT)+1,^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",CNT)="0^  "_$P(NODE,"^") | 
|---|
| 36 | .D ONEGRP | 
|---|
| 37 | ; | 
|---|
| 38 | K RTNLIST(RTN("RTN")),^TMP("PXRM",$J),^TMP("PXHRM",$J) | 
|---|
| 39 | I $G(CLRMCNT)<1 S ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",1)="0^No Reminders in List" | 
|---|
| 40 | I $G(CLRMCNT),'$D(^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT")) D | 
|---|
| 41 | .S ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",1)="0^No. Reminders Evaluated: "_CLRMCNT | 
|---|
| 42 | .I CLRMTYP S ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",2)="0^None Applicable this patient" | 
|---|
| 43 | .I 'CLRMTYP S ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",2)="0^None Due Now" | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | ONEGRP ; -- loop through entries of one group in order | 
|---|
| 47 | S ORD="" F  S ORD=$O(^IBE(357.3,"APO",+IBLIST,GRP,ORD)) Q:ORD=""  S SEL=0 F  S SEL=$O(^IBE(357.3,"APO",+IBLIST,+GRP,ORD,SEL)) Q:'SEL  D | 
|---|
| 48 | .S IBDCLRM=$G(^IBE(357.3,SEL,0)) | 
|---|
| 49 | .I +IBDCLRM,'$P(IBDCLRM,"^",2) D | 
|---|
| 50 | ..S CLRMCNT=$G(CLRMCNT)+1 | 
|---|
| 51 | ..D MAIN^PXRM(DFN,+IBDCLRM,CLRMTYP) | 
|---|
| 52 | ..S TEXT=$O(^TMP("PXRHM",$J,+IBDCLRM,"")) | 
|---|
| 53 | ..Q:TEXT="" | 
|---|
| 54 | ..S NODE=$G(^TMP("PXRHM",$J,+IBDCLRM,TEXT)) | 
|---|
| 55 | ..K ^TMP("PXRHM",$J),^TMP("PXRM",$J) | 
|---|
| 56 | ..I $P(NODE,"^")="N/A" Q  ;don't display not applicables | 
|---|
| 57 | ..I CLRMTYP=0,$P(NODE,"^")'="DUE NOW" Q  ;type of list DUE NOW only | 
|---|
| 58 | ..S LAST=$P(NODE,"^",3) I +LAST,$L($P(LAST,"."))=7 S LAST=$$FMTE^XLFDT(LAST) | 
|---|
| 59 | ..I $P(NODE,"^",5)="E" S LAST=LAST_" (E)" ;last activity was historical encounter, see px*1*38 | 
|---|
| 60 | ..S CNT=$G(CNT)+1 | 
|---|
| 61 | ..S COMBO=$S($P(NODE,"^")="DUE NOW":"DUE NOW",1:$$FMTE^XLFDT($P(NODE,"^",2))) | 
|---|
| 62 | ..S ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",CNT)="0^"_TEXT_"^"_$P(NODE,"^")_"^"_$$FMTE^XLFDT($P(NODE,"^",2))_"^"_LAST_"^"_COMBO | 
|---|
| 63 | .; | 
|---|
| 64 | .I $P(IBDCLRM,"^",2) S CNT=$G(CNT)+1,^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",CNT)="0^  "_$P(IBDCLRM,"^",6) | 
|---|
| 65 | Q | 
|---|
| 66 | ; | 
|---|
| 67 | TEST ; | 
|---|
| 68 | N DFN,IBLIST,RTN,X | 
|---|
| 69 | K ^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT") | 
|---|
| 70 | S DFN=7169761 ;mnt,vbb-male | 
|---|
| 71 | ;S DFN=7170189 ;mnt,vbb-female | 
|---|
| 72 | ;S DFN=712 ;dev,den-male | 
|---|
| 73 | S IBLIST("CLRMLIST")=2 | 
|---|
| 74 | S IBLIST=489 ;dev,den | 
|---|
| 75 | S IBLIST=430 ;mnt,vbb | 
|---|
| 76 | S RTN("RTN")="IBDFN15" | 
|---|
| 77 | D DISP | 
|---|
| 78 | T1 S X="" F  S X=$O(^TMP("IB",$J,"INTERFACES","PX CLINICAL REMINDERS PRINT",X)) Q:'X  W !,^(X) | 
|---|
| 79 | Q | 
|---|