| 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)
 | 
|---|