1 | MCARAM4 ;WASH ISC/JKL-MUSE TRANSFER LAB DATA TO LOCAL ;5/20/94 15:35
|
---|
2 | ;;2.3;Medicine;;09/13/1996
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | ;Checks format and/or reformats data
|
---|
6 | AR(MCA,MCAA,MCD,MCFP,MCLP,MCCK) ;Sets l/t stripped data field into an array
|
---|
7 | ; USAGE: S X=$$AR^MCARAM4(.A,B,C,D,E)
|
---|
8 | ; WHERE: .A = array where data is placed
|
---|
9 | ; B = array argument for data field
|
---|
10 | ; C = data field value
|
---|
11 | ; D = first position of data field
|
---|
12 | ; E = last position of data field
|
---|
13 | ; F = 1 to check numeric data field value for positive int value
|
---|
14 | ; 2 to check "" for both positive and negative int value
|
---|
15 | ; 3 to check "" for pos,neg,int, and decimal values
|
---|
16 | N MCI,MCERR
|
---|
17 | I '$D(MCCK) S MCCK=""
|
---|
18 | S MCA(MCAA)=$E(MCD,MCFP,MCLP),MCI=MCA(MCAA),MCERR=$$SLTS^MCARAM4(.MCI),MCA(MCAA)=MCI I +MCERR>0 Q MCERR
|
---|
19 | I MCCK=1 S MCERR=$$DFCK^MCARAM4(MCA(MCAA),MCCK) I +MCERR>0 Q MCERR
|
---|
20 | I MCCK=2 S MCERR=$$DFCK^MCARAM4(MCA(MCAA),MCCK) I +MCERR>0 Q MCERR
|
---|
21 | I MCCK=3 S MCERR=$$DFCK^MCARAM4(MCA(MCAA),MCCK) I +MCERR>0 Q MCERR
|
---|
22 | Q 0
|
---|
23 | ;
|
---|
24 | DFCK(MCV,MCCK) ; Checks numeric,negative,positive,integer,decimal value
|
---|
25 | ; USAGE: S X=$$DFCK^MCARAM4(A,B)
|
---|
26 | ; WHERE: A=data field value
|
---|
27 | ; B=1 for positive value numeric (integer) check
|
---|
28 | ; B=2 for positive and negative value numeric (integer) check
|
---|
29 | ; B=3 for positive, negative, decimal, or integer numeric check
|
---|
30 | ; if successful, returns function value of 0
|
---|
31 | ; if unsuccessful, returns error message for incorrect field format
|
---|
32 | N MCERR
|
---|
33 | I MCV="" S MCERR="2-Null data field" Q MCERR
|
---|
34 | I MCV=0 Q 0
|
---|
35 | I $G(MCCK)=1 I MCV?1N.N Q 0
|
---|
36 | I $G(MCCK)=2 I MCV?."-"1N.N,$P(MCV,"-",2,99)'["-",-MCV+-MCV'=0 Q 0
|
---|
37 | I $G(MCCK)=3 I MCV?."-"."."1N.N.".".N,$P(MCV,".",2,99)'[".",$P(MCV,"-",2,99)'["-",-MCV+-MCV'=0 Q 0
|
---|
38 | S MCERR="1-Data field not numeric" Q MCERR
|
---|
39 | ;
|
---|
40 | SLTS(MCV) ; Strips leading and trailing spaces from data fields
|
---|
41 | ; USAGE: S X=$$SLTS^MCARAM4(.A)
|
---|
42 | ; WHERE: MCV=data field value
|
---|
43 | ; .A = value where data is placed
|
---|
44 | ; if successful, returns function value of 0 and data field value
|
---|
45 | ; if unsuccessful, returns error message for incorrect field format
|
---|
46 | N MCERR,MCI,MCJ
|
---|
47 | I MCV="" S MCERR="2-Null data field" Q MCERR
|
---|
48 | F MCI=1:1 I $E(MCV,MCI,MCI)'=" " Q
|
---|
49 | F MCJ=$L(MCV):-1 I $E(MCV,MCJ,MCJ)'=" " Q
|
---|
50 | S MCV=$E(MCV,MCI,MCJ) I MCV="" S MCERR="2-Null data field" Q MCERR
|
---|
51 | Q 0
|
---|
52 | ;
|
---|
53 | DGCK(MCA) ;Removes null lines and resets numbering of diagnosis array
|
---|
54 | ; USAGE: S X=$$DGCK^MCARAM4(.A)
|
---|
55 | ; WHERE: MCA=diagnosis array
|
---|
56 | ; .A=diagnosis array renumbered without null lines
|
---|
57 | ; A("DX,0")=total number of non-null diagnosis lines
|
---|
58 | ; if successful, returns function value of 0 and diagnosis array
|
---|
59 | ; if unsuccessful, returns error message and A("DX,0")=0
|
---|
60 | N MCI,MCJ,MCK,MCERR
|
---|
61 | S MCI=0,MCJ="DX,0"
|
---|
62 | F S MCJ=$O(MCA(MCJ)) Q:MCJ=""!($E(MCJ)'=$E("DX,0")) S:MCA(MCJ)'="" MCI=MCI+1 I MCA(MCJ)="" K MCA(MCJ) S MCK=MCJ F S MCK=$O(MCA(MCK)) Q:MCK=""!($E(MCK)'=$E("DX,0")) I MCA(MCK)'="" S MCA(MCJ)=MCA(MCK),MCI=MCI+1,MCA(MCK)="" Q
|
---|
63 | S MCA("DX,0")=MCI I MCI>0 Q 0
|
---|
64 | S MCERR="62-Diagnosis is a null data field" Q MCERR
|
---|
65 | ;
|
---|
66 | RXCK(MCA) ;Removes null lines and resets numbering of medication array
|
---|
67 | ; USAGE: S X=$$RXCK^MCARAM4(.A)
|
---|
68 | ; WHERE: MCA=medication array
|
---|
69 | ; .A=medication array renumbered without null lines
|
---|
70 | ; A("RX,0")=total number of non-null medication lines
|
---|
71 | ; if successful, returns function value of 0 and medication array
|
---|
72 | ; if unsuccessful, returns error message and A("RX,0")=0
|
---|
73 | N MCI,MCJ,MCK,MCERR
|
---|
74 | I MCA("RX,0")="" S MCA("RX,0")=0,MCERR="4-Medication is a null data field" Q MCERR
|
---|
75 | F MCJ=1:1 S MCK="RX,"_MCJ,MCA(MCK)=$P(MCA("RX,0"),", ",MCJ) Q:MCA(MCK)="" S MCI=$P(MCA(MCK)," ") I MCI'="",$D(^PSDRUG("B",MCI)) S MCA(MCK)=$O(^(MCI,0))_U_$P(MCA(MCK)," ",2)_U_$P(MCA(MCK)," ",3)
|
---|
76 | K MCA(MCK)
|
---|
77 | S MCA("RX,0")=MCJ-1 I MCJ-1=0 S MCERR="4-Medication is a null data field" Q MCERR
|
---|
78 | Q 0
|
---|
79 | ;
|
---|
80 | DGCT(MCA,MCD,MCL) ;Fill diagnosis array from continuation record
|
---|
81 | ; USAGE: S X=$$DGCT^MCARAM4(.A,B,C)
|
---|
82 | ; WHERE: MCA=diagnosis array
|
---|
83 | ; .A=diagnosis array renumbered without null lines
|
---|
84 | ; B=data field value, C=line number of data
|
---|
85 | ; A("DX,0")=total number of non-null diagnosis lines
|
---|
86 | ; "DX,L"=12th line of diagnosis, "DX,V"=22nd line
|
---|
87 | ; if successful, returns function value of 0 and diagnosis array
|
---|
88 | ; if unsuccessful, returns error message and A("DX,0")=0
|
---|
89 | N MCI,MCERR
|
---|
90 | S MCI="DX,"_MCA("CONT")
|
---|
91 | I MCL=13!(MCL=25) S MCERR=$$AR^MCARAM4(.MCA,MCI,MCD,32,78) Q:+MCERR>0 MCERR Q 0
|
---|
92 | S MCERR=$$AR^MCARAM4(.MCA,MCI,MCD,32,134) Q:+MCERR>0 MCERR
|
---|
93 | Q 0
|
---|
94 | ;
|
---|
95 | ERR ;Error return
|
---|
96 | Q MCERR
|
---|