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

BIPATUP2.m

Go to the documentation of this file.
  1. BIPATUP2 ;IHS/CMI/MWR - UPDATE PATIENT DATA 2; OCT 15, 2010
  1. ;;8.5;IMMUNIZATION;**13**;AUG 01,2016
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; IHS FORECAST. UPDATE PATIENT DATA, IMM FORECAST IN ^BIPDUE(.
  1. ;; NOTE!: An earlier version of this routine is saved in BIZPATUP2.
  1. ;; PATCH 8: Changes for Problem Doses retrieval from TCH Forecaster. DPROBS+10
  1. ;; PATCH 9: Mods to flag only problem components of combo vaccines. DPROBS+23
  1. ;; PATCH 10: Strip TCH's leading zero, so it matches RPMS CVX. DPROBS+32
  1. ;; PATCH 13: Changes to...aDD "C" xref on Vaccine IEN in ^BIPDUE SETDUE+24, KILLDUE+20
  1. ;
  1. ;----------
  1. DPROBS(BIFORC,BIPDSS,BIID) ;EP
  1. ;---> Check for any Input Doses that have Dose Problems.
  1. ;---> If any exist, build the string BIPDSS, concatenating the
  1. ;---> Visit IEN's with U.
  1. ;---> Parameters:
  1. ; 1 - BIFORC (req) Forecast string coming back from TCH.
  1. ; 2 - BIPDSS (ret) Returned string of V IMM IEN's that are Problem Doses.
  1. ; according to ImmServe.
  1. ; 3 - BIID (ret) NO LONGER USED. Immserve "Number of Input Doses" (Field 109 in 2010).
  1. ;
  1. ;********** PATCH 8, v8.5, MAR 15,2014, IHS/CMI/MWR
  1. ;---> Changes to accommodate new TCH Forecaster.
  1. ;
  1. S BIPDSS=""
  1. ;
  1. ;---> NOTE: Pulling History from the TCH Output String (NOT RPMS Input string).
  1. N BIFORC1,BIDOSE,N
  1. S BIFORC1=$P(BIFORC,"~~~",2)
  1. ;
  1. F N=1:1 S BIDOSE=$P(BIFORC1,"|||",N) Q:(BIDOSE="") D
  1. .;---> If this Input Dose was TCH-invalid (pc6), set V Imm IEN_%_CVX in
  1. .;---> Problem Doses string (BIPDSS).
  1. .;
  1. .;********** PATCH 9, v8.5, OCT 01,2014, IHS/CMI/MWR
  1. .;---> Mods to flag only problem components of combo vaccines.
  1. .;
  1. .;---> Quit if this is not a problem dose.
  1. .Q:('$P(BIDOSE,U,6))
  1. .;
  1. .N BICVXS S BICVXS=$P(BIDOSE,U,7)
  1. .;---> If piece 7 is null then not a combo, set BIPDSS and quit.
  1. .;
  1. .;********** PATCH 10, v8.5, MAY 30,2015, IHS/CMI/MWR
  1. .;---> Strip TCH's leading zero, so it matches RPMS CVX ("03"=3).
  1. .;I 'BICVXS S BIPDSS=BIPDSS_$P(BIDOSE,U)_"%"_$P(BIDOSE,U,2)_U Q
  1. .I 'BICVXS S BIPDSS=BIPDSS_$P(BIDOSE,U)_"%"_+$P(BIDOSE,U,2)_U Q
  1. .;**********
  1. .;
  1. .;--> Piece 7 equals one or more problem CVX's in this combo, delimited by comma.
  1. .N J F J=1:1 S BICVX=$P(BICVXS,",",J) Q:'BICVX D
  1. ..S BIPDSS=BIPDSS_$P(BIDOSE,U)_"%"_BICVX_U
  1. .;**********
  1. ;
  1. ;W !,BIPDSS R ZZZ
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. KILLDUE(BIDFN) ;EP
  1. ;---> Clear out any previously set Immunizations Due and
  1. ;---> any Forecasting Errors for this patient.
  1. ;---> Hardcoded to improve performance during massive reports.
  1. ;---> Parameters:
  1. ; 1 - BIDFN (req) Patient IEN.
  1. ;
  1. Q:'BIDFN
  1. ;
  1. ;---> Clear previous Immunizations Due.
  1. D:$D(^BIPDUE("B",BIDFN))
  1. .N N S N=0
  1. .F S N=$O(^BIPDUE("B",BIDFN,N)) Q:'N D
  1. ..N Y,Z S Y=$G(^BIPDUE(N,0))
  1. ..K ^BIPDUE(N),^BIPDUE("B",BIDFN,N)
  1. ..Q:Y=""
  1. ..S Z=$P(Y,U,4) K:Z ^BIPDUE("D",Z,N)
  1. ..S Z=$P(Y,U,5) K:Z ^BIPDUE("D",Z,N)
  1. ..S $P(^BIPDUE(0),U,4)=$P(^BIPDUE(0),U,4)-1
  1. ..;
  1. ..;********** PATCH 13, v8.5, AUG 01,2016, IHS/CMI/MWR
  1. ..;---> Kill "C" xref on 2nd pc, Vaccine IEN.
  1. ..S Z=$P(Y,U,2) K:Z ^BIPDUE("C",Z,N)
  1. ..;**********
  1. ..;
  1. .K ^BIPDUE("B",BIDFN),^BIPDUE("E",BIDFN)
  1. ;
  1. ;
  1. ;---> Clear previous Forecasting Errors.
  1. D:$D(^BIPERR("B",BIDFN))
  1. .N N S N=0
  1. .F S N=$O(^BIPERR("B",BIDFN,N)) Q:'N D
  1. ..K ^BIPERR("B",BIDFN,N),^BIPERR(N)
  1. ..S $P(^BIPERR(0),U,4)=$P(^BIPERR(0),U,4)-1
  1. .K ^BIPERR("B",BIDFN)
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. IMMSDT(DATE) ;EP
  1. ;---> Convert Immserve Date (format MMDDYYYY) TO FILEMAN
  1. ;---> Internal format.
  1. ;---> NOTE: This code is copied from routine ^BIUTL5 for speed.
  1. ;---> Any changes here should also be made to ^BIUTL5 too.
  1. Q:'$G(DATE) "NO DATE"
  1. Q ($E(DATE,5,9)-1700)_$E(DATE,1,2)_$E(DATE,3,4)
  1. ;
  1. ;
  1. ;----------
  1. PNMAGE(BISITE) ;EP - Return Age Appropriate in years for Pneumo at this site.
  1. ;---> Parameters:
  1. ; 1 - BISITE (req) User's DUZ(2)
  1. ;
  1. Q:'$G(BISITE) "65"
  1. N Y
  1. S Y=$P($G(^BISITE(BISITE,0)),U,10) S:'Y Y=65
  1. Q Y
  1. ;---> q6-years no longer used.
  1. ;Q:'$G(BISITE) "65^0"
  1. ;N Y,Z
  1. ;S Y=$P($G(^BISITE(BISITE,0)),U,10) S:'Y Y=65
  1. ;S Z=$P($G(^BISITE(BISITE,0)),U,22) S:'Z Z=0
  1. ;Q Y_U_Z
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. FLUALL(BISITE) ;EP - Return 1 to forecast Flu for ALL ages.
  1. ;---> Parameters:
  1. ; 1 - BISITE (req) User's DUZ(2)
  1. ;
  1. Q:'$G(BISITE) 1
  1. N Y S Y=$P($G(^BISITE(BISITE,0)),U,27)
  1. Q:(Y=0) 0
  1. Q 1
  1. ;
  1. ;
  1. ;----------
  1. ZOSTER(BISITE) ;EP - Return 1 if Zostervax should be forecast.
  1. ;---> Parameters:
  1. ; 1 - BISITE (req) User's DUZ(2)
  1. ;
  1. Q:'$G(BISITE) 1
  1. N Y S Y=$P($G(^BISITE(BISITE,0)),U,29)
  1. Q:(Y=0) 0
  1. Q 1
  1. ;
  1. ;
  1. ;----------
  1. SETDUE(BIDATA) ;EP
  1. ;---> Code to add this Immunization Due to BI PATIENT IMM DUE File #9002084.1.
  1. ;---> Hardcoded to improve performance during massive reports.
  1. ;---> Parameters:
  1. ; 1 - BIDATA (req) Data string (5 fields) for 0-node.
  1. ; BIDFN^Vaccine IEN^Dose#^Recommended Date^Date Past Due
  1. ;
  1. Q:$G(BIDATA)=""
  1. N A,B,BIDFN,M,N
  1. S M=^BIPDUE(0),N=$P(M,U,3),M=$P(M,U,4) S:'N N=1
  1. F Q:'$D(^BIPDUE(N)) S N=N+1
  1. S BIDFN=$P(BIDATA,U) Q:'BIDFN
  1. S ^BIPDUE(N,0)=BIDATA
  1. ;
  1. ;********** PATCH 1, v8.3.1, Dec 30,2008, IHS/CMI/MWR
  1. ;---> Add 6th pc, Date Forecast Calculated.
  1. S:$G(DT) $P(^BIPDUE(N,0),U,6)=DT
  1. ;**********
  1. ;
  1. S ^BIPDUE("B",BIDFN,N)=""
  1. S A=$P(BIDATA,U,4),B=$P(BIDATA,U,5)
  1. I A S ^BIPDUE("D",A,N)=""
  1. I B S ^BIPDUE("D",B,N)="",^BIPDUE("E",BIDFN,B,N)=""
  1. ;
  1. ;********** PATCH 13, v8.5, AUG 01,2016, IHS/CMI/MWR
  1. ;---> Add "C" xref on 2nd pc, Vaccine IEN.
  1. N V S V=$P(BIDATA,U,2)
  1. I V S ^BIPDUE("C",V,N)=""
  1. ;**********
  1. ;
  1. S $P(^BIPDUE(0),U,3,4)=N_U_(M+1)
  1. Q