| 1 | RAHLRS ;HIRMFO/CRT/PDW - Resend HL7 messages for selected cases ;Mar 16, 1998
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;**25,54,60,71,82**;Mar 16, 1998;Build 8
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Utility to RESEND HL7 messages
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;;02/14/2006 BAY/KAM RA*5*71 Add ability to update exam data to V/R
 | 
|---|
| 7 |  N RACNI,RADFN,RADTI,RARPT,X
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  D SETVARS Q:$G(RAIMGTY)=""
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  F  S X=$$RACNLU(.RADFN,.RADTI,.RACNI) Q:+X'>0  D  Q:QUIT<0
 | 
|---|
| 12 |  .D RESEND(RADFN,RADTI,RACNI,.QUIT)
 | 
|---|
| 13 |  Q
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | RACNLU(RADFN,RADTI,RACNI) ; Select Case Number
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  N RANOSCRN S RANOSCRN="" ; Don't limit cases to current Imaging Type
 | 
|---|
| 18 |  S (RADFN,RADTI,RADFN)=""
 | 
|---|
| 19 |  D ^RACNLU
 | 
|---|
| 20 |  Q X
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | RESEND(RADFN,RADTI,RACNI,QUIT) ; re-send exam message(s) to HL7 subscribers
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  N RAED
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  S QUIT=0
 | 
|---|
| 27 |  I '$D(DT) D ^%DT S DT=Y
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  S RAED=$$RAED(RADFN,RADTI,RACNI)
 | 
|---|
| 30 |  S QUIT=$$OK(RADFN,RADTI,RACNI)
 | 
|---|
| 31 |  I QUIT>0 D
 | 
|---|
| 32 |  .I RAED[",REG," D
 | 
|---|
| 33 |  ..D EN^DDIOL("Re-sending 'EXAM REGISTERD' HL7 message...",,"!!,?6")
 | 
|---|
| 34 |  ..D REG^RAHLRPC
 | 
|---|
| 35 |  .I RAED[",CANCEL," D
 | 
|---|
| 36 |  ..D EN^DDIOL("Re-sending 'EXAM CANCELLED' HL7 message...",,"!,?6")
 | 
|---|
| 37 |  ..D CANCEL^RAHLRPC
 | 
|---|
| 38 |  .I RAED[",EXAM," D
 | 
|---|
| 39 |  ..S $P(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),"^",30)="" ;Reset sent flag
 | 
|---|
| 40 |  ..D EN^DDIOL("Re-sending 'EXAMINED' HL7 message...",,"!,?6")
 | 
|---|
| 41 |  ..N RAEXMDUN D 1^RAHLRPC ;*60 Newed RAEXMDUN to prevent variable leak
 | 
|---|
| 42 |  .I RAED[",RPT," D
 | 
|---|
| 43 |  ..D EN^DDIOL("Re-sending 'REPORT VERIFIED' HL7 message...",,"!,?6")
 | 
|---|
| 44 |  ..D RPT^RAHLRPC
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | RAED(RADFN,RADTI,RACNI) ; identify correct ^RAHLRPC entry point(s)
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  N RASTAT,RAIMTYP,RAORD,RETURN,RARPST
 | 
|---|
| 50 |  S (RARPST,RASTAT)=""
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  S RETURN=",REG,"
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  S RASTAT=$$GET1^DIQ(70.03,RACNI_","_RADTI_","_RADFN,3,"I")
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  S RAIMTYP=$$GET1^DIQ(72,+RASTAT,7)
 | 
|---|
| 57 |  S RAORD=$$GET1^DIQ(72,+RASTAT,3)
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S:RAORD=0 RETURN=RETURN_"CANCEL,"
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I $$GET1^DIQ(72,+RASTAT,8)="YES" D  ; Generate Examined HL7 Message
 | 
|---|
| 62 |  .S RETURN=RETURN_"EXAM,"
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  I RETURN'[",EXAM," D
 | 
|---|
| 65 |  .; also check previous statuses for 'Generate Examined HL7 Message'
 | 
|---|
| 66 |  .F  S RAORD=$O(^RA(72,"AA",RAIMTYP,RAORD),-1) Q:+RAORD<1  D  Q:RETURN[",EXAM,"
 | 
|---|
| 67 |  ..S RASTAT=$O(^RA(72,"AA",RAIMTYP,RAORD,0))
 | 
|---|
| 68 |  ..I $$GET1^DIQ(72,+RASTAT,8)="YES" S RETURN=RETURN_"EXAM,"
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  I RARPT]"" D  ; Check if Verified Report exists
 | 
|---|
| 71 |  .S RARPST=$$GET1^DIQ(74,RARPT,5,"I")
 | 
|---|
| 72 |  .I RARPST="V" S RETURN=RETURN_"RPT,"
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  Q RETURN
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | OK(RADFN,RADTI,RACNI) ; Get User to confirm continue
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  N X,RAEXST
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  S RAEXST=$$GET1^DIQ(70.03,RACNI_","_RADTI_","_RADFN,3)
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 |  S X="",$P(X,"=",70)=""
 | 
|---|
| 83 |  D EN^DDIOL(X,"","!?5")
 | 
|---|
| 84 |  S DIR("A")="Re-send all HL7 messages for this '"_RAEXST_"' case?"
 | 
|---|
| 85 |  S DIR(0)="Y",DIR("B")="YES" D ^DIR
 | 
|---|
| 86 |  I Y="^" Q -1
 | 
|---|
| 87 |  Q Y
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 | SETVARS ; Setup key Rad/Nuc Med variables
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  I $O(RACCESS(DUZ,""))="" D SETVARS^RAPSET1(0)
 | 
|---|
| 92 |  Q:'($D(RACCESS(DUZ))\10)  ; user does not have location access
 | 
|---|
| 93 |  I $G(RAIMGTY)="" D SETVARS^RAPSET1(1) K:$G(RAIMGTY)="" XQUIT
 | 
|---|
| 94 |  Q
 | 
|---|