- VBECPOST ;HIOFO;BNT VBECS 1.0 Post Install Routine ; 01/28/05 11:17
- ;;2.0;VBEC;;Jun 05, 2015;Build 4
- ;
- ; Note: This routine supports data exchange with an FDA registered
- ; medical device. As such, it may not be changed in any way without
- ; prior written approval from the medical device manufacturer.
- ;
- ; Integration Agreements:
- ; Call to XPDUTL is supported by IA: #10141
- ; Call to FILE^DICN is supported by IA: #10009
- ; Call to FIND1^DIC is supported by IA: #
- ; Reference to File 60 supported by IA: #10054
- ; Reference to File 61 supported by IA: #10055
- ; Reference to File 62 supported by IA: #
- ; Reference to File 4 supported by IA: #10090
- ;
- EN ;
- ; Add 'OTHER' TOPOGRAPHY FIELD if it doesn't exist.
- I '$$TOPOG() Q
- ; Add 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE if it doesn't exist.
- I '$$COLSAMP() Q
- ; Add 'VBECS...' LABORATORY TESTS if they don't exist.
- D LABTSTS
- ; Add PARAMETERS
- D XPAR
- ; Add Generic Blood Inventory for Lab workload processing
- D BLDINV
- ;
- Q
- ;
- TOPOG() ; Make sure the 'OTHER' TOPOGRAPHY FIELD file 61 entry exists.
- D BMES^XPDUTL("Adding 'OTHER' TOPOGRAPHY FIELD.")
- D FIND^DIC(61,"","","","OTHER","","","","","OUT","ERR")
- I $D(OUT("DILIST",1,1)) D Q 1
- . D MES^XPDUTL(" 'OTHER' TOPOGRAPHY FIELD already exists.")
- N VBECFDA
- S VBECFDA(1,61,"+1,",.01)="OTHER"
- S VBECFDA(1,61,"+1,",2)="OTHER"
- D UPDATE^DIE("E","VBECFDA(1)","","OUT")
- I $D(OUT("ERROR")) D Q 0
- . D MES^XPDUTL(" ***Error adding 'OTHER' TOPOGRAPHY FIELD.***")
- D MES^XPDUTL(" 'OTHER' TOPOGRAPHY FIELD added successfully.")
- Q $S($D(OUT("ERROR")):0,1:1)
- ;
- COLSAMP() ; Add the VBECS NO SPECIMEN REQUIRED entry to file 62
- D BMES^XPDUTL("Adding 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE.")
- N VBIENS,VBECFDA,CNT,OUT
- D FIND^DIC(62,"","","","VBECS - NO SPECIMEN REQUIRED","","","","","OUT","ERR")
- I $D(OUT("DILIST",1,1)) D Q OUT("DILIST",2,1)
- . D MES^XPDUTL(" 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE already exists.")
- S CNT=2
- S VBECFDA(1,62,"+1,",.01)="VBECS - NO SPECIMEN REQUIRED"
- S VBECFDA(1,62,"+1,",2)="OTHER"
- S VBECFDA(1,62,"+1,",6)="BLOOD BANK"
- S VBECFDA(1,62,"+1,",7)="NO"
- S VBECFDA(1,62.01,"+"_CNT_",+1,",.01)="NRQ"
- ;D ACNAREA(.VBECARY)
- ;F VBECI=1:1 S VBECX=$G(VBECARY(VBECI)) Q:VBECX="" D
- ;. S CNT=CNT+1
- ;. S VBECFDA(1,62.02,"+"_CNT_",+1,",.01)=$P(VBECX,"^")
- D UPDATE^DIE("E","VBECFDA(1)","VBIENS","OUT")
- I $D(OUT("DIERR")) D Q 0
- . D MES^XPDUTL(" ***Error adding 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE.***")
- I $D(VBIENS(1)) S VBECARY="" D ACNAREA(.VBECARY) F VBECI=1:1 S VBECARY=$O(VBECARY(VBECARY)) Q:VBECARY="" D
- . S ^LAB(62,VBIENS(1),9,0)="^62.02PA^"_VBECARY_"^"_VBECI
- . S ^LAB(62,VBIENS(1),9,$P(VBECARY(VBECARY),"^",3),0)=$P(VBECARY(VBECARY),"^",3)
- D MES^XPDUTL(" 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE added successfully.")
- Q VBIENS(1)
- ;
- LABTSTS ; Add the VBECS Lab Tests to file 60
- ; Input: VBSAMP = IEN of the VBECS - NO SPECIMEN REQUIRED
- ; Collection Sample file #62 entry.
- D BMES^XPDUTL("Adding 'VBECS...' LABORATORY TESTS.")
- N VBECFDA,CNT,OUT,VBECLIEN
- D ACNAREA(.VBECARY)
- ;
- S CNT=2
- F VBECI=2:1 S VBDATA=$P($T(LST+VBECI),";;",2) Q:VBDATA["***" D
- . D FIND^DIC(60,"","","",$P(VBDATA,"^",1),"","","","","OUT","ERR")
- . I $D(OUT("DILIST",1,1)) D Q
- . . D MES^XPDUTL("'"_$P(VBDATA,"^",1)_"' LABORATORY TEST already exists.")
- . D MES^XPDUTL("---Adding '"_$P(VBDATA,"^",1)_"' LABORATORY TEST.")
- . ;
- . N VBECLIEN,VBECFDA,VBIENS,OUT
- . S VBECFDA(1,60,"+1,",.01)=$P(VBDATA,"^",1)
- . S VBECFDA(1,60,"+1,",3)="O"
- . S VBECFDA(1,60,"+1,",17)=$O(^LAB(62.05,"B","STAT",0))
- . S VBECFDA(1,60,"+1,",51)=$P(VBDATA,"^",4)
- . S VBECFDA(1,60,"+1,",4)="BB"
- . S VBECFDA(1,60,"+1,",8)=$P(VBDATA,"^",7)
- . ;
- . I $P(VBDATA,"^",6)="NRQ" D
- . . S VBECFDA(1,60.03,"+"_CNT_",+1,",.01)=$O(^LAB(62,"B","VBECS - NO SPECIMEN REQUIRED",0))
- . I $P(VBDATA,"^",6)="" D
- . . S VBCOL=$$DIR($P(VBDATA,"^",1))
- . . I +VBCOL S VBECFDA(1,60.03,"+"_CNT_",+1,",.01)=+VBCOL
- . D UPDATE^DIE("","VBECFDA(1)","VBIENS","OUT")
- . I $D(OUT("DIERR")) D Q
- . . D MES^XPDUTL(" ***Error adding '"_$P(VBDATA,"^",1)_"' LABORATORY TEST***.")
- . . I $D(^LAB(60,"B",$P(VBDATA,"^",1))) D
- . . . D MES^XPDUTL(" Deleting entry...")
- . . . S DA=$O(^LAB(60,"B",$P(VBDATA,"^",1),0)) K DO
- . . . S DIE="^LAB(60,",DR=".01///@",DIDEL=60
- . . . D ^DIE
- . I $D(VBECARY),VBIENS(1),'$D(OUT("DIERR")) D
- . . S I="" F CNT=1:1 S I=$O(VBECARY(I)) Q:I="" D
- . . . S X=VBECARY(I)
- . . . S ^LAB(60,VBIENS(1),8,0)="^60.11PA^"_$P(X,"^",4)_"^"_CNT
- . . . S ^LAB(60,VBIENS(1),8,I,0)=$P(X,"^",4)_"^"_$P(X,"^",3)
- . D MES^XPDUTL(" '"_$P(VBDATA,"^",1)_"' added successfully.")
- . Q
- Q
- DIR(LABTST) ; Ask user for Collection Sample for Lab Test
- ;
- S DIR("A")="Select COLLECTION SAMPLE for Lab Test "_LABTST
- S DIR(0)="P^62:EMZ"
- D ^DIR
- Q Y
- ;
- XPAR ;Main entry point
- ;
- D BMES^XPDUTL("Adding VBECS VISTALINK PARAMETERS.")
- N VBDATA
- F VBECI=1:1 S VBDATA=$P($T(PARMS+VBECI),";;",2) Q:VBDATA["***" D
- . D MES^XPDUTL("---Adding '"_VBDATA_"' PARAMETER.")
- . I $$CONTEXT^VBECRPCC(VBDATA,$$ENCRYP^XUSRB1("VBECS RPC Security")) D
- . . D MES^XPDUTL(" ***Error adding '"_VBDATA_"' PARAMETER.***")
- . E D MES^XPDUTL(" '"_VBDATA_"' PARAMETER added successfully.")
- ; Check Post Install questions and create VistALink IP Address and Port parameters.
- I $D(XPDQUES("POSVLIPADDRESS"))&($D(XPDQUES("POSVLPORT"))) D
- . D MES^XPDUTL("---Adding 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS.")
- . I '$$CHGADPRT^VBECRPCC(XPDQUES("POSVLIPADDRESS"),XPDQUES("POSVLPORT")) D Q
- . . D MES^XPDUTL(" 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS added successfully.")
- . D MES^XPDUTL(" ***Error adding 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS.***")
- Q
- ;
- ACNAREA(VBECARY) ; Return Lab Blood Bank Accession Areas
- N CNT
- S (X,CNT)=0
- F S X=$O(^LRO(68,X)) Q:X'?1N.N D
- . Q:$P(^LRO(68,X,0),"^",2)'="BB"
- . S DIV=$O(^LRO(68,X,3,0))_","
- . D GETS^DIQ(4,DIV,".01",,"OUT","ERR")
- . S INST=$G(OUT(4,DIV,.01))
- . S CNT=CNT+1 S VBECARY(+DIV)=$P(^LRO(68,X,0),"^")_"^"_INST_"^"_X_"^"_$O(^LRO(68,X,3,0))
- . Q
- Q
- ;
- BLDINV ; Add Generic VBECS Blood Inventory for Lab Workload Reporting
- D BMES^XPDUTL("Adding generic VBECS BLOOD INVENTORY")
- N VBECFDA
- I $$FIND1^DIC(65,"","MX","VBECS1","","","ERR") D Q
- . D MES^XPDUTL(" 'VBECS1' BLOOD INVENTORY already exists.")
- D MES^XPDUTL("---Adding 'VBECS1' BLOOD INVENTORY.")
- S VBECFDA(1,65,"+1,",.01)="VBECS1"
- S VBECFDA(1,65,"+1,",.02)="VBECS SYSTEM"
- S VBECFDA(1,65,"+1,",.03)="1.0"
- S VBECFDA(1,65,"+1,",.04)="VBECS PRODUCT"
- S VBECFDA(1,65,"+1,",.05)=$$NOW^XLFDT()
- S VBECFDA(1,65,"+1,",.06)="3100101"
- S VBECFDA(1,65,"+1,",.07)="N/A"
- S VBECFDA(1,65,"+1,",.08)="N/A"
- ; Need to determine primary division
- S VBECFDA(1,65,"+1,",.16)="589"
- S VBECFDA(1,65,"+1,",4.2)=$$NOW^XLFDT()
- D UPDATE^DIE("","VBECFDA(1)","VBIENS","OUT")
- I $D(OUT("DIERR")) D Q
- . D MES^XPDUTL(" ***Error adding 'VBECS1' BLOOD INVENTORY.***")
- D MES^XPDUTL(" 'VBECS1' BLOOD INVENTORY added successfully.")
- Q
- ;
- BLDDONOR ; Add Generic VBECS BLOOD DONOR for Lab Workload Reporting
- N VBECFDA
- Q
- ;
- DEL ; Delete entries for testing
- N DA,DR,DIE,DIDEL,VBDATA,VBIEN,X
- D FIND^DIC(61,"","","","OTHER","","","","","OUT","ERR")
- I $D(OUT("DILIST",1,1)) D
- . D MES^XPDUTL("Deleting 'OTHER' TOPOGRAPHY FILE Entry")
- . S X=0
- . F I=0:1 S X=$O(OUT("DILIST",1,I)) Q:X="" D
- . . S DA=OUT("DILIST",2,X),DIE="^LAB(61,",DR=".01///@",DIDEL=61 D ^DIE
- K DA,DR,DIE,DIDEL,VBIEN
- ;
- D FIND^DIC(62,"","","","VBECS - NO SPECIMEN REQUIRED","","","","","OUT","ERR")
- I $D(OUT("DILIST",1,1)) D
- . D MES^XPDUTL("Deleting 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE")
- . S X=0
- . F I=0:1 S X=$O(OUT("DILIST",1,I)) Q:X="" D
- . . S DA=OUT("DILIST",2,X),DIE="^LAB(62,",DR=".01///@",DIDEL=62 D ^DIE
- K DA,DR,DIE,DIDEL,VBIEN
- ;
- S VBIEN=$$FIND1^DIC(65,"","MX","VBECS1","","","ERR")
- I +VBIEN D
- . D MES^XPDUTL("Deleting 'VBECS1' BLOOD DONOR")
- . S DA=VBIEN,DIE="^LRD(65,",DR=".01///@",DIDEL=65 D ^DIE
- K DA,DR,DIE,DIDEL,VBIEN
- ;
- F VBECI=2:1 S VBDATA=$P($T(LST+VBECI),";;",2) K DO Q:$P(VBDATA,"^",1)="***" D
- . D FIND^DIC(60,"","","",$P(VBDATA,"^",1),"","","","","OUT","ERR")
- . I $D(OUT("DILIST",1,1)) D Q
- . . D MES^XPDUTL("Deleting '"_$P(VBDATA,"^",1)_"' LABORATORY TEST")
- . . S X=0
- . . F I=0:1 S X=$O(OUT("DILIST",1,I)) Q:X="" D
- . . . S DA=OUT("DILIST",2,X),DIE="^LAB(60,",DR=".01///@",DIDEL=60 D ^DIE
- Q
- ;
- LST ;;NAME^TYPE^HIGHEST URGENCY ALLOWED^PRINT NAME^SUBSCRIPT^COLLECTION SAMPLE^UNIQUE COLLECTION SAMPLE
- ;;.01 ^3 ^17 ^51 ^4 ^60.03,.01 ^8
- ;;ABO/RH - LAB^O^STAT^ABO RH^BB^^1
- ;;ANTIBODY SCREEN - LAB^O^STAT^AB SCRN^BB^^1
- ;;DIRECT ANTIGLOBULIN TEST - LAB^O^STAT^DAT^BB^^1
- ;;TRANSFUSION REACTION WORKUP - LAB^O^STAT^TRW^BB^^1
- ;;TYPE & SCREEN - LAB^O^STAT^T&S^BB^^1
- ;;CRYOPRECIPITATE - LAB^O^STAT^CRYOPRE^BB^NRQ^1
- ;;FRESH FROZEN PLASMA - LAB^O^STAT^FFP^BB^NRQ^1
- ;;OTHER - LAB^O^STAT^VBOTHER^BB^NRQ^1
- ;;PLATELETS - LAB^O^STAT^PLTLTS^BB^NRQ^1
- ;;RED BLOOD CELLS - LAB^O^STAT^RED BLD^BB^NRQ^1
- ;;WHOLE BLOOD - LAB^O^STAT^WB^BB^NRQ^1
- ;;***^Add new entries above this line
- Q
- ;
- PARMS ; Build VBECS PARAMETERS
- ;;VBECS Order Entry
- ;;VBECS Workload
- ;;VBECS Update Workload Event
- ;;VBECS Patient ABO_RH
- ;;VBECS Patient TRRX
- ;;VBECS Patient ABID
- ;;VBECS Patient Available Units
- ;;VBECS Blood Products
- ;;VBECS Patient Transfusion History
- ;;VBECS Patient Report
- ;;VBECS DSS Extract
- ;;***^Add new entries above this line
- Q
- ;
- BI ;;UNIT ID^SOURCE^INVOICE#^COMPONENT^DATE/TIME RECEIVED^EXP DATE/TIME^ABO GROUP^RH TYPE^DIVISION^DISP DATE
- ;;.01 ^.02 ^.03 ^.04 ^.05 ^.06 ^.07 ^.08 ^.16 ^4.2
- ;;VBECS GENERIC UNIT^VBECS SYSTEM^1.0^VBECS PRODUCT^^^N/A^N/A^^
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HVBECPOST 10015 printed Mar 13, 2025@21:49:21 Page 2
- VBECPOST ;HIOFO;BNT VBECS 1.0 Post Install Routine ; 01/28/05 11:17
- +1 ;;2.0;VBEC;;Jun 05, 2015;Build 4
- +2 ;
- +3 ; Note: This routine supports data exchange with an FDA registered
- +4 ; medical device. As such, it may not be changed in any way without
- +5 ; prior written approval from the medical device manufacturer.
- +6 ;
- +7 ; Integration Agreements:
- +8 ; Call to XPDUTL is supported by IA: #10141
- +9 ; Call to FILE^DICN is supported by IA: #10009
- +10 ; Call to FIND1^DIC is supported by IA: #
- +11 ; Reference to File 60 supported by IA: #10054
- +12 ; Reference to File 61 supported by IA: #10055
- +13 ; Reference to File 62 supported by IA: #
- +14 ; Reference to File 4 supported by IA: #10090
- +15 ;
- EN ;
- +1 ; Add 'OTHER' TOPOGRAPHY FIELD if it doesn't exist.
- +2 IF '$$TOPOG()
- QUIT
- +3 ; Add 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE if it doesn't exist.
- +4 IF '$$COLSAMP()
- QUIT
- +5 ; Add 'VBECS...' LABORATORY TESTS if they don't exist.
- +6 DO LABTSTS
- +7 ; Add PARAMETERS
- +8 DO XPAR
- +9 ; Add Generic Blood Inventory for Lab workload processing
- +10 DO BLDINV
- +11 ;
- +12 QUIT
- +13 ;
- TOPOG() ; Make sure the 'OTHER' TOPOGRAPHY FIELD file 61 entry exists.
- +1 DO BMES^XPDUTL("Adding 'OTHER' TOPOGRAPHY FIELD.")
- +2 DO FIND^DIC(61,"","","","OTHER","","","","","OUT","ERR")
- +3 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:1
- +4 DO MES^XPDUTL(" 'OTHER' TOPOGRAPHY FIELD already exists.")
- End DoDot:1
- QUIT 1
- +5 NEW VBECFDA
- +6 SET VBECFDA(1,61,"+1,",.01)="OTHER"
- +7 SET VBECFDA(1,61,"+1,",2)="OTHER"
- +8 DO UPDATE^DIE("E","VBECFDA(1)","","OUT")
- +9 IF $DATA(OUT("ERROR"))
- Begin DoDot:1
- +10 DO MES^XPDUTL(" ***Error adding 'OTHER' TOPOGRAPHY FIELD.***")
- End DoDot:1
- QUIT 0
- +11 DO MES^XPDUTL(" 'OTHER' TOPOGRAPHY FIELD added successfully.")
- +12 QUIT $SELECT($DATA(OUT("ERROR")):0,1:1)
- +13 ;
- COLSAMP() ; Add the VBECS NO SPECIMEN REQUIRED entry to file 62
- +1 DO BMES^XPDUTL("Adding 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE.")
- +2 NEW VBIENS,VBECFDA,CNT,OUT
- +3 DO FIND^DIC(62,"","","","VBECS - NO SPECIMEN REQUIRED","","","","","OUT","ERR")
- +4 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:1
- +5 DO MES^XPDUTL(" 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE already exists.")
- End DoDot:1
- QUIT OUT("DILIST",2,1)
- +6 SET CNT=2
- +7 SET VBECFDA(1,62,"+1,",.01)="VBECS - NO SPECIMEN REQUIRED"
- +8 SET VBECFDA(1,62,"+1,",2)="OTHER"
- +9 SET VBECFDA(1,62,"+1,",6)="BLOOD BANK"
- +10 SET VBECFDA(1,62,"+1,",7)="NO"
- +11 SET VBECFDA(1,62.01,"+"_CNT_",+1,",.01)="NRQ"
- +12 ;D ACNAREA(.VBECARY)
- +13 ;F VBECI=1:1 S VBECX=$G(VBECARY(VBECI)) Q:VBECX="" D
- +14 ;. S CNT=CNT+1
- +15 ;. S VBECFDA(1,62.02,"+"_CNT_",+1,",.01)=$P(VBECX,"^")
- +16 DO UPDATE^DIE("E","VBECFDA(1)","VBIENS","OUT")
- +17 IF $DATA(OUT("DIERR"))
- Begin DoDot:1
- +18 DO MES^XPDUTL(" ***Error adding 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE.***")
- End DoDot:1
- QUIT 0
- +19 IF $DATA(VBIENS(1))
- SET VBECARY=""
- DO ACNAREA(.VBECARY)
- FOR VBECI=1:1
- SET VBECARY=$ORDER(VBECARY(VBECARY))
- if VBECARY=""
- QUIT
- Begin DoDot:1
- +20 SET ^LAB(62,VBIENS(1),9,0)="^62.02PA^"_VBECARY_"^"_VBECI
- +21 SET ^LAB(62,VBIENS(1),9,$PIECE(VBECARY(VBECARY),"^",3),0)=$PIECE(VBECARY(VBECARY),"^",3)
- End DoDot:1
- +22 DO MES^XPDUTL(" 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE added successfully.")
- +23 QUIT VBIENS(1)
- +24 ;
- LABTSTS ; Add the VBECS Lab Tests to file 60
- +1 ; Input: VBSAMP = IEN of the VBECS - NO SPECIMEN REQUIRED
- +2 ; Collection Sample file #62 entry.
- +3 DO BMES^XPDUTL("Adding 'VBECS...' LABORATORY TESTS.")
- +4 NEW VBECFDA,CNT,OUT,VBECLIEN
- +5 DO ACNAREA(.VBECARY)
- +6 ;
- +7 SET CNT=2
- +8 FOR VBECI=2:1
- SET VBDATA=$PIECE($TEXT(LST+VBECI),";;",2)
- if VBDATA["***"
- QUIT
- Begin DoDot:1
- +9 DO FIND^DIC(60,"","","",$PIECE(VBDATA,"^",1),"","","","","OUT","ERR")
- +10 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:2
- +11 DO MES^XPDUTL("'"_$PIECE(VBDATA,"^",1)_"' LABORATORY TEST already exists.")
- End DoDot:2
- QUIT
- +12 DO MES^XPDUTL("---Adding '"_$PIECE(VBDATA,"^",1)_"' LABORATORY TEST.")
- +13 ;
- +14 NEW VBECLIEN,VBECFDA,VBIENS,OUT
- +15 SET VBECFDA(1,60,"+1,",.01)=$PIECE(VBDATA,"^",1)
- +16 SET VBECFDA(1,60,"+1,",3)="O"
- +17 SET VBECFDA(1,60,"+1,",17)=$ORDER(^LAB(62.05,"B","STAT",0))
- +18 SET VBECFDA(1,60,"+1,",51)=$PIECE(VBDATA,"^",4)
- +19 SET VBECFDA(1,60,"+1,",4)="BB"
- +20 SET VBECFDA(1,60,"+1,",8)=$PIECE(VBDATA,"^",7)
- +21 ;
- +22 IF $PIECE(VBDATA,"^",6)="NRQ"
- Begin DoDot:2
- +23 SET VBECFDA(1,60.03,"+"_CNT_",+1,",.01)=$ORDER(^LAB(62,"B","VBECS - NO SPECIMEN REQUIRED",0))
- End DoDot:2
- +24 IF $PIECE(VBDATA,"^",6)=""
- Begin DoDot:2
- +25 SET VBCOL=$$DIR($PIECE(VBDATA,"^",1))
- +26 IF +VBCOL
- SET VBECFDA(1,60.03,"+"_CNT_",+1,",.01)=+VBCOL
- End DoDot:2
- +27 DO UPDATE^DIE("","VBECFDA(1)","VBIENS","OUT")
- +28 IF $DATA(OUT("DIERR"))
- Begin DoDot:2
- +29 DO MES^XPDUTL(" ***Error adding '"_$PIECE(VBDATA,"^",1)_"' LABORATORY TEST***.")
- +30 IF $DATA(^LAB(60,"B",$PIECE(VBDATA,"^",1)))
- Begin DoDot:3
- +31 DO MES^XPDUTL(" Deleting entry...")
- +32 SET DA=$ORDER(^LAB(60,"B",$PIECE(VBDATA,"^",1),0))
- KILL DO
- +33 SET DIE="^LAB(60,"
- SET DR=".01///@"
- SET DIDEL=60
- +34 DO ^DIE
- End DoDot:3
- End DoDot:2
- QUIT
- +35 IF $DATA(VBECARY)
- IF VBIENS(1)
- IF '$DATA(OUT("DIERR"))
- Begin DoDot:2
- +36 SET I=""
- FOR CNT=1:1
- SET I=$ORDER(VBECARY(I))
- if I=""
- QUIT
- Begin DoDot:3
- +37 SET X=VBECARY(I)
- +38 SET ^LAB(60,VBIENS(1),8,0)="^60.11PA^"_$PIECE(X,"^",4)_"^"_CNT
- +39 SET ^LAB(60,VBIENS(1),8,I,0)=$PIECE(X,"^",4)_"^"_$PIECE(X,"^",3)
- End DoDot:3
- End DoDot:2
- +40 DO MES^XPDUTL(" '"_$PIECE(VBDATA,"^",1)_"' added successfully.")
- +41 QUIT
- End DoDot:1
- +42 QUIT
- DIR(LABTST) ; Ask user for Collection Sample for Lab Test
- +1 ;
- +2 SET DIR("A")="Select COLLECTION SAMPLE for Lab Test "_LABTST
- +3 SET DIR(0)="P^62:EMZ"
- +4 DO ^DIR
- +5 QUIT Y
- +6 ;
- XPAR ;Main entry point
- +1 ;
- +2 DO BMES^XPDUTL("Adding VBECS VISTALINK PARAMETERS.")
- +3 NEW VBDATA
- +4 FOR VBECI=1:1
- SET VBDATA=$PIECE($TEXT(PARMS+VBECI),";;",2)
- if VBDATA["***"
- QUIT
- Begin DoDot:1
- +5 DO MES^XPDUTL("---Adding '"_VBDATA_"' PARAMETER.")
- +6 IF $$CONTEXT^VBECRPCC(VBDATA,$$ENCRYP^XUSRB1("VBECS RPC Security"))
- Begin DoDot:2
- +7 DO MES^XPDUTL(" ***Error adding '"_VBDATA_"' PARAMETER.***")
- End DoDot:2
- +8 IF '$TEST
- DO MES^XPDUTL(" '"_VBDATA_"' PARAMETER added successfully.")
- End DoDot:1
- +9 ; Check Post Install questions and create VistALink IP Address and Port parameters.
- +10 IF $DATA(XPDQUES("POSVLIPADDRESS"))&($DATA(XPDQUES("POSVLPORT")))
- Begin DoDot:1
- +11 DO MES^XPDUTL("---Adding 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS.")
- +12 IF '$$CHGADPRT^VBECRPCC(XPDQUES("POSVLIPADDRESS"),XPDQUES("POSVLPORT"))
- Begin DoDot:2
- +13 DO MES^XPDUTL(" 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS added successfully.")
- End DoDot:2
- QUIT
- +14 DO MES^XPDUTL(" ***Error adding 'VISTALINK IP ADDRESS' and 'VISTALINK PORT NUMBER' PARAMETERS.***")
- End DoDot:1
- +15 QUIT
- +16 ;
- ACNAREA(VBECARY) ; Return Lab Blood Bank Accession Areas
- +1 NEW CNT
- +2 SET (X,CNT)=0
- +3 FOR
- SET X=$ORDER(^LRO(68,X))
- if X'?1N.N
- QUIT
- Begin DoDot:1
- +4 if $PIECE(^LRO(68,X,0),"^",2)'="BB"
- QUIT
- +5 SET DIV=$ORDER(^LRO(68,X,3,0))_","
- +6 DO GETS^DIQ(4,DIV,".01",,"OUT","ERR")
- +7 SET INST=$GET(OUT(4,DIV,.01))
- +8 SET CNT=CNT+1
- SET VBECARY(+DIV)=$PIECE(^LRO(68,X,0),"^")_"^"_INST_"^"_X_"^"_$ORDER(^LRO(68,X,3,0))
- +9 QUIT
- End DoDot:1
- +10 QUIT
- +11 ;
- BLDINV ; Add Generic VBECS Blood Inventory for Lab Workload Reporting
- +1 DO BMES^XPDUTL("Adding generic VBECS BLOOD INVENTORY")
- +2 NEW VBECFDA
- +3 IF $$FIND1^DIC(65,"","MX","VBECS1","","","ERR")
- Begin DoDot:1
- +4 DO MES^XPDUTL(" 'VBECS1' BLOOD INVENTORY already exists.")
- End DoDot:1
- QUIT
- +5 DO MES^XPDUTL("---Adding 'VBECS1' BLOOD INVENTORY.")
- +6 SET VBECFDA(1,65,"+1,",.01)="VBECS1"
- +7 SET VBECFDA(1,65,"+1,",.02)="VBECS SYSTEM"
- +8 SET VBECFDA(1,65,"+1,",.03)="1.0"
- +9 SET VBECFDA(1,65,"+1,",.04)="VBECS PRODUCT"
- +10 SET VBECFDA(1,65,"+1,",.05)=$$NOW^XLFDT()
- +11 SET VBECFDA(1,65,"+1,",.06)="3100101"
- +12 SET VBECFDA(1,65,"+1,",.07)="N/A"
- +13 SET VBECFDA(1,65,"+1,",.08)="N/A"
- +14 ; Need to determine primary division
- +15 SET VBECFDA(1,65,"+1,",.16)="589"
- +16 SET VBECFDA(1,65,"+1,",4.2)=$$NOW^XLFDT()
- +17 DO UPDATE^DIE("","VBECFDA(1)","VBIENS","OUT")
- +18 IF $DATA(OUT("DIERR"))
- Begin DoDot:1
- +19 DO MES^XPDUTL(" ***Error adding 'VBECS1' BLOOD INVENTORY.***")
- End DoDot:1
- QUIT
- +20 DO MES^XPDUTL(" 'VBECS1' BLOOD INVENTORY added successfully.")
- +21 QUIT
- +22 ;
- BLDDONOR ; Add Generic VBECS BLOOD DONOR for Lab Workload Reporting
- +1 NEW VBECFDA
- +2 QUIT
- +3 ;
- DEL ; Delete entries for testing
- +1 NEW DA,DR,DIE,DIDEL,VBDATA,VBIEN,X
- +2 DO FIND^DIC(61,"","","","OTHER","","","","","OUT","ERR")
- +3 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:1
- +4 DO MES^XPDUTL("Deleting 'OTHER' TOPOGRAPHY FILE Entry")
- +5 SET X=0
- +6 FOR I=0:1
- SET X=$ORDER(OUT("DILIST",1,I))
- if X=""
- QUIT
- Begin DoDot:2
- +7 SET DA=OUT("DILIST",2,X)
- SET DIE="^LAB(61,"
- SET DR=".01///@"
- SET DIDEL=61
- DO ^DIE
- End DoDot:2
- End DoDot:1
- +8 KILL DA,DR,DIE,DIDEL,VBIEN
- +9 ;
- +10 DO FIND^DIC(62,"","","","VBECS - NO SPECIMEN REQUIRED","","","","","OUT","ERR")
- +11 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:1
- +12 DO MES^XPDUTL("Deleting 'VBECS - NO SPECIMEN REQUIRED' COLLECTION SAMPLE")
- +13 SET X=0
- +14 FOR I=0:1
- SET X=$ORDER(OUT("DILIST",1,I))
- if X=""
- QUIT
- Begin DoDot:2
- +15 SET DA=OUT("DILIST",2,X)
- SET DIE="^LAB(62,"
- SET DR=".01///@"
- SET DIDEL=62
- DO ^DIE
- End DoDot:2
- End DoDot:1
- +16 KILL DA,DR,DIE,DIDEL,VBIEN
- +17 ;
- +18 SET VBIEN=$$FIND1^DIC(65,"","MX","VBECS1","","","ERR")
- +19 IF +VBIEN
- Begin DoDot:1
- +20 DO MES^XPDUTL("Deleting 'VBECS1' BLOOD DONOR")
- +21 SET DA=VBIEN
- SET DIE="^LRD(65,"
- SET DR=".01///@"
- SET DIDEL=65
- DO ^DIE
- End DoDot:1
- +22 KILL DA,DR,DIE,DIDEL,VBIEN
- +23 ;
- +24 FOR VBECI=2:1
- SET VBDATA=$PIECE($TEXT(LST+VBECI),";;",2)
- KILL DO
- if $PIECE(VBDATA,"^",1)="***"
- QUIT
- Begin DoDot:1
- +25 DO FIND^DIC(60,"","","",$PIECE(VBDATA,"^",1),"","","","","OUT","ERR")
- +26 IF $DATA(OUT("DILIST",1,1))
- Begin DoDot:2
- +27 DO MES^XPDUTL("Deleting '"_$PIECE(VBDATA,"^",1)_"' LABORATORY TEST")
- +28 SET X=0
- +29 FOR I=0:1
- SET X=$ORDER(OUT("DILIST",1,I))
- if X=""
- QUIT
- Begin DoDot:3
- +30 SET DA=OUT("DILIST",2,X)
- SET DIE="^LAB(60,"
- SET DR=".01///@"
- SET DIDEL=60
- DO ^DIE
- End DoDot:3
- End DoDot:2
- QUIT
- End DoDot:1
- +31 QUIT
- +32 ;
- LST ;;NAME^TYPE^HIGHEST URGENCY ALLOWED^PRINT NAME^SUBSCRIPT^COLLECTION SAMPLE^UNIQUE COLLECTION SAMPLE
- +1 ;;.01 ^3 ^17 ^51 ^4 ^60.03,.01 ^8
- +2 ;;ABO/RH - LAB^O^STAT^ABO RH^BB^^1
- +3 ;;ANTIBODY SCREEN - LAB^O^STAT^AB SCRN^BB^^1
- +4 ;;DIRECT ANTIGLOBULIN TEST - LAB^O^STAT^DAT^BB^^1
- +5 ;;TRANSFUSION REACTION WORKUP - LAB^O^STAT^TRW^BB^^1
- +6 ;;TYPE & SCREEN - LAB^O^STAT^T&S^BB^^1
- +7 ;;CRYOPRECIPITATE - LAB^O^STAT^CRYOPRE^BB^NRQ^1
- +8 ;;FRESH FROZEN PLASMA - LAB^O^STAT^FFP^BB^NRQ^1
- +9 ;;OTHER - LAB^O^STAT^VBOTHER^BB^NRQ^1
- +10 ;;PLATELETS - LAB^O^STAT^PLTLTS^BB^NRQ^1
- +11 ;;RED BLOOD CELLS - LAB^O^STAT^RED BLD^BB^NRQ^1
- +12 ;;WHOLE BLOOD - LAB^O^STAT^WB^BB^NRQ^1
- +13 ;;***^Add new entries above this line
- +14 QUIT
- +15 ;
- PARMS ; Build VBECS PARAMETERS
- +1 ;;VBECS Order Entry
- +2 ;;VBECS Workload
- +3 ;;VBECS Update Workload Event
- +4 ;;VBECS Patient ABO_RH
- +5 ;;VBECS Patient TRRX
- +6 ;;VBECS Patient ABID
- +7 ;;VBECS Patient Available Units
- +8 ;;VBECS Blood Products
- +9 ;;VBECS Patient Transfusion History
- +10 ;;VBECS Patient Report
- +11 ;;VBECS DSS Extract
- +12 ;;***^Add new entries above this line
- +13 QUIT
- +14 ;
- BI ;;UNIT ID^SOURCE^INVOICE#^COMPONENT^DATE/TIME RECEIVED^EXP DATE/TIME^ABO GROUP^RH TYPE^DIVISION^DISP DATE
- +1 ;;.01 ^.02 ^.03 ^.04 ^.05 ^.06 ^.07 ^.08 ^.16 ^4.2
- +2 ;;VBECS GENERIC UNIT^VBECS SYSTEM^1.0^VBECS PRODUCT^^^N/A^N/A^^
- +3 QUIT