- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/ORDER_ENTRY_RESULTS_REPORTING-OR-OCX--ORRC--ORRJ/ORDV04A.m
r613 r623 1 ORDV04A ; SLC/DAN/dcm - OE/RR ;7/30/01 14:33 2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,243**;Dec 17,1997;Build 242 3 ; 4 Q 5 ENSR ; Entry point for component 6 ;External calls to ^GMTSROB, ^DIQ, ^GMTSORC, ^DIWP 7 ;External references to ^SRF, ^DD, ^ICPT 8 N GMIDT,GMN,SURG 9 I '$D(^SRF("B",DFN)) Q 10 S GMN=0 F S GMN=$O(^SRF("B",DFN,GMN)) Q:GMN'>0 D SORT 11 I '$D(SURG) Q 12 S GMIDT=0 F S GMIDT=$O(SURG(GMIDT)) Q:GMIDT'>0!(ORCNT'<ORMAX) S GMN=SURG(GMIDT) D EXTRCT 13 Q 14 ; 15 SORT ; Sort surgeries by inverted date 16 N GMDT 17 S GMDT=$P(^SRF(GMN,0),U,9) I GMDT>ORDBEG&(GMDT<ORDEND) D 18 . F Q:'$D(SURG(9999999-GMDT)) S GMDT=GMDT+.0001 19 . S SURG(9999999-GMDT)=GMN 20 Q 21 EXTRCT ; Extract surgical case record 22 N X,GMI,GMDT,OPPRC,POSDX,PREDX,SPEC,STATUS,SURGEON,VER 23 N DCTDTM,TRSDTM,Y,C,DIWL,DIWF,ORSITE,ORMORE,SITE 24 S ORCNT=ORCNT+1,ORMORE=0 25 S GMDT=$$DATE^ORDVU($P(^SRF(GMN,0),U,9)) 26 D STATUS^GMTSROB S:'$D(STATUS) STATUS="UNKNOWN" 27 S X=$P(^SRF(GMN,0),U,4) I X>0 S Y=X,C=$P(^DD(130,.04,0),U,2) D Y^DIQ S SPEC=Y K Y 28 I $D(^SRF(GMN,.1)) S X=$P(^SRF(GMN,.1),U,4) I X>0 S Y=X,C=$P(^DD(130,.14,0),U,2) D Y^DIQ S SURGEON=Y K Y 29 S VER=$S($G(^SRF(GMN,"VER"))'="Y":"(Unverified)",1:"") 30 S PREDX(0)=$S($G(^SRF(GMN,33))]"":$P(^(33),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,14,GMI)) Q:GMI'>0 S PREDX(GMI)=$P(^SRF(GMN,14,GMI,0),U) 31 S POSDX(0)=$S($G(^SRF(GMN,34))]"":$P(^(34),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,15,GMI)) Q:GMI'>0 S POSDX(GMI)=$P(^SRF(GMN,15,GMI,0),U) 32 S OPPRC(0)=$P($G(^SRF(GMN,"OP")),U,1,2) S:$P(OPPRC(0),U,2)]"" $P(OPPRC(0),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,"OP")),U,2)),U,3) D 33 . S GMI=0 F S GMI=$O(^SRF(GMN,13,GMI)) Q:GMI'>0 S OPPRC(GMI)=$P($G(^SRF(GMN,13,GMI,0)),U)_U_$G(^SRF(GMN,13,GMI,2)) S:$P(OPPRC(GMI),U,2)]"" $P(OPPRC(GMI),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,13,GMI,2)),U)),U,3) 34 S X=$P($G(^SRF(GMN,31)),U,6) S:X>0 DCTDTM=$$DATE^ORDVU(X) 35 S X=$P($G(^SRF(GMN,31)),U,7) S:X>0 TRSDTM=$$DATE^ORDVU(X) 36 S DIWL=0,DIWF="N",ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) 37 K ^UTILITY($J,"W") 38 I $D(^SRF(GMN,12)) F GMI=1:1:$P(^SRF(GMN,12,0),U,4) S X=^SRF(GMN,12,GMI,0) D ^DIWP 39 S SITE=ORSITE 40 S ^TMP("ORDATA",$J,GMIDT,"WP",1)="1^"_SITE ;Station ID 41 S ^TMP("ORDATA",$J,GMIDT,"WP",2)="2^"_GMDT ; date 42 ; 43 ; Operative Procedure(s) 44 S GMI="" F S GMI=$O(OPPRC(GMI)) Q:GMI="" D S:GMI ORMORE=1 45 . S ^TMP("ORDATA",$J,GMIDT,"WP",3,GMI)="3^"_$P(OPPRC(GMI),U)_$S($P(OPPRC(GMI),U,2)]"":" - "_$P(OPPRC(GMI),U,2),1:"") 46 ; 47 S ^TMP("ORDATA",$J,GMIDT,"WP",4)="4^"_$G(SPEC) ;surgical specialty 48 ; 49 S ^TMP("ORDATA",$J,GMIDT,"WP",5)="5^"_$G(SURGEON) ; surgeon 50 S ^TMP("ORDATA",$J,GMIDT,"WP",6)="6^"_$G(STATUS) ; op status 51 ; 52 ; Pre-operative diagnosis 53 S GMI="" F S GMI=$O(PREDX(GMI)) Q:GMI="" D S:GMI ORMORE=1 54 . S ^TMP("ORDATA",$J,GMIDT,"WP",7,GMI)="7^"_PREDX(GMI) 55 ; 56 ; Post-operative diagnosis 57 S GMI="" F S GMI=$O(POSDX(GMI)) Q:GMI="" D S:GMI ORMORE=1 58 . S ^TMP("ORDATA",$J,GMIDT,"WP",8,GMI)="8^"_POSDX(GMI) 59 ; 60 ; Lab work? Y/N 61 S ^TMP("ORDATA",$J,GMIDT,"WP",9)="9^"_$S($O(^SRF(GMN,9,0)):"Yes",1:"No") 62 S ^TMP("ORDATA",$J,GMIDT,"WP",10)="10^"_$G(DCTDTM) ; dictation time 63 S ^TMP("ORDATA",$J,GMIDT,"WP",11)="11^"_$G(TRSDTM) ; transcription time 64 ; 65 ; surgeon's dictation 66 I $D(^UTILITY($J,"W")) D S ORMORE=1 67 . K ^TMP("ORHSSRT",$J) 68 . F GMI=1:1:^UTILITY($J,"W",DIWL) D 69 .. S ^TMP("ORHSSRT",$J,GMIDT,"WP",GMI)=^UTILITY($J,"W",DIWL,GMI,0) 70 . D SPMRG^ORDVU($NA(^TMP("ORHSSRT",$J,GMIDT,"WP")),$NA(^TMP("ORDATA",$J,GMIDT,"WP",12)),12) 71 . K ^UTILITY($J,"W") 72 . K ^TMP("ORHSSRT",$J) 73 I ORMORE S ^TMP("ORDATA",$J,GMIDT,"WP",13)="13^[+]" ;flag for detail 74 Q 75 VS ;Continuation of Vitals Extract (from ORDV04) 76 ;Calls GMRVUT0 77 I $L($T(GCPR^OMGCOAS1)) D Q ; OMGCOAS1 routine only on Station 200 78 . D GCPR^OMGCOAS1(DFN,"VIT",ORDBEG,ORDEND,ORMAX) 79 . S ROOT=$NA(^TMP("ORDATA",$J)) 80 N ORDT,I,TYPE,IEN,GMRVSTR,ORSITE,SITE,PLACE,GO,X,QUALIF,NODE,UNITS,UCNT,QCNT,ORI 81 Q:'$L(OREXT) 82 S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2) 83 Q:'$L($T(@GO)) 84 K ^UTILITY($J,"GMRVD"),^TMP("ORDATA",$J) 85 S GMRVSTR="T;P;R;BP;HT;WT;PN;PO2;CVP;CG",GMRVSTR(0)=ORDBEG_"^"_ORDEND_"^"_ORMAX_"^"_1 86 S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) 87 D @GO 88 S ORDT=0 89 F I=1:1 S ORDT=$O(^UTILITY($J,"GMRVD",ORDT)) Q:'+ORDT!(I>ORMAX) D ;DBIA 4791 90 . S SITE=$S($L($G(^TMP("GMRVD",$J,ORDT,"facility"))):^("facility"),1:ORSITE) 91 . S ^TMP("ORDATA",$J,"WP",ORDT,1)="1^"_SITE 92 . S ^TMP("ORDATA",$J,"WP",ORDT,2)="2^"_$$DATE^ORDVU(9999999-ORDT) ;date vitals taken 93 . K UNITS,QUALIF 94 . S TYPE="",(UCNT,QCNT)=1,UNITS(UCNT)="",QUALIF(QCNT)="",QUALIF="" 95 . F S TYPE=$O(^UTILITY($J,"GMRVD",ORDT,TYPE)) Q:TYPE="" D 96 .. S IEN=$O(^UTILITY($J,"GMRVD",ORDT,TYPE,0)) Q:'IEN S NODE=$G(^(IEN)) 97 .. S PLACE=$S(TYPE="T":3,TYPE="P":4,TYPE="R":5,TYPE="BP":6,TYPE="HT":7,TYPE="WT":8,TYPE="PN":9,TYPE="PO2":10,TYPE="CVP":11,TYPE="CG":12,1:0) 98 .. I PLACE S ^TMP("ORDATA",$J,"WP",ORDT,PLACE)=PLACE_"^"_$P(NODE,"^",8) ;Get value of vitals from global 99 .. S X=$$UNITMAP(TYPE) S:$L(UNITS(UCNT))>60 UCNT=UCNT+1,UNITS(UCNT)="" S UNITS(UCNT)=$S($L(UNITS(UCNT)):UNITS(UCNT)_","_$$MAP(TYPE)_":",1:$$MAP(TYPE)_":")_X ;Units 100 .. I TYPE="PO2" D 101 ... I $L($P(NODE,"^",15)) S ^TMP("ORDATA",$J,"WP",ORDT,13)=13_"^"_$P($G(^UTILITY($J,"GMRVD",ORDT,TYPE,IEN)),"^",15) ; Flow Rate 102 ... I $L($P(NODE,"^",16)) S ^TMP("ORDATA",$J,"WP",ORDT,14)=14_"^"_$P($G(^UTILITY($J,"GMRVD",ORDT,TYPE,IEN)),"^",16) ; O2 Concentration 103 .. I $L($P(NODE,"^",17)) S X=$P(NODE,"^",17) D 104 ... I QUALIF'[($$MAP(TYPE)_":"_X) D 105 .... S QUALIF=$S($L(QUALIF):QUALIF_" , "_$$MAP(TYPE)_":",1:$$MAP(TYPE)_":")_X ; Qualifier 106 .... S:$L(QUALIF(QCNT))>60 QCNT=QCNT+1,QUALIF(QCNT)="" 107 .... S QUALIF(QCNT)=$S($L(QUALIF(QCNT)):QUALIF(QCNT)_" , "_$$MAP(TYPE)_":",1:$$MAP(TYPE)_":")_X ; Qualifier 108 .. I TYPE="WT",$L($P(NODE,"^",14)) D 109 ... S ^TMP("ORDATA",$J,"WP",ORDT,16)=16_"^"_$P(NODE,"^",14) ; BMI 110 . I $O(QUALIF(0)) D 111 .. S ORI=0 F S ORI=$O(QUALIF(ORI)) Q:'ORI D 112 ... S ^TMP("ORDATA",$J,"WP",ORDT,15,ORI)="15^"_QUALIF(ORI) 113 . I $O(UNITS(0)) D 114 .. S ORI=0 F S ORI=$O(UNITS(ORI)) Q:'ORI D 115 ... S ^TMP("ORDATA",$J,"WP",ORDT,17,ORI)="17^"_UNITS(ORI) 116 K ^UTILITY($J,"GMRVD") 117 S ROOT=$NA(^TMP("ORDATA",$J)) 118 Q 119 MAP(TEXT) ;Map test code to abbreviation 120 Q:'$L($G(TEXT)) "" 121 I TEXT="T" Q "TEMP" 122 I TEXT="P" Q "PULSE" 123 I TEXT="R" Q "RESP" 124 I TEXT="BP" Q "BP" 125 I TEXT="HT" Q "HT" 126 I TEXT="WT" Q "WT" 127 I TEXT="PN" Q "PAIN" 128 I TEXT="PO2" Q "POx" 129 I TEXT="CVP" Q "CVP" 130 I TEXT="CG" Q "C/G" 131 Q TEXT 132 UNITMAP(TEXT) ;Map units to abbreviation 133 Q:'$L($G(TEXT)) "" 134 I TEXT="T" Q "F" 135 I TEXT="P" Q "/min" 136 I TEXT="R" Q " /min" 137 I TEXT="BP" Q "mmHg" 138 I TEXT="HT" Q "in" 139 I TEXT="WT" Q "lb" 140 I TEXT="PN" Q "" 141 I TEXT="PO2" Q "%SpO2" 142 I TEXT="CVP" Q "cmH2O" 143 I TEXT="CG" Q " in" 144 Q "" 1 ORDV04A ;SLC/DAN - OE/RR ;7/30/01 14:33 2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109**;Dec 17,1997 3 ; 4 Q 5 ENSR ; Entry point for component 6 ;External calls to ^GMTSROB, ^DIQ, ^GMTSORC, ^DIWP 7 ;External references to ^SRF, ^DD, ^ICPT 8 N GMIDT,GMN,SURG 9 I '$D(^SRF("B",DFN)) Q 10 S GMN=0 F S GMN=$O(^SRF("B",DFN,GMN)) Q:GMN'>0 D SORT 11 I '$D(SURG) Q 12 S GMIDT=0 F S GMIDT=$O(SURG(GMIDT)) Q:GMIDT'>0!(ORCNT'<ORMAX) S GMN=SURG(GMIDT) D EXTRCT 13 Q 14 ; 15 SORT ; Sort surgeries by inverted date 16 N GMDT 17 S GMDT=$P(^SRF(GMN,0),U,9) I GMDT>ORDBEG&(GMDT<ORDEND) D 18 . F Q:'$D(SURG(9999999-GMDT)) S GMDT=GMDT+.0001 19 . S SURG(9999999-GMDT)=GMN 20 Q 21 EXTRCT ; Extract surgical case record 22 N X,GMI,GMDT,OPPRC,POSDX,PREDX,SPEC,STATUS,SURGEON,VER 23 N DCTDTM,TRSDTM,Y,C,DIWL,DIWF,ORSITE,ORMORE,SITE 24 S ORCNT=ORCNT+1,ORMORE=0 25 S GMDT=$$DATE^ORDVU($P(^SRF(GMN,0),U,9)) 26 D STATUS^GMTSROB S:'$D(STATUS) STATUS="UNKNOWN" 27 S X=$P(^SRF(GMN,0),U,4) I X>0 S Y=X,C=$P(^DD(130,.04,0),U,2) D Y^DIQ S SPEC=Y K Y 28 I $D(^SRF(GMN,.1)) S X=$P(^SRF(GMN,.1),U,4) I X>0 S Y=X,C=$P(^DD(130,.14,0),U,2) D Y^DIQ S SURGEON=Y K Y 29 S VER=$S($G(^SRF(GMN,"VER"))'="Y":"(Unverified)",1:"") 30 S PREDX(0)=$S($G(^SRF(GMN,33))]"":$P(^(33),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,14,GMI)) Q:GMI'>0 S PREDX(GMI)=$P(^SRF(GMN,14,GMI,0),U) 31 S POSDX(0)=$S($G(^SRF(GMN,34))]"":$P(^(34),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,15,GMI)) Q:GMI'>0 S POSDX(GMI)=$P(^SRF(GMN,15,GMI,0),U) 32 S OPPRC(0)=$P($G(^SRF(GMN,"OP")),U,1,2) S:$P(OPPRC(0),U,2)]"" $P(OPPRC(0),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,"OP")),U,2)),U,3) D 33 . S GMI=0 F S GMI=$O(^SRF(GMN,13,GMI)) Q:GMI'>0 S OPPRC(GMI)=$P($G(^SRF(GMN,13,GMI,0)),U)_U_$G(^SRF(GMN,13,GMI,2)) S:$P(OPPRC(GMI),U,2)]"" $P(OPPRC(GMI),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,13,GMI,2)),U)),U,3) 34 S X=$P($G(^SRF(GMN,31)),U,6) S:X>0 DCTDTM=$$DATE^ORDVU(X) 35 S X=$P($G(^SRF(GMN,31)),U,7) S:X>0 TRSDTM=$$DATE^ORDVU(X) 36 S DIWL=0,DIWF="N",ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3) 37 K ^UTILITY($J,"W") 38 I $D(^SRF(GMN,12)) F GMI=1:1:$P(^SRF(GMN,12,0),U,4) S X=^SRF(GMN,12,GMI,0) D ^DIWP 39 S SITE=ORSITE 40 S ^TMP("ORDATA",$J,GMIDT,"WP",1)="1^"_SITE ;Station ID 41 S ^TMP("ORDATA",$J,GMIDT,"WP",2)="2^"_GMDT ; date 42 ; 43 ; Operative Procedure(s) 44 S GMI="" F S GMI=$O(OPPRC(GMI)) Q:GMI="" D S:GMI ORMORE=1 45 . S ^TMP("ORDATA",$J,GMIDT,"WP",3,GMI)="3^"_$P(OPPRC(GMI),U)_$S($P(OPPRC(GMI),U,2)]"":" - "_$P(OPPRC(GMI),U,2),1:"") 46 ; 47 S ^TMP("ORDATA",$J,GMIDT,"WP",4)="4^"_$G(SPEC) ;surgical specialty 48 ; 49 S ^TMP("ORDATA",$J,GMIDT,"WP",5)="5^"_$G(SURGEON) ; surgeon 50 S ^TMP("ORDATA",$J,GMIDT,"WP",6)="6^"_$G(STATUS) ; op status 51 ; 52 ; Pre-operative diagnosis 53 S GMI="" F S GMI=$O(PREDX(GMI)) Q:GMI="" D S:GMI ORMORE=1 54 . S ^TMP("ORDATA",$J,GMIDT,"WP",7,GMI)="7^"_PREDX(GMI) 55 ; 56 ; Post-operative diagnosis 57 S GMI="" F S GMI=$O(POSDX(GMI)) Q:GMI="" D S:GMI ORMORE=1 58 . S ^TMP("ORDATA",$J,GMIDT,"WP",8,GMI)="8^"_POSDX(GMI) 59 ; 60 ; Lab work? Y/N 61 S ^TMP("ORDATA",$J,GMIDT,"WP",9)="9^"_$S($O(^SRF(GMN,9,0)):"Yes",1:"No") 62 S ^TMP("ORDATA",$J,GMIDT,"WP",10)="10^"_$G(DCTDTM) ; dictation time 63 S ^TMP("ORDATA",$J,GMIDT,"WP",11)="11^"_$G(TRSDTM) ; transcription time 64 ; 65 ; surgeon's dictation 66 I $D(^UTILITY($J,"W")) D S ORMORE=1 67 . K ^TMP("ORHSSRT",$J) 68 . F GMI=1:1:^UTILITY($J,"W",DIWL) D 69 .. S ^TMP("ORHSSRT",$J,GMIDT,"WP",GMI)=^UTILITY($J,"W",DIWL,GMI,0) 70 . D SPMRG^ORDVU($NA(^TMP("ORHSSRT",$J,GMIDT,"WP")),$NA(^TMP("ORDATA",$J,GMIDT,"WP",12)),12) 71 . K ^UTILITY($J,"W") 72 . K ^TMP("ORHSSRT",$J) 73 I ORMORE S ^TMP("ORDATA",$J,GMIDT,"WP",13)="13^[+]" ;flag for detail 74 Q
Note:
See TracChangeset
for help on using the changeset viewer.