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

OREORV2.m

Go to the documentation of this file.
OREORV2 ; SLC/GDU - Orderable Item Records Validation [10/15/04 09:16]
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**217**;Dec 17, 1997
 ;OREORV2 - Orderable Item Record Validation
 ;
 ;FIX FOR NOIS CASES:
 ;DAN-0204-42157, ALB-1001-51034, SBY-0803-30443, NJH-0402-20607
 ;
 ;This prints a report of the results from OREORV1.
 ;The results are stored in ^TMP($J,"OIC".
 ;^TMP($J,"OIC" is fully documented in OREORV1.
 ;The output is sorted and printed in the following manner:
 ;
 ;A report summary of the overall findings
 ;Section 1, details of OI records with null ID field
 ;Section 2, details of OI records without source IENs
 ;Section 3, details of OI records without source package codes
 ;Section 4, details of OI records with bad source package codes
 ;Section 5, details of OI records with packages with package
 ;           codes not listed in the OE/RR Interface Specifications
 ;           of July 2001. These records have properly formatted
 ;           package codes but can not be validated with this
 ;           utility.
 ;Section 6, summary of OI records validated with source records
 ;Section 7, details of OI records not validated with source records
 ;
 ;External Variables
 ;  IOF  - Standard FileMan/Kernel IO variable, Form Feed
 ;  IOM  - Standard FileMan/Kernel IO variable, Margin width
 ;  IOSL - Standard FileMan/Kernel IO variable, Page Length
 ;  IOST - Standard FileMan/Kernel IO variable, Terminal type
 ;  U    - Standard FileMan/Kernel delimiter variable
 ;
 ;External References
 ;  ^DIR               DBIA 10026
 ;  $$REPEAT^XLFSTR    DBIA 10104
 ;
MAIN ;Main entry point for this program
 ;Local Variables
 ;  PAGE - Page number counter
 ;  STOP - Stop report execution
 ;
 N PAGE,STOP
 S PAGE=1,STOP=0
 D RPTSUM I STOP=1 G EXIT  ;Report Summary
 D PS(1) I STOP=1 G EXIT
 D PS(2) I STOP=1 G EXIT
 D PS(3) I STOP=1 G EXIT
 D PS(4) I STOP=1 G EXIT
 D PS(5) I STOP=1 G EXIT
 D PS(6) I STOP=1 G EXIT
 D PS(7)
EXIT ;Exit point for this program
 Q
RPTSUM ;Report Summary - Summary of ZGOIRV1 findings
 ;Local Variables
 ;  RSL - Report Summary Line, indirect variable to print summary type
 ;  X   - Standard FileMan work variable
 ;
 N RSL,X
 D RPH
 W !,$P($T(RS),";",3),!
 F X=0:1:7 D
 . S RSL="RS"_X
 . W !,$P($T(@RSL),";",3),?65,$J(^TMP($J,"OIC",X),10)
 D @$S($E(IOST,1,2)="C-":"NS",1:"RPF")
 Q
PS(SN) ;Print Sections
 ;Variable Passed to PS
 ;  SN   - Section Number
 ;Local Variables
 ;  SH   - Section Header
 ;  SF   - Section Footer
 ;  PACK - Package Code
 ;  PH   - Package Subsection Header
 ;  PF   - Package Subsection Footer
 ;  NAME - Orderable Item Name
 ;
 N SH,SF,PACK,PH,PF,NAME
 S SH="SH"_SN,SF="SF"_SN
 W !,$P($T(@SH),";",3)
 W ! D LCC Q:STOP=1
 I SN=1!(SN=2)!(SN=3) D
 . I ^TMP($J,"OIC",SN)>0 D
 .. W !,$P($T(@SH),";",3) D LCC Q:STOP=1
 .. W !,$$REPEAT^XLFSTR("-",IOM) D LCC Q:STOP=1
 ..  S NAME="" F  S NAME=$O(^TMP($J,"OIC",SN,"B",NAME)) Q:NAME=""!(STOP=1)  D
 ... W !,NAME,?65,$P(^TMP($J,"OIC",SN,"B",NAME),U,2)
 I SN=4!(SN=5) D
 . I ^TMP($J,"OIC",SN)>0 D
 .. S PACK="" F  S PACK=$O(^TMP($J,"OIC",SN,PACK)) Q:PACK=""!(STOP=1)  D
 ... S PH=$P($T(PHT),";",3)_" : "_PACK_" - "_$P($T(@$E(PACK,3,5)),";",3)
 ... S PF=$P($T(PFT),";",3)_" : "_PACK_" - "_$P($T(@$E(PACK,3,5)),";",3)
 ... W !,PH D LCC Q:STOP=1
 ... W !,$P($T(CH1),";",3),?65,$P($T(CH2),";",3) D LCC Q:STOP=1
 ... W !,$$REPEAT^XLFSTR("-",IOM) D LCC Q:STOP=1
 ... S NAME="" F  S NAME=$O(^TMP($J,"OIC",SN,PACK,"B",NAME)) Q:NAME=""!(STOP=1)  D
 .... W !,NAME,?65,$P(^TMP($J,"OIC",SN,PACK,"B",NAME),U,2) D LCC Q:STOP=1
 ... W !,PF,?65,$J(^TMP($J,"OIC",SN,PACK),10) D LCC Q:STOP=1
 ... W ! D LCC Q:STOP=1
 I SN=6 D
 . I ^TMP($J,"OIC",SN)>0 D
 . S PACK="" F  S PACK=$O(^TMP($J,"OIC",SN,PACK)) Q:PACK=""!(STOP=1)  D
 .. S PH=PACK_" - "_$P($T(@$E(PACK,3,5)),";",3)
 .. W !,PH,?65,$J(^TMP($J,"OIC",SN,PACK),10) D LCC Q:STOP=1
 I SN=7 D PS7
 W ! D LCC Q:STOP=1
 W !,$P($T(@SF),";",3),?65,$J(^TMP($J,"OIC",SN),10) D LCC Q:STOP=1
 I SN=7 S STOP=1
 D @$S($E(IOST,1,2)="C-":"NS",1:"RPF")
 Q
PS7 ;Print Section 7
 ;Local Variables
 ;  AH - Activity Type Subsection Header
 ;  AF - Activity Type Subsection Footer
 ;  AI - Active / Inactive Indicator
 ;
 N AH,AF,AI
 I ^TMP($J,"OIC",SN)=0 Q
 S AI="" F  S AI=$O(^TMP($J,"OIC",SN,AI)) Q:AI=""!(STOP=1)  D
 . S AH=AI_"HT",AF=AI_"FT"
 . W !,$P($T(@AH),";",3) D LCC Q:STOP=1
 . S PACK="" F  S PACK=$O(^TMP($J,"OIC",SN,AI,PACK)) Q:PACK=""!(STOP=1)  D
 .. S PH=$P($T(PHT),";",3)_" : "_PACK_" - "_$P($T(@$E(PACK,3,5)),";",3)
 .. S PF=PACK_" - "_$P($T(@$E(PACK,3,5)),";",3)
 .. W !,PH D LCC Q:STOP=1
 .. W !,$P($T(CH1),";",3),?65,$P($T(CH2),";",3) D LCC Q:STOP=1
 .. W !,$$REPEAT^XLFSTR("-",IOM) D LCC Q:STOP=1
 .. S NAME="" F  S NAME=$O(^TMP($J,"OIC",SN,AI,PACK,"B",NAME)) Q:NAME=""!(STOP=1)  D
 ... W !,NAME,?65,$P(^TMP($J,"OIC",SN,AI,PACK,"B",NAME),U,2) D LCC Q:STOP=1
 .. W !,PF,?65,$J(^TMP($J,"OIC",SN,AI,PACK),10) D LCC Q:STOP=1
 .. W ! D LCC Q:STOP=1
 . W ! D LCC Q:STOP=1
 . W !,$P($T(@AF),";",3),?65,$J(^TMP($J,"OIC",SN,AI),10) D LCC Q:STOP=1
 Q
RPH ;Report Page Header
 W:$E(IOST,1,2)="C-"!(PAGE>1) @IOF
 W $P($T(RH),";",3),?65,"PAGE: ",PAGE
 Q
NS ;Next Screen - Advances user to next screen if output directed to
 ;video console
 ;Local Variables
 ;  DIR   - Input array variable for ^DIR
 ;  DTOUT - Time out indicator, output variable for ^DIR
 ;  DUOUT - Up arrow out indicator, "^", output variable for ^DIR
 ;  Y     - Processed User response, output variable for ^DIR
 ;
 N DIR,DTOUT,DUOUT,Y
 S DIR(0)="E"
 W ! D ^DIR I $D(DTOUT)!($D(DUOUT)) S Y=0
 I Y=0 S STOP=1 Q
 S PAGE=$$PCI(PAGE)
 D:STOP=0 RPH
 Q 
RPF ;Report Page Footer - Prints page footer if output directed to printer
 ;Local Variables
 ; LF  - Line Feed, Advances 1 line down the page
 ; LFC - Line Feed Count, number of lines to advance to end of page
 N LF,LFC
 S LFC=(IOSL-4)-$Y
 F LF=1:1:LFC W !
 W $P($T(RF),";",3),?65,"PAGE: ",PAGE
 S PAGE=$$PCI(PAGE)
 D:STOP=0 RPH
 Q
LCC ;Line Count Check - Determine if it is time for end of page/screen logic
 I $Y>(IOSL-4) D @$S($E(IOST,1,2)="C-":"NS",1:"RPF") I STOP=1 G EXIT
 Q
PCI(PN) ;Page Counter
 ;Variable Passed to PCI
 ;  PN - Page Number
 S PN=PN+1 Q PN
 ;Text used by the program to print the report
 ;Text for the report page/screen headers
RH ;;Orderable Items File Record Validation Report
 ;Text for the report page footers
RF ;;Orderable Items File Record Validation Report
 ;Text for report summary
RS ;;Summary of Orderable Items Validation:
RS0 ;;Total number of records processed:
RS1 ;;Total number of records with null ID fields:
RS2 ;;Total number of records without source IENs:
RS3 ;;Total number of records without source package codes:
RS4 ;;Total number of records with bad source package codes:
RS5 ;;Total number of records requiring manual confirmation:
RS6 ;;Total number of records with source record matches (validated):
RS7 ;;Total number of records without source record matches:
 ;
 ;Section header/footer text
SH1 ;;Section 1, Records with null ID field
SH2 ;;Section 2, Records without source IENs
SH3 ;;Section 3, Records without source package codes
SH4 ;;Section 4, Records with incorrect source package code formats
SH5 ;;Section 5, Records with package codes not in current spec
SH6 ;;Section 6, Records with source record matches (Validated)
SH7 ;;section 7, Records without source record matches
SF1 ;;Total with null ID field
SF2 ;;Total without source IENs:
SF3 ;;Total without source package codes:
SF4 ;;Total with bad source package codes:
SF5 ;;Total with package codes not in spec:
SF6 ;;Total validated:
SF7 ;;Total without source record matches:
 ;
 ;Package title text
CON ;;Consult Request Services file
FHD ;;Diets file
FHT ;;Tubefeeding file
LRT ;;Laboratory Test file
ORD ;;Orderable Items file
PRC ;;Consult Procedure file
PRO ;;Protocol file
PSP ;;Pharmacy Orderable Item file
RAP ;;Radiology/Nuclear Medicine Procedures file
 ;
 ;Column Header text
CH1 ;;OI Name
CH2 ;;Inactive Date
 ;
 ;Package Header/Footer Text
PHT ;;Records for package
PFT ;;Sub-total for package
 ;
 ;Active OI records Header/Footer Text
AHT ;;Active OI records w/o matching source record
AFT ;;Sub-total active OI records w/o matching source record
 ;
 ;Inactive OI records Header/Footer Text
IHT ;;Inactive OI records w/o matching source record
IFT ;;Sub-total inactive OI records w/o matching source record