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

PXVRPC1.m

Go to the documentation of this file.
  1. PXVRPC1 ;BIR/ADM - IMM MANUFACTURER API ;08/16/2016
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**215,216**;Aug 12, 1996;Build 11
  1. ;
  1. Q
  1. ILOT(PXVRETRN,PXVLK,PXVI,PXLOC) ; return list of immunization lot information
  1. ;Input:
  1. ; PXVRETRN - (required) return array of external field values
  1. ; PXVLK - (optional) information to be returned - defaults to list all entries (S:B)
  1. ; "R:XXX" - return entry with ien XXX
  1. ; "N:XXX" - return entry with lot number XXX
  1. ; "S:A" - return list of all active lot numbers
  1. ; "S:I" - return list of all inactive lot numbers
  1. ; "S:B" - return list of all lot numbers, active and inactive
  1. ; PXVI - (optional)
  1. ; 1 - return alternate array with internal values in delimited string
  1. ; PXLOC - (optional) Used to determine Institution (used when filtering Lot)
  1. ; Possible values are:
  1. ; "I:X": Institution (#4) IEN #X
  1. ; "V:X": Visit (#9000010) IEN #X
  1. ; "L:X": Hopital Location (#44) IEN #X
  1. ; If determination cannot be made based off input, then default to DUZ(2),
  1. ; and if DUZ(2) is not defined, default to Default Institution.
  1. ;
  1. ;Output:
  1. ; PXVRETRN - returned information is stored in ^TMP("PXVLST",$J))
  1. ; - return info format: Field Name^Field Value
  1. ; - error format: -1^error message
  1. ; - alternate array: caret delimited string with differing internal and
  1. ; external values separated by a tilde
  1. ;
  1. N PXVARAY,PXVFLG,PXVNAME,PXVVAL,PXVCT,PXVIEN,PXVSUM,PXFIL,PXINST,PXINVAL,PXVF
  1. S PXVARAY="^TMP(""PXVLST"",$J)" K @PXVARAY
  1. S PXVLK=$S('$L($G(PXVLK)):"S:B",1:PXVLK)
  1. I $G(PXVI)'=1 S PXVI=0
  1. S PXINVAL=0 I $L($G(PXLOC)) D I PXINVAL D IIV Q
  1. .S PXFIL=$P(PXLOC,":") I $L(PXFIL)>1!("IVL"'[PXFIL) S PXINVAL=1 Q
  1. .S PXVF=$P(PXLOC,":",2) I 'PXVF S PXINVAL=1
  1. I $L($G(PXLOC)) S PXINST=$$INST^PXVUTIL($G(PXLOC))
  1. S PXVFLG=$P(PXVLK,":"),PXVVAL=$P(PXVLK,":",2)
  1. I $L(PXVFLG)>1!("RNS"'[PXVFLG) D IIV Q
  1. I PXVFLG="R",'$G(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for immunization lot IEN" D TMPRET Q
  1. I PXVFLG="R",'$D(^AUTTIML(PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for immunization lot IEN" D TMPRET Q
  1. I PXVFLG="N",'$L(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for lot number" D TMPRET Q
  1. I PXVFLG="N",'$D(^AUTTIML("B",PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for lot number" D TMPRET Q
  1. I PXVFLG="S",(PXVVAL'="A"&(PXVVAL'="B")&(PXVVAL'="I")) D IIV Q
  1. S (PXVCT,PXVSUM)=0
  1. I PXVFLG="R" S PXVIEN=PXVVAL D ONEL
  1. I PXVFLG="N" S PXVIEN=0 F S PXVIEN=$O(^AUTTIML("B",PXVVAL,PXVIEN)) Q:'PXVIEN D ONEL
  1. I PXVFLG="S" S PXVIEN=0 F S PXVIEN=$O(^AUTTIML(PXVIEN)) Q:'PXVIEN D ONEL
  1. I 'PXVI S PXVNAME="" F S PXVNAME=$O(@PXVARAY@(PXVNAME)) Q:PXVNAME="" S PXVCT=PXVCT+1,@PXVARAY@(PXVNAME,0)="RECORD^"_PXVCT_" OF "_PXVSUM
  1. I PXVI S @PXVARAY@(0)=PXVSUM_" RECORD"_$S(PXVSUM'>1:"",1:"S")
  1. I PXVSUM=0 S @PXVARAY@(0)="0 RECORDS"
  1. D TMPRET
  1. Q
  1. ;
  1. ONEL ; return array containing info for selected immunization lot
  1. N PXV0,PXVFLD,PXVIENC,PXVY,PXVZ
  1. S PXVIENC=PXVIEN_",",PXV0=^AUTTIML(PXVIEN,0)
  1. I $G(PXINST),$P(PXV0,"^",10)'="",$P(PXV0,"^",10)'=PXINST Q
  1. I PXVFLG="S",PXVVAL="A",$P(PXV0,"^",3) Q
  1. I PXVFLG="S",PXVVAL="I",'$P(PXV0,"^",3) Q
  1. S PXVSUM=PXVSUM+1
  1. I 'PXVI D
  1. .D GETS^DIQ(9999999.41,PXVIENC,".01;.02;.03;.04;.09;.1;.12;.15;.18","","PXVY")
  1. .S PXVZ=0 F S PXVZ=$O(PXVY(9999999.41,PXVIENC,PXVZ)) Q:'PXVZ D
  1. ..D FIELD^DID(9999999.41,PXVZ,"","LABEL","PXVFLD")
  1. ..I PXVZ=.01 S PXVNAME=PXVY(9999999.41,PXVIENC,PXVZ),PXVNAME=PXVNAME_" "_PXVSUM
  1. ..S @PXVARAY@(PXVNAME,PXVZ)=PXVFLD("LABEL")_"^"_PXVY(9999999.41,PXVIENC,PXVZ)
  1. .S @PXVARAY@(PXVNAME,.001)="IEN^"_PXVIEN
  1. I PXVI D
  1. .D GETS^DIQ(9999999.41,PXVIENC,".02;.03;.04;.09;.1;.18","E","PXVY")
  1. .S PXVZ=PXVIEN_"^"_$P(PXV0,"^")_"^"_$P(PXV0,"^",2)_"~"_PXVY(9999999.41,PXVIENC,.02,"E")_"^"_$P(PXV0,"^",3)_"~"_PXVY(9999999.41,PXVIENC,.03,"E")
  1. .S PXVZ=PXVZ_"^"_$P(PXV0,"^",4)_"~"_PXVY(9999999.41,PXVIENC,.04,"E")_"^"_$P(PXV0,"^",9)_"~"_PXVY(9999999.41,PXVIENC,.09,"E")
  1. .S PXVZ=PXVZ_"^"_$P(PXV0,"^",12)_"^"_$P(PXV0,"^",15)_"^"_$P(PXV0,"^",18)_"~"_PXVY(9999999.41,PXVIENC,.18,"E")
  1. .S PXVZ=PXVZ_"^"_$P(PXV0,"^",10)_"~"_PXVY(9999999.41,PXVIENC,.1,"E")
  1. .S @PXVARAY@(PXVIEN)=PXVZ
  1. Q
  1. ;
  1. IMAN(PXVRETRN,PXVLK,PXVDATE,PXVI) ; rpc to return immunization manufacturer information
  1. ;Input:
  1. ; PXVRETRN - (required) return array
  1. ; PXVLK - (optional) information to be returned - defaults to list all entries (S:B)
  1. ; R:XXX - return entry with ien XXX
  1. ; M:XXX - return entry with MVX code XXX
  1. ; N:XXX - return entry with imm manufacturer name XXX
  1. ; S:A - return list of all active manufacturers
  1. ; S:I - return list of all inactive manufacturers
  1. ; S:B - return list of all manufacturers, active and inactive
  1. ; PXVDATE - (optional) date for use in determining status - defaults to TODAY
  1. ; PXVI - (optional)
  1. ; 1 - return alternate array with internal values in delimited string
  1. ;
  1. ;Output:
  1. ; PXVRETRN - returned information is stored in ^TMP("PXVLST",$J))
  1. ; - return info format: Field Name^Field Value
  1. ; - error format: -1^error message
  1. ; - alternate array: caret delimited string with differing internal and
  1. ; external values separated by a tilde
  1. ;
  1. N PXVARAY,PXVFLG,PXVNAME,PXVVAL,PXVCT,PXVIEN,PXVSUM
  1. S PXVARAY="^TMP(""PXVLST"",$J)" K @PXVARAY
  1. S PXVLK=$S('$L($G(PXVLK)):"S:B",1:PXVLK)
  1. I $G(PXVI)'=1 S PXVI=0
  1. S PXVFLG=$P(PXVLK,":"),PXVVAL=$P(PXVLK,":",2)
  1. I $L(PXVFLG)>1!("RMNS"'[PXVFLG) D IIV Q
  1. I PXVFLG="R",'$G(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for manufacturer IEN" D TMPRET Q
  1. I PXVFLG="R",'$D(^AUTTIMAN(PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for manufacturer IEN" D TMPRET Q
  1. I PXVFLG="M",'$L(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for MVX code" D TMPRET Q
  1. I PXVFLG="M",'$D(^AUTTIMAN("M",PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for MVX code" D TMPRET Q
  1. I PXVFLG="N",'$L(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for manufacturer name" D TMPRET Q
  1. I PXVFLG="N",'$D(^AUTTIMAN("B",$G(PXVVAL))) S @PXVARAY@(0)="-1^Invalid input for manufacturer name" D TMPRET Q
  1. I PXVFLG="S",(PXVVAL'="A"&(PXVVAL'="B")&(PXVVAL'="I")) D IIV Q
  1. S PXVDATE=$S('$L($G(PXVDATE)):DT,1:PXVDATE)
  1. S (PXVCT,PXVSUM)=0
  1. I PXVFLG="R" S PXVIEN=PXVVAL D ONEM
  1. I PXVFLG="M" S PXVIEN=0 F S PXVIEN=$O(^AUTTIMAN("M",PXVVAL,PXVIEN)) Q:'PXVIEN D ONEM
  1. I PXVFLG="N" S PXVIEN=0 F S PXVIEN=$O(^AUTTIMAN("B",PXVVAL,PXVIEN)) Q:'PXVIEN D ONEM
  1. I PXVFLG="S" S PXVIEN=0 F S PXVIEN=$O(^AUTTIMAN(PXVIEN)) Q:'PXVIEN D ONEM
  1. I 'PXVI S PXVNAME="" F S PXVNAME=$O(@PXVARAY@(PXVNAME)) Q:PXVNAME="" S PXVCT=PXVCT+1,@PXVARAY@(PXVNAME,0)="RECORD^"_PXVCT_" OF "_PXVSUM
  1. I PXVI S @PXVARAY@(0)=PXVSUM_" RECORD"_$S(PXVSUM'>1:"",1:"S")
  1. I PXVSUM=0 S @PXVARAY@(0)="0 RECORDS"
  1. D TMPRET
  1. Q
  1. ;
  1. ONEM ; return array containing info for selected manufacturer
  1. N PXVACT,PXVFILE,PXVFLD,PXVIENC,PXVP,PXVSTAT,PXV0,PXV2,PXVY,PXVZ,X
  1. S PXVIENC=PXVIEN_",",PXV0=^AUTTIMAN(PXVIEN,0),PXVFILE=9999999.04 D STAT
  1. I PXVFLG="S",PXVVAL="A",$P(PXV0,"^",3) Q
  1. I PXVFLG="S",PXVVAL="I",'$P(PXV0,"^",3) Q
  1. S PXVSUM=PXVSUM+1
  1. I 'PXVI D
  1. .D GETS^DIQ(9999999.04,PXVIENC,".01;.02;.03;201","","PXVY")
  1. .S PXVZ=0 F S PXVZ=$O(PXVY(9999999.04,PXVIENC,PXVZ)) Q:'PXVZ D
  1. ..D FIELD^DID(9999999.04,PXVZ,"","LABEL","PXVFLD")
  1. ..I PXVZ=.01 S PXVNAME=PXVY(9999999.04,PXVIENC,PXVZ),PXVNAME=PXVNAME_" "_PXVSUM
  1. ..S @PXVARAY@(PXVNAME,PXVZ)=PXVFLD("LABEL")_"^"_PXVY(9999999.04,PXVIENC,PXVZ)
  1. .S @PXVARAY@(PXVNAME,"STATUS")="STATUS^"_PXVSTAT
  1. .S @PXVARAY@(PXVNAME,.001)="IEN^"_PXVIEN
  1. I PXVI D
  1. .S PXVZ=PXVIEN_"^"_$P(PXV0,"^")_"^"_$P(PXV0,"^",2)_"^"_$P(PXV0,"^",3)_"~"_$S($P(PXV0,"^",3)=0:"ACTIVE",1:"INACTIVE")
  1. .S PXVZ=PXVZ_"^"_$P($G(^AUTTIMAN(PXVIEN,2)),"^")_"^"_PXVSTAT
  1. .S @PXVARAY@(PXVIEN)=PXVZ
  1. Q
  1. ;
  1. IVIS(PXVRETRN,PXVLK,PXVDATE) ; rpc to return vaccine information statement information
  1. ;Input:
  1. ; PXVRETRN - (required) return array
  1. ; PXVLK - (optional) information to be returned - defaults to list all entries (S:B)
  1. ; R:XXX - return entry with ien XXX
  1. ; N:XXX - return entry with VIS name XXX
  1. ; S:A - return list of all active VISs
  1. ; S:I - return list of all inactive VISs
  1. ; S:B - return list of all VISs, active and inactive
  1. ; PXVDATE - (optional) date for use in determining status - defaults to TODAY
  1. ;
  1. ;Output:
  1. ; PXVRETRN - returned information is stored in ^TMP("PXVLST",$J))
  1. ; - return info format: Field Name^Field Value
  1. ; - error format: -1^error message
  1. ;
  1. N PXVARAY,PXVFLG,PXVNAME,PXVVAL,PXVCT,PXVIEN,PXVSUM
  1. S PXVARAY="^TMP(""PXVLST"",$J)" K @PXVARAY
  1. S PXVLK=$S('$L($G(PXVLK)):"S:B",1:PXVLK)
  1. S PXVFLG=$P(PXVLK,":"),PXVVAL=$P(PXVLK,":",2)
  1. I $L(PXVFLG)>1!("RNS"'[PXVFLG) D IIV Q
  1. I PXVFLG="R",'$G(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for VIS IEN" D TMPRET Q
  1. I PXVFLG="R",'$D(^AUTTIVIS(PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for VIS IEN" D TMPRET Q
  1. I PXVFLG="N",'$L(PXVVAL) S @PXVARAY@(0)="-1^Invalid input for VIS name" D TMPRET Q
  1. I PXVFLG="N",'$D(^AUTTIVIS("B",PXVVAL)) S @PXVARAY@(0)="-1^Invalid input for VIS name" D TMPRET Q
  1. I PXVFLG="S",(PXVVAL'="A"&(PXVVAL'="B")&(PXVVAL'="I")) D IIV Q
  1. S PXVDATE=$S('$L($G(PXVDATE)):DT,1:PXVDATE)
  1. S (PXVCT,PXVSUM)=0
  1. I PXVFLG="R" S PXVIEN=PXVVAL D ONEV
  1. I PXVFLG="N" S PXVIEN=0 F S PXVIEN=$O(^AUTTIVIS("B",PXVVAL,PXVIEN)) Q:'PXVIEN D ONEV
  1. I PXVFLG="S" S PXVIEN=0 F S PXVIEN=$O(^AUTTIVIS(PXVIEN)) Q:'PXVIEN D ONEV
  1. S PXVNAME="" F S PXVNAME=$O(@PXVARAY@(PXVNAME)) Q:PXVNAME="" S PXVCT=PXVCT+1,@PXVARAY@(PXVNAME,0)="RECORD^"_PXVCT_" OF "_PXVSUM
  1. I PXVSUM=0 S @PXVARAY@(0)="0 RECORDS"
  1. D TMPRET
  1. Q
  1. ;
  1. ONEV ; return array containing info for VIS
  1. N PXV,PXVACT,PXVFILE,PXVFLD,PXVIENC,PXVL,PXVP,PXVSTAT,PXVY,PXVZ
  1. S PXVIENC=PXVIEN_",",PXVFILE=920 D STAT
  1. I PXVFLG="S",PXVVAL="A",'PXVACT Q
  1. I PXVFLG="S",PXVVAL="I",PXVACT Q
  1. S PXVSUM=PXVSUM+1
  1. D GETS^DIQ(920,PXVIENC,".01;.02;.03;.04;2;100;101","","PXVP")
  1. S PXVZ=0 F S PXVZ=$O(PXVP(920,PXVIENC,PXVZ)) Q:'PXVZ D
  1. .D FIELD^DID(920,PXVZ,"","LABEL","PXVFLD")
  1. .I PXVZ=.01 S PXVNAME=PXVP(920,PXVIENC,PXVZ),PXVNAME=PXVNAME_" "_PXVSUM
  1. .I PXVZ=.04,PXVP(920,PXVIENC,PXVZ) N X S X=PXVP(920,PXVIENC,PXVZ) D Q
  1. ..S PXV=$S(X=1:"ENGLISH",X=2:"GERMAN",X=3:"SPANISH",X=4:"FRENCH",X=5:"FINNISH",X=6:"ITALIAN",X=7:"PORTUGUESE",X=8:"ARABIC",X=11:"RUSSIAN",X=12:"GREEK",X=18:"HEBREW",1:X)
  1. ..S @PXVARAY@(PXVNAME,PXVZ)=PXVFLD("LABEL")_"^"_PXV
  1. .I PXVZ=2 D Q
  1. ..I PXVP(920,PXVIENC,PXVZ)="" S @PXVARAY@(PXVNAME,PXVZ)=PXVFLD("LABEL")_"^"_PXVP(920,PXVIENC,PXVZ) Q
  1. ..S PXVL=0 F S PXVL=$O(PXVP(920,PXVIENC,PXVZ,PXVL)) Q:'PXVL D
  1. ...S @PXVARAY@(PXVNAME,PXVZ,PXVL)=PXVFLD("LABEL")_" "_PXVL_"^"_PXVP(920,PXVIENC,PXVZ,PXVL)
  1. .S @PXVARAY@(PXVNAME,PXVZ)=PXVFLD("LABEL")_"^"_PXVP(920,PXVIENC,PXVZ)
  1. S @PXVARAY@(PXVNAME,"STATUS")="STATUS^"_PXVSTAT
  1. S @PXVARAY@(PXVNAME,.001)="IEN^"_PXVIEN
  1. Q
  1. ;
  1. STAT ;
  1. S PXVACT=$P($$GETSTAT^XTID(PXVFILE,,PXVIENC,$G(PXVDATE)),"^")
  1. I PXVACT="" S PXVACT=1
  1. S PXVSTAT=$S(PXVACT=0:"INACTIVE",1:"ACTIVE")
  1. Q
  1. ;
  1. IIV ; return invalid input message
  1. S @PXVARAY@(0)="-1^Invalid input value"
  1. TMPRET ;
  1. S PXVRETRN=$NA(@PXVARAY)
  1. Q
  1. ;