[613] | 1 | VEPER7S2 ;DOQ-IT HL7 Segment generation routine ; 10/11/05 10:22am
|
---|
| 2 | ;;1.0;VOE;;Nov 16, 2005
|
---|
| 3 | ;
|
---|
| 4 | OBXCPT(OBXC) ;
|
---|
| 5 | ;
|
---|
| 6 | ; OBXC - Observation Record Count
|
---|
| 7 | ;
|
---|
| 8 | N REC
|
---|
| 9 | S REC="",OBXC=OBXC+1
|
---|
| 10 | S $P(REC,"|")=OBXC ;SEQUENCE NUMBER
|
---|
| 11 | S OBCODE=$G(VOBX(9000010.18,XAMIEN,.01))
|
---|
| 12 | S OBTXT=$G(VOBX(9000010.18,XAMIEN,.04))
|
---|
| 13 | S $P(REC,"|",3)=OBCODE_"^"_OBTXT_"^C4" ;Observation ID List Code & Sys
|
---|
| 14 | S $P(REC,"|",11)="F"
|
---|
| 15 | S X=$G(VOBX(9000010.18,XAMIEN,.03)),X=$P(X,"@"),%DT="T" I X="" S X=VISITDT
|
---|
| 16 | D ^%DT ;get date
|
---|
| 17 | S $P(REC,"|",14)=$P($$FMTHL7^XLFDT(Y),"-") ;Observation Date
|
---|
| 18 | S $P(REC,"|",16)=PRIPHN ;Physician Upin
|
---|
| 19 | W "OBX|"_REC
|
---|
| 20 | W !
|
---|
| 21 | Q
|
---|
| 22 | ;
|
---|
| 23 | ;
|
---|
| 24 | OBX(OBXC) ;
|
---|
| 25 | ;
|
---|
| 26 | ; OBXC - Observation Record Count
|
---|
| 27 | ;
|
---|
| 28 | N REC,FILENUM,OBCODE,CODSYS
|
---|
| 29 | S REC="",OBCODE="",CODSYS="SNM"
|
---|
| 30 | S FILENUM=$S(EXAM="XAM":9000010.13,EXAM="PED":9000010.16,EXAM="HF":9000010.23,1:"")
|
---|
| 31 | I FILENUM="" Q
|
---|
| 32 | S OBTEXT=$G(VOBX(FILENUM,XAMIEN,.01))
|
---|
| 33 | ;
|
---|
| 34 | ;***CBF***Since the DOQ-IT HL7 tables are not present in VOE, manual mapping was done to properly set this segment.
|
---|
| 35 | ; As new exams, patient education topics and health factors are added, this section must be updated. If the
|
---|
| 36 | ; tables are eventually added, this section can be modified appropriately.
|
---|
| 37 | ;
|
---|
| 38 | I EXAM="XAM" S OBCODE=$S(OBTEXT["FOOT PULSE":21224004,OBTEXT["FOOT VISUAL":385954004,OBTEXT["FOOT":385954004,OBTEXT["EYE":282096008,1:"")
|
---|
| 39 | I EXAM="PED" S OBCODE=$S(OBTEXT["HTN":39155009,OBTEXT["CESSATION":384742004,1:311401005)
|
---|
| 40 | I EXAM="PED" S OBTEXT=$S(OBCODE=39155009:"HYPERTENSION EDUCATION",OBCODE=384742004:"SMOKING CESSATION ASSISTANCE",1:"PATIENT EDUCATION")
|
---|
| 41 | I EXAM="HF" S OBCODE=$S(OBTEXT["SMOKELESS":81703003,OBTEXT["CHEWING":81703003,OBTEXT["SMOKE I":229819007,1:"")
|
---|
| 42 | I EXAM="HF" I OBCODE="" S OBCODE=$S(OBTEXT["SMOKER":65568007,OBTEXT["SMOKING":229819007,1:"")
|
---|
| 43 | I EXAM="HF" I OBCODE="" S OBCODE=$S(OBTEXT="HF-MI IMAGING EF FIRST PASS":41466009,OBTEXT="HF-VENT EF PROB TECH":46258004,1:"")
|
---|
| 44 | I EXAM="HF" I OBCODE="" S OBCODE=$S(OBTEXT="HF-CARDIAC EF":70822001,OBTEXT="LEFT VENT EF":250908004,1:"")
|
---|
| 45 | I EXAM="HF" I OBCODE="" S OBCODE=$S(OBTEXT="HF-NORM LV SYST DYS WALL MOTION":371857005,OBTEXT="HF-NO EVIDENCE LV SYST DYS FUNCTION":395172009,1:"")
|
---|
| 46 | I EXAM="HF" S OBTEXT=$S(OBCODE=81703003:"CHEWS TOBACCO",OBCODE=229819007:"TOBACCO USE AND EXPOSURE",OBCODE=65568007:"CIGARETTE SMOKER",1:OBTEXT)
|
---|
| 47 | I EXAM="HF" I OBTEXT["PATIENT REASON"!(OBTEXT["PHYSICIAN REASON") S OBCODE=$E(OBTEXT,1,4),CODSYS="IFMC"
|
---|
| 48 | I OBCODE="" K REC Q
|
---|
| 49 | S OBXC=OBXC+1
|
---|
| 50 | S $P(REC,"|")=OBXC ;SEQUENCE NUMBER
|
---|
| 51 | I CODSYS'="IFMC" S $P(REC,"|",2)="ST" ;Observation Value Type
|
---|
| 52 | S $P(REC,"|",3)=OBCODE_"^"_OBTEXT_"^"_CODSYS ;Observation ID List Code & Sys
|
---|
| 53 | I CODSYS'="IFMC" I EXAM="XAM" S $P(REC,"|",5)=$G(VOBX(FILENUM,XAMIEN,.04)) ;Observation Value
|
---|
| 54 | I CODSYS'="IFMC" I EXAM="HF" S $P(REC,"|",5)=$G(VOBX(FILENUM,XAMIEN,.04))
|
---|
| 55 | I CODSYS'="IFMC" I EXAM="PED" S $P(REC,"|",5)=$G(VOBX(FILENUM,XAMIEN,.06))
|
---|
| 56 | I $P(REC,"|",2)="ST" I $P(REC,"|",5)="" S $P(REC,"|",5)="NONE"
|
---|
| 57 | S $P(REC,"|",6)="" ;Observation Units
|
---|
| 58 | S $P(REC,"|",11)="F"
|
---|
| 59 | S X=$G(VOBX(FILENUM,XAMIEN,.03)) I X="" S X=VISITDT
|
---|
| 60 | S X=$P(X,"@"),%DT="T" D ^%DT
|
---|
| 61 | S $P(REC,"|",14)=$P($$FMTHL7^XLFDT(Y),"-") ;Observation Date
|
---|
| 62 | S $P(REC,"|",16)=PRIPHN ;Physician Upin
|
---|
| 63 | W "OBX|"_REC
|
---|
| 64 | W !
|
---|
| 65 | Q
|
---|
| 66 | ;
|
---|
| 67 | ;
|
---|
| 68 | OBXVITAL(OBXC) ;
|
---|
| 69 | ;
|
---|
| 70 | ; OBXC - Observation Record Count
|
---|
| 71 | ;
|
---|
| 72 | N REC
|
---|
| 73 | S REC="",OBXC=OBXC+1
|
---|
| 74 | S $P(REC,"|")=OBXC ;SEQUENCE NUMBER
|
---|
| 75 | S $P(REC,"|",2)="ST" ;Observation Value Type
|
---|
| 76 | S $P(REC,"|",3)=OBCODE_"^"_OBTXT_"^SNM" ;Observation ID List Code & Sys
|
---|
| 77 | S $P(REC,"|",5)=OBVALUE ;Observation Value
|
---|
| 78 | S $P(REC,"|",6)=OBID ;Observation Units - IDENTIFIER^TEXT
|
---|
| 79 | S X=$G(VOBX(120.5,XAMIEN,.01)),X=$P(X,"@"),%DT="T" I X="" S X=VISITDT
|
---|
| 80 | D ^%DT ;get date
|
---|
| 81 | S $P(REC,"|",11)="F"
|
---|
| 82 | S $P(REC,"|",14)=$P($$FMTHL7^XLFDT(Y),"-") ;Observation Date
|
---|
| 83 | S $P(REC,"|",16)=PRIPHN ;Physician Upin
|
---|
| 84 | W "OBX|"_REC
|
---|
| 85 | W !
|
---|
| 86 | Q
|
---|
| 87 | ;
|
---|
| 88 | ;
|
---|
| 89 | OBXLABS(OBXC) ;
|
---|
| 90 | ;
|
---|
| 91 | ; OBXC - Observation Record Count
|
---|
| 92 | ;
|
---|
| 93 | N REC,VOELAB,VOEOBX3,VOEOBX31,VOEOBX32 S (REC,VOELAB,VOEOBX3,VOEOBX31,VOEOBX32)=""
|
---|
| 94 | F S VOELAB=$O(^VOELABS(VOELAB)) Q:'VOELAB D
|
---|
| 95 | . I $P($G(^VOELABS(VOELAB)),"|")'="OBX" Q
|
---|
| 96 | . S VOEOBX3=$P($G(^VOELABS(VOELAB)),"|",4)
|
---|
| 97 | . S VOEOBX31=$P(VOEOBX3,"^")
|
---|
| 98 | . I VOEOBX31'["-" Q
|
---|
| 99 | . S VOEOBX32="^"_$P(VOEOBX3,"^",2)_"^LN"
|
---|
| 100 | . S OBXC=OBXC+1
|
---|
| 101 | . S $P(REC,"|")=OBXC ;SEQUENCE NUMBER
|
---|
| 102 | . S $P(REC,"|",2)="ST" ;Observation Value Type
|
---|
| 103 | . S $P(REC,"|",3)=VOEOBX31_VOEOBX32 ;Observation ID List Code & Sys
|
---|
| 104 | . S $P(REC,"|",5)=$P($G(^VOELABS(VOELAB)),"|",6) ;Observation Value
|
---|
| 105 | . S $P(REC,"|",6)=$P($G(^VOELABS(VOELAB)),"|",7) ;Observation Units
|
---|
| 106 | . S $P(REC,"|",11)="F"
|
---|
| 107 | . S $P(REC,"|",14)=$P($$FMTHL7^XLFDT(DTTM),"-") ;Observation Date
|
---|
| 108 | . S $P(REC,"|",16)=PRIPHN ;Physician Upin REUSE PRIPHN - NOT PERFECT, BUT OKAY
|
---|
| 109 | . W "OBX|"_REC
|
---|
| 110 | . W !
|
---|
| 111 | Q
|
---|
| 112 | ;
|
---|
| 113 | ;
|
---|
| 114 |
|
---|
| 115 |
|
---|