1 | SCMCRT1 ;ALB/SCK - TEAM PROFILE REPORT ; 10/30/95
|
---|
2 | ;;5.3;Scheduling;**41**;AUG 13, 1993
|
---|
3 | ;;1T1;Primary Care Management Module
|
---|
4 | ;
|
---|
5 | ; Routine for collecting Team information for the
|
---|
6 | ; Team Profile report
|
---|
7 | ;
|
---|
8 | START(SCTS,SCPS,SCTEAMS,SCBRK) ;
|
---|
9 | ; SCTS = Team Status
|
---|
10 | ; SCPS = Positon status
|
---|
11 | ; SCBRK = Page break as team changes
|
---|
12 | ;
|
---|
13 | ; Status values:
|
---|
14 | ; 1 Show active only
|
---|
15 | ; 0 Show inactive only
|
---|
16 | ; -1 Show all
|
---|
17 | ; 10 Selected Teams
|
---|
18 | ;
|
---|
19 | ; SCTEAMS = List of teams to print
|
---|
20 | ;
|
---|
21 | N SCTM,SCTMIEN,SCI,SCDTRNG,SCERMSG,SCRTN
|
---|
22 | K ^TMP("PCMTP")
|
---|
23 | S SCDTRNG=""
|
---|
24 | ;
|
---|
25 | IF $G(SCTS)=10,$G(SCTEAMS)=0 D G CONT
|
---|
26 | . S SCTM=""
|
---|
27 | . F S SCTM=$O(SCTEAMS(SCTM)) Q:SCTM="" D
|
---|
28 | .. D BLD(SCTM)
|
---|
29 | ;
|
---|
30 | S SCTM=""
|
---|
31 | F S SCTM=$O(^SCTM(404.51,"B",SCTM)) Q:SCTM="" D
|
---|
32 | . S SCTMIEN="",SCTMIEN=$O(^SCTM(404.51,"B",SCTM,SCTMIEN))
|
---|
33 | . Q:'$$TEAMOK(SCTS,SCTMIEN)
|
---|
34 | . D BLD(SCTMIEN)
|
---|
35 | ;
|
---|
36 | CONT ;
|
---|
37 | D TMRPT^SCMCRT1A(SCBRK)
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | TEAMOK(SCACT,SCIEN) ; function to check teams current status against
|
---|
41 | ; the requested status
|
---|
42 | ;
|
---|
43 | ; SCACT - See status values above
|
---|
44 | ; SCIEN - IEN value for the team in 404.51
|
---|
45 | ;
|
---|
46 | ; Returns 0 if team does not meet requested status,
|
---|
47 | ; 1 if team does meet the requested status.
|
---|
48 | ;
|
---|
49 | ;
|
---|
50 | N SCRTN,SCOK,SCER
|
---|
51 | S SCOK=1
|
---|
52 | G:SCACT<0 TEAMOKQ
|
---|
53 | IF '+$$ACTHIST^SCAPMCU1(404.58,SCIEN,"SCDTRNG","SCER") S SCOK=0
|
---|
54 | TEAMOKQ Q (SCOK)
|
---|
55 | ;
|
---|
56 | POSTOK(SCPACT,SCIEN) ; function to check a positions current status against
|
---|
57 | ; against the requested status
|
---|
58 | ;
|
---|
59 | ; SCPACT - See status values above
|
---|
60 | ; SCIEN - Ien value for the position in the 404.57 file
|
---|
61 | ;
|
---|
62 | ; Returns 0 if position does not meet requested status
|
---|
63 | ; 1 if position does meet the status
|
---|
64 | ;
|
---|
65 | N SCOK,SCER
|
---|
66 | S SCOK=1
|
---|
67 | G:SCPACT<0 POSTOKQ
|
---|
68 | IF '+$$ACTHIST^SCAPMCU1(404.59,SCIEN,"SCDTRNG","SCER") S SCOK=0
|
---|
69 | POSTOKQ Q (SCOK)
|
---|
70 | ;
|
---|
71 | BLD(SCIEN) ; Build entry for the team profile in ^TMP("PCMTP",$J)
|
---|
72 | ;
|
---|
73 | ; Team information is on the zero node. The format is the same
|
---|
74 | ; as for the zero node in file #404.51
|
---|
75 | ;
|
---|
76 | ; The team description (WP field nodes) are on the "D" node.
|
---|
77 | ; The teams positions are on individual "P" nodes, by name.
|
---|
78 | ; Format is position ien^standard role (external)^primary care^
|
---|
79 | ; max patients allowed^active status.
|
---|
80 | ;
|
---|
81 | N SCTNODE,II,SCPNODE,SCPIEN
|
---|
82 | S SCTNODE=$G(^SCTM(404.51,SCIEN,0))
|
---|
83 | Q:$D(SCTNODE)=0
|
---|
84 | ;
|
---|
85 | ; Loop thru all the teams in file 404.51 and build the zero node
|
---|
86 | ; for the requested teams
|
---|
87 | ;
|
---|
88 | S ^TMP("PCMTP",$J,SCIEN,0)=SCTNODE
|
---|
89 | IF $D(^SCTM(404.51,SCIEN,"D")) D
|
---|
90 | . S II=0
|
---|
91 | . F S II=$O(^SCTM(404.51,SCIEN,"D",II)) Q:II="" D
|
---|
92 | .. S ^TMP("PCMTP",$J,SCIEN,"D",II)=$G(^SCTM(404.51,SCIEN,"D",II,0))
|
---|
93 | ;
|
---|
94 | ; For each team, loop thru all the team positions, and build
|
---|
95 | ; nodes for each position that matches the requested status
|
---|
96 | ;
|
---|
97 | S SCPIEN=""
|
---|
98 | F S SCPIEN=$O(^SCTM(404.57,"C",SCIEN,SCPIEN)) Q:SCPIEN="" D
|
---|
99 | . Q:'$$POSTOK(SCPS,SCPIEN)
|
---|
100 | . S SCPNODE=$G(^SCTM(404.57,SCPIEN,0))
|
---|
101 | . S ^TMP("PCMTP",$J,SCIEN,"P",$P(SCPNODE,U))=SCPIEN_"^"_$$ROLE($P(SCPNODE,U,3))_"^"_$$CARE($P(SCPNODE,U,4))_"^"_+$P(SCPNODE,U,8)_"^"_$$ACTPOS(SCPIEN)
|
---|
102 | ;
|
---|
103 | IF $D(^TMP("PCMTP",$J,SCIEN,"P"))=0 S ^TMP("PCMTP",$J,SCIEN,"P","NO POSITIONS")=""
|
---|
104 | Q
|
---|
105 | ;
|
---|
106 | ACTPOS(SCIEN) ; Returns the active status of the position for the
|
---|
107 | ; date range of the report.
|
---|
108 | ;
|
---|
109 | N SCSTAT,SCER
|
---|
110 | S SCTAT=$$ACTHIST^SCAPMCU1(404.59,SCIEN,"SCDTRNG","SCER")
|
---|
111 | Q +SCTAT
|
---|
112 | ;
|
---|
113 | ROLE(SCIEN) ; Returns the standard role for a position in external format
|
---|
114 | ;
|
---|
115 | N SCROLE
|
---|
116 | S SCROLE="NO STANDARD ROLE"
|
---|
117 | G:$G(SCIEN)="" ROLEQ
|
---|
118 | S SCROLE=$P($G(^SD(403.46,SCIEN,0)),U)
|
---|
119 | ROLEQ Q SCROLE
|
---|
120 | ;
|
---|
121 | CARE(SCC) ; Returns Yes if the position can provide primary care, No
|
---|
122 | ; if the position cannot.
|
---|
123 | ;
|
---|
124 | N STAT
|
---|
125 | S STAT="NO"
|
---|
126 | S:SCC=1 STAT="YES"
|
---|
127 | CAREQ Q STAT
|
---|
128 | ;
|
---|
129 | QSTART ;
|
---|
130 | D START(SCTMS,SCPOS,.SCTEAMS,SCBRK)
|
---|
131 | Q
|
---|