1 | IBDFUTL1 ;ALB/MAF - Maintenance Utility cont. - 4 20 95
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**32,23,51**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | SETSTR(S,V,X,L) ; -- insert text(S) into variable(V)
|
---|
6 | ; S := string
|
---|
7 | ; V := destination
|
---|
8 | ; X := @ col X
|
---|
9 | ; L := # of chars
|
---|
10 | ;
|
---|
11 | Q $E(V_$J("",X-1),1,X-1)_$E(S_$J("",L),1,L)_$E(V,X+L,999)
|
---|
12 | ;
|
---|
13 | ;
|
---|
14 | SETARR ; -- Set up Listman array
|
---|
15 | S IBDCNT1=IBDCNT1+1
|
---|
16 | S IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
17 | S X=""
|
---|
18 | S IBDFVAL=$J(IBDCNT1_")",5)
|
---|
19 | S X=$$SETSTR^VALM1(IBDFVAL,X,1,5)
|
---|
20 | S IBDFVAL=IBDFX
|
---|
21 | S X=$$SETSTR^VALM1(IBDFVAL,X,7,8)
|
---|
22 | S IBDFVAL=$P(IBDFTMP,"^",3)
|
---|
23 | S X=$$SETSTR^VALM1(IBDFVAL,X,17,15)
|
---|
24 | S IBDFVAL=$P(^IBE(357.1,IBDFBLK,0),"^",1)
|
---|
25 | S X=$$SETSTR^VALM1(IBDFVAL,X,34,14)
|
---|
26 | S IBDFVAL=$P(^IBE(357,IBDFORM1,0),"^",1)
|
---|
27 | S X=$$SETSTR^VALM1(IBDFVAL,X,50,14)
|
---|
28 | I $D(VAUTC)!($D(VAUTG)) S IBDFVAL=$P(IBDFTMP,"^",6) S X=$$SETSTR^VALM1(IBDFVAL,X,66,14)
|
---|
29 | ;
|
---|
30 | ;
|
---|
31 | TMP ; -- Set up TMP Array
|
---|
32 | S ^TMP("CPT",$J,IBDCNT,0)=$$LOWER^VALM1(X),^TMP("CPT",$J,"IDX",VALMCNT,IBDCNT1)=""
|
---|
33 | S ^TMP("CPTIDX",$J,IBDCNT1)=VALMCNT_"^"_IBDFX_"^"_$P(IBDFTMP,"^",4)_"^"_$P(IBDFTMP,"^",5)_"^"_$P(IBDFTMP,"^",1)_"^"_$P(IBDFTMP,"^",2)
|
---|
34 | Q
|
---|
35 | SETARR1 ; -- Set up Listman array
|
---|
36 | N IBDPRIM,IBDSELP
|
---|
37 | S IBDSELP=$P($G(IBDFTMP),"^",5)
|
---|
38 | Q:IBDSELP']""
|
---|
39 | S IBDPRIM=$P($G(^IBE(357.3,IBDSELP,0)),"^")
|
---|
40 | I IBDPRIM=IBDFX Q
|
---|
41 | ;S IBDCNT1=IBDCNT1+1
|
---|
42 | S IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
43 | S X=""
|
---|
44 | S IBDFVAL="Primary Diagnosis: "_IBDPRIM
|
---|
45 | S X=$$SETSTR^VALM1(IBDFVAL,X,17,40)
|
---|
46 | ;
|
---|
47 | ;
|
---|
48 | TMP1 ; -- Set up TMP Array
|
---|
49 | S ^TMP("CPT",$J,IBDCNT,0)=$$LOWER^VALM1(X),^TMP("CPT",$J,"IDX",VALMCNT,IBDCNT1)=""
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | ;
|
---|
53 | SET ; -- Loop thru to see if codes are valid
|
---|
54 | F IBDFBLK=0:0 S IBDFBLK=$O(^IBE(357.1,"C",IBDFORM,IBDFBLK)) Q:'IBDFBLK D
|
---|
55 | .F IBDFLST=0:0 S IBDFLST=$O(^IBE(357.2,"C",IBDFBLK,IBDFLST)) Q:'IBDFLST S IBDFNODE=$G(^IBE(357.2,IBDFLST,0)) I $P(IBDFNODE,"^",11)=IBDFINT D
|
---|
56 | ..F IBDFSEL=0:0 S IBDFSEL=$O(^IBE(357.3,"C",IBDFLST,IBDFSEL)) Q:'IBDFSEL S IBDFX=$G(^IBE(357.3,IBDFSEL,0)) I $P(IBDFX,"^",2)']"" D
|
---|
57 | ...S IBDFX1=$P(IBDFX,"^",1),IBDFX2=$P($G(^IBE(357.3,IBDFSEL,2)),"^",3),IBDFX3=$P($G(^IBE(357.3,IBDFSEL,2)),"^",4)
|
---|
58 | ...F IBI=IBDFX1,IBDFX2,IBDFX3 I IBI]"" D
|
---|
59 | ....I IBDFACT=1 D
|
---|
60 | .....S (X,IBDFX)=IBI
|
---|
61 | .....X $G(^IBE(357.6,IBDFINT,11))
|
---|
62 | .....Q:'$D(X)
|
---|
63 | .....;;----change to api cpt;dhh
|
---|
64 | .....I $G(IBDFCODE)="CPT " N IBY,XX D
|
---|
65 | ......S XX=$$CPT^ICPTCOD(X)
|
---|
66 | ......;;S IBY=$S(+XX=-1:"",1:$P(XX,"^",3))
|
---|
67 | ......S IBY=$S($P(XX,U,7)'=1:"",1:$P(XX,"^",3))
|
---|
68 | .....;;I $G(IBDFCODE)="ICD-9 " N IBY S IBY=$P($G(^ICD9(X,0)),"^",3)
|
---|
69 | .....I $G(IBDFCODE)="ICD-9 " N IBY S IBY=$P($$ICDDX^ICDCODE(X),U,4)
|
---|
70 | .....I $G(IBDFCODE)="Type of Visit " N IBY S IBY=$P($G(^IBE(357.69,X,0)),"^",2)
|
---|
71 | .....Q:'$D(VAUTJ(X))
|
---|
72 | .....S ^TMP("UTIL",$J,IBDFNAME,IBDFX,$P(^IBE(357,IBDFORM,0),"^",1),$P(^IBE(357.1,IBDFBLK,0),"^",1),IBDFSEL)=IBDFORM_"^"_IBDFBLK_"^"_$S(IBY]"":IBY,1:"INVALID")_"^"_IBDFLST_"^"_IBDFSEL_"^"_$S($D(VAUTC):IBDFNAME,$D(VAUTG):IBDFCLNM,1:"")
|
---|
73 | ....I IBDFACT=2 D
|
---|
74 | .....S (X,IBDFX)=IBI
|
---|
75 | .....X $G(^IBE(357.6,IBDFINT,11))
|
---|
76 | .....I '$D(X) S ^TMP("UTIL",$J,IBDFNAME,IBDFX,$P(^IBE(357,IBDFORM,0),"^",1),$P(^IBE(357.1,IBDFBLK,0),"^",1),IBDFSEL)=IBDFORM_"^"_IBDFBLK_"^"_$S(Y]"":Y,1:"INVALID")_"^"_IBDFLST_"^"_IBDFSEL_"^"_$S($D(VAUTC):IBDFNAME,$D(VAUTG):IBDFCLNM,1:"")
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | ;
|
---|
80 | ; -- Set up alphabetical listing
|
---|
81 | SET1 S (IBDFORM1,IBDFBLK,IBDFLG,IBDFX,IBDFNAME,IBDORM,IBDBLK)=0
|
---|
82 | F IBDFNM=0:0 S IBDFNAME=$O(^TMP("UTIL",$J,IBDFNAME)) Q:IBDFNAME']"" S IBDFX="" F S IBDFX=$O(^TMP("UTIL",$J,IBDFNAME,IBDFX)) D:(IBDFX="")&($D(VAUTF)) CLINICS^IBDFUTL2 Q:IBDFX="" D
|
---|
83 | .F IBDFRM=0:0 S IBDORM=$O(^TMP("UTIL",$J,IBDFNAME,IBDFX,IBDORM)) Q:IBDORM']"" F IBDFBK=0:0 S IBDBLK=$O(^TMP("UTIL",$J,IBDFNAME,IBDFX,IBDORM,IBDBLK)) Q:IBDBLK']"" D
|
---|
84 | ..F S IBDFSEL=$O(^TMP("UTIL",$J,IBDFNAME,IBDFX,IBDORM,IBDBLK,IBDFSEL)) Q:IBDFSEL']"" D
|
---|
85 | ...S IBDFTMP=^TMP("UTIL",$J,IBDFNAME,IBDFX,IBDORM,IBDBLK,IBDFSEL),IBDFORM1=$P(IBDFTMP,"^",1),IBDFBLK=$P(IBDFTMP,"^",2) D:'$D(IBDF(IBDFNAME)) HEADER^IBDFUTL2 D SETARR D:IBDBLK="DIAGNOSIS" SETARR1
|
---|
86 | Q
|
---|
87 | ;
|
---|
88 | ;
|
---|
89 | CLIN1 ; -- Sort Display by clinic
|
---|
90 | N IBDFBLK,IBDFLST,IBDFORM,VAUTF
|
---|
91 | I VAUTC=1 F X=0:0 S X=$O(^SC(X)) Q:'X I $D(^SC(X,0)) S ^TMP("CLN",$J,X)=$P(^SC(X,0),"^",1)
|
---|
92 | I VAUTC=0 K ^TMP("CLN",$J) F IBDFCLIN=0:0 S IBDFCLIN=$O(VAUTC(IBDFCLIN)) Q:'IBDFCLIN S X=$G(VAUTC(IBDFCLIN)) S ^TMP("CLN",$J,IBDFCLIN)=X
|
---|
93 | I '$D(IBDFNCNG) K ^TMP("CLN1",$J)
|
---|
94 | F IBDFCLIN=0:0 S IBDFCLIN=$O(^TMP("CLN",$J,IBDFCLIN)) Q:'IBDFCLIN S X=$G(^TMP("CLN",$J,IBDFCLIN)) S ^TMP("CLN1",$J,X)=IBDFCLIN
|
---|
95 | S IBDCLNM=0 F IBDCLN=0:0 S IBDCLNM=$O(^TMP("CLN1",$J,IBDCLNM)) Q:IBDCLNM']"" S IBDFCLIN=^TMP("CLN1",$J,IBDCLNM) S IBDFCIFN=$O(^SD(409.95,"B",IBDFCLIN,0)) S IBDCNODE=$G(^SD(409.95,+IBDFCIFN,0)),IBDFNAME=IBDCLNM I $D(IBDCNODE) D
|
---|
96 | .F IBDFN=2:1:9 S IBDFORM=$P(IBDCNODE,"^",IBDFN) I IBDFORM D SET
|
---|
97 | D SET1 Q
|
---|
98 | ;
|
---|
99 | ;
|
---|
100 | FORM1 ; -- Sort Display by form
|
---|
101 | N IBDFBLK,IBDFLST,IBDFORM
|
---|
102 | I VAUTF=1 S IBDFRNM=0 F IBDFRM=0:0 S IBDFRNM=$O(^IBE(357,"B",IBDFRNM)) Q:IBDFRNM']"" F IBDFORM=0:0 S IBDFORM=$O(^IBE(357,"B",IBDFRNM,IBDFORM)) Q:'IBDFORM S IBDFNAME=IBDFRNM D SET
|
---|
103 | I '$D(IBDFNCNG) K ^TMP("FRM1",$J)
|
---|
104 | I VAUTF=0 F IBDFORM=0:0 S IBDFORM=$O(VAUTF(IBDFORM)) Q:'IBDFORM S X=$G(VAUTF(IBDFORM)) S ^TMP("FRM1",$J,X)=IBDFORM
|
---|
105 | I VAUTF=0 S IBDFRNM=0 F IBDFRM=0:0 S IBDFRNM=$O(^TMP("FRM1",$J,IBDFRNM)) Q:IBDFRNM']"" S IBDFORM=^TMP("FRM1",$J,IBDFRNM),IBDFNAME=IBDFRNM D SET
|
---|
106 | D SET1
|
---|
107 | Q
|
---|
108 | ;
|
---|
109 | ;
|
---|
110 | GROUP1 ; -- Sort Display by clinic group
|
---|
111 | N IBDFBLK,IBDFLST,IBDFORM,VAUTF
|
---|
112 | I VAUTG=1 S IBDFGNM=0 F IBDFGN=0:0 S IBDFGNM=$O(^IBD(357.99,"B",IBDFGNM)) Q:IBDFGNM']"" F IBDFGIFN=0:0 S IBDFGIFN=$O(^IBD(357.99,"B",IBDFGNM,IBDFGIFN)) Q:'IBDFGIFN S ^TMP("GRP1",$J,IBDFGNM)=IBDFGIFN
|
---|
113 | I VAUTG=0,'$D(IBDFNCNG) K ^TMP("GRP1",$J)
|
---|
114 | I VAUTG=0 F IBDFGIFN=0:0 S IBDFGIFN=$O(VAUTG(IBDFGIFN)) Q:'IBDFGIFN S ^TMP("GRP1",$J,VAUTG(IBDFGIFN))=IBDFGIFN
|
---|
115 | S IBDFGNM=0 F IBDFGN=0:0 S IBDFGNM=$O(^TMP("GRP1",$J,IBDFGNM)) Q:IBDFGNM']"" S IBDFGIFN=^TMP("GRP1",$J,IBDFGNM) D
|
---|
116 | .S IEN=0 F S IEN=$O(^IBD(357.99,IBDFGIFN,10,IEN)) Q:'IEN S IBCLN=+$G(^IBD(357.99,IBDFGIFN,10,IEN,0)) S:$D(^SC(IBCLN,0)) ^TMP("IBDF",$J,"C",IBDFGNM,$P(^SC(IBCLN,0),"^",1))=IBCLN
|
---|
117 | .S IEN=0 F S IEN=$O(^IBD(357.99,IBDFGIFN,11,IEN)) Q:'IEN S IBDIV=+$G(^IBD(357.99,IBDFGIFN,11,IEN,0)) S:IBDIV ^TMP("IBDF",$J,"D",IBDFGNM,IBDIV)=""
|
---|
118 | D:$D(^TMP("IBDF",$J,"D")) ENDV^IBDFUTL2
|
---|
119 | S IBDFGNM=0 F IBDFGN=0:0 S IBDFGNM=$O(^TMP("IBDF",$J,"C",IBDFGNM)) Q:IBDFGNM']"" S IBDFCLNM=0 F IBDFCLN=0:0 S IBDFCLNM=$O(^TMP("IBDF",$J,"C",IBDFGNM,IBDFCLNM)) Q:IBDFCLNM']"" D
|
---|
120 | .S IBDFCLIN=$G(^TMP("IBDF",$J,"C",IBDFGNM,IBDFCLNM)),IBDFCIFN=$O(^SD(409.95,"B",IBDFCLIN,0)) S IBDCNODE=$G(^SD(409.95,+IBDFCIFN,0)) I $D(IBDCNODE) S IBDFNAME=IBDFGNM F IBDFN=2:1:9 S IBDFORM=$P(IBDCNODE,"^",IBDFN) I IBDFORM D SET
|
---|
121 | D SET1 Q
|
---|