1 | SPNALERT ;SAN/WDE/Main Alert Driver
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**11,12,13,15**;01/02/1997
|
---|
3 | ; called from the protocal DGPM MOVEMENT
|
---|
4 | ; for the time we are only going to check for
|
---|
5 | ; admits.
|
---|
6 | EN ;
|
---|
7 | Q:'$D(DFN)
|
---|
8 | Q:'$D(DGPMT)
|
---|
9 | ;we only want admits and discharges ignore the rest
|
---|
10 | Q:DGPMT=2
|
---|
11 | Q:DGPMT>3
|
---|
12 | Q:'$D(^SPNL(154,DFN))
|
---|
13 | S SPNACT=DGPMT
|
---|
14 | ;this is a new parm that will go in 154.91
|
---|
15 | S SPNSITE=0,SPNSITE=$O(^SPNL(154.91,SPNSITE)) I SPNSITE="" D ZAP Q
|
---|
16 | S SPNSEND=$P($G(^SPNL(154.91,SPNSITE,0)),U,8) I SPNSEND'=1 D CHKOTHER D ZAP Q
|
---|
17 | ;must have a site entered and yes to send alerts
|
---|
18 | D 1,CHKOTHER D ZAP
|
---|
19 | D ZAP
|
---|
20 | Q
|
---|
21 | ;------------------------------------------------------
|
---|
22 | 1 ;Check to see if the local station has the notice turned on
|
---|
23 | ;if so check for type of patient and build send to group
|
---|
24 | TEST ;
|
---|
25 | ;Check to see if the pt has an etiology of ms
|
---|
26 | S SPNTYP="",SPNNU=""
|
---|
27 | S SPNNU=0 F S SPNNU=$O(^SPNL(154,DFN,"E",SPNNU)) Q:(SPNNU="")!('+SPNNU) D
|
---|
28 | .S SPNTYP=$P($G(^SPNL(154,DFN,"E",SPNNU,0)),U,1)
|
---|
29 | .S SPNTYP=$G(^SPNL(154.03,SPNTYP,0))
|
---|
30 | .I SPNTYP["MULTIPLE SCLEROSIS" S SPNNU=999999 Q
|
---|
31 | .Q
|
---|
32 | I SPNTYP["MULTIPLE SCLEROSIS" S SPNTO=$P($G(^SPNL(154.91,SPNSITE,0)),U,10)
|
---|
33 | I SPNTYP'["MULTIPLE SCLEROSIS" S SPNTO=$P($G(^SPNL(154.91,SPNSITE,0)),U,9)
|
---|
34 | I $G(SPNTO)'="" S SPNTO=$P($G(^XMB(3.8,SPNTO,0)),U,1)
|
---|
35 | I $G(SPNTO)="" S SPNTO="SPNL SCD COORDINATOR"
|
---|
36 | S SPNTO="G."_SPNTO
|
---|
37 | S XMY(SPNTO)=""
|
---|
38 | Q
|
---|
39 | ;---------------------------------------------------------------------
|
---|
40 | ZAP ;
|
---|
41 | K SPNTO,SPNTYP,SPNNU,SPNSITE
|
---|
42 | K SPWARD,SPNTXT,SPNINST,SPNDOM,SPNLN
|
---|
43 | K SPZ,SPLN,SPNTEXT
|
---|
44 | Q
|
---|
45 | CHKOTHER ;looks at additional care va and sends to that sci coord grp
|
---|
46 | ; Note that its getting the host site from 154.7
|
---|
47 | S SPNDOM="" F SPZ=3.2,3.3,3.4 D
|
---|
48 | .S SPNINST=$$GET1^DIQ(154,DFN_",",SPZ,"I") Q:SPNINST=""
|
---|
49 | .Q:SPNINST=$G(^DD("SITE",1)) ;Checks for same site pt is adm to.
|
---|
50 | .S SPNDOM="" S SPNDOM=$P($G(^SPNL(154.7,SPNINST,0)),U,4) Q:SPNDOM=""
|
---|
51 | .S XMY("G.SPNL SCD COORDINATOR@"_SPNDOM)=""
|
---|
52 | ;-------------------------------------------------------------------
|
---|
53 | Q:'$D(XMY) ;no one to send it to
|
---|
54 | ;at this point pt is seen at other va
|
---|
55 | S SPNLAS=$E($P($G(^DPT(DFN,0)),U,1),1)_$E($P($G(^DPT(DFN,0)),U,9),6,9)
|
---|
56 | S SPNTXT(1)="Patient : "_SPNLAS
|
---|
57 | I DGPMT=1 S SPWARD=$P($G(DGPMA),U,6) S:SPWARD="" SPWARD="Ward Unknown" I +SPWARD S SPWARD=$S($D(^DIC(42,SPWARD,0)):$P(^DIC(42,SPWARD,0),U,1),1:"Ward Unknown")
|
---|
58 | I DGPMT=3 S SPWARD=$P($G(DGPMVI(5)),U,2) S:SPWARD="" SPWARD="Ward Unknown"
|
---|
59 | S Y=$P($G(DGPMA),U,1) X ^DD("DD") S SPTIME=Y S:Y="" Y="Missing date"
|
---|
60 | S SPNTXT(2)=$S(SPNACT=1:"Date Admitted : ",1:"Date Discharged : ")_SPTIME
|
---|
61 | S SPNTXT(3)=$S(SPNACT=1:"Admitted to : ",1:"Discharged From : ")_SPWARD
|
---|
62 | I SPNACT=1 S SPNBD=$P($G(DGPMA),U,7) I +SPNBD S SPNBD=$P($G(^DG(405.4,SPNBD,0)),U,1)
|
---|
63 | I SPNACT=1 S SPNTXT(4)="Room-Bed : "_SPNBD
|
---|
64 | S SPNTXT(5)="REGISTRATION STATUS : "_$$GET1^DIQ(154,DFN_",",.03)
|
---|
65 | S SPNTXT(6)="VA SCI STATUS : "_$$GET1^DIQ(154,DFN_",",2.6)
|
---|
66 | S SPNTXT(7)="PRIMARY CARE PROVIDER : "_$$GET1^DIQ(154,DFN_",",8.1)
|
---|
67 | S SPNTXT(8)="SCI LEVEL : "_$$GET1^DIQ(154,DFN_",",2.1)
|
---|
68 | S SPNTXT(9)="Etiology Onset Other"
|
---|
69 | S SPNTXT(10)="------------------------------------------------------------------------------"
|
---|
70 | D GETS^DIQ(154,DFN_",","4*","","SPNTMP")
|
---|
71 | S SPENT=0,SPLN=11 F S SPENT=$O(SPNTMP(154.004,SPENT)) Q:SPENT="" D
|
---|
72 | .S SPTXT=$G(SPNTMP(154.004,SPENT,.01))_" "
|
---|
73 | .S SPTXT=$E(SPTXT,1,32)_$G(SPNTMP(154.004,SPENT,.02))_" "_$G(SPNTMP(154.004,SPENT,.03))
|
---|
74 | .S SPLN=SPLN+1 S SPNTXT(SPLN)=SPTXT S SPTXT=""
|
---|
75 | S SPLN=SPLN+1 S SPNTXT(SPLN)="-------------------------------------------------------------------------------"
|
---|
76 | S SPLN=SPLN+1 S SPNTXT(SPLN)="Recipients of this message:"
|
---|
77 | S SPLN=SPLN+1 S SPSENT="" F S SPSENT=$O(XMY(SPSENT)) Q:SPSENT="" S SPNTXT(SPLN)=SPSENT S SPLN=SPLN+1
|
---|
78 | S XMSUB=$S(SPNACT=1:"Admission",1:"Discharge")_" notice for "_SPNLAS_" from "_$P($G(^DD("SITE")),".",1)
|
---|
79 | S XMTEXT="SPNTXT("
|
---|
80 | D ^XMD
|
---|
81 | K XMTEXT,SPTXT,SPENT,XMA,SPNSENT,SPNSITE,SPNDOM,SPNTO,SPWARD,SPNBD
|
---|
82 | K SPNTMP,SPWARD,SPNACT,SPNL,SPSENT,SPNTXT,SPNBD,SPTIME
|
---|
83 | K SPNSEND,SPNLAS
|
---|