| 1 | SCRPO5 ;BP-CIOFO/KEITH - Historical Patient Assignment Detail ; 01 Jul 99  9:30 PM | 
|---|
| 2 | ;;5.3;Scheduling;**177**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | PTDET N DIC,SC,DFN,SCPT0,X,Y,SCDT,DTOUT,DUOUT | 
|---|
| 5 | D TITL^SCRPW50("Historical Patient Assignment Detail") | 
|---|
| 6 | S DIC="^DPT(",DIC(0)="AEMQZ" D ^DIC I $D(DTOUT)!$D(DUOUT) G EXIT | 
|---|
| 7 | G:Y<1 EXIT S DFN=+Y,SCPT0=Y(0),SC="SC",SCDT("B")="TODAY" | 
|---|
| 8 | G:'$$DTR^SCRPO(.SC,.SCDT,.SCDT) EXIT | 
|---|
| 9 | N ZTSAVE F X="DFN","SCPT0","SC(" S ZTSAVE(X)="" | 
|---|
| 10 | W ! D EN^XUTMDEVQ("RUN^SCRPO5","Historical Patient Assignment Detail",.ZTSAVE) | 
|---|
| 11 | EXIT D DISP0^SCRPW23,END^SCRPW50 Q | 
|---|
| 12 | ; | 
|---|
| 13 | RUN ;Print report | 
|---|
| 14 | N SCI,SCPNOW,SCLINE,SCPAGE,SCSUB,SCFF,SCFOUND,SCLN,SCAGE,SCDATA | 
|---|
| 15 | N SCDOB,SCGEND,SCIFN,SCOUT,SCPNAME,SCREC,SCSH,SCSSN,SCTITL,SCDT | 
|---|
| 16 | K ^TMP("SCRPT",$J) M SCDT=SC("DTR") S SCDT="SCDT" | 
|---|
| 17 | S SCI=$$GETALL^SCAPMCA(DFN,.SCDT),SCSUB="",(SCFF,SCLN,SCFOUND,SCOUT)=0 | 
|---|
| 18 | F  S SCSUB=$O(^TMP("SC",$J,DFN,SCSUB)) Q:SCSUB=""!(SCSUB]"PCTM")  D | 
|---|
| 19 | .S SCX=$P($T(@SCSUB),";;",2) F SCI=1:1:9 S SCX(SCI)=$P(SCX,U,SCI) | 
|---|
| 20 | .S ^TMP("SCRPT",$J,SCX(1))=SCX(2),SCX(3)=U_SCX(3) | 
|---|
| 21 | .S SCI=0 F  S SCI=$O(^TMP("SC",$J,DFN,SCSUB,SCI)) Q:'SCI  D | 
|---|
| 22 | ..S SCDATA=^TMP("SC",$J,DFN,SCSUB,SCI) | 
|---|
| 23 | ..S SCNAME=$P(SCDATA,U,SCX(8))  ;provider/position/team name | 
|---|
| 24 | ..S SCIFN=$P(SCDATA,U,SCX(4))  ;history record ifn | 
|---|
| 25 | ..S SCACT=$P(SCDATA,U,SCX(5))  ;active date | 
|---|
| 26 | ..Q:'SCACT | 
|---|
| 27 | ..S SCINAC=$P(SCDATA,U,SCX(6))  ;inactive date | 
|---|
| 28 | ..S SCREC=$G(@SCX(3)@(SCIFN,0))  ;history record | 
|---|
| 29 | ..Q:'$L(SCREC) | 
|---|
| 30 | ..S SCUSER=$P(SCREC,U,SCX(7))  ;user duz | 
|---|
| 31 | ..S SCDENT=$P(SCREC,U,SCX(9))  ;date entered | 
|---|
| 32 | ..D SLINE(SCX(1),SCNAME,SCACT,SCINAC,SCUSER,SCDENT,.SCLN) | 
|---|
| 33 | ..Q | 
|---|
| 34 | .Q | 
|---|
| 35 | S SCTITL(1)="<*>  HISTORICAL PATIENT ASSIGNMENT DETAIL  <*>" | 
|---|
| 36 | S SCTITL(2)="For assignments effective "_SC("DTR","PBDT")_" to "_SC("DTR","PEDT") | 
|---|
| 37 | S SCLINE="",$P(SCLINE,"-",81)="",SCPAGE=1 | 
|---|
| 38 | S Y=$$NOW^XLFDT() X ^DD("DD") S SCPNOW=$P(Y,":",1,2) | 
|---|
| 39 | S SCPNAME=$P(SCPT0,U),SCSSN=$P(SCPT0,U,9) | 
|---|
| 40 | S SCGEND=$S($P(SCPT0,U,2)="M":"MALE",1:"FEMALE") | 
|---|
| 41 | S (Y,SCAGE)=$P(SCPT0,U,3) X ^DD("DD") S SCDOB=Y | 
|---|
| 42 | S SCAGE=$E(DT,1,3)-$E(SCAGE,1,3)-($E(DT,4,7)<$E(SCAGE,4,7)) | 
|---|
| 43 | D:$E(IOST)="C" DISP0^SCRPW23 D HDR^SCRPO(.SCTITL,80),SHDR | 
|---|
| 44 | W:'SCFOUND !!?21,"No assignments found for this patient." | 
|---|
| 45 | I SCFOUND S SCSUB=0 F  S SCSUB=$O(^TMP("SCRPT",$J,SCSUB)) Q:'SCSUB!SCOUT  D | 
|---|
| 46 | .D:$Y>(IOSL-5) HDR^SCRPO(.SCTITL,80),SHDR Q:SCOUT | 
|---|
| 47 | .S SCSH=^TMP("SCRPT",$J,SCSUB) | 
|---|
| 48 | .W:SCSUB>1 ! D SSHDR(SCSH) S SCACT="" | 
|---|
| 49 | .I '$O(^TMP("SCRPT",$J,SCSUB,"")) W "  (none found)" Q | 
|---|
| 50 | .F  S SCACT=$O(^TMP("SCRPT",$J,SCSUB,SCACT)) Q:SCACT=""!SCOUT  D | 
|---|
| 51 | ..S SCI=0 F  S SCI=$O(^TMP("SCRPT",$J,SCSUB,SCACT,SCI)) Q:'SCI!SCOUT  D | 
|---|
| 52 | ...D:$Y>(IOSL-3) HDR^SCRPO(.SCTITL,80),SHDR,SSHDR(SCSH,1) Q:SCOUT | 
|---|
| 53 | ...S SCX=^TMP("SCRPT",$J,SCSUB,SCACT,SCI) | 
|---|
| 54 | ...W !,$P(SCX,U),?28,$P(SCX,U,2),?40,$P(SCX,U,3),?52,$P(SCX,U,4) | 
|---|
| 55 | ...Q | 
|---|
| 56 | ..Q | 
|---|
| 57 | .Q | 
|---|
| 58 | I 'SCOUT,$E(IOST)="C" N DIR S DIR(0)="E" W ! D ^DIR | 
|---|
| 59 | K ^TMP("SCRPT",$J) Q | 
|---|
| 60 | ; | 
|---|
| 61 | SHDR ;Subheader | 
|---|
| 62 | Q:SCOUT | 
|---|
| 63 | W !,"Patient: ",$E(SCPNAME,1,18),?29,"SSN: ",SCSSN,?46,"DOB: ",SCDOB | 
|---|
| 64 | W ?64,"AGE: ",SCAGE,?74,$J(SCGEND,6),!,SCLINE | 
|---|
| 65 | Q:'SCFOUND | 
|---|
| 66 | W !,"Assignment",?28,"Active",?40,"Inactive",?52,"Assigned by/date" | 
|---|
| 67 | W !,"--------------------------  ----------  ----------  ----------------------------" | 
|---|
| 68 | Q | 
|---|
| 69 | ; | 
|---|
| 70 | SSHDR(X,CONT) ;Subheader | 
|---|
| 71 | ;Input: X=category | 
|---|
| 72 | ;Input: CONT='1' for continuation (optional) | 
|---|
| 73 | W !,X,$S($G(CONT):" (cont.)",1:""),":" | 
|---|
| 74 | Q | 
|---|
| 75 | ; | 
|---|
| 76 | SLINE(SCORD,SCNAME,SCACT,SCINAC,SCUSER,SCDENT,SCLN) ;Set report global | 
|---|
| 77 | ;Input: SCORD=output order | 
|---|
| 78 | ;Input: SCNAME=provider/position/team name | 
|---|
| 79 | ;Input: SCACT=active date | 
|---|
| 80 | ;Input: SCINAC=inactive date | 
|---|
| 81 | ;Input: SCUSER=user duz | 
|---|
| 82 | ;Input: SCDENT=date entered | 
|---|
| 83 | ; | 
|---|
| 84 | N SCX,SCY | 
|---|
| 85 | S SCFOUND=1,SCLN=SCLN+1 | 
|---|
| 86 | S SCX=$E(SCNAME,1,25)_U_$$SDT(SCACT)_U_$$SDT(SCINAC),SCY=$$SDT(SCDENT) | 
|---|
| 87 | S:$L(SCY) SCY=" ("_SCY_")" | 
|---|
| 88 | S SCX=SCX_U_$E($P($G(^VA(200,+SCUSER,0)),U),1,(28-$L(SCY)))_SCY | 
|---|
| 89 | S ^TMP("SCRPT",$J,SCORD,-SCACT,SCLN)=SCX | 
|---|
| 90 | Q | 
|---|
| 91 | ; | 
|---|
| 92 | CODE ;Data handling instructions | 
|---|
| 93 | ;  The following $TEXT lines contain data handling instructions | 
|---|
| 94 | ;  in the format:  $PIECE 1 = output order | 
|---|
| 95 | ;                         2 = subtitle | 
|---|
| 96 | ;                         3 = global reference of history record | 
|---|
| 97 | ;                         4 = $piece of history record ifn | 
|---|
| 98 | ;                         5 = $piece of active date | 
|---|
| 99 | ;                         6 = $piece of inactive date | 
|---|
| 100 | ;                         7 = $piece of user (in history record) | 
|---|
| 101 | ;                         8 = $piece of provider/position/team name | 
|---|
| 102 | ;                         9 = $piece of date entered | 
|---|
| 103 | ; | 
|---|
| 104 | NPCPOS ;;7^Non-PC Position^SCPT(404.43)^4^5^6^6^2^7 | 
|---|
| 105 | NPCPPOS ;;9^Non-PC Preceptor Position^SCTM(404.53)^16^14^15^7^2^8 | 
|---|
| 106 | NPCPPR ;;8^Non-PC Preceptor Provider^SCTM(404.52)^11^9^10^7^2^8 | 
|---|
| 107 | NPCPR ;;6^Non-PC Provider^SCTM(404.52)^11^9^10^7^2^8 | 
|---|
| 108 | NPCTM ;;10^Non-PC Team^SCPT(404.42)^3^4^5^11^2^12 | 
|---|
| 109 | PCAP ;;2^PC Associate Provider^SCTM(404.52)^11^9^10^7^2^8 | 
|---|
| 110 | PCPOS ;;3^PC Position^SCPT(404.43)^4^5^6^6^2^7 | 
|---|
| 111 | PCPPOS ;;4^PC Preceptor Position^SCTM(404.53)^16^14^15^7^2^8 | 
|---|
| 112 | PCPR ;;1^PC Provider^SCTM(404.52)^11^9^10^7^2^8 | 
|---|
| 113 | PCTM ;;5^PC Team^SCPT(404.42)^3^4^5^11^2^12 | 
|---|
| 114 | ; | 
|---|
| 115 | SDT(X) ;Slashed date | 
|---|
| 116 | S X=$E(X,1,7) Q:X'?7N "" | 
|---|
| 117 | Q $E(X,4,5)_"/"_$E(X,6,7)_"/"_(17+$E(X))_$E(X,2,3) | 
|---|