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

VIAANPR.m

Go to the documentation of this file.
  1. VIAANPR ;ALB/WW - New Person / Employee RPCs for RTLS ;4/20/16 10:09 pm
  1. ;;1.0;RTLS;**4**;April 22, 2013;Build 21
  1. ;;
  1. ;; RTLS New Person / Employee RPC calls
  1. Q
  1. ;
  1. ; Reference to ^VA(200 supported by IA #10060
  1. ;
  1. ;----------------------------------------------------------------------------
  1. RTLSNP(RETSTA,REQDATA,DATAID) ; Retrieve Employee Information.
  1. ;
  1. ; This RPC allows retrieval of the following fields from
  1. ; the New Person File (#200):
  1. ; IEN
  1. ; NAME ( #.01)
  1. ; DIVISION (#16)
  1. ; SEX (#4)
  1. ; DOB (#5)
  1. ; TITLE (#8)
  1. ; SERVICE/SECTION (#29)
  1. ;
  1. ; Input:
  1. ; RETSTA - name of the return array
  1. ; REQDATA - identifies the type of data that is being requested:
  1. ; "IEN" defines DATAID as a Social Security Number
  1. ; "NAME" defines DATAID as a Name/Partial Name
  1. ; DATAID - identifies which data is to be returned for REQDATA:
  1. ; IEN if REQDATA="IEN"
  1. ; NAME/PARTIAL NAME if REQDATA="NAME"
  1. ; Output:
  1. ; Global ^TMP("VIAA"_REQDATA,$J,n)
  1. ; Contains data elements when REQDATA and DATAID are passed in as
  1. ; input parameters and are defined as follows:
  1. ; "IEN^FIRSTNAME^LASTNAME^MIDDLENAME^DIVISION^SEX^DOB^TITLE...
  1. ; ...^SERVICE/SECTION^NETWORK USERNAME"
  1. ; or an error condition:
  1. ; "-###^" concatenated with reason for failure is returned,
  1. ; where '###' is a 3-digit code
  1. ;
  1. N TMP,TVIAA,VIAA,VIAACNT,VIAAIEN,VIAAOUT
  1. ;
  1. S VIAA="VIAA"_REQDATA
  1. ;
  1. K ^TMP(VIAA,$J)
  1. ;
  1. I $G(REQDATA)="" S ^TMP(VIAA,$J,0)="-400^REQDATA must be the keyword 'IEN' or 'NAME'" D OUTPUT Q
  1. ;
  1. I $G(DATAID)="" D Q
  1. .I $G(REQDATA)="NAME" S ^TMP(VIAA,$J,0)="-400^Name cannot be null" D OUTPUT
  1. .I $G(REQDATA)="IEN" S ^TMP(VIAA,$J,0)="-400^IEN cannot be null" D OUTPUT
  1. I "^IEN^NAME^"'[(U_REQDATA_U) D Q
  1. .S ^TMP(VIAA,$J,0)="-400^REQDATA must be the keyword 'IEN' or 'NAME'"
  1. .D OUTPUT
  1. ;
  1. I REQDATA="IEN" D Q
  1. .I '$D(^VA(200,DATAID)) D D OUTPUT Q
  1. ..S ^TMP(VIAA,$J,0)="-400^("_DATAID_") not a recognized IEN"
  1. .S VIAAIEN=DATAID
  1. .D BUILD(0),OUTPUT
  1. ;
  1. ;I DATAID="*" D D OUTPUT Q
  1. ;.S TMP="",VIAACNT=-1
  1. ;.F S TMP=$O(^VA(200,"B",TMP)) Q:TMP="" D
  1. ;..S VIAAIEN=$O(^VA(200,"B",TMP,""))
  1. ;..I VIAAIEN]"" S VIAACNT=VIAACNT+1 D BUILD(VIAACNT)
  1. ;
  1. I $E(DATAID,1)="'" S DATAID=$E(DATAID,2,$L(DATAID))
  1. I $E(DATAID,$L(DATAID))="'" S DATAID=$E(DATAID,1,($L(DATAID)-1))
  1. ;
  1. D FIND^DIC(200,,,"B",DATAID,,,,,"VIAAOUT")
  1. ;
  1. I '$D(VIAAOUT("DILIST",2)) D Q
  1. .S ^TMP(VIAA,$J,0)="-404^no name match found for ("_DATAID_")"
  1. .D OUTPUT
  1. ;
  1. S TVIAA="" F VIAACNT=0:1 S TVIAA=$O(VIAAOUT("DILIST",2,TVIAA)) Q:TVIAA="" D
  1. .S VIAAIEN=VIAAOUT("DILIST",2,TVIAA)
  1. .D BUILD(VIAACNT)
  1. ;
  1. D OUTPUT
  1. ;
  1. Q
  1. ;----------------------------------------------------------------------------
  1. BUILD(VIAACNT) ; Build the ^TMP output entries.
  1. ;
  1. N TMP,VIAADIV,VIAADOB,VIAANAME,VIAATMP
  1. ;
  1. S (VIAATMP,VIAADIV)=""
  1. I $P($G(^VA(200,VIAAIEN,2,0)),U,3)'="" D
  1. .F S VIAATMP=$O(^VA(200,VIAAIEN,2,"B",VIAATMP)) Q:VIAATMP="" D
  1. ..S VIAADIV=$$GET1^DIQ(200.02,VIAATMP_","_VIAAIEN_",",.01,"I")
  1. ;
  1. S VIAADOB=$$GET1^DIQ(200,VIAAIEN_",","DOB")
  1. I VIAADOB]"" D
  1. .D DT^DILF("TS",VIAADOB,.VIAADOB)
  1. .I VIAADOB]"" D
  1. ..S VIAADOB=$E(VIAADOB,4,5)_"/"_$E(VIAADOB,6,7)_"/"_$E((1700+$E(VIAADOB,1,3)),1,4)
  1. ;
  1. S TMP=$$GET1^DIQ(200,VIAAIEN_",","NAME")
  1. S VIAANAME=$P(TMP,",")_U_$P($P(TMP,",",2)," ")_U_$P($P(TMP,",",2)," ",2,3)
  1. ;
  1. S VIAATMP=VIAAIEN_U_VIAANAME
  1. S VIAATMP=VIAATMP_U_$S(VIAADIV]"":VIAADIV,1:$$STA^XUAF4($$KSP^XUPARAM("INST")))
  1. S VIAATMP=VIAATMP_U_$$GET1^DIQ(200,VIAAIEN_",","SEX","I")
  1. S VIAATMP=VIAATMP_U_VIAADOB
  1. S VIAATMP=VIAATMP_U_$$GET1^DIQ(200,VIAAIEN_",","TITLE")
  1. S VIAATMP=VIAATMP_U_$$GET1^DIQ(200,VIAAIEN_",","SERVICE/SECTION")
  1. S VIAATMP=VIAATMP_U_$$GET1^DIQ(200,VIAAIEN_",","NETWORK USERNAME")
  1. S ^TMP(VIAA,$J,VIAACNT)=VIAATMP
  1. ;
  1. Q
  1. ;----------------------------------------------------------------------------
  1. OUTPUT ; Move the ^TMP data to the output array RETSTA
  1. ;
  1. M RETSTA=^TMP(VIAA,$J)
  1. ;
  1. Q