Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

Location:
FOIAVistA/tag/r
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • FOIAVistA/tag/r/RADIOLOGY_NUCLEAR_MEDICINE-RA/RAHLO1.m

    r628 r636  
    11RAHLO1 ;HIRMFO/GJC/BNT-File rpt (data from bridge program) ;6/25/04  11:49
    2  ;;5.0;Radiology/Nuclear Medicine;**4,5,12,17,21,27,48,55,66,87,84**;Mar 16, 1998;Build 13
    3  ; 11/15/2007 BAY/KAM RA*5*87 Rem Call 216332 Correct UNDEF on null dx code
     2 ;;5.0;Radiology/Nuclear Medicine;**4,5,12,17,21,27,48,55,66**;Mar 16, 1998
    43 ; 09/07/2005 108405 - KAM/BAY Allow Radiology to accept dx codes from Talk Technology
    5  ; 09/29/2005 114302 KAM/BAY Code Added to trigger alert on 2ndary dx
    6  ;
    7  ;Integration Agreements
    8  ;----------------------
    9  ;DIE(10018); ,FILE^DIE(2053); IX^DIK(10013); CREATE^WVRALINK(4793); $$NOW^XLFDT(10103)
    10  ;EN^XUSHSHP(10045)
    11  ;
     4 ; 09/29/2005 114302 KAM/BAY Code Added to trigger alert on 2ndary dx
     5 ; This routine uses the following IA:
     6 ; #4793  - ^WVRALINK         (private)
    127FILE ;Create Entry in File 74 and File Data
    138 I '$D(ZTQUEUED) N ZTQUEUED S ZTQUEUED="1^dummy to suppress screen displays in UP2^RAUTL1 and elsewhere"
     
    1712 N:'$D(RAPRTSET) RAPRTSET N:'$D(RAMEMARR) RAMEMARR
    1813 D EN2^RAUTL20(.RAMEMARR) ; 04/30/99 always recalculate RAPRTSET
    19  ; If the report (stub/real) exists, unverify the existing report... Else create a new report
    20  I RARPT,$D(^RARPT(RARPT,0)) S RASAV=RARPT D  S RARPT=RASAV K RASAV Q:$D(RAERR) G LOCK1
     14 ; If rpt (either stub or real) exists, skip creating a new file 74 entry
     15 I RARPT,$D(^RARPT(RARPT,0)) S RASAV=RARPT D FILETST^RAHLO4 Q:$D(RAERR)  D  S RARPT=RASAV K RASAV G LOCK1
    2116 . ; must save off RARPT, RAVERF and other RA* variables because
    2217 . ; they are being killed off somewhere in the 'Unverify A Report'
    23  . ; option. 'Unverify A Report' does lock the the report record in file 74!
     18 . ; option.
    2419 . N RADFN,RADTI,RACNI,RARPTSTS,RASSN,RADATE,RALONGCN,RAVERF
    2520 . ; if report isn't a stub report, then consider it being edited
     
    3025 . K ^RARPT(RARPT,"I"),^("R"),^("H")
    3126 . Q
    32  ; New report logic @NEW1
     27 I RAPRTSET L +^RADPT(RADFN,"DT",RADTI):0 G:$T NEW1 S RAERR="ANOTHER USER IS CURRENTLY EDITING THIS PRINTSET. TRY LATER." D KVAR Q
    3328NEW1 S I=$P(^RARPT(0),"^",3)
    34  ;since this is a new report (not linked to an exam), directly lock the new record *1 lR*
    35 LOCK S I=I+1 L +^RARPT(I):1 G:'$T LOCK I ($D(^RARPT(I))#2) L -^RARPT(I) G LOCK
     29LOCK S I=I+1 L +^RARPT(I):1 I '$T!($D(^RARPT(I)))!($D(^RARPT("B",I))) L -^RARPT(I) G LOCK
    3630 S ^RARPT(I,0)=RALONGCN,RARPT=I,^(0)=$P(^RARPT(0),"^",1,2)_"^"_I_"^"_($P(^(0),"^",4)+1)
    3731 ;if case is member of a print set, then create sub-recs for file #74
     
    3933 I '$D(RARPTN) N RARPTN S RARPTN=RALONGCN
    4034 N RAXIT D PTR^RARTE2 ;create corresponding subrecs in ^RARPT()
    41  ;
    42  ;if RAERR unlock the report record (locked @LOCK), kill vars, & exit
    43  I $D(RAERR) D LOCKR^RAHLTCPU(.RAERR,1) D KVAR Q  ; *1 uR*
    44  ;
     35 I $D(RAERR) L -^RADPT(RADFN,"DT",RADTI) D KVAR Q  ;unlck & clear vars
    4536LOCK1 I $D(RAESIG) S X=RAESIG,X1=$G(RAVERF),X2=RARPT D EN^XUSHSHP S RAESIG=X
    4637 K DA,DIE,DQ,DR S DA=RARPT,DIE="^RARPT("
     
    5344 S DR=DR_";8////"_$S($D(RAEDIT):"",1:RADATE) ; reported date
    5445 S DR=DR_";9////"_$S($G(RAVERF)&(RARPTSTS="V"):RAVERF,1:"") ; v'fying phys
    55  S:$L($G(RATELENM)) DR=DR_";9.1////"_RATELENM ;Teleradiologist name - Patch 84
    56  S:$L($G(RATELEPI)) DR=DR_";9.2////"_RATELEPI ;Teleradiologist NPI  - Patch 84
    5746 S DR=DR_";11////"_$S($G(RATRANSC):RATRANSC,$G(RAVERF):RAVERF,1:"") ; transcriptionist
    5847 I $G(RAVERF),(RARPTSTS="V") S DR=DR_";17////"_$G(^TMP("RARPT-REC",$J,RASUB,"RAWHOCHANGE")) ;status changed to 'verified' by
     
    6352 S $P(^RARPT(RARPT,0),"^",10)=$S($D(RAESIG)&(RARPTSTS="V"):RAESIG,1:"") ; hard set because Elec Sig Code may contain a semi-colon which causes errors in DIE
    6453 D ^DIE K DA,DR
    65  ;don't file a Pri. Dx code for teleradiology reports in the released status (P84v11 bus. rule)
    66  S RARELTEL=$S(($D(RATELE)#2)&(RARPTSTS="R"):1,1:"")
    67  ;
    68  ; 02/08/2008 GJC replaced $G w/($D(RADX)#2) p84
    69  ; 11/15/2007 BAY/KAM RA*5*87 Rem Call 216332 Changed next line to $G
    7054 ; 09/07/2005 108405 KAM/BAY Removed('$D(RADENDUM)#2) from next line
    71  I ($D(RADX)#2),RARELTEL="" D  Q:($D(RAERR))#2
    72  .;now a silent FM call w/p84 due to xref being killed when stuffing an identical Dx code
    73  .;as the one already on file.
    74  .N RAFDA,RAIENS S RAIENS=RACNI_","_RADTI_","_RADFN_","
    75  .S RAFDA(70.03,RAIENS,13)=RADX
    76  .;lock the exam record, if the lock fails unlock the report record (locked @LOCK) & quit
    77  .D LOCKX^RAHLTCPU(.RAERR) ;*1 lE*
    78  .I ($D(RAERR)#2) D LOCKR^RAHLTCPU(.RAERR,1) Q  ;*1 uR*
    79  .K RAERR D FILE^DIE(,"RAFDA","RAERR") D LOCKX^RAHLTCPU(.RAERR,1) ;*1 uE*
    80  .I ($D(RAERR("DIERR"))#2) D  Q
    81  ..;set the error dialog; unlock the report (locked @LOCK) *1 uR*
    82  ..D LOCKR^RAHLTCPU(.RAERR,1) S RAERR=$G(RAERR("DIERR",1,"TEXT",1))
    83  ..Q
    84  .S:$P(^RA(78.3,+RADX,0),"^",4)="y" RAAB=1
    85  .Q
    86  ;
    87  K RARELTEL
     55 I $D(RADX) D
     56 . K DIE,DA,DR S DA=RACNI,DA(1)=RADTI,DA(2)=RADFN
     57 . S DIE="^RADPT("_DA(2)_",""DT"","_DA(1)_",""P"","
     58 . S DR="13////"_RADX D ^DIE K DIE,DA,DR
     59 . S:$P(^RA(78.3,+RADX,0),"^",4)="y" RAAB=1
     60 . Q
    8861 ; 09/29/2005 114302 KAM/BAY Code Added to trigger alert on 2ndary dx
    8962 I $D(RASECDX) D
     
    9871 . Q:'$G(DR)
    9972 . S DA=RACNI,DA(1)=RADTI,DA(2)=RADFN
    100  . D LOCKX^RAHLTCPU(.RAERR) ;*2 lE*
    10173 . S DIE="^RADPT("_DA(2)_",""DT"","_DA(1)_",""P"","
    10274 . D ^DIE K DIE,DA,DR
    103  . D LOCKX^RAHLTCPU(.RAERR,1) ;*2 uE*
    10475 . Q
    10576 ;
     
    146117 F  S RA7=$O(RAMEMARR(RA7)) Q:RA7=""  I RACNISAV'=RA7 S RACNI=RA7 D UPMEM^RAHLO4 I $D(RASECDX),('$D(RADENDUM)#2) D SECDX^RAHLO2
    147118 S RACNI=RACNISAV
     119 L -^RADPT(RADFN,"DT",RADTI) ;unlock after pce 17 is set in all cases of this printset
    148120 ;Update Activity Log
    149 UPACT S DA=RARPT,DIE="^RARPT(",DR="100///""NOW""",DR(2,74.01)="2////"_$S(RARPTSTS="V":"V",$D(RAEDIT):"E",1:"I")_";3////"_$S($G(RAVERF):RAVERF,$G(RATRANSC):RATRANSC,1:"") D ^DIE K DA,DR,DE,DQ,DIE
     121UPACT S DA=RARPT,DIE="^RARPT(",DR="100///""NOW""",DR(2,74.01)="2////"_$S(RARPTSTS="V":"V",$D(RAEDIT):"E",1:"I")_";3////"_$S($G(RATRANSC):RATRANSC,$G(RAVERF):RAVERF,1:"") D ^DIE K DA,DR,DE,DQ,DIE
    150122 ; use ix^dik to kill before setting xrefs
    151123 S DA=RARPT,DIK="^RARPT(",RAQUEUED=1 D IX^DIK
    152  L -^RARPT(RARPT) ;(1 uR) conventionally unlock the report locked @LOCK
    153  ;
    154  ;If verified, update report & exam statuses; else, just update exam status
    155  ;Note: be careful; exam locks are executed within UP1^RAUTL1!
     124 ; if verfd, update rpt & exam statuses; else, just update exam status
    156125 I $D(RAMDV),RAMDV'="" D:RARPTSTS="V" UPSTAT^RAUTL0 D:RARPTSTS'="V" UP1^RAUTL1
    157  D:'$D(RAERR)&($G(^TMP("RARPT-REC",$J,RASUB,"VENDOR"))'="KURZWEIL") GENACK^RAHLTCPB ; generate 'ACK' message
    158  ;
    159 PACS ;If there are subscribers to RA RPT xxx events broadcast ORU mesages to those subscribers
    160  ;via TASK^RAHLO4. If VOICE DICTATION AUTO-PRINT (#26) field is set to 'Y' print the report to
    161  ;the printer defined in the REPORT PRINTER NAME (#10) field via VOICE^RAHLO4.
    162  I ($P(^RARPT(RARPT,0),U,5)="V")!($P(^(0),U,5)="R") D TASK^RAHLO4,VOICE^RAHLO4
    163  ;
     126 L -^RARPT(RARPT) D:'$D(RAERR)&($G(^TMP("RARPT-REC",$J,RASUB,"VENDOR"))'="KURZWEIL") GENACK^RAHLTCPB ; generate 'ACK' message
     127 ; line pacs is for 2 tasks: hl7 msg'g  &  voice verified rpt printout
     128PACS I ($P(^RARPT(RARPT,0),U,5)="V")!($P(^(0),U,5)="R") D TASK^RAHLO4,VOICE^RAHLO4
    164129KVAR K RAAB,RAEDIT,RAESIG,RAQUEUED,RARPT,RAHIST
    165130 Q
    166  ;
Note: See TracChangeset for help on using the changeset viewer.