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

MAGVIM10.m

Go to the documentation of this file.
  1. MAGVIM10 ;WOIFO/PMK/MLS/SG/DAC/JSL/MAT - Imaging RPCs for Importer ; 30 Jul 2013 7:28 PM
  1. ;;3.0;IMAGING;**118,138,164**;Mar 19, 2002;Build 35;Nov 03, 2016
  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. ;***** RETURNS THE LIST OF RADIOLOGY PROCEDURES
  1. ; RPC: MAGV GET RADIOLOGY PROCEDURES
  1. ;
  1. ; Modified from PROC^MAGDRPCA (RPC: MAG DICOM RADIOLOGY PROCEDURES)
  1. ; for MAG*3.0*118.
  1. ;
  1. ; .ARRAY Reference to a local variable where results
  1. ; are returned to.
  1. ;
  1. ; STATIONUM STATION NUMBER (#99) of an INSTITUTION file (#4) entry.
  1. ;
  1. ; IENMAGLOC IEN of an entry in the IMAGING LOCATIONS file(#79.1)
  1. ;
  1. ; [IENRAPROC] IEN of an entry in the RAD/NUC MED PROCEDURES file (#71)
  1. ;
  1. ; NOTE
  1. ; ====
  1. ;
  1. ; Does not return procedure types of "B"road or "P"arent if a list is
  1. ; requested (vs. a single procedure).
  1. ;
  1. ; The call to $$IEN^XUAF4() is Supported IA#1271.
  1. ; Direct reads of ^RAMIS(71, via Private IA#1174.
  1. ;
  1. GETPROCS(ARRAY,STATIONUM,IENMAGLOC,IENRAPROC) ;
  1. ;
  1. ;--- Initialize.
  1. N IMAGTYPE ; IEN of the imaging type (file #79.2)
  1. N INACTDAT ; Inactivation date of the procedure
  1. N RADPROC ; Radiology procedure data (file #71)
  1. N TODAY ; today's date in Fileman format
  1. N PROCTYPE ; Type of procedure
  1. ;
  1. N IEN
  1. N MAGX S MAGX=""
  1. K ARRAY
  1. S (ARRAY(1),IEN)=0,TODAY=$$DT^XLFDT()
  1. ;
  1. ;--- Validate parameters
  1. S IENRAPROC=$G(IENRAPROC)
  1. ;;S STATIONUM=$G(STATIONUM) ;;P164 took out STATIONUM, IENINST by David M (#I10555403FY16)
  1. ;;I (STATIONUM'>0) D Q ;;P164 RPC is based on the RA Imaging Location selected by the user, not the arbitrary check on Institution .vs Imaging Location Division
  1. ;;. S ARRAY(1)="-1,Invalid STATION NUMBER: '"_STATIONUM_"'."
  1. ;;. Q
  1. ;
  1. ;;--- Get IEN of INSTITUTION file (#4) from STATION NUMBER (Supported IA# 2171).
  1. ;;N IENINST S IENINST=$$IEN^XUAF4(STATIONUM) ;P164 took out STATIONUM, IENINST
  1. ;;
  1. ;;I IENINST="" D Q
  1. ;;. S ARRAY(1)="-2,Could not resolve Institution from STATION NUMBER '"_STATIONUM_"'."
  1. ;;. Q
  1. ;
  1. ;--- Output a single RAD/NUC MED PROCEDURE file (#71) entry.
  1. I IENRAPROC'="" S IEN=IENRAPROC D
  1. . S RADPROC=^RAMIS(71,IEN,0),IMAGTYPE=+$P(RADPROC,U,12)
  1. . S MAGX=$O(^RA(79.1,"BIMG",IMAGTYPE,""))
  1. . Q:MAGX=""
  1. . D OUTPUT(MAGX)
  1. . Q
  1. ;--- Loop through the RAD/NUC MED PROCEDURES file (#71).
  1. E D
  1. . F S IEN=$O(^RAMIS(71,IEN)) Q:'IEN D CHEKINST
  1. . Q
  1. Q
  1. ;
  1. ;+++++ Internal entry point: Validate a procedures' institution matches.
  1. ;
  1. CHEKINST ;
  1. S RADPROC=^RAMIS(71,IEN,0),IMAGTYPE=+$P(RADPROC,U,12)
  1. ;
  1. ;--- Select by input IMAGING LOCATION (#79.1).
  1. N MAGXX,MATCH S (MAGXX,MATCH)=0
  1. F S MAGXX=$O(^RA(79.1,"BIMG",IMAGTYPE,MAGXX)) Q:MAGXX="" Q:MATCH>0 D
  1. . ;
  1. . ;--- Resolve HOSPITAL LOCATION file IEN from IMAGING LOCATION.
  1. . N IENHSPLOC S IENHSPLOC=$$GET1^DIQ(79.1,MAGXX,.01,"I")
  1. . ;
  1. . ;--- Resolve the INSTITUTION file (#4) IEN.
  1. . N IENINSPRC S IENINSPRC=$$GET1^DIQ(44,IENHSPLOC,3,"I")
  1. . ;
  1. . ;--- Quit if not in the same INSTITUTION.
  1. . ;;Q:IENINSPRC'=IENINST ;;p164 David M took out IENINST
  1. . S:MAGXX=IENMAGLOC MATCH=MATCH+1,MAGX=MAGXX
  1. . Q
  1. Q:MATCH=0 D OUTPUT(MAGX)
  1. Q
  1. ;
  1. ;+++++ Internal entry point: Assemble output for one record.
  1. ;
  1. OUTPUT(MAGX) ;
  1. N BUF S BUF=$P(RADPROC,U)_U_IEN ; Procedure Name and IEN
  1. S PROCTYPE=$P(RADPROC,U,6) ; Type of Procedure
  1. ;
  1. ;--- Iff list output (LOCATION was input), filter out 'B'road, 'P'arent.
  1. N FILTER S FILTER=$S(IENMAGLOC'="":1,1:0)
  1. I FILTER=1,(PROCTYPE="B")!(PROCTYPE="P") Q
  1. S $P(BUF,U,3)=PROCTYPE ; Type of Procedure
  1. S $P(BUF,U,4)=$P(RADPROC,U,9) ; CPT Code (file #81)
  1. S $P(BUF,U,5)=IMAGTYPE ; Type of Imaging (file #79.2)
  1. S INACTDAT=$P($G(^RAMIS(71,IEN,"I")),U)
  1. I INACTDAT,INACTDAT<TODAY Q ; ignore inactive procedures
  1. S $P(BUF,U,6)=INACTDAT ; Inactivation Date
  1. S $P(BUF,U,7)=$S(IENMAGLOC="":MAGX,1:IENMAGLOC) ; Imaging Location (file #79.1)
  1. ;
  1. ;--- Resolve HOSPITAL LOCATION file IEN from IMAGING LOCATION.
  1. N IENHSPLOC S IENHSPLOC=$$GET1^DIQ(79.1,MAGX,.01,"I")
  1. S $P(BUF,U,8)=IENHSPLOC ; Hospital Location file (#44) - IEN
  1. S $P(BUF,U,9)=$$GET1^DIQ(44,IENHSPLOC,.01) ; Hospital Location file (#44) - NAME
  1. ;
  1. ;--- Add the descriptor to the result array
  1. S ARRAY(1)=ARRAY(1)+1,ARRAY(ARRAY(1)+1)=BUF
  1. Q
  1. ;
  1. ; MAGVIM10