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

AMER1A.m

Go to the documentation of this file.
  1. AMER1A ; IHS/ANMC/GIS -ISC - OVERFLOW FROM AMER1 ;
  1. ;;3.0;ER VISIT SYSTEM;**2,5,8,9**;MAR 03, 2009;Build 4
  1. ;
  1. QA1 ; ENTRY POINT FROM AMER1 ;NAME
  1. S DIC=2,DIC(0)="AEMQ"
  1. S DIC("A")="Enter the patient's NAME or LOCAL CHART NUMBER: "
  1. D ^DIC K DIC,AUPNPAT,AUPNDOB,AUPNDOD,AUPNDAYS,AUPNSEX
  1. I $D(DTOUT) K DTOUT S AMERQUIT="" Q
  1. I Y'=-1 S AMERDFN=+Y
  1. I Y'=-1,$D(^AMERADM("B",+Y)) S AMERRUN="EDIT" Q
  1. I Y'=-1 S Y=+Y Q
  1. I Y=-1,X'="" S AMERQUIT="" Q
  1. W !!,*7,"Do you want to register a new patient"
  1. S %=2 D YN^DICN I $D(DTOUT)!($E(%Y)=U) K DTOUT S AMERQUIT="" Q
  1. I "Nn"[$E(%Y) S AMERQUIT="" Q
  1. W !!,"Are you absolutely sure that this patient has never been registered",!,"here before"
  1. S %=2 D YN^DICN I $D(DTOUT)!($E(%Y)=U) K DTOUT S AMERQUIT="" Q
  1. I "Nn"[$E(%Y) D MSG G QA1
  1. S AMERRUN="REG"
  1. Q
  1. ;
  1. MSG ; ENTRY POINT FROM AMER
  1. W !!!,"There are several tricks you can use to find this patient. Try entering a"
  1. W !,"partial name like 'DOE,JO' instead of 'DOE,JOHN'. Ask about other first"
  1. W !,"names and married names. Try entering a date of birth in the format 9/9/99."
  1. W !,"This should narrow down the list of possible choices."
  1. W !!!
  1. Q
  1. ;
  1. CHECK I '$D(^AMERADM("B")) W !!!,*7,"Sorry...I have no record of any current admissions to the ER.",!!! Q ; EP FROM ^AMER2
  1. PICK ;
  1. N A,B,C,Y,F,N,%,E,G
  1. K ^TMP("AMER TEMP",$J)
  1. W !,"The following patients are currently admitted to the ER =>",!!
  1. ;IHS/OIT/SCR - patch 2 start changes to order display
  1. ;W ?3,"NAME",?18,"DOB",?31,"CHART",?40,"ADMISSION",?59,"PRESENTING COMPLAINT"
  1. ;S %="",I=0,$P(%,"-",80)="" W !,%
  1. ;F N=0:0 S N=$O(^AMERADM(N)) Q:'N S A=^(N,0) D PW
  1. S I=$$ADMDISP() ;RETURNS THE COUNT
  1. ;Q:I<1
  1. I I<1 S AMERQUIT="" ;IHS/OIT/SCR 10/14/09 patch 2 beta1
  1. W !
  1. Q
  1. ;PW ;
  1. ;I $D(AMERTRG),$P(^AMERADM(N,0),U,19)?1N.N Q
  1. ;S I=I+1,B=$P(^DPT(N,0),U),B=I_") "_$E(B,1,13),C=$P(A,U,9),E=$P(A,U,2),F=$P(A,U,10),G=$P(A,U,8),^TMP("AMER TEMP",$J,I,N)=""
  1. ;S F=$E(F,1,20),Y=E X ^DD("DD") S E=Y,Y=G X ^DD("DD") S G=Y
  1. ;W !,B,?18,G,?31,C,?40,E,?59,F
  1. ;Q
  1. ;IHS/OIT/SCR - patch 2 end changes to order display
  1. ACT ; ENTRY POINT FROM MENU
  1. I $D(IOF) W @IOF
  1. D CHECK
  1. S DIR(0)="E",DIR("A")="Press 'Return to continue" D ^DIR
  1. I $D(IOF) W @IOF
  1. K DIR(0),DIR("A")
  1. Q
  1. ;
  1. ADMDISP() ;IHS/OIT/SCR patch 2: Provides a toggle for display order
  1. N DIR,Y,AMERNUM
  1. S AMERNUM=-1
  1. S AMERNUM=$$SORTADM(1)
  1. W !
  1. ;IHS/OIT/SCR 10/15/09 patch 2 beta1 added next two lines
  1. I AMERNUM=0 W !,"All patients have been processed" Q AMERNUM
  1. I AMERNUM=1 Q AMERNUM
  1. S DIR(0)="Y",DIR("A")="Would you like to sort by ADMISSION time" S DIR("B")="N"
  1. D ^DIR
  1. I +Y=1 D
  1. .S AMERNUM=$$SORTADM(2)
  1. .W !
  1. .S DIR(0)="Y",DIR("A")="Would you like to sort by PATIENT NAME " S DIR("B")="N"
  1. .D ^DIR
  1. .I +Y=1 S AMERNUM=$$ADMDISP()
  1. .W !
  1. .Q
  1. Q AMERNUM
  1. ;
  1. SORTADM(AMERSORT) ;IHS/OIT/SCR patch 2: Displays ER ADMISSION in identified order
  1. N AMERNAME,AMERINDX,AMERARRY,AMERDOB,AMERCHRT,AMERCOMP,AMERTIME,AMERIDX2,AMERTIMF,AMERCNT
  1. I $G(AMERSORT)="" S AMERSORT=1
  1. S AMERINDX=0
  1. S AMERIDX2=0
  1. I AMERSORT=1 D
  1. .;SORT BY NAME
  1. .K ^TMP("AMER TEMP",$J)
  1. .F S AMERINDX=$O(^AMERADM(AMERINDX)) Q:AMERINDX="B" D
  1. ..I $D(AMERTRG),$P(^AMERADM(AMERINDX,0),U,19)?1N.N Q ;IHS/OIT/SCR 10/14/09 patch 2 beta1
  1. ..S AMERNAME=$P($G(^DPT(AMERINDX,0)),"^",1)
  1. ..Q:AMERNAME=""
  1. ..I $G(AMERARRY(AMERNAME))'="" D
  1. ...S AMERARRY(AMERNAME,AMERIDX2)=AMERINDX
  1. ...S AMERIDX2=AMERIDX2+1
  1. ...Q
  1. ..I $G(AMERARRY(AMERNAME))="" D
  1. ...S AMERIDX2=0
  1. ...S AMERARRY(AMERNAME)=AMERINDX
  1. ..Q
  1. .S AMERCNT=0
  1. .Q:'$D(AMERARRY) ;IHS/OIT/SCR 10/14/09 patch 2 beta1
  1. .W !!,?3,"NAME",?18,"DOB",?31,"CHART",?40,"ADMISSION",?59,"PRESENTING COMPLAINT",!
  1. .S AMERINDX=""
  1. .F S AMERINDX=$O(AMERARRY(AMERINDX)) Q:AMERINDX="" D
  1. ..S AMERNAME=AMERINDX
  1. ..S AMERCNT=AMERCNT+1
  1. ..S AMERDPT=$G(AMERARRY(AMERNAME))
  1. ..S ^TMP("AMER TEMP",$J,AMERCNT,AMERDPT)=""
  1. ..S AMERDOB=$P($G(^AMERADM(AMERDPT,0)),"^",8)
  1. ..S Y=AMERDOB X ^DD("DD") S AMERDOB=Y ;FORMAT DATE
  1. ..S AMERCHRT=$P($G(^AMERADM(AMERDPT,0)),"^",9)
  1. ..S AMERTIME=$P($G(^AMERADM(AMERDPT,0)),"^",2)
  1. ..S Y=AMERTIME X ^DD("DD") S AMERTIME=Y
  1. ..;AMER*3.0*8;Switched to field 23
  1. ..;S AMERCOMP=$P($G(^AMERADM(AMERDPT,0)),"^",10)
  1. ..S AMERCOMP=$P($G(^AMERADM(AMERDPT,23)),"^",1)
  1. ..S AMERCOMP=$E(AMERCOMP,1,21)
  1. ..S AMERNAME=$E(AMERNAME,1,13)
  1. ..W !,AMERCNT_")",?3,AMERNAME,?18,AMERDOB,?31,AMERCHRT,?40,AMERTIME,?59,AMERCOMP
  1. ..;
  1. ..;AMER*3*5;Added auditing call
  1. ..D LOG^AMERBUSA("P","Q","AMER1A","AMER: ER Patient Listing",AMERDPT)
  1. ..;
  1. ..S AMERIDX2=0
  1. ..F S AMERIDX2=$O(AMERARRY(AMERINDX,AMERIDX2)) Q:AMERIDX2="" D
  1. ...S AMERCNT=AMERCNT+1
  1. ...S AMERTIME=AMERINDX
  1. ...S AMERDPT=$G(AMERARRY(AMERNAME,AMERIDX2))
  1. ...S ^TMP("AMER TEMP",$J,AMERCNT,AMERDPT)=""
  1. ...S AMERNAME=AMERINDX
  1. ...S AMERNAME=$E(AMERNAME,1,13)
  1. ...S AMERDOB=$P($G(^AMERADM(AMERDPT,0)),"^",8)
  1. ...S Y=AMERDOB X ^DD("DD") S AMERDOB=Y ;FORMAT DATE
  1. ...S AMERCHRT=$P($G(^AMERADM(AMERDPT,0)),"^",9)
  1. ...S Y=AMERTIME X ^DD("DD") S AMERTIME=Y
  1. ...;AMER*3.0*9;Switched to field 23
  1. ...;S AMERCOMP=$P($G(^AMERADM(AMERDPT,0)),"^",10)
  1. ...S AMERCOMP=$P($G(^AMERADM(AMERDPT,23)),"^",1)
  1. ...S AMERCOMP=$E(AMERCOMP,1,21)
  1. ...W !,AMERCNT_")",?3,AMERNAME,?18,AMERDOB,?31,AMERCHRT,?40,AMERTIME,?59,AMERCOMP
  1. ...Q
  1. ..Q
  1. .Q
  1. I AMERSORT=2 D
  1. .;SORT BY ADMISSION TIME STAMP
  1. .K ^TMP("AMER TEMP",$J)
  1. .F S AMERINDX=$O(^AMERADM(AMERINDX)) Q:AMERINDX="B" D
  1. ..I $D(AMERTRG),$P(^AMERADM(AMERINDX,0),U,19)?1N.N Q ;IHS/OIT/SCR 10/14/09 patch 2 beta1
  1. ..S AMERTIME=$P($G(^AMERADM(AMERINDX,0)),"^",2)
  1. ..Q:AMERTIME=""
  1. ..I $G(AMERARRY(AMERTIME))'="" D
  1. ...S AMERARRY(AMERTIME,AMERIDX2)=AMERINDX
  1. ...S AMERIDX2=AMERIDX2+1
  1. ...Q
  1. ..I $G(AMERARRY(AMERTIME))="" D
  1. ...S AMERIDX2=0
  1. ...S AMERARRY(AMERTIME)=AMERINDX
  1. ..Q
  1. .S AMERINDX=""
  1. .S AMERCNT=0
  1. .Q:'$D(AMERARRY) ;IHS/OIT/SCR 10/14/09 patch 2 beta1
  1. .W !!
  1. .W !,?3,"NAME",?18,"DOB",?31,"CHART",?40,"ADMISSION",?59,"PRESENTING COMPLAINT",!
  1. .F S AMERINDX=$O(AMERARRY(AMERINDX)) Q:AMERINDX="" D
  1. ..S AMERCNT=AMERCNT+1
  1. ..S AMERTIME=AMERINDX
  1. ..S AMERDPT=$G(AMERARRY(AMERTIME))
  1. ..S ^TMP("AMER TEMP",$J,AMERCNT,AMERDPT)=""
  1. ..S AMERNAME=$P($G(^DPT(AMERDPT,0)),"^",1)
  1. ..S AMERNAME=$E(AMERNAME,1,13)
  1. ..S AMERDOB=$P($G(^AMERADM(AMERDPT,0)),"^",8)
  1. ..S Y=AMERDOB X ^DD("DD") S AMERDOB=Y ;FORMAT DATE
  1. ..S AMERCHRT=$P($G(^AMERADM(AMERDPT,0)),"^",9)
  1. ..S Y=AMERTIME X ^DD("DD") S AMERTIMF=Y
  1. ..;AMER*3.0*9;Switched to field 23
  1. ..;S AMERCOMP=$P($G(^AMERADM(AMERDPT,0)),"^",10)
  1. ..S AMERCOMP=$P($G(^AMERADM(AMERDPT,23)),"^",1)
  1. ..S AMERCOMP=$E(AMERCOMP,1,21)
  1. ..W !,AMERCNT_")",?3,AMERNAME,?18,AMERDOB,?31,AMERCHRT,?40,AMERTIMF,?59,AMERCOMP
  1. ..S AMERIDX2=""
  1. ..F S AMERIDX2=$O(AMERARRY(AMERTIME,AMERIDX2)) Q:AMERIDX2="" D
  1. ...S AMERCNT=AMERCNT+1
  1. ...S AMERTIME=AMERINDX
  1. ...S AMERDPT=$G(AMERARRY(AMERINDX,AMERIDX2))
  1. ...S ^TMP("AMER TEMP",$J,AMERCNT,AMERDPT)=""
  1. ...S AMERNAME=$P($G(^DPT(AMERDPT,0)),"^",1)
  1. ...S AMERNAME=$E(AMERNAME,1,13)
  1. ...S AMERDOB=$P($G(^AMERADM(AMERDPT,0)),"^",8)
  1. ...S Y=AMERDOB X ^DD("DD") S AMERDOB=Y ;FORMAT DATE
  1. ...S AMERCHRT=$P($G(^AMERADM(AMERDPT,0)),"^",9)
  1. ...S Y=AMERTIME X ^DD("DD") S AMERTIMF=Y
  1. ...;AMER*3.0*9;Switched to field 23
  1. ...;S AMERCOMP=$P($G(^AMERADM(AMERDPT,0)),"^",10)
  1. ...S AMERCOMP=$P($G(^AMERADM(AMERDPT,23)),"^",1)
  1. ...S AMERCOMP=$E(AMERCOMP,1,21)
  1. ...W !,AMERCNT_")",?3,AMERNAME,?18,AMERDOB,?31,AMERCHRT,?40,AMERTIMF,?59,AMERCOMP
  1. ...Q
  1. ..Q
  1. .Q
  1. Q AMERCNT