- BLRDPT61 ; IHS/DIR/FJE - Patient ID Utilities (cont.) ;
- ;;5.2;BLR;;NOV 01, 1997
- ;
- ;;MAS VERSION 5.0;
- ;
- 1 ;;ID Format Enter/Edit
- W ! S DIC="^DIC(8.2,",DIC(0)="AELMQ" D ^DIC K DIC G Q1:+Y<1
- S DA=+Y,DIE="^DIC(8.2,",DR="[DG ID FORMAT ENTER/EDIT]" D ^DIE G 1
- Q1 K DIE,DR,DA,Y Q
- ;
- 2 ;;Eligibility Code Enter/Edit
- W ! S DIC="^DIC(8,",DIC(0)="AELMQ",DIC("DR")=8 D ^DIC K DIC G Q2:+Y<1
- S DA=+Y,DIE="^DIC(8,",DR="[DG ELIG ENTER/EDIT]" D ^DIE G 2
- Q2 K DIE,DR,DA,Y
- Q
- ;
- ASK ;
- Q:$S('$D(^DIC(8.2,+$P(^DIC(8,VAELG,0),U,10),0)):1,1:'$P(^(0),U,2))
- W !!,*7,"User Input Needed for '",$P(^DIC(8,VAELG,0),U),"' id:"
- S DIE="^DPT("_DFN_",""E"",",DR=.03,DA(1)=DFN,DA=VAELG D ^DIE
- W !!?5,"...",$P(^DIC(8,VAELG,0),U)
- K DIE,DR,DA,Y
- Q
- ;
- WARN ; -- interaction warning
- I $P(X,U,2) W !!?5,*7,"WARNING: User interaction usually is required for this format."
- Q
- ;
- BEG ;
- D NOW^%DTC S VASTART=%
- Q
- ;
- END ;
- D NOW^%DTC S VAEND=%,L=0
- K XMY
- S XMSUB=$P($T(OPTS+VAOPT),";",4),XMDUZ=.5,XMTEXT="VATEXT(",XMY(DUZ)=""
- I VAOPT=3 S XMSUB=XMSUB_" (Format: "_$S($D(^DIC(8.2,VAFMT,0)):$P(^(0),U),1:"UNKNOWN")_")"
- I VAOPT=5 S XMSUB=XMSUB_" (Eligibility: "_$S($D(^DIC(8,VAELG,0)):$P(^(0),U),1:"UNKNOWN")_")"
- S L=L+1 S VATEXT(L,0)=" "
- S Y=VASTART,L=L+1 X ^DD("DD") S VATEXT(L,0)=" Job started at "_Y
- S Y=VAEND,L=L+1 X ^DD("DD") S VATEXT(L,0)=" Job completed at "_Y
- D ^XMD
- K VAOPT,VASTART,VAEND,L,VATEXT,XMY,XMSUB,XMDUZ,XMTEXT,Y,% Q
- ;
- TASK ;
- W !!?5,"The resetting of ID formats can take many hours."
- W !?5,"It is suggested that it be run at off-peak hours,"
- W !?5,"perferably over a weekend.",!
- K ZTSK S X=$T(OPTS+VAOPT),VARS=$P(X,";",5)
- F I=1:1 S Y=$P(VARS,"^",I) Q:Y="" S ZTSAVE(Y)=""
- S ZTSAVE("VAOPT")="",ZTRTN="QUE"_VAOPT_"^BLRDPT60",ZTDESC=$P(X,";",4),ZTIO="" D ^%ZTLOAD
- I $D(ZTSK) W !!,"Job has been queued. (Task #",ZTSK,")",!,"A MailMan message will be sent to you when the job has completed."
- TASKQ K ZTIO,ZTRTN,ZTDESC,ZTSAVE,VARS,Y,X,ZTSK Q
- ;
- OPTS ; -- queue task list ;;opt#;description;vars to save
- ;;1;none
- ;;2;none
- ;;3;Reset ID Format;VAFMT
- ;;4;Reset Primary Eligibilty ID Format
- ;;5;Reset Specific Eligibilty ID Format;VAELG
- ;;6;none
- ;;7;Reset All ID Formats for all Patients
- BLRDPT61 ; IHS/DIR/FJE - Patient ID Utilities (cont.) ;
- +1 ;;5.2;BLR;;NOV 01, 1997
- +2 ;
- +3 ;;MAS VERSION 5.0;
- +4 ;
- 1 ;;ID Format Enter/Edit
- +1 WRITE !
- SET DIC="^DIC(8.2,"
- SET DIC(0)="AELMQ"
- DO ^DIC
- KILL DIC
- IF +Y<1
- GOTO Q1
- +2 SET DA=+Y
- SET DIE="^DIC(8.2,"
- SET DR="[DG ID FORMAT ENTER/EDIT]"
- DO ^DIE
- GOTO 1
- Q1 KILL DIE,DR,DA,Y
- QUIT
- +1 ;
- 2 ;;Eligibility Code Enter/Edit
- +1 WRITE !
- SET DIC="^DIC(8,"
- SET DIC(0)="AELMQ"
- SET DIC("DR")=8
- DO ^DIC
- KILL DIC
- IF +Y<1
- GOTO Q2
- +2 SET DA=+Y
- SET DIE="^DIC(8,"
- SET DR="[DG ELIG ENTER/EDIT]"
- DO ^DIE
- GOTO 2
- Q2 KILL DIE,DR,DA,Y
- +1 QUIT
- +2 ;
- ASK ;
- +1 IF $SELECT('$DATA(^DIC(8.2,+$PIECE(^DIC(8,VAELG,0),U,10),0))
- QUIT
- +2 WRITE !!,*7,"User Input Needed for '",$PIECE(^DIC(8,VAELG,0),U),"' id:"
- +3 SET DIE="^DPT("_DFN_",""E"","
- SET DR=.03
- SET DA(1)=DFN
- SET DA=VAELG
- DO ^DIE
- +4 WRITE !!?5,"...",$PIECE(^DIC(8,VAELG,0),U)
- +5 KILL DIE,DR,DA,Y
- +6 QUIT
- +7 ;
- WARN ; -- interaction warning
- +1 IF $PIECE(X,U,2)
- WRITE !!?5,*7,"WARNING: User interaction usually is required for this format."
- +2 QUIT
- +3 ;
- BEG ;
- +1 DO NOW^%DTC
- SET VASTART=%
- +2 QUIT
- +3 ;
- END ;
- +1 DO NOW^%DTC
- SET VAEND=%
- SET L=0
- +2 KILL XMY
- +3 SET XMSUB=$PIECE($TEXT(OPTS+VAOPT),";",4)
- SET XMDUZ=.5
- SET XMTEXT="VATEXT("
- SET XMY(DUZ)=""
- +4 IF VAOPT=3
- SET XMSUB=XMSUB_" (Format: "_$SELECT($DATA(^DIC(8.2,VAFMT,0)):$PIECE(^(0),U),1:"UNKNOWN")_")"
- +5 IF VAOPT=5
- SET XMSUB=XMSUB_" (Eligibility: "_$SELECT($DATA(^DIC(8,VAELG,0)):$PIECE(^(0),U),1:"UNKNOWN")_")"
- +6 SET L=L+1
- SET VATEXT(L,0)=" "
- +7 SET Y=VASTART
- SET L=L+1
- XECUTE ^DD("DD")
- SET VATEXT(L,0)=" Job started at "_Y
- +8 SET Y=VAEND
- SET L=L+1
- XECUTE ^DD("DD")
- SET VATEXT(L,0)=" Job completed at "_Y
- +9 DO ^XMD
- +10 KILL VAOPT,VASTART,VAEND,L,VATEXT,XMY,XMSUB,XMDUZ,XMTEXT,Y,%
- QUIT
- +11 ;
- TASK ;
- +1 WRITE !!?5,"The resetting of ID formats can take many hours."
- +2 WRITE !?5,"It is suggested that it be run at off-peak hours,"
- +3 WRITE !?5,"perferably over a weekend.",!
- +4 KILL ZTSK
- SET X=$TEXT(OPTS+VAOPT)
- SET VARS=$PIECE(X,";",5)
- +5 FOR I=1:1
- SET Y=$PIECE(VARS,"^",I)
- IF Y=""
- QUIT
- SET ZTSAVE(Y)=""
- +6 SET ZTSAVE("VAOPT")=""
- SET ZTRTN="QUE"_VAOPT_"^BLRDPT60"
- SET ZTDESC=$PIECE(X,";",4)
- SET ZTIO=""
- DO ^%ZTLOAD
- +7 IF $DATA(ZTSK)
- WRITE !!,"Job has been queued. (Task #",ZTSK,")",!,"A MailMan message will be sent to you when the job has completed."
- TASKQ KILL ZTIO,ZTRTN,ZTDESC,ZTSAVE,VARS,Y,X,ZTSK
- QUIT
- +1 ;
- OPTS ; -- queue task list ;;opt#;description;vars to save
- +1 ;;1;none
- +2 ;;2;none
- +3 ;;3;Reset ID Format;VAFMT
- +4 ;;4;Reset Primary Eligibilty ID Format
- +5 ;;5;Reset Specific Eligibilty ID Format;VAELG
- +6 ;;6;none
- +7 ;;7;Reset All ID Formats for all Patients