- NURSAGP3 ;HISC/MD-MULTIPLE SERVICE CATEGORY SELECTION UTILITY ;4/17/97
- ;;4.0;NURSING SERVICE;;Apr 25, 1997
- ; This routine allows a user to select one or more of the service
- ; category(ies) at one time:
- ; The user's selections are returned in a global array
- ; TMP("NURSCAT",$J,Free-Text service category name)=""
- EN1 ; SELECT SERVICE CATEGORY
- N DA,Y,X
- K NUROUT,^TMP("NURSCAT",$J)
- D DISP I $O(^TMP("NURSCAT",$J,0))="" S NUROUT=1
- QUIT K NURSTAB,NURS,NURSAQ,NURSND,DIC,NURSCAT,DLAYGO,I,NURSMAX,NURSCLA,NURSCNT,NURSI,NURSMI
- Q
- DISP ;
- ; Define list of user selectable service category(ies) from the
- ; NURS Service Positon (#211.3) File.
- ;
- K NURSTAB,NURSCAT S NURSX="",NURSMAX=0
- F NURSX="R (RN-REGISTERED NURSE)","L (LPN-LIC. PRACTICAL NURSE)","N (NA-NURSING ASSISTANT)","C (CK-CLERICAL)","S (SE-SUMMER EMPLOYEE)","A (AO-ADMIN. OFFICER)","O (OT-OTHER)" D
- . I $G(NRNLPN)'="",'(NURSX["(RN-"),'(NURSX["(LPN-") Q
- . S NURSMAX=NURSMAX+1,NURSCAT(NURSMAX)=NURSX
- . Q
- S NURSX="" F S NURSX=$O(^NURSF(211.3,"F",NURSX)) Q:NURSX="" S DA=$O(^NURSF(211.3,"F",NURSX,0)) I '$G(NRNLPN) D
- . S NURSMAX=NURSMAX+1,NURSCAT(NURSMAX)=$$UP^XLFSTR(NURSX)
- . Q
- S NURSMAX=NURSMAX+1,NURSCAT(NURSMAX)="ALL"
- S NURSTRT=1,(NUROUT,NURSDONE)=0
- F D DSP I $G(NURSDONE)!$G(NUROUT) Q
- Q
- DSP ;
- ; Display the list of selectable service category(ies) from file 211.3.
- ;
- W @IOF W !,$S('($G(NURSI)>7):"NURSING Service Categories",1:"OTHER Service Categories"),!,$$REPEAT^XLFSTR("-",26) S NURSAQ=$Y
- F NURS=NURSTRT:1:NURSMAX S NURSI=NURS D I $Y>(IOSL+NURSAQ-10),NURS'=NURSMAX S NURSTRT=NURS+1 Q
- . Q:$D(NURSCAT(NURSI))[0
- . I NURSI=8 W !!,"OTHER Service Categories",!,$$REPEAT^XLFSTR("-",24)
- . W ! W:$G(NURSCAT(NURSI))'="" ?1,$J(NURSI,2),". ",$G(NURSCAT(NURSI))
- . Q
- S NURSDONE=(NURS=NURSMAX)
- I 'NURSDONE W !!,"<<More>>",! S DIR(0)="E" D ^DIR I $G(DIRUT) S NUROUT=1 Q
- G:NUROUT QUIT
- I 'NURSDONE G DSP
- ASK ;
- ; Interactive user service category selection.
- ;
- W !!,"Select SERVICE CATEGORY: " R NURSX:DTIME
- S:'$T NURSX="^" I "^"[NURSX S:$E(NURSX)="^" NUROUT=1 Q
- I NURSX=NURSMAX!($$UP^XLFSTR(NURSX)="ALL") S NURSX="1"_$S(NURSMAX>2:"-"_(NURSMAX-1),1:"")
- D:'(NURSX?2."?") VALENT^NURSUT4 I (NURSX["?"!($G(NURSBAD))) S:NURSX?2."?" (NURSTRT,NURSI)=1 G DSP:NURSX?2."?",ASK
- K ^TMP("NURSCAT") F NURSI=1:1 S NURSCLA=$P(NURSX,",",NURSI) Q:NURSCLA="" S NURSND=$P(NURSCLA,"-",2)_"+"_NURSCLA F NURSCNT=+NURSCLA:1:NURSND I +$G(NURSCAT(NURSCNT))'="" D
- . S X=NURSCAT(NURSCNT),Y=$S(X["(RN-":"R",X["(LPN-":"L",X["(NA-":"N",X["(CK-":"C",X["(SE-":"S",X["AO-":"A",X["OT-":"O",1:X)
- . S ^TMP("NURSCAT",$J,Y)=""
- Q
- NURSAGP3 ;HISC/MD-MULTIPLE SERVICE CATEGORY SELECTION UTILITY ;4/17/97
- +1 ;;4.0;NURSING SERVICE;;Apr 25, 1997
- +2 ; This routine allows a user to select one or more of the service
- +3 ; category(ies) at one time:
- +4 ; The user's selections are returned in a global array
- +5 ; TMP("NURSCAT",$J,Free-Text service category name)=""
- EN1 ; SELECT SERVICE CATEGORY
- +1 NEW DA,Y,X
- +2 KILL NUROUT,^TMP("NURSCAT",$JOB)
- +3 DO DISP
- IF $ORDER(^TMP("NURSCAT",$JOB,0))=""
- SET NUROUT=1
- QUIT KILL NURSTAB,NURS,NURSAQ,NURSND,DIC,NURSCAT,DLAYGO,I,NURSMAX,NURSCLA,NURSCNT,NURSI,NURSMI
- +1 QUIT
- DISP ;
- +1 ; Define list of user selectable service category(ies) from the
- +2 ; NURS Service Positon (#211.3) File.
- +3 ;
- +4 KILL NURSTAB,NURSCAT
- SET NURSX=""
- SET NURSMAX=0
- +5 FOR NURSX="R (RN-REGISTERED NURSE)","L (LPN-LIC. PRACTICAL NURSE)","N (NA-NURSING ASSISTANT)","C (CK-CLERICAL)","S (SE-SUMMER EMPLOYEE)","A (AO-ADMIN. OFFICER)","O (OT-OTHER)"
- Begin DoDot:1
- +6 IF $GET(NRNLPN)'=""
- IF '(NURSX["(RN-")
- IF '(NURSX["(LPN-")
- QUIT
- +7 SET NURSMAX=NURSMAX+1
- SET NURSCAT(NURSMAX)=NURSX
- +8 QUIT
- End DoDot:1
- +9 SET NURSX=""
- FOR
- SET NURSX=$ORDER(^NURSF(211.3,"F",NURSX))
- IF NURSX=""
- QUIT
- SET DA=$ORDER(^NURSF(211.3,"F",NURSX,0))
- IF '$GET(NRNLPN)
- Begin DoDot:1
- +10 SET NURSMAX=NURSMAX+1
- SET NURSCAT(NURSMAX)=$$UP^XLFSTR(NURSX)
- +11 QUIT
- End DoDot:1
- +12 SET NURSMAX=NURSMAX+1
- SET NURSCAT(NURSMAX)="ALL"
- +13 SET NURSTRT=1
- SET (NUROUT,NURSDONE)=0
- +14 FOR
- DO DSP
- IF $GET(NURSDONE)!$GET(NUROUT)
- QUIT
- +15 QUIT
- DSP ;
- +1 ; Display the list of selectable service category(ies) from file 211.3.
- +2 ;
- +3 WRITE @IOF
- WRITE !,$SELECT('($GET(NURSI)>7):"NURSING Service Categories",1:"OTHER Service Categories"),!,$$REPEAT^XLFSTR("-",26)
- SET NURSAQ=$Y
- +4 FOR NURS=NURSTRT:1:NURSMAX
- SET NURSI=NURS
- Begin DoDot:1
- +5 IF $DATA(NURSCAT(NURSI))[0
- QUIT
- +6 IF NURSI=8
- WRITE !!,"OTHER Service Categories",!,$$REPEAT^XLFSTR("-",24)
- +7 WRITE !
- IF $GET(NURSCAT(NURSI))'=""
- WRITE ?1,$JUSTIFY(NURSI,2),". ",$GET(NURSCAT(NURSI))
- +8 QUIT
- End DoDot:1
- IF $Y>(IOSL+NURSAQ-10)
- IF NURS'=NURSMAX
- SET NURSTRT=NURS+1
- QUIT
- +9 SET NURSDONE=(NURS=NURSMAX)
- +10 IF 'NURSDONE
- WRITE !!,"<<More>>",!
- SET DIR(0)="E"
- DO ^DIR
- IF $GET(DIRUT)
- SET NUROUT=1
- QUIT
- +11 IF NUROUT
- GOTO QUIT
- +12 IF 'NURSDONE
- GOTO DSP
- ASK ;
- +1 ; Interactive user service category selection.
- +2 ;
- +3 WRITE !!,"Select SERVICE CATEGORY: "
- READ NURSX:DTIME
- +4 IF '$TEST
- SET NURSX="^"
- IF "^"[NURSX
- IF $EXTRACT(NURSX)="^"
- SET NUROUT=1
- QUIT
- +5 IF NURSX=NURSMAX!($$UP^XLFSTR(NURSX)="ALL")
- SET NURSX="1"_$SELECT(NURSMAX>2:"-"_(NURSMAX-1),1:"")
- +6 IF '(NURSX?2."?")
- DO VALENT^NURSUT4
- IF (NURSX["?"!($GET(NURSBAD)))
- IF NURSX?2."?"
- SET (NURSTRT,NURSI)=1
- IF NURSX?2."?"
- GOTO DSP
- GOTO ASK
- +7 KILL ^TMP("NURSCAT")
- FOR NURSI=1:1
- SET NURSCLA=$PIECE(NURSX,",",NURSI)
- IF NURSCLA=""
- QUIT
- SET NURSND=$PIECE(NURSCLA,"-",2)_"+"_NURSCLA
- FOR NURSCNT=+NURSCLA:1:NURSND
- IF +$GET(NURSCAT(NURSCNT))'=""
- Begin DoDot:1
- +8 SET X=NURSCAT(NURSCNT)
- SET Y=$SELECT(X["(RN-":"R",X["(LPN-":"L",X["(NA-":"N",X["(CK-":"C",X["(SE-":"S",X["AO-":"A",X["OT-":"O",1:X)
- +9 SET ^TMP("NURSCAT",$JOB,Y)=""
- End DoDot:1
- +10 QUIT