- RORRP012 ;HCIOFO/SG - RPC: MISCELLANEOUS ; 12/15/05 4:03pm
- ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
- ;
- Q
- ;
- ;***** RETURNS THE CURRENT DATE/TIME ON THE SERVER
- ; RPC: [ROR GET SERVER TIME]
- ;
- ; .RESULTS Reference to a local variable where the results
- ; are returned to.
- ;
- ; Return Values:
- ;
- ; The current dat/time (in internal FileMan format) is returned
- ; in the RESULTS(1). RESULTS(0) alwais contains 0.
- ;
- GETSRVDT(RESULTS) ;
- S RESULTS(0)=0
- S RESULTS(1)=$$NOW^XLFDT
- Q
- ;
- ;***** RETURNS A LIST OF ITEMS FROM THE 'ROR LIST ITEM' FILE
- ; RPC: [ROR LIST ITEMS]
- ;
- ; .RESULTS Reference to a local variable where the results
- ; are returned to.
- ;
- ; REGIEN Registry IEN
- ;
- ; TYPE Type of the items:
- ; 3 Lab Group
- ; 4 Drug Group
- ;
- ; Return Values:
- ;
- ; A negative value of the first "^"-piece of the RESULTS(0)
- ; indicates an error (see the RPCSTK^RORERR procedure for more
- ; details).
- ;
- ; Otherwise, number of items is returned in the RESULTS(0)
- ; and the subsequent nodes of the array contain the items.
- ;
- ; RESULTS(0) Number of item
- ;
- ; RESULTS(i) List Item
- ; ^01: IEN
- ; ^02: Text
- ; ^03: Code
- ;
- LSTITEMS(RESULTS,REGIEN,TYPE) ;
- N CNT,CODE,ITEMS,RC,RORERRDL
- D CLEAR^RORERR("LSTITEMS^RORRP012",1)
- K RESULTS S RESULTS(0)=0
- ;--- Check the parameters
- S RC=0 D I RC<0 D RPCSTK^RORERR(.RESULTS,RC) Q
- . ;--- Registry IEN
- . I $G(REGIEN)'>0 D Q
- . . S RC=$$ERROR^RORERR(-88,,,,"REGIEN",$G(REGIEN))
- . S REGIEN=+REGIEN
- . ;--- Type
- . I $G(TYPE)'>0 D Q
- . . S RC=$$ERROR^RORERR(-88,,,,"TYPE",$G(TYPE))
- . S TYPE=+TYPE
- ;--- Load the list items
- S RC=$$ITEMLIST^RORUTL09(TYPE,REGIEN,.ITEMS)
- ;--- Populate the output array
- S CODE="",CNT=0
- F S CODE=$O(ITEMS(CODE)) Q:CODE="" D
- . S CNT=CNT+1,RESULTS(CNT)=$P(ITEMS(CODE),U,1,2)
- . S $P(RESULTS(CNT),U,3)=CODE
- S RESULTS(0)=CNT
- Q
- ;
- ;***** CHECKS FOR PRODUCTION ACCOUNT
- ; RPC: [ROR PRODUCTION ACCOUNT]
- ;
- ; .RESULTS Reference to a local variable where the results
- ; are returned to.
- ;
- ; Return Values:
- ;
- ; 1 is returned in RESULTS(0) in case of a production account.
- ; Otherwise, zero is returned.
- ;
- PROD(RESULTS) ;
- S RESULTS(0)=+$$PROD^XUPROD()
- Q
- ;
- ;***** CHECKS IF THE RESCHEDULING CODE IS VALID
- ; ROR: [ROR TASK VALIDATE RESCHEDULING]
- ;
- ; .RESULTS Reference to a local variable where the results
- ; are returned to.
- ;
- ; SCHCODE Rescheduling code
- ;
- ; [SCHDT] Date when a task is scheduled to run for the
- ; first time (FileMan). By default (if $G(SCHDT)'>0),
- ; the current date/time is used.
- ;
- ; Return Values:
- ;
- ; A negative value of the first "^"-piece of the RESULTS(0) indicates
- ; an error (see the RPCSTK^RORERR procedure for more details).
- ;
- ; Otherwise, either 1 (the rescheduling code is valid) or 0 (the
- ; code is not valid) is returned in the RESULTS(0). If the code is
- ; valid then the next date/time to run the task (FileMan format)
- ; is returned in the RESULTS(1).
- ;
- VALIDSCH(RESULTS,SCHCODE,SCHDT) ;
- N NEXT,RORMSG,TMP K RESULTS
- I $G(SCHCODE)="" S RESULTS(0)=1 Q
- S RESULTS(0)=0
- ;--- Check if the rescheduling code is correct
- S:$G(SCHDT)'>0 SCHDT=$$NOW^XLFDT
- S NEXT=$$SCH^XLFDT(SCHCODE,SCHDT,1)
- Q:NEXT'>0
- ;--- Make sure that a task will not be rescheduled in less
- ;--- than 60 seconds (to be able to delete it if necessary)
- S TMP=$$SCH^XLFDT(SCHCODE,NEXT,1)
- S:$$FMDIFF^XLFDT(TMP,NEXT,2)'<60 RESULTS(0)=1,RESULTS(1)=NEXT
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRORRP012 3762 printed Mar 13, 2025@20:47:35 Page 2
- RORRP012 ;HCIOFO/SG - RPC: MISCELLANEOUS ; 12/15/05 4:03pm
- +1 ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
- +2 ;
- +3 QUIT
- +4 ;
- +5 ;***** RETURNS THE CURRENT DATE/TIME ON THE SERVER
- +6 ; RPC: [ROR GET SERVER TIME]
- +7 ;
- +8 ; .RESULTS Reference to a local variable where the results
- +9 ; are returned to.
- +10 ;
- +11 ; Return Values:
- +12 ;
- +13 ; The current dat/time (in internal FileMan format) is returned
- +14 ; in the RESULTS(1). RESULTS(0) alwais contains 0.
- +15 ;
- GETSRVDT(RESULTS) ;
- +1 SET RESULTS(0)=0
- +2 SET RESULTS(1)=$$NOW^XLFDT
- +3 QUIT
- +4 ;
- +5 ;***** RETURNS A LIST OF ITEMS FROM THE 'ROR LIST ITEM' FILE
- +6 ; RPC: [ROR LIST ITEMS]
- +7 ;
- +8 ; .RESULTS Reference to a local variable where the results
- +9 ; are returned to.
- +10 ;
- +11 ; REGIEN Registry IEN
- +12 ;
- +13 ; TYPE Type of the items:
- +14 ; 3 Lab Group
- +15 ; 4 Drug Group
- +16 ;
- +17 ; Return Values:
- +18 ;
- +19 ; A negative value of the first "^"-piece of the RESULTS(0)
- +20 ; indicates an error (see the RPCSTK^RORERR procedure for more
- +21 ; details).
- +22 ;
- +23 ; Otherwise, number of items is returned in the RESULTS(0)
- +24 ; and the subsequent nodes of the array contain the items.
- +25 ;
- +26 ; RESULTS(0) Number of item
- +27 ;
- +28 ; RESULTS(i) List Item
- +29 ; ^01: IEN
- +30 ; ^02: Text
- +31 ; ^03: Code
- +32 ;
- LSTITEMS(RESULTS,REGIEN,TYPE) ;
- +1 NEW CNT,CODE,ITEMS,RC,RORERRDL
- +2 DO CLEAR^RORERR("LSTITEMS^RORRP012",1)
- +3 KILL RESULTS
- SET RESULTS(0)=0
- +4 ;--- Check the parameters
- +5 SET RC=0
- Begin DoDot:1
- +6 ;--- Registry IEN
- +7 IF $GET(REGIEN)'>0
- Begin DoDot:2
- +8 SET RC=$$ERROR^RORERR(-88,,,,"REGIEN",$GET(REGIEN))
- End DoDot:2
- QUIT
- +9 SET REGIEN=+REGIEN
- +10 ;--- Type
- +11 IF $GET(TYPE)'>0
- Begin DoDot:2
- +12 SET RC=$$ERROR^RORERR(-88,,,,"TYPE",$GET(TYPE))
- End DoDot:2
- QUIT
- +13 SET TYPE=+TYPE
- End DoDot:1
- IF RC<0
- DO RPCSTK^RORERR(.RESULTS,RC)
- QUIT
- +14 ;--- Load the list items
- +15 SET RC=$$ITEMLIST^RORUTL09(TYPE,REGIEN,.ITEMS)
- +16 ;--- Populate the output array
- +17 SET CODE=""
- SET CNT=0
- +18 FOR
- SET CODE=$ORDER(ITEMS(CODE))
- if CODE=""
- QUIT
- Begin DoDot:1
- +19 SET CNT=CNT+1
- SET RESULTS(CNT)=$PIECE(ITEMS(CODE),U,1,2)
- +20 SET $PIECE(RESULTS(CNT),U,3)=CODE
- End DoDot:1
- +21 SET RESULTS(0)=CNT
- +22 QUIT
- +23 ;
- +24 ;***** CHECKS FOR PRODUCTION ACCOUNT
- +25 ; RPC: [ROR PRODUCTION ACCOUNT]
- +26 ;
- +27 ; .RESULTS Reference to a local variable where the results
- +28 ; are returned to.
- +29 ;
- +30 ; Return Values:
- +31 ;
- +32 ; 1 is returned in RESULTS(0) in case of a production account.
- +33 ; Otherwise, zero is returned.
- +34 ;
- PROD(RESULTS) ;
- +1 SET RESULTS(0)=+$$PROD^XUPROD()
- +2 QUIT
- +3 ;
- +4 ;***** CHECKS IF THE RESCHEDULING CODE IS VALID
- +5 ; ROR: [ROR TASK VALIDATE RESCHEDULING]
- +6 ;
- +7 ; .RESULTS Reference to a local variable where the results
- +8 ; are returned to.
- +9 ;
- +10 ; SCHCODE Rescheduling code
- +11 ;
- +12 ; [SCHDT] Date when a task is scheduled to run for the
- +13 ; first time (FileMan). By default (if $G(SCHDT)'>0),
- +14 ; the current date/time is used.
- +15 ;
- +16 ; Return Values:
- +17 ;
- +18 ; A negative value of the first "^"-piece of the RESULTS(0) indicates
- +19 ; an error (see the RPCSTK^RORERR procedure for more details).
- +20 ;
- +21 ; Otherwise, either 1 (the rescheduling code is valid) or 0 (the
- +22 ; code is not valid) is returned in the RESULTS(0). If the code is
- +23 ; valid then the next date/time to run the task (FileMan format)
- +24 ; is returned in the RESULTS(1).
- +25 ;
- VALIDSCH(RESULTS,SCHCODE,SCHDT) ;
- +1 NEW NEXT,RORMSG,TMP
- KILL RESULTS
- +2 IF $GET(SCHCODE)=""
- SET RESULTS(0)=1
- QUIT
- +3 SET RESULTS(0)=0
- +4 ;--- Check if the rescheduling code is correct
- +5 if $GET(SCHDT)'>0
- SET SCHDT=$$NOW^XLFDT
- +6 SET NEXT=$$SCH^XLFDT(SCHCODE,SCHDT,1)
- +7 if NEXT'>0
- QUIT
- +8 ;--- Make sure that a task will not be rescheduled in less
- +9 ;--- than 60 seconds (to be able to delete it if necessary)
- +10 SET TMP=$$SCH^XLFDT(SCHCODE,NEXT,1)
- +11 if $$FMDIFF^XLFDT(TMP,NEXT,2)'<60
- SET RESULTS(0)=1
- SET RESULTS(1)=NEXT
- +12 QUIT