1 | NURSUT5 ;HIRMFO/WAA-API FOR NURS LOCATION (#211.4) FILE ;2/29/00
|
---|
2 | ;;4.0;NURSING SERVICE;**31**;APR 25, 1997
|
---|
3 | ;
|
---|
4 | ;Nursing Unit Function
|
---|
5 | ; Input Values:
|
---|
6 | ; FUNCT = Piece1_^_Piece2
|
---|
7 | ; Piece1 must contain an "L" or "Q"
|
---|
8 | ; Piece1 "L" means Look-up of specified entry
|
---|
9 | ; in File 211.4, and
|
---|
10 | ; Piece2 must contain the IEN for
|
---|
11 | ; the entry in File 211.4.
|
---|
12 | ;
|
---|
13 | ; Piece1 "Q" means do a DIC style query on File
|
---|
14 | ; 211.4, and
|
---|
15 | ; Piece2 must contain "I","A" or
|
---|
16 | ; ""(i.e., null). This will be the screen
|
---|
17 | ; used on the look-up. The API will do a
|
---|
18 | ; DIC style look-up for the ward.
|
---|
19 | ; "I" means look-up only inactive wards.
|
---|
20 | ; "A" means look-up only active wards.
|
---|
21 | ; "" means look-up all wards.
|
---|
22 | ;
|
---|
23 | ; In both cases (Query or Look-up) the data will be returned
|
---|
24 | ; in ARRAY, which is called by reference, in the following
|
---|
25 | ; format.
|
---|
26 | ;
|
---|
27 | ; .ARRAY = Recommend the return array should be namespaced.
|
---|
28 | ;
|
---|
29 | ;Return Values:
|
---|
30 | ; ARRAY = -1 means that the Look-up or Query failed
|
---|
31 | ; ARRAY = IEN means that the Look-up or Query was
|
---|
32 | ; successful.
|
---|
33 | ;
|
---|
34 | ;Return Array:
|
---|
35 | ;ARRAY(IEN,.01) = Pointer to File 44_"^"_External value of Hospital
|
---|
36 | ; Location file(44), Name field(.01)
|
---|
37 | ;ARRAY(IEN,.02) = Facility pointer to File 4_"^"_External name of
|
---|
38 | ; facility
|
---|
39 | ;ARRAY(IEN,.03) = Pointer to File 212.7_"^"_External value of NURS
|
---|
40 | ; Product Line file(212.7), Name field(.01)
|
---|
41 | ;ARRAY(IEN,1) = Patient care status internal value_"^"_External
|
---|
42 | ; value of Patient care status
|
---|
43 | ;ARRAY(IEN,1.5) = Ward status Internal value_"^"_External value
|
---|
44 | ; of Ward status
|
---|
45 | ;ARRAY(IEN,2) = Total number of MAS ward pointers
|
---|
46 | ; X = the IEN of the entry within the MAS ward Multiple.
|
---|
47 | ;ARRAY(IEN,2,X,.01) = Pointer to File 42_"^"_External value of Ward
|
---|
48 | ; Location file(42), Name field(.01)
|
---|
49 | ;ARRAY(IEN,2,X,1) = Pointer to File 213.3_"^"_External value of
|
---|
50 | ; NURS AMIS Ward file(213.3), Bed Section
|
---|
51 | ; field(.01)
|
---|
52 | ;ARRAY(IEN,4)=Total number of entries within the AMIS ward pointer.
|
---|
53 | ; Y = the IEN of the entry within the AMIS Bed section
|
---|
54 | ; Multiple
|
---|
55 | ;ARRAY(IEN,4,Y,.01) = Pointer to file 213.3_"^"_ External
|
---|
56 | ; value of NURS AMIS Ward file(213.3),
|
---|
57 | ; Bed Section field(.01)
|
---|
58 | ;ARRAY(IEN,11) = Professional Percentage
|
---|
59 | ;ARRAY(IEN,12) = Pointer to File 211.5_"^"_External value of NURS
|
---|
60 | ; Clinical Background file(211.5), Description
|
---|
61 | ; field(.01)
|
---|
62 | ;ARRAY(IEN,37) = Indicates whether or not active staff is assigned
|
---|
63 | ; to this ward.
|
---|
64 | ;
|
---|
65 | WARD(FUNCT,ARRAY) ; Main Entry
|
---|
66 | N ACT,NODE,DISYS,I,NURACTV,NURMDSW,X,XXX,YY,ZZ
|
---|
67 | S ARRAY=-1
|
---|
68 | S ACT=$P(FUNCT,U)
|
---|
69 | I ACT="Q" D
|
---|
70 | . ; DIC Query Lookup for data
|
---|
71 | . N Y,SCREEN,DIC,X,DUOUT,DTOUT
|
---|
72 | . S SCREEN=$P(FUNCT,U,2) Q:"AI"'[SCREEN
|
---|
73 | . S DIC="^NURSF(211.4,",DIC(0)="AEMNXQ"
|
---|
74 | . I SCREEN'="" S DIC("S")="I $$GET1^DIQ(211.4,+Y,1.5,""I"")=SCREEN"
|
---|
75 | . D ^DIC
|
---|
76 | . I Y'=-1 S ARRAY=+Y
|
---|
77 | . Q
|
---|
78 | I ACT="L" D
|
---|
79 | . ; Lookup/load ARRAY
|
---|
80 | . N IEN
|
---|
81 | . S IEN=+$P(FUNCT,U,2)
|
---|
82 | . I $G(^NURSF(211.4,IEN,0))="" S IEN=-1
|
---|
83 | . S ARRAY=IEN
|
---|
84 | . Q
|
---|
85 | Q:ARRAY=-1
|
---|
86 | D LOAD
|
---|
87 | Q
|
---|
88 | LOAD ; This will load the data into ARRAY
|
---|
89 | Q:ARRAY=-1
|
---|
90 | N I,J,IEN,LINE
|
---|
91 | S IEN=ARRAY
|
---|
92 | S J=$$GET1^DIQ(44,+$G(^NURSF(211.4,IEN,0)),.01,"E")
|
---|
93 | S ARRAY(IEN,.01)=+$G(^NURSF(211.4,IEN,0))_U_$P(J,"NUR ",2)
|
---|
94 | S ARRAY(IEN,.02)=$$GET1^DIQ(44,+$G(^NURSF(211.4,IEN,0)),3,"I")_U
|
---|
95 | S ARRAY(IEN,.02)=ARRAY(IEN,.02)_$$GET1^DIQ(211.4,IEN,.02,"E")
|
---|
96 | S LINE=$G(^NURSF(211.4,IEN,1))
|
---|
97 | I LINE'="" D
|
---|
98 | . I $P(LINE,U,4)'="" S ARRAY(IEN,.03)=$P(LINE,U,4)_U_$$GET1^DIQ(212.7,$P(LINE,U,4),.01,"E")
|
---|
99 | . I $P(LINE,U)'="" S ARRAY(IEN,1)=$P(LINE,U)_U_$$GET1^DIQ(211.4,IEN,1,"E")
|
---|
100 | . I $P(LINE,U,2)'="" S ARRAY(IEN,11)=$P(LINE,U,2)
|
---|
101 | . I $P(LINE,U,3)'="" S ARRAY(IEN,12)=$P(LINE,U,3)_U_$$GET1^DIQ(211.5,$P(LINE,U,3),.01,"E")
|
---|
102 | . Q
|
---|
103 | I $G(^NURSF(211.4,IEN,"I"))'="" S ARRAY(IEN,1.5)=$P(^("I"),U)_U_$$GET1^DIQ(211.4,IEN,1.5,"E")
|
---|
104 | S ARRAY(IEN,37)=$$GET1^DIQ(211.4,IEN,37,"E")
|
---|
105 | F NODE=3,4 I +$P($G(^NURSF(211.4,IEN,NODE,0)),U,4) D SUB
|
---|
106 | Q
|
---|
107 | SUB ; Get sub node data for 3, and 4
|
---|
108 | N X,Z,SNODE
|
---|
109 | S (X,Z)=0
|
---|
110 | S SNODE=$S(NODE=3:2,NODE=4:4,1:0)
|
---|
111 | Q:'SNODE
|
---|
112 | F S X=$O(^NURSF(211.4,IEN,NODE,X)) Q:X<1 D
|
---|
113 | . N I
|
---|
114 | . I NODE=3 D
|
---|
115 | .. N VALUE
|
---|
116 | .. S VALUE=$P($G(^NURSF(211.4,IEN,NODE,X,0)),U) Q:'VALUE
|
---|
117 | .. S ARRAY(IEN,SNODE,X,.01)=VALUE_U_$$GET1^DIQ(42,VALUE,.01,"E")
|
---|
118 | .. Q
|
---|
119 | . D ; Modularize this call
|
---|
120 | .. N VALUE,PIECE,FIELD
|
---|
121 | .. S PIECE=$S(NODE=3:2,1:1)
|
---|
122 | .. S FIELD=$S(NODE=3:1,1:.01)
|
---|
123 | .. S VALUE=$P($G(^NURSF(211.4,IEN,NODE,X,0)),U,PIECE) Q:'VALUE
|
---|
124 | .. S ARRAY(IEN,SNODE,X,FIELD)=VALUE_U_$$GET1^DIQ(213.3,VALUE,.01,"E")
|
---|
125 | . S Z=Z+1
|
---|
126 | . Q
|
---|
127 | S ARRAY(IEN,SNODE)=Z
|
---|
128 | Q
|
---|