1 | SPNFEDI ;WDE/SD LOOK-UP RECORDS IN 154.1 ;10/17/2001
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**12,13,16**;01/02/1997
|
---|
3 | ; called from spnfedt0
|
---|
4 | EN(SPNFTYPE,SPNFDFN) ;
|
---|
5 | K ^UTILITY($J,"FUN")
|
---|
6 | K ^UTILITY($J,"FUNSORT")
|
---|
7 | K ^TMP($J,"TEMP ADM")
|
---|
8 | ;---------------------------------------------------------------------
|
---|
9 | ;build scratch global so we can check admissions on file
|
---|
10 | ;to what is in 154.1
|
---|
11 | S SPNCH="" F S SPNCH=$O(^DGPM("ATID1",SPNFDFN,SPNCH)) Q:(SPNCH="")!('+SPNCH) D
|
---|
12 | .S SPNCHK=0,SPNCHK=$O(^DGPM("ATID1",SPNFDFN,SPNCH,SPNCHK))
|
---|
13 | .S ^TMP($J,"TEMP ADM",$P($G(^DGPM(SPNCHK,0)),U,1))=""
|
---|
14 | S SPNFD0=0 F S SPNFD0=$O(^SPNL(154.1,"B",SPNFDFN,SPNFD0)) Q:(SPNFD0="")!('+SPNFD0) D
|
---|
15 | .S SPNDATA=""
|
---|
16 | .S SPNDATA=$P($G(^SPNL(154.1,SPNFD0,2)),U,18)
|
---|
17 | .I $L(SPNDATA) I '$D(^TMP($J,"TEMP ADM",SPNDATA)) S DIE="^SPNL(154.1,",DA=SPNFD0,DR=".022////@;1000////@" D ^DIE ;clean deleted admission
|
---|
18 | .S SPNDATA=""
|
---|
19 | .S SPNDATA=$G(^SPNL(154.1,SPNFD0,0)) Q:SPNDATA=""
|
---|
20 | .S SPNRTYP=$P(SPNDATA,U,2) Q:SPNRTYP="" ;no record type
|
---|
21 | .I SPNRTYP'=SPNFTYPE S (SPNDATA,SPNRTYP)="" Q
|
---|
22 | .S SPNRDT=$P(SPNDATA,U,4) Q:SPNRDT="" S SPNRDT=999999999-SPNRDT
|
---|
23 | .S ^UTILITY($J,"FUN",SPNRDT,SPNFD0)=SPNFD0
|
---|
24 | S SPNY=0,SPNCNT=0 F S SPNY=$O(^UTILITY($J,"FUN",SPNY)) Q:SPNY="" S SPNZ="" F S SPNZ=$O(^UTILITY($J,"FUN",SPNY,SPNZ)) Q:(SPNZ="")!('+SPNZ) D
|
---|
25 | .S SPNCNT=SPNCNT+1 S ^UTILITY($J,"FUNSORT",SPNCNT,SPNY,SPNZ)=$G(^UTILITY($J,"FUN",SPNY))
|
---|
26 | S ^UTILITY($J,"FUNSORT",0)=SPNCNT
|
---|
27 | K ^UTILITY($J,"FUN")
|
---|
28 | SHOW ;
|
---|
29 | D HDR
|
---|
30 | S SPNSEL=""
|
---|
31 | S SPNVAL=0
|
---|
32 | S SPNCNT=0
|
---|
33 | S SPNROW=0
|
---|
34 | I $G(^UTILITY($J,"FUNSORT",0))=0 W !!?10,"No Outcomes on file.",!?10,"You can add one if you wish.",! S SPNSEL="A" Q
|
---|
35 | F S SPNCNT=$O(^UTILITY($J,"FUNSORT",SPNCNT)) Q:SPNCNT="" S SPNREV=0 F S SPNREV=$O(^UTILITY($J,"FUNSORT",SPNCNT,SPNREV)) Q:SPNREV="" S SPNZ="" F S SPNZ=$O(^UTILITY($J,"FUNSORT",SPNCNT,SPNREV,SPNZ)) Q:SPNZ="" D
|
---|
36 | .;I SPNCNT>28 D HDR
|
---|
37 | .S SPNFD0=SPNZ D BLD
|
---|
38 | .S Y=999999999-SPNREV X ^DD("DD") S SPNRDAT=Y
|
---|
39 | .W !,SPNCNT,") ",SPNRDAT,?16,SPNDISP S SPNLINE=SPNLINE+1,SPNVAL=SPNVAL+1
|
---|
40 | .S SPNROW=SPNROW+1
|
---|
41 | .I SPNROW>15 D SEL S:SPNSEL="" SPNROW=0 D:SPNSEL="" HDR I SPNSEL'="" S SPNCNT=99999999,SPNREV="Z" Q
|
---|
42 | .;I SPNLINE>15 D SEL D HDR:SPNSEL="" S SPNLINE=0 I SPNSEL'="" S SPNCNT=9999999,SPNREV="Z" Q
|
---|
43 | I SPNSEL="" D SEL
|
---|
44 | ;added spnrow to count the row displayed patch 16
|
---|
45 | VALUE ;
|
---|
46 | ;evaluate the value in spnsel
|
---|
47 | I SPNSEL="a" S SPNSEL="A"
|
---|
48 | I SPNSEL="A" D ZAP
|
---|
49 | Q:SPNSEL="A"
|
---|
50 | I SPNSEL["^" D ZAP Q
|
---|
51 | I SPNSEL>SPNVAL W !?10,"Not on the list.." H 2 D ZAP S SPNSEL="^" Q
|
---|
52 | I SPNSEL="" D ZAP S SPNSEL="^" Q
|
---|
53 | I SPNSEL>$G(^UTILITY($J,"FUNSORT",0)) W !?10,"Not on the list" H 2 S SPNSEL="^" D ZAP Q
|
---|
54 | I $D(^UTILITY($J,"FUNSORT",SPNSEL))=0 W !?10,"Not on the list" H 2 S SPNSEL="^" D ZAP Q
|
---|
55 | I '+SPNSEL D ZAP Q
|
---|
56 | S SPNX="",SPNX=$O(^UTILITY($J,"FUNSORT",SPNSEL,SPNX)),SPNFD0="",SPNFD0=$O(^UTILITY($J,"FUNSORT",SPNSEL,SPNX,SPNFD0))
|
---|
57 | Q
|
---|
58 | BLD ;
|
---|
59 | S SPNDISP=""
|
---|
60 | S SPDTA=$G(^SPNL(154.1,SPNFD0,2))
|
---|
61 | S SPNDISP="Admission: "
|
---|
62 | S SPNTMP=$P(SPDTA,U,18) I +SPNTMP S SPNTMP=$$FMTE^XLFDT(SPNTMP,"5ZDP") S SPNDISP=SPNDISP_SPNTMP
|
---|
63 | I SPNTMP="" S SPNDISP=SPNDISP_" "
|
---|
64 | S SPNDISP=SPNDISP_" Score type: "
|
---|
65 | S SPNTMP=$P(SPDTA,U,17)
|
---|
66 | S SPNTMP=$S(SPNTMP=1:"Admission ",SPNTMP=2:"Goal ",SPNTMP=3:"Interim ",SPNTMP=4:"Discharge",SPNTMP=5:"OutPatient",1:" ")
|
---|
67 | S SPNDISP=SPNDISP_SPNTMP
|
---|
68 | S SPNTMP=$P($G(^SPNL(154.1,SPNFD0,"MS")),U,9)
|
---|
69 | I SPNTMP="" K SPNTMP,SPDTA S:$P($G(^SPNL(154.1,SPNFD0,0)),U,2)=4 SPNDISP=SPNDISP_" EDSS Score: " S Y=SPNFD0 Q ;No edss score
|
---|
70 | S SPNDISP=SPNDISP_" EDSS Score: "
|
---|
71 | S SPNTMP=$P($G(^SPNL(154.2,SPNTMP,0)),U,1)
|
---|
72 | I SPNTMP="" S SPNTMP=" "
|
---|
73 | S SPNDISP=SPNDISP_SPNTMP
|
---|
74 | K SPNTMP,SPDTA
|
---|
75 | K SPNFD0
|
---|
76 | Q
|
---|
77 | W:$D(IOF) @IOF W #
|
---|
78 | Q
|
---|
79 | HDR ;
|
---|
80 | S SPNLINE=7 ;NEW
|
---|
81 | I $D(IOF) W @IOF
|
---|
82 | W !?20,$S(SPNFTYPE=1:"Self Reported Functional Measure",SPNFTYPE=2:"Clinician Reported FIM",SPNFTYPE=3:"CHART/FAM/DIENNER/DUSOI",SPNFTYPE=5:"ASIA Score",SPNFTYPE=4:"MS module (Kurtzke/EDSS)",1:"ERROR")
|
---|
83 | S SPNSSN=$P($G(^DPT(SPNFDFN,0)),U,9) S SPNSSN=$E(SPNSSN,1,3)_"-"_$E(SPNSSN,4,5)_"-"_$E(SPNSSN,6,9)
|
---|
84 | W !!,"Patient: ",$P(^DPT(SPNFDFN,0),U,1),?35,"SSN: ",SPNSSN
|
---|
85 | W !,"------------------------------------------------------------------------------"
|
---|
86 | Q
|
---|
87 | SEL ;
|
---|
88 | W !,"-----------------------------------------------------------------------------"
|
---|
89 | W !,"Select 1 through "_$S('+SPNCNT:$G(^UTILITY($J,"FUNSORT",0)),1:SPNCNT)_" of "_$G(^UTILITY($J,"FUNSORT",0))_" or A to add a new record or ^ to quit."
|
---|
90 | I SPNVAL<$G(^UTILITY($J,"FUNSORT",0)) W !,"Or Return to see the next group."
|
---|
91 | R !?5,"Select: ",SPNSEL:DTIME
|
---|
92 | I SPNSEL="" I SPNLINE=$G(^UTILITY($J,"FUNSORT",0)) S SPNSEL="^"
|
---|
93 | Q
|
---|
94 | ZAP ;clean up table and get out of here
|
---|
95 | K ^UTILITY($J,"FUNSORT"),SPNVAL,SPNCNT,SPNLINE,SPNREV,SPNY,SPNRDAT,SPNDISP,X,Y,SPNFD0,SPNDATA,SPNRTYP,SPNRDT,SPNROW
|
---|
96 | Q
|
---|