- INHPSAM ; FRW ; 18 Aug 1999 09:23:25; Interface Application control utility - main
- ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- ;COPYRIGHT 1991-2000 SAIC
- ;
- Q
- ;
- TASKDEV(INPAR,INVERBOS) ; ask for device name and task to process the user action
- ;Input:
- ; INPAR - array of parameters
- ; INVERBOS - verbose
- ; INDISCRP - if set to one and user action is show
- ; it shows the dicrepancies report too
- N %ZIS,X,ZTDESC,ZTIO,ZTRTN,ZTSAVE
- ;Device handling & Tasking logic
- K IOP S %ZIS("A")="QUEUE ON DEVICE: ",%ZIS("B")="",%ZIS="NQ" D ^%ZIS G:POP QUIT
- S IOP=ION_";"_IOST_";"_IOM_";"_IOSL
- I IO=IO(0) S %ZIS="" D ^%ZIS I POP W *7,!,"Sorry, unable to find device..." G QUIT
- I IO'=IO(0) S ZTDESC="Interface application Control utility",ZTIO=IOP,ZTRTN="PROC^INHPSAM(.INPAR)" D G QUIT
- .F X="INPAR(","INVERBOS","INDISCRP" S ZTSAVE(X)=""
- .D ^%ZTLOAD
- ENQUE ; Taskman entry point - Process user actions
- D PROC(.INPAR,INVERBOS)
- G QUIT
- ;
- QUIT ;exit module
- D ^%ZISC K IO("Q"),IOP,POP
- Q
- ;---------------------------------------------------------
- SHOWONLY ;Main entry point to show only process interfaces
- ; this entry is called from a menu option
- N INSHOWME
- S INSHOWME=1
- D EN
- Q
- ;
- EN ;Main entry point to interactively process interfaces
- N INPAR,INVERBOS
- D:'$G(DUZ) ENV^UTIL
- ;Get user parameters
- Q:'$$PARM(.INPAR)
- ;ask decvice and task to Process user actions
- D TASKDEV(.INPAR,$G(INVERBOS))
- ;
- Q
- ;
- SUMALL ;display summary of all production interfaces
- ;
- D:'$G(DUZ) ENV^UTIL
- D ALL(3)
- Q
- ;
- SHOWALL ;show all production interfaces
- ;
- D:'$G(DUZ) ENV^UTIL
- D ALL(2)
- Q
- ;
- ACTIV ;Activate all production interfaces
- ;
- D ALL(1)
- Q
- ;
- DEACT ;Deactivate all production interfaces
- ;
- D ALL(0)
- Q
- ;
- ALL(INST) ;Process all production interfaces
- ;
- N INVERBOS,X,INPAR
- ;S INVERBOS=1
- D APPLAR
- S INST=+$G(INST),INPAR("ACT")=INST,INPAR("REPL")=0
- F X="TRAC","AP","BB","BCC","CHCSII","CIW","CLIN","CRSPL","CRSPR","DINPACS","HIV","ITS","DMHRS","LSI","MDIS","MHC","NMIS","PDTS","PMN","PWS","TSC","TSCL" S INPAR("APSEL",X)=""
- D TASKDEV(.INPAR,$G(INVERBOS))
- ;
- Q
- ;
- COMPSUM(INPAR) ; compile and report the status of all interfaces
- ;Input:
- ; INPAR - array of parameters for all interfaces
- ;
- N HDR,INPAGE,INTER,INPARFND,INMTF,INTIME
- S INPAGE=0
- S INMTF=$$GETMTF^INHPSA(),INTIME=$$CDATASC^%ZTFDT($H,1,1)
- S HDR(1)="INMTF,?(IOM-27),INTIME,"" PAGE:"",$J(INPAGE,4)"
- S HDR(2)="""Interface Status"""
- S HDR(3)="",$P(HDR(3),"-",IOM)="",HDR(3)=""""_HDR(3)_""",!"
- ;S HDR(1)="""Interface Status"",?(IOM-10),""PAGE:"",$J(INPAGE,4)"
- ;S HDR(2)="",$P(HDR(2),"-",IOM)="",HDR(2)=""""_HDR(2)_""",!"
- D HEADER^INHMG
- S INTER=""
- F S INTER=$O(INPAR("APSEL",INTER)) Q:'$L(INTER)!$G(DUOUT) D PROCSUM(INTER,.INPAR,.INPARFND)
- Q:$G(DUOUT)
- I $G(INPARFND) D
- .D T^INHMG1 W !
- .D T^INHMG1 W " *PARTIAL means that an interface has both active and inactive transactions."
- .D T^INHMG1 W " This usually means that the transactions are used by multiple"
- .D T^INHMG1 W " interfaces."
- Q
- PROCSUM(INTER,INPAR,INPARFND) ; process and report the status of one interface only
- ;Input:
- ; INTER - interface application identifier
- ; INPAR - array of parameters for all interfaces
- ; INPARFND - if set it means that this interface has both active
- ; and inactive transactions (PARTIAL)
- ;
- N INDAT,INREC,ACTIVE,INACTIVE,STAT,DA,DIC,X,Y,INNAME
- S (ACTIVE,INACTIVE)=0
- I '$$CREDAT^INHPSA(.INDAT) D T^INHMG1 W "ERROR: "_INTER_" Unable to create data array" Q
- S INREC=0
- F S INREC=$O(INDAT(INTER,4004,INREC)) Q:'INREC D
- .S (INNAME,X)=$P(INDAT(INTER,4004,INREC),U)
- .S DIC=4004,DIC(0)="",Y=$$DIC^INHPSA(DIC,X,"",DIC(0)),DA=+Y
- .I INNAME'=$P(Y,U,2) D T^INHMG1 W "ERROR: Wanted background process ",INNAME," but found ",$P(Y,U,2)," (",+Y,")." Q 0
- .I DA<0 D T^INHMG1 W "ERROR: Background Process: ",INNAME," not found."
- .I $P($G(^INTHPC(DA,0)),U,2) S ACTIVE=1
- .E S INACTIVE=1
- ;
- S INREC=0
- F S INREC=$O(INDAT(INTER,4000,INREC)) Q:'INREC D
- .I $P(INDAT(INTER,4000,INREC),U,2) Q ; do not include this transaction if suppress deactivation flag is set
- .S (INNAME,X)=$P(INDAT(INTER,4000,INREC),U)
- .S DIC=4000,DIC(0)="",Y=$$DIC^INHPSA(DIC,X,"",DIC(0)),DA=+Y
- .I DA<0 D T^INHMG1 W "ERROR: Transaction Type: ",INNAME," not found. But found ",$P(Y,U,2)," (",+Y,")." Q
- .I INNAME'=$P(Y,U,2) D T^INHMG1 W "ERROR: Wanted transaction type ",INNAME
- .I $P($G(^INRHT(DA,0)),U,5) S ACTIVE=1
- .E S INACTIVE=1
- ;
- S STAT=""
- I ACTIVE,'INACTIVE S STAT="ACTIVE"
- I 'ACTIVE,INACTIVE S STAT="INACTIVE"
- I ACTIVE,INACTIVE S STAT="PARTIAL",INPARFND=1
- D T^INHMG1 Q:$G(DUOUT) W STAT,?11,INTER,?20,$P(INPAR("APPL",INTER),U)
- Q
- ;
- PROC(INPAR,INVERBOS) ;Process selected actions
- ;Input:
- ; INPAR - array of parameters
- ; INVERBOS - verbose
- ; INDISCRP - if set to one and user action is show
- ; it shows the dicrepancies report too
- ;
- N DUOUT
- I INPAR("ACT")=3 D COMPSUM(.INPAR) Q
- N INPAGE,ININT,INNOOUT
- I INPAR("ACT")<2 S INNOOUT=1 ;do not let user to abort if activating or deactivating
- ;Run control routine for interface(s) selected
- S INPAGE=0
- S ININT="" F S ININT=$O(INPAR("APSEL",ININT)) Q:'$L(ININT)!$G(DUOUT) D
- . ;?? Preprocess to verify that application will load correctly
- . ;
- . ;Run application program
- . S %=$$PROCINT^INHPSA(ININT,.INPAR)
- ;
- Q
- ;
- PARM(INPAR) ;Obtain user parameters
- ;OUTPUT:
- ; INPAR - array of parameters (pbr)
- ; ("APPL", x ) = interface application data
- ; name ^
- ; x = interface application identifier
- ; => MDIS, CLIN, MHC, AP, BB
- ; => CIW, TEST, PROTO
- ; ("APCO" , x ) = interface name ^ control routine
- ; ("APSEL", x ) = interface application selected
- ; ("REPL") = replicate ( 1 - yes ; 0 - no (def) )
- ; ("ACT") = action ( 1- activate ; 0 - deactivate
- ; 2 - show)
- ;
- ;
- ;Create array of interface applications and control parameters
- D APPLAR
- ;Select an interface
- Q:'$$INTSEL(.INPAR) 0
- ;How created (replicated or parent) - default to parent - DEFER
- S INPAR("REPL")=0
- ;---I $G(XQO)'="" S INPAR("ACT")=2 Q 1 ;if this program was entered from a menu then this is a show action only
- I $G(INSHOWME) S INPAR("ACT")=2 Q 1 ;if this is a show only, do not ask for activate or deactivate
- ;Select an action (activate or deactivate)
- W !! S %=$$SOC^UTIL("Select Action: ;;;1,30","","SHOW^ACTIVATE^DEACTIVATE",0)
- Q:'$L(%)!(%[U) 0 S INPAR("ACT")=$S($E(%,U,4)["DEAC":0,$E(%,U,4)["ACTI":1,1:2)
- I INPAR("ACT")=2 Q 1 ; this is a show action
- ;Ask if OK to continue
- W !!,"WARNING: Modifying the status of interfaces can have dramatic effects."
- W ! Q:'$$YN^UTSRD("Are you sure you wish to continue ;0") 0
- W ! Q:'$$YN^UTSRD("Are you absolutely positive you wish to continue ;0") 0
- ;
- Q 1
- ;
- INTSEL(INPAR) ;Select an interface
- ;
- N DAT,%
- W !
- S %="",DAT=""
- F S %=$O(INPAR("APPL",%)) Q:'$L(%) W !,?3,%,?13,$P(INPAR("APPL",%),U) S DAT=DAT_U_%
- S DAT=$E(DAT,2,999)
- W !!
- S %=$$SOC^UTIL("Select Interface Application: ;;;1,8","",DAT,0)
- Q:'$L(%)!(%[U) 0
- S INPAR("APSEL",%)=""
- ;
- Q 1
- ;
- APPLAR ;Create array of interface applications
- ;
- K INPAR N L,L2,NA
- F LC=1:1 S L=$P($T(DATA+LC),";;",2,99) Q:'$L(L) D
- . ;S L2=$P($T(DATA+(LC+1)),";;",2,99),NA=$P(L,U,2)
- . S NA=$P(L,U,2),L2="Q"
- . ;Quit if no routine or no identifier
- . Q:'$L(L2)!'$L(NA)
- . S INPAR("APPL",NA)=L
- . S INPAR("APCO",NA)=L2
- ;action - activate (def)
- S INPAR("ACT")=1
- ;Replicate or Parent - default to parent/child
- S INPAR("REPL")=0
- Q
- ;
- DATACOM ;Description of DATA tag
- ;; format - ;; interface application name ^ appl indentifier
- DATA ;Data
- ;;Anatomic Pathology^AP
- ;;DBSS^BB
- ;;Breast Care Clinic^BCC
- ;;CHCS II^CHCSII
- ;;Clinical Integrated Workstation^CIW
- ;;Clinicomp^CLIN
- ;;CRSP Local^CRSPL
- ;;CRSP Regional^CRSPR
- ;;DINPACS^DINPACS
- ;;HIV Viromed/HIV ABTS Receiver Phase 2^HIV
- ;;Immunization Tracking System EuroCHCS/DEERS^ITS
- ;;DMHRS^DMHRS
- ;;Lab System Interface^LSI
- ;;MDIS^MDIS
- ;;MHCMIS (CEIS)^MHC
- ;;Nutrition Management Interface System^NMIS
- ;;Pacmednet^PMN
- ;;Pharmacy Data Transaction Service^PDTS
- ;;Provider WorkStation^PWS
- ;;TRACES^TRAC
- ;;TRICARE Support Contractor^TSC
- ;;TRICARE Support Contractor Loader^TSCL
- ;;
- ;;Test Functionality^TEST
- ;;Prototype Functionality^PROTO
- ;;
- INHPSAM ; FRW ; 18 Aug 1999 09:23:25; Interface Application control utility - main
- +1 ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- +2 ;COPYRIGHT 1991-2000 SAIC
- +3 ;
- +4 QUIT
- +5 ;
- TASKDEV(INPAR,INVERBOS) ; ask for device name and task to process the user action
- +1 ;Input:
- +2 ; INPAR - array of parameters
- +3 ; INVERBOS - verbose
- +4 ; INDISCRP - if set to one and user action is show
- +5 ; it shows the dicrepancies report too
- +6 NEW %ZIS,X,ZTDESC,ZTIO,ZTRTN,ZTSAVE
- +7 ;Device handling & Tasking logic
- +8 KILL IOP
- SET %ZIS("A")="QUEUE ON DEVICE: "
- SET %ZIS("B")=""
- SET %ZIS="NQ"
- DO ^%ZIS
- IF POP
- GOTO QUIT
- +9 SET IOP=ION_";"_IOST_";"_IOM_";"_IOSL
- +10 IF IO=IO(0)
- SET %ZIS=""
- DO ^%ZIS
- IF POP
- WRITE *7,!,"Sorry, unable to find device..."
- GOTO QUIT
- +11 IF IO'=IO(0)
- SET ZTDESC="Interface application Control utility"
- SET ZTIO=IOP
- SET ZTRTN="PROC^INHPSAM(.INPAR)"
- Begin DoDot:1
- +12 FOR X="INPAR(","INVERBOS","INDISCRP"
- SET ZTSAVE(X)=""
- +13 DO ^%ZTLOAD
- End DoDot:1
- GOTO QUIT
- ENQUE ; Taskman entry point - Process user actions
- +1 DO PROC(.INPAR,INVERBOS)
- +2 GOTO QUIT
- +3 ;
- QUIT ;exit module
- +1 DO ^%ZISC
- KILL IO("Q"),IOP,POP
- +2 QUIT
- +3 ;---------------------------------------------------------
- SHOWONLY ;Main entry point to show only process interfaces
- +1 ; this entry is called from a menu option
- +2 NEW INSHOWME
- +3 SET INSHOWME=1
- +4 DO EN
- +5 QUIT
- +6 ;
- EN ;Main entry point to interactively process interfaces
- +1 NEW INPAR,INVERBOS
- +2 IF '$GET(DUZ)
- DO ENV^UTIL
- +3 ;Get user parameters
- +4 IF '$$PARM(.INPAR)
- QUIT
- +5 ;ask decvice and task to Process user actions
- +6 DO TASKDEV(.INPAR,$GET(INVERBOS))
- +7 ;
- +8 QUIT
- +9 ;
- SUMALL ;display summary of all production interfaces
- +1 ;
- +2 IF '$GET(DUZ)
- DO ENV^UTIL
- +3 DO ALL(3)
- +4 QUIT
- +5 ;
- SHOWALL ;show all production interfaces
- +1 ;
- +2 IF '$GET(DUZ)
- DO ENV^UTIL
- +3 DO ALL(2)
- +4 QUIT
- +5 ;
- ACTIV ;Activate all production interfaces
- +1 ;
- +2 DO ALL(1)
- +3 QUIT
- +4 ;
- DEACT ;Deactivate all production interfaces
- +1 ;
- +2 DO ALL(0)
- +3 QUIT
- +4 ;
- ALL(INST) ;Process all production interfaces
- +1 ;
- +2 NEW INVERBOS,X,INPAR
- +3 ;S INVERBOS=1
- +4 DO APPLAR
- +5 SET INST=+$GET(INST)
- SET INPAR("ACT")=INST
- SET INPAR("REPL")=0
- +6 FOR X="TRAC","AP","BB","BCC","CHCSII","CIW","CLIN","CRSPL","CRSPR","DINPACS","HIV","ITS","DMHRS","LSI","MDIS","MHC","NMIS","PDTS","PMN","PWS","TSC","TSCL"
- SET INPAR("APSEL",X)=""
- +7 DO TASKDEV(.INPAR,$GET(INVERBOS))
- +8 ;
- +9 QUIT
- +10 ;
- COMPSUM(INPAR) ; compile and report the status of all interfaces
- +1 ;Input:
- +2 ; INPAR - array of parameters for all interfaces
- +3 ;
- +4 NEW HDR,INPAGE,INTER,INPARFND,INMTF,INTIME
- +5 SET INPAGE=0
- +6 SET INMTF=$$GETMTF^INHPSA()
- SET INTIME=$$CDATASC^%ZTFDT($HOROLOG,1,1)
- +7 SET HDR(1)="INMTF,?(IOM-27),INTIME,"" PAGE:"",$J(INPAGE,4)"
- +8 SET HDR(2)="""Interface Status"""
- +9 SET HDR(3)=""
- SET $PIECE(HDR(3),"-",IOM)=""
- SET HDR(3)=""""_HDR(3)_""",!"
- +10 ;S HDR(1)="""Interface Status"",?(IOM-10),""PAGE:"",$J(INPAGE,4)"
- +11 ;S HDR(2)="",$P(HDR(2),"-",IOM)="",HDR(2)=""""_HDR(2)_""",!"
- +12 DO HEADER^INHMG
- +13 SET INTER=""
- +14 FOR
- SET INTER=$ORDER(INPAR("APSEL",INTER))
- IF '$LENGTH(INTER)!$GET(DUOUT)
- QUIT
- DO PROCSUM(INTER,.INPAR,.INPARFND)
- +15 IF $GET(DUOUT)
- QUIT
- +16 IF $GET(INPARFND)
- Begin DoDot:1
- +17 DO T^INHMG1
- WRITE !
- +18 DO T^INHMG1
- WRITE " *PARTIAL means that an interface has both active and inactive transactions."
- +19 DO T^INHMG1
- WRITE " This usually means that the transactions are used by multiple"
- +20 DO T^INHMG1
- WRITE " interfaces."
- End DoDot:1
- +21 QUIT
- PROCSUM(INTER,INPAR,INPARFND) ; process and report the status of one interface only
- +1 ;Input:
- +2 ; INTER - interface application identifier
- +3 ; INPAR - array of parameters for all interfaces
- +4 ; INPARFND - if set it means that this interface has both active
- +5 ; and inactive transactions (PARTIAL)
- +6 ;
- +7 NEW INDAT,INREC,ACTIVE,INACTIVE,STAT,DA,DIC,X,Y,INNAME
- +8 SET (ACTIVE,INACTIVE)=0
- +9 IF '$$CREDAT^INHPSA(.INDAT)
- DO T^INHMG1
- WRITE "ERROR: "_INTER_" Unable to create data array"
- QUIT
- +10 SET INREC=0
- +11 FOR
- SET INREC=$ORDER(INDAT(INTER,4004,INREC))
- IF 'INREC
- QUIT
- Begin DoDot:1
- +12 SET (INNAME,X)=$PIECE(INDAT(INTER,4004,INREC),U)
- +13 SET DIC=4004
- SET DIC(0)=""
- SET Y=$$DIC^INHPSA(DIC,X,"",DIC(0))
- SET DA=+Y
- +14 IF INNAME'=$PIECE(Y,U,2)
- DO T^INHMG1
- WRITE "ERROR: Wanted background process ",INNAME," but found ",$PIECE(Y,U,2)," (",+Y,")."
- QUIT 0
- +15 IF DA<0
- DO T^INHMG1
- WRITE "ERROR: Background Process: ",INNAME," not found."
- +16 IF $PIECE($GET(^INTHPC(DA,0)),U,2)
- SET ACTIVE=1
- +17 IF '$TEST
- SET INACTIVE=1
- End DoDot:1
- +18 ;
- +19 SET INREC=0
- +20 FOR
- SET INREC=$ORDER(INDAT(INTER,4000,INREC))
- IF 'INREC
- QUIT
- Begin DoDot:1
- +21 ; do not include this transaction if suppress deactivation flag is set
- IF $PIECE(INDAT(INTER,4000,INREC),U,2)
- QUIT
- +22 SET (INNAME,X)=$PIECE(INDAT(INTER,4000,INREC),U)
- +23 SET DIC=4000
- SET DIC(0)=""
- SET Y=$$DIC^INHPSA(DIC,X,"",DIC(0))
- SET DA=+Y
- +24 IF DA<0
- DO T^INHMG1
- WRITE "ERROR: Transaction Type: ",INNAME," not found. But found ",$PIECE(Y,U,2)," (",+Y,")."
- QUIT
- +25 IF INNAME'=$PIECE(Y,U,2)
- DO T^INHMG1
- WRITE "ERROR: Wanted transaction type ",INNAME
- +26 IF $PIECE($GET(^INRHT(DA,0)),U,5)
- SET ACTIVE=1
- +27 IF '$TEST
- SET INACTIVE=1
- End DoDot:1
- +28 ;
- +29 SET STAT=""
- +30 IF ACTIVE
- IF 'INACTIVE
- SET STAT="ACTIVE"
- +31 IF 'ACTIVE
- IF INACTIVE
- SET STAT="INACTIVE"
- +32 IF ACTIVE
- IF INACTIVE
- SET STAT="PARTIAL"
- SET INPARFND=1
- +33 DO T^INHMG1
- IF $GET(DUOUT)
- QUIT
- WRITE STAT,?11,INTER,?20,$PIECE(INPAR("APPL",INTER),U)
- +34 QUIT
- +35 ;
- PROC(INPAR,INVERBOS) ;Process selected actions
- +1 ;Input:
- +2 ; INPAR - array of parameters
- +3 ; INVERBOS - verbose
- +4 ; INDISCRP - if set to one and user action is show
- +5 ; it shows the dicrepancies report too
- +6 ;
- +7 NEW DUOUT
- +8 IF INPAR("ACT")=3
- DO COMPSUM(.INPAR)
- QUIT
- +9 NEW INPAGE,ININT,INNOOUT
- +10 ;do not let user to abort if activating or deactivating
- IF INPAR("ACT")<2
- SET INNOOUT=1
- +11 ;Run control routine for interface(s) selected
- +12 SET INPAGE=0
- +13 SET ININT=""
- FOR
- SET ININT=$ORDER(INPAR("APSEL",ININT))
- IF '$LENGTH(ININT)!$GET(DUOUT)
- QUIT
- Begin DoDot:1
- +14 ;?? Preprocess to verify that application will load correctly
- +15 ;
- +16 ;Run application program
- +17 SET %=$$PROCINT^INHPSA(ININT,.INPAR)
- End DoDot:1
- +18 ;
- +19 QUIT
- +20 ;
- PARM(INPAR) ;Obtain user parameters
- +1 ;OUTPUT:
- +2 ; INPAR - array of parameters (pbr)
- +3 ; ("APPL", x ) = interface application data
- +4 ; name ^
- +5 ; x = interface application identifier
- +6 ; => MDIS, CLIN, MHC, AP, BB
- +7 ; => CIW, TEST, PROTO
- +8 ; ("APCO" , x ) = interface name ^ control routine
- +9 ; ("APSEL", x ) = interface application selected
- +10 ; ("REPL") = replicate ( 1 - yes ; 0 - no (def) )
- +11 ; ("ACT") = action ( 1- activate ; 0 - deactivate
- +12 ; 2 - show)
- +13 ;
- +14 ;
- +15 ;Create array of interface applications and control parameters
- +16 DO APPLAR
- +17 ;Select an interface
- +18 IF '$$INTSEL(.INPAR)
- QUIT 0
- +19 ;How created (replicated or parent) - default to parent - DEFER
- +20 SET INPAR("REPL")=0
- +21 ;---I $G(XQO)'="" S INPAR("ACT")=2 Q 1 ;if this program was entered from a menu then this is a show action only
- +22 ;if this is a show only, do not ask for activate or deactivate
- IF $GET(INSHOWME)
- SET INPAR("ACT")=2
- QUIT 1
- +23 ;Select an action (activate or deactivate)
- +24 WRITE !!
- SET %=$$SOC^UTIL("Select Action: ;;;1,30","","SHOW^ACTIVATE^DEACTIVATE",0)
- +25 IF '$LENGTH(%)!(%[U)
- QUIT 0
- SET INPAR("ACT")=$SELECT($EXTRACT(%,U,4)["DEAC":0,$EXTRACT(%,U,4)["ACTI":1,1:2)
- +26 ; this is a show action
- IF INPAR("ACT")=2
- QUIT 1
- +27 ;Ask if OK to continue
- +28 WRITE !!,"WARNING: Modifying the status of interfaces can have dramatic effects."
- +29 WRITE !
- IF '$$YN^UTSRD("Are you sure you wish to continue ;0")
- QUIT 0
- +30 WRITE !
- IF '$$YN^UTSRD("Are you absolutely positive you wish to continue ;0")
- QUIT 0
- +31 ;
- +32 QUIT 1
- +33 ;
- INTSEL(INPAR) ;Select an interface
- +1 ;
- +2 NEW DAT,%
- +3 WRITE !
- +4 SET %=""
- SET DAT=""
- +5 FOR
- SET %=$ORDER(INPAR("APPL",%))
- IF '$LENGTH(%)
- QUIT
- WRITE !,?3,%,?13,$PIECE(INPAR("APPL",%),U)
- SET DAT=DAT_U_%
- +6 SET DAT=$EXTRACT(DAT,2,999)
- +7 WRITE !!
- +8 SET %=$$SOC^UTIL("Select Interface Application: ;;;1,8","",DAT,0)
- +9 IF '$LENGTH(%)!(%[U)
- QUIT 0
- +10 SET INPAR("APSEL",%)=""
- +11 ;
- +12 QUIT 1
- +13 ;
- APPLAR ;Create array of interface applications
- +1 ;
- +2 KILL INPAR
- NEW L,L2,NA
- +3 FOR LC=1:1
- SET L=$PIECE($TEXT(DATA+LC),";;",2,99)
- IF '$LENGTH(L)
- QUIT
- Begin DoDot:1
- +4 ;S L2=$P($T(DATA+(LC+1)),";;",2,99),NA=$P(L,U,2)
- +5 SET NA=$PIECE(L,U,2)
- SET L2="Q"
- +6 ;Quit if no routine or no identifier
- +7 IF '$LENGTH(L2)!'$LENGTH(NA)
- QUIT
- +8 SET INPAR("APPL",NA)=L
- +9 SET INPAR("APCO",NA)=L2
- End DoDot:1
- +10 ;action - activate (def)
- +11 SET INPAR("ACT")=1
- +12 ;Replicate or Parent - default to parent/child
- +13 SET INPAR("REPL")=0
- +14 QUIT
- +15 ;
- DATACOM ;Description of DATA tag
- +1 ;; format - ;; interface application name ^ appl indentifier
- DATA ;Data
- +1 ;;Anatomic Pathology^AP
- +2 ;;DBSS^BB
- +3 ;;Breast Care Clinic^BCC
- +4 ;;CHCS II^CHCSII
- +5 ;;Clinical Integrated Workstation^CIW
- +6 ;;Clinicomp^CLIN
- +7 ;;CRSP Local^CRSPL
- +8 ;;CRSP Regional^CRSPR
- +9 ;;DINPACS^DINPACS
- +10 ;;HIV Viromed/HIV ABTS Receiver Phase 2^HIV
- +11 ;;Immunization Tracking System EuroCHCS/DEERS^ITS
- +12 ;;DMHRS^DMHRS
- +13 ;;Lab System Interface^LSI
- +14 ;;MDIS^MDIS
- +15 ;;MHCMIS (CEIS)^MHC
- +16 ;;Nutrition Management Interface System^NMIS
- +17 ;;Pacmednet^PMN
- +18 ;;Pharmacy Data Transaction Service^PDTS
- +19 ;;Provider WorkStation^PWS
- +20 ;;TRACES^TRAC
- +21 ;;TRICARE Support Contractor^TSC
- +22 ;;TRICARE Support Contractor Loader^TSCL
- +23 ;;
- +24 ;;Test Functionality^TEST
- +25 ;;Prototype Functionality^PROTO
- +26 ;;