| 1 | ORDV07 ;SLC/DAN/KER - OE/RR Report extracts ; 01/09/2003 | 
|---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,120,159**;Dec 17,1997 | 
|---|
| 3 | ; | 
|---|
| 4 | ; External References | 
|---|
| 5 | ;   DBIA  10112  $$SITE^VASITE | 
|---|
| 6 | ;   DBIA  10061  4^VADPT | 
|---|
| 7 | ;   DBIA  10061  OAD^VADPT | 
|---|
| 8 | ;   DBIA  10145  ALL^IBCNS1 | 
|---|
| 9 | ;   DBIA    767  ^DGSL(38.1, | 
|---|
| 10 | ;   DBIA   1407  ^FHWHEA | 
|---|
| 11 | ;   DBIA   3818  ICDS^GMTSDGP | 
|---|
| 12 | ;   DBIA   3818  ICDP^GMTSDGP | 
|---|
| 13 | ;   DBIA    418  ^DGPT("B" | 
|---|
| 14 | ;   DBIA    794  ^DIC(36, | 
|---|
| 15 | ;   DBIA    951  ^IBE(355.1, | 
|---|
| 16 | ; | 
|---|
| 17 | ;Dietetics components | 
|---|
| 18 | DIETA(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;All diet | 
|---|
| 19 | N ORTYPE S ORTYPE="DI" D DIET Q | 
|---|
| 20 | DIETN(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Nutritional Status | 
|---|
| 21 | N ORTYPE S ORTYPE="NS" D DIET Q | 
|---|
| 22 | DIETS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Supplemental Feedings | 
|---|
| 23 | N ORTYPE S ORTYPE="SF" D DIET Q | 
|---|
| 24 | DIETT(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Tube feedings | 
|---|
| 25 | N ORTYPE S ORTYPE="TF" D DIET Q | 
|---|
| 26 | ; | 
|---|
| 27 | DIET ;Main diet entry point | 
|---|
| 28 | ;External calls to FHWHEA and SITE^VASITE | 
|---|
| 29 | ;Data returned in ^TMP("ORDATA",$J) by type: | 
|---|
| 30 | ;  ALL=Facility^Start Date^End Date^Diet^Comment^Service(tray,dining room, etc) | 
|---|
| 31 | ;  Nutritional Status=Facility^Status Date^Status | 
|---|
| 32 | ;  Supplemental Feeding=Facility^Date Ordered^Date Canceled^10am feeding^2pm feeding^8pm feeding | 
|---|
| 33 | ;  Tubefeeding=Facility^Date Ordered^Date Canceled^Product^Strength^Quantity^Daily CCs^Daily KCal^Comment | 
|---|
| 34 | ; | 
|---|
| 35 | N GMTS1,GMTS2,GMTSNDM,ORSITE,SITE,ORDT | 
|---|
| 36 | S GMTS1=OROMEGA-.24,GMTS2=ORALPHA,GMTSNDM=ORMAX | 
|---|
| 37 | K ^TMP("ORDATA",$J) | 
|---|
| 38 | D ^FHWHEA ;get all diet information.  Returned in ^UTILITY($J) | 
|---|
| 39 | Q:'$D(^UTILITY($J,ORTYPE))  ;no data to report for type selected | 
|---|
| 40 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) | 
|---|
| 41 | S ORDT=0 | 
|---|
| 42 | F  S ORDT=$O(^UTILITY($J,ORTYPE,ORDT)) Q:ORDT=""  D | 
|---|
| 43 | . S SITE=$S($L($G(^UTILITY($J,ORTYPE,ORDT,"facility"))):^("facility"),1:ORSITE) | 
|---|
| 44 | . S ^TMP("ORDATA",$J,ORDT,"WP",1)="1^"_SITE ;Station ID | 
|---|
| 45 | . S ^TMP("ORDATA",$J,ORDT,"WP",2)="2^"_$$DATE^ORDVU($P(^UTILITY($J,ORTYPE,ORDT,0),"^")) ;date | 
|---|
| 46 | . S ^TMP("ORDATA",$J,ORDT,"WP",3)="3^"_$S(ORTYPE="NS":$P(^UTILITY($J,ORTYPE,ORDT,0),"^",2),1:$$DATE^ORDVU($P(^UTILITY($J,ORTYPE,ORDT,0),"^",2))) | 
|---|
| 47 | . Q:ORTYPE="NS"  ;no more data required for NS | 
|---|
| 48 | . S ^TMP("ORDATA",$J,ORDT,"WP",4)="4^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",3) | 
|---|
| 49 | . S ^TMP("ORDATA",$J,ORDT,"WP",5)="5^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",4) | 
|---|
| 50 | . S ^TMP("ORDATA",$J,ORDT,"WP",6)="6^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",5) | 
|---|
| 51 | . Q:ORTYPE'="TF" | 
|---|
| 52 | . ;Get remaining data for tube feedings | 
|---|
| 53 | . S ^TMP("ORDATA",$J,ORDT,"WP",7)="7^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",6) | 
|---|
| 54 | . S ^TMP("ORDATA",$J,ORDT,"WP",8)="8^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",7) | 
|---|
| 55 | . S ^TMP("ORDATA",$J,ORDT,"WP",9)="9^"_$P(^UTILITY($J,ORTYPE,ORDT,0),"^",8) | 
|---|
| 56 | K ^UTILITY($J) | 
|---|
| 57 | S ROOT=$NA(^TMP("ORDATA",$J)) | 
|---|
| 58 | Q | 
|---|
| 59 | ; | 
|---|
| 60 | DEM(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; ADT Demographics | 
|---|
| 61 | ; External calls to VASITE, VADPT, and ^DGSL(38.1 | 
|---|
| 62 | N VADM,VAPA,VAOA,ORSITE,SITE,I,ORDAT,ORETHN,ORRACE S (ORETHN,ORRACE)="" | 
|---|
| 63 | K ^TMP("ORDATA",$J) | 
|---|
| 64 | D 4^VADPT,OAD^VADPT | 
|---|
| 65 | ; Quit if error in data gathering, otherwise get | 
|---|
| 66 | ; demographic/address information as well as next | 
|---|
| 67 | ; of kin addres | 
|---|
| 68 | Q:VAERR | 
|---|
| 69 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) | 
|---|
| 70 | S SITE=ORSITE | 
|---|
| 71 | ;  1  Site | 
|---|
| 72 | S ^TMP("ORDATA",$J,1,"WP",1)="1^"_SITE | 
|---|
| 73 | ;  2  Patient Name | 
|---|
| 74 | S ^TMP("ORDATA",$J,1,"WP",2)="2^"_VADM(1) | 
|---|
| 75 | ;  3  SSN | 
|---|
| 76 | S ^TMP("ORDATA",$J,1,"WP",3)="3^"_$P(VADM(2),"^") | 
|---|
| 77 | ;  4  Sex | 
|---|
| 78 | S ^TMP("ORDATA",$J,1,"WP",4)="4^"_$P(VADM(5),"^",2) | 
|---|
| 79 | ;  5  Date of Birth | 
|---|
| 80 | S ^TMP("ORDATA",$J,1,"WP",5)="5^"_$$DATE^ORDVU($P(VADM(3),"^")) | 
|---|
| 81 | ;  6  Religion | 
|---|
| 82 | S ^TMP("ORDATA",$J,1,"WP",6)="6^"_$P(VADM(9),"^",2) | 
|---|
| 83 | ;  7  Marital Status | 
|---|
| 84 | S ^TMP("ORDATA",$J,1,"WP",7)="7^"_$P(VADM(10),"^",2) | 
|---|
| 85 | ;  8  Phone Number | 
|---|
| 86 | S ^TMP("ORDATA",$J,1,"WP",8)="8^"_VAPA(8) | 
|---|
| 87 | ;  9  Street Address (1-3), City, State, and ZIP | 
|---|
| 88 | S ^TMP("ORDATA",$J,1,"WP",9,1)="9^"_VAPA(1) I $P(^(1),"^",2)="" K ^(1) | 
|---|
| 89 | S ^TMP("ORDATA",$J,1,"WP",9,2)="9^"_VAPA(2) I $P(^(2),"^",2)="" K ^(2) | 
|---|
| 90 | S ^TMP("ORDATA",$J,1,"WP",9,3)="9^"_VAPA(3) I $P(^(3),"^",2)="" K ^(3) | 
|---|
| 91 | S ^TMP("ORDATA",$J,1,"WP",9,4)="9^"_VAPA(4)_$S($G(VAPA(4))'="":", ",1:"")_$P(VAPA(5),"^",2)_" "_VAPA(6) | 
|---|
| 92 | ; 11  Ethnicity | 
|---|
| 93 | S I=0 F  S I=$O(VADM(11,I)) Q:+I=0  D | 
|---|
| 94 | . S ORDAT=$P(VADM(11,I),"^",2) Q:'$L(ORDAT) | 
|---|
| 95 | . S ORETHN=$G(ORETHN)_", "_ORDAT | 
|---|
| 96 | . S ^TMP("ORDATA",$J,1,"WP",11,I)="11^"_ORDAT | 
|---|
| 97 | ; 10  Race | 
|---|
| 98 | S:$L(ORETHN) ^TMP("ORDATA",$J,1,"WP",10,1)="10^" | 
|---|
| 99 | S I=0 F  S I=$O(VADM(12,I)) Q:+I=0  D | 
|---|
| 100 | . S ORDAT=$P($G(VADM(12,I)),"^",2) Q:'$L(ORDAT) | 
|---|
| 101 | . S ORRACE=$G(ORRACE)_", "_ORDAT | 
|---|
| 102 | . S ^TMP("ORDATA",$J,1,"WP",10,I)="10^"_ORDAT | 
|---|
| 103 | S ORRACE=$P(ORRACE,", ",2,$L(ORRACE,", ")) | 
|---|
| 104 | I '$L($P($G(^TMP("ORDATA",$J,1,"WP",11,1)),"^",2)) D | 
|---|
| 105 | . I '$L($P($G(^TMP("ORDATA",$J,1,"WP",10,1)),"^",2)) D | 
|---|
| 106 | . . S ^TMP("ORDATA",$J,1,"WP",11,1)="11^" | 
|---|
| 107 | . . S ^TMP("ORDATA",$J,1,"WP",10,1)="10^"_$P($G(VADM(8)),"^",2) | 
|---|
| 108 | S ORETHN=$P(ORETHN,", ",2,$L(ORETHN,", ")) | 
|---|
| 109 | ; 12  Next of Kin | 
|---|
| 110 | S ^TMP("ORDATA",$J,1,"WP",12)="12^"_VAOA(9) | 
|---|
| 111 | ; 13  Next of Kin Relationship | 
|---|
| 112 | S ^TMP("ORDATA",$J,1,"WP",13)="13^"_VAOA(10) | 
|---|
| 113 | ; 14  NOK Street Address (1-3), City, State, and ZIP | 
|---|
| 114 | S ^TMP("ORDATA",$J,1,"WP",14,1)="14^"_VAOA(1) I $P(^(1),"^",2)="" K ^(1) | 
|---|
| 115 | S ^TMP("ORDATA",$J,1,"WP",14,2)="14^"_VAOA(2) I $P(^(2),"^",2)="" K ^(2) | 
|---|
| 116 | S ^TMP("ORDATA",$J,1,"WP",14,3)="14^"_VAOA(3) I $P(^(3),"^",2)="" | 
|---|
| 117 | S ^TMP("ORDATA",$J,1,"WP",14,4)="14^"_VAOA(4)_$S($G(VAOA(4))'="":", ",1:"")_$P(VAOA(5),"^",2)_" "_VAOA(6) | 
|---|
| 118 | ; 15  Security Log | 
|---|
| 119 | S ^TMP("ORDATA",$J,1,"WP",15)="15^"_$S($P($G(^DGSL(38.1,DFN,0)),"^",2):"YES",1:"NO") | 
|---|
| 120 | S ROOT=$NA(^TMP("ORDATA",$J)) | 
|---|
| 121 | Q | 
|---|
| 122 | ICDSUR(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Return ICD Surgery Information | 
|---|
| 123 | ;External calls to VASITE, GMTSDGP | 
|---|
| 124 | N ORSITE,SITE,T1,T2,I,J,GMS,PTF,ORDATE | 
|---|
| 125 | K ^TMP("ORDATA",$J) | 
|---|
| 126 | S T1=ORDEND,T2=ORDBEG,ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) | 
|---|
| 127 | F PTF=0:0 S PTF=$O(^DGPT("B",DFN,PTF)) Q:PTF=""  D ICDS^GMTSDGP | 
|---|
| 128 | S (I,ORDATE)=0 | 
|---|
| 129 | F  S ORDATE=$O(GMS(ORDATE)) Q:ORDATE=""!(I'<ORMAX)  S J=0 D | 
|---|
| 130 | . F  S J=$O(GMS(ORDATE,J))  Q:'J!(I'<ORMAX)  S I=I+1 D  ;Check for multiple procedures on same date | 
|---|
| 131 | .. S SITE=$S($L($G(GMS(ORDATE,J,"facility"))):^("facility"),1:ORSITE) | 
|---|
| 132 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,1)="1^"_SITE | 
|---|
| 133 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,2)="2^"_$$DATEMMM^ORDVU($P(GMS(ORDATE),"  ",3)) ;Date of procedure | 
|---|
| 134 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,3)="3^"_$P($G(GMS(ORDATE,J)),"^") ;Surgery and code | 
|---|
| 135 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,4)="4^"_$P(GMS(ORDATE,J),"^",2) ;ICD code | 
|---|
| 136 | S ROOT=$NA(^TMP("ORDATA",$J)) | 
|---|
| 137 | Q | 
|---|
| 138 | PRC(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Return Procedure Information | 
|---|
| 139 | ;External calls to VASITE, GMTSDGP | 
|---|
| 140 | N ORSITE,SITE,T1,T2,I,J,GMP,PTF,ORDATE | 
|---|
| 141 | K ^TMP("ORDATA",$J) | 
|---|
| 142 | S T1=ORDEND,T2=ORDBEG,PTF=0,ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) | 
|---|
| 143 | F  S PTF=$O(^DGPT("B",DFN,PTF)) Q:PTF=""  D ICDP^GMTSDGP | 
|---|
| 144 | S (I,ORDATE)=0 | 
|---|
| 145 | F  S ORDATE=$O(GMP(ORDATE)) Q:ORDATE=""!(I'<ORMAX)  S J=0 D | 
|---|
| 146 | . F  S J=$O(GMP(ORDATE,J))  Q:'J!(I'<ORMAX)  S I=I+1 D  ;Check for multiple procedures on same date | 
|---|
| 147 | .. S SITE=$S($L($G(GMP(ORDATE,J,"facility"))):^("facility"),1:ORSITE) | 
|---|
| 148 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,1)="1^"_SITE | 
|---|
| 149 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,2)="2^"_$$DATEMMM^ORDVU($P(GMP(ORDATE),"  ",2)) ;Date of procedure | 
|---|
| 150 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,3)="3^"_$P($G(GMP(ORDATE,J)),"^") ;Procedure and code | 
|---|
| 151 | .. S ^TMP("ORDATA",$J,"WP",ORDATE,J,4)="4^"_$P(GMP(ORDATE,J),"^",2) ;ICD code | 
|---|
| 152 | S ROOT=$NA(^TMP("ORDATA",$J)) | 
|---|
| 153 | Q | 
|---|
| 154 | INS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Return Insurance Information | 
|---|
| 155 | ;External calls to VASITE and IBCNS1 and ^DIC(36, and ^IBE(355.1 | 
|---|
| 156 | N ORSITE,SITE,ORARRAY,I | 
|---|
| 157 | K ^TMP("ORDATA",$J) | 
|---|
| 158 | D ALL^IBCNS1(DFN,"ORARRAY") | 
|---|
| 159 | Q:'$D(ORARRAY)  ;quit if no insurance data returned | 
|---|
| 160 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3),I=0 | 
|---|
| 161 | F  S I=$O(ORARRAY(I)) Q:'I  D | 
|---|
| 162 | . S SITE=$S($L($G(ORARRAY(I,"facility"))):^("facility"),1:ORSITE) | 
|---|
| 163 | . S ^TMP("ORDATA",$J,"WP",I,1)="1^"_SITE | 
|---|
| 164 | . S ^TMP("ORDATA",$J,"WP",I,2)="2^"_$P($G(^DIC(36,+$P(ORARRAY(I,0),"^"),0)),"^") ;Insurance company | 
|---|
| 165 | . S ^TMP("ORDATA",$J,"WP",I,3)="3^"_$P($G(^IBE(355.1,+$P(ORARRAY(I,355.3),"^",9),0)),"^") ;Policy type | 
|---|
| 166 | . S ^TMP("ORDATA",$J,"WP",I,4)="4^"_$P(ORARRAY(I,355.3),"^",4) ;Group number | 
|---|
| 167 | . S ^TMP("ORDATA",$J,"WP",I,5)="5^"_$S($P(ORARRAY(I,0),"^",6)="s":"SPOUSE",$P(ORARRAY(I,0),"^",6)="v":"SELF",1:"OTHER") ;Policy holder | 
|---|
| 168 | . S ^TMP("ORDATA",$J,"WP",I,6)="6^"_$$DATE^ORDVU($P(ORARRAY(I,0),"^",8)) ;Effective date of policy | 
|---|
| 169 | . S ^TMP("ORDATA",$J,"WP",I,7)="7^"_$$DATE^ORDVU($P(ORARRAY(I,0),"^",4)) ;Expiration date of policy | 
|---|
| 170 | S ROOT=$NA(^TMP("ORDATA",$J)) | 
|---|
| 171 | Q | 
|---|