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

APSSLIC.m

Go to the documentation of this file.
  1. APSSLIC ;IHS/MSC/MDM - ScriptPro Interface;28-Sep-2007 10:47;SM
  1. ;;1.0;IHS SCRIPTPRO INTERFACE;**1**;January 11, 2006
  1. ; Call via entry point placed in Transform Field of File 9009033.3
  1. ; Direct entry not supported
  1. Q
  1. EP1(APSSPIEN,APSSMETH) ;MDM - Main entry point
  1. ;
  1. ; Provider IEN required
  1. I '$G(APSSPIEN) Q ""
  1. ; Processing Method Required
  1. I '$G(APSSMETH) Q ""
  1. ;
  1. ; Data from Sub-File LICENSING STATE (#200.541)(multiple) from NEW PERSON File (#200)
  1. ; Data from LOCATION FILE (#9999999.06)
  1. ;
  1. ; APSSPIEN = Provider Internal Entry Number passed from calling routine.
  1. ; APSSMETH = Processing Method
  1. ;
  1. ; Method 1
  1. ; Match it to the state the facility is in
  1. ; If there is no license for that state then return any valid license
  1. ; If no valid license found for any state then return NULL
  1. ;
  1. ; Method 2
  1. ; There is no license for the state the facility is in then,
  1. ; return NULL even if other states have a valid license defined.
  1. ;
  1. ; Method 3
  1. ; Return first valid license found regardless of state
  1. ; No valid license found, then return NULL
  1. ;
  1. ;
  1. ; APSSENT = Entry in the LICENSING STATE(multiple)
  1. ; APSSKEY = Key to the LICENSING STATE(multiple)
  1. ; APSSLNO = Active License Number for the Provider
  1. ; APSSEDT = The Expiration Date for the Provider's License
  1. ; APSSIDT = The Internal Format Expiration Date for the Provider's License used to compare dates
  1. ; APSSFLOC= Facility Location (State) as determined by the users facility ID in DUZ(2)
  1. ; APSSTATE = License Issuing State
  1. ; APSSTMP = Temporary holding variable
  1. ; APSSTMP1 = Temporary holding variable
  1. ;
  1. N APSSLNO,APSSEDT,APSSDAT,APSSENT,APSSLNO,APSSKEY,APSSENT,APSSIDT,APSSEXIT,APSSFLOC,APSSTATE
  1. N APSSTMP,APSSTMP1
  1. ;
  1. ; This section processes each entry.
  1. ;
  1. S (APSSENT,APSSEXIT)=0,(APSSLNO,APSSTMP)="" ; Initialize working variables
  1. ;
  1. ; To check for the License based on the state the facility is located in
  1. 1 ; the LOCATION file# (9999999.06) must have the state defined in field .23
  1. S APSSFLOC=$$GET1^DIQ(9999999.06,DUZ(2),.23) ; Facility Location (State)
  1. ;
  1. ; If the processing Method is 1 or 2 and the facility state is NULL then quit processing.
  1. I (APSSMETH=1!(APSSMETH=2)),APSSFLOC="" Q APSSLNO
  1. ;
  1. ; Order through each file entry for this provider.
  1. F S APSSENT=$O(^VA(200,APSSPIEN,"PS1",APSSENT)) Q:('APSSENT)!(APSSEXIT) D
  1. . ; Initialize the key to the file
  1. . S APSSKEY=APSSENT_","_APSSPIEN_","
  1. . ; Retrieve data using FileMan API
  1. . S APSSTATE=$$GET1^DIQ(200.541,APSSKEY,.01) ; Field .01 License Issuing State
  1. . S APSSTMP=$$GET1^DIQ(200.541,APSSKEY,1) ; Field 1 License Number
  1. . S APSSIDT=$$GET1^DIQ(200.541,APSSKEY,2,"I") ; Field 2 Expiration Date Internal format
  1. . S APSSEDT=$$FMTE^XLFDT(APSSIDT,"5DZ0") ; Field 2 Expiration Date External format conversion
  1. . ;
  1. . ; Processing Method
  1. . I APSSMETH=1 D
  1. . . ; Grab the first valid License regardless of state
  1. . . I (APSSIDT>DT)&(APSSTMP="") S APSSTMP1=APSSTMP
  1. . . ; If the state matches the facility location AND the license is valid stop further processing
  1. . . I (APSSTATE=APSSFLOC)&(APSSIDT>DT) S APSSLNO=APSSTMP,APSSEXIT=1 Q
  1. . . Q
  1. . I APSSMETH=2 D
  1. . . ; If the state matches the facility location AND the license is valid stop further processing
  1. . . I (APSSTATE=APSSFLOC)&(APSSIDT>DT) S APSSLNO=APSSTMP,APSSEXIT=1 Q
  1. . . Q
  1. . I APSSMETH=3 D
  1. . . ; Stop processing any more entries once valid entry is found.
  1. . . I APSSIDT>DT S APSSLNO=APSSTMP,APSSEXIT=1 Q
  1. . . Q
  1. . Q
  1. ; If processing Method 1 and no license number was found for the facility location
  1. ; but a valid license was found from a different state than that of the
  1. ; facility location then use the license that was found.
  1. I (APSSLNO="")&(APSSMETH=1) S APSSLNO=APSSTMP
  1. ; Return value
  1. Q APSSLNO
  1. ;
  1. SDEA(CLIN) ; Site DEA Number
  1. N INST,SDEA
  1. I CLIN="" Q $$GET1^DIQ(4,+$$SITE^VASITE,52,"E")
  1. S SDEA=""
  1. S INST=$$GET1^DIQ(44,CLIN,3,"I")
  1. S SDEA=$$GET1^DIQ(4,INST,52,"E")
  1. I SDEA="" S SDEA=$$GET1^DIQ(4,+$$SITE^VASITE,52,"E")
  1. Q SDEA
  1. ;
  1. SNAME(CLIN) ; Site Name
  1. N INST,SNAME
  1. I 'CLIN Q $P($$SITE^VASITE,U,2)
  1. S INST=$$GET1^DIQ(44,CLIN,3,"I")
  1. S SNAME=$$GET1^DIQ(4,INST,.01,"E")
  1. I SNAME="" S SNAME=$P($$SITE^VASITE,U,2)
  1. Q SNAME
  1. PADDR(PAT) ; Patient Address
  1. N ADDR,ADDR1,ADDR2,ADDR3,CITY,STATE,ZIP,PADDR
  1. S IENS=PAT_","
  1. D GETS^DIQ(2,IENS,".111;.112;.113;.114;.115;.1112","E","PADDR")
  1. S ADDR=$G(PADDR(2,IENS,.111,"E"))_U_$G(PADDR(2,IENS,.112,"E"))_U_$G(PADDR(2,IENS,.113,"E"))_U_$G(PADDR(2,IENS,.114,"E"))_U_$G(PADDR(2,IENS,.115,"E"))_U_$G(PADDR(2,IENS,.1112,"E"))
  1. Q ADDR