| 1 | WVBRNED ;HCIOFO/FT,JR-BROWSE TX NEEDS PAST DUE; ;6/1/99 13:42
|
---|
| 2 | ;;1.0;WOMEN'S HEALTH;**7**;Sep 30, 1998
|
---|
| 3 | ;; Original routine created by IHS/ANMC/MWR
|
---|
| 4 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
|
---|
| 5 | ;; CALLED BY OPTION: "WV BROWSE NEEDS PAST DUE" TO BROWSE AND
|
---|
| 6 | ;; EDIT PATIENTS WITH TREATMENT NEEDS PAST DUE.
|
---|
| 7 | ;
|
---|
| 8 | ;---> USE NODES 1 & 2 IN ^TMP GLOBAL.
|
---|
| 9 | ;
|
---|
| 10 | BEGIN ;EP
|
---|
| 11 | D SETVARS^WVUTL5 K WVRES
|
---|
| 12 | D TITLE^WVUTL5("BREAST & CERVICAL TX NEEDS PAST DUE REPORT")
|
---|
| 13 | D UNDETER G:WVPOP EXIT
|
---|
| 14 | D ASKDATE G:WVPOP EXIT
|
---|
| 15 | D CMGR G:WVPOP EXIT
|
---|
| 16 | D ORDER G:WVPOP EXIT
|
---|
| 17 | D DEVICE G:WVPOP EXIT
|
---|
| 18 | D SORT
|
---|
| 19 | D COPYGBL
|
---|
| 20 | D ^WVBRNED1
|
---|
| 21 | ;
|
---|
| 22 | EXIT ;EP
|
---|
| 23 | D KILLALL^WVUTL8
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | ;
|
---|
| 27 | UNDETER ;EP
|
---|
| 28 | ;---> ASK TO INCLUDE CASES WITH UNDETERMINED OR UNDATED NEEDS.
|
---|
| 29 | ;---> WVA=1 SAYS INCLUDE PATIENTS WITH UNDETERMINED NEEDS.
|
---|
| 30 | N DIR,DIRUT,Y
|
---|
| 31 | W !!?3,"Include patients whose Breast or Cervical Tx Needs are "
|
---|
| 32 | W "undetermined?"
|
---|
| 33 | N DIR S DIR("A")=" Enter Yes or No: "
|
---|
| 34 | S WVA=0,DIR(0)="YA",DIR("B")="YES" D HELP1^WVBRNEDH
|
---|
| 35 | D ^DIR W !
|
---|
| 36 | S:$D(DIRUT) WVPOP=1
|
---|
| 37 | I Y S WVA=1 Q
|
---|
| 38 | Q
|
---|
| 39 | ;
|
---|
| 40 | ;
|
---|
| 41 | ASKDATE ;EP
|
---|
| 42 | ;---> ASK FOR DATE BY WHICH NEEDS WILL BE DELINQUENT.
|
---|
| 43 | N DIR,DIRUT,Y
|
---|
| 44 | W !!?3,"Select the date to be checked for patient Tx Needs past due:"
|
---|
| 45 | S DIR(0)="D^::EX",DIR("A")=" Select a date"
|
---|
| 46 | S DIR("B")="TODAY" D HELP4^WVBRNEDH
|
---|
| 47 | D ^DIR
|
---|
| 48 | I $D(DIRUT) S WVPOP=1 Q
|
---|
| 49 | S WVDDATE=Y
|
---|
| 50 | Q
|
---|
| 51 | ;
|
---|
| 52 | ;
|
---|
| 53 | CMGR ;EP
|
---|
| 54 | ;---> SELECT CASES FOR ONE CASE MANAGER OR ALL.
|
---|
| 55 | ;---> DO NOT PROMPT FOR CASE MANAGER IF SITE PARAMETERS SAY NOT TO.
|
---|
| 56 | I '$D(^WV(790.02,DUZ(2),0)) S WVE=1 Q
|
---|
| 57 | I '$P(^WV(790.02,DUZ(2),0),U,5) S WVE=1 Q
|
---|
| 58 | W !!?3,"Report on all patients for ONE particular Case Manager,"
|
---|
| 59 | W !?3,"or report on all patients for ALL Case Managers?"
|
---|
| 60 | N DIR,DIRUT,Y
|
---|
| 61 | S DIR("A")=" Select ONE or ALL: ",DIR("B")="ALL",WVMGR=""
|
---|
| 62 | S DIR(0)="SAM^o:ONE;a:ALL" D HELP3^WVBRNEDH
|
---|
| 63 | D ^DIR K DIR
|
---|
| 64 | I Y=-1!($D(DIRUT)) S WVPOP=1 Q
|
---|
| 65 | ;---> IF ALL CASE MANAGERS, S WVE=1 AND QUIT.
|
---|
| 66 | I Y="a" S WVE=1 Q
|
---|
| 67 | ;
|
---|
| 68 | W !!," Select the Case Manager whose patients you wish to browse."
|
---|
| 69 | D DIC^WVFMAN(790.01,"QEMA",.Y," Select CASE MANAGER: ")
|
---|
| 70 | I Y<0 S WVPOP=1 Q
|
---|
| 71 | ;---> FOR ONE CASE MANAGER, SET WVE=0 AND WVMGR=^VA(200 DFN, QUIT.
|
---|
| 72 | S WVMGR=+Y,WVE=0
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | ;
|
---|
| 76 | ORDER ;EP
|
---|
| 77 | ;---> ASK ORDER BY DATE DELINQUENT OR BY PATIENT NAME.
|
---|
| 78 | ;---> SORT SEQUENCE IN WVB: 1=DELINQ DATE (DEFAULT), 2=PATIENT NAME
|
---|
| 79 | ;---> 3=PRIMARY CARE PROVIDER
|
---|
| 80 | N DIR,DIRUT,Y S WVB=1
|
---|
| 81 | W !!?3,"Display Procedures in order of:"
|
---|
| 82 | W ?37,"1) DATE DELINQUENT (earliest first)"
|
---|
| 83 | W !?37,"2) PATIENT NAME (alphabetically)"
|
---|
| 84 | W !?37,"3) PRIMARY CARE PROVIDER (alphabetically)"
|
---|
| 85 | S DIR("A")=" Selection ",DIR("B")=1
|
---|
| 86 | S DIR(0)="SAM^1:DATE DELINQUENT;2:PATIENT NAME;3:PRIMARY CARE PROVIDER"
|
---|
| 87 | D HELP2^WVBRNEDH
|
---|
| 88 | D ^DIR K DIR
|
---|
| 89 | I Y=-1!($D(DIRUT)) S WVPOP=1 Q
|
---|
| 90 | S WVB=Y
|
---|
| 91 | Q
|
---|
| 92 | ;
|
---|
| 93 | DEVICE ;EP
|
---|
| 94 | ;---> GET DEVICE AND POSSIBLY QUEUE TO TASKMAN.
|
---|
| 95 | S ZTRTN="DEQUEUE^WVBRNED"
|
---|
| 96 | F WVSV="A","B","E","DDATE","MGR" D
|
---|
| 97 | .I $D(@("WV"_WVSV)) S ZTSAVE("WV"_WVSV)=""
|
---|
| 98 | ;---> SAVE CURRENT COMMUNITY ARRAY.
|
---|
| 99 | I $D(WVCC) N N S N=0 F S N=$O(WVCC(N)) Q:N="" D
|
---|
| 100 | .S ZTSAVE("WVCC("""_N_""")")=""
|
---|
| 101 | D ZIS^WVUTL2(.WVPOP,1,"HOME")
|
---|
| 102 | Q
|
---|
| 103 | ;
|
---|
| 104 | SORT ;EP
|
---|
| 105 | ;---> SORT AND STORE LOCAL ARRAY IN ^TMP("WV",$J,1,
|
---|
| 106 | ;---> WVA=1 SAYS INCLUDE PATIENTS WITH UNDETERMINED NEEDS.
|
---|
| 107 | ;---> 5 & 8 ARE IENS IN ^WV(790.5, AND ^WV(790.51 GLOBALS FOR "UNDETERMINED".
|
---|
| 108 | ;
|
---|
| 109 | K ^TMP("WV",$J) N N,Y,WVBRTXND,WVCXTXND
|
---|
| 110 | S N=0
|
---|
| 111 | S WVBRTXND=$$IEN^WVUTL9(790.51,"Not Indicated")
|
---|
| 112 | S WVCXTXND=$$IEN^WVUTL9(790.5,"Not Indicated")
|
---|
| 113 | F S N=$O(^WV(790,N)) Q:'N D
|
---|
| 114 | .S Y=^WV(790,N,0)
|
---|
| 115 | .;---> QUIT IF PATIENT IS INACTIVE.
|
---|
| 116 | .Q:$P(Y,U,24)
|
---|
| 117 | .;---> IF DEAD, SET INACTIVE DATE TO DATE OF DEATH
|
---|
| 118 | .I $$DECEASED^WVUTL1($P(Y,U)) D
|
---|
| 119 | ..N DA,DR,DIE
|
---|
| 120 | ..S DIE="^WV(790,",DA=$P(Y,U)
|
---|
| 121 | ..S DR=".24////"_$P($$GET1^DIQ(2,DA,.351,"I"),".") ;date only
|
---|
| 122 | ..N X,Y
|
---|
| 123 | ..D ^DIE
|
---|
| 124 | ..Q
|
---|
| 125 | .;---> QUIT IF BOTH TX NEEDS ARE "NOT INDICATED"
|
---|
| 126 | .I $P(Y,U,18)=WVBRTXND,$P(Y,U,11)=WVCXTXND Q
|
---|
| 127 | .;---> QUIT IF LOOKING FOR ONE CASE MANAGER AND THIS DOESN'T MATCH.
|
---|
| 128 | .I 'WVE Q:$P(Y,U,10)'=WVMGR
|
---|
| 129 | .;---> IF WVA=0, DON'T INCLUDE BECAUSE OF UNDETERMINED NEEDS.
|
---|
| 130 | .I 'WVA D Q
|
---|
| 131 | ..;---> ONLY IF IT'S A SPECIFIED NEED AND IT'S DELINQUENT, INCLUDE.
|
---|
| 132 | ..I 5'[$P(Y,U,11)&($P(Y,U,12)<WVDDATE) D SET Q
|
---|
| 133 | ..I 8'[$P(Y,U,18)&($P(Y,U,19)<WVDDATE) D SET Q
|
---|
| 134 | .;---> IF WVA=1, INCLUDE BECAUSE OF UNDETERMINED NEEDS.
|
---|
| 135 | .I 5[$P(Y,U,11)!(8[$P(Y,U,18)) D SET Q
|
---|
| 136 | .;---> IF EITHER NEED IS DELINQUENT, INCLUDE.
|
---|
| 137 | .I $P(Y,U,12)<WVDDATE!($P(Y,U,19)<WVDDATE) D SET
|
---|
| 138 | Q
|
---|
| 139 | ;
|
---|
| 140 | ;
|
---|
| 141 | COPYGBL ;EP
|
---|
| 142 | ;---> COPY ^TMP("WV",$J,1 TO ^TMP("WV",$J,2 TO MAKE IT FLAT.
|
---|
| 143 | N I,M,N
|
---|
| 144 | S N=-1,I=0
|
---|
| 145 | F S N=$O(^TMP("WV",$J,1,N)) Q:N="" D
|
---|
| 146 | .S M=-1
|
---|
| 147 | .F S M=$O(^TMP("WV",$J,1,N,M)) Q:M="" D
|
---|
| 148 | ..S I=I+1,^TMP("WV",$J,2,I)=^TMP("WV",$J,1,N,M)
|
---|
| 149 | Q
|
---|
| 150 | ;
|
---|
| 151 | SET ;EP
|
---|
| 152 | ;---> SORT SEQUENCE IN WVB: 1=DELINQ DATE (DEFAULT), 2=PATIENT NAME
|
---|
| 153 | ;---> 3=PRIMARY CARE PROVIDER
|
---|
| 154 | N Z S WVDFN=$P(Y,U) D PATVARS^WVUTL3(WVDFN)
|
---|
| 155 | S Z=WVCHRT_U_WVNAME_U_WVCMGR_U_WVCNEED_U_WVBNEED_U_WVDFN
|
---|
| 156 | S WVJPCP=$$PROVI^WVUTL1A(WVDFN)
|
---|
| 157 | I WVB=1 D Q
|
---|
| 158 | .S WVPDAT=+$P(Y,U,12),WVMDAT=+$P(Y,U,19)
|
---|
| 159 | .I WVPDAT,WVMDAT S ^TMP("WV",$J,1,$S(WVPDAT<WVMDAT:WVPDAT,1:WVMDAT),WVNAME)=Z Q
|
---|
| 160 | .I WVPDAT S ^TMP("WV",$J,1,WVPDAT,WVNAME)=Z Q
|
---|
| 161 | .S ^TMP("WV",$J,1,WVMDAT,WVNAME)=Z
|
---|
| 162 | .Q
|
---|
| 163 | I WVB=2 S ^TMP("WV",$J,1,WVNAME,WVDFN)=Z
|
---|
| 164 | I WVB=3 S ^TMP("WV",$J,1,WVJPCP,WVNAME)=Z
|
---|
| 165 | Q
|
---|
| 166 | ;
|
---|
| 167 | ;
|
---|
| 168 | DEQUEUE ;EP
|
---|
| 169 | ;---> TASKMAN QUEUE OF PRINTOUT.
|
---|
| 170 | D SETVARS^WVUTL5,SORT,COPYGBL,^WVBRNED1,EXIT
|
---|
| 171 | Q
|
---|
| 172 | ;
|
---|
| 173 | PRINTX ;EP
|
---|
| 174 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
| 175 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" W !,T,$P(X,";;",2)
|
---|
| 176 | Q
|
---|