[613] | 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
|
---|