Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: MAGNTLRS

MAGNTLRS.m

Go to the documentation of this file.
  1. MAGNTLRS ;WOIFO/NST - TeleReader Configuration ; 23 Apr 2012 2:30 PM
  1. ;;3.0;IMAGING;**114,127,138**;Mar 19, 2002;Build 5380;Sep 03, 2013
  1. ;; Per VHA Directive 2004-038, this routine should not be modified.
  1. ;; +---------------------------------------------------------------+
  1. ;; | Property of the US Government. |
  1. ;; | No permission to copy or redistribute this software is given. |
  1. ;; | Use of unreleased versions of this software requires the user |
  1. ;; | to execute a written test agreement with the VistA Imaging |
  1. ;; | Development Office of the Department of Veterans Affairs, |
  1. ;; | telephone (301) 734-0100. |
  1. ;; | The Food and Drug Administration classifies this software as |
  1. ;; | a medical device. As such, it may not be changed in any way. |
  1. ;; | Modifications to this software may result in an adulterated |
  1. ;; | medical device under 21CFR820, the use of which is considered |
  1. ;; | to be a violation of US Federal Statutes. |
  1. ;; +---------------------------------------------------------------+
  1. ;;
  1. Q
  1. ;
  1. ;***** Add/Update/Delete a service in TELEREADER ACQUISITION SERVICE file (#2006.5841)
  1. ; RPC: MAG3 TELEREADER ACQ SRVC SETUP
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; Delete action:
  1. ; MAGPARAM("ACTION") = "DELETE"
  1. ; MAGPARAM("IEN") = IEN of the record that will be deleted
  1. ; Add or Update action:
  1. ; MAGPARAM("ACTION") = "ADD" or "UPDATE"
  1. ; MAGPARAM("NAME") = A pointer to REQUEST SERVICES file (#123.5)
  1. ; MAGPARAM("PROCEDURE") = A pointer to GMRC PROCEDURE file (#123.5)
  1. ; MAGPARAM("SPECIALTY INDEX") = A pointer to the SPECIALTY file (#2005.84)
  1. ; MAGPARAM("PROCEDURE INDEX") = A pointer to the PROCEDURE/EVENT file (#2005.85)
  1. ; MAGPARAM("ACQUISITION SITE") = A pointer to the INSTITUTION file (#4)
  1. ; MAGPARAM("UNREAD LIST CREATION TRIGGER") = I/O/F
  1. ; MAGPARAM("TIU NOTE FILE") = A pointer to TIU DOCUMENT file (#8925.1)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = "0^Error"
  1. ; if success MAGRY = "1^IEN" - IEN of the record that is updated
  1. ; or IEN of the added record
  1. ;
  1. UASRVC(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER ACQ SRVC SETUP]
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. ;
  1. N X,MAGNFDA,MAGNIEN,MAGNXE,IENS,MAGRESA
  1. N DA,DIK
  1. ;
  1. ;^MAG(2006.5841,D0,0)=1=NAME, 2=PROCEDURE, 3=SPECIALTY INDEX, 4=PROCEDURE INDEX,
  1. ; 5=ACQUISITION SITE, 6=UNREAD LIST CREATION TRIGGER, 7=TIU NOTE FILE
  1. ;
  1. I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit
  1. . S DIK="^MAG(2006.5841,"
  1. . S DA=MAGPARAM("IEN")
  1. . D ^DIK
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. S MAGRY=""
  1. I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a service already exists
  1. . D FIND^DIC(2006.5841,"","@;IX","PQX",MAGPARAM("NAME"),"1","B","","","X")
  1. . I $D(X("DILIST","1",0)) S MAGRY="0^Service already exists"
  1. . S IENS="+1,"
  1. E S IENS=MAGPARAM("IEN")_",",MAGNIEN(1)=MAGPARAM("IEN")
  1. ;
  1. S MAGNFDA(2006.5841,IENS,.01)=MAGPARAM("NAME")
  1. S MAGNFDA(2006.5841,IENS,1)=MAGPARAM("PROCEDURE")
  1. S MAGNFDA(2006.5841,IENS,2)=MAGPARAM("SPECIALTY INDEX")
  1. S MAGNFDA(2006.5841,IENS,3)=MAGPARAM("PROCEDURE INDEX")
  1. S MAGNFDA(2006.5841,IENS,4)=MAGPARAM("ACQUISITION SITE")
  1. S MAGNFDA(2006.5841,IENS,5)=MAGPARAM("UNREAD LIST CREATION TRIGGER")
  1. S MAGNFDA(2006.5841,IENS,6)=MAGPARAM("TIU NOTE FILE")
  1. ;
  1. D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. ;
  1. I $D(MAGNXE("DIERR","E")) D Q
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . S MAGRY="0^"_MAGRESA(1)
  1. . Q
  1. E S MAGRY="1^"_MAGNIEN(1)
  1. Q
  1. ;
  1. ;***** Add/Update/Delete a service in DICOM HEALTHCARE PROVIDER SERVICE file (#2006.5831)
  1. ; RPC: MAG3 TELEREADER PDR SRVC SETUP
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; Delete action:
  1. ; MAGPARAM("ACTION") = "DELETE"
  1. ; MAGPARAM("IEN") = IEN of the record that will be deleted
  1. ; Add or Update action:
  1. ; MAGPARAM("ACTION") = "ADD" or "UPDATE"
  1. ; MAGPARAM("REQUEST SERVICE") = A pointer to the "Request Services" file (#123.5)
  1. ; MAGPARAM("PROCEDURE") = A pointer to GMRC PROCEDURE file (#123.3)
  1. ; MAGPARAM("SPECIALTY INDEX") = A pointer to SPECIALTY file (#2005.84)
  1. ; MAGPARAM("PROCEDURE INDEX") = A pointer to PROCEDURE/EVENT file (#2005.85)
  1. ; MAGPARAM("ACQUISITION SITE") = A pointer to INSTITUTION file (#4)
  1. ; MAGPARAM("CPT CODE") = A pointer to CPT file (#81)
  1. ; MAGPARAM("HL7 HLO SUBSCRIPTION LIST") = A pointer to HLO SUBSCRIPTION REGISTRY file (#779.4)
  1. ; MAGPARAM("CLINIC") = "^" delimited string with clinics IENS in file (#44)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = "0^Error"
  1. ; if success MAGRY = "1^IEN" - IEN of the record that is updated
  1. ; or IEN of the added record
  1. ;
  1. UPSRVC(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER PDR SRVC SETUP]
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. ;
  1. N X,MAGNFDA,MAGNIEN,MAGNXE,IENS,IEN,MAGRESA
  1. N DA,DIK
  1. ;
  1. ;^MAG(2006.5831,D0,0)=1=REQUEST SERVICE, 2=PROCEDURE, 3=SPECIALTY INDEX, 4=PROCEDURE INDEX
  1. ; 5=ACQUSITION SITE, 6=CPT CODE, 7=HL7 HLO SUBSCRIPTION LIST
  1. ;
  1. I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit
  1. . S DIK="^MAG(2006.5831,"
  1. . S DA=MAGPARAM("IEN")
  1. . D ^DIK
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. S MAGRY=""
  1. I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a service,procedure already exists
  1. . I $$IREQUEST^MAGDHOW1(MAGPARAM("REQUEST SERVICE"),MAGPARAM("PROCEDURE"))>0 S MAGRY="0^Service/Procedure pair already exists." Q
  1. . S IENS="+1,"
  1. . Q
  1. E S IENS=MAGPARAM("IEN")_",",MAGNIEN(1)=MAGPARAM("IEN") ; ACTION = UPDATE
  1. ;
  1. S MAGNFDA(2006.5831,IENS,.01)=MAGPARAM("REQUEST SERVICE") ; REQUEST SERVICE
  1. S MAGNFDA(2006.5831,IENS,2)=MAGPARAM("PROCEDURE") ; PROCEDURE
  1. S MAGNFDA(2006.5831,IENS,3)=MAGPARAM("SPECIALTY INDEX") ; SPECIALTY INDEX
  1. S MAGNFDA(2006.5831,IENS,4)=MAGPARAM("PROCEDURE INDEX") ; PROCEDURE INDEX
  1. S MAGNFDA(2006.5831,IENS,5)=MAGPARAM("ACQUISITION SITE") ; ACQUISITION SITE
  1. S MAGNFDA(2006.5831,IENS,6)=MAGPARAM("CPT CODE") ; CPT CODE
  1. S MAGNFDA(2006.5831,IENS,7)=MAGPARAM("HL7 HLO SUBSCRIPTION LIST") ; HL7 HLO SUBSCRIPTION LIST
  1. ;
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. ;
  1. I $D(MAGNXE("DIERR","E")) D Q
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . S MAGRY="0^"_MAGRESA(1)
  1. . Q
  1. ;
  1. I $D(MAGPARAM("CLINIC")) I '$$UCLINIC^MAGNTLRS(.MAGRY,MAGPARAM("CLINIC"),MAGNIEN(1)) Q
  1. ;
  1. S MAGRY="1^"_MAGNIEN(1)
  1. Q
  1. ; #######################
  1. ; UCLINIC - Update Clinic multiple field in file #2006.5831
  1. ;
  1. ; Returns 0 if failed
  1. ; 1 success
  1. ; Input parameters
  1. ; CLINS = "^" delimited string with clinics IENS
  1. ; IEN = IEN in file #2006.5831
  1. ;
  1. ; Output parameters
  1. ; RES = "0^Error"
  1. ;
  1. UCLINIC(RES,CLINS,IEN) ; Update Clinic field in file #2006.58311 (old #2006.58314)
  1. N CLIN,CLINA,OUT,MSG,I
  1. N DA,DIK
  1. N MAGNFDA,MAGNXE,MAGNIEN
  1. S RES=""
  1. D LIST^DIC(2006.58311,","_IEN_",","@;.01I","",,,,,,,"OUT","MSG")
  1. I $D(MSG("DIERR","E")) S RES="0^Error updating CLINIC field" Q 0
  1. ;
  1. S DA(1)=IEN ; set the variables so we can perform deletion of multiple if needed
  1. S DIK="^MAG(2006.5831,"_IEN_",1,"
  1. ;
  1. F I=1:1 S CLIN=$P(CLINS,"^",I) Q:CLIN="" S CLINA(CLIN)=""
  1. ;
  1. ; delete multiple if they are not present in CLINA (CLINS)
  1. S I=0
  1. F S I=$O(OUT("DILIST","ID",I)) Q:'I D
  1. . S CLIN=OUT("DILIST","ID",I,".01")
  1. . I $D(CLINA(CLIN)) K CLINA(CLIN) Q ; The Clin ID exists in multiple. Delete from CLINA and continue
  1. . S DA=OUT("DILIST","2",I)
  1. . D ^DIK
  1. . Q
  1. ;
  1. ; insert the new multiples
  1. S CLIN=""
  1. F S CLIN=$O(CLINA(CLIN)) Q:CLIN="" Q:RES'="" D
  1. . K MAGNFDA,MAGNXE,MAGNIEN
  1. . S MAGNFDA(2006.58311,"+1,"_IEN_",",.01)=CLIN
  1. . D UPDATE^DIE("","MAGNFDA","","MAGNXE")
  1. . I $D(MAGNXE("DIERR","E")) S RES="0^Error inserting CLINIC field " Q
  1. . Q
  1. Q $S(RES="":1,1:0) ; return
  1. ;
  1. ;***** Add/Update/Delete a site in TELEREADER ACQUISITION SITE file (#2006.5842)
  1. ; RPC: MAG3 TELEREADER SITE SETUP
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; Delete action:
  1. ; MAGPARAM("ACTION") = "DELETE"
  1. ; MAGPARAM("IEN") = IEN of the record that will be deleted
  1. ; Add or Update action:
  1. ; MAGPARAM("ACTION") = "ADD" or "UPDATE"
  1. ; MAGPARAM("NAME") = A pointer to the INSTITUTION file (#4)
  1. ; MAGPARAM("PRIMARY SITE") = A pointer to the INSTITUTION file (#4)
  1. ; MAGPARAM("STATUS") = 0 or 1 (Active or Inactive)
  1. ; MAGPARAM("LOCK TIMEOUT IN MINUTES") = value of field #3 of file (#2006.5842)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = "0^Error"
  1. ; if success MAGRY = "1^IEN" - IEN of the record that is updated
  1. ; or IEN of the added record
  1. ;
  1. USITE(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER SITE SETUP]
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. ;
  1. N X,MAGNFDA,MAGNIEN,MAGNXE,IENS,MAGRESA
  1. N DA,DIK
  1. ;
  1. ;^MAG(2006.5842,D0,0)=1=NAME,2=PRIMARY SITE,3=STATUS,4=LOCK TIMEOUT IN MINUTES
  1. ;
  1. I MAGPARAM("ACTION")="DELETE" D Q ; Delete an entry IEN and exit
  1. . S DIK="^MAG(2006.5842,"
  1. . S DA=MAGPARAM("IEN")
  1. . D ^DIK
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. S MAGRY=""
  1. I MAGPARAM("ACTION")="ADD" D Q:MAGRY'="" ; Quit if a record already exists
  1. . D FIND^DIC(2006.5842,"","@;IX","PQX",MAGPARAM("NAME"),"1","B","","","X")
  1. . I $D(X("DILIST","1",0)) S MAGRY="0^Record already exists"
  1. . S IENS="+1,"
  1. E S IENS=MAGPARAM("IEN")_","
  1. ;
  1. S MAGNIEN(1)=MAGPARAM("NAME") ; if you add a new item using P^DI the new IEN will be value of field "NAME" (#.01)
  1. S MAGNFDA(2006.5842,IENS,.01)=MAGPARAM("NAME")
  1. S MAGNFDA(2006.5842,IENS,1)=MAGPARAM("PRIMARY SITE")
  1. S MAGNFDA(2006.5842,IENS,2)=MAGPARAM("STATUS")
  1. S MAGNFDA(2006.5842,IENS,3)=MAGPARAM("LOCK TIMEOUT IN MINUTES")
  1. ;
  1. D UPDATE^DIE("SK","MAGNFDA","MAGNIEN","MAGNXE")
  1. ;
  1. I $D(MAGNXE("DIERR","E")) D Q
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . S MAGRY="0^"_MAGRESA(1)
  1. . Q
  1. E S MAGRY="1^"_MAGNIEN(1)
  1. Q
  1. ;
  1. ;***** Add/Update/Delete TELEREADER READER file (#2006.5843)
  1. ; RPC: MAG3 TELEREADER READER SETUP
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; Delete actions:
  1. ; Reader
  1. ; MAGPARAM("ACTION") = "DELETE READER"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; Acquisition Site
  1. ; MAGPARAM("ACTION") = "DELETE SITE"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; Specialty
  1. ; MAGPARAM("ACTION") = "DELETE SPECIALTY"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value
  1. ; Procedure
  1. ; MAGPARAM("ACTION") = "DELETE PROCEDURE"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value
  1. ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value
  1. ; Update Status field:
  1. ; Acquisition Site
  1. ; MAGPARAM("ACTION") = "SET SITE STATUS"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("ACQUISITION SITE STATUS") = 0 or 1 (Active or Inactive)
  1. ; Specialty
  1. ; MAGPARAM("ACTION") = "SET SPECIALTY STATUS"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value
  1. ; MAGPARAM("SPECIALTY INDEX STATUS") = 0 or 1 (Active or Inactive)
  1. ; Procedure
  1. ; MAGPARAM("ACTION") = "SET PROCEDURE STATUS"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value
  1. ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value
  1. ; MAGPARAM("PROCEDURE STATUS") = 0 or 1 (Active or Inactive)
  1. ; Add action:
  1. ; MAGPARAM("ACTION") = "ADD"
  1. ; MAGPARAM("READER") = Reader internal value
  1. ; MAGPARAM("ACQUISITION SITE") = Acquisition Site internal value
  1. ; MAGPARAM("ACQUISITION SITE STATUS") = Acquisition Site Status
  1. ; MAGPARAM("SPECIALTY INDEX") = Specialty Index internal value
  1. ; MAGPARAM("SPECIALTY INDEX STATUS") = Specialty Index Status
  1. ; MAGPARAM("PROCEDURE INDEX") = Procedure Index internal value
  1. ; MAGPARAM("PROCEDURE INDEX STATUS") = 0 or 1 (Active or Inactive)
  1. ; MAGPARAM("PROCEDURE INDEX USER PREFERENCE") = 0 or 1 (Active or Inactive)
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = "0^Error"
  1. ; if success MAGRY = "1^IEN" - IEN of the record that is updated
  1. ; or IEN of the added record
  1. ;
  1. UREADER(MAGRY,MAGPARAM) ;RPC [MAG3 TELEREADER READER SETUP]
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. ;
  1. N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA
  1. ;
  1. I MAGPARAM("ACTION")="DELETE READER" D Q ; Delete an entry and exit
  1. . D DREADER(.MAGPARAM)
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="DELETE SITE" D Q ; Delete an entry and exit
  1. . D DACQSITE(.MAGPARAM)
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="DELETE SPECIALTY" D Q ; Delete an entry and exit
  1. . D DSPECIDX(.MAGPARAM)
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="DELETE PROCEDURE" D Q ; Delete an entry and exit
  1. . D DPROCIDX(.MAGPARAM)
  1. . S MAGRY=1
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="SET SITE STATUS" D Q ; Exit
  1. . S MAGRY=$$USITEST(.MAGPARAM)
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="SET SPECIALTY STATUS" D Q ; Exit
  1. . S MAGRY=$$USPECST(.MAGPARAM)
  1. . Q
  1. ;
  1. I MAGPARAM("ACTION")="SET PROCEDURE STATUS" D Q ; Exit
  1. . S MAGRY=$$UPROCST(.MAGPARAM)
  1. . Q
  1. ;
  1. ; Add
  1. S MAGNFDA(2006.5843,"?+1,",.01)=MAGPARAM("READER")
  1. S MAGNFDA(2006.58431,"?+2,?+1,",.01)=MAGPARAM("ACQUISITION SITE")
  1. S MAGNFDA(2006.58431,"?+2,?+1,",.5)=MAGPARAM("ACQUISITION SITE STATUS")
  1. S MAGNFDA(2006.584311,"?+3,?+2,?+1,",.01)=MAGPARAM("SPECIALTY INDEX")
  1. S MAGNFDA(2006.584311,"?+3,?+2,?+1,",.5)=MAGPARAM("SPECIALTY INDEX STATUS")
  1. S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",.01)=MAGPARAM("PROCEDURE INDEX")
  1. S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",.5)=MAGPARAM("PROCEDURE INDEX STATUS")
  1. S MAGNFDA(2006.5843111,"?+4,?+3,?+2,?+1,",1)=MAGPARAM("PROCEDURE INDEX USER PREFERENCE")
  1. ;
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. ;
  1. I $D(MAGNXE("DIERR","E")) D Q
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . S MAGRY="0^"_MAGRESA(1)
  1. . Q
  1. E S MAGRY="1^OK"
  1. Q
  1. ;
  1. DREADER(MAGPARAM) ; Delete a reader
  1. N MAGD0,DA,DIK
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S DA=MAGD0
  1. S DIK="^MAG(2006.5843,"
  1. D ^DIK
  1. Q
  1. ;
  1. DACQSITE(MAGPARAM) ; Delete acquisition site
  1. N MAGD0,MAGD1,DA,DIK
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S DA=MAGD1
  1. S DA(1)=MAGD0
  1. S DIK="^MAG(2006.5843,"_MAGD0_",1,"
  1. D ^DIK
  1. I $O(^MAG(2006.5843,MAGD0,1,"B",""))="" D DREADER(.MAGPARAM) Q ; no more sites
  1. Q
  1. ;
  1. DSPECIDX(MAGPARAM) ; Delete specialty
  1. N MAGD0,MAGD1,MAGD2,DA,DIK
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),""))
  1. S DA=MAGD2
  1. S DA(1)=MAGD1
  1. S DA(2)=MAGD0
  1. S DIK="^MAG(2006.5843,"_MAGD0_",1,"_MAGD1_",1,"
  1. D ^DIK
  1. I $O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",""))="" D DACQSITE(.MAGPARAM) Q ; no more specialties
  1. Q
  1. ;
  1. DPROCIDX(MAGPARAM) ; Delete Procedure index from file #2006.5843
  1. N MAGD0,MAGD1,MAGD2,MAGD3,DA,DIK
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),""))
  1. S MAGD3=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",MAGPARAM("PROCEDURE INDEX"),""))
  1. S DA=MAGD3
  1. S DA(1)=MAGD2
  1. S DA(2)=MAGD1
  1. S DA(3)=MAGD0
  1. S DIK="^MAG(2006.5843,"_MAGD0_",1,"_MAGD1_",1,"_MAGD2_",1,"
  1. D ^DIK
  1. I $O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",""))="" D DSPECIDX(.MAGPARAM) Q ; no more procedures
  1. Q
  1. ;
  1. USITEST(MAGPARAM) ; Update Acquisition Site Status
  1. N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA
  1. N MAGD0,MAGD1
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S MAGNFDA(2006.58431,MAGD1_","_MAGD0_",",.5)=MAGPARAM("ACQUISITION SITE STATUS")
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1)
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . Q
  1. E Q "1^OK"
  1. Q
  1. ;
  1. USPECST(MAGPARAM) ; Update Specialty Index Status
  1. N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA
  1. N MAGD0,MAGD1,MAGD2
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),""))
  1. S MAGNFDA(2006.584311,MAGD2_","_MAGD1_","_MAGD0_",",.5)=MAGPARAM("SPECIALTY INDEX STATUS")
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1)
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . Q
  1. E Q "1^OK"
  1. Q
  1. ;
  1. UPROCST(MAGPARAM) ; Update Procedure Index Status
  1. N MAGNFDA,MAGNIEN,MAGNXE,MAGRESA
  1. N MAGD0,MAGD1,MAGD2,MAGD3
  1. S MAGD0=$O(^MAG(2006.5843,"B",MAGPARAM("READER"),""))
  1. S MAGD1=$O(^MAG(2006.5843,MAGD0,1,"B",MAGPARAM("ACQUISITION SITE"),""))
  1. S MAGD2=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,"B",MAGPARAM("SPECIALTY INDEX"),""))
  1. S MAGD3=$O(^MAG(2006.5843,MAGD0,1,MAGD1,1,MAGD2,1,"B",MAGPARAM("PROCEDURE INDEX"),""))
  1. S MAGNFDA(2006.5843111,MAGD3_","_MAGD2_","_MAGD1_","_MAGD0_",",.5)=MAGPARAM("PROCEDURE INDEX STATUS")
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) D Q "0^"_MAGRESA(1)
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . Q
  1. E Q "1^OK"
  1. Q
  1. ;
  1. ;***** Set Time Out for an application
  1. ; RPC: MAG3 SET TIMEOUT
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ; MAGAPP is "DISPLAY", "CAPTURE", "VISTARAD", "TELEREADER", or "TELEPATHOLOGY"
  1. ; MAGTIME is time out value
  1. ;
  1. ; Return Values
  1. ; =============
  1. ; if error MAGRY = first "^" piece is zero if record is not found or
  1. ; updating error
  1. ; if success MAGRY = "1^IEN" - IEN of the record that is updated
  1. ;
  1. TIMEOUT(MAGRY,MAGAPP,MAGTIME) ;RPC [MAG3 SET TIMEOUT]
  1. ; Set the timeout for the APP from IMAGING SITE PARAMETERS File
  1. ; MAGAPP is either 'DISPLAY', 'CAPTURE','VISTARAD', or 'TELEREADER'
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGTERR"
  1. ;
  1. N MAGNFDA,MAGNIEN,MAGNXE,MAGPLC,IEN,MAGFLD
  1. N MAGRESA
  1. ;
  1. S MAGRY=""
  1. S MAGPLC=$$PLACE^MAGBAPI(DUZ(2))
  1. I 'MAGPLC S MAGRY="0^No record found" Q
  1. ;
  1. S IEN=MAGPLC_","
  1. I MAGAPP="DISPLAY" S MAGFLD=121
  1. I MAGAPP="CAPTURE" S MAGFLD=122
  1. I MAGAPP="VISTARAD" S MAGFLD=123
  1. I MAGAPP="TELEREADER" S MAGFLD=131
  1. I MAGAPP="TELEPATHOLOGY" S MAGFLD=135
  1. ;
  1. S MAGNFDA(2006.1,IEN,MAGFLD)=MAGTIME
  1. D UPDATE^DIE("S","MAGNFDA","MAGNIEN","MAGNXE")
  1. I $D(MAGNXE("DIERR","E")) D Q
  1. . D MSG^DIALOG("A",.MAGRESA,245,5,"MAGNXE")
  1. . S MAGRY="0^"_MAGRESA(1)
  1. . Q
  1. E S MAGRY="1^"_MAGPLC
  1. Q