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

VENPCCMC.m

Go to the documentation of this file.
  1. VENPCCMC ; IHS/OIT/GIS - PCC+ INSTALLATION CHECKER ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ;
  1. ;
  1. INTRO ; WELCOME
  1. N %,X,%Y,BACK,BYP,CDFN,CFG,CFIGIEN,CFLG,CIEN,CMED,DA,DEM,DP,GP,VER,EXRX,ART,AUTO,SM
  1. N I,IP,MON,MV,OS,PATH,PHS,POP,PULL,SOCK,STG,TIEN,TOT,TYPE,UNI,X,Y,SUB,IPFLG,CNT
  1. D ^XBCLS W !,?20,"***** PCC+ INSTALLATION CHECKER *****",!!
  1. W "NOTE: This utility does NOT update the PCC+ configuration files.",!," It simply reports on the status of the current installation."
  1. W !!,"When you see the '<>' symbol, press the <ENTER> key to continue scrolling..."
  1. ENV ; CHECK THE OPERATING ENVIRONMENT
  1. CSC26 I +$P($T(VENPCCMC+1),";",3)=2.6 W !!,"Now let's check connectivity and the Windows components of PCC+",! D CSC^VENPCCQX(.CNT) D PAUSE^VENPCCU G CPC ; CSC FOR VER 2.6
  1. W !!!!!,"First, let's check the operating environment..."
  1. I $$OS^VENPCCME W !,"Unable to proceed because the operating system is not defined for PCC+!" Q
  1. CMP ; CHECK FOR REQUIRED COMPONENTS
  1. ; PATCHED BY GIS/OIT 10/15/05 ; PCC+ 2.5 PATCH 1
  1. W ! I $$WAIT^VENPCCU
  1. D ^XBCLS
  1. W !!,"Next, let's make sure that all required components have been installed "
  1. D COMP^VENPCCME(.OUT)
  1. W !,OUT
  1. I OUT'["OK" D PAUSE^VENPCCU Q ; KEY COMPONENTS ARE MISSING. STOP HERE
  1. W ! I '$$WAIT^VENPCCU Q
  1. CPC ; CHECK PRIMARY CONFIGURATION
  1. D ^XBCLS
  1. W !,"Checking the primary configuration..."
  1. S CFLG=0
  1. D CK^VENPCCME(.CFLG)
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" D PAUSE^VENPCCU Q
  1. W ! I '$$WAIT^VENPCCU Q
  1. CCPS ; CHECK CONNECTION TO THE PRINT SERVERS
  1. D ^XBCLS
  1. W !,"Checking connectivity to the PCC+ print server(s)..."
  1. S IPFLG=0 D IP(.IPFLG)
  1. I IPFLG D Q
  1. . W !!,"Make sure the PCC+ Print Service is running on the print server(s)"
  1. . W !,"If this is not successful, fix the LAN connection to the print server(s)."
  1. . W !,"Then run this utility again."
  1. . D PAUSE^VENPCCU
  1. . Q
  1. I 'IPFLG W !,"Connectivity is OK",!
  1. W ! I '$$WAIT^VENPCCU Q
  1. CEF ; CHECK ENCOUNTER FORMS
  1. D ^XBCLS
  1. W !,"Checking PCC+ ENCOUNTER FORMS..."
  1. W !,"Only essential properties and template synchronization will be checked now."
  1. W !,"For managing all other TEMPLATE properties, use the TCU option.",!
  1. S CFLG=0
  1. D EF(.CFLG)
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" Q
  1. W ! I $$WAIT^VENPCCU
  1. W !!,"Checking PCC+ encounter form synchronization."
  1. D TEMPLATE^VENPCCM1
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" Q
  1. W ! I '$$WAIT^VENPCCU
  1. D ^XBCLS
  1. CPG ; CHECK PRINT GROUPS
  1. D PG(.CFLG)
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" Q
  1. W !!,"Now let's check print group synchronization.",!
  1. D PG^VENPCCM1
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" Q
  1. W ! I '$$WAIT^VENPCCU
  1. D ^XBCLS
  1. CCL ; CHECK CLINICS
  1. W !,"Checking PCC+ CLINICS..."
  1. W !,"Only the essential properties will be checked now."
  1. W !,"For managing all other CLINIC properties, use the TCC option.",!
  1. D CL(.CFLG)
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again" Q
  1. W ! I '$$WAIT^VENPCCU
  1. D ^XBCLS
  1. CHF ; CHECK HEADER FILES
  1. I $P($G(^VEN(7.5,$$CFG^VENPCCU,13)),U) W !,"New PCC+ data format IN USE. No need for header files." D PAUSE^VENPCCU Q
  1. W !!,"Checking HEADER FILES..."
  1. D HF(.CFLG)
  1. I CFLG W !,"Please make all suggested corrections and then run this utility again"
  1. E W !,"Header Files have been validated." W !!!,"CONGRATULATIONS!!! Your PCC+ system has been valdated"
  1. D PAUSE^VENPCCU
  1. Q
  1. ;
  1. IP(IPFLG) ; EP - CHECK IP AND SOCKET
  1. N POP,X,I,ACK
  1. I $G(SOCK)'=5143 W !?5,"CURRENT TCP SOCKET IS INVALID. IT SHOULD BE '5143'" S IPFLG=1 Q
  1. F I=1,2 S X=IP(I) D Q:IP(1)=IP(2) I IPFLG Q
  1. . I X'?1.3N1"."1.3N1"."1.3N1"."1.3N W !?5,"IP address ",I," is invalid. Current address: ",X S IPFLG=1 Q
  1. . S %=$$OTCP^VENPCCP(X,5143)
  1. . I % W !?5,"Failed to establish a TCP/IP connection to ",X S IPFLG=1 Q
  1. . W ("ABOUT") W:$G(CACHE) ! K ACK R ACK:15
  1. . E W !,"Print service not responding on ",IP(I) D CTCP^VENPCCP Q
  1. . I ACK'=0,ACK'=-7 W !,"Print service not responding on ",IP(I)
  1. . D CTCP^VENPCCP
  1. . W !?5,"Connection to print service on ",IP(I)," validated (Ver. "
  1. . W $S(ACK=0:"2.5",1:"2.2"),")."
  1. . Q
  1. Q
  1. ;
  1. EF(CFLG) ; EP-ENCOUTER FORMS
  1. N TOT,TIEN
  1. S TOT=0
  1. I '$O(^VEN(7.41,0)) W !?5,"NO ENCOUNTER FORM TEMPLATES HAVE BEEN ENTERED YET!" Q
  1. S TIEN=0 F S TIEN=$O(^VEN(7.41,TIEN)) Q:'TIEN I $D(^VEN(7.41,TIEN,0)) D
  1. . D ECK(TIEN)
  1. . S TOT=TOT+1
  1. . I '(TOT#10) W ! I $$WAIT^VENPCCU
  1. Q
  1. ;
  1. ECK(TIEN) ; EP - CK TEMPLATE
  1. ; BAR CODE CHARACTER CHECK NO LONGER REQUIRED IN 2.2
  1. N STG,HDR,TMN,BAR,X,Y,NAME
  1. S NAME=$P($G(^VEN(7.41,TIEN,0)),U) W !?5,NAME
  1. S STG=^VEN(7.41,TIEN,0),HDR=$P(STG,U,2),TMN=$P(STG,U,3),BAR=$P(STG,U,4),CFLG=0
  1. I HDR'="ef",HDR'="25",HDR'="pn",HDR'="fp" W !?7,"Invalid/missing header mnemonic." S CFLG=1
  1. I TMN="" W !?7,"Missing template mnemonic" S CFLG=1 Q
  1. I TMN'?1.10L W !?7,"Invalid template mnemonic. Must be 1-10 lowercase letters - no spaces." S CFLG=1 Q
  1. S X=0 F S X=$O(^VEN(7.41,X)) Q:'X I X'=TIEN S Y=$P($G(^VEN(7.41,X,0)),U,3) I Y=TMN W !?7,"The mnemonic '"_Y_"' is not unioque." S CFLG=1 Q
  1. I 'CFLG W " <= OK"
  1. Q
  1. ;
  1. HF(CFLG) ; EP - HEADER FILES
  1. N CFIGIEN,PATH,HF,IPI,IPX,HSTG,X
  1. S CFIGIEN=$$CFG^VENPCCU
  1. S PATH=$G(^VEN(7.5,CFIGIEN,2))
  1. I PATH="" W !,"Unable to find the Path to the header files on the RPMS Server!" Q
  1. F HF="efheader.txt","25header.txt","hsheader.txt" D
  1. . I $$FIND^VENPCCP(PATH,HF) W !,"Header file ",HF," has been validated" Q
  1. . W !,"Header file '",HF,"'can not be located in ",PATH
  1. . Q
  1. W !!,"Accessing information...",!
  1. S IPX=2 I IP(1)=IP(2) S IPX=1
  1. F HF="ef_header.txt","25_header.txt","hs_header.txt" F IPI=1:1:IPX D
  1. . S HSTG=$$FILE^VENPCCM2("c:\program files\ilc\ilc forms print service\templates\"_HF,IP(IPI))
  1. . I $L(HSTG)>1 W !,HF," is properly synchronized on Print Server #"_IPI Q
  1. . W !,HF," has not been loaded on Print Server #",IPI S CFLG=1
  1. . Q
  1. Q ; HEADER FILE COMPARISON NO LONGER REQUIRED
  1. ;
  1. PG(CFLG) ; EP-PRINT GROUPS
  1. W !!,"CHECKING PRINT GROUPS..."
  1. I '$O(^VEN(7.4,0)) W !?5,"NO PRINT GROUPS HAVE BEEN ENTERED YET!" Q
  1. S X=0 F S X=$O(^VEN(7.4,X)) Q:'X S Y=$P($G(^VEN(7.4,X,0)),U,2) I Y Q
  1. I 'Y W !?7,"No MEDICAL RECORDS print group has been defined." S CFLG=1 Q
  1. S (X,TOT)=0 F S X=$O(^VEN(7.4,X)) Q:'X D
  1. . W !?5,$P($G(^VEN(7.4,X,0)),U)
  1. . I $P(^VEN(7.4,X,0),U,2) W " (MEDICAL RECORDS PRINT GROUP)" S TOT=TOT+1
  1. . I $P($G(^VEN(7.4,X,0)),U)'["_" W !,?7,"Name not is recommended format: Facility_Group e.g., 'GIMC_ORTHO'"
  1. . E W " <=OK"
  1. . Q
  1. I TOT>1 W !,"There is more than one Medical Records print group!" S CFLG=1 Q
  1. Q
  1. ;
  1. CL(CFLG) ; EP-CLINICS
  1. N DIC,DIE,DA,DR,X,CIEN
  1. S CIEN=0,TOT=0
  1. F TOT=1:1 S CIEN=$O(^VEN(7.95,CIEN)) Q:'CIEN D CCK(CIEN)
  1. F X="TELEPHONE ENCOUNTER","MEDICAL RECORDS" I '$D(^VEN(7.95,"B",X)) D
  1. . S NAME=X,X=""""_X_""""
  1. . S DIC="^VEN(7.95,",DIC(0)="L",DLAYGO=19707.95
  1. . D ^DIC I Y=-1 Q
  1. . S CIEN=+Y
  1. . S %=$O(^VEN(7.22,"B",NAME,0))
  1. . I % D I 1 ; JUST NEED TO MAKE THE CONNECTION
  1. .. S DIE="^VEN(7.95,",DA=CIEN,DR="1.01////"_%_";2.07////1"
  1. .. L +^VEN(7.95,DA):0 D ^DIE L -^VEN(7.95,DA)
  1. .. Q
  1. . E D
  1. .. S X=""""_NAME_"""",DIC="^VEN(7.22,",DIC(0)="L",DLAYGO=19707.22
  1. .. D ^DIC I Y=-1 Q ; UPDATE THE QUEUE TYPE FILE
  1. .. S DIE="^VEN(7.95,",DA=CIEN,DR="1.01////"_+Y_";2.07////1"
  1. .. L +^VEN(7.95,DA):0 D ^DIE L -^VEN(7.95,DA) ; MAKE THE CONNECTION
  1. .. Q
  1. . W !?5,X," has been added to the VEN EHP CLINIC file & VEN QUEUE TYPE file."
  1. . Q
  1. D ^XBFMK
  1. Q
  1. ;
  1. CCK(CIEN) ; EP-CHECK CLINIC
  1. N A,B,NAME,DEPT,PGRP,DPRV,DEF,DHS,INST,QUE,QIEN,DIC,DIE,DA,DR,X,Y,%
  1. S A=$G(^VEN(7.95,CIEN,0)),B=$G(^VEN(7.95,CIEN,2))
  1. S NAME=$P(A,U),CFLG=0
  1. S TOT=TOT+1 I '(TOT#10) W ! I $$WAIT^VENPCCU
  1. W !?5,NAME W:$P(B,U,3) " (TRIAGE MODULE ACTIVE)"
  1. I NAME'="MEDICAL RECORDS",NAME'="TELEPHONE ENCOUNTER",NAME'="CHART REVIEW"
  1. E W " <=OK" Q
  1. I NAME'[" - " W !?10,"USE VALID NAME FORMAT: 'Facility - Clinic'; e.g., PIMC - PEDIATRICS"
  1. S DEPT=$P(A,U,4) I DEPT="" W !?10,"UNKNOWN CLINIC STOP" S CFLG=1
  1. E I '$D(^DIC(40.7,DEPT,0)) W !?10,"INVALID CLINIC STOP" S CFLG=1
  1. S PGRP=$P(B,U,1) I PGRP="" W !?10,"UNKNOWN PRINT GROUP" S CFLG=1
  1. E I '$D(^VEN(7.4,PGRP,0)) W !?10,"INVALID PRINT GROUP" S CFLG=1
  1. S DPRV=$P(B,U,2) I DPRV="" W !?10,"UNKNOWN DEFAULT PROVIDER" S CFLG=1
  1. E I '$D(^VA(200,DPRV,0)) W !?10,"INVALID DEFAULT PROVIDER" S CFLG=1
  1. S DEF=$P(B,U,5) I DEF="" W !?10,"UNKNOWN DEFAULT ENCOUNTER FORM" S CFLG=1
  1. E I '$D(^VEN(7.41,DEF,0)) W !?10,"INVALID DEFAULT ENCOUTER FORM" S CFLG=1
  1. S INST=$P(B,U,4) I INST="" W !?10,"UNKNOWN MEDICAL RECORDS LOCATION" S CFLG=1
  1. E I '$D(^DIC(4,INST,0)) W !?10,"INVALID MEDICAL RECORDS LOCATION" S CFLG=1 G CCK1
  1. S QIEN=$P($G(^VEN(7.95,CIEN,1)),U) I 'QIEN D ; QUEUE TYPE FILE LINKAGE
  1. . S %=$O(^VEN(7.22,"B",NAME,0))
  1. . I % D Q ; JUST NEED TO MAKE THE CONNECTION
  1. .. S DIE="^VEN(7.95,",DA=CIEN,DR="1.01////"_%
  1. .. L +^VEN(7.95,DA):0 D ^DIE L -^VEN(7.95,DA)
  1. .. W !?10,"Clinic registered in QUEUE TYPE file"
  1. .. Q
  1. . S X=""""_NAME_"""",DIC="^VEN(7.22,",DIC(0)="L",DLAYGO=19707.22
  1. . D ^DIC I Y=-1 Q ; UPDATE THE QUEUE TYPE FILE
  1. . S DA=+Y S DIE="^VEN(7.95,",DA=CIEN,DR="1.01////"_DA
  1. . L +^VEN(7.95,DA):0 D ^DIE L -^VEN(7.95,DA) ; MAKE THE CONNECTION
  1. . D ^XBFMK
  1. . W !?10,"QUEUE TYPE file has been updated"
  1. . Q
  1. CCK1 I $P(B,U,7) W !?10,"INACTIVE CLINIC" Q
  1. I 'CFLG W " <=OK"
  1. Q
  1. ;