| 1 | RAIPST5 ;HIRMFO/GJC - Post-init number five ;11/23/97  13:23
 | 
|---|
| 2 | VERSION ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | PRO101 ; Add the following protocols to file 101 iff they are new
 | 
|---|
| 5 |  ; to the Protocol (101) file: RA EXAMINED, RA RECEIVE, RA REG & RA RPT.
 | 
|---|
| 6 |  ; RA SEND ORM, RA SEND ORU, RA CANCEL & RA EVSEND OR handled in RAIPST6
 | 
|---|
| 7 |  ; Updates in accordance with DBIA: 872
 | 
|---|
| 8 |  ; Note: The third subscript of RAFDA is the field number in file 101.
 | 
|---|
| 9 |  ;       Consult a data dictionary for further information.
 | 
|---|
| 10 |  D EN1^RAIPST6 ; code for 'RA SEND ORM' & 'RA SEND ORU'.  These need to
 | 
|---|
| 11 |  ; be added first because the following protocols have the above
 | 
|---|
| 12 |  ; designated as Items: RA CANCEL, RA EXAMINED, RA REG & RA RPT.
 | 
|---|
| 13 |  ; After 'RA SEND ORM' & 'RA SEND ORU' are added in RAIPST6, we also
 | 
|---|
| 14 |  ; add 'RA CANCEL' & 'RA EVSEND OR' in RAIPST6.
 | 
|---|
| 15 | EXAMINE ; RA EXAMINED protocol
 | 
|---|
| 16 |  I '$D(^ORD(101,"B","RA EXAMINED")) D
 | 
|---|
| 17 |  . N RA101,RAFDA
 | 
|---|
| 18 |  . S RAFDA(101,"+1,",.01)="RA EXAMINED"
 | 
|---|
| 19 |  . S RAFDA(101,"+1,",1)="Rad/Nuc Med examined case"
 | 
|---|
| 20 |  . S RAFDA(101,"+1,",12)=$$PKG()
 | 
|---|
| 21 |  . S RAFDA(101,"+1,",4)="event driver"
 | 
|---|
| 22 |  . S RAFDA(101.01,"+2,+1,",.01)="RA SEND ORM"
 | 
|---|
| 23 |  . S RAFDA(101,"+1,",20)="Q"
 | 
|---|
| 24 |  . S RAFDA(101,"+1,",770.3)="ORM"
 | 
|---|
| 25 |  . S RAFDA(101,"+1,",770.6)=$$PROID()
 | 
|---|
| 26 |  . S RAFDA(101,"+1,",772)="Q"
 | 
|---|
| 27 |  . S RAFDA(101,"+1,",99)=$$TSTMP()
 | 
|---|
| 28 |  . S RAFDA(101,"+1,",770.4)="O01"
 | 
|---|
| 29 |  . D MSG("RA EXAMINED")
 | 
|---|
| 30 |  . D UPDATE^DIE("E","RAFDA")
 | 
|---|
| 31 |  . I $D(^ORD(101,"B","RA EXAMINED")) D  Q
 | 
|---|
| 32 |  .. S RA101=$O(^ORD(101,"B","RA EXAMINED",0))
 | 
|---|
| 33 |  .. K RAFDA S RAFDA(101,RA101_",",770.95)=2.1 D FILE^DIE("E","RAFDA")
 | 
|---|
| 34 |  .. S ^ORD(101,RA101,1,1,0)="This protocol is triggered whenever a Radiology/Nuclear Medicine exam"
 | 
|---|
| 35 |  .. S ^ORD(101,RA101,1,2,0)="has reached a status where GENERATE EXAMINED HL7 MSG  is Y"
 | 
|---|
| 36 |  .. S ^ORD(101,RA101,1,3,0)="at that (or at a lower) status."
 | 
|---|
| 37 |  .. S ^ORD(101,RA101,1,4,0)="This message contains all relevant information about the exam,"
 | 
|---|
| 38 |  .. S ^ORD(101,RA101,1,5,0)="including procedure, time of registration, procedure modifiers,"
 | 
|---|
| 39 |  .. S ^ORD(101,RA101,1,6,0)="patient allergies, and clinical history."
 | 
|---|
| 40 |  .. S ^ORD(101,RA101,1,0)="^^6^6^"_$$DT^XLFDT()_"^^^"
 | 
|---|
| 41 |  .. Q
 | 
|---|
| 42 |  . D ERR("RA EXAMINED")
 | 
|---|
| 43 |  . Q
 | 
|---|
| 44 | RECEIVE ; RA RECEIVE protocol
 | 
|---|
| 45 |  I '$D(^ORD(101,"B","RA RECEIVE")) D
 | 
|---|
| 46 |  . N RA101,RAFDA
 | 
|---|
| 47 |  . ; no description for this protocol
 | 
|---|
| 48 |  . S RAFDA(101,"+1,",.01)="RA RECEIVE"
 | 
|---|
| 49 |  . S RAFDA(101,"+1,",1)="Rad/NM receives order msg from OE/RR"
 | 
|---|
| 50 |  . S RAFDA(101,"+1,",12)=$$PKG()
 | 
|---|
| 51 |  . S RAFDA(101,"+1,",4)="action"
 | 
|---|
| 52 |  . S RAFDA(101,"+1,",20)="D EN1^RAO7RO(.XQORMSG)"
 | 
|---|
| 53 |  . S RAFDA(101,"+1,",99)=$$TSTMP()
 | 
|---|
| 54 |  . D MSG("RA RECEIVE")
 | 
|---|
| 55 |  . D UPDATE^DIE("E","RAFDA")
 | 
|---|
| 56 |  . Q
 | 
|---|
| 57 | REG ; RA REG protocol
 | 
|---|
| 58 |  I '$D(^ORD(101,"B","RA REG")) D
 | 
|---|
| 59 |  . N RA101,RAFDA
 | 
|---|
| 60 |  . S RAFDA(101,"+1,",.01)="RA REG"
 | 
|---|
| 61 |  . S RAFDA(101,"+1,",1)="Rad/Nuc Med exam registered"
 | 
|---|
| 62 |  . S RAFDA(101,"+1,",12)=$$PKG()
 | 
|---|
| 63 |  . S RAFDA(101,"+1,",4)="event driver"
 | 
|---|
| 64 |  . S RAFDA(101.01,"+2,+1,",.01)="RA SEND ORM"
 | 
|---|
| 65 |  . S RAFDA(101,"+1,",20)="Q"
 | 
|---|
| 66 |  . S RAFDA(101,"+1,",770.3)="ORM"
 | 
|---|
| 67 |  . S RAFDA(101,"+1,",770.6)=$$PROID()
 | 
|---|
| 68 |  . S RAFDA(101,"+1,",772)="Q"
 | 
|---|
| 69 |  . S RAFDA(101,"+1,",99)=$$TSTMP()
 | 
|---|
| 70 |  . S RAFDA(101,"+1,",770.4)="O01"
 | 
|---|
| 71 |  . D MSG("RA REG")
 | 
|---|
| 72 |  . D UPDATE^DIE("E","RAFDA")
 | 
|---|
| 73 |  . I $D(^ORD(101,"B","RA REG")) D  Q
 | 
|---|
| 74 |  .. S RA101=$O(^ORD(101,"B","RA REG",0))
 | 
|---|
| 75 |  .. K RAFDA S RAFDA(101,RA101_",",770.95)=2.1 D FILE^DIE("E","RAFDA")
 | 
|---|
| 76 |  .. S ^ORD(101,RA101,1,1,0)="This protocol is triggered whenever a Radiology/Nuclear Medicine exam is"
 | 
|---|
| 77 |  .. S ^ORD(101,RA101,1,2,0)="registered.  It executes code that creates an HL7 ORM message consisting"
 | 
|---|
| 78 |  .. S ^ORD(101,RA101,1,3,0)="of PID, ORC, OBR and OBX segments.  The message contains all relevant"
 | 
|---|
| 79 |  .. S ^ORD(101,RA101,1,4,0)="information about the exam, including procedure, time of registration,"
 | 
|---|
| 80 |  .. S ^ORD(101,RA101,1,5,0)="procedure modifiers, patient allergies, and clinical history."
 | 
|---|
| 81 |  .. S ^ORD(101,RA101,1,0)="^^5^5^"_$$DT^XLFDT()_"^^^^"
 | 
|---|
| 82 |  .. Q
 | 
|---|
| 83 |  . D ERR("RA REG")
 | 
|---|
| 84 |  . Q
 | 
|---|
| 85 | RPT ; RA RPT protocol
 | 
|---|
| 86 |  I '$D(^ORD(101,"B","RA RPT")) D
 | 
|---|
| 87 |  . N RA101,RAFDA
 | 
|---|
| 88 |  . S RAFDA(101,"+1,",.01)="RA RPT"
 | 
|---|
| 89 |  . S RAFDA(101,"+1,",1)="Rad/Nuc Med report released/verified"
 | 
|---|
| 90 |  . S RAFDA(101,"+1,",12)=$$PKG()
 | 
|---|
| 91 |  . S RAFDA(101,"+1,",4)="event driver"
 | 
|---|
| 92 |  . S RAFDA(101.01,"+2,+1,",.01)="RA SEND ORU"
 | 
|---|
| 93 |  . S RAFDA(101,"+1,",20)="Q"
 | 
|---|
| 94 |  . S RAFDA(101,"+1,",770.3)="ORU"
 | 
|---|
| 95 |  . S RAFDA(101,"+1,",770.6)=$$PROID()
 | 
|---|
| 96 |  . S RAFDA(101,"+1,",772)="Q"
 | 
|---|
| 97 |  . S RAFDA(101,"+1,",99)=$$TSTMP()
 | 
|---|
| 98 |  . S RAFDA(101,"+1,",770.4)="R01"
 | 
|---|
| 99 |  . D MSG("RA RPT")
 | 
|---|
| 100 |  . D UPDATE^DIE("E","RAFDA")
 | 
|---|
| 101 |  . I $D(^ORD(101,"B","RA RPT")) D  Q
 | 
|---|
| 102 |  .. S RA101=$O(^ORD(101,"B","RA RPT",0))
 | 
|---|
| 103 |  .. K RAFDA S RAFDA(101,RA101_",",770.95)=2.1 D FILE^DIE("E","RAFDA")
 | 
|---|
| 104 |  .. S ^ORD(101,RA101,1,1,0)="This protocol is triggered whenever a Radiology/Nuclear Medicine report"
 | 
|---|
| 105 |  .. S ^ORD(101,RA101,1,2,0)="enters into a status of Verified or Released/Not Verified.  It executes"
 | 
|---|
| 106 |  .. S ^ORD(101,RA101,1,3,0)="code that creates an HL7 ORU message consisting of PID, OBR and OBX"
 | 
|---|
| 107 |  .. S ^ORD(101,RA101,1,4,0)="segments.  The message contains relevant information about the report,"
 | 
|---|
| 108 |  .. S ^ORD(101,RA101,1,5,0)="including procedure, procedure modifiers, diagnostic code, interpreting"
 | 
|---|
| 109 |  .. S ^ORD(101,RA101,1,6,0)="physician, impression text and report text."
 | 
|---|
| 110 |  .. S ^ORD(101,RA101,1,0)="^^6^6^"_$$DT^XLFDT()_"^^"
 | 
|---|
| 111 |  .. Q
 | 
|---|
| 112 |  . D ERR("RA RPT")
 | 
|---|
| 113 |  . Q
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 | ERR(X) ; Display an error message if the protocol does not get filed into 101.
 | 
|---|
| 116 |  N TXT S TXT(1)="",TXT(2)="Protocol: '"_X_"' was not filed."
 | 
|---|
| 117 |  S TXT(3)="IRM should investigate." D MES^XPDUTL(.TXT)
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 | MSG(X) ; Display to the user the protocol being added to file 101
 | 
|---|
| 120 |  N RATXT S RATXT(1)=" ",RATXT(2)="Adding '"_X_"' to the protocol file."
 | 
|---|
| 121 |  D MES^XPDUTL(.RATXT)
 | 
|---|
| 122 |  Q
 | 
|---|
| 123 | PKG() ; Return the name of the package
 | 
|---|
| 124 |  Q "RADIOLOGY/NUCLEAR MEDICINE"
 | 
|---|
| 125 | PROID() ; Return the Processing ID data
 | 
|---|
| 126 |  Q "PRODUCTION"
 | 
|---|
| 127 | TSTMP() ; Timestamp the protocol entry with current date/time (in $H format)
 | 
|---|
| 128 |  Q $$FMTH^XLFDT($$NOW^XLFDT())
 | 
|---|