Changeset 636 for FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXUTL6.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXUTL6.m
r628 r636 1 ECXUTL6 ;ALB/JRC - Utilities for DSS Extracts ; 11/2 8/07 11:34am2 ;;3.0;DSS EXTRACTS;**92 ,105**;Dec 22, 1997;Build 701 ECXUTL6 ;ALB/JRC - Utilities for DSS Extracts ; 11/2/06 8:30am 2 ;;3.0;DSS EXTRACTS;**92**;Dec 22, 1997;Build 30 3 3 ; 4 4 NUTKEY(P,D) ;Generate n&fs feeder key … … 6 6 ; p - diet type production diet, standing orders, supplemental 7 7 ; feedings, or tube feedings. 8 ; d - diet ien from files 116.2, 11 8.3, 118, or 118.28 ; d - diet ien from files 116.2, 116.3, 118, or 118.2 9 9 ;Check input 10 10 I $G(P)=""!'$G(D) Q "" … … 13 13 S (PRO,IENS,CODE,DIET)=0 14 14 S PRO=$O(^ECX(728.45,"B",P,PRO)) 15 S CODE=D_$S(P="PD":";FH(116.2,",P="SO":";FH(11 8.3,",P="SF":";FH(118,",P="TF":";FH(118.2,",1:"")15 S CODE=D_$S(P="PD":";FH(116.2,",P="SO":";FH(116.3,",P="SF":";FH(118,",P="TF":";FH(118.2,",1:"") 16 16 S DIET=0,DIET=$O(^ECX(728.45,+PRO,1,"B",CODE,DIET)) 17 17 S IENS=""_DIET_","_PRO_","_"" … … 28 28 ; location 29 29 ;Init variables 30 N WARD,TRSVP, CRSVP,OPLOC,MASWARD31 S (CRSVP,TRSVP)=0,(WARD,DLT,DFL,MASWARD)=""30 N WARD,TRSVP,OPLOC,MASWARD 31 S TRSVP=0,(WARD,ECXDLT,ECXDFL,MASWARD)="" 32 32 S OPLOC="" 33 33 ;Check input … … 38 38 ;119.72 (production facility) field 2. 39 39 I P="INP" D 40 .S WARD=$P($G(^FHPT(FHDFN,"A", +ECXADM,0)),U,8)40 .S WARD=$P($G(^FHPT(FHDFN,"A",ECXADM,0)),U,8) 41 41 .S TRSVP=$$GET1^DIQ(119.6,WARD,3,"I") 42 .S CRSVP=$$GET1^DIQ(119.6,WARD,4,"I")43 42 .;Get divisions 44 43 .D GETDIV … … 80 79 I P["OP",D["GM" D 81 80 .S OPLOC=""_$P(NODE,U,5)_","_"",TRSVP=$$GET1^DIQ(119.6,OPLOC,3,"I") 82 .S FPF=$$GET1^DIQ(119.72,""_TRSVP_","_"",2,"I")81 .S ECXFPF=$$GET1^DIQ(119.72,""_TRSVP_","_"",2,"I") 83 82 .;Get delivery division 84 83 .D GETDIV … … 96 95 ; all other meals are null 97 96 I P="INP",D="PD" D 98 .S DLT=$P($G(NODE),U,8)97 .S ECXDLT=$P($G(NODE),U,8) 99 98 I P="OP",((D="RM")!(D="SM")) D 100 .S DLT=$E($$GET1^DIQ(119.6,""_$P(NODE,U,3)_","_"",101,"E"),1)99 .S ECXDLT=$E($$GET1^DIQ(119.6,""_$P(NODE,U,3)_","_"",101,"E"),1) 101 100 I P="OP",D="GM" D 102 .S DLT=$E($$GET1^DIQ(119.6,""_$P(NODE,U,5)_","_"",101,"E"),1)101 .S ECXDLT=$E($$GET1^DIQ(119.6,""_$P(NODE,U,5)_","_"",101,"E"),1) 103 102 ; 104 103 ;Delivery feeder location 105 I DLT="C" D 106 .S DFL=$E($$GET1^DIQ(119.6,WARD,4,"E"),1,10) 107 .S IEN=$$GET1^DIQ(119.72,+CRSVP,2,"I") 108 .S IEN=""_IEN_";FH(119.71," 109 .S FPF=$O(^ECX(728.46,"B",IEN,FPF)) 110 .S FPF=$E($$GET1^DIQ(728.46,FPF,.01,"E"),1,10) 111 I (DLT["T")!(DLT["D") D 112 .I P="INP" D 113 ..S MASWARD=$O(^FH(119.6,+WARD,"W","B",0)) 114 ..S DFL=$$GET1^DIQ(42,+MASWARD,44,"I") 115 .I P="OP" D 116 ..S DFL=$O(^FH(119.6,+OPLOC,"L","B",0)) 117 I (DLT=""),"SFTFSO"[D D 118 .S DFL=$S(TRSVP:$$GET1^DIQ(119.6,WARD,3,"E"),1:$$GET1^DIQ(119.6,WARD,4,"E")) 104 I ECXDLT="C" S ECXDFL=$P(NODE,U,8) D 105 .S ECXDFL=$E($$GET1^DIQ(119.72,ECXDFL,2,"E"),1,10) 106 I (ECXDLT["T")!(ECXDLT["D") D 107 .S MASWARD=$O(^FH(119.6,$S(WARD:+WARD,+OPLOC:+OPLOC,1:""),"W","B",0)) 108 .S ECXDFL=$$GET1^DIQ(42,+MASWARD,44,"I") 119 109 Q 1 120 110 ; … … 122 112 ;Init variables 123 113 N IEN,SIEN 124 S ( FDD,FPF,FPD)=""114 S (ECXFDD,ECXFPF,ECXFPD)="" 125 115 S IEN=$$GET1^DIQ(119.72,+TRSVP,2,"I") 126 116 Q:'IEN 127 117 ;Get delivery division 128 118 S SIEN=""_+TRSVP_";FH(119.72," 129 S FDD=$O(^ECX(728.46,"B",SIEN,FDD))130 S FDD=""_$$GET1^DIQ(728.46,FDD,1,"I")_","_""131 S FDD=$$GET1^DIQ(4,FDD,99,"E")119 S ECXFDD=$O(^ECX(728.46,"B",SIEN,ECXFDD)) 120 S ECXFDD=""_$$GET1^DIQ(728.46,ECXFDD,1,"I")_","_"" 121 S ECXFDD=$$GET1^DIQ(4,ECXFDD,99,"E") 132 122 ;Get production division and food production facility 133 123 S IEN=""_IEN_";FH(119.71," 134 S FPF=$O(^ECX(728.46,"B",IEN,FPF))135 S FPD=""_$$GET1^DIQ(728.46,FPF,1,"I")_","_""136 S FPD=$$GET1^DIQ(4,FPD,99,"E")137 S FPF=$E($$GET1^DIQ(728.46,FPF,.01,"E"),1,10)124 S ECXFPF=$O(^ECX(728.46,"B",IEN,ECXFPF)) 125 S ECXFPD=""_$$GET1^DIQ(728.46,ECXFPF,1,"I")_","_"" 126 S ECXFPD=$$GET1^DIQ(4,ECXFPD,99,"E") 127 S ECXFPF=$E($$GET1^DIQ(728.46,ECXFPF,.01,"E"),1,10) 138 128 Q 139 ;140 SUR(CRST,STCD,CLINIC) ;Surgery stop codes and clinic (outpatients only)141 ;Init variables142 S (CRST,STCD,CLINIC)=""143 ;Quit if not outpatient144 Q:$P(EC0,U,12)'="O" ""145 ;Get stop codes (outpatient only)146 I $P(EC0,U,12)="O" D147 .;Get credit stop code (outpatient only)148 .S CRST=""_$$GET1^DIQ(40.7,""_$$GET1^DIQ(44,$$GET1^DIQ(137.45,$P(EC0,U,4),2,"I")_","_""_","_"",2503,"I")_","_"",1,"E")149 .;Get stop code (outpatient only)150 .S STCD=""_$$GET1^DIQ(40.7,""_$$GET1^DIQ(44,$$GET1^DIQ(137.45,$P(EC0,U,4),2,"I")_","_""_","_"",8,"I")_","_"",1,"E")151 ;Clinic for non-or case use associated clinic else non-or location152 ;If non-or case153 I $P($G(ECNO),U)="Y" S CLINIC=$S($P(EC0,U,21):$P(EC0,U,21),1:$P(ECNO,U,2))154 ;Get stop codes non-or cases155 I $P($G(ECNO),U)="Y" D156 .;Get credit stop code for non-or case157 .S CRST=$$GET1^DIQ(40.7,$$GET1^DIQ(44,CLINIC,2503,"I"),1,"E")158 .;Get stop code for non-or case159 .S STCD=$$GET1^DIQ(40.7,$$GET1^DIQ(44,CLINIC,8,"I"),1,"E")160 ;Clinic, not a non-or case use surgical specialty associated clinic161 I $P($G(ECNO),U)'="Y" S CLINIC=$$GET1^DIQ(137.45,+$P(EC0,U,4),2,"I")162 Q 1163 ;164 SURPODX(PRODX,PODX1,PODX2,PODX3,PODX4,PODX5) ;Get postop diagnosis codes165 ;Init variables166 N CODE,I,PODX167 S (PRODX,PODX1,PODX2,PODX3,PODX4,PODX5)="",CODE=0168 ;Check input169 Q:'$D(DATAOP) 0170 ;Get principal postop dx code171 S PRODX=$$GET1^DIQ(80,$P(DATAOP,U,3),.01)172 ;Get other postop dx codes173 S (CODE,I)=0 F S CODE=$O(^SRO(136,ECD0,4,CODE)) Q:'CODE Q:I>5 D174 .S I=I+1,PODX="PODX"_I,@PODX=$$GET1^DIQ(80,$P(^SRO(136,ECD0,4,CODE,0),U),.01)175 Q 1
Note:
See TracChangeset
for help on using the changeset viewer.