- APCLSTMP ; IHS/CMI/LAB - CREATE SEARCH TEMPLATE FOR PGEN (PATIENT) REPORTS ;
- ;;2.0;IHS PCC SUITE;**5**;MAY 14, 2009
- ;
- EN ;EP - ENTRY POINT
- D EN1
- EXIT K APCLSDIC,APCLSNAM,APCLSTN,DHD
- Q
- EN1 ;EP Help
- K APCLQUIT
- W !
- W ?10,"*** You may enter an existing Template Name ***",! W ?30,"OR",! W ?12,"*** Save results in a New Template ***",! W ?30,"OR",! W ?25,"'^' to Exit",!!
- EN2 K DIC,DLAYGO S DLAYGO=.401,DIC="^DIBT(",DIC(0)="AELMQZ",DIC("A")="Patient Search Template: ",DIC("S")="I $P(^(0),U,4)=9000001&($P(^(0),U,5)=DUZ)"
- W !
- D ^DIC K DIC,DLAYGO
- I +Y<1 W !!,"No Search Template selected." H 2 S APCLQUIT=1 Q
- S APCLSTMP=+Y,APCLSNAM=$P(^DIBT(APCLSTMP,0),U)
- DUP I '$P(Y,U,3) D I Q K APCLSTMP,Y G EN2
- .S Q=""
- .W !!,$C(7),$C(7)
- .S DIR(0)="Y",DIR("A")="That template already exists!! Do you want to overwrite it",DIR("B")="N" K DA D ^DIR K DIR
- .I $D(DIRUT) S Q=1 Q
- .I 'Y S Q=1 Q
- .L +^DIBT(APCLSTMP):10
- .S APCLSTN=$P(^DIBT(APCLSTMP,0),U) S DA=APCLSTMP,DIK="^DIBT(" D ^DIK
- .S ^DIBT(APCLSTMP,0)=APCLSNAM,DA=APCLSTMP,DIK="^DIBT(" D IX1^DIK
- .L -^DIBT(APCLSTMP)
- .Q
- I APCLSTMP,$D(^DIBT(APCLSTMP)) D
- .W !!,?5,"An unduplicated PATIENT list resulting from this report",!,?5,"will be stored in the.........>",!!?18,"** ",APCLSNAM," ** Search Template."
- .K ^DIBT(APCLSTMP,1)
- .S DHIT="S ^DIBT("_APCLSTMP_",1,DFN)="""""
- .S DIE="^DIBT(",DA=APCLSTMP,DR="2////"_DT_";3////M;4////9000001;5////"_DUZ_";6////M"
- .D ^DIE
- .K DIE,DA,DR
- ;Q
- ;Run Template in Background Mode
- ;
- ;
- Q
- ;
- SETRECS ;EP - Set Entries into Template
- ;
- S APCLDFN=0 F S APCLDFN=$O(^XTMP("APCLVL",APCLJOB,APCLBTH,"PATIENTS",APCLDFN)) Q:APCLDFN'=+APCLDFN D
- .I '$D(^XTMP("APCLVL",APCLJOB,APCLBTH)) W !!,"NO DATA TO REPORT.",! D PAUSE^APCLVL01 W:$D(IOF) @IOF
- .S ^DIBT(APCLSTMP,1,APCLDFN)=""""
- Q
- APCLSTMP ; IHS/CMI/LAB - CREATE SEARCH TEMPLATE FOR PGEN (PATIENT) REPORTS ;
- +1 ;;2.0;IHS PCC SUITE;**5**;MAY 14, 2009
- +2 ;
- EN ;EP - ENTRY POINT
- +1 DO EN1
- EXIT KILL APCLSDIC,APCLSNAM,APCLSTN,DHD
- +1 QUIT
- EN1 ;EP Help
- +1 KILL APCLQUIT
- +2 WRITE !
- +3 WRITE ?10,"*** You may enter an existing Template Name ***",!
- WRITE ?30,"OR",!
- WRITE ?12,"*** Save results in a New Template ***",!
- WRITE ?30,"OR",!
- WRITE ?25,"'^' to Exit",!!
- EN2 KILL DIC,DLAYGO
- SET DLAYGO=.401
- SET DIC="^DIBT("
- SET DIC(0)="AELMQZ"
- SET DIC("A")="Patient Search Template: "
- SET DIC("S")="I $P(^(0),U,4)=9000001&($P(^(0),U,5)=DUZ)"
- +1 WRITE !
- +2 DO ^DIC
- KILL DIC,DLAYGO
- +3 IF +Y<1
- WRITE !!,"No Search Template selected."
- HANG 2
- SET APCLQUIT=1
- QUIT
- +4 SET APCLSTMP=+Y
- SET APCLSNAM=$PIECE(^DIBT(APCLSTMP,0),U)
- DUP IF '$PIECE(Y,U,3)
- Begin DoDot:1
- +1 SET Q=""
- +2 WRITE !!,$CHAR(7),$CHAR(7)
- +3 SET DIR(0)="Y"
- SET DIR("A")="That template already exists!! Do you want to overwrite it"
- SET DIR("B")="N"
- KILL DA
- DO ^DIR
- KILL DIR
- +4 IF $DATA(DIRUT)
- SET Q=1
- QUIT
- +5 IF 'Y
- SET Q=1
- QUIT
- +6 LOCK +^DIBT(APCLSTMP):10
- +7 SET APCLSTN=$PIECE(^DIBT(APCLSTMP,0),U)
- SET DA=APCLSTMP
- SET DIK="^DIBT("
- DO ^DIK
- +8 SET ^DIBT(APCLSTMP,0)=APCLSNAM
- SET DA=APCLSTMP
- SET DIK="^DIBT("
- DO IX1^DIK
- +9 LOCK -^DIBT(APCLSTMP)
- +10 QUIT
- End DoDot:1
- IF Q
- KILL APCLSTMP,Y
- GOTO EN2
- +11 IF APCLSTMP
- IF $DATA(^DIBT(APCLSTMP))
- Begin DoDot:1
- +12 WRITE !!,?5,"An unduplicated PATIENT list resulting from this report",!,?5,"will be stored in the.........>",!!?18,"** ",APCLSNAM," ** Search Template."
- +13 KILL ^DIBT(APCLSTMP,1)
- +14 SET DHIT="S ^DIBT("_APCLSTMP_",1,DFN)="""""
- +15 SET DIE="^DIBT("
- SET DA=APCLSTMP
- SET DR="2////"_DT_";3////M;4////9000001;5////"_DUZ_";6////M"
- +16 DO ^DIE
- +17 KILL DIE,DA,DR
- End DoDot:1
- +18 ;Q
- +19 ;Run Template in Background Mode
- +20 ;
- +21 ;
- +22 QUIT
- +23 ;
- SETRECS ;EP - Set Entries into Template
- +1 ;
- +2 SET APCLDFN=0
- FOR
- SET APCLDFN=$ORDER(^XTMP("APCLVL",APCLJOB,APCLBTH,"PATIENTS",APCLDFN))
- IF APCLDFN'=+APCLDFN
- QUIT
- Begin DoDot:1
- +3 IF '$DATA(^XTMP("APCLVL",APCLJOB,APCLBTH))
- WRITE !!,"NO DATA TO REPORT.",!
- DO PAUSE^APCLVL01
- IF $DATA(IOF)
- WRITE @IOF
- +4 SET ^DIBT(APCLSTMP,1,APCLDFN)=""""
- End DoDot:1
- +5 QUIT