- MAGVIM12 ;WOIFO/NST/BT/JL - Utilities for RPC calls for DICOM file processing ; May 05, 2023@080:09:32
- ;;3.0;IMAGING;**357**;Mar 19, 2002;Build 29
- ;; Per VA Directive 6402, this routine should not be modified.
- ;; +---------------------------------------------------------------+
- ;; | Property of the US Government. |
- ;; | No permission to copy or redistribute this software is given. |
- ;; | Use of unreleased versions of this software requires the user |
- ;; | to execute a written test agreement with the VistA Imaging |
- ;; | Development Office of the Department of Veterans Affairs, |
- ;; | telephone (301) 734-0100. |
- ;; | The Food and Drug Administration classifies this software as |
- ;; | a medical device. As such, it may not be changed in any way. |
- ;; | Modifications to this software may result in an adulterated |
- ;; | medical device under 21CFR820, the use of which is considered |
- ;; | to be a violation of US Federal Statutes. |
- ;; +---------------------------------------------------------------+
- ;;
- ; This function returns Service (Radiology, Consult, or Lab) based on Modality and Procedure
- ; If service found, it will be returned as:
- ; RAD --------- Radiology
- ; CON --------- Consult/Procedure Request Tracking (CPRS)
- ; LAB --------- Anatomic Pathology
- ; If no Service found, this function will add an entry
- ; with Modalty and Procedure into File #2006.9423
- ; and return "" if successful otherwise return "-1^"_Error
- ;
- GETSRV(MDL,PROC) ;Get SERVICE
- N FILE,SRV,IEN
- S FILE=2006.9423,IEN=""
- S SRV=$$GETS(MDL,PROC)
- I $P(SRV,U,1)="-1" Q IEN ;return error
- I SRV'="" Q SRV
- ;Does not exist, create it
- S IEN=$$UPDSRV("",MDL,PROC)
- I $P(IEN,U,1)="-1" Q IEN ;return error
- I IEN Q $$GET1^DIQ(FILE,IEN,1)
- Q "-1^Unable to update file #2006.9423"
- ;
- GETS(MDL,PROC) ;Get Service
- N FILE S FILE=2006.9423
- I $G(MDL)="" Q "" ;no value to lookup, must have PROC or MDL defined
- S MDL=$$UPCASE(MDL),PROC=$G(PROC),PROC=$$UPCASE(PROC)
- S IEN=$O(^MAGV(FILE,"B",MDL_"|"_PROC,""))
- I IEN Q $$GET1^DIQ(FILE,IEN,1)
- S IEN=$O(^MAGV(FILE,"B",MDL,""))
- I IEN Q $$GET1^DIQ(FILE,IEN,1)
- Q ""
- ;
- UPDSRV(SRV,MDL,PROC) ;Update service or Add the new entry and return IEN or error
- N FILE,MAGFDA,MAGIEN,MAGXE
- S FILE=2006.9423
- S MAGFDA(FILE,"?+1,",.01)=MDL_$S(PROC'="":"|"_PROC,1:"")
- S MAGFDA(FILE,"?+1,",1)=SRV
- D UPDATE^DIE("S","MAGFDA","MAGIEN","MAGXE")
- I $D(MAGXE("DIERR","E")) Q "-1^"_$G(MAGXE("DIERR",1,"TEXT",1))
- Q MAGIEN(1)
- ;
- GTCSRV(IEN) ; Get computed Service in Work Item FIle 2006.941
- N FILE,MTGIDX,PTGIDX
- N SRV,MOD,PROC
- S FILE=2006.941
- S MTGIDX=$O(^MAGV(FILE,"H","Modality",IEN,""))
- I 'MTGIDX Q ""
- S MOD=$P(^MAGV(FILE,IEN,4,MTGIDX,0),U,2)
- S PROC=""
- S PTGIDX=$O(^MAGV(FILE,"H","Procedure",IEN,""))
- I PTGIDX S PROC=$P(^MAGV(FILE,IEN,4,PTGIDX,0),U,2)
- S SRV=$$GETS(MOD,PROC)
- Q SRV
- ;
- UPCASE(X) ;
- Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGVIM12 3089 printed Feb 18, 2025@23:36:27 Page 2
- MAGVIM12 ;WOIFO/NST/BT/JL - Utilities for RPC calls for DICOM file processing ; May 05, 2023@080:09:32
- +1 ;;3.0;IMAGING;**357**;Mar 19, 2002;Build 29
- +2 ;; Per VA Directive 6402, this routine should not be modified.
- +3 ;; +---------------------------------------------------------------+
- +4 ;; | Property of the US Government. |
- +5 ;; | No permission to copy or redistribute this software is given. |
- +6 ;; | Use of unreleased versions of this software requires the user |
- +7 ;; | to execute a written test agreement with the VistA Imaging |
- +8 ;; | Development Office of the Department of Veterans Affairs, |
- +9 ;; | telephone (301) 734-0100. |
- +10 ;; | The Food and Drug Administration classifies this software as |
- +11 ;; | a medical device. As such, it may not be changed in any way. |
- +12 ;; | Modifications to this software may result in an adulterated |
- +13 ;; | medical device under 21CFR820, the use of which is considered |
- +14 ;; | to be a violation of US Federal Statutes. |
- +15 ;; +---------------------------------------------------------------+
- +16 ;;
- +17 ; This function returns Service (Radiology, Consult, or Lab) based on Modality and Procedure
- +18 ; If service found, it will be returned as:
- +19 ; RAD --------- Radiology
- +20 ; CON --------- Consult/Procedure Request Tracking (CPRS)
- +21 ; LAB --------- Anatomic Pathology
- +22 ; If no Service found, this function will add an entry
- +23 ; with Modalty and Procedure into File #2006.9423
- +24 ; and return "" if successful otherwise return "-1^"_Error
- +25 ;
- GETSRV(MDL,PROC) ;Get SERVICE
- +1 NEW FILE,SRV,IEN
- +2 SET FILE=2006.9423
- SET IEN=""
- +3 SET SRV=$$GETS(MDL,PROC)
- +4 ;return error
- IF $PIECE(SRV,U,1)="-1"
- QUIT IEN
- +5 IF SRV'=""
- QUIT SRV
- +6 ;Does not exist, create it
- +7 SET IEN=$$UPDSRV("",MDL,PROC)
- +8 ;return error
- IF $PIECE(IEN,U,1)="-1"
- QUIT IEN
- +9 IF IEN
- QUIT $$GET1^DIQ(FILE,IEN,1)
- +10 QUIT "-1^Unable to update file #2006.9423"
- +11 ;
- GETS(MDL,PROC) ;Get Service
- +1 NEW FILE
- SET FILE=2006.9423
- +2 ;no value to lookup, must have PROC or MDL defined
- IF $GET(MDL)=""
- QUIT ""
- +3 SET MDL=$$UPCASE(MDL)
- SET PROC=$GET(PROC)
- SET PROC=$$UPCASE(PROC)
- +4 SET IEN=$ORDER(^MAGV(FILE,"B",MDL_"|"_PROC,""))
- +5 IF IEN
- QUIT $$GET1^DIQ(FILE,IEN,1)
- +6 SET IEN=$ORDER(^MAGV(FILE,"B",MDL,""))
- +7 IF IEN
- QUIT $$GET1^DIQ(FILE,IEN,1)
- +8 QUIT ""
- +9 ;
- UPDSRV(SRV,MDL,PROC) ;Update service or Add the new entry and return IEN or error
- +1 NEW FILE,MAGFDA,MAGIEN,MAGXE
- +2 SET FILE=2006.9423
- +3 SET MAGFDA(FILE,"?+1,",.01)=MDL_$SELECT(PROC'="":"|"_PROC,1:"")
- +4 SET MAGFDA(FILE,"?+1,",1)=SRV
- +5 DO UPDATE^DIE("S","MAGFDA","MAGIEN","MAGXE")
- +6 IF $DATA(MAGXE("DIERR","E"))
- QUIT "-1^"_$GET(MAGXE("DIERR",1,"TEXT",1))
- +7 QUIT MAGIEN(1)
- +8 ;
- GTCSRV(IEN) ; Get computed Service in Work Item FIle 2006.941
- +1 NEW FILE,MTGIDX,PTGIDX
- +2 NEW SRV,MOD,PROC
- +3 SET FILE=2006.941
- +4 SET MTGIDX=$ORDER(^MAGV(FILE,"H","Modality",IEN,""))
- +5 IF 'MTGIDX
- QUIT ""
- +6 SET MOD=$PIECE(^MAGV(FILE,IEN,4,MTGIDX,0),U,2)
- +7 SET PROC=""
- +8 SET PTGIDX=$ORDER(^MAGV(FILE,"H","Procedure",IEN,""))
- +9 IF PTGIDX
- SET PROC=$PIECE(^MAGV(FILE,IEN,4,PTGIDX,0),U,2)
- +10 SET SRV=$$GETS(MOD,PROC)
- +11 QUIT SRV
- +12 ;
- UPCASE(X) ;
- +1 QUIT $TRANSLATE(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")