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

MAGSIXG2.m

Go to the documentation of this file.
  1. MAGSIXG2 ;WOIFO/SG,NST - LIST OF IMAGES RPCS (PARAMETERS) ; 5/11/18 3:52pm
  1. ;;3.0;IMAGING;**93,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. ;
  1. ; This routine uses the following ICRs:
  1. ;
  1. ; #10035 Read file #2 (supported)
  1. ;
  1. Q
  1. ;
  1. ;+++++ RETURNS THE HEADER FOR THE RPC RESULT ARRAY
  1. BLDHDR() ;
  1. N HDR,I,TMP
  1. S HDR=""
  1. F I=3:1 S TMP=$P($T(BLDHDR1+I),";;",2) Q:TMP="" D
  1. . S HDR=HDR_U_$$TRIM^XLFSTR($P(TMP,U,2))
  1. . Q
  1. Q $P(HDR,U,2,9999)
  1. ;
  1. BLDHDR1 ;+++++ TEMPLATE OF THE HEADER FOR THE RESULT ARRAY
  1. ;; # Header Data Description
  1. ;;--- -------------- --------------------------------------
  1. ;; 1 ^ Item~S2 ^ Sequential number
  1. ;; 2 ^ Site ^
  1. ;; 3 ^ Note Title~~W0 ^ *
  1. ;; 4 ^ Proc DT~S1 ^ Procedure date
  1. ;; 5 ^ Procedure ^ Procedure
  1. ;; 6 ^ # Img~S2 ^ Number of images
  1. ;; 7 ^ Short Desc ^
  1. ;; 8 ^ Pkg ^ PACKAGE INDEX (40) - Internal
  1. ;; 9 ^ Class ^ CLASS INDEX (41) - External
  1. ;; 10 ^ Type ^ TYPE INDEX (42) - External
  1. ;; 11 ^ Specialty ^ SPEC/SUBSPEC INDEX (44) - External
  1. ;; 12 ^ Event ^ PROC/EVENT INDEX (43) - External
  1. ;; 13 ^ Origin ^ ORIGIN INDEX (45)
  1. ;; 14 ^ Cap Dt~S1~W0 ^ Capture date
  1. ;; 15 ^ Cap by~~W0 ^ User who captured the image
  1. ;; 16 ^ Image ID~S2~W0 ^ Image IEN
  1. ;
  1. ; Notes
  1. ; =====
  1. ;
  1. ; Only the second "^"-column is used to build the header; everything
  1. ; else is provided for documentation purposes.
  1. ;
  1. Q
  1. ;
  1. ;+++++ RETURNS DESCRIPTION OF THE IMAGE SELECTION CRITERIA
  1. ;
  1. ; .MAGFLT Reference to a local variable that stores the image
  1. ; selection criteria
  1. ;
  1. ; FROMDATE Date range
  1. ; TODATE
  1. ;
  1. ; FLAGS Flags that control the image selection
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; Description of the image selection criteria.
  1. ;
  1. FLTDESC(MAGFLT,FROMDATE,TODATE,FLAGS) ;
  1. N BUF,DTRANGE,FLT,TMP
  1. S FLT=""
  1. ;
  1. ;--- Package
  1. S:$G(MAGFLT("PKG"))'="" FLT=FLT_"Pkg: "_MAGFLT("PKG")_" - "
  1. ;
  1. ;--- Class
  1. I $G(MAGFLT("CLS"))'="" D S FLT=FLT_"Class: "_BUF_" - "
  1. . S BUF=MAGFLT("CLS")
  1. . I BUF="ADMIN^ADMIN/CLIN^CLIN/ADMIN" S BUF="ADMIN" Q
  1. . I BUF="CLIN^CLIN/ADMIN^ADMIN/CLIN" S BUF="CLIN" Q
  1. . Q
  1. ;
  1. S:$G(MAGFLT("TYPE"))'="" FLT=FLT_"Type: "_MAGFLT("TYPE")_" - "
  1. S:$G(MAGFLT("SPEC"))'="" FLT=FLT_"Spec: "_MAGFLT("SPEC")_" - "
  1. S:$G(MAGFLT("EVT"))'="" FLT=FLT_"Event: "_MAGFLT("EVT")_" - "
  1. S:$G(MAGFLT("ORIG"))'="" FLT=FLT_"Origin: "_MAGFLT("ORIG")_" - "
  1. S:$G(MAGFLT("GDESC"))'="" FLT=FLT_"Descr: '"_MAGFLT("GDESC")_"' - "
  1. ;
  1. ;--- Image status
  1. S:$G(MAGFLT("ISTAT"))'="" FLT=FLT_"Status: "_MAGFLT("ISTAT")_" - "
  1. ;
  1. ;--- Controlled image
  1. S:$G(MAGFLT("SENSIMG"))'="" FLT=FLT_"Controlled: "_MAGFLT("SENSIMG")_" - "
  1. ;
  1. ;--- Capture application
  1. S:$G(MAGFLT("CAPTAPP"))'="" FLT=FLT_"App: "_MAGFLT("CAPTAPP")_" - "
  1. ;
  1. ;--- Date Range
  1. S DTRANGE=""
  1. S:FROMDATE'="" DTRANGE=DTRANGE_" from "_FROMDATE
  1. S:TODATE'="" DTRANGE=DTRANGE_" to "_TODATE
  1. ;
  1. ;--- Percentage of sparse subset
  1. S BUF="",TMP=+$G(MAGFLT("SUBSET%"))
  1. S:TMP>0 BUF=$S(TMP<1:"0"_TMP,1:TMP)_"% of "
  1. ;
  1. ;--- Control flags
  1. I FLT="",DTRANGE="" S BUF=BUF_"all "
  1. S:FLAGS["E" BUF=BUF_"existing "
  1. S:FLAGS["D" BUF=BUF_$S(FLAGS["E":"and ",1:"")_"deleted "
  1. S FLT=FLT_$$SNTC^MAGUTL05(BUF)_"images"
  1. ;
  1. ;--- User who captured the images
  1. S BUF=$G(MAGFLT("SAVEDBY"))
  1. S:BUF>0 FLT=FLT_" captured by "_$P(BUF,U,2)
  1. ;
  1. ;--- Append the date range
  1. S FLT=FLT_DTRANGE
  1. S:FLAGS["C" FLT=FLT_" (capture date range)"
  1. ;
  1. ;---
  1. Q $TR(FLT,"^",",")
  1. ;
  1. MISCDEFS ;+++++ DEFINITIONS OF MISCELLANEOUS PARAMETERS
  1. ;;==================================================================
  1. ;;| Parameter | File |Field|Type |Flags| Comment |
  1. ;;|------------+-------+-----+-----+-----+-------------------------|
  1. ;;|CAPTAPP | | 8.1| S | | CAPTURE APPLICATION |
  1. ;;|CPTCODE | | | | | CPT CODE |
  1. ;;|GDESC | | 10 | | | SHORT DESCRIPTION |
  1. ;;|IDFN | | 5 | P | | Patient IEN (DFN) |
  1. ;;|ISTAT | |113 | S | | STATUS |
  1. ;;|IXCLASS | | | P | | CLASS INDEX |
  1. ;;|IXORIGIN | | 45 | S | | ORIGIN INDEX |
  1. ;;|IXPKG | | 40 | S | | PACKAGE INDEX |
  1. ;;|IXPROC | | 43 | P | | PROC/EVENT INDEX |
  1. ;;|IXSPEC | | 44 | P | | SPEC/SUBSPEC INDEX |
  1. ;;|IXTYPE | | 42 | P | | TYPE INDEX |
  1. ;;|MODALITY | | | | | MODALITY |
  1. ;;|SAVEDBY | | 8 | P | | Who captured (DUZ) |
  1. ;;|SENSIMG | |112 | S | | CONTROLLED IMAGE |
  1. ;;==================================================================
  1. ;
  1. ; Notes
  1. ; =====
  1. ;
  1. ; File numbers are not included to disable automatic validation.
  1. ;
  1. Q
  1. ;
  1. ;+++++ VALIDATES MISCELLANEOUS PARAMETERS
  1. ;
  1. ; .MISC Reference to a local variable that stores the tree
  1. ; of miscellaneous RPC parameters
  1. ;
  1. ; .MAGFLT Reference to a local variable where the image
  1. ; selection criteria is constructed.
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; <0 Error code
  1. ; 0 Success
  1. ;
  1. VALMISC(MISC,MAGFLT) ;
  1. N ERROR,FLAGS,PNODE,RC,VAL
  1. S ERROR=0
  1. ;--- Patient IEN (DFN)
  1. S PNODE=$NA(MISC("IDFN")),VAL=$P($G(@PNODE),U)
  1. I VAL'="" D
  1. . I +VAL'=VAL S ERROR=$$IPVE^MAGUERR("VAL",PNODE) Q
  1. . I '($D(^DPT(VAL,0))#2) S ERROR=$$ERROR^MAGUERR(-5,,VAL) Q
  1. . S MAGFLT("IDFN")=VAL
  1. . Q
  1. E S MAGFLT("IDFN")=""
  1. ;--- User IEN (DUZ)
  1. S PNODE=$NA(MISC("SAVEDBY")),VAL=$P($G(@PNODE),U)
  1. I VAL'="" D
  1. . N NAME
  1. . I +VAL'=VAL S ERROR=$$IPVE^MAGUERR("VAL",PNODE) Q
  1. . S NAME=$$NAME^XUSER(VAL,"F")
  1. . I NAME="" S ERROR=$$IPVE^MAGUERR("VAL",PNODE) Q
  1. . S MAGFLT("SAVEDBY")=VAL_U_NAME
  1. . Q
  1. E S MAGFLT("SAVEDBY")=""
  1. ;--- Capture application
  1. S VAL=$G(MISC("CAPTAPP"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,8.1,$NA(MAGFLT("CAPTAPP")))
  1. I RC D:RC>0 ERROR^MAGUERR(-42,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Short description
  1. S VAL=$G(MISC("GDESC"))
  1. S:VAL'="" MAGFLT("GDESC")=$$UP^XLFSTR(VAL)
  1. ;--- Status
  1. S VAL=$G(MISC("ISTAT"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,113,$NA(MAGFLT("ISTAT")),"Z")
  1. I RC D:RC>0 ERROR^MAGUERR(-31,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Controlled image
  1. S VAL=$G(MISC("SENSIMG"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,112,$NA(MAGFLT("SENSIMG")))
  1. I RC D:RC>0 ERROR^MAGUERR(-32,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Package
  1. S VAL=$G(MISC("IXPKG"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,40,$NA(MAGFLT("PKG")))
  1. I RC D:RC>0 ERROR^MAGUERR(-11,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Class
  1. S VAL=$G(MISC("IXCLASS"))
  1. S RC=$$VALPNLST^MAGUTL06(VAL,2005.82,$NA(MAGFLT("CLS")),"C")
  1. I RC D:RC>0 ERROR^MAGUERR(-12,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Type
  1. S VAL=$G(MISC("IXTYPE"))
  1. S RC=$$VALPNLST^MAGUTL06(VAL,2005.83,$NA(MAGFLT("TYPE")),"C")
  1. I RC D:RC>0 ERROR^MAGUERR(-13,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Event
  1. S VAL=$G(MISC("IXPROC"))
  1. S RC=$$VALPNLST^MAGUTL06(VAL,2005.85,$NA(MAGFLT("EVT")),"C")
  1. I RC D:RC>0 ERROR^MAGUERR(-14,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Origin
  1. S VAL=$G(MISC("IXORIGIN"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,45,$NA(MAGFLT("ORIG")))
  1. I RC D:RC>0 ERROR^MAGUERR(-15,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Specialty (patch 59: for capture we don't want subspecialties)
  1. S FLAGS=$S('$D(MAGJOB("CAPTURE")):"S",1:"")
  1. S VAL=$G(MISC("IXSPEC"))
  1. S RC=$$VALSPECS(VAL,$NA(MAGFLT("SPEC")),FLAGS)
  1. I RC D:RC>0 ERROR^MAGUERR(-16,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- CPT Code
  1. S VAL=$G(MISC("CPTCODE"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,71,9,$NA(MAGFLT("CPTCODE")))
  1. I RC D:RC>0 ERROR^MAGUERR(-15,,$P(VAL,U,RC)) S ERROR=1
  1. ;--- Modality
  1. S VAL=$G(MISC("MODALITY"))
  1. S RC=$$VALCNLST^MAGUTL06(VAL,2005,6,$NA(MAGFLT("MODALITY")))
  1. I RC D:RC>0 ERROR^MAGUERR(-15,,$P(VAL,U,RC)) S ERROR=1
  1. ;---
  1. Q $S(ERROR:-30,1:0)
  1. ;
  1. ;+++++ VALIDATES THE LIST OF SPECIALTIES
  1. VALSPECS(PTNMLIST,MAG8NODE,FLAGS) ;
  1. N IEN,RC,SPIEN,XREF
  1. S RC=$$VALPNLST^MAGUTL06(PTNMLIST,2005.84,MAG8NODE,"C") Q:RC RC
  1. Q:$G(FLAGS)'["S" 0
  1. ;--- Add subspecialties if requested
  1. S XREF=$$ROOT^DILFD(2005.84,,1),XREF=$NA(@XREF@("ASPEC"))
  1. S SPIEN=""
  1. F S SPIEN=$O(@MAG8NODE@(SPIEN)) Q:SPIEN="" D:$D(@XREF@(SPIEN))
  1. . S IEN=""
  1. . F S IEN=$O(@XREF@(SPIEN,IEN)) Q:IEN="" S @MAG8NODE@(IEN)=""
  1. . Q
  1. ;--- Success
  1. Q 0