1 | SPNLCNV0 ;HISC/DAD-CONVERSION ;11/7/95 12:35
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;;01/02/1997
|
---|
3 | ;
|
---|
4 | I $O(^SPNL(154,0))'>0 Q
|
---|
5 | W !!,"This routine will convert the following fields in the SCD (SPINAL CORD)"
|
---|
6 | W !,"REGISTRY file (#154):",!
|
---|
7 | W !?3,"Old Fields (V1.0) New Fields (V1.5)"
|
---|
8 | W !?3,"================= ================="
|
---|
9 | W !?3,"REGISTRATION STATUS (154,.03) REGISTRATION STATUS (154,.03)"
|
---|
10 | W !?3,"COMPLETENESS OF NLOI (154,2.2) COMPLETE / INCOMPLETE (154,6.09)"
|
---|
11 | W !?3,"SOURCE OF NLOI (154,2.3) INFORMATION SOURCE FOR SCD (154,2.3)"
|
---|
12 | W !?3,"DATE OF ONSET (154,3.2) DATE OF ONSET (154.004,.01)"
|
---|
13 | W !?3,"ETIOLOGY (154,3.3) ETIOLOGY (154.004,.02)",!
|
---|
14 | W !,"The DATE OF ONSET and ETIOLOGY fields will be converted to a multiple. The"
|
---|
15 | W !,"codes for REGISTRATION STATUS and SOURCE OF NLOI have been changed, the old"
|
---|
16 | W !,"values will be converted. The COMPLETENESS OF NLOI data will be moved to its"
|
---|
17 | W !,"new location. This conversion may be run multiple times without adversely"
|
---|
18 | W !,"affecting the database. When the conversion finishes you will receive a"
|
---|
19 | W !,"MailMan message listing any problems found during the conversion process."
|
---|
20 | ;
|
---|
21 | K DIR S DIR(0)="SOM^R:Run now;Q:Queue later;"
|
---|
22 | S DIR("A")="When do you want to do the conversion"
|
---|
23 | S DIR("?",1)=" Enter 'R' to run the conversion now"
|
---|
24 | S DIR("?",2)=" Enter 'Q' to queue the conversion"
|
---|
25 | S DIR("?")="Choose 'R' or 'Q'"
|
---|
26 | D ^DIR W ! S SPN=Y I $D(DIRUT) G EXIT
|
---|
27 | I SPN="Q" D G EXIT
|
---|
28 | . S ZTRTN="TASK^SPNLCNV0",ZTDESC="SCD Registry conversion",ZTIO=""
|
---|
29 | . D ^%ZTLOAD
|
---|
30 | . I $G(ZTSK) W !,"Task queued, task number: ",ZTSK
|
---|
31 | . E W !,"Task NOT queued"
|
---|
32 | . Q
|
---|
33 | TASK ;
|
---|
34 | I '$D(ZTQUEUED) W !,"Working..."
|
---|
35 | D EXIT S SPNERR=0
|
---|
36 | D ^SPNLCNV1
|
---|
37 | ;
|
---|
38 | S SPND0=0
|
---|
39 | F S SPND0=$O(^SPNL(154,SPND0)) Q:SPND0'>0 D
|
---|
40 | . I '$D(ZTQUEUED) W "."
|
---|
41 | . F SPN=0:1:3 S SPNDATA(SPN)=$G(^SPNL(154,SPND0,SPN))
|
---|
42 | . S SPNDFN=+$P(SPNDATA(0),U),SPNDFN(0)=$P($G(^DPT(SPNDFN,0)),U)
|
---|
43 | . I SPNDFN(0)="" Q
|
---|
44 | . S SPNLCOMP=$P(SPNDATA(2),U,2)
|
---|
45 | . S SPNREGST("OLD")=$P(SPNDATA(0),U,3),SPNNLOI("OLD")=$P(SPNDATA(2),U,3)
|
---|
46 | . S SPNDATE=$P(SPNDATA(3),U,2),SPNETIOL("OLD")=+$P(SPNDATA(3),U,3)
|
---|
47 | . S (SPNREGST("NEW"),SPNNLOI("NEW"))=""
|
---|
48 | . I SPNREGST("OLD")]"" S SPNREGST("NEW")=$G(^TMP($J,"SPN REGSTAT",SPNREGST("OLD")))
|
---|
49 | . I SPNNLOI("OLD")]"" S SPNNLOI("NEW")=$G(^TMP($J,"SPN NLOI",SPNNLOI("OLD")))
|
---|
50 | . I SPNREGST("OLD")]"",SPNREGST("NEW")="" D
|
---|
51 | .. S X="Cannot convert REGISTRATION STATUS '"_SPNREGST("OLD")
|
---|
52 | .. S X=X_"' for "_SPNDFN(0)_", SCD Registry record #"_SPND0
|
---|
53 | .. D ERR(X)
|
---|
54 | .. Q
|
---|
55 | . I SPNNLOI("OLD")]"",SPNNLOI("NEW")="" D
|
---|
56 | .. S X="Cannot convert SOURCE OF NLOI '"_SPNNLOI("OLD")
|
---|
57 | .. S X=X_"' for "_SPNDFN(0)_", SCD Registry record #"_SPND0
|
---|
58 | .. D ERR(X)
|
---|
59 | .. Q
|
---|
60 | . I SPNDATE'?7N D Q ; *** Bad date of onset
|
---|
61 | .. I SPNREGST("OLD")?1N Q
|
---|
62 | .. I SPNDATE="" S SPNDATE="<NULL>"
|
---|
63 | .. S X="Cannot convert DATE OF ONSET '"_SPNDATE
|
---|
64 | .. S X=X_"' for "_SPNDFN(0)_", SCD Registry record #"_SPND0
|
---|
65 | .. D ERR(X)
|
---|
66 | .. Q
|
---|
67 | . D CONV1
|
---|
68 | . I $O(^TMP($J,"SPN ETIOLOGY",""))="" Q ; *** No etiology conv table
|
---|
69 | . S SPNETIOL("NEW")=+$G(^TMP($J,"SPN ETIOLOGY",SPNETIOL("OLD")))
|
---|
70 | . I SPNETIOL("OLD")>0,SPNETIOL("NEW")'>0 D Q ; *** Bad etiology
|
---|
71 | .. S SPNETIOL=$P($G(^SPNL(154.02,SPNETIOL("OLD"),0)),U)
|
---|
72 | .. I SPNETIOL="" S SPNETIOL=SPNETIOL("OLD")
|
---|
73 | .. S X="Cannot convert ETIOLOGY '"_SPNETIOL
|
---|
74 | .. S X=X_"' for "_SPNDFN(0)_", SCD Registry record #"_SPND0
|
---|
75 | .. D ERR(X)
|
---|
76 | .. Q
|
---|
77 | . D CONV2
|
---|
78 | . Q
|
---|
79 | MAIL ;
|
---|
80 | N DIFROM D KILL^XM
|
---|
81 | I SPNERR=0 D
|
---|
82 | . S ^TMP($J,"SPN ERROR",1)="Conversion finished, no problems found"
|
---|
83 | . Q
|
---|
84 | S XMY(DUZ)="",(XMDUN,XMDUZ)="<Spinal Cord Dysfunction Package>"
|
---|
85 | S XMTEXT="^TMP($J,""SPN ERROR"","
|
---|
86 | S XMSUB="SCD Registry Conversion"
|
---|
87 | D ^XMD
|
---|
88 | EXIT ;
|
---|
89 | D KILL^XM
|
---|
90 | F SPN="ERROR","ETIOLOGY","NLOI","REGSTAT" K ^TMP($J,"SPN "_SPN)
|
---|
91 | K DA,DD,DIC,DIE,DINUM,DIR,DIRUT,DLAYGO,DO,DR,DTOUT,DUOUT,OFFSET,SPN
|
---|
92 | K SPND0,SPNDATA,SPNDATE,SPNDFN,SPNERR,SPNETIOL,SPNEXIT,SPNLCOMP
|
---|
93 | K SPNLINE,SPNNEW,SPNNEWD0,SPNNLOI,SPNOLD,SPNREGST,SPNTYPE,X,Y
|
---|
94 | K ZTDESC,ZTIO,ZTRTN,ZTSK
|
---|
95 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | CONV1 ; *** Registration Status and Source of NLOI
|
---|
99 | K DA,DIE,DR
|
---|
100 | I (SPNREGST("NEW")]"")&(SPNREGST("NEW")'=SPNREGST("OLD")) D
|
---|
101 | . S DR=".03///^S X="_SPNREGST("NEW")
|
---|
102 | . Q
|
---|
103 | I (SPNNLOI("NEW")]"")&(SPNNLOI("NEW")'=SPNNLOI("OLD")) D
|
---|
104 | . S DR=$S($G(DR)]"":DR_";",1:"")_"2.3///^S X="_SPNNLOI("NEW")
|
---|
105 | . Q
|
---|
106 | I SPNLCOMP]"" D
|
---|
107 | . S DR=$S($G(DR)]"":DR_";",1:"")_"6.09///^S X="""_SPNLCOMP_""""
|
---|
108 | . Q
|
---|
109 | I $G(DR)]"" S DIE="^SPNL(154,",DA=SPND0 D ^DIE
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | CONV2 ; *** Etiology
|
---|
113 | I $O(^SPNL(154,SPND0,"E","B",SPNDATE,0))'>0 D
|
---|
114 | . K DA,DD,DIC,DINUM,DO
|
---|
115 | . S DIC="^SPNL(154,"_SPND0_",""E"",",DIC(0)="L"
|
---|
116 | . S DIC("P")=$P(^DD(154,4,0),U,2),DLAYGO=+DIC("P")
|
---|
117 | . S (D0,DA(1))=SPND0,X=SPNDATE
|
---|
118 | . I SPNETIOL("NEW") S DIC("DR")=".02///`"_SPNETIOL("NEW")
|
---|
119 | . D FILE^DICN
|
---|
120 | . Q
|
---|
121 | Q
|
---|
122 | ERR(X) ;
|
---|
123 | S SPNERR=SPNERR+1
|
---|
124 | S ^TMP($J,"SPN ERROR",SPNERR)=X
|
---|
125 | Q
|
---|