- SCRPTA ;ALB/CMM - Patient Listing w/Team Assignment Data ; 29 Jun 99 04:11PM
- ;;5.3;Scheduling;**41,48,52,114,174,181,177,526,1015**;AUG 13, 1993;Build 21
- ;IHS/ANMC/LJF 11/02/2000 changed 132 column message
- ; added call to list template
- ; moved PT ID column to fit 6 digits
- ;
- ;Patient Listing w/Team Assignment Data Report
- ;
- PROMPTS ;
- ;Prompt for Institution, Team, Role, Practitioner and Print device
- ;
- N PRNT,QTIME,NUMBER
- K VAUTD,VAUTT,VAUTR,VAUTP,VAUTPP,SCUP
- S QTIME=""
- W ! D INST^SCRPU1 I Y=-1 G ERR
- W ! K Y D PRMTT^SCRPU1 I '$D(VAUTT) G ERR
- W ! K Y D ROLE^SCRPU1 I '$D(VAUTR) G ERR
- W ! K Y S VAUTPP="" D PRACT^SCRPU1 K VAUTPP I '$D(VAUTP) G ERR
- ;W !!,"This report requires 132 column output!" ;IHS/ANMC/LJF 11/2/2000
- W !!,"This report, when printed on paper, requires wide paper or condensed print!" ;IHS/ANMC/LJF 11/2/2000
- D QUE(.VAUTD,.VAUTT,.VAUTR,.VAUTP) Q
- ;
- QUE(INST,TEAM,ROLE,PRACT) ;
- ;Input Parameters:
- ;INST - institutions selected (variable and array)
- ;TEAM - teams selected (variable and array)
- ;ROLE - roles selected (variable and array)
- ;PRACT - practitioners selected (variable and array)
- N ZTSAVE,II
- F II="INST","TEAM","ROLE","INST(","TEAM(","PRACT","PRACT(","ROLE(" S ZTSAVE(II)=""
- W ! D EN^XUTMDEVQ("QENTRY^SCRPTA","Patient Listing for Team Assignments",.ZTSAVE)
- Q
- ;
- ENTRY2(INST,TEAM,ROLE,PRACT,IOP,ZTDTH) ;
- ;Second entry point for GUI to use
- ;Input Parameters:
- ;INST - institutions selected (variable and array)
- ;TEAM - teams selected (variable and array)
- ;ROLE - roles selected (variable and array)
- ;PRACT - practitioners selected (variable and array)
- ;IOP - print device
- ;ZTDTH - queue time (optional)
- ;
- ;validate parameters
- I '$D(INST)!'$D(TEAM)!'$D(ROLE)!'$D(PRACT)!'$D(IOP)!(IOP="") Q
- ;
- N NUMBER
- S IOST=$P(IOP,"^",2),IOP=$P(IOP,"^")
- I IOP?1"Q;".E S IOP=$P(IOP,"Q;",2)
- I IOST?1"C-".E D QENTRY G RET
- I ZTDTH="" S ZTDTH=$H
- S ZTRTN="QENTRY^SCRPTA"
- S ZTDESC="Patient Listing w/Team Assignment",ZTIO=IOP
- N II
- F II="INST","TEAM","ROLE","INST(","TEAM(","PRACT","PRACT(","ROLE(","IOP" S ZTSAVE(II)=""
- D ^%ZTLOAD
- RET S NUMBER=0
- I $D(ZTSK) S NUMBER=ZTSK
- D EXIT1
- Q NUMBER
- ;
- QENTRY ;
- I $E(IOST,1,2)="C-" D ^BSDSCTA Q ;IHS/ANMC/LJF 11/2/2000
- IHS ;EP; entry point for list template ;IHS/ANMC/LJF 11/2/2000
- ;driver entry point
- S TITL="Patient Listing For Team Assignments"
- S STORE="^TMP("_$J_",""SCRPTA"")"
- K @STORE
- S @STORE=0
- I TEAM=1 D TALL^SCRPPAT3 S TEAM=0
- D FIND
- I $O(@STORE@(0))="" S NODATA=$$NODATA^SCRPU3(TITL)
- I '$D(NODATA) D PRINTIT(STORE,TITL)
- D EXIT2
- Q
- ;
- ERR ;
- EXIT1 ;
- K ZTDTH,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTSAVE,Y,SCUP
- Q
- ;
- EXIT2 ;
- K @STORE
- K STOP,STORE,TITL,IOP,TEAM,INST,ROLE,NODATA,PRACT
- Q
- ;
- FIND ;
- N NXT,TLIST,TERR,CNT,ERR1,TNODE,NODE1,PIEN,PTAIEN
- S NXT=0,TLIST="^TMP("_$J_",""SCRPTA"",""LIST1"")",TERR="ERR1"
- K @TLIST,@TERR
- F S NXT=$O(TEAM(NXT)) Q:NXT=""!(NXT'?.N) D
- .S ERR1=$$PTTM^SCAPMC2(NXT,,.TLIST,.TERR) ;Patients assigned to team NXT
- .Q:ERR1=0
- .S CNT=0
- .F S CNT=$O(@TLIST@(CNT)) Q:CNT=""!(CNT'?.N) D
- ..S TNODE=$G(@TLIST@(CNT))
- ..Q:TNODE=""
- ..S PIEN=+$P(TNODE,"^") ;patient ien
- ..S PTAIEN=+$P(TNODE,"^",3) ;ien Patient Team Assignment #404.42
- ..D CHK^SCRPTA2(PTAIEN,PIEN)
- .K @TLIST,@TERR
- K @TLIST,@TERR
- Q
- ;
- PRINTIT(STORE,TITL) ;
- N NXT,PAGE,NPAGE,INTN,TMN,INT,TM,PRN,PR,POS
- S (NPAGE,STOP,PAGE)=0,INTN="" W:$E(IOST)="C" @IOF
- D SHEAD ;setup headers
- F S INTN=$O(@STORE@("I",INTN)) Q:INTN=""!(STOP) D
- .S INT=$O(@STORE@("I",INTN,"")) ;institution
- .Q:INT=""
- .S TMN=""
- .F S TMN=$O(@STORE@("T",INT,TMN)) Q:TMN=""!(STOP) D
- ..S TM=$O(@STORE@("T",INT,TMN,"")) ;team
- ..Q:TM=""
- ..D NEWP1^SCRPU3(.PAGE,TITL,132) W !,$G(@STORE@(INT)),!!,$G(@STORE@(INT,TM))
- ..Q:STOP
- ..S PRN=""
- ..D HEADER
- ..F S PRN=$O(@STORE@("P",INT,TM,PRN)) Q:PRN=""!(STOP) D
- ...S PR=$O(@STORE@("P",INT,TM,PRN,"")) ;practitioner
- ...Q:PR=""
- ...S POS=""
- ...F S POS=$O(@STORE@("P",INT,TM,PRN,PR,POS)) Q:POS=""!(STOP) D
- ....D PRNT(INT,TM,PR,POS)
- I 'STOP,$E(IOST)="C" N DIR S DIR(0)="E" W ! D ^DIR
- Q
- ;
- PRNT(INT,TM,PR,POS) ;
- ;INT - institution ien
- ;TM - team ien
- ;PR - practitioner ien
- ;POS - position ien
- ;
- N PTIEN,PTNAME
- S PTNAME=""
- F S PTNAME=$O(@STORE@(INT,TM,PR,POS,PTNAME)) Q:PTNAME=""!(STOP) D
- .S PTIEN=""
- .F S PTIEN=$O(@STORE@(INT,TM,PR,POS,PTNAME,PTIEN)) Q:PTIEN=""!(STOP) D
- ..I (IOST'?1"C-".E),$Y>(IOSL-4) D NEWP1^SCRPU3(.PAGE,TITL,132) W:'STOP !,$G(@STORE@(INT)),!!,$G(@STORE@(INT,TM)) D:'STOP HEADER
- ..I (IOST?1"C-".E),$Y>(IOSL-4) D HOLD^SCRPU3(.PAGE,TITL,132) W:'STOP !,$G(@STORE@(INT)),!!,$G(@STORE@(INT,TM)) D:'STOP HEADER
- ..Q:STOP
- ..W !,$G(@STORE@(INT,TM,PR,POS,PTNAME,PTIEN))
- .Q
- Q
- ;
- ;write column headers
- N EN
- W !
- F EN="H1","H2","H3" D
- .W !,$G(@STORE@(EN))
- Q
- SHEAD ;
- ;setup column headers
- S @STORE@("H2")="Patient Name"
- ;S $E(@STORE@("H2"),19)="Pt ID"
- S $E(@STORE@("H2"),23)="Pt ID" ;IHS/ANMC/LJF 11/2/2000
- S $E(@STORE@("H1"),31)="Date"
- S $E(@STORE@("H2"),31)="Assigned"
- S $E(@STORE@("H2"),43)="PC?"
- S $E(@STORE@("H2"),49)="Practitioner"
- S $E(@STORE@("H2"),70)="Position"
- S $E(@STORE@("H2"),92)="Standard Role"
- S $E(@STORE@("H2"),113)="Preceptor"
- S $P(@STORE@("H3"),"=",133)=""
- Q
- SCRPTA ;ALB/CMM - Patient Listing w/Team Assignment Data ; 29 Jun 99 04:11PM
- +1 ;;5.3;Scheduling;**41,48,52,114,174,181,177,526,1015**;AUG 13, 1993;Build 21
- +2 ;IHS/ANMC/LJF 11/02/2000 changed 132 column message
- +3 ; added call to list template
- +4 ; moved PT ID column to fit 6 digits
- +5 ;
- +6 ;Patient Listing w/Team Assignment Data Report
- +7 ;
- PROMPTS ;
- +1 ;Prompt for Institution, Team, Role, Practitioner and Print device
- +2 ;
- +3 NEW PRNT,QTIME,NUMBER
- +4 KILL VAUTD,VAUTT,VAUTR,VAUTP,VAUTPP,SCUP
- +5 SET QTIME=""
- +6 WRITE !
- DO INST^SCRPU1
- IF Y=-1
- GOTO ERR
- +7 WRITE !
- KILL Y
- DO PRMTT^SCRPU1
- IF '$DATA(VAUTT)
- GOTO ERR
- +8 WRITE !
- KILL Y
- DO ROLE^SCRPU1
- IF '$DATA(VAUTR)
- GOTO ERR
- +9 WRITE !
- KILL Y
- SET VAUTPP=""
- DO PRACT^SCRPU1
- KILL VAUTPP
- IF '$DATA(VAUTP)
- GOTO ERR
- +10 ;W !!,"This report requires 132 column output!" ;IHS/ANMC/LJF 11/2/2000
- +11 ;IHS/ANMC/LJF 11/2/2000
- WRITE !!,"This report, when printed on paper, requires wide paper or condensed print!"
- +12 DO QUE(.VAUTD,.VAUTT,.VAUTR,.VAUTP)
- QUIT
- +13 ;
- QUE(INST,TEAM,ROLE,PRACT) ;
- +1 ;Input Parameters:
- +2 ;INST - institutions selected (variable and array)
- +3 ;TEAM - teams selected (variable and array)
- +4 ;ROLE - roles selected (variable and array)
- +5 ;PRACT - practitioners selected (variable and array)
- +6 NEW ZTSAVE,II
- +7 FOR II="INST","TEAM","ROLE","INST(","TEAM(","PRACT","PRACT(","ROLE("
- SET ZTSAVE(II)=""
- +8 WRITE !
- DO EN^XUTMDEVQ("QENTRY^SCRPTA","Patient Listing for Team Assignments",.ZTSAVE)
- +9 QUIT
- +10 ;
- ENTRY2(INST,TEAM,ROLE,PRACT,IOP,ZTDTH) ;
- +1 ;Second entry point for GUI to use
- +2 ;Input Parameters:
- +3 ;INST - institutions selected (variable and array)
- +4 ;TEAM - teams selected (variable and array)
- +5 ;ROLE - roles selected (variable and array)
- +6 ;PRACT - practitioners selected (variable and array)
- +7 ;IOP - print device
- +8 ;ZTDTH - queue time (optional)
- +9 ;
- +10 ;validate parameters
- +11 IF '$DATA(INST)!'$DATA(TEAM)!'$DATA(ROLE)!'$DATA(PRACT)!'$DATA(IOP)!(IOP="")
- QUIT
- +12 ;
- +13 NEW NUMBER
- +14 SET IOST=$PIECE(IOP,"^",2)
- SET IOP=$PIECE(IOP,"^")
- +15 IF IOP?1"Q;".E
- SET IOP=$PIECE(IOP,"Q;",2)
- +16 IF IOST?1"C-".E
- DO QENTRY
- GOTO RET
- +17 IF ZTDTH=""
- SET ZTDTH=$HOROLOG
- +18 SET ZTRTN="QENTRY^SCRPTA"
- +19 SET ZTDESC="Patient Listing w/Team Assignment"
- SET ZTIO=IOP
- +20 NEW II
- +21 FOR II="INST","TEAM","ROLE","INST(","TEAM(","PRACT","PRACT(","ROLE(","IOP"
- SET ZTSAVE(II)=""
- +22 DO ^%ZTLOAD
- RET SET NUMBER=0
- +1 IF $DATA(ZTSK)
- SET NUMBER=ZTSK
- +2 DO EXIT1
- +3 QUIT NUMBER
- +4 ;
- QENTRY ;
- +1 ;IHS/ANMC/LJF 11/2/2000
- IF $EXTRACT(IOST,1,2)="C-"
- DO ^BSDSCTA
- QUIT
- IHS ;EP; entry point for list template ;IHS/ANMC/LJF 11/2/2000
- +1 ;driver entry point
- +2 SET TITL="Patient Listing For Team Assignments"
- +3 SET STORE="^TMP("_$JOB_",""SCRPTA"")"
- +4 KILL @STORE
- +5 SET @STORE=0
- +6 IF TEAM=1
- DO TALL^SCRPPAT3
- SET TEAM=0
- +7 DO FIND
- +8 IF $ORDER(@STORE@(0))=""
- SET NODATA=$$NODATA^SCRPU3(TITL)
- +9 IF '$DATA(NODATA)
- DO PRINTIT(STORE,TITL)
- +10 DO EXIT2
- +11 QUIT
- +12 ;
- ERR ;
- EXIT1 ;
- +1 KILL ZTDTH,ZTRTN,ZTDESC,ZTSK,ZTIO,ZTSAVE,Y,SCUP
- +2 QUIT
- +3 ;
- EXIT2 ;
- +1 KILL @STORE
- +2 KILL STOP,STORE,TITL,IOP,TEAM,INST,ROLE,NODATA,PRACT
- +3 QUIT
- +4 ;
- FIND ;
- +1 NEW NXT,TLIST,TERR,CNT,ERR1,TNODE,NODE1,PIEN,PTAIEN
- +2 SET NXT=0
- SET TLIST="^TMP("_$JOB_",""SCRPTA"",""LIST1"")"
- SET TERR="ERR1"
- +3 KILL @TLIST,@TERR
- +4 FOR
- SET NXT=$ORDER(TEAM(NXT))
- IF NXT=""!(NXT'?.N)
- QUIT
- Begin DoDot:1
- +5 ;Patients assigned to team NXT
- SET ERR1=$$PTTM^SCAPMC2(NXT,,.TLIST,.TERR)
- +6 IF ERR1=0
- QUIT
- +7 SET CNT=0
- +8 FOR
- SET CNT=$ORDER(@TLIST@(CNT))
- IF CNT=""!(CNT'?.N)
- QUIT
- Begin DoDot:2
- +9 SET TNODE=$GET(@TLIST@(CNT))
- +10 IF TNODE=""
- QUIT
- +11 ;patient ien
- SET PIEN=+$PIECE(TNODE,"^")
- +12 ;ien Patient Team Assignment #404.42
- SET PTAIEN=+$PIECE(TNODE,"^",3)
- +13 DO CHK^SCRPTA2(PTAIEN,PIEN)
- End DoDot:2
- +14 KILL @TLIST,@TERR
- End DoDot:1
- +15 KILL @TLIST,@TERR
- +16 QUIT
- +17 ;
- PRINTIT(STORE,TITL) ;
- +1 NEW NXT,PAGE,NPAGE,INTN,TMN,INT,TM,PRN,PR,POS
- +2 SET (NPAGE,STOP,PAGE)=0
- SET INTN=""
- IF $EXTRACT(IOST)="C"
- WRITE @IOF
- +3 ;setup headers
- DO SHEAD
- +4 FOR
- SET INTN=$ORDER(@STORE@("I",INTN))
- IF INTN=""!(STOP)
- QUIT
- Begin DoDot:1
- +5 ;institution
- SET INT=$ORDER(@STORE@("I",INTN,""))
- +6 IF INT=""
- QUIT
- +7 SET TMN=""
- +8 FOR
- SET TMN=$ORDER(@STORE@("T",INT,TMN))
- IF TMN=""!(STOP)
- QUIT
- Begin DoDot:2
- +9 ;team
- SET TM=$ORDER(@STORE@("T",INT,TMN,""))
- +10 IF TM=""
- QUIT
- +11 DO NEWP1^SCRPU3(.PAGE,TITL,132)
- WRITE !,$GET(@STORE@(INT)),!!,$GET(@STORE@(INT,TM))
- +12 IF STOP
- QUIT
- +13 SET PRN=""
- +14 DO HEADER
- +15 FOR
- SET PRN=$ORDER(@STORE@("P",INT,TM,PRN))
- IF PRN=""!(STOP)
- QUIT
- Begin DoDot:3
- +16 ;practitioner
- SET PR=$ORDER(@STORE@("P",INT,TM,PRN,""))
- +17 IF PR=""
- QUIT
- +18 SET POS=""
- +19 FOR
- SET POS=$ORDER(@STORE@("P",INT,TM,PRN,PR,POS))
- IF POS=""!(STOP)
- QUIT
- Begin DoDot:4
- +20 DO PRNT(INT,TM,PR,POS)
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +21 IF 'STOP
- IF $EXTRACT(IOST)="C"
- NEW DIR
- SET DIR(0)="E"
- WRITE !
- DO ^DIR
- +22 QUIT
- +23 ;
- PRNT(INT,TM,PR,POS) ;
- +1 ;INT - institution ien
- +2 ;TM - team ien
- +3 ;PR - practitioner ien
- +4 ;POS - position ien
- +5 ;
- +6 NEW PTIEN,PTNAME
- +7 SET PTNAME=""
- +8 FOR
- SET PTNAME=$ORDER(@STORE@(INT,TM,PR,POS,PTNAME))
- IF PTNAME=""!(STOP)
- QUIT
- Begin DoDot:1
- +9 SET PTIEN=""
- +10 FOR
- SET PTIEN=$ORDER(@STORE@(INT,TM,PR,POS,PTNAME,PTIEN))
- IF PTIEN=""!(STOP)
- QUIT
- Begin DoDot:2
- +11 IF (IOST'?1"C-".E)
- IF $Y>(IOSL-4)
- DO NEWP1^SCRPU3(.PAGE,TITL,132)
- IF 'STOP
- WRITE !,$GET(@STORE@(INT)),!!,$GET(@STORE@(INT,TM))
- IF 'STOP
- DO HEADER
- +12 IF (IOST?1"C-".E)
- IF $Y>(IOSL-4)
- DO HOLD^SCRPU3(.PAGE,TITL,132)
- IF 'STOP
- WRITE !,$GET(@STORE@(INT)),!!,$GET(@STORE@(INT,TM))
- IF 'STOP
- DO HEADER
- +13 IF STOP
- QUIT
- +14 WRITE !,$GET(@STORE@(INT,TM,PR,POS,PTNAME,PTIEN))
- End DoDot:2
- +15 QUIT
- End DoDot:1
- +16 QUIT
- +17 ;
- +1 ;write column headers
- +2 NEW EN
- +3 WRITE !
- +4 FOR EN="H1","H2","H3"
- Begin DoDot:1
- +5 WRITE !,$GET(@STORE@(EN))
- End DoDot:1
- +6 QUIT
- SHEAD ;
- +1 ;setup column headers
- +2 SET @STORE@("H2")="Patient Name"
- +3 ;S $E(@STORE@("H2"),19)="Pt ID"
- +4 ;IHS/ANMC/LJF 11/2/2000
- SET $EXTRACT(@STORE@("H2"),23)="Pt ID"
- +5 SET $EXTRACT(@STORE@("H1"),31)="Date"
- +6 SET $EXTRACT(@STORE@("H2"),31)="Assigned"
- +7 SET $EXTRACT(@STORE@("H2"),43)="PC?"
- +8 SET $EXTRACT(@STORE@("H2"),49)="Practitioner"
- +9 SET $EXTRACT(@STORE@("H2"),70)="Position"
- +10 SET $EXTRACT(@STORE@("H2"),92)="Standard Role"
- +11 SET $EXTRACT(@STORE@("H2"),113)="Preceptor"
- +12 SET $PIECE(@STORE@("H3"),"=",133)=""
- +13 QUIT