| 1 | RAHLQ1 ;HISC/CAH AISC/SAW-Compiles HL7 'ORF' Message Type ;10/7/97  16:02
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
 | 
|---|
| 3 |  ; Set the ^TMP("RARPT-QBAK",$J,RARECNT,... global to the following:
 | 
|---|
| 4 |  ; ^TMP("RARPT-QBAK",$J,RARECNT,"PID3")=Patient ID & checksum
 | 
|---|
| 5 |  ; "PID5"          Patient name
 | 
|---|
| 6 |  ; "PID7"          Patient DOB
 | 
|---|
| 7 |  ; "PID8"          sex of the patient
 | 
|---|
| 8 |  ; "PID19"         Patient SSN (if any)
 | 
|---|
| 9 |  ; "OBR4A"         inverse date/time exam "-" case ien (radti-racni)
 | 
|---|
| 10 |  ; "OBR4B"         date/time exam (radte)
 | 
|---|
| 11 |  ; "OBR16A"        ien requesting physician
 | 
|---|
| 12 |  ; "OBR16B"        name of requesting physician
 | 
|---|
| 13 |  ; "OBR20"         name of ward location or principal clinic
 | 
|---|
| 14 |  ; "LAN-A"         LANIER ONLY --> $p(racn0,"^",2)
 | 
|---|
| 15 |  ; "LAN-B"         LANIER ONLY --> $p(^ramis(71,+$p(racn0,"^",2),0),"^")
 | 
|---|
| 16 |  ; "OBX5"          radisp_$p(^ramis(71,+$p(racn0,"^",2),0),"^")
 | 
|---|
| 17 |  ;                   radisp_"Unknown"  if no procedure
 | 
|---|
| 18 |  ;                   where radisp is  + or .  for printset
 | 
|---|
| 19 |  ; "OBX5-MOD"      string of modifiers
 | 
|---|
| 20 |  ; "OBX-HIST-NONE" "None Entered" if no clinical history
 | 
|---|
| 21 |  ; "OBX5-ALLE"     string of allergies
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ; "RADFN"         RADFN
 | 
|---|
| 24 |  ; "VADM(1)"       VADM(1)
 | 
|---|
| 25 |  ; "VADM(3)"       VADM(3)
 | 
|---|
| 26 |  ; "RAPRV"         RAPRV
 | 
|---|
| 27 |  ; "RADTE0"        RADTE0
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ; RACN0        =  Examinations 0 node (70.03 sub-file)
 | 
|---|
| 30 | EN1 S RADTE0=$S($D(^RADPT(RADFN,"DT",RADTI,0)):+^(0),1:"")
 | 
|---|
| 31 |  S RADTE=$S(RADTE0:$E(RADTE0,4,7)_$E(RADTE0,2,3)_"-"_+RACN0,1:+RACN0)
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ;Compile 'PID' Segment
 | 
|---|
| 34 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"RADFN")=RADFN
 | 
|---|
| 35 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"VADM(1)")=VADM(1)
 | 
|---|
| 36 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"VADM(3)")=VADM(3)
 | 
|---|
| 37 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"PID8")=$S(VADM(5)]"":$S("MF"[$P(VADM(5),"^"):$P(VADM(5),"^"),1:"O"),1:"U")
 | 
|---|
| 38 |  S:$P(VADM(2),"^")]"" ^TMP("RARPT-QBAK",$J,RARECNT,"PID19")=$P(VADM(2),"^")
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;Compile 'OBR' Segment
 | 
|---|
| 41 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBR4A")=RADTI_"-"_RACNI
 | 
|---|
| 42 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBR4B")=RADTE
 | 
|---|
| 43 |  S RAPRV=$P($G(^VA(200,+$P(RACN0,"^",14),0)),"^")
 | 
|---|
| 44 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBR16A")=$S(RAPRV]"":+$P(RACN0,"^",14),1:"")
 | 
|---|
| 45 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"RAPRV")=RAPRV
 | 
|---|
| 46 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"RADTE0")=RADTE0
 | 
|---|
| 47 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBR20")=$S($D(^DIC(42,+$P(RACN0,"^",6),0)):$P(^(0),"^"),$D(^SC(+$P(RACN0,"^",8),0)):$P(^(0),"^"),1:"Unknown")
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ;Compile 'OBX' Segment for Procedure
 | 
|---|
| 50 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"LAN-A")=$P(RACN0,"^",2)
 | 
|---|
| 51 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"LAN-B")=$S($D(^RAMIS(71,+$P(RACN0,"^",2),0)):$P(^(0),"^"),1:"")
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  ; set flags if print set and/or lowest case of print set
 | 
|---|
| 54 |  N RACN,RAPRTSET,RAMEMLOW,RADISP
 | 
|---|
| 55 |  S RACN=+RACN0,RAPRTSET=0,RAMEMLOW=0,RADISP=" "
 | 
|---|
| 56 |  D EN1^RAUTL20
 | 
|---|
| 57 |  I RAPRTSET S RADISP="." S:RAMEMLOW RADISP="+"
 | 
|---|
| 58 |  ;For Lanier units, comment out next line
 | 
|---|
| 59 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBX5")=$S($D(^RAMIS(71,+$P(RACN0,"^",2),0)):RADISP_$P(^(0),"^"),1:"Unknown")
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  ;Compile 'OBX' Segment for Modifiers
 | 
|---|
| 62 |  D MODS^RAUTL2
 | 
|---|
| 63 |  S ^TMP("RARPT-QBAK",$J,RARECNT,"OBX5-MOD")=Y
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  ;Compile 'OBX' Segment for Clinical History
 | 
|---|
| 66 |  I '$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"H",0)) S ^TMP("RARPT-QBAK",$J,RARECNT,"OBX-HIST-NONE")="None Entered"
 | 
|---|
| 67 |  K ^UTILITY($J,"W") S DIWF="",DIWR=80,DIWL=1 F RAI=0:0 S RAI=$O(^RADPT(RADFN,"DT",RADTI,"P",RACNI,"H",RAI)) Q:'RAI  I $D(^(RAI,0)) S X=^(0) D ^DIWP
 | 
|---|
| 68 |  ; save ^UTILITY($J,"W") for bridge routine
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ;Compile 'OBX' Segment for Allergies
 | 
|---|
| 71 |  S DFN=RADFN D ALLERGY^RADEM S X="" I $D(GMRAL) S I=0 F  S I=$O(PI(I)) Q:I'>0  S X0=PI(I) I X0]"" Q:($L(X)+$L(X0))>200  S X=X_X0_", "
 | 
|---|
| 72 |  I $L(X) S ^TMP("RARPT-QBAK",$J,RARECNT,"OBX5-ALLE")=X
 | 
|---|
| 73 |  K DIWF,DIWL,DIWR,GMRAL,I,PI,RAI,RAPRV,RADTE,RADTE0
 | 
|---|
| 74 |  Q
 | 
|---|