1 | SPNMSR1 ;SAN/WDE/MS Canned report/10-26-2001
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**12,14,16**;01/02/1997
|
---|
3 | EN ;
|
---|
4 | ;ask if they want all patients or just one
|
---|
5 | S SPNTRUE=0
|
---|
6 | S DIR(0)="YAO" ; Answer yes or no
|
---|
7 | S DIR("A")="Would you like all patients: "
|
---|
8 | S DIR("B")="NO"
|
---|
9 | S DIR("?")="Enter yes for all patients or no for a single patient."
|
---|
10 | D ^DIR I $D(DIRUT) D EXIT Q
|
---|
11 | I Y'=1 D PTLK I SPNTRUE=1 I +SPNDFN G DEV Q D EXIT Q
|
---|
12 | I Y'=1 I SPNTRUE=0 D EXIT Q
|
---|
13 | REG ;Ask if they want to sort on a particular REGISTRATION STATUS
|
---|
14 | S DIR(0)="SO^A:ALL;0:NOT SCD;1:SCD - CURRENTLY SERVED;2:SCD - NOT CURRENTLY SERVED;X:EXPIRED"
|
---|
15 | S DIR("B")="A",DIR("A")="Select a Registration Status"
|
---|
16 | D ^DIR
|
---|
17 | I (Y="")!(Y["^") G EXIT Q
|
---|
18 | S SPNRET=Y
|
---|
19 | SCI ;Ask if they want to sort out any SCI NETWORK
|
---|
20 | S DIR(0)="SO^A:ALL;Y:SCI NETWORK YES;N:SCI NETWORK NO"
|
---|
21 | S DIR("A")="Select a SCI NETWORK",DIR("B")="A"
|
---|
22 | D ^DIR
|
---|
23 | I (Y="")!(Y["^") G EXIT Q
|
---|
24 | I Y="Y" S Y=1
|
---|
25 | I Y="N" S Y=0
|
---|
26 | S SPNNET=Y
|
---|
27 | MSTYPE ;Ask if user want a particular MS Subtype value
|
---|
28 | S DIR(0)="SO^A:ALL;UN:UNKNOWN;RR:RELAPSING-REMITTING;PP:PRIMARY PROGRESSIVE;SP:SECONDARY PROGRESSIVE;PR:PROGRESSIVE RELAPSING"
|
---|
29 | S DIR("B")="A",DIR("A")="Select a MS Subtype value"
|
---|
30 | D ^DIR
|
---|
31 | I (Y="")!(Y["^") G EXIT Q
|
---|
32 | S SPNMSS=Y
|
---|
33 | DEV ;put the device call in calls here
|
---|
34 | S ZTSAVE("SPN*")=""
|
---|
35 | S SPNLEXIT=""
|
---|
36 | D DEVICE^SPNPRTMT("EN2^SPNMSR1","Print MS patients",.ZTSAVE) Q:SPNLEXIT
|
---|
37 | I SPNIO="Q" D EXIT Q
|
---|
38 | I IO'="" D EN2 D EXIT Q
|
---|
39 | EN2 ;Start the search
|
---|
40 | ;
|
---|
41 | K ^UTILITY($J)
|
---|
42 | I $D(SPNDFN) D EDSS D COLL D ^SPNMSR2 D EXIT Q
|
---|
43 | S SPNDFN=0 F S SPNDFN=$O(^SPNL(154,SPNDFN)) Q:(SPNDFN="")!('+SPNDFN) D
|
---|
44 | .Q:$P($G(^SPNL(154,SPNDFN,0)),U,1)="" ;patch 16
|
---|
45 | .D TESTMS Q:SPNTRUE=0
|
---|
46 | .I SPNTRUE=1 I SPNRET'="A" D TEST1 Q:SPNTRUE=0
|
---|
47 | .I SPNTRUE=1 I SPNNET'="A" D TEST2 Q:SPNTRUE=0
|
---|
48 | .I SPNTRUE=1 I SPNMSS'="A" D TEST3 Q:SPNTRUE=0
|
---|
49 | .I SPNTRUE=1 D EDSS D COLL
|
---|
50 | .Q
|
---|
51 | D ^SPNMSR2 ;print routine
|
---|
52 | EXIT ;
|
---|
53 | K ^UTILITY($J)
|
---|
54 | K SPNTRUE,SPNTYP,SPNNU,SPNMSS,SPNDFN,Y,DIR,SPNRET,SPNNET,SPNMSS,ZTSAVE,SPNLEXIT,SPNIO,SPNDAT,SPNFDT2,SPNFD0,SPNEDS,SPNFDT,SPNEDSS
|
---|
55 | K SPNNAME,SPNSSN,SPNSUB,SPNPRO,SPNLAS,SPNNEX
|
---|
56 | Q
|
---|
57 | TESTMS ;test patient for a etiology of MS
|
---|
58 | S SPNTRUE=0
|
---|
59 | S SPNTYP="",SPNNU=""
|
---|
60 | S SPNNU=0 F S SPNNU=$O(^SPNL(154,SPNDFN,"E",SPNNU)) Q:(SPNNU="")!('+SPNNU) D
|
---|
61 | .S SPNTYP=$P($G(^SPNL(154,SPNDFN,"E",SPNNU,0)),U,1)
|
---|
62 | .S SPNTYP=$G(^SPNL(154.03,SPNTYP,0))
|
---|
63 | .I SPNTYP["MULTIPLE SCLEROSIS" S SPNTRUE=1 S SPNONS=$P($G(^SPNL(154,SPNDFN,"E",SPNNU,0)),U,2) S SPNNU=99999
|
---|
64 | Q
|
---|
65 | TEST1 ;
|
---|
66 | S SPNDAT=""
|
---|
67 | S SPNDAT=$G(^SPNL(154,SPNDFN,0)) I SPNDAT="" S SPNTRUE=0 Q
|
---|
68 | S SPNDAT=$P($G(SPNDAT),U,3) I SPNDAT="" S SPNTRUE=0 Q
|
---|
69 | S:SPNDAT'=SPNRET SPNTRUE=0 Q ;Failed
|
---|
70 | Q
|
---|
71 | TEST2 ;test for SCI NETWORK
|
---|
72 | S SPNDAT=""
|
---|
73 | S SPNDAT=$G(^SPNL(154,SPNDFN,1)) I SPNDAT="" S SPNTRUE=0 Q
|
---|
74 | S SPNDAT=$P($G(SPNDAT),U,1) I SPNDAT="" S SPNTRUE=0 Q
|
---|
75 | I SPNDAT'=SPNNET S SPNTRUE=0 Q ;Failed
|
---|
76 | Q
|
---|
77 | TEST3 ;test for MS SUBTYPE
|
---|
78 | S SPNDAT=""
|
---|
79 | S SPNDAT=$G(^SPNL(154,SPNDFN,2)) I SPNDAT="" S SPNTRUE=0 Q
|
---|
80 | S SPNDAT=$P($G(SPNDAT),U,2) I SPNDAT="" S SPNTRUE=0 Q
|
---|
81 | I SPNDAT'=SPNMSS S SPNTRUE=0 Q ;Failed
|
---|
82 | Q
|
---|
83 | EDSS ;Get patients latest EDSS score from 154.1
|
---|
84 | S SPNFDT2="",SPNEDSS=""
|
---|
85 | S SPNFD0=0 F S SPNFD0=$O(^SPNL(154.1,"B",SPNDFN,SPNFD0)) Q:(SPNFD0="")!('+SPNFD0) D
|
---|
86 | .S SPNEDS=$G(^SPNL(154.1,SPNFD0,"MS"))
|
---|
87 | .S SPNEDS=$P($G(SPNEDS),U,9)
|
---|
88 | .Q:SPNEDS=""
|
---|
89 | .S SPNFDT=$G(^SPNL(154.1,SPNFD0,0)) Q:SPNFDT=""
|
---|
90 | .S SPNFDT=$P($G(SPNFDT),U,4) Q:SPNFDT=""
|
---|
91 | .I SPNFDT>SPNFDT2 S SPNFDT2=SPNFDT,SPNEDSS=$P($G(^SPNL(154.2,SPNEDS,0)),U,1)
|
---|
92 | .Q
|
---|
93 | I $G(SPNFDT2) S Y=SPNFDT2 X ^DD("DD") S SPNFDT2=Y K Y
|
---|
94 | Q
|
---|
95 | COLL ;patient passed the test and we want them
|
---|
96 | S Y=SPNONS X ^DD("DD") S SPNONS=Y
|
---|
97 | S SPNAME=$$GET1^DIQ(154,SPNDFN_",",.01)
|
---|
98 | S SPNSSN=$$GET1^DIQ(2,SPNDFN_",",.09)
|
---|
99 | S SPNSUB=$$GET1^DIQ(154,SPNDFN_",",2.2)
|
---|
100 | S SPNPRO=$$GET1^DIQ(154,SPNDFN_",",8.1)
|
---|
101 | S SPNLAS=$$GET1^DIQ(154,SPNDFN_",",999.07)
|
---|
102 | S SPNNEX=$$GET1^DIQ(154,SPNDFN_",",999.08)
|
---|
103 | S ^UTILITY($J,SPNAME,SPNDFN)=SPNAME_"^"_SPNSSN_"^"_SPNSUB_"^"_SPNPRO_"^"_SPNLAS_"^"_SPNNEX_"^"_SPNONS_"^"_SPNFDT2_"^"_SPNEDSS
|
---|
104 | S (SPNAME,SPNSSN,SPNSUB,SPNPRO,SPNLAS,SPNNEX,SPNONS,SPNFDT2,SPNEDSS)=""
|
---|
105 | Q
|
---|
106 | PTLK ;
|
---|
107 | S DIC="^SPNL(154,",DIC(0)="AEQMNZ",DIC("A")="Select Patient: "
|
---|
108 | D ^DIC
|
---|
109 | S SPNDFN=$P(Y,U,1)
|
---|
110 | I '+Y G EXIT Q
|
---|
111 | D TESTMS
|
---|
112 | I +SPNDFN I SPNTRUE=0 W !!,"Patient does not have an etiology of MS."
|
---|
113 | Q
|
---|