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

BIVACED1.m

Go to the documentation of this file.
  1. BIVACED1 ;IHS/CMI/MWR - EDIT VACCINES.; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;**5**;JUL 01,2013
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; EDIT VACCINE FIELDS: CURRENT LOT, ACTIVE, VIS DATE DEFAULT.
  1. ;; PATCH 1: Comment out unnecessary forecast check. EDIT+34
  1. ;; PATCH 5: Display leading zero if default volume is less than 1. INIT+53
  1. ;
  1. ;
  1. ;----------
  1. INIT ;EP
  1. ;---> Initialize variables and list array.
  1. ;
  1. S VALMSG="Enter ?? for more actions."
  1. S VALM("TITLE")=$$LMVER^BILOGO
  1. ;
  1. ;---> Build Listmanager array.
  1. K ^TMP("BILMVA",$J),BIVAC
  1. ;
  1. N BILINE,BIENT,BIN,BIVAC1,I
  1. S BILINE=0,BIENT=0,BIN=0
  1. D
  1. .;I '$D(BICVXD) S BIXREF="AC" Q
  1. .I '$D(BICVXD) S BIXREF="U" Q
  1. .S BIXREF="C"
  1. ;
  1. F S BIN=$O(^AUTTIMM(BIXREF,BIN)) Q:BIN="" D
  1. .N BI0,BIIEN,X,Y
  1. .S BIIEN=$O(^AUTTIMM(BIXREF,BIN,0))
  1. .Q:$D(BIVAC1(BIIEN))
  1. .S BIVAC1(BIIEN)="",BI0=^AUTTIMM(BIIEN,0)
  1. .;
  1. .;---> Set Item# and build Item# array=IEN of Vaccine.
  1. .S BIENT=BIENT+1,BIVAC(BIENT)=BIIEN
  1. .;
  1. .;---> Item#.
  1. .S X=" "_$S(BIENT<10:" "_BIENT,1:BIENT)
  1. .;
  1. .;---> Vaccine (Short) Name.
  1. .S X=X_" "_$P(BI0,U,2)
  1. .S X=$$PAD^BIUTL5(X,17,".")
  1. .;
  1. .;---> HL7 Code.
  1. .S X=X_"("_$P(BI0,U,3)_")"
  1. .S X=$$PAD^BIUTL5(X,24,".")
  1. .;
  1. .;---> Active/Inactive.
  1. .S X=X_$S($P(BI0,U,7)=1:"Inactive",$P(BI0,U,7)=0:"Active",1:"")
  1. .;
  1. .;---> Default Lot#.
  1. .D:$P(BI0,U,4)
  1. ..S X=$$PAD^BIUTL5(X,35,".")
  1. ..S X=X_$$LOTTX^BIUTL6($P(BI0,U,4))
  1. .;
  1. .;---> VIS Default Date.
  1. .D:$P(BI0,U,13)
  1. ..S X=$$PAD^BIUTL5(X,50,".")
  1. ..S X=X_$$SLDT2^BIUTL5($P(BI0,U,13),1)
  1. .;
  1. .;---> Volume Default.
  1. .D:$P(BI0,U,18)
  1. ..S X=$$PAD^BIUTL5(X,60,".")
  1. ..;
  1. ..;********** PATCH 5, v8.5, JUL 01,2013, IHS/CMI/MWR
  1. ..;---> Display leading zero if default volume is less than 1.
  1. ..N Y S Y=$P(BI0,U,18) S:(Y<1) Y="0"_Y
  1. ..S X=X_" "_Y_" ml "
  1. ..;S X=X_" "_$P(BI0,U,18)_" ml "
  1. ..;**********
  1. .;
  1. .;---> Forecast On/Off.
  1. .S X=$$PAD^BIUTL5(X,72,".")
  1. .S X=X_$S($$IMMVG^BIUTL2(BIIEN,3):"YES",1:"NO")
  1. .;
  1. .;---> Set this Vaccine display row and index in ^TMP.
  1. .D WRITE(.BILINE,X,,BIENT)
  1. .;D WRITE(.BILINE,,,BIENT)
  1. ;
  1. ;---> Finish up Listmanager List Count.
  1. S VALMCNT=BILINE
  1. I VALMCNT>12 D
  1. .S VALMSG="Scroll down to view more. Type ?? for more actions."
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. WRITE(BILINE,BIVAL,BIBLNK,BIENT) ;EP
  1. ;---> Write lines to ^TMP (see documentation in ^BIW).
  1. ;---> Parameters:
  1. ; 1 - BILINE (ret) Last line# written.
  1. ; 2 - BIVAL (opt) Value/text of line (Null=blank line).
  1. ;
  1. Q:'$D(BILINE)
  1. D WL^BIW(.BILINE,"BILMVA",$G(BIVAL),$G(BIBLNK),$G(BIENT))
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. EDIT ;EP
  1. ;---> Edit a Vaccine.
  1. ;---> Steps:
  1. ; 1) This entry point is called by the Protocol:
  1. ; BI VACCINE EDIT, an action on the
  1. ; List Manager menu protocol: BI MENU VACCINE EDIT.
  1. ;
  1. ; 2) This code calls ScreenMan form:
  1. ; BI FORM-VACCINE EDIT to build BI local array
  1. ; of data for add/edit of a Vaccine.
  1. ; Data already stored in the BI local array is loaded
  1. ; into the form by LOADVAC^BIVACED1, which is called
  1. ; by the Pre-Action of Block for Vaccine Edit.
  1. ;
  1. ; 3) Use BI local array to send data to FDIE^BIFMAN.
  1. ;
  1. ;---> Call the Listmanager Generic Selector of items displayed.
  1. N VALMY
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. ;
  1. ;---> Check that a Listman Item was passed.
  1. I '$D(VALMY) D ERRCD^BIUTL2(406,,1) D RESET Q
  1. ;---> Now set Y=Item# selected from the list.
  1. N Y S Y=$O(VALMY(0))
  1. I '$G(Y) D ERRCD^BIUTL2(406,,1) D RESET Q
  1. I $G(BIVAC(Y))="" D ERRCD^BIUTL2(502,,1) D RESET Q
  1. N BIDA S BIDA=+BIVAC(Y)
  1. I $G(^AUTTIMM(BIDA,0))="" D ERRCD^BIUTL2(502,,1) D RESET Q
  1. D EDITSCR(BIDA)
  1. D FULL^VALM1
  1. D RESET
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. EDITSCR(BIVAC) ;EP
  1. ;---> Edit the fields of a vaccine.
  1. ;---> Parameters:
  1. ; 1 - BIVAC (req) Vaccine IEN.
  1. ;
  1. ;---> Check that IEN of vaccine is present.
  1. I '$G(BIVAC) D ERRCD^BIUTL2(441,,1) Q
  1. N Y S Y=^AUTTIMM(BIVAC,0)
  1. N BI
  1. S BI("A")=$P(Y,U,4) ;Default Lot Number IEN.
  1. S BI("B")=$P(Y,U,7) ;Active/Inactive.
  1. S BI("C")=$P(Y,U,13) ;VIS Default Date.
  1. S BI("D")=$P(Y,U,18) ;Default Volume.
  1. ;
  1. ;---> Call Screenman to build BI local array of data by user.
  1. N BISAVE
  1. N DR S DR="[BI FORM-VACCINE EDIT]"
  1. D DDS^BIFMAN(9999999.14,DR,BIVAC,"S",.BISAVE,.BIPOP)
  1. ;
  1. ;---> If user saved data, call ^BIUTL7 to save it.
  1. Q:('$G(BISAVE))
  1. ;
  1. ;---> Update data for this vaccine. (Make this an RPC in the future?)
  1. ;---> Add contraindication with a reason of Immune Deficiency.
  1. N BIERR,BIFLD
  1. S BIFLD(.04)=BI("A"),BIFLD(.07)=BI("B")
  1. S BIFLD(.13)=BI("C"),BIFLD(.18)=BI("D")
  1. D FDIE^BIFMAN(9999999.14,BIVAC,.BIFLD,.BIERR)
  1. ;
  1. ;---> If there was an error, display it.
  1. D:$G(BIERR)]""
  1. .D CLEAR^VALM1,FULL^VALM1,TITLE^BIUTL5("EDIT VACCINE FIELDS")
  1. .W !!?3,BIERR D DIRZ^BIUTL3()
  1. ;
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. LOADVAC ;EP
  1. ;---> Code to load Vaccine data for ScreenMan Edit form.
  1. ;---> Called by Pre Action of Block BI BLK-VACCINE EDIT on
  1. ;---> Form BI FORM-VACCINE EDIT.
  1. ;
  1. ;---> Load Parent/Guardian.
  1. I $G(BI("A"))]"" D PUT^DDSVALF(1,,,BI("A"),"I")
  1. ;
  1. ;---> Load Active status.
  1. I $G(BI("B"))]"" D PUT^DDSVALF(2,,,BI("B"),"I")
  1. ;
  1. ;---> Load VIS Default Date.
  1. I $G(BI("C"))]"" D PUT^DDSVALF(3,,,BI("C"),"I")
  1. ;
  1. ;---> Load Mother's HBsAG Status.
  1. I $G(BI("D"))]"" D PUT^DDSVALF(4,,,BI("D"),"I")
  1. ;
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. RESET ;EP
  1. ;---> Update partition for return to Listmanager.
  1. I $D(VALMQUIT) S VALMBCK="Q" Q
  1. D TERM^VALM0 S VALMBCK="R"
  1. D INIT^BIVACED,HDR^BIVACED()
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. CHGORDR ;EP
  1. ;---> Change order of display of Vaccine Table (by Short Name or CVX).
  1. D
  1. .I '$D(BICVXD) S BICVXD="" Q
  1. .K BICVXD
  1. D RESET
  1. Q