ORAM3 ;POR/RSF - ANTICOAGULATION MANAGEMENT RPCS (4 of 4)  ;12/09/09  14:44
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**307**;Dec 17, 1997;Build 60
 ;;Per VHA Directive 2004-038, this routine should not be modified
 Q
 ;
PTADR(RESULT,ORAMDFN) ;GET PT ADDRESS
 ;;CALLED BY ORAM3 ADDRESS
 N ORAMADD,ORAMADD2,ORAMADD3,ORAMCITY,ORAMCODE,ORAMST,ORAMZIP,ORAMBAD,ORAMT
 S ORAMT=.11,ORAMST="",ORAMBAD=0
 I '$G(ORAMDFN) S RESULT="NONE" Q
 I $$TMPCHK(ORAMDFN)=1 S ORAMT=.121
 S ORAMADD=$P($G(^DPT(ORAMDFN,ORAMT)),"^"),ORAMADD2=$P($G(^DPT(ORAMDFN,ORAMT)),"^",2),ORAMADD3=$P($G(^DPT(ORAMDFN,ORAMT)),"^",3)
 S ORAMCITY=$P($G(^DPT(ORAMDFN,ORAMT)),"^",4),ORAMCODE=$P($G(^DPT(ORAMDFN,ORAMT)),"^",5),ORAMZIP=$P($G(^DPT(ORAMDFN,ORAMT)),"^",6),ORAMBAD=$P($G(^DPT(ORAMDFN,.11)),"^",16)
 I ORAMCODE S ORAMST=$P($G(^DIC(5,$G(ORAMCODE),0)),"^",2)
 S:$G(ORAMBAD)="" ORAMBAD=0
 S RESULT=ORAMADD_"^"_ORAMADD2_"^"_ORAMADD3_"^"_ORAMCITY_"^"_ORAMST_"^"_ORAMZIP_"^"_$G(ORAMBAD)_"^"_$G(ORAMT)
 Q
 ;
PTFONE(RESULT,ORAMDFN) ;GET PT PHONE NUMBERS
 ;;RPC=ORAM3 PHONE
 ;;RESULT=HOMEPHONE^WORKPHONE^CELLNUMBER^PAGER^EMAIL
 N ORAMF1,ORAMF2,ORAMFC,ORAMP,ORAMEM,ORAMT S ORAMT=0
 I '$G(ORAMDFN) S RESULT="NONE" Q
 I $$TMPCHK(ORAMDFN)=1 S ORAMT=1
 I ORAMT=0 D
 . S ORAMF1=$P($G(^DPT(ORAMDFN,.13)),"^"),ORAMF2=$P($G(^DPT(ORAMDFN,.13)),"^",2)
 . S ORAMFC=$P($G(^DPT(ORAMDFN,.13)),"^",4),ORAMP=$P($G(^DPT(ORAMDFN,.13)),"^",5),ORAMEM=$P($G(^DPT(ORAMDFN,.13)),"^",3)
 I ORAMT=1 D
 . S ORAMF1=$P($G(^DPT(ORAMDFN,.121)),"^",10),ORAMF2=$P($G(^DPT(ORAMDFN,.13)),"^",2)
 . S ORAMFC=$P($G(^DPT(ORAMDFN,.13)),"^",4),ORAMP=$P($G(^DPT(ORAMDFN,.13)),"^",5),ORAMEM=$P($G(^DPT(ORAMDFN,.13)),"^",3)
 S RESULT=$G(ORAMF1)_"^"_$G(ORAMF2)_"^"_$G(ORAMFC)_"^"_$G(ORAMP)_"^"_$G(ORAMEM)_"^"_$G(ORAMT)
 Q
 ;
TMPCHK(ORAMDFN) ;
 ;;
 N ORAMTMP S ORAMTMP=0
 I $D(^DPT(ORAMDFN,.121)),$P(^DPT(ORAMDFN,.121),"^",9)="Y" D
 . Q:$P(^DPT(ORAMDFN,.121),"^",7)>DT  ;START DATE
 . I $P(^DPT(ORAMDFN,.121),"^",8)'="" Q:DT>$P(^DPT(ORAMDFN,.121),"^",8)  ;END DATE
 . S ORAMTMP=1
 Q ORAMTMP
 ;RSF 10/08/08  CHANGE TO CODE DUE TO NEWLY DISCOVERED PROBLEM WITH 'COMPLICATIONS'
COMPENT(RESULT,ORAMDFN,ORAMDUZ,ORAMC,ORAMCT,ORAMD2) ;
 ;RPC=ORAM3 COMPLICATION
 Q:'+$G(ORAMDFN)
 Q:'$G(ORAMDUZ)
 Q:'+$G(ORAMC)
 Q:$G(ORAMD2)=""
 N ORAMD3,ORAMX D DT^DILF(,ORAMD2,.ORAMX) S ORAMD3=ORAMX
 N ORAMNOW,ORAMDAY,X,% D NOW^%DTC S ORAMNOW=%,ORAMDAY=X
 N ORAMNX S ORAMNX=$O(^ORAM(103,ORAMDFN,3," "),-1)+1
 N ORAMC2,ORAMLLOC,ORAMPS,ORAMDD,ORAMTWD,ORAML,OERR
 I '$G(ORAMNX) S ORAMNX=1
 I ORAMNX>1 D
 . S ORAML=ORAMNX-1,ORAMLLOC=$P(^ORAM(103,ORAMDFN,3,ORAML,0),"^",4),ORAMPS=$P(^(0),"^",5),ORAMTWD=$P(^(0),"^",6),ORAMDD=$P(^(0),"^",7)
 I ORAMC>99 S ORAMC2=2  ;CLOT in the 100 range...I P1>100,P1#100>0 S P1=3 Q
 I ORAMC#10>0 S ORAMC2=1  ;MAJOR BLEED I P1>99 S P1=2 Q
 I ORAMC=10 S ORAMC2=3  ;MINOR BLEED
 N DA,IENS,ORAMRSF,ORAMF
 S IENS="+1,"_ORAMDFN_","
 S DA=ORAMNX,DA(1)=ORAMDFN
 S ORAMRSF(103.011,IENS,.01)=ORAMD3  ;COMPLICATION DATE
 S ORAMRSF(103.011,IENS,30)=ORAMLLOC  ;LAB DRAW LOC
 S ORAMRSF(103.011,IENS,40)=ORAMPS  ;PILL STRENGTH
 S ORAMRSF(103.011,IENS,50)=ORAMTWD  ;TOTAL WEEK DOSE
 S ORAMRSF(103.011,IENS,60)=ORAMDD  ;DAILY DOSING
 S ORAMRSF(103.011,IENS,80)=ORAMNOW
 S ORAMRSF(103.011,IENS,90)=ORAMDUZ  ;PROVIDER
 S ORAMRSF(103.011,IENS,104)=ORAMC2  ;COMPLICATION CODE
 K ORAMF
 S ORAMF(ORAMNX)=DA
 K OERR
 D UPDATE^DIE("","ORAMRSF","ORAMF","OERR")
 S ^ORAM(103,ORAMDFN,3,ORAMNX,2,1,0)=ORAMD2
 I $L(ORAMCT,"^")>0 N ORAMCC F ORAMCC=1:1:$L(ORAMCT,"^") D  S ^ORAM(103,ORAMDFN,3,ORAMNX,2,0)="^^"_ORAMCC_"^"_ORAMCC_"^"_ORAMDAY_"^"
 . S ^ORAM(103,ORAMDFN,3,ORAMNX,2,ORAMCC+1,0)=$P(ORAMCT,"^",ORAMCC)
 S RESULT=1
 Q
 ;
TLISTS ; Erases and sets Team Lists for Anticoagulation Clinics
 ; Option: ORAM SET TEAMS
 N ORAMLIST  ;ARRAYS OF TEAMS
 D FTL(.ORAMLIST)
 I '$D(ORAMLIST) Q  ;No lists defined
 D ETEAM(.ORAMLIST)  ;ERASE ALL TEAM LISTS
 D MTEAM(.ORAMLIST)  ;FORM TODAY'S TEAM LISTS
 Q
 ;
FTL(ORAMLIST) ;FIND TEAM LISTS  CALLED FROM TLISTS
 ;
 N ORAMI,ORAMCLST S ORAMI=0
 D GETCLINS^ORAMSET(.ORAMCLST)
 I +$G(ORAMCLST(0))'>0 Q  ;Site not SET UP
 ; Loop through Clinics, get team lists for each
 F  S ORAMI=$O(ORAMCLST(ORAMI)) Q:+ORAMI'>0  D
 . N ORAMCL,ORAMALL,ORAMCPLX
 . S ORAMCL=$P($G(ORAMCLST(ORAMI)),U,2) Q:+ORAMCL'>0
 . S ORAMALL=$$GET^XPAR(ORAMCL,"ORAM TEAM LIST (ALL)",1,"I")
 . S:ORAMALL]"" ORAMLIST(ORAMCL,"ALL")=ORAMALL
 . S ORAMCPLX=$$GET^XPAR(ORAMCL,"ORAM TEAM LIST (COMPLEX)",1,"I")
 . S:ORAMCPLX]"" ORAMLIST(ORAMCL,"COMPLEX")=ORAMCPLX
 Q
 ;
ETEAM(ORAMLIST) ; Remove all Anticoagulation Patients from their respective lists
 ; called from TLISTS
 N ORAMI S ORAMI=""
 F  S ORAMI=$O(ORAMLIST(ORAMI)) Q:ORAMI']""  D
 . N ORAML S ORAML=""
 . F  S ORAML=$O(ORAMLIST(ORAMI,ORAML)) Q:ORAML']""  D
 . . N DO,DA,DIK
 . . S DA(1)=ORAMLIST(ORAMI,ORAML),DIK="^OR(100.21"_","_DA(1)_",10,"
 . . S DA=0 F  S DA=$O(^OR(100.21,DA(1),10,DA)) Q:+DA'>0  D
 . . . D ^DIK
 Q
 ;
MTEAM(ORAMLIST) ; Build Today's Team Lists
 ; CALLED FROM TLISTS
 N ORAMCL S ORAMCL=""
 ; Loop through ORAMLIST by clinic location
 F  S ORAMCL=$O(ORAMLIST(ORAMCL)) Q:ORAMCL']""  D
 . N ORAMCN,ORAMCA,ORAMCC,ORAMDFN
 . S ORAMCN=+ORAMCL                        ; Pointer to file 44
 . S ORAMCA=$G(ORAMLIST(ORAMCL,"ALL"))     ; Pointer to "All" List
 . S ORAMCC=$G(ORAMLIST(ORAMCL,"COMPLEX")) ; Pointer to "Complex" List
 . ; Loop through Anticoagulation Patients by location
 . S ORAMDFN=0
 . F  S ORAMDFN=$O(^ORAM(103,"CL",ORAMCN,ORAMDFN)) Q:+ORAMDFN'>0  D
 . . N ORAMD0,ORAMRDT,ORAMCPLX,ORAMNDCB,ORAMAXDT
 . . S ORAMD0=$G(^ORAM(103,ORAMDFN,0))
 . . S ORAMRDT=$P(ORAMD0,U,4)   ; Pt's Return Date
 . . S ORAMAXDT=DT_".2359"      ; Upper bound for return date range
 . . S ORAMCPLX=$P(ORAMD0,U,10) ; Pt's Complexity
 . . S ORAMNDCB=$P(ORAMD0,U,20) ; Next Day Callback
 . . ; if next day callback, increment return date, disregard time
 . . I +ORAMNDCB S ORAMRDT=$$FMADD^XLFDT($P(ORAMRDT,"."),1)
 . . ; if future return date or pt inactive, quit to next pt
 . . I (ORAMRDT>ORAMAXDT)!(ORAMCPLX=2) Q
 . . ; otherwise, add pt to appropriate list(s) for location
 . . D ADDLIST(ORAMDFN,ORAMCA) ; All active pts on "ALL" List
 . . I ORAMCPLX=1 D ADDLIST(ORAMDFN,ORAMCC) ; Complex pts also on "COMPLEX" List
 Q
ADDLIST(ORAMDFN,ORAMLDA) ; Add pt to Team List / Assure record is UNLOCKED
 N DIC,DA,DO,X,ORAMLR
 S X=ORAMDFN_";DPT("
 S DA(1)=ORAMLDA,DIC="^OR(100.21"_","_DA(1)_",10,",DIC(0)="L" D FILE^DICN
 D UNLOCK^ORAM1(.ORAMLR,ORAMDFN)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORAM3   6539     printed  Sep 23, 2025@20:03:18                                                                                                                                                                                                       Page 2
ORAM3     ;POR/RSF - ANTICOAGULATION MANAGEMENT RPCS (4 of 4)  ;12/09/09  14:44
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**307**;Dec 17, 1997;Build 60
 +2       ;;Per VHA Directive 2004-038, this routine should not be modified
 +3        QUIT 
 +4       ;
PTADR(RESULT,ORAMDFN) ;GET PT ADDRESS
 +1       ;;CALLED BY ORAM3 ADDRESS
 +2        NEW ORAMADD,ORAMADD2,ORAMADD3,ORAMCITY,ORAMCODE,ORAMST,ORAMZIP,ORAMBAD,ORAMT
 +3        SET ORAMT=.11
           SET ORAMST=""
           SET ORAMBAD=0
 +4        IF '$GET(ORAMDFN)
               SET RESULT="NONE"
               QUIT 
 +5        IF $$TMPCHK(ORAMDFN)=1
               SET ORAMT=.121
 +6        SET ORAMADD=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^")
           SET ORAMADD2=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^",2)
           SET ORAMADD3=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^",3)
 +7        SET ORAMCITY=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^",4)
           SET ORAMCODE=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^",5)
           SET ORAMZIP=$PIECE($GET(^DPT(ORAMDFN,ORAMT)),"^",6)
           SET ORAMBAD=$PIECE($GET(^DPT(ORAMDFN,.11)),"^",16)
 +8        IF ORAMCODE
               SET ORAMST=$PIECE($GET(^DIC(5,$GET(ORAMCODE),0)),"^",2)
 +9        if $GET(ORAMBAD)=""
               SET ORAMBAD=0
 +10       SET RESULT=ORAMADD_"^"_ORAMADD2_"^"_ORAMADD3_"^"_ORAMCITY_"^"_ORAMST_"^"_ORAMZIP_"^"_$GET(ORAMBAD)_"^"_$GET(ORAMT)
 +11       QUIT 
 +12      ;
PTFONE(RESULT,ORAMDFN) ;GET PT PHONE NUMBERS
 +1       ;;RPC=ORAM3 PHONE
 +2       ;;RESULT=HOMEPHONE^WORKPHONE^CELLNUMBER^PAGER^EMAIL
 +3        NEW ORAMF1,ORAMF2,ORAMFC,ORAMP,ORAMEM,ORAMT
           SET ORAMT=0
 +4        IF '$GET(ORAMDFN)
               SET RESULT="NONE"
               QUIT 
 +5        IF $$TMPCHK(ORAMDFN)=1
               SET ORAMT=1
 +6        IF ORAMT=0
               Begin DoDot:1
 +7                SET ORAMF1=$PIECE($GET(^DPT(ORAMDFN,.13)),"^")
                   SET ORAMF2=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",2)
 +8                SET ORAMFC=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",4)
                   SET ORAMP=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",5)
                   SET ORAMEM=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",3)
               End DoDot:1
 +9        IF ORAMT=1
               Begin DoDot:1
 +10               SET ORAMF1=$PIECE($GET(^DPT(ORAMDFN,.121)),"^",10)
                   SET ORAMF2=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",2)
 +11               SET ORAMFC=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",4)
                   SET ORAMP=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",5)
                   SET ORAMEM=$PIECE($GET(^DPT(ORAMDFN,.13)),"^",3)
               End DoDot:1
 +12       SET RESULT=$GET(ORAMF1)_"^"_$GET(ORAMF2)_"^"_$GET(ORAMFC)_"^"_$GET(ORAMP)_"^"_$GET(ORAMEM)_"^"_$GET(ORAMT)
 +13       QUIT 
 +14      ;
TMPCHK(ORAMDFN) ;
 +1       ;;
 +2        NEW ORAMTMP
           SET ORAMTMP=0
 +3        IF $DATA(^DPT(ORAMDFN,.121))
               IF $PIECE(^DPT(ORAMDFN,.121),"^",9)="Y"
                   Begin DoDot:1
 +4       ;START DATE
                       if $PIECE(^DPT(ORAMDFN,.121),"^",7)>DT
                           QUIT 
 +5       ;END DATE
                       IF $PIECE(^DPT(ORAMDFN,.121),"^",8)'=""
                           if DT>$PIECE(^DPT(ORAMDFN,.121),"^",8)
                               QUIT 
 +6                    SET ORAMTMP=1
                   End DoDot:1
 +7        QUIT ORAMTMP
 +8       ;RSF 10/08/08  CHANGE TO CODE DUE TO NEWLY DISCOVERED PROBLEM WITH 'COMPLICATIONS'
COMPENT(RESULT,ORAMDFN,ORAMDUZ,ORAMC,ORAMCT,ORAMD2) ;
 +1       ;RPC=ORAM3 COMPLICATION
 +2        if '+$GET(ORAMDFN)
               QUIT 
 +3        if '$GET(ORAMDUZ)
               QUIT 
 +4        if '+$GET(ORAMC)
               QUIT 
 +5        if $GET(ORAMD2)=""
               QUIT 
 +6        NEW ORAMD3,ORAMX
           DO DT^DILF(,ORAMD2,.ORAMX)
           SET ORAMD3=ORAMX
 +7        NEW ORAMNOW,ORAMDAY,X,%
           DO NOW^%DTC
           SET ORAMNOW=%
           SET ORAMDAY=X
 +8        NEW ORAMNX
           SET ORAMNX=$ORDER(^ORAM(103,ORAMDFN,3," "),-1)+1
 +9        NEW ORAMC2,ORAMLLOC,ORAMPS,ORAMDD,ORAMTWD,ORAML,OERR
 +10       IF '$GET(ORAMNX)
               SET ORAMNX=1
 +11       IF ORAMNX>1
               Begin DoDot:1
 +12               SET ORAML=ORAMNX-1
                   SET ORAMLLOC=$PIECE(^ORAM(103,ORAMDFN,3,ORAML,0),"^",4)
                   SET ORAMPS=$PIECE(^(0),"^",5)
                   SET ORAMTWD=$PIECE(^(0),"^",6)
                   SET ORAMDD=$PIECE(^(0),"^",7)
               End DoDot:1
 +13      ;CLOT in the 100 range...I P1>100,P1#100>0 S P1=3 Q
           IF ORAMC>99
               SET ORAMC2=2
 +14      ;MAJOR BLEED I P1>99 S P1=2 Q
           IF ORAMC#10>0
               SET ORAMC2=1
 +15      ;MINOR BLEED
           IF ORAMC=10
               SET ORAMC2=3
 +16       NEW DA,IENS,ORAMRSF,ORAMF
 +17       SET IENS="+1,"_ORAMDFN_","
 +18       SET DA=ORAMNX
           SET DA(1)=ORAMDFN
 +19      ;COMPLICATION DATE
           SET ORAMRSF(103.011,IENS,.01)=ORAMD3
 +20      ;LAB DRAW LOC
           SET ORAMRSF(103.011,IENS,30)=ORAMLLOC
 +21      ;PILL STRENGTH
           SET ORAMRSF(103.011,IENS,40)=ORAMPS
 +22      ;TOTAL WEEK DOSE
           SET ORAMRSF(103.011,IENS,50)=ORAMTWD
 +23      ;DAILY DOSING
           SET ORAMRSF(103.011,IENS,60)=ORAMDD
 +24       SET ORAMRSF(103.011,IENS,80)=ORAMNOW
 +25      ;PROVIDER
           SET ORAMRSF(103.011,IENS,90)=ORAMDUZ
 +26      ;COMPLICATION CODE
           SET ORAMRSF(103.011,IENS,104)=ORAMC2
 +27       KILL ORAMF
 +28       SET ORAMF(ORAMNX)=DA
 +29       KILL OERR
 +30       DO UPDATE^DIE("","ORAMRSF","ORAMF","OERR")
 +31       SET ^ORAM(103,ORAMDFN,3,ORAMNX,2,1,0)=ORAMD2
 +32       IF $LENGTH(ORAMCT,"^")>0
               NEW ORAMCC
               FOR ORAMCC=1:1:$LENGTH(ORAMCT,"^")
                   Begin DoDot:1
 +33                   SET ^ORAM(103,ORAMDFN,3,ORAMNX,2,ORAMCC+1,0)=$PIECE(ORAMCT,"^",ORAMCC)
                   End DoDot:1
                   SET ^ORAM(103,ORAMDFN,3,ORAMNX,2,0)="^^"_ORAMCC_"^"_ORAMCC_"^"_ORAMDAY_"^"
 +34       SET RESULT=1
 +35       QUIT 
 +36      ;
TLISTS    ; Erases and sets Team Lists for Anticoagulation Clinics
 +1       ; Option: ORAM SET TEAMS
 +2       ;ARRAYS OF TEAMS
           NEW ORAMLIST
 +3        DO FTL(.ORAMLIST)
 +4       ;No lists defined
           IF '$DATA(ORAMLIST)
               QUIT 
 +5       ;ERASE ALL TEAM LISTS
           DO ETEAM(.ORAMLIST)
 +6       ;FORM TODAY'S TEAM LISTS
           DO MTEAM(.ORAMLIST)
 +7        QUIT 
 +8       ;
FTL(ORAMLIST) ;FIND TEAM LISTS  CALLED FROM TLISTS
 +1       ;
 +2        NEW ORAMI,ORAMCLST
           SET ORAMI=0
 +3        DO GETCLINS^ORAMSET(.ORAMCLST)
 +4       ;Site not SET UP
           IF +$GET(ORAMCLST(0))'>0
               QUIT 
 +5       ; Loop through Clinics, get team lists for each
 +6        FOR 
               SET ORAMI=$ORDER(ORAMCLST(ORAMI))
               if +ORAMI'>0
                   QUIT 
               Begin DoDot:1
 +7                NEW ORAMCL,ORAMALL,ORAMCPLX
 +8                SET ORAMCL=$PIECE($GET(ORAMCLST(ORAMI)),U,2)
                   if +ORAMCL'>0
                       QUIT 
 +9                SET ORAMALL=$$GET^XPAR(ORAMCL,"ORAM TEAM LIST (ALL)",1,"I")
 +10               if ORAMALL]""
                       SET ORAMLIST(ORAMCL,"ALL")=ORAMALL
 +11               SET ORAMCPLX=$$GET^XPAR(ORAMCL,"ORAM TEAM LIST (COMPLEX)",1,"I")
 +12               if ORAMCPLX]""
                       SET ORAMLIST(ORAMCL,"COMPLEX")=ORAMCPLX
               End DoDot:1
 +13       QUIT 
 +14      ;
ETEAM(ORAMLIST) ; Remove all Anticoagulation Patients from their respective lists
 +1       ; called from TLISTS
 +2        NEW ORAMI
           SET ORAMI=""
 +3        FOR 
               SET ORAMI=$ORDER(ORAMLIST(ORAMI))
               if ORAMI']""
                   QUIT 
               Begin DoDot:1
 +4                NEW ORAML
                   SET ORAML=""
 +5                FOR 
                       SET ORAML=$ORDER(ORAMLIST(ORAMI,ORAML))
                       if ORAML']""
                           QUIT 
                       Begin DoDot:2
 +6                        NEW DO,DA,DIK
 +7                        SET DA(1)=ORAMLIST(ORAMI,ORAML)
                           SET DIK="^OR(100.21"_","_DA(1)_",10,"
 +8                        SET DA=0
                           FOR 
                               SET DA=$ORDER(^OR(100.21,DA(1),10,DA))
                               if +DA'>0
                                   QUIT 
                               Begin DoDot:3
 +9                                DO ^DIK
                               End DoDot:3
                       End DoDot:2
               End DoDot:1
 +10       QUIT 
 +11      ;
MTEAM(ORAMLIST) ; Build Today's Team Lists
 +1       ; CALLED FROM TLISTS
 +2        NEW ORAMCL
           SET ORAMCL=""
 +3       ; Loop through ORAMLIST by clinic location
 +4        FOR 
               SET ORAMCL=$ORDER(ORAMLIST(ORAMCL))
               if ORAMCL']""
                   QUIT 
               Begin DoDot:1
 +5                NEW ORAMCN,ORAMCA,ORAMCC,ORAMDFN
 +6       ; Pointer to file 44
                   SET ORAMCN=+ORAMCL
 +7       ; Pointer to "All" List
                   SET ORAMCA=$GET(ORAMLIST(ORAMCL,"ALL"))
 +8       ; Pointer to "Complex" List
                   SET ORAMCC=$GET(ORAMLIST(ORAMCL,"COMPLEX"))
 +9       ; Loop through Anticoagulation Patients by location
 +10               SET ORAMDFN=0
 +11               FOR 
                       SET ORAMDFN=$ORDER(^ORAM(103,"CL",ORAMCN,ORAMDFN))
                       if +ORAMDFN'>0
                           QUIT 
                       Begin DoDot:2
 +12                       NEW ORAMD0,ORAMRDT,ORAMCPLX,ORAMNDCB,ORAMAXDT
 +13                       SET ORAMD0=$GET(^ORAM(103,ORAMDFN,0))
 +14      ; Pt's Return Date
                           SET ORAMRDT=$PIECE(ORAMD0,U,4)
 +15      ; Upper bound for return date range
                           SET ORAMAXDT=DT_".2359"
 +16      ; Pt's Complexity
                           SET ORAMCPLX=$PIECE(ORAMD0,U,10)
 +17      ; Next Day Callback
                           SET ORAMNDCB=$PIECE(ORAMD0,U,20)
 +18      ; if next day callback, increment return date, disregard time
 +19                       IF +ORAMNDCB
                               SET ORAMRDT=$$FMADD^XLFDT($PIECE(ORAMRDT,"."),1)
 +20      ; if future return date or pt inactive, quit to next pt
 +21                       IF (ORAMRDT>ORAMAXDT)!(ORAMCPLX=2)
                               QUIT 
 +22      ; otherwise, add pt to appropriate list(s) for location
 +23      ; All active pts on "ALL" List
                           DO ADDLIST(ORAMDFN,ORAMCA)
 +24      ; Complex pts also on "COMPLEX" List
                           IF ORAMCPLX=1
                               DO ADDLIST(ORAMDFN,ORAMCC)
                       End DoDot:2
               End DoDot:1
 +25       QUIT 
ADDLIST(ORAMDFN,ORAMLDA) ; Add pt to Team List / Assure record is UNLOCKED
 +1        NEW DIC,DA,DO,X,ORAMLR
 +2        SET X=ORAMDFN_";DPT("
 +3        SET DA(1)=ORAMLDA
           SET DIC="^OR(100.21"_","_DA(1)_",10,"
           SET DIC(0)="L"
           DO FILE^DICN
 +4        DO UNLOCK^ORAM1(.ORAMLR,ORAMDFN)
 +5        QUIT