1 | NURAPI ;HCIOFO/FT,AL-APIs ;8/14/02 08:43
|
---|
2 | ;;4.0;NURSING SERVICE;**37**;Apr 25, 1997
|
---|
3 | ;
|
---|
4 | ; The entry points in this routine are documented in IA #3227.
|
---|
5 | ;
|
---|
6 | ; This routine uses the following IAs:
|
---|
7 | ; #10035 - ^DPT( references (supported)
|
---|
8 | ;
|
---|
9 | ACTLOCS(ARRAY) ; Returns all active nursing locations from the NURS LOCATION
|
---|
10 | ; file (#211.4) in the array specified. FILE 211.4 points to HOSPITAL
|
---|
11 | ; LOCATION file (#44).
|
---|
12 | ; input: ARRAY - (Required) The name of the array to store the entries
|
---|
13 | ; output: ARRAY(sequence #)=File 211.4 ien^File 44 name (for 211.4 ien)
|
---|
14 | ;
|
---|
15 | N NURCNT,NURI,NURIEN,NURNAME
|
---|
16 | D LIST^DIC(211.4,"","","","*","","","","I $S('$D(^NURSF(211.4,""D"",""I"",+Y)):1,$P(^NURSF(211.4,+Y,1),U)=""I"":0,1:1)","")
|
---|
17 | I +$P($G(^TMP("DILIST",$J,0)),U,1)=0 S ARRAY(1)="NO UNIT"
|
---|
18 | S (NURCNT,NURI)=0
|
---|
19 | F S NURI=$O(^TMP("DILIST",$J,1,NURI)) Q:'NURI D
|
---|
20 | .S NURNAME=$P($G(^TMP("DILIST",$J,1,NURI)),U,1)
|
---|
21 | .S NURIEN=+$P($G(^TMP("DILIST",$J,2,NURI)),U,1)
|
---|
22 | .Q:'NURIEN
|
---|
23 | .S NURCNT=NURCNT+1
|
---|
24 | .S ARRAY(NURCNT)=NURIEN_U_NURNAME
|
---|
25 | .Q
|
---|
26 | K ^TMP("DILIST",$J)
|
---|
27 | Q
|
---|
28 | PTCHK(LOC) ; This function returns a value that indicates if any patients
|
---|
29 | ; (active or inactive) are associated with the Nursing location
|
---|
30 | ; identified.
|
---|
31 | ; input: LOC - (Required) NURS LOCATION file (#211.4) ien
|
---|
32 | ; output: 0 - no patients associated with this location
|
---|
33 | ; 1 - yes, patients are associated with this location
|
---|
34 | ; -1 - (minus 1) LOC is undefined or not found
|
---|
35 | ;I $G(LOC)="" Q -1
|
---|
36 | I '$D(^NURSF(211.4,+LOC,0)) Q -1
|
---|
37 | I '$D(^NURSF(214,"E",LOC)) Q 0 ;FILE 214 is the NURS PATIENT file
|
---|
38 | Q 1
|
---|
39 | ;
|
---|
40 | APTCHK(LOC) ; This function returns a value that indicates if active
|
---|
41 | ; patients are associated with the Nursing location identified.
|
---|
42 | ; input: LOC - (Required) NURS LOCATION file (#211.4) ien
|
---|
43 | ; output: 0 - no active patients associated with this location
|
---|
44 | ; 1 - yes, active patients are associated with this location
|
---|
45 | ; -1 - (minus 1) LOC is undefined or not found
|
---|
46 | ;I $G(LOC)="" Q -1
|
---|
47 | I '$D(^NURSF(211.4,+LOC,0)) Q -1
|
---|
48 | I '$D(^NURSF(214,"AF","A",LOC)) Q 0 ;FILE 214 is the NURS PATIENT file
|
---|
49 | Q 1
|
---|
50 | ;
|
---|
51 | PTLIST(LOC,ARRAY) ; Returns a list of all (active and inactive) patients
|
---|
52 | ; for a nursing location in the array specified.
|
---|
53 | ; input: LOC - (Required) NURS LOCATION file (#211.4) ien
|
---|
54 | ; input: ARRAY - (Required) Name of array to return entries in
|
---|
55 | ; output: ARRAY - Subscripted by sequential number with DFN in first
|
---|
56 | ; piece and patient name in second piece.
|
---|
57 | ; example: ARRAY(#)=DFN^patient name
|
---|
58 | ;
|
---|
59 | ; If LOC is undefined or not found, then returns ARRAY(1)=-1
|
---|
60 | ; If no patients on the Location, then returns ARRAY(1)="^No Patients"
|
---|
61 | ;
|
---|
62 | ;I $G(LOC)="" S ARRAY(1)=-1 Q
|
---|
63 | I '$D(^NURSF(211.4,+LOC,0)) S ARRAY(1)=-1 Q
|
---|
64 | N DFN,PATNAME,NURCNT
|
---|
65 | S (DFN,NURCNT)=0
|
---|
66 | F S DFN=$O(^NURSF(214,"E",LOC,DFN)) Q:DFN'>0 D
|
---|
67 | . S PATNAME=$P($G(^DPT(DFN,0)),"^")
|
---|
68 | . Q:PATNAME=""
|
---|
69 | . S NURCNT=NURCNT+1
|
---|
70 | . S ARRAY(NURCNT)=DFN_U_PATNAME
|
---|
71 | . Q
|
---|
72 | I NURCNT=0 S ARRAY(1)="^No Patients"
|
---|
73 | Q
|
---|
74 | APTLIST(LOC,ARRAY) ; Returns a list of active patients for a nursing
|
---|
75 | ; location in the array specified.
|
---|
76 | ; input: LOC - (Required) NURS LOCATION file (#211.4) ien
|
---|
77 | ; input: ARRAY - (Required) Name of the array to return entries in
|
---|
78 | ; output: ARRAY - Subscripted by sequential number with DFN in first
|
---|
79 | ; piece and patient name in second piece.
|
---|
80 | ; example: ARRAY(#)=DFN^patient name
|
---|
81 | ;
|
---|
82 | ; If LOC is undefined or not found, then returns ARRAY(1)=-1
|
---|
83 | ; If no patients on the Location, then returns ARRAY(1)="^No Patients"
|
---|
84 | ;
|
---|
85 | ;I $G(LOC)="" S ARRAY(1)=-1 Q
|
---|
86 | I '$D(^NURSF(211.4,+LOC,0)) S ARRAY(1)=-1 Q
|
---|
87 | N DFN,NURCNT,PATNAME
|
---|
88 | S (DFN,NURCNT)=0
|
---|
89 | F S DFN=$O(^NURSF(214,"AF","A",LOC,DFN)) Q:DFN'>0 D
|
---|
90 | .S PATNAME=$P($G(^DPT(DFN,0)),"^")
|
---|
91 | .Q:PATNAME=""
|
---|
92 | .S NURCNT=NURCNT+1
|
---|
93 | .S ARRAY(NURCNT)=DFN_U_PATNAME
|
---|
94 | .Q
|
---|
95 | I NURCNT=0 S ARRAY(1)="^No Patients"
|
---|
96 | Q
|
---|
97 | FINDNLOC(LOC) ; This function returns the NURS LOCATION file (#211.4) ien
|
---|
98 | ; and the ien of the location (File 44, Field .01).
|
---|
99 | ; input: LOC - (Required) Name of the Nursing location (as it appears
|
---|
100 | ; in File 44).
|
---|
101 | ; The name should begin with the characters 'NUR '.
|
---|
102 | ; If not, 'NUR<space>' will be appended to the beginning
|
---|
103 | ; of LOC. If LOC is undefined, then returns -1.
|
---|
104 | ; output: File 211.4 ien^File 44 ien
|
---|
105 | ;
|
---|
106 | ; If LOC is undefined, then returns -1
|
---|
107 | ; If LOC is not found, then returns "^Location not found"
|
---|
108 | ;
|
---|
109 | I $G(LOC)="" Q -1
|
---|
110 | N NUROUT,NURWARD,NURVHLOC
|
---|
111 | I LOC'?1"NUR ".E S LOC="NUR "_LOC
|
---|
112 | D FIND^DIC(211.4,"","","X",LOC,"","","","","NUROUT")
|
---|
113 | S NUROUT(1)=+$P($G(NUROUT("DILIST",0)),"^")
|
---|
114 | I NUROUT(1)'>0 Q "^Location not found"
|
---|
115 | S NURWARD=+$P(NUROUT("DILIST",2,1),"^"),NURVHLOC=+$P(NUROUT("DILIST",1,1),"^")
|
---|
116 | S LOC=NURWARD_"^"_NURVHLOC
|
---|
117 | Q LOC
|
---|
118 | ;
|
---|
119 | MASWARDS(LOC,ARRAY) ; Returns the MAS wards associated with this Nursing
|
---|
120 | ; location in the array specified. The .01 field of the MAS WARD
|
---|
121 | ; multiple of the NURS LOCATION file points to the WARD LOCATION
|
---|
122 | ; file (#42).
|
---|
123 | ; input: LOC - (Required) NURS LOCATION file (#211.4) ien
|
---|
124 | ; input: ARRAY - (Required) Name of array to return entries in
|
---|
125 | ; output: ARRAY subscripted by the MAS WARD value.
|
---|
126 | ; example: ARRAY($P(^NURSF(211.4,LOC,3,D1,0),U,1))=""
|
---|
127 | ; If LOC is null or not found, then ARRAY(1)=-1
|
---|
128 | ;
|
---|
129 | I '$D(^NURSF(211.4,+LOC,0)) S ARRAY(1)=-1 Q
|
---|
130 | N GMVD1
|
---|
131 | I $D(^NURSF(211.4,LOC,3)) D
|
---|
132 | .S GMVD1=0
|
---|
133 | .F S GMVD1=$O(^NURSF(211.4,LOC,3,GMVD1)) Q:GMVD1'>0 S ARRAY($P(^NURSF(211.4,LOC,3,GMVD1,0),U,1))=""
|
---|
134 | .Q
|
---|
135 | I $O(ARRAY(0))="" S ARRAY(1)=-1
|
---|
136 | Q
|
---|