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

PXAIIMM.m

Go to the documentation of this file.
  1. PXAIIMM ;ISL/PKR - Set the IMMUNIZATION nodes. ;Oct 29, 2021@10:12:47
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**45,124,209,210,215,211,217**;Aug 12, 1996;Build 134
  1. ;
  1. IMM ;Main entry point.
  1. ;
  1. K PXAERR
  1. S PXAERR(8)=PXAK
  1. S PXAERR(7)="IMMUNIZATION"
  1. ;
  1. N IND,PXAA
  1. S IND=""
  1. F S IND=$O(@PXADATA@("IMMUNIZATION",PXAK,IND)) Q:IND="" D
  1. . I IND?1(1"VIS",1"REMARKS") D Q
  1. . . M PXAA(IND)=@PXADATA@("IMMUNIZATION",PXAK,IND)
  1. . S PXAA(IND)=@PXADATA@("IMMUNIZATION",PXAK,IND)
  1. ;
  1. ;Validate the data.
  1. N STOP
  1. D VAL^PXAIIMMV
  1. I $G(STOP) Q
  1. ;
  1. SETVARA ;Set the after visit variables.
  1. N AFTER0,AFTER12,AFTER13,AFTER14,AFTER15,AFTER16,AFTER811,AFTER812
  1. S $P(AFTER0,U,1)=$G(PXAA("IMMUN"))
  1. I $G(PXAA("DELETE")) S $P(AFTER0,U,1)="@"
  1. S $P(AFTER0,U,2)=$G(PATIENT)
  1. S $P(AFTER0,U,3)=$G(PXAVISIT)
  1. S $P(AFTER0,U,4)=$G(PXAA("SERIES"))
  1. S $P(AFTER0,U,6)=$G(PXAA("REACTION"))
  1. S $P(AFTER0,U,7)=$G(PXAA("CONTRAINDICATED"))
  1. S $P(AFTER12,U,1)=$G(PXAA("EVENT D/T"))
  1. S $P(AFTER12,U,4)=$G(PXAA("ENC PROVIDER"))
  1. S $P(AFTER811,U,1)=$G(PXAA("COMMENT"))
  1. ;
  1. ;--PACKAGE AND SOURCE
  1. S $P(AFTER812,"^",2)=$S($G(PXAA("PKG"))'="":PXAA("PKG"),1:$G(PXAPKG))
  1. S $P(AFTER812,"^",3)=$S($G(PXAA("SOURCE"))'="":PXAA("SOURCE"),1:$G(PXASOURC))
  1. ;
  1. ;--Add new fields for VIMM 2.0 - PX*1*209/210/215
  1. S $P(AFTER12,U,2)=$G(PXAA("ORD PROVIDER"))
  1. S $P(AFTER12,U,7)=$G(PXAA("LOT NUM"))
  1. S $P(AFTER12,U,20)=$G(PXAA("WARNING ACK"))
  1. S $P(AFTER12,U,22)=$G(PXAA("ORD BY POLICY"))
  1. S $P(AFTER13,U)=$G(PXAA("INFO SOURCE"))
  1. S $P(AFTER13,U,2)=$G(PXAA("ADMIN ROUTE"))
  1. S $P(AFTER13,U,3)=$G(PXAA("ANATOMIC LOC"))
  1. ;Do not store diagnosis as of PX*1*211
  1. ;S $P(AFTER13,U,4)=$G(PXAA("DIAGNOSIS"))
  1. S $P(AFTER13,U,12)=$G(PXAA("DOSE"))
  1. S $P(AFTER13,U,13)=$G(PXAA("DOSE UNITS"))
  1. ;
  1. ; Reading fields (for smallpox)
  1. S $P(AFTER14,U,1)=$G(PXAA("RESULT"))
  1. S $P(AFTER14,U,2)=$G(PXAA("READING"))
  1. S $P(AFTER14,U,3)=$G(PXAA("D/T READ"))
  1. S $P(AFTER14,U,4)=$G(PXAA("READER"))
  1. S $P(AFTER15,U,1)=$G(PXAA("READING COMMENT"))
  1. ;
  1. S $P(AFTER16,U,1)=$G(PXAA("OVERRIDE REASON"))
  1. ;
  1. S ^TMP("PXK",$J,"IMM",PXAK,0,"AFTER")=AFTER0
  1. S ^TMP("PXK",$J,"IMM",PXAK,12,"AFTER")=AFTER12
  1. S ^TMP("PXK",$J,"IMM",PXAK,13,"AFTER")=AFTER13
  1. S ^TMP("PXK",$J,"IMM",PXAK,14,"AFTER")=AFTER14
  1. S ^TMP("PXK",$J,"IMM",PXAK,15,"AFTER")=AFTER15
  1. S ^TMP("PXK",$J,"IMM",PXAK,16,"AFTER")=AFTER16
  1. S ^TMP("PXK",$J,"IMM",PXAK,811,"AFTER")=AFTER811
  1. S ^TMP("PXK",$J,"IMM",PXAK,812,"AFTER")=AFTER812
  1. ;
  1. ; Add multiple data to PXK AFTER - PX*1*210
  1. N FLD,SEQ,SUB
  1. ;
  1. F FLD="VIS","REMARKS" D
  1. . ;
  1. . S SUB=$S(FLD="VIS":2,1:11)
  1. . ;
  1. . ; Delete multiple
  1. . I $G(PXAA(FLD))="@" D Q
  1. . . S ^TMP("PXK",$J,"IMM",PXAK,SUB,0,"AFTER")="@"
  1. . ;
  1. . S SEQ=0
  1. . F S SEQ=$O(PXAA(FLD,SEQ)) Q:'SEQ D
  1. . . S ^TMP("PXK",$J,"IMM",PXAK,SUB,SEQ,"AFTER")=$G(PXAA(FLD,SEQ,0))
  1. ;
  1. ; Add DIAGNOSIS 2 thru 8 to OTHER DIAGNOSIS multiple
  1. ;Do not store diagnosis as of PX*1*211
  1. ;N DIAGNUM,DIAGSTR
  1. ;S SEQ=0
  1. ;F DIAGNUM=2:1:8 D
  1. ;. S DIAGSTR="DIAGNOSIS "_DIAGNUM
  1. ;. I $G(PXAA(DIAGSTR))'="" D
  1. ;. . S SEQ=SEQ+1
  1. ;. . S ^TMP("PXK",$J,"IMM",PXAK,3,SEQ,"AFTER")=PXAA(DIAGSTR)
  1. ;
  1. SETVARB ;Set the before variables.
  1. N BEFOR0,BEFOR12,BEFOR13,BEFOR14,BEFOR15,BEFOR16,BEFOR811,BEFOR812
  1. N IENB,PXAAX,PXBCNT,PXBKY,PXBSKY,PXBSAM
  1. D IMM^PXBGIMM(PXAVISIT)
  1. ;
  1. S IENB=""
  1. I PXBCNT>0 D
  1. . S PXAAX("IMMUN")=$P($G(^AUTTIMM(PXAA("IMMUN"),0)),U,1)
  1. . S IENB=$O(PXBKY(PXAAX("IMMUN"),IENB))
  1. I $G(IENB) D
  1. . S BEFOR0=$G(^AUPNVIMM(IENB,0))
  1. . S BEFOR12=$G(^AUPNVIMM(IENB,12))
  1. . S BEFOR13=$G(^AUPNVIMM(IENB,13))
  1. . S BEFOR14=$G(^AUPNVIMM(IENB,14))
  1. . S BEFOR15=$G(^AUPNVIMM(IENB,15))
  1. . S BEFOR16=$G(^AUPNVIMM(IENB,16))
  1. . S BEFOR811=$G(^AUPNVIMM(IENB,811))
  1. . S BEFOR812=$G(^AUPNVIMM(IENB,812))
  1. E S (BEFOR0,BEFOR11,BEFOR12,BEFOR13,BEFOR14,BEFOR15,BEFOR16,BEFOR811,BEFOR812)=""
  1. ;
  1. S ^TMP("PXK",$J,"IMM",PXAK,0,"BEFORE")=BEFOR0
  1. S ^TMP("PXK",$J,"IMM",PXAK,12,"BEFORE")=BEFOR12
  1. S ^TMP("PXK",$J,"IMM",PXAK,13,"BEFORE")=BEFOR13
  1. S ^TMP("PXK",$J,"IMM",PXAK,14,"BEFORE")=BEFOR14
  1. S ^TMP("PXK",$J,"IMM",PXAK,15,"BEFORE")=BEFOR15
  1. S ^TMP("PXK",$J,"IMM",PXAK,16,"BEFORE")=BEFOR16
  1. S ^TMP("PXK",$J,"IMM",PXAK,811,"BEFORE")=BEFOR811
  1. S ^TMP("PXK",$J,"IMM",PXAK,812,"BEFORE")=BEFOR812
  1. S ^TMP("PXK",$J,"IMM",PXAK,"IEN")=IENB
  1. ;
  1. ;Package and Data Source cannot be edited.
  1. S BEFOR812=^TMP("PXK",$J,"IMM",PXAK,812,"BEFORE")
  1. I BEFOR812'="" D
  1. . I AFTER812=BEFOR812 Q
  1. . I $P(BEFOR812,U,2)'="" S $P(AFTER812,U,2)=$P(BEFOR812,U,2)
  1. . I $P(BEFOR812,U,3)'="" S $P(AFTER812,U,3)=$P(BEFOR812,U,3)
  1. . S ^TMP("PXK",$J,"IMM",PXAK,812,"AFTER")=AFTER812
  1. ;
  1. ; Add multiple data to PXK BEFORE
  1. I $G(IENB) D
  1. . N IENSUB,SUB
  1. . F SUB=2,3,11 D
  1. . . S IENSUB=0
  1. . . F S IENSUB=$O(^AUPNVIMM(IENB,SUB,IENSUB)) Q:'IENSUB D
  1. . . . S ^TMP("PXK",$J,"IMM",PXAK,SUB,IENSUB,"BEFORE")=$G(^AUPNVIMM(IENB,SUB,IENSUB,0))
  1. ;
  1. Q