Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: MAGNUTL2

MAGNUTL2.m

Go to the documentation of this file.
  1. MAGNUTL2 ;WOIFO/NST - VistRad subroutines for RPC calls ; NOV 19, 2018@1:42PM
  1. ;;3.0;IMAGING;**201,221**;Dec 02, 2009;Build 163
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;; +---------------------------------------------------------------+
  1. ;; | Property of the US Government. |
  1. ;; | No permission to copy or redistribute this software is given. |
  1. ;; | Use of unreleased versions of this software requires the user |
  1. ;; | to execute a written test agreement with the VistA Imaging |
  1. ;; | Development Office of the Department of Veterans Affairs, |
  1. ;; | telephone (301) 734-0100. |
  1. ;; | |
  1. ;; | The Food and Drug Administration classifies this software as |
  1. ;; | a medical device. As such, it may not be changed in any way. |
  1. ;; | Modifications to this software may result in an adulterated |
  1. ;; | medical device under 21CFR820, the use of which is considered |
  1. ;; | to be a violation of US Federal Statutes. |
  1. ;; +---------------------------------------------------------------+
  1. ;;
  1. Q
  1. ;
  1. ; Subroutines for pre-cache exams images
  1. ; Entry Points:
  1. ; PRECACHE -- Subroutine call via Protocol trigger
  1. ;
  1. PRECACHE ; Entry point from HL7 processing, to initiate precache at
  1. ; time of radiology "Register Patient for Exam" RA REG protocol
  1. ; Do not process if the exam is being Canceled (RACANC true)
  1. ;
  1. Q:'$$GET^XPAR("ALL","MAG PRECACHE RAD REG ENABLED",,"I") ; IA# 2263
  1. ;
  1. N RET S RET=""
  1. I '($G(RADFN)&$G(RADTI)&$G(RACNI)&'$G(RACANC)) Q ; Required vars
  1. ; MAGJEX2 will call CACHE^MAGNUTL2 after collecting all images to be precached - "C" is a new action
  1. D PRIOR1^MAGJEX2(.RET,"C"_U_RADFN_U_RADTI_U_RACNI)
  1. D CPTWI(RADFN,RADTI,RACNI) ; create work item with CPT code and patient treating facilities
  1. Q
  1. ;
  1. CACHE(RARPT) ; cache this case's images
  1. ; Input: RARPT: IEN in RAD/NUC MED REPORTS file (#74)
  1. ;
  1. N MAGOUT
  1. D NWRKITEM(.MAGOUT,RARPT)
  1. Q 1
  1. ;
  1. NWRKITEM(MAGOUT,RARPT) ;Create New MAG WORK ITEM
  1. ; RARPT - IEN in RAD/NUC MED REPORTS file (#74)
  1. ;
  1. N CRTUSR,CRTAPP,DFN,ICN,J,MAGCTXID,MSGTAGS,TYPE,SUBTYPE,STATUS,PLACEID,PRIORITY,SSEP
  1. ;
  1. S SSEP="`"
  1. S MAGCTXID=$$RACPRS^MAGNU003(RARPT) ; Radiology CPRS context
  1. I MAGCTXID="" S MAGOUT=-20_SSEP_"CPRS context is blank"
  1. S DFN=$$GET1^DIQ(74,RARPT,2,"I")
  1. ;
  1. S PLACEID=DUZ(2)
  1. ;
  1. ; TAGS
  1. S J=0
  1. S J=J+1,MSGTAGS(J)="contextID`"_$TR(MAGCTXID,"^","~") ;CPRS Report Context ID and translate ^ to ~
  1. S:DFN J=J+1,MSGTAGS(J)="patientDfn`"_DFN
  1. I $L($T(GETICN^MPIF001)) D
  1. . S ICN=$$GETICN^MPIF001(DFN)
  1. . S:ICN>1 J=J+1,MSGTAGS(J)="patientIcn`"_ICN
  1. . Q
  1. S J=J+1,MSGTAGS(J)="registration`1" ; precache flag
  1. ;
  1. S TYPE="PRECACHE"
  1. S SUBTYPE="REGISTRATION"
  1. S STATUS="New"
  1. S PRIORITY=0
  1. ;
  1. S PLACEID=$$STA^XUAF4(PLACEID) ;IA # 2171
  1. ;
  1. S CRTUSR=DUZ ; CREATED BY
  1. ;
  1. S CRTAPP="PRECACHE" ; CAPTURE APPLICATION
  1. ;
  1. D CRTITEM^MAGVIM01(.MAGOUT,TYPE,SUBTYPE,STATUS,PLACEID,PRIORITY,.MSGTAGS,CRTUSR,CRTAPP)
  1. Q
  1. ;
  1. CPTWI(RADFN,RADTI,RACNI) ; create work item with CPT code and patient treating facilities
  1. N MAGCPT,MAGDATA,MAGI,MAGOUT,MAGRET
  1. N CRTUSR,CRTAPP,ICN,J,MSGTAGS,TYPE,SUBTYPE,STATUS,PLACEID,PRIORITY,SSEP
  1. ;
  1. K ^TMP($J,"MAGRAEX")
  1. D GETEXAM2^MAGJUTL1(RADFN,RADTI,RACNI,"",.MAGRET) ; Get Exam Data
  1. S MAGDATA=$G(^TMP($J,"MAGRAEX",1,1))
  1. K ^TMP($J,"MAGRAEX")
  1. S MAGCPT=$P(MAGDATA,U,17)
  1. I 'MAGCPT Q ; No CPT code found
  1. ;
  1. ; Get treating facilities
  1. D FACLIST^MAGJLST1(.MAGOUT,RADFN)
  1. I MAGOUT(0)'>0 Q ; No treating facilities found
  1. ;
  1. S SSEP="`"
  1. S PLACEID=DUZ(2)
  1. ;
  1. ; TAGS
  1. S J=0
  1. S J=J+1,MSGTAGS(J)="patientDfn`"_RADFN
  1. I $L($T(GETICN^MPIF001)) D
  1. . S ICN=$$GETICN^MPIF001(RADFN)
  1. . S:ICN>1 J=J+1,MSGTAGS(J)="patientIcn`"_ICN
  1. . Q
  1. ;
  1. S MAGI=0
  1. F S MAGI=$O(MAGOUT(MAGI)) Q:'MAGI D
  1. . S J=J+1,MSGTAGS(J)="treatingStation"_MAGI_"`"_$P(MAGOUT(MAGI),"^")
  1. . Q
  1. ;
  1. S J=J+1,MSGTAGS(J)="CPT`"_MAGCPT
  1. S J=J+1,MSGTAGS(J)="remoteprior`1" ; precache flag
  1. ;
  1. S TYPE="PRECACHE"
  1. S SUBTYPE="REMOTEPRIOR"
  1. S STATUS="New"
  1. S PRIORITY=0
  1. ;
  1. S PLACEID=$$STA^XUAF4(PLACEID) ;IA # 2171
  1. ;
  1. S CRTUSR=DUZ ; CREATED BY
  1. ;
  1. S CRTAPP="PRECACHE"
  1. ;
  1. D CRTITEM^MAGVIM01(.MAGOUT,TYPE,SUBTYPE,STATUS,PLACEID,PRIORITY,.MSGTAGS,CRTUSR,CRTAPP)
  1. Q
  1. ;
  1. GCPRSID(RARPT) ; return SITE, ICN, CPRSContextID
  1. N DFN,ICN,MAGCTXID,PLACEID
  1. ;
  1. S MAGCTXID=$$RACPRS^MAGNU003(RARPT) ; Radiology CPRS context
  1. I MAGCTXID="" Q ""
  1. S DFN=$$GET1^DIQ(74,RARPT,2,"I")
  1. ;
  1. S PLACEID=$$STA^XUAF4(DUZ(2)) ;IA # 2171
  1. ;
  1. S ICN=""
  1. S:$L($T(GETICN^MPIF001)) ICN=$$GETICN^MPIF001(DFN)
  1. Q PLACEID_"^"_DFN_"^"_ICN_"^"_$TR(MAGCTXID,"^","~")