Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

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         ;
     1SCRPTP3 ;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 ;
     6HITS(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 ;
     73TPAR(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 ;
     120ENRL(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 ;
     136CHK(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.