| 1 | SCMCTSK9 ;;BP/DMR - PCMM ; 18 Apr 2003  9:36 AM | 
|---|
| 2 | ;;5.3;Scheduling;**297,526**;AUG 13, 1993;Build 8 | 
|---|
| 3 | Q | 
|---|
| 4 | EXTKEY ; | 
|---|
| 5 | N Y,% W @IOF,!,$G(SCDHD) D NOW^%DTC S Y=% W:$X>(IOM-40) ! W ?(IOM-40) | 
|---|
| 6 | W $P("JAN^FEB^MAR^APR^MAY^JUN^JUL^AUG^SEP^OCT^NOV^DEC",U,$E(Y,4,5))_" " W:Y#100 $J(Y#100\1,2)_"," W Y\10000+1700 W:Y#1 "  "_$E(Y_0,9,10)_":"_$E(Y_"000",11,12) | 
|---|
| 7 | W ?(IOM-15),"PAGE: "_($G(DC)+1) | 
|---|
| 8 | S Y="",$P(Y,"-",IOM)="" W !,Y,!! | 
|---|
| 9 | W !,"Column Heading        Explanation of column headings" | 
|---|
| 10 | W ! | 
|---|
| 11 | W !,"Patient Name          Name of patient scheduled to be inactivated from their primary care team and position/provider." | 
|---|
| 12 | W !,"SSN                   SSN number." | 
|---|
| 13 | W !,"Institution           Institution name, previously called Division, in which patient receives primary care." | 
|---|
| 14 | W !,"PC Team               The patient's assigned Primary Care team in PCMM." | 
|---|
| 15 | W !,"Provider/             Name of Associate Primary Care Provider (AP) assigned to patient, if there is one." | 
|---|
| 16 | W !," Team Position        The name of the team position to which the Associate Primary Care Provider (AP) is assigned." | 
|---|
| 17 | W !,"Current Preceptor/    Name of Primary Care Provider (PCP) assigned to patient.  Every Primary Care patient should" | 
|---|
| 18 | W !," Team Position        be assigned to one PCP. The name of the team position to which the Primary Care Provider (PCP)" | 
|---|
| 19 | W !,"                      is assigned." | 
|---|
| 20 | W !,"Date Scheduled for    Date patient will be inactivated from PCMM and their Primary Care team and provider/position unless" | 
|---|
| 21 | W !," Inactivation         they have a completed outpatient appointment encounter with their current PCP or AP before this date." | 
|---|
| 22 | W !,"                      Note: There is a patient reassignment option, which allows an inactivated patient to be reactivated" | 
|---|
| 23 | W !,"                      to their previous Primary Care team and position if they return for care." | 
|---|
| 24 | W !,"Reason for Extended   The reason entered for extending the patient's time before inactivation from PC panels." | 
|---|
| 25 | W !," Inactivation         Entry of this field is in the PCMM GUI, Patient drop down menu, and the Extend Patient's Date for" | 
|---|
| 26 | W !,"                      Inactivation from PC Panels option." | 
|---|
| 27 | Q | 
|---|
| 28 | EXTCHUI ;roll n scroll option to extend a patient | 
|---|
| 29 | N DA,DIC,DIE,DR,SCTM,SCARRAY,SCHIGH,SCX,V1 | 
|---|
| 30 | S SCTM=0 F  D P1 Q:+SCTM<1 | 
|---|
| 31 | Q | 
|---|
| 32 | P1 D GCL S DIC="^SCTM(404.51,",DIC(0)="AEQMZ" D ^DIC S SCTM=+Y Q:+SCTM<1 | 
|---|
| 33 | W !,"Searching...",! | 
|---|
| 34 | D EXTEND(.SCARRAY,SCTM) | 
|---|
| 35 | I $G(^TMP("SCMCTSK9","OUT",$J,1))="<DATA>" W !,"No Patients to Extend..." D GCL Q | 
|---|
| 36 | S SCHIGH=$O(^TMP("SCMCTSK9","OUT",$J,9999999),-1) | 
|---|
| 37 | S SCX=999 F  Q:(SCX="^")!(SCX="")  D P2 | 
|---|
| 38 | Q | 
|---|
| 39 | P2 W !,"Select From:  ",!! | 
|---|
| 40 | S V1=0 F  S V1=$O(^TMP("SCMCTSK9","OUT",$J,V1)) Q:'V1  D | 
|---|
| 41 | . W $J(V1,2)_" ",$P(^TMP("SCMCTSK9","OUT",$J,V1),U,3),! | 
|---|
| 42 | F  W !,"Select 1-",SCHIGH," " R SCX:DTIME Q:(SCX="^")!(SCX="")!((SCX'>SCHIGH)&(SCX>0))  D | 
|---|
| 43 | . I $E(SCX,1)="?" W !,"Select 1-",SCHIGH," or '^' to exit" Q | 
|---|
| 44 | . I (+SCX<1)!(+SCX>SCHIGH) W !,"Select a valid number" Q | 
|---|
| 45 | I SCX'?1.9N Q | 
|---|
| 46 | S DIE="^SCPT(404.43," | 
|---|
| 47 | S DA=$P(^TMP("SCMCTSK9","OUT",$J,SCX),U) | 
|---|
| 48 | S DR=".13//DO NOT EXTEND;S Y=.16 I X=4 S Y=.14;.14;.16////"_DUZ | 
|---|
| 49 | D ^DIE | 
|---|
| 50 | Q | 
|---|
| 51 | EXTEND(DATA,SCTEAM) ;return list of patients to inactivate in next 60 days | 
|---|
| 52 | ;IEN^POSITION^PATIENT^EXTENDED^REASON | 
|---|
| 53 | K DATA,SCDATA,SDDATA | 
|---|
| 54 | N CNT,I,J,K,A,POSA S CNT=1 S SCTEAM=$G(SCTEAM),^TMP("SCMCTSK9","OUT",$J,1)="<DATA>" | 
|---|
| 55 | D DT^DICRW S X="T-9M" D ^%DT S STDT=Y | 
|---|
| 56 | S X="T-21M" D ^%DT S TYDT=+Y  ;MAKE THIS 21 | 
|---|
| 57 | S POSA="" | 
|---|
| 58 | F  S POSA=$O(^SCTM(404.57,"ATMPOS",+SCTEAM,POSA)) Q:POSA=""  D | 
|---|
| 59 | .F POS=0:0 S POS=$O(^SCTM(404.57,"ATMPOS",+SCTEAM,POSA,POS)) Q:'POS  D POS | 
|---|
| 60 | EX1 S A="^TMP(""SCMCTSK9"",$J)",CNT=1 F  S A=$Q(@A) Q:A=""!($P(A,",",2)'=$J)  D | 
|---|
| 61 | .S B=@A | 
|---|
| 62 | .S ^TMP("SCMCTSK9","OUT",$J,CNT)=(+$P(B,U,3))_U_$TR($P($P(A,"(",4),","),$C(34))_U_$TR($P(B,U,2),$C(34))_U_$P($G(^SCPT(404.43,+$P(B,U,3),0)),U,13)_U_$P($G(^SCPT(404.43,+$P(B,U,3),0)),U,14) | 
|---|
| 63 | .S CNT=CNT+1 | 
|---|
| 64 | Q | 
|---|
| 65 | POS I '$$DATES^SCAPMCU1(404.59,POS) Q   ;Not an active position | 
|---|
| 66 | I '$P($G(^SCTM(404.57,POS,0)),U,4) Q  ;Not PC | 
|---|
| 67 | ;get patients for this position | 
|---|
| 68 | K ^TMP("SC TMP LIST",$J) | 
|---|
| 69 | S X=$$PTTP^SCAPMC(POS,"",.SCLIST,.SCERR) | 
|---|
| 70 | S J=0 F  S J=$O(@SCLIST@(J)) Q:'J  S SCDATA=^(J) D | 
|---|
| 71 | .N J I $P(SCDATA,U,4)>STDT Q | 
|---|
| 72 | .I '$P($G(^SCPT(404.43,+$P(SCDATA,U,3),0)),U,5) Q | 
|---|
| 73 | .I '$P($G(^SCPT(404.43,+$P(SCDATA,U,3),0)),U,15) Q | 
|---|
| 74 | .S DFN=+SCDATA | 
|---|
| 75 | .D SEEN Q:SEEN | 
|---|
| 76 | .S ^TMP("SCMCTSK9",$J,$P($G(^SCTM(404.57,POS,0)),U),$P(SCDATA,U,2),+SCDATA)=SCDATA,CNT=CNT+1 | 
|---|
| 77 | K @SCLIST | 
|---|
| 78 | Q | 
|---|
| 79 | SEEN ;was patient seen | 
|---|
| 80 | S SEEN=0 | 
|---|
| 81 | N SCPRO,I,PRECP,PRO | 
|---|
| 82 | N X,SCPRDTS,SCPR | 
|---|
| 83 | ;get list of providers for this position | 
|---|
| 84 | S PROV=+$$GETPRTP^SCAPMCU2(POS,DT) S SCPRO(+PROV)="" | 
|---|
| 85 | S SCPRDTS("BEGIN")=TYDT | 
|---|
| 86 | S SCPRDTS("END")=DT | 
|---|
| 87 | S X=$$PRTP^SCAPMC(POS,"SCPRDTS","SCPR") | 
|---|
| 88 | F I=0:0 S I=$O(SCPR(I)) Q:'I  S SCPRO(+SCPR(I))="" | 
|---|
| 89 | S PRECP=0 I $G(PREC),$G(PREC)'=POS S PRECP=+$$GETPRTP^SCAPMCU2(PREC,DT),SCPRO(+PRECP)="" | 
|---|
| 90 | F I=TYDT:0 S I=$O(^SCE("ADFN",DFN,I)) Q:'I  D  Q:SEEN | 
|---|
| 91 | .F J=0:0 S J=$O(^SCE("ADFN",DFN,I,J)) Q:'J  D  Q:SEEN | 
|---|
| 92 | ..N VISIT S VISIT=+$P($G(^SCE(J,0)),U,5) I $G(^SCE(J,0))<$G(TYDT) Q | 
|---|
| 93 | ..F PRO=0:0 S PRO=$O(SCPRO(PRO)) Q:'PRO  D  Q:SEEN | 
|---|
| 94 | ...I $D(^SDD(409.44,"AO",J,$G(PRO))) S SEEN=1 Q  ;GET THE PROVIDERJ | 
|---|
| 95 | ...N V F V=0:0 S V=$O(^AUPNVPRV("AD",VISIT,V)) Q:'V  I PRO=(+$G(^AUPNVPRV(V,0))) S SEEN=1 Q | 
|---|
| 96 | Q | 
|---|
| 97 | GCL ;clean temp globals | 
|---|
| 98 | K ^TMP("SCMCTSK9",$J) | 
|---|
| 99 | K ^TMP("SCMCTSK9","OUT",$J) | 
|---|
| 100 | Q | 
|---|