| [613] | 1 | RTSM8 ;isc-albany/pke-check records for retirement ; 10/1/90 ; 1/7/03 11:51am
 | 
|---|
 | 2 |  ;;2.0;Record Tracking;**4,14,30,34**;10/22/91
 | 
|---|
 | 3 |  D ASK^RTSM81 I '$D(RTERM) D Q10 Q
 | 
|---|
 | 4 |  I RTERM="NO" D GO,Q10 Q
 | 
|---|
 | 5 |  ; file 194.3 only needed if user chooses to do a terminal digit scan
 | 
|---|
 | 6 |  I $D(^RTV(194.3,1,0)),($E($P(^(0),"^",3),1,3))'=($E(DT,1,3)) DO  Q
 | 
|---|
 | 7 |  .W !!,*7,"The RECORD TRACKING SORT GLOBAL file(#194.3) "
 | 
|---|
 | 8 |  .I '$P(^(0),"^",2),'$P(^(0),"^",3) W "needs to be compiled"
 | 
|---|
 | 9 |  .;naked ref rtv(194.3,1,0)
 | 
|---|
 | 10 |  .E  I $E($P(^(0),U,2),1,7)=$E(DT,1,7),'$P(^(0),"^",3) W "is currently being compiled" D Q10 Q
 | 
|---|
 | 11 |  .E  W "needs additional compiling"
 | 
|---|
 | 12 |  .D CHKQ^RTSM4,Q10
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  K DIR W !
 | 
|---|
 | 15 |  ;S DIR("A")="Select a Terminal Digit or range",DIR("B")="1"
 | 
|---|
 | 16 |  S DIR("A",1)="Select a Terminal Digit or range.  Although a maximum"
 | 
|---|
 | 17 |  S DIR("A")="of 50 is allowed, we recommend a maximum of 10"
 | 
|---|
 | 18 |  S DIR("B")="1"
 | 
|---|
 | 19 |  S DIR("?")="Enter a single terminal digit or a range, maximum 50, "
 | 
|---|
 | 20 |  S DIR("??")="^D H1^RTSM81"
 | 
|---|
 | 21 |  S DASH="-",COM=""",""",DAS="""-"""
 | 
|---|
 | 22 |  S IF="K:X["_COM_" X I $D(X),X["_DAS_",$P(X,DASH,2)-$P(X,DASH,1)>49 K X"
 | 
|---|
 | 23 |  S DIR(0)="L^0:99"
 | 
|---|
 | 24 |  S DIR(0)=DIR(0)_"^"_IF
 | 
|---|
 | 25 |  D ^DIR I $D(DUOUT)!($D(DTOUT)) D Q10 Q
 | 
|---|
 | 26 |  F I=1:1 Q:'$L($P(Y,",",I))  I $L($P(Y,",",I))=1 S $P(Y,",",I)="0"_$P(Y,",",I)
 | 
|---|
 | 27 |  S RTERM=Y K X,Y
 | 
|---|
 | 28 | GO W !!
 | 
|---|
 | 29 |  S RTDESC="Record Retirement Pull List(s) ["_$P($P(RTAPL,"^"),";",2)_"]",RTVAR="RTDESC^RTERM^RTAPL^RTFR",RTPGM="START^RTSM8" S IOP="HOME" D ^%ZIS K IOP D ZIS^RTUTL
 | 
|---|
 | 30 |  I POP D Q10 Q
 | 
|---|
 | 31 |  W !!
 | 
|---|
 | 32 | START S (RTAA,RTA)=+RTAPL,RTB=+RTFR,RTLAST=$P(^RT(0),"^",3)
 | 
|---|
 | 33 |  ;check if mas or rad
 | 
|---|
 | 34 |  S RTDPT=1 I RTA'=+^DIC(195.4,1,"MAS"),RTA'=+^("RAD") S RTDPT=0
 | 
|---|
 | 35 |  D FLAG^RTSM81
 | 
|---|
 | 36 |  S (RTCOUNT,RTHIT)=0 S CR=$C(13,10),MOD=100 I $E(IOST,1,2)="C-" S CR=$C(13),MOD=10
 | 
|---|
 | 37 |  K RTR I RTERM="NO" S RTDPT=0 F RTR=0:0 S RTR=$O(^RT(RTR)) Q:'RTR  I $D(^(RTR,0)) S RTEE=$P(^(0),"^") D RCHECK
 | 
|---|
 | 38 |  I $D(RTR) D Q10 Q
 | 
|---|
 | 39 |  ;F RTRM0=1:1 S RTRM=$P(RTERM,",",RTRM0) Q:RTRM=""  S RTTD=$S($D(RTSTART):RTSTART,1:RTRM_"0000000") K RTSTART F RTRM1=0:0 S RTTD=$O(^UTILITY("RTDPTSORT",RTTD)) Q:$E(RTTD,1,2)'=RTRM!(RTTD="")  S DFN=+$O(^(RTTD,0)) I DFN D TDCHECK
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  F RTRM0=1:1 S RTRM=$P(RTERM,",",RTRM0) Q:RTRM=""  DO
 | 
|---|
 | 42 |  .S RTTD=$S($D(RTSTART):RTSTART,1:RTRM_"0000000") K RTSTART
 | 
|---|
 | 43 |  .S RTRM1=0
 | 
|---|
 | 44 |  .FOR  S RTTD=$O(^RTV(194.3,1,1,"AC",RTTD)) Q:$E(RTTD,1,2)'=RTRM!(RTTD="")  DO
 | 
|---|
 | 45 |  . .S DFN=0
 | 
|---|
 | 46 |  . .F  S DFN=$O(^RTV(194.3,1,1,"AC",RTTD,DFN)) Q:'DFN  D TDCHECK
 | 
|---|
 | 47 |  ;
 | 
|---|
 | 48 |  K RTRM0,RTRM1,RTNME,RTNME0,RTRM,RTTD,DFN,RTFLAG,RTWND D Q10 Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | TDCHECK S RTEE=DFN_";DPT(" K RTPHIST
 | 
|---|
 | 51 | RCHECK I $D(^RT("AA",RTAA,RTEE)) F RTT=0:0 S RTT=$O(^RT("AA",RTAA,RTEE,RTT)) Q:'RTT  D REC
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 | REC I 'RTCOUNT D HDR^RTSM81
 | 
|---|
 | 54 |  I RTCOUNT#MOD=0 W CR_$J(RTCOUNT,10)_" Records Checked  ",$J(RTHIT,6)," Inactive Records   ",$S(RTERM'="NO":$J(RTRM,5)_"  tdigits",1:$J(RTR,8)_"  rec #")
 | 
|---|
 | 55 |  S RTCOUNT=RTCOUNT+1
 | 
|---|
 | 56 |  I RTDPT,$D(RTPHIST(1)) Q
 | 
|---|
 | 57 |  I $D(^RT("AR","t",RTT)) Q
 | 
|---|
 | 58 |  I $D(^RT("AR","r",RTT)) Q
 | 
|---|
 | 59 |  Q:'$D(^RT(RTT,0))  Q:'$D(^("CL"))  S RT0=^(0),RTCL=^("CL")
 | 
|---|
 | 60 |  Q:$P(RT0,"^",4)'=+RTAPL
 | 
|---|
 | 61 |  ; type of record, date/time charged, ok to retire
 | 
|---|
 | 62 |  S RTI=$P(RT0,"^",3) I $S('$D(RTFLAG(RTI)):1,'RTFLAG(RTI):1,1:0) Q
 | 
|---|
 | 63 |  S RTDT=$P(RTCL,"^",6)
 | 
|---|
 | 64 |  ;naked ref to ^rt(rtt,i) tag rec+6
 | 
|---|
 | 65 |  I $D(^("I")),^("I") Q
 | 
|---|
 | 66 |  ;
 | 
|---|
 | 67 |  I RTDPT,'$D(RTPHIST) D DPTCHK S RTPHIST($T)="" I $T Q
 | 
|---|
 | 68 |  ;
 | 
|---|
 | 69 |  ;only if not mas,rad
 | 
|---|
 | 70 |  I 'RTDPT,RTDT,RTDT'<RTFLAG(RTI) Q
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 |  ;creat list by current location, home location, unknown
 | 
|---|
 | 73 |  S RTP=$P(RTCL,"^",5) I 'RTP S RTP=$P(RT0,"^",6) I 'RTP S (Y,RTP)="LOCATION UNKNOWN" IF 1
 | 
|---|
 | 74 |  E  S Y=RTP D BOR^RTB I Y="UNKNOWN" S Y="LOCATION"_Y
 | 
|---|
 | 75 |  S Y="RR "_Y
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 |  ;
 | 
|---|
 | 78 |  K RTP
 | 
|---|
 | 79 |  S RTHIT=RTHIT+1
 | 
|---|
 | 80 |  S RTB=+RTFR,RT=RTT
 | 
|---|
 | 81 |  ;have RTTM, Y
 | 
|---|
 | 82 |  S RTE=RTEE
 | 
|---|
 | 83 |  S RTPLTY=3,(RTQDT,X)=RTTM,RTPN=$P(Y,"^")_" ["_$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3)_"]"
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | PUL S X=RTB,A=+RTAA K RTA,RTSD,RTDIV D INST1^RTUTL G Q10:'$D(RTINST) S RTDIV=RTINST
 | 
|---|
 | 86 |  D RTSD
 | 
|---|
 | 87 |  K RTBKGRD Q
 | 
|---|
 | 88 |  ;
 | 
|---|
 | 89 | RTSD K RTPAR S RTB=$P(^RTV(195.9,RTB,0),"^"),RTA=+RTAA D CHK K RTA,RTQ D PULL^RTQ2,CHK1 I '$D(RTPAR),$D(RTQ) S RTPAR=RTQ
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 | CHK S Y=+$O(^RTV(195.9,"ABOR",RTB,RTA,0)) D SET^RTDPA3:'Y S RTB=Y Q
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 | CHK1 ;
 | 
|---|
 | 94 |  ; RT*1*34 - this shortcut uses "AC" xref instead of "C"
 | 
|---|
 | 95 |  S R=0
 | 
|---|
 | 96 |  I $D(^RTV(190.1,"AC",RT,RTTM)) F R=0:0 S R=$O(^RTV(190.1,"AC",RT,RTTM,R)) Q:'R  I $D(^RTV(190.1,"ABOR",RTB,R)),$D(^RTV(190.1,R,0)) S Q0=^(0) I $P(Q0,U)=RT,$P(Q0,U,4)=RTTM,$P(Q0,U,5)=RTB,$P(Q0,U,10)=RTPULL Q
 | 
|---|
 | 97 |  I 'R D SET^RTQ
 | 
|---|
 | 98 |  ;F R=0:0 S R=$O(^RTV(190.1,"C",RTTM,R)) Q:'R  D INFO I $D(^RTV(190.1,"ABOR",RTB,R)),$D(^RTV(190.1,R,0)) S Q0=^(0) I $P(Q0,"^")=RT,$P(Q0,"^",4)=RTTM,$P(Q0,"^",5)=RTB,$P(Q0,"^",10)=RTPULL Q
 | 
|---|
 | 99 |  ;I 'R D SET^RTQ
 | 
|---|
 | 100 |  Q
 | 
|---|
 | 101 | INFO ;I R#100=0,'$D(ZTSK) W "."
 | 
|---|
 | 102 |  Q
 | 
|---|
 | 103 | Q10 K RTLSTM,RADPT,RTLOAD,RTMES1,RTERM,DIC,DIE,DR,DA,DAS,DASH,IF,DIR,COM,J,Z
 | 
|---|
 | 104 |  K RTCOUNT,RTHIT,RTLAST,R,RT0,RTAA,RTINST,RTPGM,RTVAR,CR,MOD,RTPHIST
 | 
|---|
 | 105 |  K Q0,RTDPT,RT,RTB,RTCL,RTDT,RTE,RTEE,RTERM,RTERM0,RTI,RTLOAD,RTPAR,RTPLTY,RTPN,RTPULL,RTQ,RTQDT,RTRM,RTRM0,RTT,RTTD,RTTM,RTTMM,RTWND,RTXX D CLOSE^RTUTL
 | 
|---|
 | 106 |  Q
 | 
|---|
 | 107 | DPTCHK ;returns $t=1 if dhcp activity
 | 
|---|
 | 108 |  S RTPHIST=1
 | 
|---|
 | 109 | FILED I $D(^DPT(DFN,0)),$P(^(0),"^",16)>RTFLAG(RTI) Q
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 | INPAT I $D(^DPT(DFN,.1)),$P(^(.1),"^")]"" Q
 | 
|---|
 | 112 |  ;
 | 
|---|
 | 113 | SC I $O(^DPT(DFN,"S",RTFLAG(RTI))) Q
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | SDV ;
 | 
|---|
 | 116 |  N RTZERR I $$EXAE^SDOE(DFN,RTFLAG(RTI)\1+1,9999999,,"RTZERR") Q  ;Standalone encounter exists
 | 
|---|
 | 117 |  ;
 | 
|---|
 | 118 | DIS I $O(^DPT(DFN,"DIS",0)),$O(^(0))<(9999999-RTFLAG(RTI)) Q
 | 
|---|
 | 119 |  ;
 | 
|---|
 | 120 | MOV I $O(^DGPM("APID",DFN,0)),$O(^(0))<(9999999-RTFLAG(RTI)) Q
 | 
|---|
 | 121 |  ;
 | 
|---|
 | 122 |  S RTPHIST=0
 | 
|---|
 | 123 |  Q
 | 
|---|