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

AMEROUT1.m

Go to the documentation of this file.
  1. AMEROUT1 ; IHS/ANMC/GIS - SORT CONTROL FOR OUTPUT ;
  1. ;;3.0;ER VISIT SYSTEM;**5**;MAR 03, 2009;Build 14
  1. ;
  1. RUN D SEL I $D(AMERQUIT) Q
  1. D FSET,PRINT
  1. EXIT K ZTSAVE,ZTSK,ZTIO,ZTDESC,ZTRTN
  1. Q
  1. ;
  1. SEL ; SELECT SORT
  1. W !!
  1. S DIR("A")="Sort by"
  1. S1 ; SORT BY LOOP REENTRY POINT
  1. S DIR(0)="N"_$S(AMERRTYP'="A":"O",1:"")_"^1:"_(AMERPTOT+AMERVTOT)_":0"
  1. S DIR("??")="^D SORT^AMEROUT",DIR("?")="Select an attribute of the patient or the visit. Enter a number..."
  1. I $D(AMERNXT) S DIR("A")=AMERNXT K AMERNXT
  1. D ^DIR K DIR
  1. I $E(X)=U,X'="" S AMERQUIT="" Q
  1. D OUT^AMEROUT I $D(AMERQUIT) Q
  1. I X="",$D(AMERSTAT) Q
  1. I X="" Q
  1. I Y?1.2N,$D(^TMP("AMER",$J,7,Y)) S Y=^(Y),AMERATNM=$P(^AMER(2.2,+Y,0),U) W " (",AMERATNM,")" D MET G LOOP
  1. S X=Y,DIC="^AMER(2.2,",DIC(0)="EQ",DIC("S")="I $P(^(0),U,2)=AMERRTYP"
  1. D ^DIC K DIC
  1. D OUT^AMEROUT I $D(AMERQUIT) Q
  1. S Y=+Y,AMERATNM=$P(^AMER(2.2,+Y,0),U) D MET
  1. LOOP I $D(AMERQUIT) Q
  1. I $G(AMERRTYP)="A" Q
  1. D ADD
  1. I $G(AMERSTAT) Q
  1. I AMERRTYP="V"!(AMERRTYP="S") W !! D S1^AMEROUT S DIR("A")="Then sort by" G S1
  1. Q
  1. ;
  1. ADD I $D(AMERBY),$D(AMERFR),$D(AMERTO),$D(BY),$D(FR),$D(TO)
  1. E S AMERQUIT="" Q
  1. A1 S:BY="'" BY="" S:BY]"" BY=BY_",",FR=FR_",",TO=TO_","
  1. S BY=BY_AMERBY,FR=FR_AMERFR,TO=TO_AMERTO
  1. Q
  1. ;
  1. MET ; METADICTIONARY LOOKUP
  1. K AMERSCR,AMERBY
  1. I 'Y S AMERQUIT="" W " ??",*7 Q
  1. I '$D(^AMER(2.2,+Y,0)) S AMERQUIT="" W " ??",*7 Q
  1. S %=^AMER(2.2,+Y,0),AMERCAT=$P(%,U,3),AMERGBL=$P(%,U,4) S:$D(^(2)) AMERSCR=^(2) I $D(^(1)) S AMERBY=^(1)
  1. I AMERRTYP="V" D @("M"_AMERCAT_"^AMEROUT2") Q
  1. I AMERRTYP="A" D AGE Q
  1. Q
  1. ;
  1. FSET ; FINAL ADJUSTMENTS OF BY,FR,TO
  1. I AMERRTYP="A" Q
  1. I $D(AMERSTAT),$G(FLDS)="" S FLDS="!.01"
  1. I AMERDISP=2,BY="" S BY="'@.01,@.02",FR=AMERD1_",",TO=AMERD2_"," Q
  1. I AMERDISP=2 D Q
  1. .I BY="5,.01" S BY=BY_",5,.01:DIAGNOSIS;N;""DX DESCRIPTION: """
  1. .S BY=BY_",",FR=FR_",",TO=TO_"," ; FINAL SET OF BY,FR,TO
  1. .S BY="'@.01,"_BY,FR=AMERD1_","_FR_",",TO=AMERD2_","_TO_","
  1. .I '$D(AMERSTAT) S BY=BY_",.02"
  1. .Q
  1. I AMERDISP=3,BY="" S BY="@.01",FR=AMERD1,TO=AMERD2 Q
  1. I BY="5,.01" S BY=BY_",5,.01:DIAGNOSIS;N;""DX DESCRIPTION: """
  1. I AMERDISP=3 S BY="'@.01,"_BY S:'$D(AMERSTAT) BY=BY_",@.01" S FR=AMERD1_","_FR_",",TO=AMERD2_","_TO_"," Q
  1. I BY="" S BY="@.16",FR=(9999999-AMERD2),TO=(9999999-AMERD1) Q
  1. S BY="'@.01,"_BY S:'$D(AMERSTAT) BY=BY_",@.16" S FR=AMERD1_","_FR_",",TO=AMERD2_","_TO_","
  1. Q
  1. ;
  1. PRINT ; GENERATE OUTPUT - ENTRY POINT FROM AMEROUT
  1. I AMERRTYP'="A" S DIC="^AMERVSIT(",DIOBEG="S AMERNOTE="""",^UTILITY($J,2)=""D:$D(AMERNOTE) NOTE^AMEROUT1 ""_^UTILITY($J,2)"
  1. S Y=AMERD1 D DD^%DT S AMERD1=Y
  1. S Y=AMERD2 D DD^%DT S AMERD2=Y
  1. I $G(AMERHDR)'="" S DHD=$$AMERDHD^AMERREPT(AMERHDR,AMERD1,AMERD2)
  1. E S DHD="ER REPORT"
  1. ENDIP D EN1^DIP
  1. ;
  1. ;AMER*3.0*5
  1. D LOG^AMERBUSA("P","Q","AMEROUT1","AMER: Printed "_AMERHDR_" for "_AMERD1_" to "_$P(AMERD2,"@"),"")
  1. ;
  1. I $D(IOST),IOST["C-",'$D(DIRUT),'$D(DTOUT) W ! S DIR(0)="E",DIR("A")="Press 'Return to continue" D ^DIR
  1. Q
  1. ;
  1. TASK ; BACKGROUND JOB ENTRY POINT
  1. ;
  1. Q
  1. ;
  1. NOTE ;
  1. K AMERNOTE N I,X
  1. I '$D(^TMP("AMER",$J,8)) Q
  1. W "Please note: the following criteria were used to screen entries:",!
  1. S X="" F I=1:1 S X=$O(^TMP("AMER",$J,8,X)) Q:X="" W !,?3,I,") ",X," = """,^(X),""""
  1. W !!!
  1. Q
  1. ;
  1. AGE ; ENTRY POINT
  1. S DIC="^AMERVSIT(",FR=AMERD1,TO=AMERD2
  1. S FLDS="!.02:NUMBER,"_AMERBY_",!D ^AMERBIN"
  1. S BY="'@.01,.02:NUMBER"
  1. S DHD="@"
  1. Q
  1. ;
  1. EN1 ; ENTRY POINT FORM OPTION AMER LOG
  1. ; PRINT RECENT VISITS
  1. N BY,FR,TO,FLDS,DIC,%,AMERRTYP,AMERHDR,AMERD1,AMERD2,AMERDATE
  1. S AMERRTYP="V"
  1. D NOW^%DTC
  1. S X1=X ;THE DATE THAT X2 WILL BE SUBTRACTED FROM IN FILEMAN FORMAT
  1. S X2=-1 ;TO GET THE DAY BEFORE...
  1. D C^%DTC
  1. S AMERDATE=X
  1. S FR=$P(X,".",1)
  1. S TO=FR
  1. S FLDS="[AMER BRIEF",BY="@.01"
  1. S DIC="^AMERVSIT("
  1. S Y=FR D DD^%DT S AMERD1=Y
  1. S Y=TO D DD^%DT S AMERD2=Y
  1. D SYNCHERS^AMERERS(AMERD1,AMERD2)
  1. S AMERHDR="ER DAILY LOG REPORT"
  1. S DHD=$$AMERDHD^AMERREPT(AMERHDR,AMERD1,AMERD2)
  1. D EN1^DIP
  1. ;
  1. ;AMER*3.0*5
  1. D LOG^AMERBUSA("P","Q","AMEROUT1","AMER: Printed ER Daily Log Report","")
  1. ;
  1. I $D(IOST),IOST["C-",'$D(DIRUT),'$D(DTOUT) W ! S DIR(0)="E",DIR("A")="Press 'Return to continue" D ^DIR
  1. Q