Changeset 623 for WorldVistAEHR/trunk/r/SCHEDULING-SD-SC/SCRPTP3.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/SCHEDULING-SD-SC/SCRPTP3.m
r613 r623 1 SCRPTP3 ;ALB/CMM - List of Team's Patients ; 29 Jun 99 04:11PM 2 ;;5.3;Scheduling;**41,48,98,177,231,433,526,520**;AUG 13, 1993;Build 26 3 ;;DMR BP-OIFO Patch SD*5.3*526 4 ; 5 ;List of Team's Patients Report 6 ; 7 HITS(ARRY,TIEN) ; 8 ;ARRY - list of patients for a given team 9 ;TIEN - team ien 10 ; 11 N PTIEN,PIEN,PTNAME,PNAME,PTAI,NXT,NODE,CIEN,CNAME,INAME,INST,LAST,NEXT 12 N PAIEN,PC,PHONE,PNODE,PTPA,PTPAN,ROL,PID,TINFO,TNAME,TPIEN,TPNODE 13 N CNT,TPA,FLAG,DFN,VA,VAERR,PCAP,ROLN 14 S INACTIVE=0 15 S NXT=0 16 F S NXT=$O(@ARRY@(NXT)) Q:NXT=""!(NXT'?.N) D 17 .S NODE=$G(@ARRY@(NXT)) 18 .Q:NODE="" 19 .S PTIEN=+$P(NODE,"^") ;patient ien 20 .S PTNAME=$P(NODE,"^",2) ;patient name 21 .S PTAI=+$P(NODE,"^",3) ;patient team assignment ien (#404.42) 22 .; 23 .S PNODE=$G(^DPT(PTIEN,0)) 24 .Q:PNODE="" 25 .S DFN=PTIEN 26 .D PID^VADPT6 27 .;S PID=VA("BID") 28 .S PID=$E(VA("PID"),1,3)_$E(VA("PID"),5,6)_$E(VA("PID"),8,12) 29 .; 30 .N CNAME,PINF,CLIEN 31 .S CNT="" 32 .F S CNT=$O(^SCPT(404.43,"B",PTAI,CNT)) Q:CNT=""!(CNT'?.N) D 33 ..D TPAR(PTAI,CNT,.PINF,.CNAME,.CLIEN,.PNAME,.ROLN,.PCAP) 34 Q 35 ; 36 TPAR(PTAI,START,PINF,CNAME,CLIEN,PNAME,ROLN,PCAP) ; 37 N PTPA,TPIEN,TPNODE,ROL,CIEN,ENROLL,OKAY,NEXT,LAST,PAIEN 38 I '$D(^SCPT(404.43,"B",PTAI)) Q "0^[Not Assigned]" 39 ; ^ no patient team position assignment 40 IF START="" D 41 .S PTPA=$O(^SCPT(404.43,"B",PTAI,START)) 42 ELSE D 43 .S PTPA=START 44 I PTPA="" Q "0^[Not Assigned]" 45 S PTPAN=$G(^SCPT(404.43,PTPA,0)) ;patient team assignment 46 I PTPAN=""!(PTPAN=0) Q "0^[Not Assigned]" 47 I $P(PTPAN,"^",4)'="",$P(PTPAN,"^",4)<DT Q -1 48 S TPIEN=+$P(PTPAN,"^",2) ;team position ien (#404.57) 49 I '$D(^SCTM(404.57,TPIEN,0)) Q "0^[Not Assigned]" 50 S TPNODE=$G(^SCTM(404.57,TPIEN,0)) 51 I TPNODE="" Q "0^[Not Assigned]" 52 S ROL=+$P(TPNODE,"^",3) ;role for position (ien) 53 Q:'$D(ROLE(ROL))&(ROLE'=1) -1 54 ; ^ not a selected role 55 S ROLN=$P($G(^SD(403.46,ROL,0)),U) ;role name 56 ; 57 S PCAP=$S($P(PTPAN,U,5)<1:"NPC",+$$OKPREC3^SCMCLK(TPIEN,DT)>0:" AP",1:"PCP") ;PC? 58 ; 59 D SETASCL^SCRPRAC2(TPIEN,.CNAME,.CLIEN) 60 ;next two lines commented off - SD*5.3*433 61 ;S ENROLL=$$ENRL(PTIEN,CIEN) ;enrolled in associated clinic 62 ;I 'ENROLL S CNAME="",CIEN=0 63 ; 64 S PAIEN=$$CHK(TPIEN) 65 I +PAIEN'=0 S PIEN=+PAIEN,PNAME=$P(PAIEN,"^",2) ; practitioner's name 66 ;SD*5.3*231 67 I +PAIEN=0 S PIEN=0,PNAME="[Inactive Position]" 68 ; 69 D GETPINF^SCRPPAT2(PTIEN,.CLIEN,.PINF) ;get patient info 70 S CNAME=$G(CNAME(0)) 71 S PINF=$G(PINF(0)) 72 I PINF="" D 73 .S PINF=PIEN_"^"_$$PDATA^SCRPEC(PIEN,CNAME,CNAME,1) 74 I INACTIVE S @STORE@(INS,TIEN,"INACT")="" 75 S FLAG="Y" 76 S TINFO=$$TINF^SCRPTP(TIEN) ;team information 77 S INST=+$P(TINFO,"^") ;institution ien 78 S INAME=$P($G(^DIC(4,INST,0)),"^") ;institution name 79 S PHONE=$P(TINFO,"^",4) ;team phone 80 S PC=$P(TINFO,"^",3) ;primary care? 81 S TNAME=$P(TINFO,"^",2) ;team name 82 D TFORMAT^SCRPTP2(INST,INAME,TIEN,TNAME,PHONE,PC) 83 D FORMAT^SCRPTP(INS,TIEN,PTIEN,PTNAME,PID,PIEN,PNAME,CNAME,PINF,ROLN,PCAP) 84 N SCCNT 85 S SCCNT=0 F S SCCNT=$O(CNAME(SCCNT)) Q:SCCNT="" D FORMATAC^SCRPTP(SCCNT,CNAME(SCCNT),PINF(SCCNT),INS,TIEN,PTIEN,PTNAME,PID,PIEN,PNAME,ROLN,PCAP) 86 Q 87 ; 88 ENRL(PTIEN,CLIEN) ;FUNCTIONALITY DISABLED 89 ; 90 ;N FOUND,ENODE,EN,NXT 91 ;S FOUND=0 92 ;Q:'$D(^DPT(PTIEN,"DE","B",CLIEN)) FOUND 93 ;S EN=$O(^DPT(PTIEN,"DE","B",CLIEN,"")) 94 ;Q:EN=""!'$D(^DPT(PTIEN,"DE",EN,1)) FOUND 95 ;S NXT="" 96 ;F S NXT=$O(^DPT(PTIEN,"DE",EN,1,NXT)) Q:(FOUND)!(NXT="")!(NXT'?.N) D 97 ;check if active enrollment 98 ;S ENODE=$G(^DPT(PTIEN,"DE",EN,1,NXT,0)) 99 ;I $P(ENODE,"^",3)'="",$P(ENODE,"^",3)<DT+1!$P(ENODE,"^")>DT Q ;not active enrollment 100 ;; ^ discharge date ^ enrollment date 101 S FOUND=0 102 Q FOUND 103 ; 104 CHK(TPIEN) ;assigned to a position 105 ;TPIEN - ien of 404.57 Team Position file 106 ;returns: ien of 200 New Person file 107 N EN,PLIST,PERR,ERR,NAME 108 S PLIST="PLST",PERR="PRR" 109 K @PLIST,@PERR 110 S ERR=$$PRTP^SCAPMC8(TPIEN,,.PLIST,.PERR) 111 I '$D(@PERR) D 112 .S EN=$P($G(@PLIST@(1)),"^") ;ien of new person file 113 .S NAME=$P($G(@PLIST@(1)),"^",2) ; new person name 114 K @PLIST,@PERR 115 Q EN_"^"_NAME 116 ; 1 SCRPTP3 ;ALB/CMM - List of Team's Patients ; 29 Jun 99 04:11PM 2 ;;5.3;Scheduling;**41,48,98,177,231,433**;AUG 13, 1993 3 ; 4 ;List of Team's Patients Report 5 ; 6 HITS(ARRY,TIEN) ; 7 ;ARRY - list of patients for a given team 8 ;TIEN - team ien 9 ; 10 N PTIEN,PIEN,PTNAME,PNAME,PTAI,NXT,NODE,CIEN,CNAME,INAME,INST,LAST,NEXT 11 N PAIEN,PC,PHONE,PNODE,PTPA,PTPAN,ROL,PID,TINFO,TNAME,TPIEN,TPNODE 12 N CNT,TPA,FLAG,DFN,VA,VAERR,PCAP,ROLN 13 S INACTIVE=0 14 S NXT=0 15 F S NXT=$O(@ARRY@(NXT)) Q:NXT=""!(NXT'?.N) D 16 .S NODE=$G(@ARRY@(NXT)) 17 .Q:NODE="" 18 .S PTIEN=+$P(NODE,"^") ;patient ien 19 .S PTNAME=$P(NODE,"^",2) ;patient name 20 .S PTAI=+$P(NODE,"^",3) ;patient team assignment ien (#404.42) 21 .; 22 .S PNODE=$G(^DPT(PTIEN,0)) 23 .Q:PNODE="" 24 .S DFN=PTIEN 25 .D PID^VADPT6 26 .S PID=VA("BID") 27 .; 28 .S TPA=$$TPAR(PTAI,"") 29 .I TPA'=-1 D 30 ..S PIEN=$P(TPA,"^") 31 ..S PNAME=$P(TPA,"^",2) 32 ..S CNAME=$P(TPA,"^",3) 33 ..S LAST=$P(TPA,"^",4) 34 ..S NEXT=$P(TPA,"^",5) 35 ..; 36 ..S FLAG="Y" 37 ..S TINFO=$$TINF^SCRPTP(TIEN) ;team information 38 ..S INST=+$P(TINFO,"^") ;institution ien 39 ..S INAME=$P($G(^DIC(4,INST,0)),"^") ;institution name 40 ..S PHONE=$P(TINFO,"^",4) ;team phone 41 ..S PC=$P(TINFO,"^",3) ;primary care? 42 ..S TNAME=$P(TINFO,"^",2) ;team name 43 ..; 44 ..D TFORMAT^SCRPTP2(INST,INAME,TIEN,TNAME,PHONE,PC) 45 ..D FORMAT^SCRPTP(INST,TIEN,PTIEN,PTNAME,PID,PIEN,PNAME,CNAME,LAST,NEXT) 46 .; 47 .;check for other assignments 48 .N TPIN 49 .S CNT="" 50 .F S CNT=$O(^SCPT(404.43,"B",PTAI,CNT)) Q:CNT=""!(CNT'?.N) D 51 ..S TPIN=$$TPAR(PTAI,CNT) 52 ..Q:TPIN=-1 53 ..S PIEN=$P(TPIN,"^") 54 ..S PNAME=$P(TPIN,"^",2) 55 ..S CNAME=$P(TPIN,"^",3) 56 ..S LAST=$P(TPIN,"^",4) 57 ..S NEXT=$P(TPIN,"^",5) 58 ..S ROLN=$P(TPIN,U,6) 59 ..S PCAP=$P(TPIN,U,7) 60 ..I '$D(FLAG) D 61 ...S TINFO=$$TINF^SCRPTP(TIEN) ;team information 62 ...S INST=+$P(TINFO,"^") ;institution ien 63 ...S INAME=$P($G(^DIC(4,INST,0)),"^") ;institution name 64 ...S PHONE=$P(TINFO,"^",4) ;team phone 65 ...S PC=$P(TINFO,"^",3) ;primary care? 66 ...S TNAME=$P(TINFO,"^",2) ;team name 67 ...; 68 ...D TFORMAT^SCRPTP2(INST,INAME,TIEN,TNAME,PHONE,PC) 69 ..D FORMAT^SCRPTP(INST,TIEN,PTIEN,PTNAME,PID,PIEN,PNAME,CNAME,LAST,NEXT,ROLN,PCAP) 70 I INACTIVE S @STORE@(INST,TIEN,"INACT")="" 71 Q 72 ; 73 TPAR(PTAI,START) ; 74 N PTPA,TPIEN,TPNODE,ROL,CNAME,CIEN,ENROLL,OKAY,PNAME,NEXT,LAST,PAIEN 75 N ROLN,PCAP 76 I '$D(^SCPT(404.43,"B",PTAI)) Q "0^[Not Assigned]" 77 ; ^ no patient team position assignment 78 IF START="" D 79 .S PTPA=$O(^SCPT(404.43,"B",PTAI,START)) 80 ELSE D 81 .S PTPA=START 82 I PTPA="" Q "0^[Not Assigned]" 83 S PTPAN=$G(^SCPT(404.43,PTPA,0)) ;patient team position assignment node 84 I PTPAN=""!(PTPAN=0) Q "0^[Not Assigned]" 85 I $P(PTPAN,"^",4)'="",$P(PTPAN,"^",4)<DT Q -1 86 S TPIEN=+$P(PTPAN,"^",2) ;team position ien (#404.57) 87 I '$D(^SCTM(404.57,TPIEN,0)) Q "0^[Not Assigned]" 88 S TPNODE=$G(^SCTM(404.57,TPIEN,0)) 89 I TPNODE="" Q "0^[Not Assigned]" 90 S ROL=+$P(TPNODE,"^",3) ;role for position (ien) 91 Q:'$D(ROLE(ROL))&(ROLE'=1) -1 92 ; ^ not a selected role 93 S ROLN=$P($G(^SD(403.46,ROL,0)),U) ;role name 94 ; 95 S PCAP=$S($P(PTPAN,U,5)<1:"NPC",+$$OKPREC3^SCMCLK(TPIEN,DT)>0:" AP",1:"PCP") ;PC? 96 ; 97 S CIEN=+$P(TPNODE,"^",9) ;associated clinic ien 98 S CNAME=$P($G(^SC(CIEN,0)),"^") ;clinic name 99 ;check patient status 100 S OKAY="" 101 I CIEN>0&(PSTAT'=1) S OKAY=$$PST^SCRPTP(PTIEN,CIEN) 102 Q:(CIEN>0)&('OKAY)&(PSTAT'=1) -1 103 ; ^ not selected patient status 104 ; 105 ;next two lines commented off - SD*5.3*433 106 ;S ENROLL=$$ENRL(PTIEN,CIEN) ;enrolled in associated clinic 107 ;I 'ENROLL S CNAME="",CIEN=0 108 ; 109 S PAIEN=$$CHK(TPIEN) 110 I +PAIEN'=0 S PIEN=+PAIEN,PNAME=$P(PAIEN,"^",2) ; practitioner's name 111 ;SD*5.3*231 112 I +PAIEN=0 S PIEN=0,PNAME="[Inactive Position]" 113 ; 114 S (NEXT,LAST)="" 115 I +CIEN>0 S NEXT=$$GETNEXT^SCRPU3(PTIEN,CIEN) ;next appointment 116 I +CIEN>0 S LAST=$$GETLAST^SCRPU3(PTIEN,CIEN) ;last appointment 117 ; 118 Q PIEN_U_PNAME_U_CNAME_U_LAST_U_NEXT_U_ROLN_U_PCAP 119 ; 120 ENRL(PTIEN,CLIEN) ; 121 ; 122 N FOUND,ENODE,EN,NXT 123 S FOUND=0 124 Q:'$D(^DPT(PTIEN,"DE","B",CLIEN)) FOUND 125 S EN=$O(^DPT(PTIEN,"DE","B",CLIEN,"")) 126 Q:EN=""!'$D(^DPT(PTIEN,"DE",EN,1)) FOUND 127 S NXT="" 128 F S NXT=$O(^DPT(PTIEN,"DE",EN,1,NXT)) Q:(FOUND)!(NXT="")!(NXT'?.N) D 129 .;check if active enrollment 130 .S ENODE=$G(^DPT(PTIEN,"DE",EN,1,NXT,0)) 131 .I $P(ENODE,"^",3)'="",$P(ENODE,"^",3)<DT+1!$P(ENODE,"^")>DT Q ;not active enrollment 132 .; ^ discharge date ^ enrollment date 133 .S FOUND=1 134 Q FOUND 135 ; 136 CHK(TPIEN) ;assigned to a position 137 ;TPIEN - ien of 404.57 Team Position file 138 ;returns: ien of 200 New Person file 139 N EN,PLIST,PERR,ERR,NAME 140 S PLIST="PLST",PERR="PRR" 141 K @PLIST,@PERR 142 S ERR=$$PRTP^SCAPMC8(TPIEN,,.PLIST,.PERR) 143 I '$D(@PERR) D 144 .S EN=$P($G(@PLIST@(1)),"^") ;ien of new person file 145 .S NAME=$P($G(@PLIST@(1)),"^",2) ; new person name 146 K @PLIST,@PERR 147 Q EN_"^"_NAME 148 ;
Note:
See TracChangeset
for help on using the changeset viewer.