1 | NURSCPLU ;HIRMFO/RM,FT-Create NURSING FILE AND XREFS ;8/14/96 10:22
|
---|
2 | ;;4.0;NURSING SERVICE;;Apr 25, 1997
|
---|
3 | EN1 ; ENTRY FROM OPTION NURSPT-WRDACT
|
---|
4 | S X="A"
|
---|
5 | G MAIN
|
---|
6 | EN2 ; ENTRY FROM OPTION NURSPT-WRDINA
|
---|
7 | S X="I"
|
---|
8 | MAIN ;
|
---|
9 | Q:'$D(^DIC(213.9,1,"OFF")) Q:$P(^DIC(213.9,1,"OFF"),"^",1)=1
|
---|
10 | S NURSTUS=X
|
---|
11 | D CKMAS I NURSBAD Q
|
---|
12 | S NURSEND=0
|
---|
13 | D DATACK
|
---|
14 | D:'NURSDATA FIRSTIME I NURSEND K NURSEND Q
|
---|
15 | D WARDSEL I $G(NURSEND) K NURSEND Q
|
---|
16 | D INIT214 K NURSEND
|
---|
17 | Q
|
---|
18 | FIRSTIME ; IF NO DATA IN NURS PATIENT (214) FILE INITIALIZE IT
|
---|
19 | D EN1^NURSCPL
|
---|
20 | I NURSBAD S NURSEND=1 Q
|
---|
21 | D INIT214 K NURSWRD
|
---|
22 | S NURSDATA=1
|
---|
23 | Q
|
---|
24 | DATACK ; CHECK TO SEE IF DATA IN THE 214 FILE
|
---|
25 | S NURSDATA=0,NURSCK=$O(^NURSF(214,0))
|
---|
26 | S:NURSCK>0 NURSDATA=1
|
---|
27 | Q
|
---|
28 | WARDSEL ; SELECT WARD TO BE ACTIVATED
|
---|
29 | S NURSEND=0,OUTSW=0
|
---|
30 | F NURSI=1:1 S DIC="^NURSF(211.4,",DIC("S")="I $S('$D(^(""I"")):1,$P(^(""I""),U)'=""I"":1,1:0)",DIC(0)="AEM",DIC("A")="Select UNIT: " D ^DIC K DIC S:X="^" NURSEND=1,OUTSW=1 S:(X="")!(+Y'>0) OUTSW=1 S:(X="")&'$D(NURSWRD) NURSEND=1 Q:OUTSW D
|
---|
31 | .S NURSWRD(NURSI)=+Y
|
---|
32 | .Q
|
---|
33 | I NURSEND Q
|
---|
34 | D:'$G(NURSEND) ACTWARD
|
---|
35 | Q
|
---|
36 | ACTWARD ; SET WARD STATUS TO ACTIVE
|
---|
37 | F NURSI=0:0 S NURSI=$O(NURSWRD(NURSI)) Q:NURSI'>0 S DA=NURSWRD(NURSI),DIE="^NURSF(211.4,",DR="1///^S X=NURSTUS" D ^DIE
|
---|
38 | Q
|
---|
39 | CKMAS ; CHECKS EVERY MAS WARD TO SEE IF CORR. NURSING LOCATION
|
---|
40 | W !!,"Checking to see if every MAS Ward has a corresponding NURSING unit"
|
---|
41 | S NURSERR=0
|
---|
42 | F NURSY=0:0 S NURSY=$O(^DIC(42,NURSY)) S:(NURSY'>0)&(NURSERR) NURSBAD=1 Q:NURSY'>0 S X=$P(^DIC(42,NURSY,0),"^",1) D ^NURSAWCK S:NURSBAD NURSERR=1
|
---|
43 | I NURSBAD D BADWARD^NURSAWCK W !!!,$C(7),"Press return to continue: " R X:DTIME Q
|
---|
44 | Q
|
---|
45 | INIT214 ; ENTERS PATIENTS INTO 214 FILE FROM 2 FILE
|
---|
46 | W:'$G(NURSDATA) !!,"Set up initial Nursing Patient file entries for inpatients"
|
---|
47 | W:$G(NURSDATA) !!,"Ward "_$S(NURSTUS="A":"A",1:"Dea")_"ctivation and Patient entry for the following Nursing unit(s):"
|
---|
48 | D DT^DICRW S U="^" D F1:$G(NURSTUS)="A",F3:$G(NURSTUS)="I"
|
---|
49 | W !!,"Done ... "
|
---|
50 | Q
|
---|
51 | F1 ; ACTIVIATION PROCESS
|
---|
52 | F NURSY=0:0 S NURSY=$O(NURSWRD(NURSY)) Q:NURSY'>0 S NPWARD=NURSWRD(NURSY) D EN6^NURSAUTL W !," ",NPWARD F NURSZ=0:0 S NURSZ=$O(^NURSF(211.4,NURSWRD(NURSY),3,NURSZ)) Q:NURSZ'>0 D F10
|
---|
53 | Q
|
---|
54 | F10 ;
|
---|
55 | S NURSWRD=$S($D(^NURSF(211.4,NURSWRD(NURSY),3,NURSZ,0)):$S($D(^DIC(42,+^NURSF(211.4,NURSWRD(NURSY),3,NURSZ,0),0)):$P(^(0),"^"),1:""),1:"")
|
---|
56 | I NURSWRD'="" F DFN=0:0 S DFN=$O(^DPT("CN",NURSWRD,DFN)) Q:DFN'>0 D F2
|
---|
57 | Q
|
---|
58 | F2 ; ACTIVATE PATIENT
|
---|
59 | I '$D(^DPT(DFN,.1)),'$D(^DPT(DFN)) W !!,*7,*7,"PATIENT WITH IEN#",DFN," DOES NOT HAVE A RECORD",!,"IN THE PATIENT FILE." Q
|
---|
60 | I '$D(^DPT(DFN,.1)) W !!,*7,*7,$P(^DPT(DFN,0),"^",1)," CANNOT BE ADMITTED INTO",!,"THE NURSING SERVICE BECAUSE OF A PROBLEM WITH THE MAS PATIENT FILE -- NOTIFY MAS" Q
|
---|
61 | I NURSDATA D MASCK Q:NURSNOTV
|
---|
62 | S X=^DPT(DFN,.1)
|
---|
63 | S DA=DFN,DIC="" D EN1^NURSCPL
|
---|
64 | Q
|
---|
65 | F3 ; DEACTIVATION PROCESS
|
---|
66 | F NURSY=0:0 S NURSY=$O(NURSWRD(NURSY)) Q:NURSY'>0 S (NPWARD,NURSWRD)=NURSWRD(NURSY) D EN6^NURSAUTL W !," "_NPWARD F DA=0:0 S DA=$O(^NURSF(214,"AF","A",NURSWRD,DA)) Q:DA'>0 S X=NURSWRD D EN2^NURSCPL
|
---|
67 | Q
|
---|
68 | MASCK ; CHECKS TO SEE IF THE MAS WARD IS AN ACTIVATED NURSE LOCATION.
|
---|
69 | S NURSWARD=$S($P(^DPT(DFN,.1),"^",1)="":"",1:$O(^DIC(42,"B",$P(^DPT(DFN,.1),"^",1),"")))
|
---|
70 | S NURSNOTV=1
|
---|
71 | Q:NURSWARD=""
|
---|
72 | F NURSWCK=0:0 S NURSWCK=$O(^NURSF(211.4,"C",NURSWARD,NURSWCK)) Q:NURSWCK'>0 D WARDCK Q:'NURSNOTV
|
---|
73 | Q
|
---|
74 | WARDCK ; THIS CHECKS THAT THE NURSE LOCATION WAS ONE SELECTED TO ACTIVATE
|
---|
75 | F NURSI=0:0 S NURSI=$O(NURSWRD(NURSI)) Q:(NURSI'>0)!('NURSNOTV) S:NURSWCK=NURSWRD(NURSI) NURSNOTV=0
|
---|
76 | Q
|
---|