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

MAGNVQ02.m

Go to the documentation of this file.
  1. MAGNVQ02 ;WOIFO/NST - Image query by Context ; 16 Oct 2017 3:59 PM
  1. ;;3.0;IMAGING;**185**;Mar 19, 2002;Build 4525;May 01, 2013
  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. ;; | 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. ;***** Check for images by context
  1. ;
  1. ; RPC: MAGN IMAGE EXIST BY CONTEXT
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ;
  1. ; DATA - Array contexts in format
  1. ; e.g. 'RPT^CPRS^29027^RA^79029185.9998-1'
  1. ; or
  1. ; RPT^CPRS^4658^TIU^2243408^^^^^^^^1
  1. ;
  1. ; Return Values
  1. ; =============
  1. ;
  1. ; if error MAGRY(0) = 0 ^Error message^
  1. ; if success MAGRY(0) = 1
  1. ; MAGRY(1..n) = CONTEXTID | 0 | error message
  1. ; CONTEXTID | 1 | 0 or 1 (has images)
  1. ;
  1. IMGEXIST(MAGRY,DATA) ;RPC [MAGN IMAGE EXIST BY CONTEXT]
  1. N MAGNI,MAGNCNT,MAGNX,RESULT,HASIMAGE
  1. N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
  1. K MAGRY
  1. S MAGRY(0)=0
  1. S MAGNCNT=0
  1. S MAGNI=""
  1. I $G(DATA)'="" S DATA(1)=DATA ; in case of a single context ID
  1. F S MAGNI=$O(DATA(MAGNI)) Q:MAGNI="" D
  1. . S MAGNCXT=DATA(MAGNI) ; contextID
  1. . I $P(MAGNCXT,"^",1,2)'="RPT^CPRS" D Q
  1. . . D SETRES(.MAGRY,.MAGNCNT,MAGNCXT,"0^Unsupported ContextId Type",0)
  1. . . Q
  1. . ;
  1. . S MAGNX=$P(MAGNCXT,"^",4)
  1. . I MAGNX="RA" D Q
  1. . . S HASIMAGE=$$IMAGERA(MAGNCXT) ; get image list for a single Radiology contextID
  1. . . D SETRES(.MAGRY,.MAGNCNT,MAGNCXT,1,HASIMAGE)
  1. . . Q
  1. . I MAGNX="TIU" D Q
  1. . . N MAGNTIU
  1. . . S MAGNTIU=$P(MAGNCXT,"^",5)
  1. . . S RESULT=$$IMAGETIU(MAGNTIU) ; get image list for a single TIU contextID
  1. . . D SETRES(.MAGRY,.MAGNCNT,MAGNCXT,1,HASIMAGE)
  1. . . Q
  1. . D SETRES(.MAGRY,.MAGNCNT,MAGNCXT,"0^Unsupported ContextId Type",0)
  1. . Q
  1. S MAGRY(0)=1
  1. Q
  1. ;
  1. IMAGERA(DATA) ;A copy from MAGGTRAI
  1. ; DATA is in format of Windows message received from CPRS
  1. ; example 'RPT^CPRS^29027^RA^i79029185.9998-1'
  1. N DFN,ENT,INVDTTM,INVDT,INVTM,X,RARPT,ACN
  1. S DFN=+$P(DATA,U,3)
  1. S ENT=+$P($P(DATA,U,5),"-",2)
  1. S INVDTTM=$P($P(DATA,U,5),"-",1)
  1. S INVDT=$P(INVDTTM,".",1)
  1. S INVTM=$P(INVDTTM,".",2)
  1. F Q:($L(INVDT)<8) S INVDT=$E(INVDT,2,$L(INVDT))
  1. S INVDTTM=INVDT_"."_INVTM
  1. S RARPT=0
  1. I '$D(^RADPT(DFN,"DT",INVDTTM,"P",ENT,0)) Q "0^INVALID Data : Attempt to access Exam failed."
  1. S RARPT=$P(^RADPT(DFN,"DT",INVDTTM,"P",ENT,0),U,17)
  1. I RARPT,($P($G(^RARPT(RARPT,0)),U,2)'=DFN) Q "0^Patient Mismatch. Radiology File"
  1. ;
  1. I $P($G(^RARPT(RARPT,2005,0)),U,4) Q 1
  1. ;
  1. S ACN=$$ACCNUM^RAAPI(DFN,INVDTTM,ENT)
  1. I $L(ACN,"-")=3 S ACN=$P(ACN,"-",2,3)
  1. ;
  1. S X=$$IMAGVX(ACN,"RAD") ; Check for images in P34 data structure
  1. Q X
  1. ;
  1. IMAGVX(ACCN,TYPE) ; Image in P34 data structure by Accession
  1. N PROCIEN,AOF
  1. ; Check for images in P34 data structure
  1. I ACCN="" Q 0
  1. S PROCIEN=""
  1. S AOF=0
  1. F S PROCIEN=$O(^MAGV(2005.61,"B",ACCN,PROCIEN)) Q:'PROCIEN D Q:AOF
  1. . I TYPE'=$$GET1^DIQ(2005.61,PROCIEN,.03,"I") Q ; Not the same procedure type
  1. . S AOF=+$$GET1^DIQ(2005.61,PROCIEN,2,"I") ; Artifact on file
  1. . Q
  1. Q AOF
  1. ;
  1. IMAGETIU(MAGTIU) ;
  1. N ACCN,CONSIX,MAGARR,MAGDFN,MAGMRC
  1. ;
  1. S MAGDFN=$$GET1^DIQ(8925,MAGTIU,.02,"I") ;MAGQI 8/22/01
  1. I 'MAGDFN Q "0^Invalid Patient DFN for Note ID: '"_MAGTIU_"'"
  1. ;
  1. D GETILST^TIUSRVPL(.MAGARR,MAGTIU) ; get Images from old data structure (2005)
  1. I $D(MAGARR) Q 1
  1. ;
  1. D GET1405^TIUSRVR(.MAGMRC,MAGTIU)
  1. S CONSIX=+MAGMRC
  1. I (CONSIX'>0)!'(MAGMRC["GMR(123") Q 0
  1. S ACCN=$$GMRCACN^MAGDFCNV(CONSIX) ; site-specific accession number
  1. ;
  1. S X=$$IMAGVX(ACCN,"CON")
  1. Q X
  1. ;
  1. SETRES(MAGRY,MAGNCNT,MAGNCXT,RESULT,HASIMAGE) ; Append result for one context
  1. S MAGNCNT=MAGNCNT+1
  1. S MAGRY(MAGNCNT)=MAGNCXT_"|"_RESULT_"|"_HASIMAGE
  1. Q