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

AG.m

Go to the documentation of this file.
  1. AG ; IHS/ASDS/EFG - INITIAL ROUTINE AND UTILITY SUB-ROUTINES ;
  1. ;;7.1;PATIENT REGISTRATION;**1,2,12**;AUG 25, 2005;Build 1
  1. ;IHS/OIT/NKD AG*7.1*12 REVISED VERSION/PATCH DISPLAY
  1. ;
  1. ; ****************************************************************
  1. ;
  1. S AG("VERDT")=""
  1. S AG("VERSION")=""
  1. S Y=""
  1. S (AGIEN,Y)=$O(^DIC(9.4,"C","AG",Y))
  1. I Y S AG("VERSION")=^DIC(9.4,Y,"VERSION")
  1. I AG("VERSION")]"" S Y=$O(^DIC(9.4,Y,22,"B",AG("VERSION"),""))
  1. I Y]"" D
  1. . S Y=$P(^DIC(9.4,AGIEN,22,Y,0),U,2)
  1. . D DD^%DT
  1. . S AG("VERDT")=Y
  1. I '$D(IOF) D
  1. . S IOP=ION
  1. . D ^%ZIS
  1. W $$S^AGVDF("IOF"),!?22
  1. F I=1:1:35 W "*"
  1. W !?22,"*",?56,"*"
  1. W !?22,"* INDIAN HEALTH SERVICE *"
  1. W !?22,"* PATIENT REGISTRATION SYSTEM *"
  1. ;IHS/OIT/NKD AG*7.1*12 - REVISED DISPLAY - START OLD CODE
  1. ;I AG("VERSION")]"" D
  1. ;. ;W !?22,"* VERSION ",AG("VERSION"),", ",AG("VERDT"),?56,"*"
  1. ;. W !?22,"* VERSION ",AG("VERSION") W ".",$$CURPATCH
  1. ;. W ", ",AG("VERDT"),?56,"*"
  1. ;IHS/OIT/NKD AG*7.1*12 - END OLD CODE - START NEW CODE
  1. D
  1. . N AGTMP
  1. . S AGTMP=$$LAST^XPDUTL("AG","7.1") I +AGTMP>0 W !?22,"* AG V7.1 P",+AGTMP,", ",$$FMTE^XLFDT($P(AGTMP,"^",2),"5D"),?56,"*"
  1. . S AGTMP=$$LAST^XPDUTL("AG","7.2") I +AGTMP>0 W !?22,"* AGMPI V7.2 P",+AGTMP,", ",$$FMTE^XLFDT($P(AGTMP,"^",2),"5D"),?56,"*"
  1. ;IHS/OIT/NKD AG*7.1*12 - END NEW CODE
  1. W !?22,"*",?56,"*",!?22
  1. F I=1:1:35 W "*"
  1. ;
  1. SITE ;EP - From options.
  1. I '$D(DUZ(2)) D SET^XBSITE G L4:'$D(DUZ(2))
  1. W !!?80-$L($P(^DIC(4,DUZ(2),0),U))\2,$P(^(0),U)
  1. W !!,$$CJ^XLFSTR("*** NOTE: IF YOU EDIT A PATIENT AND SEE THEIR NAME IN REVERSE VIDEO ***",IOM)
  1. W !,$$CJ^XLFSTR("*** WITH '(RHI)' BLINKING NEXT TO IT, IT MEANS THEY HAVE RESTRICTED ***",IOM)
  1. W !,$$CJ^XLFSTR("*** HEALTH INFORMATION ***",IOM)
  1. ;
  1. L4 ;
  1. W !
  1. K AG,I,AG("VERDT"),AG("VERSION")
  1. Q
  1. CURPATCH() ;EP - GET CURRENT PATCH LEVEL FOR HEADER
  1. N %,I,J
  1. S I=$O(^DIC(9.4,"B","IHS PATIENT REGISTRATION",0)) Q:'I 0
  1. S PENTRY=$O(^DIC(9.4,I,22,"B",AG("VERSION"),"")) Q:'PENTRY 0
  1. S PVER=$O(^DIC(9.4,I,22,PENTRY,"PAH","B"),-1) Q:'PVER 0
  1. S PVER=$P($G(^DIC(9.4,I,22,PENTRY,"PAH",PVER,0)),U)
  1. Q PVER
  1. ; ****************************************************************
  1. READ ;EP - Standard READ sub-routine for Registration.
  1. K DIRUT ;AG*7.1*2 ISSUE REPORTED DURING ALPHA TESTING
  1. K DFOUT,DTOUT,DUOUT,DQOUT,DLOUT R Y:DTIME I '$T W *7 R Y:5 G READ:Y="." I '$T S (DTOUT,Y)="" Q
  1. S:Y="/.," (DFOUT,Y)=""
  1. S:Y="" DLOUT=""
  1. S:Y="^" (DUOUT,Y)=""
  1. S:Y?1"?".E!(Y[U) (DQOUT,Y)=""
  1. Q
  1. ; ****************************************************************
  1. RTRN ;EP
  1. S Y=1
  1. I $E(IOST)="C" D
  1. . S DIR(0)="E"
  1. . D ^DIR
  1. . K DIR
  1. Q
  1. ; ****************************************************************
  1. NOW ;EP - Set AGTIME to time now.
  1. D NOW^%DTC
  1. S Y=%
  1. D DD^%DT
  1. S AGTIME=Y
  1. Q
  1. ; ****************************************************************
  1. LINE ;EP - Standard writeline sub-routine.
  1. W !
  1. F AG("LI")=1:1:78 W AG("LINE")
  1. W !
  1. Q
  1. ; ****************************************************************
  1. LINES ;EP "Standard" lines of characters.
  1. S AG("-")=""
  1. S $P(AG("-"),"-",80)=""
  1. S AG("=")=""
  1. S $P(AG("="),"=",80)=""
  1. S AG("*")=""
  1. S $P(AG("*"),"*",80)=""
  1. Q
  1. ; ****************************************************************
  1. CTR ;EP - Center X.
  1. S X=$J("",80-$L(X)\2)_X
  1. Q
  1. ; ****************************************************************
  1. YN ;EP
  1. W !!,"Enter a ""Y"" for YES or an ""N"" for NO."
  1. Q
  1. ; ****************************************************************
  1. KILL ;PEP - USED BY TPB TO CLEAN UP VARIABLES
  1. K ^UTILITY("DIQ1",$J)
  1. K %DT,A,AG,AGCHRT,AGI,AGLINE,AGOPT,AGPAT,AGSITE,AGUPDT
  1. K C,DFN,AG("DENT"),DFOUT,DIC,DIE,DLOUT,DTOUT,DQOUT,DUOUT,G,AGL,I,L
  1. K AGNEW,AGPCC,AGSCRN,AGTEMP,AG("TRBCODE"),X,XY,XYER,Y
  1. K AGAIN
  1. K AGSELECT
  1. Q
  1. ; ****************************************************************
  1. VIDEO ;EP
  1. S XY=$G(^%ZIS(2,IOST(0),"XY")),XYER=$P($G(^(5)),"^",6)
  1. I XYER]"" S XYER="W "_XYER
  1. Q
  1. ; ****************************************************************
  1. PTLK ;EP - Standard pt lookup using DIC.
  1. K DFN,RHIFLAG
  1. K DIC
  1. ;ENTER HERE IF YOU WISH TO KILL DIC YOURSELF
  1. PTLKNKIL ;
  1. S DIC="^AUPNPAT("
  1. S DIC(0)="AEMQ"
  1. D ^DIC
  1. ;I Y'=-1 S DFN=+Y D CHKRHI^AG
  1. I Y'=-1 S (AGPATDFN,DFN)=+Y D CHKRHI^AG ;IHS/SD/TPF AG*7.1*1 FIX PROBLEM WITH CURRENT PAT. IN EDIT SCREEN CHANGING WHEN PATIENT LOOKUP IS USED (DFN CHANGES)
  1. I $D(RHIFLAG) D
  1. . I RHIFLAG="A" W !,$$S^AGVDF("RVN"),$$S^AGVDF("BLN"),"This patient has Restricted Health Information",$$S^AGVDF("BLF"),$$S^AGVDF("RVF")
  1. ;ADD ALERT IF PATIENT HAS 'DATE OF DEATH' POPULATED IN VA
  1. ;PATIENT FILE
  1. I $D(DFN) I $$CHKDEATH^AGEDERR(DFN) W !!?5,"**** ALERT: DATE OF DEATH ON FILE FOR THIS PATIENT!!" H 2
  1. Q
  1. ; ****************************************************************
  1. HDR ;EP - Print menu header.
  1. K AGNEWINS,DIR
  1. D:'$D(AGOPT) ^AGVAR
  1. I $D(X) S X=$P(^DIC(19,$O(^DIC(19,"B",X,0)),0),U,2)
  1. S Y="AG"
  1. G SHDR
  1. ; ****************************************************************
  1. PHDR ;EP - Print parent menu header.
  1. D:$D(AGOPT) KILL
  1. I ^XUTL("XQ",$J,"T")=1 Q
  1. I ^XUTL("XQ",$J,^XUTL("XQ",$J,"T")-1)=-1 Q
  1. S X=$P(^DIC(19,+^XUTL("XQ",$J,^XUTL("XQ",$J,"T")-1),0),U,2)
  1. S Y=$P(^DIC(19,+^XUTL("XQ",$J,^XUTL("XQ",$J,"T")-1),0),U)
  1. I Y="AGMASTER" D ^AG Q
  1. ;
  1. SHDR ;EP - Screen header.
  1. I '$D(IOF) D ; defensive for menu jumping
  1. . S IOP="HOME"
  1. . D ^%ZIS
  1. I $D(X) D CTR
  1. W $$S^AGVDF("IOF")
  1. W !!?30,$S($E(Y,1,2)="AG":"PATIENT REGISTRATION",1:"")
  1. W !!?40-($L($P(^DIC(4,DUZ(2),0),U))\2),$P(^(0),U)
  1. I $D(X) W !!,X,!
  1. Q:$D(AG("RPT"))
  1. W !!,$$CJ^XLFSTR("*** NOTE: IF YOU EDIT A PATIENT AND SEE THEIR NAME IN REVERSE VIDEO ***",IOM)
  1. W !,$$CJ^XLFSTR("*** WITH '(RHI)' BLINKING NEXT TO IT, IT MEANS THEY HAVE RESTRICTED ***",IOM)
  1. W !,$$CJ^XLFSTR("*** HEALTH INFORMATION ***",IOM)
  1. Q
  1. ; ****************************************************************
  1. CPI ;EP
  1. W !?21,"*** CONFIDENTIAL PATIENT INFORMATION ***"
  1. Q
  1. ; ****************************************************************
  1. DFNTR ;EP - External Packages
  1. ;check transmission required fields for patient DFN
  1. D ^AGDATCK
  1. D ^AGBADATA
  1. K AG,AGOPT,AGQI,AGQT,AGTP
  1. Q
  1. ; ****************************************************************
  1. T ;EP - DISPLAY TIME IN HH:MM (AM/PM) FORMAT
  1. D NOW^%DTC
  1. S AG("TIME")=$P(%,".",2)
  1. S AG("HOUR")=$E(AG("TIME"),1,2)
  1. S AG("MINUTE")=$E(AG("TIME"),3,4)
  1. S AG("AMPM")="AM"
  1. I AG("HOUR")>11 D
  1. .S AG("AMPM")="PM"
  1. .I AG("HOUR")>12 S AG("HOUR")=AG("HOUR")-12
  1. W $J(+AG("HOUR"),2),":",AG("MINUTE")," ",AG("AMPM")
  1. Q
  1. ; ****************************************************************
  1. CHKNPP ;EP - CHECK PATIENT FOR NOTICE OF PRIVACY PRACTICES ENTRY
  1. K REC,NPPFLAG
  1. S REC=$O(^AUPNNPP("B",DFN,""),-1)
  1. Q:REC=""
  1. S NPPFLAG=""
  1. Q
  1. CHKRHI ;EP - CHECK PATIENT FOR RESTRICTED HEALTH INFORMATION
  1. Q:'$D(DFN)
  1. S REC=0 S RHIFLAG=""
  1. F S REC=$O(^AUPNRHI("B",DFN,REC)) Q:'REC D
  1. . I $P($G(^AUPNRHI(REC,0)),U,3)="A" S RHIFLAG="A"
  1. Q