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

MAGVUID2.m

Go to the documentation of this file.
  1. MAGVUID2 ;WOIFO/NST - MAGV Generate UID ; 26 Jun 2013 5:09 PM
  1. ;;3.0;IMAGING;**138**;Mar 19, 2002;Build 5380;Sep 03, 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. ;***** Generate a new UID that is not unique
  1. ;
  1. ; RPC:MAGV GENERATE UID
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ;
  1. ; MAGPARAM("ACCESSION NUMBER")
  1. ; MAGPARAM("SITE")
  1. ; MAGPARAM("INSTRUMENT")
  1. ; MAGPARAM("TYPE") = "STUDY" or "SERIES" or "SOP"
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = Failure status ^Error message^
  1. ; if success MAGRY = Success status ^^New UID
  1. ;
  1. GENNWUID(MAGRY,MAGPARAM) ; RPC [MAGV GENERATE UID]
  1. N SSEP,UID
  1. ;
  1. S ACNUMB=$G(MAGPARAM("ACCESSION NUMBER"))
  1. S SITE=$G(MAGPARAM("SITE"))
  1. S INSTR=$G(MAGPARAM("INSTRUMENT"))
  1. S TYPE=$G(MAGPARAM("TYPE"))
  1. ;
  1. S SSEP=$$STATSEP^MAGVRS41
  1. ;
  1. ; Verify input parameters
  1. I ACNUMB="" S MAGRY="-1"_SSEP_"Invalid ACCESSION NUMBER parameter" Q
  1. I SITE="" S MAGRY="-2"_SSEP_"Invalid SITE parameter" Q
  1. I INSTR="" S MAGRY="-3"_SSEP_"Invalid INSTRUMENT parameter" Q
  1. I (TYPE'="STUDY"),(TYPE'="SERIES"),(TYPE'="SOP") S MAGRY="-4"_SSEP_"Invalid TYPE parameter" Q
  1. ;
  1. S UID=$$GENUID(ACNUMB,SITE,INSTR,TYPE) ; Generate a new UID
  1. ; Check for errors
  1. I $P(UID,"~")<0 S MAGRY="-5"_SSEP_$P(UID,"~",2) Q
  1. I UID="" S MAGRY="-6"_SSEP_"Unexpected UID generation error" Q
  1. ;
  1. S MAGRY="0"_SSEP_UID
  1. Q
  1. ;
  1. GENUID(ACNUMB,SITE,INSTR,TYPE) ; Utility to Generate new UID for TYPE
  1. ; ACNUMB -- Accession Number
  1. ; SITE -- Site
  1. ; INSTR -- Instrument
  1. ; TYPE -- "STUDY" or "SERIES" or "SOP"
  1. ;
  1. ; Remove alpha characters from SITE/STATION number
  1. ;
  1. N I,ID,STAMP,UID,UINST,PGM
  1. ;
  1. S SITE=$E(SITE,1,3)
  1. ;
  1. S (UID,UINST)=""
  1. ;
  1. S ID=$S($E($P(ACNUMB,"-"),1)'?1N:$TR($H,",","")_$P(ACNUMB,"-",2),1:$TR(ACNUMB,"-",""))
  1. F I=1:1:$L(INSTR) S UINST=UINST+$A($E(INSTR,I))
  1. S SITE=SITE_"."_UINST
  1. S STAMP=$$NOW^XLFDT
  1. S STAMP=$TR($TR(STAMP,".","")," ","")
  1. S ID=+ID_+STAMP
  1. S PGM=TYPE_"^MAGVUID1(.UID,SITE,ID)"
  1. D @PGM
  1. Q UID