| 1 | RAIPST4 ;HIRMFO/GJC - Post-init number four ;12/18/97  09:08
 | 
|---|
| 2 | VERSION ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN1 ; Add Exam Statuses with an Imaging Type of 'Mammography'.
 | 
|---|
| 5 |  ; Exam Statuses created: Cancelled; Waiting For Exam; Called
 | 
|---|
| 6 |  ; For Exam; Examined; Transcribed and Complete.
 | 
|---|
| 7 |  N RAERR,RAFDA,RAITY,RATXT S RATXT(1)=" "
 | 
|---|
| 8 |  S RAITY=+$O(^RA(79.2,"B","MAMMOGRAPHY",0))
 | 
|---|
| 9 |  I RAITY=0 D  Q  ; mammography missing as an i-type
 | 
|---|
| 10 |  . S RATXT(1)=" ",RATXT(2)="Error, 'MAMMOGRAPHY' missing from the Imaging Type (79.2) file.",RATXT(3)="IRM and the Radiology/Nuclear Medicine ADPAC should investigate."
 | 
|---|
| 11 |  . D MES^XPDUTL(.RATXT)
 | 
|---|
| 12 |  . Q
 | 
|---|
| 13 |  S RATXT(1)=" "
 | 
|---|
| 14 |  S RATXT(2)="Add Exam Statuses with an Imaging Type of 'Mammography'."
 | 
|---|
| 15 |  S RATXT(3)="Exam Statuses created: Cancelled; Waiting For Exam; Called"
 | 
|---|
| 16 |  S RATXT(4)="For Exam; Examined; Transcribed and Complete."
 | 
|---|
| 17 |  D MES^XPDUTL(.RATXT) K RATXT
 | 
|---|
| 18 |  ;-------------------- Exam Status: Cancelled --------------------------
 | 
|---|
| 19 |  I '($D(^RA(72,"AA","MAMMOGRAPHY",0))\10) D  ; Cancelled not filed.
 | 
|---|
| 20 |  . S RAFDA(72,"+1,",.01)="CANCELLED",RAFDA(72,"+1,",3)=0
 | 
|---|
| 21 |  . S RAFDA(72,"+1,",6)="y",RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 22 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 23 |  . I $D(RAERR("DIERR")) D ERMSG72("CANCELLED")
 | 
|---|
| 24 |  . Q
 | 
|---|
| 25 |  ;------------------ Exam Status: Waiting For Exam ---------------------
 | 
|---|
| 26 |  I '($D(^RA(72,"AA","MAMMOGRAPHY",1))\10) D  ; Waiting For Xam not filed.
 | 
|---|
| 27 |  . K RAERR,RAFDA
 | 
|---|
| 28 |  . S RAFDA(72,"+1,",.01)="WAITING FOR EXAM",RAFDA(72,"+1,",3)=1
 | 
|---|
| 29 |  . S RAFDA(72,"+1,",5)="Y",RAFDA(72,"+1,",6)="y"
 | 
|---|
| 30 |  . S RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 31 |  . F RAI=.31,.32,.33,.34,.35,.36,.37,.38,.39,.311,.312,.313,.314,.315 S RAFDA(72,"+1,",RAI)="y"
 | 
|---|
| 32 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 33 |  . I $D(RAERR("DIERR")) D ERMSG72("WAITING FOR EXAM")
 | 
|---|
| 34 |  . Q
 | 
|---|
| 35 |  ;------------------ Exam Status: Called For Exam ----------------------
 | 
|---|
| 36 |  I '$$XIST("CALLED FOR EXAM",RAITY) D  ; Called For Exam not filed.
 | 
|---|
| 37 |  . K RAERR,RAFDA
 | 
|---|
| 38 |  . S RAFDA(72,"+1,",.01)="CALLED FOR EXAM",RAFDA(72,"+1,",6)="y"
 | 
|---|
| 39 |  . S RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 40 |  . F RAI=.11,.21 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 41 |  . F RAI=.31,.32,.33,.34,.35,.36,.37,.38,.39,.311,.312,.313,.314,.315 S RAFDA(72,"+1,",RAI)="y"
 | 
|---|
| 42 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 43 |  . I $D(RAERR("DIERR")) D ERMSG72("CALLED FOR EXAM")
 | 
|---|
| 44 |  . Q
 | 
|---|
| 45 |  ;------------------ Exam Status: Examined -----------------------------
 | 
|---|
| 46 |  I '$$XIST("EXAMINED",RAITY) D  ; Examined not filed.
 | 
|---|
| 47 |  . K RAERR,RAFDA
 | 
|---|
| 48 |  . S RAFDA(72,"+1,",.01)="EXAMINED",RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 49 |  . F RAI=.11,.13,.14 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 50 |  . F RAI=.21,.23,.24,.26 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 51 |  . F RAI=.31,.32,.33,.34,.35,.36,.37,.38,.39,.311,.312,.313,.314,.315 S RAFDA(72,"+1,",RAI)="y"
 | 
|---|
| 52 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 53 |  . I $D(RAERR("DIERR")) D ERMSG72("EXAMINED")
 | 
|---|
| 54 |  . Q
 | 
|---|
| 55 |  ;------------------ Exam Status: Transcribed --------------------------
 | 
|---|
| 56 |  I '$$XIST("TRANSCRIBED",RAITY) D  ; Transcribed not filed.
 | 
|---|
| 57 |  . K RAERR,RAFDA
 | 
|---|
| 58 |  . S RAFDA(72,"+1,",.01)="TRANSCRIBED",RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 59 |  . F RAI=.11,.12,.13,.14,.15,.16,.111 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 60 |  . F RAI=.22,.25 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 61 |  . F RAI=.31,.32,.33,.34,.35,.36,.37,.38,.39,.311,.312,.313,.314,.315 S RAFDA(72,"+1,",RAI)="y"
 | 
|---|
| 62 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 63 |  . I $D(RAERR("DIERR")) D ERMSG72("TRANSCRIBED")
 | 
|---|
| 64 |  . Q
 | 
|---|
| 65 |  ;------------------ Exam Status: Complete -----------------------------
 | 
|---|
| 66 |  I '($D(^RA(72,"AA","MAMMOGRAPHY",9))\10) D  ; Complete not filed.
 | 
|---|
| 67 |  . K RAERR,RAFDA
 | 
|---|
| 68 |  . S RAFDA(72,"+1,",.01)="COMPLETE"
 | 
|---|
| 69 |  . S RAFDA(72,"+1,",3)=9,RAFDA(72,"+1,",7)=RAITY
 | 
|---|
| 70 |  . F RAI=.11,.12,.13,.14,.15,.16 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 71 |  . F RAI=.111,.112,.116 S RAFDA(72,"+1,",RAI)="Y"
 | 
|---|
| 72 |  . F RAI=.31,.32,.33,.34,.35,.36,.37,.38,.39,.311,.312,.313,.314 S RAFDA(72,"+1,",RAI)="y"
 | 
|---|
| 73 |  . D UPDATE^DIE("","RAFDA","","RAERR")
 | 
|---|
| 74 |  . I $D(RAERR("DIERR")) D ERMSG72("COMPLETE")
 | 
|---|
| 75 |  . Q
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | ERMSG72(X) ; Display error message when an Exam Status is not filed.
 | 
|---|
| 79 |  N Y
 | 
|---|
| 80 |  S Y(1)=" ",Y(2)="Error filing `"_X_"' in the Examination Status (72) file.",Y(3)="IRM and the Radiology/Nuclear Medicine ADPAC should investigate."
 | 
|---|
| 81 |  D MES^XPDUTL(.Y)
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 | XIST(X,Y) ; Check if an Exam Status for a particular imaging type exists
 | 
|---|
| 85 |  ; in file 72.
 | 
|---|
| 86 |  ; Input: X-Exam Status, Y-imaging type (pointer)
 | 
|---|
| 87 |  N I,XIT S (I,XIT)=0
 | 
|---|
| 88 |  F  S I=$O(^RA(72,"B",X,I)) Q:I'>0  D  Q:XIT
 | 
|---|
| 89 |  . S:$P($G(^RA(72,I,0)),"^",7)=Y XIT=1
 | 
|---|
| 90 |  . Q
 | 
|---|
| 91 |  Q XIT
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 | EN2 ; For the HL7 Application Parameter (file 771) 'Radiology',
 | 
|---|
| 94 |  ; change the 'ORU' HL7 Message processing routine from RAHLO
 | 
|---|
| 95 |  ; to the new bridge routine RAHLBKVR.
 | 
|---|
| 96 |  N %,D,D0,DA,DI,DIC,DIE,DQ,DR,RA771,RA77106,RATXT,X
 | 
|---|
| 97 |  S RA771=+$$FIND1^DIC(771,"","X","RADIOLOGY")
 | 
|---|
| 98 |  I 'RA771 D  Q  ; Can't find 'Radiology' in file 771.  Add to 771
 | 
|---|
| 99 |  . S RATXT(1)=""
 | 
|---|
| 100 |  . S RATXT(2)="Adding 'Radiology' to the HL7 Application Parameter file."
 | 
|---|
| 101 |  . S RATXT(3)="Set the 'ORU' HL7 Message Processing Routine field to the"
 | 
|---|
| 102 |  . S RATXT(4)="new bridge routine RAHLBKVR.  Set the 'QRY' HL7 Message"
 | 
|---|
| 103 |  . S RATXT(5)="Processing Routine field to the new bridge routine"
 | 
|---|
| 104 |  . S RATXT(6)="RAHLBKVQ." D MES^XPDUTL(.RATXT)
 | 
|---|
| 105 |  . N RA771,RAFDA S RAFDA(771,"+1,",.01)="RADIOLOGY"
 | 
|---|
| 106 |  . S RAFDA(771,"+1,",2)="INACTIVE"
 | 
|---|
| 107 |  . S RAFDA(771.06,"+2,+1,",.01)="ACK"
 | 
|---|
| 108 |  . S RAFDA(771.06,"+3,+1,",.01)="ORF"
 | 
|---|
| 109 |  . S RAFDA(771.06,"+4,+1,",.01)="ORU"
 | 
|---|
| 110 |  . S RAFDA(771.06,"+4,+1,",1)="RAHLBKVR"
 | 
|---|
| 111 |  . S RAFDA(771.06,"+5,+1,",.01)="QRY"
 | 
|---|
| 112 |  . S RAFDA(771.06,"+5,+1,",1)="RAHLBKVQ"
 | 
|---|
| 113 |  . D UPDATE^DIE("E","RAFDA")
 | 
|---|
| 114 |  . S RA771=+$$FIND1^DIC(771,"","X","RADIOLOGY")
 | 
|---|
| 115 |  . I RA771 D  Q
 | 
|---|
| 116 |  .. S ^HL(771,RA771,"EC")="~|\&" ; hard set the encoding char field
 | 
|---|
| 117 |  .. S ^HL(771,RA771,"FS")="^" ; hard set the field seperator field
 | 
|---|
| 118 |  .. Q
 | 
|---|
| 119 |  . ; Display error message, 'RADIOLOGY' was not filed!
 | 
|---|
| 120 |  . K RATXT S RATXT(1)=""
 | 
|---|
| 121 |  . S RATXT(2)="'RADIOLOGY' could not be added as a HL7 Application"
 | 
|---|
| 122 |  . S RATXT(3)="Parameter.  IRM should investigate." D MES^XPDUTL(.RATXT)
 | 
|---|
| 123 |  . Q
 | 
|---|
| 124 |  ; The 'RADIOLOGY' entry exists, make sure the right fields are
 | 
|---|
| 125 |  ; populated with the right data.
 | 
|---|
| 126 |  S:$G(^HL(771,RA771,"EC"))'="~|\&" ^("EC")="~|\&" ; set encoding chars
 | 
|---|
| 127 |  S:$G(^HL(771,RA771,"FS"))'="~|\&" ^("FS")="^" ; set field seperator
 | 
|---|
| 128 |  S RA77106("ACK")=$$FIND("ACK")
 | 
|---|
| 129 |  I 'RA77106("ACK") D ADD("ACK")
 | 
|---|
| 130 |  I RA77106("ACK") D
 | 
|---|
| 131 |  . N RAFDA
 | 
|---|
| 132 |  . S RAFDA(771.06,RA77106("ACK")_","_RA771_",",1)="@" ;no processing rou
 | 
|---|
| 133 |  . D FILE^DIE("","RAFDA","")
 | 
|---|
| 134 |  . Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 |  S RA77106("ORF")=$$FIND("ORF")
 | 
|---|
| 137 |  I 'RA77106("ORF") D ADD("ORF")
 | 
|---|
| 138 |  I RA77106("ORF") D
 | 
|---|
| 139 |  . N RAFDA
 | 
|---|
| 140 |  . S RAFDA(771.06,RA77106("ORF")_","_RA771_",",1)="@" ;no processing rou
 | 
|---|
| 141 |  . D FILE^DIE("","RAFDA","")
 | 
|---|
| 142 |  . Q
 | 
|---|
| 143 |  S RA77106("ORU")=+$$FIND1^DIC(771.06,","_RA771_",","X","ORU")
 | 
|---|
| 144 |  I 'RA77106("ORU") D ADD("ORU")
 | 
|---|
| 145 |  I RA77106("ORU") D
 | 
|---|
| 146 |  . N RAFDA S RAFDA(771.06,RA77106("ORU")_","_RA771_",",1)="RAHLBKVR"
 | 
|---|
| 147 |  . D FILE^DIE("","RAFDA","")
 | 
|---|
| 148 |  . Q
 | 
|---|
| 149 |  S RA77106("QRY")=+$$FIND1^DIC(771.06,","_RA771_",","X","QRY")
 | 
|---|
| 150 |  I 'RA77106("QRY") D ADD("QRY")
 | 
|---|
| 151 |  I RA77106("QRY") D
 | 
|---|
| 152 |  . N RAFDA S RAFDA(771.06,RA77106("QRY")_","_RA771_",",1)="RAHLBKVQ"
 | 
|---|
| 153 |  . D FILE^DIE("","RAFDA","")
 | 
|---|
| 154 |  . Q
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 | ADD(X) ; Add the HL7 Message to the 'RADIOLOGY' entry on the HL7 Application
 | 
|---|
| 157 |  ; Parameter file.
 | 
|---|
| 158 |  ; Input: 'X'-the HL7 Message we are trying to add
 | 
|---|
| 159 |  ; Sets: RA77106('X')=the ien of the newly added HL7 Message 
 | 
|---|
| 160 |  N RAFDA S RAFDA(771.06,"+1,"_RA771_",",.01)=X
 | 
|---|
| 161 |  D UPDATE^DIE("E","RAFDA") S RA77106(X)=$$FIND(X)
 | 
|---|
| 162 |  Q
 | 
|---|
| 163 | FIND(X) ; Find the ien of the various HL7 Messages used by our HL7 Application
 | 
|---|
| 164 |  ; Input: 'X'-the HL7 Message we are trying to find.
 | 
|---|
| 165 |  ; Output: ien of the HL7 Message entry (if exists), else 0
 | 
|---|
| 166 |  Q +$$FIND1^DIC(771.06,","_RA771_",","X",X)
 | 
|---|