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