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

MHV7RU.m

Go to the documentation of this file.
  1. MHV7RU ;WAS/GPM - HL7 RECEIVER UTILITIES ; [12/13/07 10:26pm]
  1. ;;1.0;My HealtheVet;**2**;Aug 23, 2005;Build 22
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. Q
  1. ;
  1. VALIDDT(DT) ; Validate and convert date
  1. ;
  1. ; Integration Agreements:
  1. ; 10103 : HL7TFM^XLFDT
  1. ;
  1. I DT="" Q 1
  1. I DT'?8.16N Q 0
  1. S DT=$$HL7TFM^XLFDT(DT)\1
  1. I DT'?7N Q 0
  1. Q 1
  1. ;
  1. VALRTYPE(TYPE,REQ,ERR) ; Validate request type
  1. ;
  1. ; Input:
  1. ; TYPE - Request type string
  1. ;
  1. ; Output:
  1. ; REQ - Request parameter array
  1. ; REQ("TYPE")
  1. ; REQ("REQNAME")
  1. ; REQ("BLOCKED")
  1. ; REQ("REALTIME")
  1. ; REQ("EXECUTE")
  1. ; REQ("BUILDER")
  1. ;
  1. ; ERR - Caret delimited error string
  1. ; segment^sequence^field^code^ACK type^error text
  1. ;
  1. N REQTIEN,REQT0
  1. S REQTIEN=$O(^MHV(2275.3,"D",TYPE,0))
  1. I 'REQTIEN S ERR="103^AE^Request Type Not Found" Q 0
  1. S REQT0=$G(^MHV(2275.3,REQTIEN,0))
  1. ;
  1. S REQ("REQNAME")=$P(REQT0,"^",1)
  1. S REQ("TYPE")=$P(REQT0,"^",2)
  1. S REQ("BLOCKED")=$P(REQT0,"^",3)
  1. S REQ("REALTIME")=$P(REQT0,"^",4)
  1. S REQ("EXECUTE")=$TR($P(REQT0,"^",5),"~","^")
  1. S REQ("BUILDER")=$TR($P(REQT0,"^",6),"~","^")
  1. Q 1
  1. ;
  1. VALIDID(ICN,DFN,SSN,ERR) ;Validate patient identifiers
  1. ; Will accept ICN, SSN, or DFN, but must have at least one.
  1. ; Validate one, in order of preference: ICN, SSN, DFN.
  1. ; If more than once sent, all must resolve to the same patient.
  1. ; Those not sent will be resolved and returned.
  1. ;
  1. ; Integration Agreements:
  1. ; 2701 : GETDFN^MPIF001, GETICN^MPIF001
  1. ; 10035 : Direct reference of ^DPT(DFN,0);9
  1. ; and reference of ^DPT("SSN") x-ref
  1. ;
  1. ; Input:
  1. ; ICN, DFN, SSN - Identifiers
  1. ;
  1. ; Output: Function value True if IDs are valid, False otherwise
  1. ; ICN, DFN, SSN - Identifiers
  1. ; ERR - Caret delimited error string
  1. ; segment^sequence^field^code^ACK type^error text
  1. ;
  1. N XSSN,XDFN
  1. S ERR=""
  1. I ICN="",SSN="",DFN="" S ERR="101^AE^Missing Patient ID" Q 0
  1. ;
  1. I ICN'="" D Q:ERR'="" 0 Q 1
  1. . D LOG^MHVUL2("VALIDID","ICN="_ICN,"S","DEBUG")
  1. . I ICN'?9.10N1"V"6N S ERR="102^AE^Invalid ICN" Q
  1. . S XDFN=$$GETDFN^MPIF001(+ICN)
  1. . I XDFN<1 S ERR="204^AR^Patient Not Found" Q
  1. . I '$D(^DPT(XDFN,0)) S ERR="204^AR^Patient Not Found" Q
  1. . S XSSN=$P($G(^DPT(XDFN,0)),"^",9)
  1. . I SSN'="" D Q:ERR'=""
  1. .. I SSN'?9N S ERR="102^AE^Invalid SSN" Q
  1. .. I SSN'=XSSN S ERR="204^AE^Patient SSN Mismatch" Q
  1. .. Q
  1. . I DFN'="" D Q:ERR'=""
  1. .. I DFN'?1N.N S ERR="102^AE^Invalid DFN" Q
  1. .. I DFN<1 S ERR="102^AE^Invalid DFN" Q
  1. .. I DFN'=XDFN S ERR="204^AE^Patient DFN Mismatch" Q
  1. .. Q
  1. . S DFN=XDFN,SSN=XSSN
  1. . D LOG^MHVUL2("VALIDID","SSN="_SSN,"S","DEBUG")
  1. . D LOG^MHVUL2("VALIDID","DFN="_DFN,"S","DEBUG")
  1. . Q
  1. ;
  1. I SSN'="" D Q:ERR'="" 0 Q 1
  1. . D LOG^MHVUL2("VALIDID","SSN="_SSN,"S","DEBUG")
  1. . I SSN'?9N S ERR="102^AE^Invalid SSN" Q
  1. . S XDFN=$O(^DPT("SSN",SSN,""))
  1. . I XDFN<1 S ERR="204^AR^Patient Not Found" Q
  1. . I '$D(^DPT(XDFN,0)) S ERR="204^AR^Patient Not Found" Q
  1. . S ICN=$$GETICN^MPIF001(XDFN)
  1. . I ICN<1 S ICN=""
  1. . I DFN'="" D Q:ERR'=""
  1. .. I DFN'?1N.N S ERR="102^AE^Invalid DFN" Q
  1. .. I DFN<1 S ERR="102^AE^Invalid DFN" Q
  1. .. I DFN'=XDFN S ERR="204^AE^Patient DFN Mismatch" Q
  1. .. Q
  1. . S DFN=XDFN
  1. . D LOG^MHVUL2("VALIDID","ICN="_ICN,"S","DEBUG")
  1. . D LOG^MHVUL2("VALIDID","DFN="_DFN,"S","DEBUG")
  1. . Q
  1. ;
  1. I DFN'="" D Q:ERR'="" 0 Q 1
  1. . D LOG^MHVUL2("VALIDID","DFN="_DFN,"S","DEBUG")
  1. . I DFN'?1N.N S ERR="102^AE^Invalid DFN" Q
  1. . I DFN<1 S ERR="102^AE^Invalid DFN" Q
  1. . I '$D(^DPT(DFN,0)) S ERR="204^AR^Patient Not Found" Q
  1. . S ICN=$$GETICN^MPIF001(DFN)
  1. . I ICN<1 S ICN=""
  1. . S SSN=$P($G(^DPT(DFN,0)),"^",9)
  1. . D LOG^MHVUL2("VALIDID","ICN="_ICN,"S","DEBUG")
  1. . D LOG^MHVUL2("VALIDID","SSN="_SSN,"S","DEBUG")
  1. . Q
  1. ;
  1. S ERR="101^AE^Missing Patient ID"
  1. Q 0
  1. ;